/* Brand skin: native.css owns layout; this file owns palette and surface states. */
/* Light blue, lilac and apricot surfaces; semantic colours stay distinct. */
:root {
  --c-blue: #2f6bd8;   --c-blue-tint: #e9f1fe;   --c-blue-line: #c3d7fb;   --c-blue-ink: #1d4ea8;
  --c-amber: #b0740a;  --c-amber-tint: #fdf2dd;  --c-amber-line: #f0dcae;  --c-amber-ink: #8a5906;
  --c-coral: #c04a3d;  --c-coral-tint: #fdece9;  --c-coral-line: #f5cec7;  --c-coral-ink: #9c3327;
  --c-teal: #0d7c8d;   --c-teal-tint: #e3f4f7;   --c-teal-line: #b6e0e8;   --c-teal-ink: #0a5f6c;
  --c-green: #2f7d51;  --c-green-tint: #e7f4ee;  --c-green-line: #bfe2d0;  --c-green-ink: #1f5c3a;
  --slab: linear-gradient(115deg, #e4edff 0%, #eee8fa 48%, #fae9df 100%);
  --slab-line: #d8ddef;
  --slab-ink: #303b58;
  --slab-dim: #5b6480;
  --lift-1: 0 1px 2px rgba(23, 37, 58, .05), 0 1px 1px rgba(23, 37, 58, .04);
  --lift-2: 0 4px 10px rgba(23, 37, 58, .07), 0 1px 2px rgba(23, 37, 58, .05);
  --lift-3: 0 12px 28px rgba(23, 37, 58, .12), 0 3px 8px rgba(23, 37, 58, .07);
  --ease-out-quart: cubic-bezier(.25, 1, .5, 1);
  --ease-out-expo: cubic-bezier(.16, 1, .3, 1);
  --ease-entrance: cubic-bezier(.22, .61, .36, 1);
  --dur-1: 120ms;   
  --dur-2: 220ms;   
  --dur-3: 340ms;   
  --dur-4: 420ms;   
  --accent: #536eb8;
  --accent-ink: #ffffff;
  --accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);
  --fish-cream: #f4f1e6;
  --fish-fin: #c9a86a;
  --fish-deep: #16281f;
  --fin: #c2622a;
  --fin-soft: color-mix(in srgb, var(--fin) 13%, transparent);
  --material-sidebar: linear-gradient(165deg,#e7edfc 0%,#f0eafb 48%,#f9ede5 100%);
  --material-floating: rgba(250, 251, 252, .97);
  --material-overlay: rgba(252, 253, 253, .98);
}
html.dark {
  --c-blue: #8db4ff;   --c-blue-tint: #1d2a42;   --c-blue-line: #2c3d5c;   --c-blue-ink: #b9d1ff;
  --c-amber: #e8bb62;  --c-amber-tint: #332a17;  --c-amber-line: #4a3d21;  --c-amber-ink: #f3d595;
  --c-coral: #f09283;  --c-coral-tint: #382321;  --c-coral-line: #523330;  --c-coral-ink: #ffb9ac;
  --c-teal: #6fcbdb;   --c-teal-tint: #122f36;   --c-teal-line: #1d4550;   --c-teal-ink: #9adce8;
  --c-green: #7ec49b;  --c-green-tint: #17301f;  --c-green-line: #22462f;  --c-green-ink: #a6dcbc;
  --slab: linear-gradient(115deg,#28344d,#37314a,#453a39);
  --slab-line: rgba(255, 255, 255, .10);
  --slab-ink: #e8f1ea;
  --lift-1: 0 1px 2px rgba(0, 0, 0, .3);
  --lift-2: 0 4px 12px rgba(0, 0, 0, .38);
  --lift-3: 0 14px 32px rgba(0, 0, 0, .5);
  --accent: #a6baff;
  --accent-ink: #202a44;
  --accent-soft: color-mix(in srgb, var(--accent) 18%, transparent);
  --fish-cream: #e6ece2;
  --fish-fin: #8d7a4e;
  --fish-deep: #0b1410;
  --fin: #e08a4e;
  --fin-soft: color-mix(in srgb, var(--fin) 18%, transparent);
  --page: #0d1411;
  --canvas: #111a15;
  --surface: #16211b;
  --inset: #121b16;
  --hover: #1b2822;
  --hover-2: #23322a;
  --line: #24322a;
  --line-strong: #31423a;
  --field: #18241e;
  --ink: #ecf3ee;
  --ink-2: #adc0b4;
  --ink-3: #7d9084;
  --material-sidebar: linear-gradient(160deg,#242e44,#332d42);
  --material-surface: rgba(25, 36, 30, .88);
  --material-floating: rgba(29, 41, 34, .97);
  --material-overlay: rgba(21, 30, 25, .98);
  --native-line: rgba(196, 226, 208, .13);
}

.av3d-stage {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent);
  
  background:
    radial-gradient(120% 90% at 18% 0%,
      color-mix(in srgb, var(--accent) 16%, transparent), transparent 60%),
    radial-gradient(90% 70% at 100% 100%,
      color-mix(in srgb, var(--c-teal) 10%, transparent), transparent 55%),
    var(--surface);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06), var(--lift-2);
}
.av3d-canvas {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 340 / 270;
}
.av3d-decor { position: absolute; inset: 0; pointer-events: none; }


.av3d-bubble {
  position: absolute;
  border: 1.5px solid color-mix(in srgb, var(--accent) 55%, transparent);
  border-radius: 50%;
  opacity: 0;
  animation: av3d-rise 4.2s var(--ease-out-quart) infinite;
}
@keyframes av3d-rise {
  0%   { opacity: 0; transform: translateY(8px) scale(.7); }
  22%  { opacity: .9; }
  100% { opacity: 0; transform: translateY(-42px) scale(1.06); }
}


.av3d-thought {
  position: absolute; top: 14px; right: 16px;
  display: flex; align-items: flex-end; gap: 4px;
  opacity: 0;
  transition: opacity var(--dur-2) var(--ease-out-quart);
}
.av3d-stage.is-thinking .av3d-thought { opacity: 1; }
.av3d-dot {
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 70%, transparent);
  animation: av3d-think 1.2s var(--ease-out-quart) infinite;
}
@keyframes av3d-think {
  0%, 100% { transform: translateY(0); opacity: .55; }
  50%      { transform: translateY(-5px); opacity: 1; }
}


