/* PR A: production-ledger tokens and shell. Business view layouts remain owned by later slices. */
:root{
  --color-canvas:#f6f7f8;
  --color-surface:#ffffff;
  --color-surface-subtle:#eef1f3;
  --color-surface-raised:#ffffff;
  --color-nav:#202428;
  --color-nav-hover:#2b3035;
  --color-border:#d5dbe0;
  --color-border-strong:#b8c1c9;
  --color-text:#161a1d;
  --color-text-muted:#59636e;
  --color-text-soft:#77818b;
  --color-action:#1d6b5d;
  --color-action-hover:#154d44;
  --color-link:#245fb3;
  --color-success:#137a52;
  --color-success-bg:#e8f5ef;
  --color-warning:#7a4d00;
  --color-warning-bg:#fff4d6;
  --color-danger:#b4232d;
  --color-danger-bg:#fff0f1;
  --color-focus:#1769e0;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --radius-control:4px;
  --radius-surface:6px;
  --radius-dialog:8px;
  --shadow-overlay:0 8px 24px rgb(22 26 29 / .14);
  --motion-fast:100ms;
  --motion-standard:160ms;
  --motion-emphasis:220ms;
  --motion-panel:var(--motion-standard);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --bg:var(--color-canvas);
  --panel:var(--color-surface);
  --panel2:var(--color-surface-subtle);
  --line:var(--color-border);
  --muted:var(--color-text-muted);
  --text:var(--color-text);
  --green:var(--color-action);
  --green2:var(--color-action-hover);
  --blue:var(--color-link);
  --amber:var(--color-warning);
  --red:var(--color-danger);
  --radius:var(--radius-surface);
}

:root{
  --brand-accent:#1d6b5d;
  --brand-accent-ink:#154d44;
  --brand-accent-soft:#e7f1ed;
  --motion-press:110ms;
  --motion-hover:150ms;
  --motion-material:220ms;
  --motion-sheet:300ms;
}

