.account-body{background:var(--canvas)}
.account-top{border-bottom:1px solid var(--account-line)}
.signout-form{margin:0}
.signout-form button{border:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--sp-fs-body);text-decoration:underline;cursor:pointer;padding:10px 0;min-height:var(--sp-tap)}
.account-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--accent-line-strong);border-radius:50%;font-size:var(--sp-fs-meta);font-weight:700;color:var(--accent);flex:0 0 auto}
.account-menu{position:relative;padding:0;border:0}
.account-menu summary{list-style:none;display:flex;align-items:center;gap:9px;cursor:pointer;padding:4px 0;font-size:var(--sp-fs-body)}
.account-menu summary::-webkit-details-marker{display:none}
.account-menu-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-menu:not([open])>.account-menu-panel{display:none}.account-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(280px,calc(100vw - 32px));padding:16px;border:1px solid var(--account-line);border-radius:10px;background:var(--panel);box-shadow:0 16px 45px var(--shadow)}
.account-menu-panel p{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--account-line);font-size:var(--sp-fs-body)}
.account-menu-panel p strong,.account-menu-panel p span{display:block;overflow-wrap:anywhere}
.account-menu-panel p span{color:var(--muted);margin-top:3px}
.account-menu-panel>a{display:block;padding:8px 0;font-size:var(--sp-fs-body)}
.account-menu-panel .signout-form{border-top:1px solid var(--account-line);margin-top:8px;padding-top:4px}
.account-frame{display:block;padding-block:var(--sp-s5) var(--sp-s7)}
@media (min-width:1180px){.account-frame{display:grid;grid-template-columns:var(--sp-side) minmax(0,1fr);gap:var(--sp-gutter);align-items:start;padding-block:var(--sp-s6) var(--sp-s8)}}
.account-side{position:static;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:var(--sp-s1);margin:0 0 var(--sp-s5);padding-bottom:var(--sp-s2);border-bottom:1px solid var(--account-line);scrollbar-width:none;mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
@media (min-width:1180px){.account-side{position:sticky;top:24px;display:grid;gap:2px;margin:0;padding:0;border:0;mask-image:none;overflow:visible}}
.account-side a{display:flex;align-items:center;flex:0 0 auto;white-space:nowrap;min-height:var(--sp-tap);padding:0 var(--sp-s3);border:0;border-radius:8px;font-size:var(--sp-fs-hint);text-decoration:none;color:var(--muted)}
@media (min-width:1180px){.account-side a{display:flex;padding:0 var(--sp-s3);font-size:var(--sp-fs-body)}}
.account-side a:hover,.account-side a[aria-current]{color:var(--ink)}
.account-side a[aria-current]{font-weight:700;background:var(--accent-soft-2);box-shadow:inset 0 -3px 0 var(--accent-fill)}
@media (min-width:1180px){.account-side a[aria-current]{box-shadow:inset 3px 0 0 var(--accent-fill)}}
.account-main{min-width:0;max-width:var(--sp-col-wide)}
.account-heading{display:block;padding-bottom:var(--sp-s4);border-bottom:0}
.account-heading h1{font-size:var(--sp-fs-display);line-height:var(--sp-lh-tight);margin:8px 0 0;letter-spacing:-.03em}
.account-org{display:grid;gap:4px;text-align:right}
.account-org span,.account-card>span{font-size:var(--sp-fs-kicker);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.account-org strong{font-size:14px}
.account-notice,.account-error{margin:24px 0;padding:16px 18px;border:1px solid var(--rule-strong);border-radius:9px;background:var(--panel-2);font-size:var(--sp-fs-body)}
.account-error{border-color:var(--danger-line);background:var(--danger-soft)}
.account-notice p,.account-error p{margin:8px 0 0}
.account-badge{display:inline-block;border:1px solid var(--rule-strong);border-radius:99px;padding:4px 8px;font-size:10px;letter-spacing:.03em;margin-right:7px;white-space:nowrap}
.account-badge.ok{border-color:var(--accent-line-strong);color:var(--account-ok);background:var(--accent-soft-2)}
.account-badge.demo{border-color:var(--warning-line);color:var(--account-demo);background:var(--warning-soft)}
.account-badge.planned{border-color:var(--rule-strong);color:var(--account-planned);background:var(--panel-2)}
.account-grid{display:grid;gap:18px;margin:26px 0}
.account-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.account-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.account-card{min-width:0;border:1px solid var(--account-line);border-radius:10px;padding:22px;background:var(--account-soft)}
.account-card strong{display:block;font-size:20px;margin:8px 0}
.account-card p{font-size:var(--sp-fs-hint);line-height:var(--sp-lh-body);color:var(--muted);margin:8px 0 0}
.account-card.link-card{display:block;text-decoration:none}
.account-card.link-card:hover{border-color:var(--accent-border)}
.account-section{padding:32px 0;border-top:1px solid var(--account-line)}
.account-section:first-of-type{border-top:0}
/* OAuth client names and callback addresses are untrusted, unbroken strings. */
#oauth-consent h2,#oauth-consent p,#oauth-consent code,#oauth-apps h3,#oauth-apps p,#oauth-apps code,#oauth-apps button,#oauth-signin p,#oauth-return,#oauth-complete strong{overflow-wrap:anywhere;word-break:break-word;white-space:normal}
#oauth-apps button,#oauth-return{min-width:0}
#oauth-consent .account-actions{display:flex;flex-wrap:wrap;gap:12px}
#oauth-consent .account-button:not(.account-button-secondary),#oauth-return{border-color:var(--accent-border);background:var(--accent-fill);color:var(--on-accent);font-weight:700}
#oauth-consent .account-button:not(.account-button-secondary):hover,#oauth-return:hover{background:var(--accent-fill-hover)}
#oauth-server-address{border-color:var(--rule-stronger-hi);font-size:16px}
#oauth-server-address:focus-visible{outline:3px solid var(--accent-line-bright);outline-offset:2px}
.account-section h2{font-size:25px;margin:0 0 18px}
.account-section>p{color:var(--muted);max-width:75ch}
.account-disclosure>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:22px;font-weight:700;color:var(--ink)}
.account-disclosure[open]>summary{margin-bottom:8px}.account-disclosure-body>.account-section{border-top:0;padding-bottom:0}
.account-lead{font-size:19px!important;color:var(--ink)!important}
.section-line{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}
.section-line h2{margin:0}
.account-steps{list-style:none;padding:0;margin:0;border-top:1px solid var(--account-line)}
.account-steps li{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:15px 0;border-bottom:1px solid var(--account-line);font-size:14px}
.table-wrap{overflow-x:auto;border:1px solid var(--account-line);border-radius:9px}
.table-wrap table{width:100%;border-collapse:collapse;min-width:580px;font-size:13px}
.table-wrap th,.table-wrap td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--account-line);vertical-align:top}
.table-wrap tr:last-child td{border-bottom:0}
.table-wrap th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.account-button{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:var(--sp-tap);border:1px solid var(--rule-strong);border-radius:6px;padding:10px 16px;background:var(--panel-2);color:var(--ink);font:inherit;font-size:var(--sp-fs-body);line-height:var(--sp-lh-ui);text-align:center;text-decoration:none;cursor:pointer}
.account-button:disabled{color:var(--text-faint);cursor:not-allowed;opacity:.78}
.account-button-secondary{background:transparent!important;color:var(--ink)!important;border-color:var(--rule-stronger)!important}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;width:min(100%,780px);margin:24px 0 0}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) label{display:block;min-width:0;font-size:var(--sp-fs-body);font-weight:650;line-height:var(--sp-lh-ui);color:var(--ink)}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) label:has(textarea){grid-column:1/-1}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) :is(input:not([type="hidden"]):not([type="checkbox"]),select,textarea){display:block;box-sizing:border-box;width:100%;min-width:0;min-height:46px;margin-top:8px;padding:11px 13px;border:1px solid var(--rule-stronger);border-radius:7px;background:var(--panel);color:var(--ink);font:inherit;font-size:15px;line-height:1.45}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) textarea{min-height:148px;resize:vertical}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) :is(input,select,textarea):focus-visible{outline:3px solid var(--accent-line-bright);outline-offset:2px;border-color:var(--accent-line-bright)}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label))>p{grid-column:1/-1;margin:0}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) .account-button{min-height:var(--sp-tap-primary);padding:11px 20px;border-color:var(--accent-border);background:var(--accent-fill);color:var(--on-accent);font-size:var(--sp-fs-body);font-weight:650;cursor:pointer}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) .account-button:hover{background:var(--accent-fill-hover)}
.account-form fieldset label:has(input[type="checkbox"]){display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
.account-form fieldset input[type="checkbox"]{flex:none;width:20px;height:20px;margin:0;accent-color:var(--accent-fill)}
.account-form small{font-size:var(--sp-fs-hint);line-height:var(--sp-lh-body);color:var(--muted)}
.account-form #account-email{scroll-margin-top:96px}
.account-form fieldset{min-width:0;margin:0;padding:8px 14px 12px;border:1px solid var(--account-line);border-radius:8px;background:var(--panel)}
.account-form fieldset legend{padding:0 5px;font-size:var(--sp-fs-body);font-weight:650;color:var(--ink)}
.account-form fieldset label:has(input[type="checkbox"]){font-weight:500}
.account-option-groups{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label))>button{grid-column:1/-1;align-self:start;justify-self:start}
.account-form>.account-choice{grid-column:1/-1}
.account-choice,.account-form label.account-choice{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;min-height:44px;padding:12px;border:1px solid var(--rule-strong);border-radius:7px;background:var(--panel);color:var(--ink);font-size:14px;font-weight:500;line-height:1.5;cursor:pointer}
.account-choice input[type="checkbox"]{width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent-fill)}
.account-choice:focus-within{outline:3px solid var(--accent-line-bright);outline-offset:2px}
.account-policy-list{display:grid;gap:14px;max-width:780px;margin-top:18px}
.account-policy{display:grid;gap:12px;margin:0;padding:22px;border:1px solid var(--account-line);border-radius:10px;background:var(--account-soft);font-size:14px;line-height:1.55}
.account-policy h3{margin:0;font-size:19px;line-height:1.3}
.account-policy p,.account-policy ul{margin:0;color:var(--text-soft)}
.account-policy ul{padding-left:21px}
.account-policy li+li{margin-top:5px}
.account-acceptance{display:grid;gap:10px;margin-top:2px}
.account-acceptance>.account-button{justify-self:start;border-color:var(--accent-border);background:var(--accent-fill);color:var(--on-accent);font-weight:700}
.account-acceptance>.account-button:hover{background:var(--accent-fill-hover)}
.shoot-plan-test-control{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:22px;row-gap:6px;align-items:center;margin:20px 0;padding:18px 20px;border:1px solid var(--rule-strong)!important;border-radius:9px;background:var(--panel)}
.shoot-plan-test-control>strong{font-size:14px}
.shoot-plan-test-control>p{grid-column:1;margin:0;font-size:13px;line-height:1.5}
.shoot-plan-test-control>form{grid-column:2;grid-row:1/3;margin:0}
:is(.account-form-compact,.account-card form:has(label)){grid-template-columns:1fr;width:100%;gap:16px;margin-top:20px}
:is(.account-form-compact,.account-card form:has(label)) label:has(textarea){grid-column:auto}
.account-empty{border:1px dashed var(--rule-strong);border-radius:9px;padding:30px;text-align:center;color:var(--muted)}
.account-empty h3{color:var(--ink)}
.account-section pre{max-width:100%;overflow:auto;padding:18px;border:1px solid var(--account-line);border-radius:9px;background:var(--canvas-deep);color:var(--accent-text);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.account-section pre code{white-space:inherit;overflow-wrap:inherit;word-break:inherit}
.signin-main{min-height:calc(100vh - 120px);display:grid;place-items:center;padding-block:70px}
.signin-card{width:min(680px,100%);border:1px solid var(--account-line);border-radius:14px;background:var(--panel);padding:clamp(28px,5vw,56px)}
.signin-card h1{font-size:clamp(36px,5vw,52px);margin:10px 0 16px;line-height:1.08}
.signin-card .lead{max-width:43ch}
.signin-card h1.unsubscribe-title{font-size:clamp(26px,8vw,40px);overflow-wrap:anywhere}.signin-card .unsubscribe-email{overflow-wrap:anywhere}
.signin-next{font-size:15px;margin:0 0 4px}
.signin-next a{font-weight:650}
/* WCAG 2.2 target size: the reset link gets a full 44px row of its own. */
.signin-forgot{font-size:15px;margin:6px 0 0}.signin-forgot a{display:inline-flex;align-items:center;min-height:44px;padding:0 2px;font-weight:650}
.signin-card .button{margin-top:14px}
.signin-provider{margin-top:24px}.signin-provider .button{display:flex;justify-content:center;align-items:center;min-height:48px;margin:0}
.signin-divider{display:flex;align-items:center;gap:14px;margin:22px 0 0;color:var(--muted);font-size:14px}.signin-divider::before,.signin-divider::after{content:"";flex:1;height:1px;background:var(--account-line)}
.signin-card .account-form{margin-top:18px}.signin-card .account-form>button{width:100%}
.signin-recovery{margin:14px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
.signin-card .eyebrow{font-size:14px}.signin-security{font-size:14px;color:var(--muted);margin-top:28px;padding-top:22px;border-top:1px solid var(--account-line)}
.account-footer{padding-top:20px}
.shared-plan-label{margin:0;color:var(--muted);font-size:13px;letter-spacing:.04em}.shared-plan-main{padding-block:44px 80px}.shared-plan-hero{border-top:0}.shared-plan-hero h1{font-size:clamp(40px,6vw,68px);margin:8px 0 18px}.shared-shot{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px}.shared-shot-state,.shared-check-state{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--rule-stronger);border-radius:999px;font-weight:800;color:var(--accent)}.shared-checklist{list-style:none;padding:0;margin:12px 0 0}.shared-checklist li{display:grid;grid-template-columns:36px 1fr;align-items:center;min-height:48px;border-top:1px solid var(--account-line);font-size:13px}.shared-check-state{width:24px;height:24px;font-size:12px}
.shoot-plan-result-main{min-width:0;overflow-wrap:anywhere}.shoot-plan-result-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:18px;font-size:13px}.shoot-plan-share-reveal{margin:0 0 22px;border-color:var(--accent-line-strong);background:var(--accent-soft-2)}.shoot-plan-share-reveal pre{max-width:100%;overflow:auto;margin:14px 0;padding:13px;border:1px solid var(--accent-line-strong);border-radius:7px;background:var(--canvas-deep);color:var(--accent-text);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.shoot-plan-share-reveal>a{display:inline-flex;align-items:center;min-height:44px}.shoot-plan-result-hero{padding:10px 0 38px}.shoot-plan-result-hero h1{max-width:18ch;margin:8px 0 18px;font-size:clamp(38px,5vw,62px)}.shoot-plan-result-hero .account-lead{max-width:62ch;margin:22px 0 26px}.shoot-plan-progress-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 24px;border:1px solid var(--accent-line-strong);border-left:4px solid var(--accent-border);border-radius:11px;background:linear-gradient(125deg,var(--accent-soft-2),var(--panel-2))}.shoot-plan-progress-copy>span,.shoot-plan-order>span{display:block;margin-bottom:5px;color:var(--account-ok);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.shoot-plan-progress-copy>strong{display:block;font-size:clamp(20px,2.4vw,28px);line-height:1.25;letter-spacing:-.025em}.shoot-plan-progress-copy>p{margin:6px 0 0;color:var(--text-soft)}.shoot-plan-primary-action{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-width:190px;min-height:50px;padding:12px 16px;border-color:var(--accent-border);background:var(--accent-fill);color:var(--on-accent);font-size:14px;font-weight:750;text-decoration:none}.shoot-plan-primary-action:hover{background:var(--accent-fill-hover)}.shoot-plan-order{max-width:76ch;margin-top:24px;padding-left:18px;border-left:1px solid var(--accent-line-strong)}.shoot-plan-order p{margin:0;color:var(--muted)}.shoot-plan-secondary-links{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:14px}.shoot-plan-secondary-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:var(--sp-fs-body)}.shoot-plan-paid-progress{border-top:1px solid var(--account-line);padding-top:36px}.shoot-plan-checklist-heading{max-width:68ch;margin-bottom:4px}.shoot-plan-checklist-heading h2{margin:5px 0 10px;font-size:clamp(30px,4vw,44px)}.shoot-plan-checklist-heading p:last-child{color:var(--muted)}.shoot-plan-no-shots{margin:25px 0}.shoot-plan-paid-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px}.shoot-plan-paid-card.is-complete{border-color:var(--accent-line-strong);background:var(--accent-soft)}.shoot-plan-paid-check{display:grid;place-items:start center;min-width:44px;min-height:44px;cursor:pointer}.shoot-plan-paid-check input,.shoot-plan-paid-list input{width:24px;height:24px;accent-color:var(--accent-fill)}.shoot-plan-paid-check input:focus-visible,.shoot-plan-paid-list input:focus-visible{outline:3px solid var(--accent-line-bright);outline-offset:3px}.account-shot-meta{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.account-shot-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.account-shot-facts div{background:var(--canvas);border-radius:7px;padding:10px}.account-shot-facts dt{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.account-shot-facts dd{margin:5px 0 0;font-size:12px}.shoot-plan-paid-card details summary{min-height:44px;display:flex;align-items:center;color:var(--accent);font-size:12px}.shoot-plan-paid-print-detail{display:none}.shoot-plan-paid-list{list-style:none;padding:0;margin-bottom:0}.shoot-plan-paid-list label{display:grid;grid-template-columns:44px 1fr;align-items:center;min-height:50px;border-top:1px solid var(--account-line);cursor:pointer}.shoot-plan-paid-list label.is-complete{color:var(--account-ok)}.shoot-plan-paid-list input{justify-self:center}.shoot-plan-finish-grid{margin-bottom:22px}.shoot-plan-save{margin:0 0 38px}.shoot-plan-result-main .account-button{min-height:44px}.shoot-plan-information,.shoot-plan-sharing{color:var(--muted)}.shoot-plan-information h2,.shoot-plan-sharing h2{color:var(--ink)}.shoot-plan-policy-note{color:var(--ink)}
@media(max-width:980px){.account-frame{grid-template-columns:190px minmax(0,1fr);gap:32px}.account-grid.three{grid-template-columns:1fr}.account-grid.two{grid-template-columns:1fr}}
@media(max-width:700px){.account-top .nav{align-items:center}.account-frame{display:block;padding-block:16px 44px}.account-side{position:static;display:flex;overflow-x:auto;gap:14px;padding:3px 0 14px;border-top:0;border-bottom:1px solid var(--account-line);margin-bottom:20px;scrollbar-width:thin}.account-side a{flex:0 0 auto;display:flex;align-items:center;min-height:var(--sp-tap);border:0;padding:0 var(--sp-s3);font-size:var(--sp-fs-body)}.account-heading{display:block;padding-bottom:var(--sp-s3)}.account-org{text-align:left;margin-top:17px}.account-heading h1{font-size:2rem}.account-grid{margin:20px 0}.account-card{padding:19px}.account-section{padding:26px 0}.section-line{align-items:flex-start;flex-direction:column}.account-steps li{align-items:flex-start}.signin-main{padding-block:36px}.signin-card{padding:28px 22px}.signin-card h1{font-size:46px}.shoot-plan-result-back{margin-bottom:10px}.shoot-plan-result-hero{padding-top:5px}.shoot-plan-result-hero h1{font-size:clamp(28px,8.5vw,36px);line-height:1.12;overflow-wrap:break-word}.shoot-plan-result-hero .account-lead{font-size:17px!important}.shoot-plan-progress-overview{grid-template-columns:1fr;gap:18px;padding:20px}.shoot-plan-primary-action{width:100%;min-width:0}.shoot-plan-order{font-size:14px}.shoot-plan-paid-progress{padding-top:28px}.shoot-plan-paid-card{grid-template-columns:44px minmax(0,1fr)}.account-shot-facts{grid-template-columns:1fr}.shoot-plan-save{width:100%;min-width:0}.shoot-plan-information .actions{align-items:stretch;flex-direction:column}.shoot-plan-information .actions .account-button{display:flex;align-items:center;justify-content:center}}
/* 24 Oct 2026 (Justin, signed-in phone review): the account menu sat mid-row, so its panel (anchored to its right edge)
   opened off-screen to the left. On phones the utilities row spans the width: Shoot Plan left, the account menu right. */
@media(max-width:700px){.account-top .nav{flex:0 0 100%;width:100%;display:flex;justify-content:space-between;gap:12px}.account-top .nav>.account-menu{margin-left:auto}}
@media(max-width:700px){.top .nav>a,.account-menu summary,.account-menu-panel>a,.account-menu-panel button{min-height:44px;display:flex;align-items:center}}
@media(prefers-reduced-motion:reduce){.account-side{scroll-behavior:auto}}
@media(max-width:700px){.account-policy{padding:17px;gap:11px}.account-policy-list{gap:12px}.account-option-groups{grid-template-columns:1fr;gap:12px}.account-acceptance>.account-button,.account-form>button{width:100%;justify-self:stretch}.shoot-plan-test-control{grid-template-columns:1fr;padding:16px;gap:8px}.shoot-plan-test-control>form{grid-column:1;grid-row:auto;margin-top:4px}.signin-card h1{font-size:38px}.signin-card .lead{font-size:17px;line-height:1.6}}
@media(max-width:700px){:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)){grid-template-columns:1fr;gap:18px}:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) label:has(textarea){grid-column:auto}}
@media print{html{background:#fff!important;color:#111;color-scheme:light!important}.account-body{--ink:#111;--muted:#333;--mint:#111;--account-ok:#333}.account-top,.account-side,.account-footer,.account-notice,.account-error,.account-form,.actions,.shoot-plan-result-back,.shoot-plan-secondary-links,.shoot-plan-primary-action,.shoot-plan-revision,.shoot-plan-sharing,.shoot-plan-paid-check,.shoot-plan-paid-list input,.shoot-plan-save,.shoot-plan-paid-card details{display:none!important}.account-body{background:#fff;color:#111}.account-frame{display:block;padding:0}.account-heading{padding:0 0 6mm}.account-main{width:100%}.shoot-plan-result-hero{padding:0 0 6mm}.shoot-plan-result-hero h1{font-size:24pt}.shoot-plan-progress-overview{display:block;padding:4mm;border:1px solid #777;background:#fff;color:#111}.shoot-plan-progress-copy>span,.shoot-plan-order>span{color:#333}.shoot-plan-progress-copy>p,.shoot-plan-order p{color:#333}.shoot-plan-order{margin-top:4mm;border-color:#777}.shoot-plan-paid-progress{padding-top:6mm;border-color:#aaa}.shoot-plan-checklist-heading h2{font-size:18pt}.account-section{padding:6mm 0;border-color:#aaa;break-inside:avoid}.shoot-plan-setup{break-inside:auto;break-before:page}.shoot-plan-setup>.section-line,.shoot-plan-setup>p{break-after:avoid;break-inside:avoid}.shoot-plan-setup .account-grid{margin-top:3mm}.account-grid.two,.account-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm}.account-card,.shoot-plan-paid-card.is-complete{background:#fff;color:#111;border-color:#aaa;padding:4mm;break-inside:avoid}.shoot-plan-paid-card,.shoot-plan-paid-print-detail{display:block}.shoot-plan-paid-card::before{content:"☐";float:right;font-size:16pt}.shoot-plan-paid-card.is-complete::before{content:"☑"}.account-card p,.account-section>p,.account-lead{color:#333!important}.account-shot-facts div{background:#fff;border:1px solid #aaa}.account-shot-facts dt{color:#333}.account-card>span,.account-shot-meta,.eyebrow,.shoot-plan-checklist-heading p:last-child{color:#333!important}.account-card p strong{display:inline;font-size:inherit;line-height:inherit;letter-spacing:normal}.shoot-plan-policy-note{display:block!important;color:#111;background:#fff;border-color:#777}.account-shot-facts dd{color:#111}.account-badge{color:#111!important;background:#fff!important;border-color:#555!important}.account-heading h1{font-size:24pt}.account-section h2{font-size:16pt}.shoot-plan-paid-list label{grid-template-columns:1fr;color:#111!important}.shoot-plan-paid-list label::before{content:"☐ ";}.shoot-plan-paid-list label.is-complete::before{content:"☑ ";}}

@media print{.shoot-plan-test-control{display:none!important}}
/* Structured Shoot Plan (planner v2): guided intake, review and plan status. Display-only filter; nothing is removed from the plan. */
.shoot-plan-guided fieldset{border:1px solid var(--account-line);border-radius:9px;padding:14px 16px;margin:0 0 14px;min-width:0}.shoot-plan-guided legend{padding:0 6px;font-weight:700;font-size:var(--sp-fs-body)}.shoot-plan-row-body{display:grid;gap:10px}.shoot-plan-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shoot-plan-intake-step{border-top:1px solid var(--account-line);padding-top:18px;margin-top:10px}.shoot-plan-intake-step h3{margin:0 0 10px}.shoot-plan-hint,.sp-hint{color:var(--muted);font-size:var(--sp-fs-hint);font-weight:400;line-height:var(--sp-lh-body);margin:var(--sp-s1) 0 var(--sp-s3)}.shoot-plan-steps{display:flex;flex-wrap:wrap;gap:6px 18px;padding:0;margin:4px 0 8px;list-style:none;counter-reset:step;font-size:13px}.shoot-plan-steps a{display:inline-flex;align-items:center;min-height:44px}.shoot-plan-more summary{min-height:44px;display:flex;align-items:center;color:var(--accent);font-size:13px;cursor:pointer}.shoot-plan-review ul{padding-left:18px;margin:8px 0 0}.shoot-plan-review li{margin:6px 0;font-size:13px}.shoot-plan-review .account-card ul{color:var(--muted)}
.shoot-plan-status{margin:0 0 18px;display:grid;gap:10px}.shoot-plan-status-line{margin:0;font-size:15px}.shoot-plan-status-time,.shoot-plan-rules-note{margin:0;color:var(--muted);font-size:13px}.shoot-plan-warnings{margin:0}.shoot-plan-warnings ul,.shoot-plan-assumptions ul,.shoot-plan-coverage ul{padding-left:18px;margin:8px 0 0;font-size:13px}.shoot-plan-assumptions summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--accent);font-size:13px}.shoot-plan-filter{margin-top:12px}.shoot-plan-coverage li{margin:6px 0;color:var(--muted)}
.shoot-plan-paid-progress:has(#shoot-plan-essential-only:checked) .shoot-plan-paid-card:not(.priority-must):not(:has(.shoot-plan-not-saved)){display:none}
@media(max-width:700px){.shoot-plan-inline{grid-template-columns:1fr}}
@media print{.shoot-plan-filter,.shoot-plan-assumptions summary{display:none!important}.shoot-plan-status-line,.shoot-plan-status-time{color:#111}.shoot-plan-paid-progress .shoot-plan-paid-card:not(.priority-must){display:block!important}}
.shoot-plan-review .account-card li strong{display:inline;font-size:inherit;margin:0}
.shoot-plan-review .account-card>span{font-size:var(--sp-fs-kicker);font-weight:600;color:var(--muted);display:block;margin-bottom:var(--sp-s3)}
.shoot-plan-change-answers{margin-top:var(--sp-s5);border:1px solid var(--account-line);border-radius:12px;padding:var(--sp-s4)}
.shoot-plan-change-answers>summary{min-height:var(--sp-tap);display:flex;align-items:center;font-size:var(--sp-fs-body);font-weight:600;cursor:pointer;list-style:none}
.shoot-plan-change-answers>summary::-webkit-details-marker{display:none}
.shoot-plan-review .review-edit{display:inline-flex;align-items:center;min-height:var(--sp-tap);padding:0 8px;font-weight:600}
.shoot-plan-review .account-choice{min-height:48px;align-items:flex-start}
/* iPhone and iPad. Account pages run no JavaScript, so everything here is CSS-only. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.account-body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.account-footer{padding-bottom:env(safe-area-inset-bottom)}
/* iOS Safari zooms into any field under 16px when it is tapped. */
@media (pointer:coarse),(max-width:1024px){.account-form:is(input:not([type="hidden"]):not([type="checkbox"]),select,textarea),.shoot-plan-guided :is(input:not([type="checkbox"]),select,textarea){font-size:16px!important}}
.account-body:is(a,button,summary,label){-webkit-tap-highlight-color:rgba(211,239,170,.25)}
.shoot-plan-row-more{border:1px dashed var(--account-line);border-radius:9px;margin:0 0 12px}
.shoot-plan-row-more>summary{display:flex;align-items:center;min-height:48px;padding:0 14px;cursor:pointer;color:var(--accent);font-size:14px;font-weight:650;list-style:none}
.shoot-plan-row-more>summary::-webkit-details-marker{display:none}
.shoot-plan-row-more>summary::before{content:"+";display:inline-grid;place-items:center;width:24px;height:24px;margin-right:10px;border:1px solid currentColor;border-radius:50%}
.shoot-plan-row-more[open]>summary::before{content:"–"}
.shoot-plan-row-more[open]{border-style:solid}.shoot-plan-row-more>fieldset{margin:0;border:0;border-top:1px solid var(--account-line);border-radius:0 0 9px 9px}
/* The save button follows you down a long checklist on touch screens. */
@media (max-width:1024px){.shoot-plan-save{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;box-shadow:0 10px 28px var(--shadow)}}
/* iPad portrait and small laptops:navigation moves to a top strip so plans get the full width. */
@media (min-width:701px) and (max-width:1024px){.account-frame{display:block;padding-block:26px 60px}.account-side{position:static;display:flex;gap:22px;overflow-x:auto;border-top:0;border-bottom:1px solid var(--account-line);margin-bottom:28px}.account-side a{flex:0 0 auto;display:flex;align-items:center;min-height:48px;border:0;padding:0 2px}.shoot-plan-guided .shoot-plan-row-body{grid-template-columns:repeat(2,minmax(0,1fr))}.shoot-plan-guided .shoot-plan-row-body>:is(details,.account-choice,.shoot-plan-inline){grid-column:1/-1}}
/* Phone landscape:keep the result hero short so shots are reachable. */
@media (max-height:500px) and (orientation:landscape){.shoot-plan-result-hero h1{font-size:28px;margin:4px 0 10px}.shoot-plan-status-time,.shoot-plan-rules-note{display:none}}
@media print{.shoot-plan-save{position:static;box-shadow:none}.shoot-plan-row-more{border:0}}
/* Field mode (/account/shoot-plan/:id/field/): iPhone-first, one-handed, works offline. */
.field-body{min-height:100vh;min-height:100dvh}
.field-test{margin:0;padding:8px 16px;background:var(--warning-soft);color:var(--account-demo);font-size:13px;font-weight:700;text-align:center}
.field-top{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:calc(10px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));background:var(--canvas);border-bottom:1px solid var(--account-line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.field-back{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-size:14px;white-space:nowrap}
.field-title p{margin:0;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.field-title h1{margin:2px 0 0;font-size:18px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}
.field-main{width:min(100%,1180px);margin:0 auto;padding:14px max(16px,env(safe-area-inset-right)) calc(96px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));box-sizing:border-box}
.field-summary{padding:14px 16px;border:1px solid var(--accent-line-strong);border-left:4px solid var(--accent-border);border-radius:11px;background:var(--accent-soft-2)}.field-summary p{margin:0;font-size:15px}.field-summary p+p{margin-top:6px;color:var(--text-soft);font-size:14px}.field-summary strong{font-size:20px}
.field-offline-notice{margin:0 0 12px;padding:12px 14px;border:1px solid var(--warning-line);border-left:4px solid var(--warning-line-hi);border-radius:11px;background:var(--warning-soft);color:var(--warning-text);font-size:15px}
.field-filters{display:flex;gap:8px;margin:14px 0 4px;overflow-x:auto}.field-filters button{flex:0 0 auto;min-height:44px;padding:0 16px;border:1px solid var(--accent-line-strong);border-radius:99px;background:transparent;color:var(--ink);font:inherit;font-size:14px}.field-filters button[aria-pressed="true"]{background:var(--accent-fill);border-color:var(--accent-border);color:var(--on-accent);font-weight:700}
.field-offline{margin:14px 0;padding:14px 16px;border:1px solid var(--account-line);border-radius:11px;background:var(--account-soft);display:grid;gap:10px}.field-offline p{margin:0;font-size:14px}.field-offline .account-button{min-height:48px;width:100%;font-size:15px}
.field-hint{color:var(--muted);font-size:13px;line-height:1.5}.field-footnote{margin-top:22px}
.field-group{margin-top:22px}.field-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field-group-head h2{margin:0;font-size:20px}.field-group-head span{color:var(--muted);font-size:13px}.field-group-note{margin:6px 0 10px;color:var(--muted);font-size:13px;line-height:1.5}
.field-shot{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px;margin:10px 0;padding:12px 14px 12px 6px;border:1px solid var(--account-line);border-radius:12px;background:var(--account-soft);scroll-margin-top:90px}
.field-shot.priority-must{border-left:4px solid var(--accent-border)}.field-shot.is-done{background:var(--accent-soft);border-color:var(--accent-line-strong)}
.field-check{display:grid;place-items:start center;padding-top:6px;min-height:52px;cursor:pointer}.field-check input{width:30px;height:30px;accent-color:var(--accent-fill)}
.field-shot-meta{margin:0;color:var(--muted);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.field-priority{display:inline-block;margin-right:4px;padding:2px 7px;border:1px solid var(--accent-line-strong);border-radius:99px;color:var(--ink);letter-spacing:.04em}.priority-must .field-priority{border-color:var(--accent-border);color:var(--account-ok)}
.field-shot h3{margin:6px 0 6px;font-size:17px;line-height:1.3}.field-instruction{margin:0;font-size:15px;line-height:1.55}
.field-facts{display:grid;gap:6px;margin:10px 0 0}.field-facts div{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;font-size:13px}.field-facts dt{color:var(--muted)}.field-facts dd{margin:0}
.field-shot details summary{display:flex;align-items:center;min-height:44px;color:var(--accent);font-size:13px;cursor:pointer}.field-shot details p{margin:6px 0;font-size:13px;color:var(--text-soft)}
.field-wrap{margin:8px 0 0;padding:10px 12px;border:1px dashed var(--accent-line-strong);border-radius:9px;color:var(--text-soft);font-size:13px}
.field-checklist{list-style:none;margin:0;padding:0}.field-checkline{display:grid;grid-template-columns:44px 1fr;align-items:center;min-height:52px;border-top:1px solid var(--account-line);cursor:pointer;font-size:15px}.field-checkline input{justify-self:center;width:26px;height:26px;accent-color:var(--accent-fill)}
.field-savebar{position:fixed;left:0;right:0;bottom:0;z-index:9;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--canvas);border-top:1px solid var(--account-line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.field-sync{margin:0;font-size:13px;line-height:1.4;color:var(--text-soft)}.field-save{min-height:48px;padding:0 20px;border:1px solid var(--accent-border);border-radius:9px;background:var(--accent-fill);color:var(--on-accent);font:inherit;font-size:15px;font-weight:750}
body[data-sync="offline"] .field-sync,body[data-sync="pending"] .field-sync{color:var(--account-demo)}body[data-sync="blocked"] .field-sync{color:var(--danger-text)}body[data-sync="synced"] .field-sync{color:var(--account-ok)}
body[data-filter="must"] .field-shot:not(.priority-must):not(.is-kept),body[data-filter="open"] .field-shot.is-done:not(.is-kept){display:none}
.field-index{list-style:none;margin:16px 0;padding:0}.field-index li{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--account-line)}.field-index a{display:flex;align-items:center;min-height:44px;font-size:17px;font-weight:650}.field-index span{color:var(--muted);font-size:13px}
.field-body:is(input,button,a,summary):focus-visible{outline:3px solid var(--accent-line-bright);outline-offset:2px}
@media (min-width:700px){.field-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}.field-group .field-shot{margin:0;align-self:start}.field-group>:is(.field-group-head,.field-group-note,.field-wrap,.field-checklist){grid-column:1/-1}}
@media (min-width:768px){.field-title h1{font-size:22px}.field-main{padding-top:20px}.field-summary{display:flex;justify-content:space-between;align-items:center;gap:20px}.field-summary p+p{margin:0}.field-offline{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.field-offline .field-hint{grid-column:1/-1}.field-offline .account-button{width:auto}.field-group .field-shot{margin:0}.field-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}.field-group>:is(.field-group-head,.field-group-note,.field-wrap,.field-checklist){grid-column:1/-1}}
/* DES-21: never more than two columns; three across made tall cards clip. */
@media (prefers-reduced-motion:reduce){.field-body *{scroll-behavior:auto!important;transition:none!important}}
@media print{.field-top,.field-savebar,.field-filters,.field-offline{position:static!important;display:none!important}.field-shot{break-inside:avoid;background:#fff;color:#111}}
.field-body [hidden]{display:none!important}
@media (max-width:700px){.account-heading{padding-bottom:var(--sp-s3)}.account-heading h1{font-size:2rem}.account-org{display:none}.account-notice{margin:16px 0}.section-line a{display:inline-flex;align-items:center;min-height:44px}}
.section-line a{min-height:44px;display:inline-flex;align-items:center}
.field-clock{margin:14px 0;padding:14px 16px;border:1px solid var(--account-line);border-radius:11px;background:var(--account-soft);display:grid;gap:10px}.field-clock p{margin:0;font-size:15px}.field-clock .account-button{min-height:48px;width:100%;font-size:15px}
.field-clock[data-state="warn"]{border-color:var(--warning-line)}.field-clock[data-state="warn"] p{color:var(--account-demo)}.field-clock[data-state="late"]{border-color:var(--danger-line);background:var(--danger-soft)}.field-clock[data-state="late"] p{color:var(--danger-text-hi)}
@media (min-width:768px){.field-clock{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.field-clock p{flex:1 1 320px}.field-clock .account-button{width:auto}}
.shoot-plan-status-revised{margin:0;padding:10px 12px;border:1px solid var(--accent-line-strong);border-radius:9px;background:var(--accent-soft-2);font-size:14px}

/* Plan cards and the new-plan disclosure (presentation pass). */
.plan-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.plan-empty-state{text-align:center;padding:var(--sp-s6) var(--sp-s4)}.plan-empty-state .plan-empty-illustration{margin:0 auto var(--sp-s4);color:var(--accent)}
.plan-card h3{margin:6px 0 8px;font-size:20px;line-height:1.25}.plan-card h3 a{display:flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}.plan-card h3 a:hover{text-decoration:underline}
.plan-card-film{min-height:44px}
.plan-card-progress{display:grid;gap:6px;margin:12px 0}.plan-card-progress>span:first-child{font-size:14px;color:var(--ink)}
.plan-card-bar{display:block;height:6px;border-radius:99px;background:var(--panel-3);overflow:hidden}.plan-card-bar span{display:block;height:100%;background:var(--ok-fill)}
.plan-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;color:var(--muted)}
.plan-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.plan-card-actions .account-button{margin:0}
@media (max-width:640px){.plan-card-actions .account-button{flex:1 1 140px;text-align:center}}
.account-disclosure>summary{list-style:none;flex-wrap:wrap;gap:4px 12px;padding-right:28px;position:relative}
.account-disclosure>summary::-webkit-details-marker{display:none}
.account-disclosure>summary::after{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .15s}
.account-disclosure[open]>summary::after{transform:translateY(-30%) rotate(-135deg)}
.account-disclosure-hint{flex-basis:100%;font-size:14px;font-weight:500;color:var(--account-ok)}
.plan-card-actions .account-button:not(.account-button-secondary){background:var(--ok-fill);color:var(--on-accent);border-color:var(--ok-border);font-weight:700}
.shoot-plan-guided:is(input,select,textarea),.account-form :is(input,select,textarea){font-weight:400!important}
.shoot-plan-guided .shoot-plan-inline.shoot-plan-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.shoot-plan-more>summary{flex-wrap:wrap}.shoot-plan-more>summary span{display:block;flex-basis:100%;font-size:13px;font-weight:400;color:var(--text-muted-lo2)}
@media screen and (max-width:700px){.account-shot-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.account-shot-facts div{padding:8px 10px}.account-shot-facts div:nth-child(1),.account-shot-facts div:nth-child(n+4){grid-column:1/-1}}
[hidden]{display:none!important}
.account-form.shoot-plan-guided>*:not([type=hidden]){grid-column:1/-1}
.shoot-plan-steps li{display:flex;align-items:center;min-height:44px}.shoot-plan-steps li:last-child{color:var(--account-ok)}

/* Agent journey. */
.agent-steps{list-style:none;counter-reset:agent;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;margin:18px 0}
.agent-steps li{counter-increment:agent;position:relative;padding:14px 14px 14px 52px;border:1px solid var(--account-line);border-radius:10px;background:var(--account-soft)}
.agent-steps li::before{content:counter(agent);position:absolute;left:14px;top:14px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ok-fill);color:var(--on-accent);font-weight:750;font-size:14px}
.agent-steps strong{display:block}.agent-steps span{display:block;margin-top:4px;font-size:14px;color:var(--text-muted)}
.agent-code{display:block;margin:12px 0}.agent-code>span{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.agent-code textarea{display:block;width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--rule-stronger);border-radius:8px;background:var(--canvas-deep);color:var(--accent-text-hi);font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical;white-space:pre-wrap;word-break:break-all;overflow:auto}
.agent-revealed #agent-key-value{font-size:16px;white-space:pre-wrap;word-break:break-all;border-color:var(--ok-border)}
.agent-setups{display:grid;gap:10px;margin:12px 0}
.agent-setup{border:1px solid var(--account-line);border-radius:10px;padding:4px 16px 8px;background:var(--account-soft)}
.agent-setup>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-height:44px;padding-top:10px;font-weight:700;cursor:pointer}
.agent-setup>summary span{font-weight:400;font-size:14px;color:var(--text-muted)}
.agent-prompts{display:grid;gap:8px;padding:0;list-style:none}.agent-prompts li{padding:10px 14px;border-left:3px solid var(--ok-border);background:var(--account-soft);border-radius:0 8px 8px 0}
.agent-scope ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px}.agent-scope span{font-weight:700}
.agent-revoked{margin:8px 0 0;padding-left:18px;color:var(--text-muted)}
@media (max-width:700px){.agent-steps{grid-template-columns:1fr}.agent-code textarea{font-size:13px}}
.agent-revealed h3,.agent-journey h3{font-size:22px;margin:28px 0 6px}
.agent-code textarea{field-sizing:content;min-height:3.2em}
.agent-scope li{font-size:15px;line-height:1.45}.agent-scope ul{gap:4px}.agent-intro .agent-setup{margin-top:14px}.agent-setup>p{margin:4px 0 12px;color:var(--text-soft)}
.agent-howto{display:grid;gap:10px;margin:12px 0;padding-left:24px}.agent-howto li{padding-left:4px;line-height:1.5}.agent-howto li::marker{color:var(--account-ok);font-weight:700}
.agent-dev{margin-top:24px}
/* Moving between shots (Shoot Plan Release A, Task 2b): plan page and field mode. Display only. */
.shoot-plan-selected{margin-top:20px;padding:20px;border:1px solid var(--accent-border);border-radius:12px;scroll-margin-top:16px}.shoot-plan-selected h2{margin:4px 0 6px;overflow-wrap:anywhere}
.shoot-plan-shot-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.shoot-plan-shot-nav>*{flex:1 1 140px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center}.shoot-plan-shot-nav span[aria-disabled]{opacity:.6;border-style:dashed}
.shoot-plan-paid-card.is-selected{outline:2px solid var(--accent-border);outline-offset:2px}.shoot-plan-selected-note{margin:4px 0;font-size:14px;font-weight:700;color:var(--accent)}
.shoot-plan-filter-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.shoot-plan-filter-links a{min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border:1px solid var(--accent-line-strong);border-radius:99px;color:var(--ink);text-decoration:none;font-size:14px}.shoot-plan-filter-links a[aria-current]{background:var(--accent-fill);border-color:var(--accent-border);color:var(--on-accent);font-weight:700}
.shoot-plan-finder>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}.shoot-plan-finder h3{margin:18px 0 4px;font-size:16px}.shoot-plan-find{margin:12px 0}
.shoot-plan-finder-list{list-style:none;margin:0;padding:0}.shoot-plan-finder-list li{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;border-top:1px solid var(--account-line)}.shoot-plan-finder-list a{min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere}.shoot-plan-finder-list span{color:var(--muted);font-size:13px}
.field-shot-nav{display:flex;gap:8px;grid-column:1/-1;margin-top:10px}.field-shot-nav>*{flex:1 1 0;min-height:44px;display:flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid var(--accent-line-strong);border-radius:10px;color:var(--ink);text-decoration:none;font-size:14px;text-align:center}.field-shot-nav span[aria-disabled]{opacity:.6;border-style:dashed}
.field-shot.is-selected{outline:2px solid var(--accent-border);outline-offset:2px}.field-selected{margin:8px 0 0;font-size:13px;font-weight:700;color:var(--accent)}
.field-finder{margin:10px 0}.field-finder>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}.field-find label{display:grid;gap:6px}.field-find input{min-height:44px;font-size:16px}
@media print{.shoot-plan-selected,.shoot-plan-finder,.shoot-plan-filter-links,.shoot-plan-search,.field-shot-nav,.field-finder,.field-selected,.shoot-plan-selected-note{display:none!important}.shoot-plan-paid-card[hidden]{display:block!important}}
/* Keep context (Shoot Plan Release A, Task 2c) and UX-03: sticky bars never cover the focused control. */
html:has(body.field-body){scroll-padding-top:90px;scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}
@media (max-width:1024px){html:has(.shoot-plan-save){scroll-padding-bottom:96px}}
.shoot-plan-close{float:right;min-height:44px;display:inline-flex;align-items:center;padding:0 8px;margin:-8px -8px 0 12px}
.shoot-plan-help{margin:12px 0;padding:12px 16px;border-left:3px solid var(--accent-border);background:var(--account-soft);scroll-margin-top:16px}.shoot-plan-help h3{margin:0 0 6px;font-size:16px}
@media print{.shoot-plan-close{display:none!important}}
/* Truthful save and sync states (Shoot Plan Release A, Task 2d). The words carry the state; colour only repeats it. */
body[data-sync="sending"] .field-sync{color:var(--account-demo)}body:is([data-sync="unsaved"],[data-sync="rejected"],[data-sync="conflict"]) .field-sync{color:var(--danger-text);font-weight:650}
/* WL-35: the paid plan sync line is a plain status line (it was the old Save button's fill). States that need action are bold with a bar, not only coloured. */
.field-sync.shoot-plan-save{font-size:14px;line-height:1.5}body:is([data-sync="blocked"],[data-sync="unsaved"],[data-sync="rejected"],[data-sync="conflict"]) .field-sync.shoot-plan-save{padding-left:12px;border-left:3px solid currentColor;font-weight:700}
/* Plan outputs (Shoot Plan Release A, Task 3): full text shown before download or print; print shows only the text. */
.shoot-plan-output-text{margin:16px 0;padding:16px;border:1px solid var(--account-line);border-radius:12px;background:var(--account-soft);color:var(--ink);font:inherit;font-size:15px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;max-width:72ch}
.shoot-plan-output-links{list-style:none;margin:0;padding:0}.shoot-plan-output-links li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--account-line)}.shoot-plan-output-links a{min-height:44px;display:inline-flex;align-items:center;font-weight:700}.shoot-plan-output-links span{color:var(--muted);font-size:14px}
@media print{.shoot-plan-output .eyebrow,.shoot-plan-output .shoot-plan-hint,.shoot-plan-prepare{display:none!important}.shoot-plan-output-text{border:0;padding:0;background:#fff;color:#111;max-width:none;font-size:11pt}}
/* Participant briefs (Shoot Plan Release A, Task 7): editable before copying; print shows each brief as first shown. */
.shoot-plan-output-person{margin-top:24px;padding-top:12px;border-top:1px solid var(--account-line)}.shoot-plan-output-edit{width:100%;box-sizing:border-box;margin:8px 0;font:inherit;font-size:15px;line-height:1.55}.shoot-plan-print-only{display:none}
@media print{.shoot-plan-output-edit,.shoot-plan-output-person label,.shoot-plan-output-person p{display:none!important}.shoot-plan-print-only{display:block!important}}

/* Release A saved-setup choices:long confirmation badges must wrap, not widen a phone page. */
.account-form.shoot-plan-setup-form{grid-template-columns:minmax(0,1fr)}
.account-form.shoot-plan-setup-form .account-choice{display:grid;align-items:start}
.shoot-plan-setup-form .account-choice>span{min-width:0;overflow-wrap:anywhere}
.shoot-plan-setup-form .account-badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}

/* Basket and orders (28 September 2026). */
.basket-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:14px}
.basket-item{padding:var(--sp-s4)}.basket-item-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.basket-item-link{display:block;min-width:0;color:inherit;text-decoration:none;border-radius:8px}
.basket-item-title{display:block;color:var(--muted);font-size:var(--sp-fs-meta);letter-spacing:.04em;text-transform:uppercase}
.basket-item-link>strong{display:block;margin:6px 0;font-size:20px}
.basket-item-meta,.basket-item-link p{margin:4px 0;font-size:var(--sp-fs-meta);overflow-wrap:anywhere}
.basket-item-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.basket-edit,.basket-remove{min-height:var(--sp-tap)}
.basket-item-link:focus-visible{outline:2px solid var(--accent-border);outline-offset:4px}
.basket-remove{min-height:44px}
.basket-total{display:grid;gap:8px;margin-bottom:14px}
.basket-total p{margin:0}
.basket-total>span{display:block;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.basket-total>strong{display:block;font-size:24px}
.basket-total .basket-checkout-form .basket-country-refusal:empty{display:none}
.basket-total .basket-checkout-form button.account-button[aria-disabled="true"]{border:2px dashed var(--rule-stronger);background:transparent;color:var(--muted);cursor:not-allowed}
.order-help{margin-top:28px}
@media (max-width:640px){.basket-item{grid-template-columns:minmax(0,1fr)}}
.orders-list{list-style:none;margin:0 0 16px;padding:0;border:1px solid var(--account-line);border-radius:9px}
.orders-list>li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main total" "status action";gap:12px 20px;align-items:center;padding:16px;border-bottom:1px solid var(--account-line)}
.orders-list>li:last-child{border-bottom:0}
.orders-list.order-items>li{grid-template-columns:minmax(0,1fr) auto minmax(110px,auto);grid-template-areas:"main total action"}
.order-main{grid-area:main;display:grid;gap:4px;min-width:0}
.order-main strong{overflow-wrap:anywhere}
.order-meta{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.order-total{grid-area:total;font-variant-numeric:tabular-nums;white-space:nowrap}
.order-status{grid-area:status;min-width:0}
.order-status .account-badge{max-width:100%;white-space:normal;overflow-wrap:anywhere;box-sizing:border-box;margin:0}
.order-action{grid-area:action;display:flex;flex-wrap:wrap;gap:8px;justify-self:end;min-width:0;max-width:100%}
.order-action>a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;box-sizing:border-box}
.order-action .account-form-compact{display:block;min-width:0;max-width:100%;margin:0}
.order-action .account-button{box-sizing:border-box;min-width:0;min-height:44px}
.orders-list.order-items>.order-sum{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main total"}
.order-sum>strong{grid-area:main}
@media (max-width:640px){
.orders-list>li,.orders-list.order-items>li{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "total" "status" "action"}
.orders-list.order-items>li{grid-template-areas:"main" "total" "action"}
.order-action{justify-self:stretch}
.order-action>*{flex:1 1 9rem}
.order-action .account-button{width:100%}
.order-meta .order-date{white-space:normal}
}

/* QA 28 September:contain account forms and wrap navigation without clipping labels. */
.account-main{overflow-wrap:anywhere}
.account-main:is(form,label,fieldset,select,input,textarea){min-width:0;max-width:100%;box-sizing:border-box}
.account-main select{width:100%}
.order-date{white-space:nowrap}
.plan-card-bar{width:100%;height:6px;border:0;appearance:none;-webkit-appearance:none;background:var(--panel-3);color:var(--account-ok)}
.plan-card-bar::-webkit-progress-bar{background:var(--panel-3)}
.plan-card-bar::-webkit-progress-value{background:var(--ok-fill)}
.plan-card-bar::-moz-progress-bar{background:var(--ok-fill)}
.shoot-plan-row-more>summary{border:1px solid var(--accent-line-strong);border-radius:8px;padding:10px 14px;margin:10px 0;font-weight:700;min-height:44px}
@media(max-width:1024px){.shoot-plan-save{position:static;box-shadow:none;width:100%;min-width:0}}
/* WL-36 (ET-1, ACC36-1): while a tick on the paid plan has not saved, its line stays on screen (all widths; print hides it above) and each such box is marked. */
body:is([data-sync="unsaved"],[data-sync="rejected"],[data-sync="conflict"]) .field-sync.shoot-plan-save{position:sticky;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;padding:10px 12px;border:1px solid var(--rule-strong);border-left:3px solid currentColor;border-radius:9px;background:var(--panel-2);box-shadow:0 10px 28px var(--shadow)}
html:has(body:is([data-sync="unsaved"],[data-sync="rejected"],[data-sync="conflict"]) .field-sync.shoot-plan-save){scroll-padding-bottom:calc(160px + env(safe-area-inset-bottom))}
.shoot-plan-paid-progress .shoot-plan-not-saved{display:block;width:fit-content;margin:0 0 6px;padding:1px 8px;border:2px solid currentColor;border-radius:4px;background:var(--danger-soft);color:var(--danger-text);font-size:13px;font-weight:700;line-height:1.4}
.shoot-plan-paid-list .shoot-plan-not-saved{margin:0 0 8px 44px}
@media print{.shoot-plan-paid-progress .shoot-plan-not-saved{display:none!important}}
@media (max-width:1179px){.account-side{flex-wrap:nowrap!important;overflow-x:auto}}
@media (max-width:390px){.account-side{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:thin;mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}.account-side a{flex:0 0 auto;min-width:max-content;overflow:visible;text-overflow:clip}}
/* The tick box sits at the top of its card, beside the title, not halfway down a long card. */
.shoot-plan-paid-check{min-width:44px;min-height:44px;align-items:start;align-self:start;padding-top:2px}
.shoot-plan-paid-check input,.shoot-plan-paid-list input{width:30px;height:30px}
/* Give field sync its own row, outside the scrolling shots:it cannot cover a checkbox even when text wraps. */
@media screen {
  .field-plan-body{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
  .field-plan-body>.field-top,.field-plan-body>.field-test{flex:0 0 auto}
  .field-plan-body>.field-main{flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:24px;scroll-padding-block:16px}
  .field-plan-body>.field-savebar{position:static;flex:0 0 auto}
}
/* One slim status bar (DES-02): mode, one action, details folded. Amber means test mode. */
.status-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 var(--sp-s4);min-height:var(--sp-tap);padding:var(--sp-s2) var(--sp-s3);border:1px dashed var(--account-line);border-radius:8px;background:transparent;font-size:var(--sp-fs-body);line-height:var(--sp-lh-body)}
.status-bar-test{border-color:var(--warning-line);background:var(--warning-soft)}
.status-bar-text{margin:0;flex:1 1 auto;display:block}
.status-bar-text .status-dot{display:inline-block;vertical-align:middle;margin-right:8px}
.status-dot{width:10px;height:10px;border-radius:50%;background:var(--warning-line-hi);flex:none}
.status-bar-action{margin:0}
.status-bar-action .account-button{min-height:var(--sp-tap);padding:6px 14px;font-size:var(--sp-fs-meta)}
.status-bar .status-bar-more{order:1;margin:0;padding:0;border:0;font-size:var(--sp-fs-meta);color:var(--muted)}
.status-bar .status-bar-action{order:2}
.status-bar .status-bar-more[open]{flex-basis:100%;order:3}
.status-bar .status-bar-more>summary{cursor:pointer;min-height:var(--sp-tap);display:inline-flex;align-items:center;padding:0;font-size:var(--sp-fs-meta);font-weight:500;letter-spacing:0;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.status-bar-more ul{margin:6px 0 4px;padding-left:18px;font-size:var(--sp-fs-meta)}
.status-bar-more li{margin:4px 0;font-size:var(--sp-fs-meta);line-height:var(--sp-lh-body)}
.sp-back{display:inline-flex;align-items:center;gap:8px;min-height:var(--sp-tap);padding:0 16px 0 12px;margin:0 0 var(--sp-s4);border:1px solid var(--rule-strong);border-radius:999px;background:var(--panel);color:var(--ink);font-size:var(--sp-fs-body);font-weight:600;text-decoration:none}
.sp-back:hover{border-color:var(--accent-border)}.sp-back:focus-visible{outline:3px solid var(--accent-line-bright);outline-offset:2px}
/* Planning steps (§4.2): framed step bar outside the form. */
.step-indicator{margin:0 0 var(--sp-s5);padding:var(--sp-s4);border:1px solid var(--account-line);border-radius:12px;background:var(--panel);max-width:var(--sp-col)}
.step-indicator-now{margin:0 0 var(--sp-s3);font-size:var(--sp-fs-kicker);font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--muted)}
.step-indicator ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-s2);margin:0;padding:0;list-style:none}
.step-indicator .step{display:flex;align-items:center;gap:var(--sp-s2);min-height:var(--sp-tap);font-size:var(--sp-fs-hint);line-height:1.25;color:var(--muted);overflow-wrap:normal;word-break:normal}
.step-indicator .step a{display:flex;align-items:center;gap:var(--sp-s2);min-height:var(--sp-tap);color:inherit;text-decoration:none}
.shoot-plan-scope-line a{display:inline-flex;align-items:center;min-height:var(--sp-tap)}
.step-number{flex:0 0 32px;width:32px;height:32px;border:2px solid var(--account-line);border-radius:50%;display:grid;place-items:center;font-size:var(--sp-fs-meta);font-weight:700}
.step-indicator .step-now{color:var(--ink);font-weight:700}
.step-indicator .step-now .step-number{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}
.step-indicator .step-done .step-number{border-color:var(--accent-border);color:var(--accent)}
.step-indicator .step-done .step-number::before{content:"✓";font-size:var(--sp-fs-meta)}
.step-indicator .step-done .step-number{font-size:0}
@media (max-width:699px){
/* EH-1: at phone widths the steps sit 8px apart, so the focus ring of a step link is drawn inside its 44px box. */
.step-indicator .step:not(.step-now) .step-link:focus-visible{outline-offset:-3px;border-radius:8px}
  .step-indicator ol{grid-template-columns:repeat(4,auto);justify-content:space-between}
  .step-indicator .step:not(.step-now) .step-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .step-indicator .step:not(.step-now) .step-link{justify-content:center;margin-inline:-6px}
}
.sp-kicker{font-size:var(--sp-fs-kicker);font-weight:600;letter-spacing:.04em;text-transform:none;color:var(--muted)}
.account-main h3{font-size:var(--sp-fs-h3)}
.shoot-plan-review .account-error a,.shoot-plan-more>summary{font-size:var(--sp-fs-hint)}
:is(.account-form,form[action="/account/support/request"],.account-card form:has(label)) :is(input:not([type="hidden"]):not([type="checkbox"]),select,textarea){font-size:var(--sp-fs-body)}
@media (min-width:701px) and (max-width:1179px){.account-body .top .nav a{font-size:var(--sp-fs-body)}}
.shoot-plan-order-line{margin:0 0 12px;font-size:14px;color:var(--muted)}
.shoot-plan-result-hero>.shoot-plan-progress-overview{margin:18px 0 22px}
/* DES-21: Previous and Next only on the shot you have moved to (single-shot focus); in the list they are noise, and a
   disabled "No previous shot" is never shown. The links stay in the page, so moving still works without scripts. */