.av3d-stage:not(.is-ready)::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 30%,
    color-mix(in srgb, var(--accent) 12%, transparent) 48%, transparent 66%);
  background-size: 220% 100%;
  background-repeat: no-repeat;
  animation: av3d-wait 1.6s linear infinite;
}
@keyframes av3d-wait {
  from { background-position: 160% 0; }
  to   { background-position: -60% 0; }
}



/* Shared product tokens. Contrast is measured against the page and field surfaces. */
:root {
  --page:#f6f6fb; --canvas:#eef0f9; --surface:#ffffff; --inset:#f0f2fa;
  --ink:#30364c; --ink-2:#586079; --ink-3:#687089;
  --line:#e0e3ef; --line-strong:#c5cde2; --hover:#edf0fa; --field:#fbfcff;
  --material-surface:rgba(255,255,255,.84);
  --dur-2:160ms; --dur-3:260ms; --dur-4:0ms;
  --chart-1:var(--accent); --chart-2:#c68164;
}
html.dark {
  --page:#202433; --canvas:#262b3c; --surface:#2c3144; --inset:#272c3d;
  --ink:#edf0fa; --ink-2:#c4cbe0; --ink-3:#abb6d1;
  --line:#404760; --line-strong:#596482; --hover:#363e55; --field:#292f42;
  --material-surface:rgba(44,49,68,.90); --material-floating:#30364b; --material-overlay:#2c3144; --slab-dim:#c6c9e0;
}
body{background:linear-gradient(130deg,#f4f7ff 0%,#faf5fa 55%,#fff7ef 100%) fixed!important}html.dark body{background:var(--page)!important}
body,button,input,textarea,select,h1,h2,h3,.hero-title,.empty strong,.drop-zone h3{font-family:var(--font-ui)!important}
h1,.page-heading h1,.ops-heading h1,.desk-heading h1{font-weight:600!important;color:var(--ink);background:none!important;-webkit-text-fill-color:var(--ink);letter-spacing:-.4px;line-height:1.25}
.page-heading,.desk-heading{margin-bottom:28px}.page-heading p,.desk-heading p{line-height:1.7;color:var(--ink-2)}
.page-index{display:none}.section-heading{margin:28px 0 16px}.section-heading h2::before{display:none}
#workspace{padding-top:32px;padding-bottom:40px}.topbar{position:sticky;border-bottom:1px solid var(--line)!important;background:var(--surface)!important}.topbar::after{display:none}
.sidebar .nav-link{color:var(--ink-2);transition:background-color 160ms,color 160ms!important;font-weight:400;gap:10px}
.sidebar .nav-link:hover{padding-left:10px;background:var(--hover)}
.sidebar .nav-link.active{color:var(--accent)!important;background:var(--surface)!important;font-weight:500}
.sidebar .nav-caption,.sidebar .nav-group{color:var(--ink-2)!important;font-size:11px;letter-spacing:normal}.sidebar .nav-link::before{display:none!important}
.sidebar .seal{background:linear-gradient(140deg,#d4e3ff,#efdcf2);color:#4d629b;border-radius:11px}
.sidebar .brand{color:var(--ink)!important}.sidebar .brand small{letter-spacing:1px;color:var(--ink-2)}.sidebar-foot{color:var(--ink-2)!important}
.evidence-rail{background:var(--material-surface)}.rail-section h2{font-size:13px;color:var(--ink-2)}.rail-meta{line-height:1.8}.rail-note,.rail-section .timeline{font-size:12px;line-height:1.75}
.button{background:var(--surface);border:1px solid var(--line);box-shadow:none!important;font-weight:500;transition:background-color 160ms,border-color 160ms,opacity 160ms!important}
.button:hover{background:var(--hover);border-color:var(--line-strong);transform:none!important;box-shadow:none!important}
.button.primary{background:var(--accent)!important;background-image:none!important;border-color:transparent;box-shadow:inset 0 1px #ffffff1a!important}
.button.primary:hover{background:color-mix(in srgb,var(--accent) 90%,var(--ink))!important;background-image:none!important}
.button:disabled{opacity:.55;cursor:not-allowed}.button:active{transform:scale(.985)!important}.button.chip{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}.button.chip[aria-pressed=true]{background:var(--accent-soft)!important;border-color:var(--accent)!important;color:var(--accent)!important}
input::placeholder,textarea::placeholder{color:var(--ink-3);opacity:1}
input:not([type=checkbox]):not([type=radio]),textarea,select{background:var(--field);color:var(--ink);border-color:var(--line);min-height:40px}
input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}
.help,.subtle,.list-row p{color:var(--ink-2)}.checkbox-line input{accent-color:var(--accent)}
.business-band{background:var(--slab)!important;border-color:var(--slab-line);box-shadow:inset 0 1px #ffffff16,0 4px 12px #1020180a!important}
.business-band .band-figure strong{color:var(--slab-ink)!important;-webkit-text-fill-color:var(--slab-ink)!important;font-size:40px;font-weight:600}
.band-head,.band-shop,.band-trend,.band-figure small,.band-stats small,.band-strip{color:var(--slab-dim)}.band-trend b.up{color:var(--c-coral-ink)}.band-trend b.down{color:var(--c-green-ink)}.band-stats>div:nth-child(n) b{color:var(--slab-ink);font-weight:500;font-size:21px}.band-trend{font-size:12px}.band-strip{font-size:11px}
.shortcut-strip{gap:8px}.shortcut:nth-child(n){text-align:left;align-items:flex-start;padding:16px 12px;gap:8px}.shortcut:nth-child(n) .shortcut-icon{background:var(--c-blue-tint)!important;border-radius:10px;color:var(--accent)!important;width:28px;height:28px;padding:0;margin-bottom:4px}.shortcut:nth-child(n) strong{font-size:14px;font-weight:500}.shortcut small{font-size:12px;color:var(--ink-2);line-height:1.6;text-align:left}
.shortcut:nth-child(2) .shortcut-icon{background:var(--c-coral-tint)!important;color:var(--c-coral-ink)!important}.shortcut:nth-child(3) .shortcut-icon{background:var(--c-teal-tint)!important;color:var(--c-teal-ink)!important}.shortcut:nth-child(4) .shortcut-icon{background:var(--c-amber-tint)!important;color:var(--c-amber-ink)!important}.shortcut:hover .shortcut-icon{transform:none!important}.week-card,.week-grid{background:none!important;box-shadow:none!important}.week-card{padding:20px 0;border-top:1px solid var(--line)}.week-grid{border:0;padding:8px 0}.week-grid>div+div{border-left:1px solid var(--line);padding-left:16px}.week-grid strong{font-size:18px}.week-best{color:var(--ink)!important}.station-icon{color:var(--accent);background:var(--accent-soft)}
.metric-strip{background:linear-gradient(110deg,var(--c-blue-tint),var(--surface) 50%,var(--c-amber-tint));border:1px solid var(--line)!important;border-radius:14px!important;padding:12px 0!important;gap:0!important}.metric:nth-child(n){border:0!important;border-right:1px solid var(--line)!important;border-radius:0!important;box-shadow:none!important;background:none!important;padding:10px 20px!important}.metric:last-child{border-right:0!important}.metric::after{display:none}.metric:nth-child(n)>strong{color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important;font-size:30px;font-weight:600}.metric:hover{transform:none!important}.metric label{font-size:12px;color:var(--ink-2);font-weight:400}
.ops-heading h1{color:var(--ink)}.ops-eyebrow{color:var(--ink-2);font-size:12px}.ops-live-dot{background:var(--accent);box-shadow:none;animation:none}
.ops-conveyor,html.dark .ops-conveyor{background:linear-gradient(110deg,var(--c-blue-tint),var(--surface) 55%,var(--c-coral-tint))!important;border:1px solid var(--line);box-shadow:none!important;border-radius:14px;color:var(--ink);padding:12px 16px}
.ops-conveyor .ops-station.active{background:var(--accent-soft);box-shadow:none}.ops-conveyor .ops-station{color:var(--ink-2);min-height:76px;animation:none!important}.ops-conveyor .ops-station.active strong{color:var(--accent);font-weight:600}.ops-conveyor .ops-station-lamp{box-shadow:none!important;background:var(--line-strong);animation:none!important}.ops-conveyor .ops-station.active .ops-station-lamp{background:var(--accent)}.ops-station-count{font-size:12px!important;color:var(--ink-2)!important}.ops-belt,.ops-belt.busy{background:var(--line-strong);box-shadow:none;animation:none;height:1px;flex-basis:32px}
.ops-summary{border:0;border-bottom:1px solid var(--line);padding:0 0 16px;margin:20px 0 24px;gap:0}.ops-summary .ops-stat:nth-child(n){border:0!important;border-right:1px solid var(--line)!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;margin:0!important;padding:12px 18px;transform:none!important}.ops-summary .ops-stat:last-child{border-right:0!important}.ops-summary .ops-stat.selected{background:var(--accent-soft)!important;border-radius:10px!important}.ops-stat strong{font-size:28px!important;color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important}.ops-stat.pending_review strong{color:var(--c-coral-ink)!important;-webkit-text-fill-color:var(--c-coral-ink)!important}.ops-stat small{font-size:11px!important;color:var(--ink-2)!important;font-weight:400!important}.ops-stat span{font-size:12px;color:var(--ink-2)}
.ops-board{background:var(--surface);border-color:var(--line);box-shadow:none}.ops-table td{padding:15px}.ops-table th{font-size:12px;font-weight:500}.ops-table td small{font-size:12px}.ops-table tbody tr:hover{box-shadow:none;background:var(--hover)}.ops-tabs{gap:20px}.ops-tab{font-size:13px}.ops-tab::after{display:none}.ops-status{font-size:11px;padding:4px 8px}.ops-person b{background:var(--accent-soft);color:var(--accent)}
.ops-alert-panel{padding:4px 0 20px}.ops-alert,.ops-alert.high{border-left:0;border-bottom:1px solid var(--line);padding:16px 0;background:none}.ops-alert-kind{color:var(--c-coral-ink)}.ops-alert-clear{padding:14px 0}.ops-flow>div{margin-top:16px}.ops-flow small{font-size:12px;line-height:1.6}.ops-source-note{font-size:12px;padding:0}.ops-empty{min-height:240px;padding:32px 24px}.ops-empty::before{display:none!important}.ops-empty strong,.empty strong{font-family:var(--font-ui)!important;font-size:16px;font-weight:500;color:var(--ink)}.ops-empty p,.empty p{font-size:13px;color:var(--ink-2)}.ops-empty>.ui-icon{background:var(--accent-soft);color:var(--accent);border-radius:12px;width:26px;height:26px;padding:10px;margin-bottom:16px}
.memory-timeline{border:0;padding-left:8px}.memory-entry{background:none!important;box-shadow:none;transform:none!important;border-left:1px solid var(--line);padding:0 0 28px 24px}.memory-entry::before{background:var(--accent)!important;box-shadow:none!important;animation:none!important}.memory-entry h3{font-weight:500}.memory-entry>p.help{font-size:12px;color:var(--ink-3);background:none;padding:0}
.notice{background:var(--material-surface);border:1px solid var(--line);font-size:13px;line-height:1.7}.notice.error{background:var(--c-coral-tint);border-color:var(--c-coral-line);color:var(--c-coral-ink)}.notice.good{background:var(--c-green-tint);color:var(--c-green-ink)}
.avatar-stage-new{min-height:340px;padding:24px 0;background:none!important}.av3d-stage{border:0;box-shadow:none;background:none;border-radius:0}.av3d-bubble{display:none}.avatar-status{font-size:13px;color:var(--ink-2)}body[data-page=avatar] .composer{display:flex;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:none;margin:16px 0}body[data-page=avatar] .composer input{flex:1;min-width:0;background:none;border:0}.float-fish-launcher:hover{transform:none!important}.float-panel{animation:none}.float-panel p{font-size:13px;color:var(--ink-2)}.av3d-stage.is-thinking .av3d-dot{animation:av3d-think 1.2s ease-out infinite}
.chart .series{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0}.chart .grid{stroke:var(--line);stroke-width:.7}.chart-key{font-size:12px;color:var(--ink-2);gap:20px}.chart-tooltip{background:var(--material-floating)}
#workspace.page-enter>*,#evidence-rail.page-enter>*,#workspace.page-enter tbody tr,#workspace.page-enter .ops-stat,#workspace.page-enter .ops-station{animation:none!important;opacity:1;transform:none}#workspace[aria-busy=true]{cursor:progress}.list-row::before{display:none}.list-row{padding-block:16px}.list-row:hover{background:var(--hover)}
.ops-dialog-head h2{font-size:20px}.ops-dialog-head p{font-size:13px}.ops-dialog-footer{background:var(--material-surface)}.ops-dialog-body .ops-form label{font-size:13px}.ops-dialog[open]{animation:none}.ops-upload,.attachment-picker{background:var(--field)}
@media(max-width:1100px){.ops-aside{gap:24px}.ops-flow{border-top:1px solid var(--line);padding-top:20px}}
@media(max-width:600px){#workspace{padding:24px 16px}.page-heading h1,.desk-heading h1,.ops-heading h1{font-size:25px}.button,.button.small{min-height:40px}.ops-summary .ops-stat:nth-child(n){padding:10px 4px}.ops-stat strong{font-size:23px!important}.ops-stat span{font-size:11px}.ops-belt{flex-basis:8px}.ops-conveyor{padding:8px 4px!important}.ops-station strong{font-size:11px}.ops-table td{padding:12px}.metric:nth-child(n){padding:12px!important}.metric:nth-child(n)>strong{font-size:25px}.shortcut:nth-child(n){padding:12px 8px}.week-grid>div+div{padding-left:10px}.week-grid strong{font-size:16px}.avatar-stage-new{min-height:260px}.ops-board-heading .ops-search-wrap{width:100%}.ops-table-scroll{overscroll-behavior-inline:contain}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.button:active{transform:none!important}}

.reconcile-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.reconcile-section h2{margin-bottom:10px}.reconcile-section form{margin:20px 0}.reconcile-section label{display:grid;gap:8px;margin-bottom:12px;font-size:13px}.reconcile-section .checkbox-line{display:flex;align-items:flex-start;margin:20px 0;line-height:1.6}.reconcile-columns{margin-top:16px}.reconcile-row{padding:16px 0;border-bottom:1px solid var(--line)}.reconcile-row summary{cursor:pointer;line-height:1.8}.reconcile-evidence{padding:12px;background:var(--inset);border-radius:12px;margin-top:10px;overflow:auto}.reconcile-evidence strong{font-size:12px}.reconcile-columns details{overflow:auto}.studio-thumb video{width:100%;aspect-ratio:1;object-fit:cover}.studio-image{max-width:100%}

/* ---- 按钮形状：Apple HIG 胶囊化（只动形状，不动 motion.css 的动画层） ----
   胶囊按钮 = 苹果视觉签名；输入控件保持 12px field 圆角（iOS 惯例，输入框不胶囊）。
   .button.button 双类把优先级拉到 (0,2,0)，稳压 native.css 的 var(--native-control)!important */
.button.button{border-radius:9999px!important;padding-inline:calc(var(--pad-x,14px) + 2px)}
.button.small.button,.button.danger.button,.button.primary.button,.button.chip.button{border-radius:9999px!important}
.button.chip.button{padding-inline:12px}
.button .button{border-radius:inherit}
input[type=file]::file-selector-button{border-radius:9999px!important}
input:not([type=checkbox]):not([type=radio]),textarea,select{border-radius:12px}
.blk-field input,.blk-field textarea,.blk-field select{border-radius:10px}
.ops-dialog,dialog.studio-dialog{border-radius:20px!important}
.badge{border-radius:9999px}
.notice{border-radius:14px}
.float-fish-launcher{border-radius:9999px}

/* 创意工坊模式切换 = iOS 分段控件（之前从未有过样式，裸 button） */
.studio-tabs{display:inline-flex;gap:4px;padding:4px;background:var(--inset);border:1px solid var(--line);border-radius:9999px}
.studio-tab{border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:13.5px;font-weight:500;padding:9px 18px;border-radius:9999px;cursor:pointer;transition:background-color 160ms,color 160ms,box-shadow 160ms}
.studio-tab:hover{color:var(--ink)}
.studio-tab.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--lift-2)}
.studio-tab:active{transform:scale(.97)}

/* ---- 工单与物流页按钮胶囊化（此前漏网：非 .button 类） ---- */
.ops-tab.ops-tab{border-bottom:0!important;padding:8px 14px;border-radius:9999px!important;background:transparent;color:var(--ink-2)}
.ops-tab.ops-tab.active{background:var(--accent-soft)!important;color:var(--accent)!important;border-bottom:0!important;font-weight:600}
.ops-summary .ops-stat.ops-stat,.ops-summary .ops-stat{border-radius:14px!important;border:1px solid transparent;border-right:1px solid var(--line)!important}
.ops-summary .ops-stat.selected{background:var(--accent-soft)!important;border-color:var(--accent)!important}
.ops-conveyor .ops-station.ops-station,.ops-conveyor .ops-station{border-radius:14px!important}
.text-button{border:none;border-radius:9999px!important;padding:5px 12px!important}
button:not([class]){border-radius:10px}