html{background:var(--color-canvas);color-scheme:light}
body{background:var(--color-canvas);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Source Han Sans SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.45;letter-spacing:0}
button,input,textarea,select{font:inherit;letter-spacing:0}
button{touch-action:manipulation}
svg{display:block}
.button svg,.icon-btn svg,.nav-item svg,.mobile-nav-item svg,.mobile-more-item svg,.asset-tab svg,.sidebar-collapse svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
:where(button,a,input,select,textarea):focus:not(:focus-visible){outline:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
::selection{background:#cfe5df;color:var(--color-text)}

.button,.icon-btn{
  min-height:36px;
  border:1px solid var(--color-border-strong);
  border-radius:var(--radius-control);
  background:var(--color-surface);
  color:var(--color-text);
  transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),opacity var(--motion-fast) var(--ease-out);
}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;font-weight:650;white-space:normal;text-align:center}
.icon-btn{display:inline-grid;place-items:center;width:36px;padding:0}
.button:hover,.icon-btn:hover{border-color:#89959f;background:var(--color-surface-subtle)}
.button.primary{border-color:var(--color-action);background:var(--color-action);color:#fff}
.button.primary:hover{border-color:var(--color-action-hover);background:var(--color-action-hover)}
.button.secondary{color:var(--color-text)}
.button.ghost{border-color:transparent;background:transparent;color:var(--color-link)}
.button.danger,.button.secondary.danger{border-color:#e3a8ad;background:var(--color-surface);color:var(--color-danger)}
.button:disabled,.icon-btn:disabled{opacity:.5;cursor:not-allowed}
.button:active:not(:disabled),.icon-btn:active:not(:disabled),.nav-item:active,.mobile-nav-item:active,.mobile-more-item:active{transform:scale(.98)}
.button.is-busy,.icon-btn.is-busy{--busy-ink:var(--color-text);position:relative;cursor:progress;color:transparent;transition:color 0ms linear,transform var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),opacity var(--motion-fast) var(--ease-out)}
.button.primary.is-busy{--busy-ink:#fff}
.button.is-busy::before,.icon-btn.is-busy::before{content:"";position:absolute;width:14px;height:14px;box-sizing:border-box;flex:none;border:2px solid var(--busy-ink);border-right-color:transparent;border-radius:50%;animation:ui-spin .72s linear infinite;z-index:2}
.button.is-busy::before{content:none}
.icon-btn.is-busy::before{left:50%;top:50%;margin:-7px 0 0 -7px}
.button.is-busy::after{content:attr(data-busy-label);position:absolute;inset:0;display:grid;place-items:center;padding:0 8px;box-sizing:border-box;color:var(--busy-ink);white-space:nowrap}
.button.is-busy>*,.icon-btn.is-busy>*{opacity:0}
.icon-btn.is-busy::after{content:none}
@keyframes ui-spin{to{transform:rotate(360deg)}}

@media (hover:hover){
  .button:not(:disabled):hover,.icon-btn:not(:disabled):hover{box-shadow:0 2px 8px rgb(22 26 29 / .1);transform:translateY(-1px)}
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{
  border:1px solid var(--color-border-strong);
  border-radius:var(--radius-control);
  background:var(--color-surface);
  color:var(--color-text);
  transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out);
}
input::placeholder,textarea::placeholder{color:#7a858f;opacity:1}
input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-subtle);color:var(--color-text-soft)}

.ui-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:12px;font-weight:650;line-height:16px;transition:color var(--motion-standard) var(--ease-out),border-color var(--motion-standard) var(--ease-out),background-color var(--motion-standard) var(--ease-out),opacity var(--motion-standard) var(--ease-out)}
.ui-status.success{border-color:#9bd0b8;background:var(--color-success-bg);color:var(--color-success)}
.ui-status.warning{border-color:#e1c06d;background:var(--color-warning-bg);color:var(--color-warning)}
.ui-status.error{border-color:#e3a8ad;background:var(--color-danger-bg);color:var(--color-danger)}
.ui-state{display:grid;place-items:center;min-height:112px;padding:24px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-surface);background:var(--color-surface);color:var(--color-text-muted);text-align:center}
.ui-state.loading{background:linear-gradient(90deg,#eef1f3 25%,#f8f9fa 37%,#eef1f3 63%);background-size:400% 100%;animation:ui-skeleton 1.4s var(--ease-in-out) infinite;color:transparent}
.ui-state.error{border-style:solid;border-color:#e3a8ad;background:var(--color-danger-bg);color:var(--color-danger)}
.ui-state.empty{background:var(--color-surface);color:var(--color-text-muted)}
@keyframes ui-skeleton{0%{background-position:100% 0}100%{background-position:0 0}}

/* Authentication is defined once at the end of this file. */

/* Workspace shell owner: fixed dimensions prevent status and icon changes from shifting layout. */
.app-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100dvh;background:var(--color-canvas);opacity:1;transition:grid-template-columns var(--motion-standard) var(--ease-in-out),opacity var(--motion-standard) var(--ease-out)}
.app-shell[data-motion-state="entering"],.app-shell[data-motion-state="closing"]{opacity:0}
.app-shell.sidebar-collapsed{grid-template-columns:64px minmax(0,1fr)}
.app-shell>main{min-width:0;background:var(--color-canvas)}
.sidebar{position:sticky;top:0;z-index:40;display:flex;width:auto;height:100dvh;padding:16px 12px;border-right:0;background:var(--color-nav);color:#f5f7f8}
.sidebar .brand{display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:10px;min-height:52px;padding:0 2px 14px;border-bottom:1px solid #3a4046}
.sidebar .brand-copy{min-width:0}
.sidebar .brand strong{color:#f5f7f8;font-size:16px;line-height:20px}
.sidebar .brand small{color:#aeb8c0;font-size:11px;line-height:16px;letter-spacing:0}
.sidebar-collapse{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:#cbd2d8;cursor:pointer;transition:transform var(--motion-standard) var(--ease-in-out),background-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}
.sidebar-collapse:hover{background:var(--color-nav-hover);color:#fff}
.sidebar nav{padding-top:16px}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;height:42px;margin:2px 0;padding:0 11px;border:0;border-radius:var(--radius-control);background:transparent;color:#c3cbd1;text-align:left;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}
.nav-item svg{width:19px;height:19px}
.nav-item:hover{background:var(--color-nav-hover);color:#fff}
.nav-item.active{background:#f0f6f4;color:#174c41;box-shadow:none}
.nav-item .nav-label,.sidebar .brand-copy,.sidebar .storage>*{min-width:0;opacity:1;transform:translateX(0);transition:opacity var(--motion-fast) var(--ease-out),transform var(--motion-standard) var(--ease-out),visibility 0s linear 0s}
.nav-item .nav-label{width:auto;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar .storage{margin:0;padding:12px;border:1px solid #3a4248;border-radius:var(--radius-surface);background:#272c31;color:#c1c9cf;font-size:11px}
.sidebar .storage b{color:#8fd5bf;font-size:11px}
.sidebar .storage div{background:#3c444b}
.sidebar .storage i{background:#75c9ae}
.sidebar .storage small{display:block;color:#aeb8c0;font-size:11px;line-height:16px;overflow-wrap:anywhere}
.sidebar-collapsed .brand{grid-template-columns:36px;grid-template-rows:36px 32px;justify-content:center;padding-inline:0}
.sidebar-collapsed .nav-label,.sidebar-collapsed .storage>*{opacity:0;visibility:hidden;transform:translateX(-6px);pointer-events:none;transition-delay:0s,0s,var(--motion-fast)}
.sidebar-collapsed .brand-copy{display:grid;width:36px;height:36px;place-items:center;overflow:hidden}
.sidebar-collapsed .brand-copy strong{font-size:13px;line-height:15px;writing-mode:vertical-rl}
.sidebar-collapsed .brand-copy small{display:none}
.sidebar-collapsed .sidebar-collapse{display:grid;transform:rotate(180deg)}
.sidebar-collapsed .nav-item{justify-content:center;padding:0}
.sidebar-collapsed .storage{min-height:10px;padding:4px}

.topbar{position:sticky;top:0;z-index:30;display:flex;height:64px;padding:0 24px;border-bottom:1px solid var(--color-border);background:rgb(255 255 255 / .96);backdrop-filter:saturate(120%) blur(8px)}
.project-heading{min-width:0;gap:12px}
.project-heading>div{min-width:0}
.project-heading .eyebrow{color:var(--color-text-soft);font-size:11px;line-height:14px;letter-spacing:0}
.project-heading h1{max-width:min(36vw,520px);margin:2px 0 0;color:var(--color-text);font-size:16px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-pill{flex:none;max-width:180px;padding:5px 8px;border:1px solid #a8d2c3;border-radius:3px;background:var(--color-success-bg);color:#165b46;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--motion-standard) var(--ease-out),border-color var(--motion-standard) var(--ease-out),background-color var(--motion-standard) var(--ease-out),opacity var(--motion-standard) var(--ease-out)}
.status-pill i{background:var(--color-success)}
.top-actions{min-width:0;gap:8px}
.top-actions .button,.top-actions .icon-btn{flex:none}
.top-actions #exportTopBtn:disabled{border-color:transparent;background:transparent;color:var(--color-text-muted);opacity:.34;box-shadow:none}
.account-email{max-width:190px;color:var(--color-text-muted);font-size:12px}
.server-disclosure{min-height:34px;padding:7px 24px;border-bottom:1px solid #ead8a8;background:var(--color-warning-bg);color:var(--color-warning);font-size:12px}
.server-disclosure b{color:var(--color-warning)}

.project-state-card,.autopilot-card,.stepper{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}
.project-state-card{margin:16px 24px 0;border-radius:var(--radius-surface)}
.project-state-summary strong,.autopilot-card h2,.automation-state-summary dd{color:var(--color-text)}
.project-state-summary small,.autopilot-card p,.automation-state-summary dt{color:var(--color-text-muted)}
.autopilot-card{margin:12px 24px 0;border-radius:var(--radius-surface)}
.automation-state-summary>div{border-color:var(--color-border);background:var(--color-surface-subtle)}
.autopilot-actions>span{color:var(--color-action)}
.autopilot-card .button.primary:disabled{border-color:#a7b6b1;background:#dbe3e0;color:#3c4945;opacity:1}
.autopilot-card.blocked{border-color:#d8a9ae;background:#fff4f4}
.autopilot-card.blocked .autopilot-actions>span{color:var(--color-danger)}
.stepper{height:68px;margin-top:12px;padding:0 24px}
.stepper>i{background:var(--color-border)}
.step{color:var(--color-text-soft)}
.step b{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text-muted)}
.step.active{color:var(--color-text)}
.step.active b{border-color:var(--color-action);background:var(--color-action);color:#fff}

.page-body{min-height:calc(100dvh - 178px);background:var(--color-canvas)}
.content-area{padding:24px;background:var(--color-canvas)}
.inspector{border-color:var(--color-border);background:var(--color-surface)}
.inspector h2,.section-head h2,.dialog-head h2{color:var(--color-text)}
.inspector>label,.dialog-head p{color:var(--color-text-muted)}
.inspector select,.inspector input:not([type=range]),.prompt-editor input,.prompt-editor textarea,dialog input{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}
.option-grid button,.segmented button{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}
.option-grid button.active,.segmented button.active{border-color:#87b9aa;background:var(--color-success-bg);color:var(--color-action)}
.switch-row{border-color:var(--color-border);color:var(--color-text)}
.cost-box{border-color:var(--color-border);background:var(--color-surface-subtle)}

.upload-panel,.analysis-strip,.workbench-note,.project-record-hero,.pm-metrics-panel,.project-assets-panel,.project-record-card,.delivery-runtime-panel,.delivery-card,.batch-hero,.batch-stage,.product-vault-panel,.character-vault-panel,.asset-tab-content,.advanced-panel,.manual-delivery-body,.shot-sku-plan{
  border-color:var(--color-border);
  border-radius:var(--radius-surface);
  background:var(--color-surface);
  color:var(--color-text);
}
.upload-panel{border-color:var(--color-border-strong);background:var(--color-surface)}
.upload-panel p,.batch-hero p,.batch-stage header p,.delivery-card p,.project-record-hero span,.pm-metrics-panel p,.project-assets-panel p{color:var(--color-text-muted)}
.project-record-card:hover{border-color:#7cae9f;background:#fbfdfc}
.project-record-card.active{border-color:var(--color-action);box-shadow:inset 0 0 0 1px var(--color-action)}
.project-record-card h3,.pm-metric b,.project-asset-mini strong,.delivery-card h3,.batch-stage h3{color:var(--color-text)}
.project-record-next{border-color:var(--color-action);background:#eef7f4;color:#345149}
.project-record-metrics div,.pm-metric,.project-asset-mini,.batch-file-row,.batch-project-row,.batch-progress-row,.batch-scene-row,.batch-delivery-row,.batch-vault-card,.delivery-runtime-card,.manual-shot-card,.manual-asset-card{
  border-color:var(--color-border);
  background:var(--color-surface);
  color:var(--color-text);
}
.project-record-stage,.batch-state.ready{border-color:#9bd0b8;background:var(--color-success-bg);color:var(--color-success)}
.project-record-stage.blocked,.batch-state.blocked{border-color:#e3a8ad;background:var(--color-danger-bg);color:var(--color-danger)}
.project-record-stage.running,.batch-state.running{border-color:#e1c06d;background:var(--color-warning-bg);color:var(--color-warning)}
.batch-step-nav{border-color:var(--color-border);background:var(--color-surface)}
.batch-step-nav li{border-color:var(--color-border);color:var(--color-text-muted)}
.batch-step-nav li.active{color:var(--color-text)}
.batch-stage>header{border-color:var(--color-border);background:var(--color-surface-subtle)}
.asset-tabs{border-color:var(--color-border);background:var(--color-surface)}
.asset-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-color:var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}
.asset-tab.active{border-color:var(--color-action);background:var(--color-success-bg);color:var(--color-action)}
.empty-inline,.asset-empty,.project-record-empty{border-color:var(--color-border-strong);border-radius:var(--radius-surface);background:var(--color-surface);color:var(--color-text-muted)}
.toast{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-overlay);animation:none;opacity:1;transform:translateY(0) scale(1);transition:opacity var(--motion-standard) var(--ease-out),transform var(--motion-emphasis) var(--ease-out)}
.toast[data-motion-state="entering"],.toast[data-motion-state="closing"]{opacity:0;transform:translateY(8px) scale(.98)}
.toast.error{border-color:#e3a8ad;background:var(--color-danger-bg);color:var(--color-danger)}
.toast.success{border-color:#9bd0b8;background:var(--color-success-bg);color:var(--color-success)}
dialog{border-color:var(--color-border-strong);border-radius:var(--radius-dialog);background:var(--color-surface);color:var(--color-text);box-shadow:0 20px 60px rgb(22 26 29 / .22);opacity:0;transform:translateY(10px) scale(.985);transition:opacity var(--motion-standard) var(--ease-out),transform var(--motion-emphasis) var(--ease-out),display var(--motion-emphasis) allow-discrete,overlay var(--motion-emphasis) allow-discrete}
dialog[open]{opacity:1;transform:none}
dialog::backdrop{background:rgb(22 26 29 / .54);opacity:0;transition:opacity var(--motion-emphasis) var(--ease-out),display var(--motion-emphasis) allow-discrete,overlay var(--motion-emphasis) allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;transform:translateY(10px) scale(.985)}dialog[open]::backdrop{opacity:0}}

.view.active{animation:ui-content-enter var(--motion-emphasis) var(--ease-out) both}
@keyframes ui-content-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Evidence inspection remains deliberately dark and localized. */
.analysis-drawer{--color-text:#f2f5f7;--color-text-muted:#a8b0ba;--color-border:#37414c;--color-surface:#101419;color-scheme:dark;background:#101419;color:#f2f5f7}
.analysis-drawer :where(h2,h3,strong,label){color:#f2f5f7}
.analysis-drawer :where(input,textarea){border-color:#46515d;background:#151a20;color:#f2f5f7}

.mobile-bottom-nav,.mobile-more-panel,.mobile-more-backdrop{display:none}

@media (min-width:761px) and (max-width:1100px){
  .app-shell{grid-template-columns:64px minmax(0,1fr)}
  .sidebar .brand{grid-template-columns:36px;justify-content:center;padding-inline:0}
  .sidebar .brand-copy{display:grid;width:36px;height:36px;place-items:center;overflow:hidden}
  .sidebar .brand-copy strong{font-size:13px;line-height:15px;writing-mode:vertical-rl}
  .sidebar .brand-copy small,.sidebar .sidebar-collapse,.sidebar .nav-label,.sidebar .storage>*{display:none}
  .sidebar .nav-item{justify-content:center;padding:0}
  .sidebar .storage{min-height:10px;padding:4px}
  .topbar{padding-inline:18px}
  .top-actions .button span{display:none}
  .top-actions .button{width:36px;padding:0}
  .project-heading h1{max-width:360px}
}

@media (max-width:760px){
  body{padding-bottom:0}
  body.mobile-navigation-open{overflow:hidden}
  .app-shell,.app-shell.sidebar-collapsed{display:block;min-height:100dvh;padding-bottom:64px}
  .sidebar{display:none}
  .topbar{height:56px;padding:0 12px;gap:8px}
  .mobile-menu{display:inline-grid;flex:none;width:36px;height:36px;padding:0;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}
  .project-heading{flex:1;gap:8px;overflow:hidden}
  .project-heading h1{max-width:none;font-size:15px}
  .project-heading .eyebrow{display:none}
  .project-heading .status-pill{max-width:96px;font-size:11px}
  .top-actions{display:none}
  .server-disclosure{min-height:32px;padding:6px 12px;font-size:11px}
  .server-disclosure b{display:none}
  .project-state-card,.autopilot-card{margin-inline:12px}
  .stepper{height:56px;margin-top:8px;padding:0 12px;justify-content:flex-start;overflow-x:auto}
  .step{flex:none}
  .step span{display:block}
  .step small{display:none}
  .stepper>i{width:16px}
  .content-area{padding:16px 12px 24px}
  .page-body{display:block;min-height:calc(100dvh - 152px)}
  .inspector{padding:20px 12px}
  .mobile-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:80;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:64px;padding:4px max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));border-top:1px solid var(--color-border);background:rgb(255 255 255 / .98);box-shadow:0 -4px 16px rgb(22 26 29 / .08)}
  .mobile-nav-item{display:grid;grid-template-rows:22px 16px;place-items:center;min-width:0;padding:4px 2px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text-muted);font-size:11px;line-height:14px;transition:transform var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out)}
  .mobile-nav-item svg{width:20px;height:20px}
  .mobile-nav-item.active{background:var(--color-success-bg);color:var(--color-action)}
  .mobile-more-backdrop{position:fixed;inset:0;z-index:81;display:block;background:rgb(22 26 29 / .48);opacity:0;transition:opacity var(--motion-standard) var(--ease-out)}
  .mobile-more-panel{position:fixed;right:0;bottom:64px;left:0;z-index:82;display:grid;gap:8px;max-height:calc(100dvh - 96px);padding:16px 12px calc(16px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--color-border);border-radius:8px 8px 0 0;background:var(--color-surface);box-shadow:0 -12px 36px rgb(22 26 29 / .18);opacity:0;overflow:auto;transform:translateY(calc(100% + 12px));transition:opacity var(--motion-standard) var(--ease-out),transform var(--motion-emphasis) var(--ease-out)}
  .mobile-more-backdrop[data-motion-state="open"]{opacity:1}
  .mobile-more-panel[data-motion-state="open"]{opacity:1;transform:none}
  .mobile-more-panel[hidden],.mobile-more-backdrop[hidden]{display:none!important}
  .mobile-more-panel>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 4px 8px}
  .mobile-more-panel>header strong{font-size:16px}
  .mobile-more-panel>header span{color:var(--color-text-muted);font-size:12px}
  .mobile-more-item{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;min-height:56px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);text-align:left;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out)}
  .mobile-more-item svg{width:20px;height:20px;color:var(--color-action)}
  .mobile-more-item span,.mobile-more-item strong,.mobile-more-item small{display:block;min-width:0}
  .mobile-more-item small{margin-top:2px;color:var(--color-text-muted);font-size:11px}
  .mobile-more-item.danger svg,.mobile-more-item.danger strong{color:var(--color-danger)}
}

@media (max-width:430px){
  .project-heading .status-pill{display:none}
  .stepper{gap:0}
  .step b{width:26px;height:26px}
  .step span{font-size:12px}
  .auth-card{padding:28px 0}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .view.active,.toast,.mobile-more-panel{transform:none!important}
  .ui-state.loading{background-position:0 0!important}
}

/* Quiet Material Desk: one continuous production surface with authentication in the foreground. */
.auth-gate{position:relative;display:block;min-height:100dvh;padding:0;background:#edf0eb;color:var(--color-text);overflow:hidden;opacity:1;transition:opacity var(--motion-standard) var(--ease-out)}
.auth-gate[data-motion-state="entering"],.auth-gate[data-motion-state="closing"]{opacity:0}
.auth-product-preview{position:absolute;inset:0;min-width:0;background:linear-gradient(104deg,#e9ede7 0 57%,#f4f6f2 57% 100%);overflow:hidden}
.auth-product-preview::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgb(255 255 255/.26),transparent 34%,rgb(255 255 255/.34));pointer-events:none}
.brand-wordmark{letter-spacing:0}
.auth-brand{position:absolute;z-index:4;top:28px;left:clamp(24px,4.8vw,74px);display:flex;align-items:baseline;gap:14px;color:#18211f}
.auth-brand strong,.auth-mobile-brand strong{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Source Han Sans SC",sans-serif;font-size:22px;font-weight:760;line-height:28px;letter-spacing:0}
.auth-brand small,.auth-mobile-brand small{color:#63706c;font-size:12px;font-weight:600;line-height:18px;letter-spacing:0}
.auth-work-surface{position:absolute;top:98px;right:31vw;bottom:136px;left:clamp(24px,4.8vw,74px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;min-height:360px;padding:20px 22px 18px;border-top:1px solid rgb(255 255 255/.9);border-bottom:1px solid rgb(24 33 31/.18);background:rgb(242 245 240/.7);box-shadow:inset 0 1px rgb(255 255 255/.76),0 20px 54px rgb(24 33 31/.08);clip-path:polygon(0 0,100% 0,94% 100%,0 100%);animation:auth-surface-enter 520ms var(--ease-out) both}
.auth-surface-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;min-width:0}
.auth-surface-heading strong{font-size:16px;line-height:22px}
.auth-surface-heading span{max-width:230px;color:#63706c;font-size:12px;line-height:18px;text-align:right}
.auth-frame-continuum{position:relative;display:grid;grid-template-columns:minmax(0,1fr) clamp(116px,13vw,176px);min-height:0;border:1px solid rgb(24 33 31/.16);background:#cdd4ce;overflow:hidden}
.auth-frame-primary{position:relative;min-width:0;height:100%;margin:0;overflow:hidden}
.auth-frame-primary img,.auth-frame-edge img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(.98)}
.auth-frame-primary figcaption{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:12px 14px;color:#f7faf6;background:linear-gradient(0deg,rgb(18 29 26/.82),transparent);text-shadow:0 1px 8px rgb(0 0 0/.3)}
.auth-frame-primary figcaption strong{font-size:13px}.auth-frame-primary figcaption span{font-size:12px}
.auth-frame-edge{display:grid;grid-template-rows:1fr 1fr;border-left:1px solid rgb(255 255 255/.58);overflow:hidden}
.auth-frame-edge img:first-child{border-bottom:1px solid rgb(255 255 255/.58)}
.auth-focus-line{position:absolute;z-index:3;top:10%;bottom:10%;left:61%;width:1px;background:rgb(255 255 255/.88);box-shadow:0 0 0 1px rgb(24 33 31/.12);transition:transform var(--motion-material) var(--ease-out),box-shadow var(--motion-standard) var(--ease-out)}
.auth-focus-line::before{content:"";position:absolute;top:0;left:-4px;width:9px;height:9px;border-radius:50%;background:var(--brand-accent);box-shadow:0 0 0 3px rgb(255 255 255/.44)}
.auth-gate:has(.auth-card input:focus-visible) .auth-focus-line{transform:translateX(12px);box-shadow:0 0 0 1px rgb(29 107 93/.28)}
.auth-surface-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding-top:2px;color:#63706c;font-size:12px;line-height:18px}
.auth-surface-status span{color:var(--brand-accent-ink);font-weight:700}.auth-surface-status strong{color:#34413d}.auth-surface-status small{text-align:right}
.auth-form-pane{position:relative;z-index:5;display:flex;align-items:center;width:clamp(400px,34vw,510px);min-height:100dvh;margin-left:auto;padding:clamp(28px,7vh,70px) clamp(28px,4vw,64px);border-left:1px solid rgb(24 33 31/.14);background:linear-gradient(110deg,rgb(244 247 242/.8),rgb(252 253 249/.94) 30%,rgb(252 253 249/.9));box-shadow:inset 1px 0 rgb(255 255 255/.94),-18px 0 42px rgb(24 33 31/.07);backdrop-filter:blur(22px) saturate(108%);-webkit-backdrop-filter:blur(22px) saturate(108%)}
.auth-form-pane::before{content:"";position:absolute;top:12%;bottom:12%;left:-76px;width:76px;border-top:1px solid rgb(255 255 255/.72);border-bottom:1px solid rgb(24 33 31/.1);background:linear-gradient(90deg,transparent,rgb(247 249 245/.8));clip-path:polygon(100% 0,100% 100%,0 88%,0 12%);pointer-events:none}
.auth-card{display:grid;align-content:center;gap:12px;width:100%;min-width:0;margin:0;padding:0;border:0;background:transparent;box-shadow:none;color:var(--color-text);animation:auth-card-enter 420ms var(--ease-out) both;transition:transform var(--motion-emphasis) var(--ease-out),opacity var(--motion-standard) var(--ease-out)}
.auth-mobile-brand{display:none}
.auth-card h1{margin:4px 0 0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Source Han Sans SC",sans-serif;font-size:32px;font-weight:740;line-height:38px;letter-spacing:0}
.auth-card>p{min-width:0;max-width:34ch;margin:0 0 6px;color:#63706c;font-size:14px;line-height:21px}
.auth-card label{display:grid;gap:8px;min-width:0;color:#18211f;font-size:13px;font-weight:650;line-height:18px}
.auth-card input{width:100%;min-width:0;height:48px;margin:0;padding:0 14px;border-color:rgb(24 33 31/.28);border-radius:var(--radius-control);background:rgb(255 255 255/.72);color:#18211f;font-size:16px}
.auth-card input:focus{border-color:var(--brand-accent);outline:0;background:#fff;box-shadow:0 0 0 3px rgb(29 107 93/.16),0 8px 22px rgb(24 33 31/.07)}
.auth-card input[aria-invalid="true"]{border-color:var(--color-danger);box-shadow:0 0 0 3px rgb(180 35 45/.12)}
.auth-card .button{height:48px;margin-top:4px}
.auth-card .button.primary{border-color:var(--brand-accent-ink);background:var(--brand-accent-ink)}
.auth-card .button.primary:hover{border-color:#103d36;background:#103d36}
.auth-switch{justify-self:start;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--brand-accent-ink);font-size:14px;font-weight:680;cursor:pointer;text-align:left}
.auth-switch:hover{text-decoration:underline;text-underline-offset:4px}
.auth-switch:disabled{cursor:not-allowed;opacity:.56}
.auth-card>small{max-width:44ch;color:#63706c;font-size:12px;line-height:18px;text-align:left}
.auth-error,.auth-status{margin:2px 0 0;padding:10px 12px!important;border:1px solid;border-radius:var(--radius-control);font-size:13px!important;line-height:18px!important}
.auth-error{border-color:#e3a8ad;background:var(--color-danger-bg);color:var(--color-danger)!important}
.auth-status{border-color:#9bc8b7;background:var(--brand-accent-soft);color:var(--brand-accent-ink)!important}
.auth-field-transition,.auth-feedback-transition{max-height:86px;opacity:1;overflow:clip;transform:translateY(0);transition:max-height var(--motion-standard) var(--ease-in-out),opacity var(--motion-fast) var(--ease-out),transform var(--motion-standard) var(--ease-out)}
.auth-field-transition[data-motion-state="entering"],.auth-field-transition[data-motion-state="closing"],.auth-feedback-transition[data-motion-state="entering"],.auth-feedback-transition[data-motion-state="closing"]{max-height:0;opacity:0;transform:translateY(-6px)}
.auth-card[data-auth-state="error"]{animation:auth-error-nudge 220ms var(--ease-out)}
.auth-card[data-auth-state="success"]{transform:translateY(-4px)}
.auth-path{position:absolute;z-index:4;right:calc(clamp(400px,34vw,510px) + 28px);bottom:20px;left:clamp(24px,4.8vw,74px);color:#63706c}
.auth-path::before{content:"";position:absolute;top:0;right:0;left:0;height:1px;background:rgb(24 33 31/.24)}
.auth-path ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;padding:14px 0 0;list-style:none}
.auth-path li{display:grid;gap:3px;min-width:0;font-size:12px;line-height:17px}.auth-path b{color:var(--brand-accent-ink);font-size:12px}.auth-path span{color:#46524e}
.auth-path p{max-width:74ch;margin:9px 0 0;color:#63706c;font-size:12px;line-height:18px}
@keyframes auth-surface-enter{from{opacity:.72;clip-path:polygon(0 0,92% 0,88% 100%,0 100%)}to{opacity:1;clip-path:polygon(0 0,100% 0,94% 100%,0 100%)}}
@keyframes auth-card-enter{from{opacity:.84;transform:translateX(10px)}to{opacity:1;transform:none}}
@keyframes auth-error-nudge{0%,100%{transform:translateX(0)}45%{transform:translateX(-4px)}75%{transform:translateX(3px)}}

@media (min-width:901px) and (max-height:820px){
  .auth-work-surface{top:82px;bottom:118px}
  .auth-form-pane{padding-block:28px}
  .auth-card{gap:9px}.auth-card h1{font-size:29px;line-height:34px}.auth-card>p{margin-bottom:2px}.auth-card input{height:44px}.auth-card .button{height:44px}
  .auth-path{bottom:14px}.auth-path p{margin-top:5px}
}

@media (max-width:1100px) and (min-width:901px){
  .auth-work-surface{right:380px}
  .auth-form-pane{width:400px;padding-inline:30px}
  .auth-path{right:420px}
  .auth-surface-heading span,.auth-surface-status small{display:none}
}

@media (max-width:900px){
  .auth-gate{display:flex;flex-direction:column;min-height:100dvh;overflow:visible;background:#edf0eb}
  .auth-product-preview{position:relative;inset:auto;order:2;min-height:250px;background:#e9ede7}
  .auth-brand{display:none}
  .auth-work-surface{position:relative;inset:auto;display:grid;min-height:220px;margin:0 16px;padding:14px 14px 12px;clip-path:polygon(0 0,100% 0,96% 100%,0 100%);box-shadow:inset 0 1px rgb(255 255 255/.76)}
  .auth-surface-heading{gap:10px}.auth-surface-heading strong{font-size:14px;line-height:20px}.auth-surface-heading span{display:none}
  .auth-frame-continuum{grid-template-columns:minmax(0,1fr) 98px;min-height:132px}
  .auth-frame-primary figcaption{padding:9px 10px}.auth-frame-primary figcaption span{display:none}
  .auth-surface-status{grid-template-columns:auto minmax(0,1fr);gap:8px;font-size:12px}.auth-surface-status small{display:none}
  .auth-form-pane{position:relative;order:1;display:block;width:auto;min-height:auto;margin:0;padding:20px 16px 26px;border:0;border-bottom:1px solid rgb(24 33 31/.14);background:rgb(250 252 248/.78);box-shadow:inset 0 1px rgb(255 255 255/.96),inset 0 -1px rgb(24 33 31/.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .auth-form-pane::before{display:none}
  .auth-card{align-content:start;width:min(520px,100%);margin:0 auto;animation:auth-card-enter 360ms var(--ease-out) both}
  .auth-mobile-brand{display:flex;align-items:baseline;gap:10px;margin-bottom:2px}
  .auth-card h1{font-size:30px;line-height:36px}.auth-card>p{max-width:40ch}
  .auth-path{position:relative;inset:auto;order:3;margin:24px 18px max(28px,env(safe-area-inset-bottom));padding-bottom:4px}
  .auth-path ol{grid-template-columns:1fr 1fr;gap:14px 18px}.auth-path li{font-size:12px}.auth-path p{max-width:36ch;margin-top:14px}
}

@media (max-width:430px){
  .auth-form-pane{padding:18px 16px 24px}.auth-card{gap:10px}.auth-card h1{font-size:28px;line-height:34px}.auth-card>p{margin-bottom:2px}
  .auth-product-preview{min-height:236px}.auth-work-surface{min-height:208px}.auth-frame-continuum{min-height:122px}
  .auth-path{margin-top:22px}.auth-path ol{gap:12px}.auth-path b,.auth-path span,.auth-path p{font-size:12px}
}

@media (forced-colors:active){
  .auth-form-pane,.auth-work-surface,.auth-frame-continuum,.auth-card input,.auth-card .button,.auth-switch{border:1px solid CanvasText}
  .auth-focus-line,.auth-focus-line::before{background:Highlight;forced-color-adjust:none}
  .auth-card input[aria-invalid="true"]{outline:3px solid Mark;outline-offset:2px}
}

@media (prefers-reduced-motion:reduce){
  .auth-work-surface,.auth-card,.auth-card[data-auth-state="error"]{animation:none!important;transform:none!important}
  .auth-focus-line,.auth-field-transition,.auth-feedback-transition{transition:none!important;transform:none!important}
  .button.is-busy::before,.icon-btn.is-busy::before{animation:none!important}
}