.field-shot:not(.is-selected):not(:target) .field-shot-nav{display:none}
.field-shot-nav span[aria-disabled]{display:none}
/* Field mode screen switch (DES-33). */
.field-top:has(.field-theme:not([hidden])){grid-template-columns:auto minmax(0,1fr) auto}
.field-theme{min-height:44px;padding:0 14px;border:1px solid var(--account-line);border-radius:9px;background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.field-theme[aria-pressed="true"]{border-color:var(--accent-border)}
@media(max-width:700px){.field-top:has(.field-theme:not([hidden])){grid-template-columns:auto minmax(0,1fr)}.field-theme{grid-column:1/-1;justify-self:end}}
/* DES-03: "+ Add" looks like a secondary button and only shows while the part is folded; an open part has Remove. */
.shoot-plan-row-more>summary{display:inline-flex;width:auto;background:transparent;color:var(--ink);border:1px solid var(--rule-strong);border-radius:9px;font-weight:600}
.shoot-plan-row-more>summary::before{content:"+";border:0;width:auto;height:auto;margin-right:8px;font-size:18px;line-height:1}
.shoot-plan-row-more[open]>summary{display:none}
.shoot-plan-remove{justify-self:start;margin-top:4px}
/* AI assistant page (DES-24/25/26). */
.agent-copy{display:flex;align-items:center;gap:12px;margin:8px 0}
.agent-copy [role=status]{font-size:14px;color:var(--accent)}
.agent-step-note{font-size:13px;font-weight:400;color:var(--muted)}
.agent-status{padding:10px 14px;border:1px dashed var(--account-line);border-radius:9px}
/* Plan cards and archive (DES-06, DES-07). */
.plan-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.plan-card-film{font-size:14px}
.plan-card-archive{margin:0 0 0 auto}
.plan-card-archive .account-button{min-height:36px;padding:6px 12px;font-size:13px}
.plan-archive>summary{font-size:18px;font-weight:650;min-height:44px;display:flex;align-items:center;cursor:pointer}
.review-edit{white-space:nowrap;font-weight:600}
/* DES-15: a completed story part folds to one line; Edit opens it. */
.shoot-plan-row-done{border:1px solid var(--account-line);border-radius:9px;margin:0 0 10px;padding:0}
.shoot-plan-row-done>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:48px;padding:8px 14px;cursor:pointer;list-style:none;font-weight:600}
.shoot-plan-row-done>summary::-webkit-details-marker{display:none}
.shoot-plan-row-edit{color:var(--accent);font-size:14px;text-decoration:underline;text-underline-offset:3px}
.shoot-plan-row-done[open]>summary .shoot-plan-row-edit{display:none}
.shoot-plan-row-done>fieldset{margin:0;border:0;border-top:1px solid var(--account-line);border-radius:0 0 9px 9px}
/* Launch batch 1 (R2-01, R2-02): one start point, the steps on their own page, people named in Step 1. */
.shoot-plan-begin{margin:0 0 24px}
.shoot-plan-begin-new .account-button{min-width:200px;justify-content:center}
.shoot-plan-begin-new .shoot-plan-hint{margin:8px 0 0}
.shoot-plan-begin .plan-card-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.shoot-plan-scope-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin:0 0 14px;padding:10px 14px;border:1px solid var(--rule-strong);border-radius:9px;background:var(--panel-2);font-size:14px}
.shoot-plan-scope-line a{font-weight:650}
.shoot-plan-flow>.account-section:first-child{margin-top:0}
#shoot-plan-scope .account-form{grid-template-columns:minmax(0,1fr);gap:var(--sp-s5);width:min(100%,var(--sp-field));max-width:var(--sp-field)}
#shoot-plan-scope .account-option-groups{grid-template-columns:minmax(0,1fr);gap:var(--sp-s5)}
#shoot-plan-scope .account-option-groups .account-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--sp-s4)}
@media (max-width:480px){#shoot-plan-scope .account-option-groups .account-option-grid{grid-template-columns:1fr}}
#shoot-plan-scope .account-form .account-button{min-height:var(--sp-tap-primary)}
.shoot-plan-step1-next{margin:var(--sp-s3) 0 0;font-size:var(--sp-fs-hint);color:var(--muted)}
.shoot-plan-basket-after{margin:var(--sp-s4) 0 0;font-size:var(--sp-fs-hint)}
.people-names{margin:0;padding:0;border:0;min-width:0}
.people-names legend{font-weight:650;margin-bottom:6px;padding:0}
.people-names label{display:block;margin:8px 0}
.people-more>summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font-weight:650;color:var(--accent)}
.field-error{display:block;margin:6px 0 0;color:var(--danger-text-hi);font-weight:650;font-size:var(--sp-fs-hint)}
select[aria-invalid="true"]{border-color:var(--danger-line-hi);outline:2px solid var(--danger-line-hi);outline-offset:1px}
.sales-closed a{font-weight:650}
/* Launch batch 1, item 3: hide an unpaid, closed order (nothing is deleted). */
.orders-history,.orders-hidden{margin-top:20px}
.orders-history>summary,.orders-hidden>summary{min-height:44px;box-sizing:border-box;display:list-item;list-style-position:inside;padding:10px 0;cursor:pointer;font-weight:650}
.orders-history:not([open])>:not(summary),.orders-hidden:not([open])>:not(summary){display:none}
/* Batch 4b §3–§4: account chrome, wizard and Step 1 geometry. */
.account-body .brand small{font-size:var(--sp-fs-meta);letter-spacing:.12em;margin-top:4px}
.account-body .top .nav a{font-size:var(--sp-fs-body);min-height:var(--sp-tap)}
@media(min-width:701px) and (max-width:1179px){.account-body .top .nav{justify-content:flex-end;gap:24px}}
.account-footer .footer-bottom{font-size:var(--sp-fs-meta)}
.account-footer .footer-bottom a{display:inline-flex;align-items:center;min-height:var(--sp-tap);padding-block:12px;font-size:var(--sp-fs-body);line-height:var(--sp-lh-ui)}
.sp-step-title{font-size:var(--sp-fs-h2);line-height:var(--sp-lh-tight);margin:0 0 var(--sp-s3);font-weight:700}
#shoot-plan-scope .account-choice{min-height:var(--sp-tap-primary);align-items:center}
#shoot-plan-scope fieldset label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:var(--sp-tap-primary);padding:8px 12px;border:1px solid var(--rule-strong);border-radius:8px;background:var(--panel);font-size:var(--sp-fs-body);font-weight:500;line-height:var(--sp-lh-ui);cursor:pointer}
#shoot-plan-scope fieldset label:has(input[type=checkbox]:checked){border-color:var(--accent-border);background:var(--accent-soft-2)}
#shoot-plan-scope fieldset input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:var(--sp-accent-fill,var(--accent-fill))}
#shoot-plan-scope .sp-project-type{margin:0;padding:0;border:0;min-width:0;background:none}
#shoot-plan-scope .sp-project-type-card:has(input:focus-visible){outline:3px solid var(--accent-line-bright);outline-offset:2px}
#shoot-plan-scope .sp-project-type legend{font-size:var(--sp-fs-body);font-weight:650;margin-bottom:var(--sp-s2);padding:0}
#shoot-plan-scope .sp-project-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-s3)}
@media (max-width:480px){#shoot-plan-scope .sp-project-type-grid{grid-template-columns:1fr}}
#shoot-plan-scope .sp-project-type-card{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:12px;min-height:64px;padding:8px 12px;border:1px solid var(--rule-strong);border-radius:8px;background:var(--panel);font-size:var(--sp-fs-body);font-weight:500;line-height:var(--sp-lh-ui);cursor:pointer}
#shoot-plan-scope .sp-project-type-card:has(:checked){border-color:var(--accent-border);background:var(--accent-soft-2);box-shadow:inset 0 0 0 1px var(--accent-border)}
#shoot-plan-scope .sp-project-type-card:focus-within{outline:3px solid var(--accent-line-bright);outline-offset:2px}
#shoot-plan-scope .sp-project-type-card input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#shoot-plan-scope .sp-project-type-card input:focus{outline:none}
#shoot-plan-scope .sp-project-type-card img{color:var(--accent);display:block;pointer-events:none}
#shoot-plan-scope .sp-project-type .sp-hint{margin:var(--sp-s3) 0 0;font-size:var(--sp-fs-hint);font-weight:400;color:var(--muted)}
#shoot-plan-scope .sp-lead{margin:0 0 var(--sp-s4)}
@media(max-width:480px){#shoot-plan-scope .sp-project-type-card img{display:none}#shoot-plan-scope .sp-project-type-card{grid-template-columns:1fr;min-height:48px}#shoot-plan-scope .account-section{padding-top:var(--sp-s4)}#shoot-plan-scope .status-bar{margin-bottom:var(--sp-s2);padding:var(--sp-s2)}#shoot-plan-scope .step-indicator{margin-bottom:var(--sp-s3);padding:var(--sp-s2)}#shoot-plan-scope .sp-back{margin-bottom:var(--sp-s2)}}
.shoot-plan-guided.wizard-active #intake-story[hidden]{display:none!important}
.shoot-plan-guided.wizard-active #intake-constraints[hidden]{display:none!important}
.shoot-plan-guided:not(.wizard-active) #intake-constraints[hidden]{display:block!important;height:auto!important;visibility:visible!important}
.shoot-plan-guided.wizard-active .shoot-plan-wizard-submit[hidden],.shoot-plan-guided.wizard-active .shoot-plan-wizard-next[hidden]{display:none!important}
.shoot-plan-guided:not(.wizard-active) .shoot-plan-wizard-next{display:none!important}
.shoot-plan-guided:not(.wizard-active) .shoot-plan-wizard-submit[hidden]{display:inline-flex!important}
.shoot-plan-intake-step h3{font-size:var(--sp-fs-h3);margin:var(--sp-s4) 0 var(--sp-s2)}
.sp-sub-title{font-size:1.25rem}
.sp-change-answers>summary,.shoot-plan-review details>summary{min-height:44px;display:flex;align-items:center}
.shoot-plan-review .account-error a{display:inline-flex;align-items:center;min-height:44px}
@media (min-width:701px) and (max-width:1179px){.account-side a{font-size:1rem}}
.shoot-plan-more>summary span,.shoot-plan-review li small,.shoot-plan-review li strong,.shoot-plan-review .review-edit,.shoot-plan-review .account-badge,.shoot-plan-review .account-card li{font-size:.875rem}
.shoot-plan-review details li{font-size:.875rem}

.signin-card input{font-size:16px}
.signin-divider,.signin-security{font-size:.875rem}
.signin-card a,.signin-security a{display:inline-flex;align-items:center;min-height:44px}
.signin-forgot a{display:inline-block;padding:12px 0;min-height:44px}

.shoot-plan-status-line,.account-lead,.shoot-plan-result-summary,.field-instruction,.field-group-note,.field-hint,.shoot-plan-assumptions li,.shoot-plan-coverage li,.shoot-plan-checklist li,.shoot-plan-risk-list li,.field-footnote,.shoot-plan-revision-line{font-size:16px}
.account-badge,.account-shot-meta,.account-shot-facts dt,.account-shot-facts dd,.shoot-plan-progress-copy span,.shoot-plan-order>span,.field-shot-meta,.account-org span,.table-wrap th,.account-button,.account-card summary,details summary,.shoot-plan-paid-progress summary,.account-card details>summary,.account-main small,.account-card small{font-size:14px}
.status-bar .status-bar-more>summary{min-height:44px;min-width:44px}
.account-main a,.account-main summary{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.account-main .basket-item-link{display:block;min-height:0}
@media (max-width:640px){.account-main .basket-item-main{grid-template-columns:minmax(0,1fr)}}
.account-main .shoot-plan-hint a{display:inline;min-height:0;min-width:0}
.field-title p{font-size:14px}
.field-hint,.field-offline .field-hint,.field-group-note,.field-instruction,.field-footnote{font-size:16px}
.field-main a,.field-top a,.field-plan-body a,.field-plan-body summary,.field-plan-body button{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
/* F-22: sign-in header Help, and the other header links, are at least 44px wide. */
.nav a,.account-side a{display:inline-flex;align-items:center;box-sizing:border-box;min-width:44px;min-height:44px}
/* Menu links sit inside .nav, so the rule above would leave them on one line. */
.account-menu-panel>a{display:flex;width:100%;box-sizing:border-box}
.signin-card a,.signin-security a{min-width:44px}

/* G-16: paragraph links keep a 44px tap area without stretching the paragraph. Both sign-in buttons are 16px. */
.signin-next a,.signin-security a{display:inline;padding-block:14px;margin-block:-14px;min-height:0;min-width:0}
.signin-provider a.button,.signin-card .account-button{font-size:16px}

/* G-17: a long title stays on one line so the header stays short and the shots keep the screen. */
.field-plan-body .field-top,.field-plan-body .field-top:has(.field-theme:not([hidden])){grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding-block:6px}
.field-plan-body .field-title{min-width:0}
.field-plan-body .field-title p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field-plan-body .field-title h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;line-height:1.2;margin:0}
.field-plan-body .field-back{white-space:nowrap}
.field-plan-body .field-theme{grid-column:auto;justify-self:end}
@media(max-height:500px){
.field-plan-body .field-test{padding:2px 12px;font-size:13px;line-height:1.3}
.field-plan-body .field-top{padding-block:4px}
.field-plan-body .field-title p{display:none}
.field-plan-body .field-savebar{padding-block:4px}
.field-plan-body .field-sync{font-size:13px;line-height:1.2}
.field-plan-body .field-save{min-height:44px}
}

/* G-19: account, field and sheet controls reach 44px. */
.plan-card-archive .account-button{min-height:44px;min-width:44px}
.theme-form .theme-option{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:4px 10px}
.theme-form .theme-option input{width:44px;height:44px}
.field-check input,.field-checkline input{width:44px;height:44px}
.sheet-screen-only a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
/* R7-1 (S7-16): an answer shown by an error link or a failed Continue keeps its label on screen. */
:is(.shoot-plan-guided,#shoot-plan-scope) :is(input,select,textarea),.shoot-plan-guided fieldset{scroll-margin-top:96px}
/* R7-2 (P-01): small account boxes beside their text; the label is the 44px tap target. */
.account-choice,.account-form label.account-choice{grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:start;min-height:44px;padding:12px}
.account-choice input[type="checkbox"],.account-form fieldset input[type="checkbox"],.shoot-plan-paid-check input,.shoot-plan-paid-list input{width:22px;height:22px;margin:2px 0 0;flex:none}
/* WL-7: WebKit lets a select's long option text (e.g. "Follow the previous process stage or result") count as page
   width, so the story and places steps scrolled sideways on iPhone. Paint containment keeps it inside the select. */
.shoot-plan-guided select{contain:paint}
/* R7-8: the guided form's first submit button is Enter's default ("Check my answers"), so Enter never presses a Remove
   button. It is never seen and takes no space; nothing on the page moves. */
.shoot-plan-guided .shoot-plan-default-submit{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;max-width:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* R7-11 and R7-22 (Editor E6/E9; the WL-33 Shoot Check pattern): an answer's message in the guided plan and Step 1 reads as
   an error, not a hint: "Error: " before it, a 4px left bar in a 1px box, danger fill and bold danger text (site tokens,
   light and dark). Step 1's "Change needed" message keeps its own label instead of the prefix. */
.account-form .field-error{display:block;margin:8px 0 0;padding:10px 12px 10px 14px;border:1px solid var(--danger-line-hi);border-left-width:4px;border-radius:8px;background:var(--danger-soft);color:var(--danger-text);font-size:14px;font-weight:650;line-height:1.45}
.account-form .field-error[hidden]{display:none}
.account-form .field-error:not(:has(.change-needed))::before{content:"Error: ";font-weight:750}
.account-form .field-error .change-needed{font-weight:750}
.account-form :is(input:not([type="checkbox"]):not([type="radio"]),textarea)[aria-invalid="true"]{border:2px solid var(--danger-line-hi)}
/* R7-40 (S7-15): each Step 1 error link on its own line. */
.step-one-error-banner a{display:flex;align-items:center;width:max-content;max-width:100%;min-height:44px}
/* R7-42 (E16, S7-13; PM Q6): fieldset titles in the guided plan and Step 1 sit inside their box, not across its border.
   The grid of each Person, Location, Key moment and Step 1 option fieldset is on an inner wrapper (.shoot-plan-row-body,
   .account-option-grid), so the legend is outside the grid and floats inside the border in WebKit as well. */
.shoot-plan-row>legend{margin-bottom:10px}
:is(.shoot-plan-guided,#shoot-plan-scope .account-option-groups) fieldset>legend,#shoot-plan-scope .people-names>legend{float:left;width:100%}
:is(.shoot-plan-guided,#shoot-plan-scope .account-option-groups) fieldset>legend+*,#shoot-plan-scope .people-names>legend+*{clear:both}
/* R7-42 error state (gate fix F3, Editor FINAL): the Project type legend sits inside its box, the error under the legend,
   and the invalid box keeps the cards inset from its border. */
#shoot-plan-scope .sp-project-type>legend{float:left;width:100%}
#shoot-plan-scope .sp-project-type>legend+*{clear:both}
#shoot-plan-scope .sp-project-type[aria-invalid="true"]{padding:8px 14px 12px;border:1px solid var(--danger-line);border-radius:8px;background:var(--panel)}
#shoot-plan-scope .sp-project-type[aria-invalid="true"]>legend{padding:0 5px;margin:0}
/* R7-43: an added person or place keeps one border, with no second line across its top. */
.shoot-plan-guided .shoot-plan-row-more[open]{border:0}
.shoot-plan-guided .shoot-plan-row-more[open]>fieldset{border:1px solid var(--account-line);border-radius:9px}
/* R7-43: answers on the story and places steps keep a field gap below them. */
.shoot-plan-intake-step>label,.shoot-plan-intake-step>.shoot-plan-inline{margin-bottom:var(--sp-s3)}
/* R7-24 (SI-11; Editor FINAL Q5, gate fix F1): up to 430px the field-mode plan title gets its own full-width line under the
   two header buttons and keeps G-17's one-line ellipsis, so the header stays short; the theme button may wrap so it never
   covers "Back to plan". 844x390 landscape keeps the one-row header. */
@media(max-width:430px){
.field-plan-body .field-top,.field-plan-body .field-top:has(.field-theme:not([hidden])){grid-template-columns:auto minmax(0,1fr);row-gap:4px;column-gap:12px}
.field-plan-body .field-back{grid-column:1;grid-row:1;justify-self:start}
.field-plan-body .field-theme{grid-column:2;grid-row:1;justify-self:end;white-space:normal;text-align:right}
.field-plan-body .field-title{grid-column:1 / -1;grid-row:2}
}
@media(max-width:340px){.field-plan-body .field-title p{display:none}}
/* R7-32 (gate fix F4): the account footer line breaks evenly, so "Shoot Plan account" is never split. */
.account-footer .footer-bottom>span:last-child{text-wrap:balance}
/* F11: each account menu link is its own 44px row at every width, not only on phones. */
.nav .account-menu-panel>a{display:flex;align-items:center;min-height:44px}
/* WL-37 NEW-1: while a tick is unsaved, a box reached by Tab is scrolled clear of the line at the bottom (WebKit does not
   apply the page's scroll-padding to a box that is already partly on screen). */
body:is([data-sync="unsaved"],[data-sync="rejected"],[data-sync="conflict"]) .shoot-plan-paid-progress input[name="completed"]{scroll-margin-bottom:calc(160px + env(safe-area-inset-bottom))}
/* WL-37 NEW-2: a shot card's "Not saved" marker sits on the card's top edge, in the gap above it, so nothing on the page
   moves when a tick fails or later saves. */
.shoot-plan-paid-progress .shoot-plan-paid-card{position:relative}
.shoot-plan-paid-progress .shoot-plan-paid-card .shoot-plan-not-saved{position:absolute;top:0;right:16px;margin:0;transform:translateY(-50%);z-index:1}
/* WL-37 NEW-3: once the checklist has scrolled away while a tick is unsaved, form.js docks the line at the bottom of the
   screen (fixed, lined up with the checklist). The form keeps the line's space, and the page gains room at its end, so
   nothing moves and nothing at the end of the page stays covered. */
body.plan-sync-docked .shoot-plan-paid-progress .field-sync.shoot-plan-save{position:fixed;left:var(--plan-sync-left,16px);width:var(--plan-sync-width,calc(100% - 32px));box-sizing:border-box;margin:0}
body.plan-sync-docked .shoot-plan-paid-progress{padding-bottom:var(--plan-sync-space,0px)}
body.plan-sync-docked{padding-bottom:calc(var(--plan-sync-bar,0px) + 24px + env(safe-area-inset-bottom))}
@media print{body.plan-sync-docked .shoot-plan-paid-progress .field-sync.shoot-plan-save{position:static}body.plan-sync-docked,body.plan-sync-docked .shoot-plan-paid-progress{padding-bottom:0}}
/* Review AC-1 (14 Oct 2026): while a tick is unsaved, any control reached by Tab on the plan page (not only the boxes) is
   scrolled clear of the "Not saved" line, sticky or docked; form.js keeps --plan-sync-bar at the line's height. */
body:is([data-sync="unsaved"],[data-sync="rejected"],[data-sync="conflict"]) main :is(a[href],button,input,select,textarea,summary,[tabindex]){scroll-margin-bottom:calc(var(--plan-sync-bar,148px) + 24px + env(safe-area-inset-bottom))}
html:has(body.plan-sync-docked){scroll-padding-bottom:calc(var(--plan-sync-bar,148px) + 24px + env(safe-area-inset-bottom))}

/* UX-20/21: one row of field controls; title stays readable with the shots. */
.field-plan-body .field-top,.field-plan-body .field-top:has(.field-theme:not([hidden])){grid-template-columns:minmax(0,1fr) auto;gap:8px;padding-block:6px}
.field-plan-body .field-top .field-back{grid-row:1;grid-column:1;align-self:center;margin:0}
.field-plan-body .field-top .field-theme{grid-row:1;grid-column:2;align-self:center;margin:0;white-space:nowrap;text-align:center}
.field-plan-body .field-main>.field-title{margin-bottom:12px}
.field-plan-body .field-main>.field-title h1{white-space:normal;overflow:visible;font-size:20px;line-height:1.3}
.field-plan-body .field-savebar{padding-block:4px;gap:8px}
.field-plan-body .field-savebar .field-save{min-height:44px;padding-inline:12px;background:transparent;color:var(--text-soft);border-color:transparent;font-size:14px;font-weight:500}
.field-plan-body .field-savebar .field-sync::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:currentColor}
.field-plan-body .field-offline{display:block}
.field-plan-body .field-offline-options{margin-top:4px}
.field-plan-body .field-offline-options .account-button{margin:4px 4px 4px 0}
.field-plan-body [data-field-offline-failure]{width:100%;padding:10px 12px;margin-bottom:12px;border:1px solid var(--account-line);border-radius:8px;background:var(--panel-2);color:var(--danger-text);font:inherit;text-align:left}
.shoot-plan-progress-overview>.shoot-plan-offline-notice{grid-column:1/-1;margin:0}
.shoot-plan-offline-notice:has([hidden]){display:none}

/* UX-11: only the account navigation changes on narrow phones. */
.account-side .account-nav-phone,.account-side .account-nav-more{display:none}
@media(max-width:430px){
 .account-frame>.account-side{position:relative;display:flex;justify-content:space-between;gap:0;overflow:visible;mask-image:none;}
 .account-side .account-nav-desktop{display:none}
 .account-side .account-nav-phone{display:inline-flex;min-width:44px;min-height:44px;padding:0 5px;font-size:14px}
 .account-side .account-nav-more{display:block;position:relative;margin:0;padding:0;border:0;min-width:44px}
 .account-side .account-nav-more>summary{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 4px;font-size:14px;cursor:pointer;list-style:none;color:var(--ink)}
 .account-side .account-nav-more>summary::-webkit-details-marker{display:none}
 .account-side .account-nav-more:not([open])>div{display:none}
 .account-side .account-nav-more>div{position:absolute;right:0;top:100%;z-index:45;min-width:180px;max-width:calc(100vw - 40px);padding:8px;border:1px solid var(--account-line);border-radius:8px;background:var(--panel);box-shadow:0 8px 24px var(--shadow)}
 .account-side .account-nav-more>div>a{display:flex;min-height:44px;white-space:normal}
}

/* UX-13: carried Shoot Check answers shown as one line; "Change" opens the same fields. */
.shoot-plan-carried-answers>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.shoot-plan-carried-change{text-decoration:underline;font-weight:600}

/* UX-16/17: answers folded under "More detail" keep the same 12px rhythm as the answers above them. */
.shoot-plan-guided .shoot-plan-more>:not(summary){margin-top:12px}
