:root {
  --pine-950: #0d2b27;
  --pine-900: #143a35;
  --pine-800: #1b4942;
  --pine-700: #285f56;
  --pine-100: #dfece8;
  --pine-50: #eff6f3;
  --gold-600: #a86d24;
  --gold-500: #c68a3b;
  --gold-100: #f6e7cf;
  --ink-900: #1c2c29;
  --ink-700: #42534f;
  --ink-500: #70807c;
  --ink-300: #a6b2af;
  --line: #dde3df;
  --line-strong: #ccd5d0;
  --canvas: #f4f2ed;
  --surface: #fffdfa;
  --surface-muted: #f8f7f3;
  --danger: #b7463b;
  --danger-soft: #fae8e5;
  --success: #377a63;
  --success-soft: #e1f1eb;
  --warning: #b77a22;
  --warning-soft: #fff0d8;
  --info: #3d6f82;
  --info-soft: #e5f0f4;
  --shadow-sm: 0 1px 2px rgba(18, 47, 42, .04), 0 6px 18px rgba(18, 47, 42, .035);
  --shadow-md: 0 12px 35px rgba(13, 43, 39, .1);
  --radius-sm: .55rem;
  --radius-md: .8rem;
  --radius-lg: 1.15rem;
  --sidebar-width: 258px;
}

* { box-sizing: border-box; }

html { min-height: 100%; }

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink-900);
  background: var(--canvas);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Segoe UI", sans-serif;
  font-size: .9rem;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--pine-700); text-decoration: none; }
a:hover { color: var(--pine-900); }

:focus-visible {
  outline: 3px solid rgba(198, 138, 59, .35) !important;
  outline-offset: 2px;
}

.app-shell { min-height: 100vh; }

.app-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1030;
  width: var(--sidebar-width);
  padding: 1.25rem 1rem 1rem;
  flex-direction: column;
  color: #fff;
  background:
    radial-gradient(circle at 18% 7%, rgba(198, 138, 59, .18), transparent 22%),
    linear-gradient(155deg, var(--pine-800), var(--pine-950) 72%);
  border-right: 1px solid rgba(255,255,255,.08);
}

.ai-workbench-card { margin-bottom: 1rem; border-color: rgba(40,95,86,.22); box-shadow: var(--shadow-sm); }
.ai-workbench-card .card-header { background: linear-gradient(110deg, var(--pine-50), var(--surface)); }
.ai-workbench-list { display: grid; gap: .15rem; }
.ai-workbench-row { display: grid; grid-template-columns: minmax(180px, 1.1fr) 125px minmax(180px, 1fr) auto; gap: .8rem; align-items: center; padding: .7rem .35rem; border-bottom: 1px solid var(--line); }
.ai-workbench-row:last-child { border-bottom: 0; }
.ai-workbench-customer { display:flex; align-items:center; gap:.65rem; min-width:0; }
.ai-workbench-customer > div { min-width:0; }
.ai-workbench-customer small { display:block; color:var(--ink-500); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ai-workbench-next { color:var(--ink-700); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ai-workbench-actions { display:flex; gap:.35rem; white-space:nowrap; }
@media (max-width: 900px) { .ai-workbench-row { grid-template-columns: 1fr auto; } .ai-workbench-next { grid-column: 1 / -1; } .ai-workbench-actions { grid-column: 2; grid-row: 1; } }
.media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:1rem; }
.media-card { overflow:hidden; }
.media-preview { height:150px; display:flex; align-items:center; justify-content:center; background:var(--surface-muted); color:var(--pine-700); font-size:3rem; }
.media-preview img { width:100%; height:100%; object-fit:cover; }
.media-image { background:#eef5f1; }
.workbench-followup-strip { border-left: 3px solid var(--gold-500); }

/* 工作台：沿用原 CRM 的松绿/米白/金色视觉，借鉴 FREE Travel 销售助手的驾驶舱布局。 */
.workbench-page { max-width: 1480px; }
.wb-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.wb-kicker { color:var(--gold-600); font-size:.72rem; font-weight:700; letter-spacing:.14em; }
.wb-heading h1 { margin:.28rem 0 .35rem; color:var(--pine-950); letter-spacing:-.035em; }
.wb-heading p { margin:0; color:var(--ink-500); }
.wb-date { padding:.55rem .8rem; color:var(--pine-800); background:var(--pine-50); border:1px solid var(--pine-100); border-radius:var(--radius-md); font-weight:600; }
.wb-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.wb-metric { min-height:122px; padding:1.1rem 1.2rem; background:var(--surface); border:1px solid var(--line); border-top:4px solid var(--pine-700); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.wb-metric span,.wb-metric small { display:block; color:var(--ink-500); }
.wb-metric strong { display:block; margin:.35rem 0 .15rem; color:var(--pine-950); font-size:2rem; line-height:1; }
.wb-metric.wb-blue { border-top-color:var(--info); }.wb-metric.wb-gold { border-top-color:var(--gold-500); }.wb-metric.wb-green { border-top-color:var(--success); }.wb-metric.wb-danger { border-top-color:var(--danger); }
.wb-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:1rem; margin-bottom:1rem; }
.wb-card { padding:1.2rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.wb-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.wb-card-head h2 { margin:0 0 .25rem; color:var(--pine-950); font-size:1.1rem; letter-spacing:-.02em; }
.wb-card-head p { margin:0; color:var(--ink-500); font-size:.8rem; }
.wb-chip { padding:.28rem .55rem; color:var(--pine-800); background:var(--pine-50); border:1px solid var(--pine-100); border-radius:999px; font-size:.75rem; white-space:nowrap; }
.wb-plan-list { display:grid; gap:.55rem; }.wb-plan-item { display:flex; align-items:center; gap:.75rem; padding:.75rem; color:var(--ink-900); border:1px solid var(--line); border-radius:var(--radius-md); background:var(--surface-muted); }.wb-plan-item:hover { border-color:var(--pine-100); background:var(--pine-50); color:var(--pine-950); }.wb-plan-item > span:nth-child(2) { flex:1; }.wb-plan-item strong,.wb-plan-item small { display:block; }.wb-plan-item small { margin-top:.18rem; color:var(--ink-500); font-size:.78rem; }.wb-plan-icon { display:grid; place-items:center; width:2rem; height:2rem; color:var(--pine-800); background:var(--pine-100); border-radius:.65rem; }.wb-plan-gold { color:var(--gold-600); background:var(--gold-100); }.wb-plan-green { color:var(--success); background:var(--success-soft); }
.wb-quick-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.wb-quick-grid a { display:flex; align-items:center; gap:.55rem; padding:.8rem .7rem; color:var(--pine-800); background:var(--surface-muted); border:1px solid var(--line); border-radius:var(--radius-md); }.wb-quick-grid a:hover { background:var(--pine-50); border-color:var(--pine-100); }.wb-quick-grid i { color:var(--gold-600); font-size:1.1rem; }
.wb-section-card { margin-bottom:1rem; }.wb-link { color:var(--pine-700); font-size:.82rem; white-space:nowrap; }.wb-table { display:grid; }.wb-row { display:grid; grid-template-columns:minmax(180px,1.1fr) 120px minmax(160px,1fr) auto; align-items:center; gap:.8rem; padding:.72rem .25rem; border-top:1px solid var(--line); }.wb-customer { display:flex; align-items:center; gap:.65rem; min-width:0; }.wb-avatar { display:grid; flex:0 0 auto; place-items:center; width:2rem; height:2rem; color:var(--pine-800); background:var(--pine-100); border-radius:50%; font-weight:700; }.wb-customer strong,.wb-customer small { display:block; }.wb-customer small { color:var(--ink-500); font-size:.75rem; }.wb-stage { color:var(--pine-800); font-size:.8rem; }.wb-next { overflow:hidden; color:var(--ink-700); white-space:nowrap; text-overflow:ellipsis; font-size:.82rem; }.wb-actions { display:flex; gap:.35rem; white-space:nowrap; }.wb-followup-list { display:grid; gap:.45rem; }.wb-followup-item { display:flex; align-items:center; gap:.7rem; padding:.7rem; color:var(--ink-900); border:1px solid var(--line); border-radius:var(--radius-md); }.wb-followup-item:hover { background:var(--pine-50); }.wb-followup-main { flex:1; }.wb-followup-main strong,.wb-followup-main small { display:block; }.wb-followup-main small { color:var(--ink-500); font-size:.75rem; }.wb-followup-time { color:var(--ink-500); font-size:.8rem; }.wb-followup-time em { display:block; color:var(--danger); font-style:normal; font-weight:700; }.wb-followup-item.is-overdue { border-left:3px solid var(--danger); }.wb-empty { display:flex; align-items:center; justify-content:center; gap:.5rem; padding:2rem; color:var(--ink-500); }
@media (max-width: 900px) { .wb-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.wb-grid { grid-template-columns:1fr; }.wb-row { grid-template-columns:1fr auto; }.wb-stage,.wb-next { grid-column:1/-1; }.wb-actions { grid-column:2; grid-row:1; } }
@media (max-width: 560px) { .wb-metrics { grid-template-columns:1fr 1fr; gap:.6rem; }.wb-metric { padding:.85rem; min-height:100px; }.wb-metric strong { font-size:1.6rem; }.wb-heading { align-items:flex-start; flex-direction:column; }.wb-date { display:none; } }
.workbench-mode .app-sidebar { display:none !important; }
.workbench-mode .app-workspace { margin-left:0; }
.workbench-mode .app-content { padding:1.1rem clamp(1rem,2.4vw,2.4rem) 2rem; }
.workbench-return-top { display:inline-flex; align-items:center; padding:.48rem .82rem; color:var(--pine-950); background:linear-gradient(145deg,#f7d9a6,var(--gold-500)); border:1px solid var(--gold-500); border-radius:.65rem; font-weight:700; box-shadow:0 5px 14px rgba(168,109,36,.16); }
.workbench-return-top:hover { color:var(--pine-950); filter:brightness(1.04); }
.three-pane-workbench { max-width:1700px !important; margin:0 auto; }
.package-workbench-nav { display:flex; gap:.65rem; margin:0 0 1rem; overflow-x:auto; padding:.1rem .1rem .35rem; }
.package-nav-card { display:flex; align-items:center; gap:.55rem; min-width:155px; padding:.65rem .7rem; color:var(--ink-900); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.package-nav-card:hover,.package-nav-card.is-active { color:var(--pine-950); background:var(--pine-50); border-color:var(--gold-500); }
.package-nav-card > span:nth-child(2) { min-width:0; flex:1; }.package-nav-card strong,.package-nav-card small { display:block; white-space:nowrap; }.package-nav-card strong { font-size:.75rem; }.package-nav-card small { margin-top:.15rem; overflow:hidden; color:var(--ink-500); font-size:.65rem; text-overflow:ellipsis; }.package-nav-card b { display:grid; place-items:center; min-width:1.35rem; height:1.35rem; color:var(--pine-800); background:var(--gold-100); border-radius:999px; font-size:.68rem; }.package-nav-icon { display:grid; place-items:center; width:1.75rem; height:1.75rem; color:var(--gold-700); background:var(--gold-100); border-radius:.55rem; }
.three-pane-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.three-pane-heading h1 { margin:.25rem 0 .25rem; color:var(--pine-950); letter-spacing:-.035em; }.three-pane-heading p { margin:0; color:var(--ink-500); }.three-pane-heading .wb-return-button { display:none; }
.three-pane-grid { display:grid; grid-template-columns:280px minmax(400px,1fr) 320px; gap:1rem; min-height:calc(100vh - 150px); align-items:start; }
.wb-left-pane,.wb-right-pane,.wb-center-pane { min-width:0; }.wb-left-pane,.wb-right-pane { padding:1rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }.wb-left-pane { overflow:hidden; }.wb-center-pane { position:relative; min-height:620px; padding:1.2rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.pane-title { display:flex; align-items:flex-start; justify-content:space-between; gap:.7rem; padding-bottom:.85rem; border-bottom:1px solid var(--line); }.pane-title h2,.pane-title h3 { margin:0; color:var(--pine-950); font-size:1rem; }.pane-title small { display:block; margin-top:.25rem; color:var(--ink-500); font-size:.76rem; }.wb-count { display:grid; place-items:center; min-width:1.7rem; height:1.7rem; color:var(--pine-950); background:var(--gold-100); border-radius:999px; font-size:.78rem; font-weight:700; }.done-count { color:var(--success); background:var(--success-soft); }
.plan-groups details { border-bottom:1px solid var(--line); overflow:hidden; }.plan-groups summary { display:flex; align-items:center; justify-content:space-between; padding:.85rem .2rem; cursor:pointer; list-style:none; color:var(--pine-800); font-weight:650; }.plan-groups summary::-webkit-details-marker { display:none; }.plan-groups summary span { display:flex; align-items:center; gap:.55rem; }.plan-groups summary b { display:inline-grid; place-items:center; min-width:1.35rem; height:1.35rem; color:var(--pine-800); background:var(--pine-100); border-radius:999px; font-size:.7rem; }.task-queue { display:grid; gap:.35rem; max-width:100%; max-height:52vh; overflow-y:auto; overflow-x:hidden; padding:0 0 .65rem; }.queue-task { display:flex; align-items:center; min-width:0; max-width:100%; gap:.5rem; padding:.6rem .45rem; color:var(--ink-900); border:1px solid transparent; border-radius:.65rem; }.queue-task:hover,.queue-task.selected { background:var(--pine-50); border-color:var(--pine-100); }.queue-task > span:nth-child(2) { flex:1; min-width:0; overflow:hidden; }.queue-task strong,.queue-task small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.queue-task small { margin-top:.15rem; color:var(--ink-500); font-size:.7rem; }.queue-dot { width:.48rem; height:.48rem; flex:0 0 auto; border-radius:50%; background:var(--gold-500); }.ai-dot { background:var(--pine-700); }.follow-dot { background:var(--gold-500); }.queue-task > i { flex:0 0 auto; color:var(--ink-300); font-size:.75rem; }.queue-empty { padding:.85rem .2rem; color:var(--ink-500); font-size:.78rem; text-align:center; }.all-task-link { display:block; margin-top:.85rem; color:var(--pine-700); font-size:.78rem; text-align:center; }
.package-customer-queue { display:grid; gap:.3rem; max-height:260px; overflow:auto; margin:.7rem 0; padding-bottom:.55rem; border-bottom:1px solid var(--line); }.package-customer-item { display:flex; align-items:center; gap:.45rem; min-width:0; padding:.5rem .35rem; color:var(--ink-900); border-radius:.55rem; }.package-customer-item:hover { background:var(--pine-50); }.package-customer-item > span:nth-child(2) { min-width:0; flex:1; }.package-customer-item strong,.package-customer-item small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.package-customer-item strong { font-size:.75rem; }.package-customer-item small { margin-top:.12rem; color:var(--ink-500); font-size:.65rem; }.package-customer-item > i { color:var(--ink-300); font-size:.7rem; }
.package-plan-accordion { margin:.65rem 0; max-height:calc(100vh - 280px); overflow-y:auto; overflow-x:hidden; border-bottom:1px solid var(--line); }.package-plan-accordion details { border-top:1px solid var(--line); overflow:hidden; }.package-plan-accordion summary { display:flex; align-items:center; justify-content:space-between; gap:.4rem; padding:.72rem .2rem; color:var(--pine-800); cursor:pointer; list-style:none; font-size:.78rem; font-weight:700; }.package-plan-accordion summary::-webkit-details-marker { display:none; }.package-plan-accordion summary span { display:flex; align-items:center; gap:.45rem; min-width:0; }.package-plan-accordion summary span > i { color:var(--gold-600); }.package-plan-accordion summary b { display:inline-grid; place-items:center; min-width:1.3rem; height:1.3rem; padding:0 .2rem; color:var(--pine-800); background:var(--gold-100); border-radius:999px; font-size:.66rem; }.package-plan-accordion summary > i { color:var(--ink-300); font-size:.7rem; transition:transform .15s ease; }.package-plan-accordion details[open] summary > i { transform:rotate(180deg); }.package-accordion-list { display:grid; gap:.2rem; max-height:230px; overflow-y:auto; overflow-x:hidden; padding:0 0 .55rem .15rem; }.package-customer-item.selected { background:var(--pine-50); outline:1px solid var(--pine-100); }
.center-title { margin-bottom:1rem; }.eyebrow { color:var(--gold-600) !important; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.center-title h2 { margin-top:.22rem; font-size:1.35rem; }.customer-tags { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.55rem; }.customer-tags span { padding:.25rem .5rem; color:var(--pine-800); background:var(--pine-50); border-radius:999px; font-size:.72rem; }.customer-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; margin-bottom:1rem; }.customer-facts div { padding:.7rem; background:var(--surface-muted); border:1px solid var(--line); border-radius:.65rem; }.customer-facts small,.customer-facts strong { display:block; }.customer-facts small { color:var(--ink-500); font-size:.7rem; }.customer-facts strong { margin-top:.25rem; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:.8rem; }.ai-action-card,.center-work-card { margin-top:1rem; padding:1rem; border:1px solid var(--line); border-radius:var(--radius-md); }.ai-action-card { background:linear-gradient(135deg,var(--pine-50),var(--surface)); border-top:3px solid var(--gold-500); }.ai-action-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.ai-action-head h3 { margin:0; color:var(--pine-950); font-size:1rem; }.ai-action-head h3 i { color:var(--gold-600); }.ai-action-head p { margin:.3rem 0 0; color:var(--ink-500); font-size:.78rem; }.center-work-card textarea { width:100%; margin-top:.9rem; }.center-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.7rem; }.btn-gold { color:var(--pine-950); background:linear-gradient(145deg,#f7d9a6,var(--gold-500)); border-color:var(--gold-500); font-weight:700; }.btn-gold:hover { color:var(--pine-950); filter:brightness(1.04); }.center-empty { display:grid; place-items:center; align-content:center; min-height:560px; color:var(--ink-500); text-align:center; }.center-empty i { color:var(--gold-500); font-size:3rem; }.center-empty h2 { margin:.8rem 0 .35rem; color:var(--pine-950); font-size:1.25rem; }.center-empty p { margin:0; }
.package-context-card { margin:1rem 0; padding:.85rem; background:var(--surface-muted); border:1px solid var(--line); border-radius:var(--radius-md); max-height:260px; overflow:auto; }.package-card-title { display:flex; justify-content:space-between; gap:.5rem; padding-bottom:.5rem; border-bottom:1px solid var(--line); }.package-card-title h3 { margin:0; color:var(--pine-950); font-size:.9rem; }.package-card-title i { color:var(--gold-600); }.package-card-title span { color:var(--ink-500); font-size:.7rem; }.context-message { padding:.5rem 0; border-bottom:1px solid rgba(27,58,54,.08); }.context-message small { color:var(--gold-700); font-size:.68rem; }.context-message p { margin:.18rem 0 0; color:var(--ink-800); font-size:.78rem; line-height:1.45; white-space:pre-wrap; }.package-field-label { display:block; margin-top:.7rem; color:var(--pine-800); font-size:.75rem; font-weight:700; }.package-field-label textarea,.package-field-label select { display:block; width:100%; margin-top:.35rem; }.package-field-label select { padding:.5rem; border:1px solid var(--line); border-radius:.5rem; background:#fff; }
.completed-list { display:grid; gap:.45rem; max-height:440px; overflow:auto; padding:1rem 0; }.completed-task { display:flex; align-items:flex-start; gap:.55rem; padding:.65rem .2rem; border-bottom:1px solid var(--line); }.completed-icon { display:grid; place-items:center; width:1.55rem; height:1.55rem; flex:0 0 auto; color:var(--success); background:var(--success-soft); border-radius:50%; font-size:.75rem; }.completed-task strong,.completed-task small { display:block; }.completed-task small { margin-top:.2rem; color:var(--ink-500); font-size:.7rem; }.daily-report-box { margin-top:1rem; padding:1rem; background:var(--pine-50); border:1px solid var(--pine-100); border-radius:var(--radius-md); }.report-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }.report-head h3 { margin:0; color:var(--pine-950); font-size:.95rem; }.report-head i { color:var(--gold-600); }.report-head span { color:var(--success); font-size:.7rem; font-weight:700; }.daily-report-box p { color:var(--ink-500); font-size:.75rem; line-height:1.5; }.daily-report-box textarea { min-height:120px; margin-bottom:.6rem; background:#fff; }
.report-label { display:block; margin:.55rem 0 .3rem; color:var(--pine-800); font-size:.75rem; font-weight:700; }
.daily-report-box { padding:1rem 1.05rem; }
.daily-report-box .report-head { align-items:flex-start; }
.daily-report-box .report-head small { display:block; margin-top:.2rem; color:var(--ink-500); font-size:.7rem; }
.report-row { padding:.75rem 0; border-top:1px solid rgba(27,58,54,.12); }
.report-row-title { display:flex; align-items:center; gap:.45rem; }
.report-row-title strong { color:var(--pine-950); font-size:.82rem; }
.report-row-title em { margin-left:auto; color:var(--success); font-size:.65rem; font-style:normal; }
.report-row-title .manual-label { color:var(--gold-700); }
.report-index { color:var(--gold-700); font:700 .7rem/1 var(--bs-font-sans-serif); }
.report-row-value { margin-top:.42rem; color:var(--pine-950); font-size:1.18rem; font-weight:800; }
.report-row-note { margin-top:.25rem; color:var(--ink-500); font-size:.72rem; line-height:1.45; }
.report-row-problem textarea { width:100%; min-height:76px; margin-top:.55rem; resize:vertical; }
.report-hidden-field { display:none !important; }
.report-submit { margin-top:.35rem; }
.embedded-customer-panel { display:none; position:absolute; inset:.7rem; z-index:5; overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-md); }
.embedded-customer-panel.is-open { display:flex; flex-direction:column; }
.embedded-panel-head { display:flex; align-items:center; justify-content:space-between; padding:.7rem .85rem; background:var(--pine-50); border-bottom:1px solid var(--line); color:var(--pine-950); }
.embedded-customer-panel iframe { width:100%; flex:1; min-height:0; border:0; background:var(--surface); }
.embedded-mode .app-sidebar,.embedded-mode .mobile-sidebar { display:none !important; }
.embedded-mode .app-workspace { margin-left:0 !important; }
.report-content { max-width:680px; white-space:pre-wrap; line-height:1.65; }
.sop-behavior-note { display:block; margin-top:.3rem; color:var(--ink-500); font-size:.72rem; font-weight:400; line-height:1.45; }
@media (max-width:1200px) { .three-pane-grid { grid-template-columns:240px minmax(360px,1fr) 280px; gap:.7rem; } }
@media (max-width:980px) { .three-pane-grid { grid-template-columns:240px minmax(0,1fr); }.wb-right-pane { grid-column:1/-1; }.completed-list { max-height:none; }.three-pane-heading .wb-return-button { display:inline-flex; } }
@media (max-width:650px) { .three-pane-grid { grid-template-columns:1fr; }.wb-left-pane,.wb-right-pane,.wb-center-pane { grid-column:auto; }.customer-facts { grid-template-columns:1fr; }.topbar-actions .workbench-return-top { display:none; } }

.brand-lockup {
  display: flex;
  align-items: center;
  gap: .8rem;
  color: #fff;
  padding: .25rem .3rem 1.35rem;
}

.brand-lockup:hover { color: #fff; }

.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  color: var(--pine-950);
  background: linear-gradient(145deg, #f7d9a6, var(--gold-500));
  border-radius: 13px;
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
  font-size: 1.2rem;
}

.brand-lockup strong { display: block; font-size: 1.05rem; letter-spacing: .04em; }
.brand-lockup small { display: block; margin-top: .08rem; color: rgba(255,255,255,.52); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }

.app-nav { flex: 1; overflow-y: auto; scrollbar-width: thin; }

.nav-section-label {
  margin: .5rem .72rem .55rem;
  color: rgba(255,255,255,.42);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .16em;
}

.app-nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: .78rem;
  min-height: 43px;
  margin: .12rem 0;
  padding: .62rem .75rem;
  color: rgba(255,255,255,.7);
  border-radius: .65rem;
  font-weight: 550;
  transition: color .16s ease, background .16s ease, transform .16s ease;
}

.app-nav-link i { width: 1.2rem; color: rgba(255,255,255,.56); font-size: 1rem; text-align: center; }
.app-nav-link:hover { color: #fff; background: rgba(255,255,255,.07); transform: translateX(2px); }
.app-nav-link.active { color: #fff; background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); }
.app-nav-link.active::before { content: ""; position: absolute; left: -.98rem; width: 3px; height: 23px; background: var(--gold-500); border-radius: 0 4px 4px 0; }
.app-nav-link.active i { color: #f2bf73; }

.sidebar-account {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-top: .9rem;
  padding: .78rem .7rem;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: .8rem;
}

.avatar {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  color: #fff;
  background: var(--pine-700);
  border-radius: 50%;
  font-weight: 700;
}

.account-copy { min-width: 0; flex: 1; }
.account-copy strong { display: block; overflow: hidden; color: #fff; font-size: .85rem; text-overflow: ellipsis; white-space: nowrap; }
.account-copy span { color: rgba(255,255,255,.5); font-size: .72rem; }

.app-workspace { min-height: 100vh; margin-left: var(--sidebar-width); }

.app-topbar {
  position: sticky;
  top: 0;
  z-index: 1020;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  padding: .65rem clamp(1rem, 2.3vw, 2.15rem);
  background: rgba(255,253,250,.9);
  border-bottom: 1px solid rgba(204,213,208,.8);
  backdrop-filter: blur(14px);
}

.topbar-title { display: flex; align-items: center; gap: .72rem; min-width: 0; }
.topbar-title > div { min-width: 0; }
.topbar-title strong { display: block; max-width: 54vw; overflow: hidden; font-size: .98rem; text-overflow: ellipsis; white-space: nowrap; }
.topbar-eyebrow { display: block; margin-bottom: .06rem; color: var(--ink-500); font-size: .67rem; font-weight: 700; letter-spacing: .11em; }
.topbar-actions { display: flex; align-items: center; gap: .58rem; }

.system-status { align-items: center; gap: .42rem; margin-right: .25rem; color: var(--ink-500); font-size: .72rem; }
.system-status i { display: block; width: 7px; height: 7px; background: #53a783; border-radius: 50%; box-shadow: 0 0 0 4px rgba(83,167,131,.12); }

.icon-button {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  color: var(--ink-700);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
}

.icon-button:hover { color: var(--pine-800); background: var(--pine-50); border-color: #c4d7d0; }
.icon-button-dark { color: rgba(255,255,255,.7); background: transparent; border-color: transparent; }
.icon-button-dark:hover { color: #fff; background: rgba(255,255,255,.09); border-color: transparent; }
.notification-dot { position: absolute; top: -5px; right: -5px; display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; color: #fff; background: var(--danger); border: 2px solid var(--surface); border-radius: 20px; font-size: .61rem; font-weight: 700; }
.avatar-button { border: 0; }

.app-content { padding: clamp(1.1rem, 2.4vw, 2.15rem); }
.app-content > * { max-width: 1600px; margin-left: auto; margin-right: auto; }

.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; }
.page-kicker { margin-bottom: .32rem; color: var(--gold-600); font-size: .7rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.page-heading h1, .page-heading h4 { margin: 0; color: var(--ink-900); font-size: clamp(1.35rem, 2.1vw, 1.75rem); font-weight: 720; letter-spacing: -.025em; }
.page-heading p { max-width: 720px; margin: .35rem 0 0; color: var(--ink-500); }
.page-actions { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.card-header {
  padding: .9rem 1rem;
  background: rgba(248,247,243,.7);
  border-bottom-color: var(--line);
  border-radius: var(--radius-md) var(--radius-md) 0 0 !important;
}

.card-body { padding: 1rem; }
.form-workspace > .card-body { padding: clamp(1rem, 2.2vw, 1.65rem); }
.form-workspace .section-title:not(:first-child) { margin-top: 1.7rem; padding-top: .2rem; }
.app-content > h4 { margin-bottom: 1rem !important; font-size: 1.45rem; font-weight: 720; letter-spacing: -.02em; }

.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; margin-bottom: 1rem; }
.summary-card { position: relative; display: flex; align-items: center; gap: .85rem; min-height: 92px; padding: 1rem; overflow: hidden; }
.summary-card::after { content: ""; position: absolute; right: -24px; bottom: -38px; width: 86px; height: 86px; background: var(--pine-50); border-radius: 50%; }
.summary-icon { position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; color: var(--pine-700); background: var(--pine-50); border-radius: 12px; font-size: 1.05rem; }
.summary-icon.gold { color: var(--gold-600); background: var(--gold-100); }
.summary-icon.blue { color: var(--info); background: var(--info-soft); }
.summary-icon.green { color: var(--success); background: var(--success-soft); }
.summary-copy { position: relative; z-index: 1; }
.summary-copy span { display: block; margin-bottom: .12rem; color: var(--ink-500); font-size: .74rem; }
.summary-copy strong { display: block; font-size: 1.55rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.summary-copy small { display: block; margin-top: .24rem; color: var(--ink-500); font-size: .68rem; }
.funnel-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.filter-panel { margin-bottom: 1rem; }
.filter-panel .card-body { padding: .92rem 1rem 1rem; }
.filter-title { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .72rem; }
.filter-title strong { display: flex; align-items: center; gap: .48rem; color: var(--ink-700); font-size: .8rem; }
.filter-title strong i { color: var(--gold-600); }

.table-card { overflow: hidden; }
.table-responsive { scrollbar-color: #bdc8c3 transparent; }
.table { margin: 0; color: var(--ink-900); font-size: .82rem; }
.table > :not(caption) > * > * { padding: .72rem .78rem; border-bottom-color: #e9ece9; }
.table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: var(--ink-500);
  background: #f7f7f3;
  border-bottom: 1px solid var(--line-strong);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .035em;
  white-space: nowrap;
}
.table tbody tr { transition: background .12s ease; }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg: var(--pine-50); color: var(--ink-900); }
.table tbody tr[data-href]:focus-visible { outline-offset: -3px !important; }
.table-primary { --bs-table-bg: #edf5f2; --bs-table-striped-bg: #edf5f2; --bs-table-hover-bg: #e3efeb; }
.table-warning { --bs-table-bg: #fff8eb; --bs-table-striped-bg: #fff8eb; --bs-table-hover-bg: #fff3db; }
.table-danger { --bs-table-bg: var(--danger-soft); }

.customer-name { display: flex; align-items: center; gap: .55rem; min-width: 160px; font-weight: 680; }
.customer-initial { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; color: var(--pine-800); background: var(--pine-100); border-radius: 9px; font-size: .74rem; }
.subtle-id { display: block; margin-top: .12rem; color: var(--ink-500); font-size: .7rem; font-weight: 450; }
.next-action-cell { max-width: 250px; color: var(--ink-700); }

.followup-card { height: 100%; }
.followup-card.is-overdue { border-color: #e8b2ac; box-shadow: inset 3px 0 var(--danger), var(--shadow-sm); }
.followup-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.followup-name { color: var(--ink-900); font-size: .98rem; font-weight: 720; }
.followup-meta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .9rem 0; padding: .65rem .75rem; color: var(--ink-500); background: var(--surface-muted); border-radius: .55rem; font-size: .72rem; }
.followup-meta span { display: inline-flex; align-items: center; gap: .35rem; }
.followup-form { padding-top: .2rem; }
.completed-summary { display: flex; align-items: flex-start; gap: .65rem; padding: .8rem; color: #285e4b; background: var(--success-soft); border-radius: .6rem; }
.completed-summary i { margin-top: .05rem; }
.completed-summary strong, .completed-summary span { display: block; }
.completed-summary span { margin-top: .2rem; color: var(--ink-700); font-size: .75rem; }

.badge { padding: .34em .62em; border-radius: 99px; font-weight: 680; letter-spacing: .01em; }
.badge-stage-1, .badge-stage-2, .badge-stage-3 { color: #51615d; background: #edf0ee; border: 1px solid #dae0dd; }
.badge-stage-4 { color: #8d5b15; background: #fff0d6; border: 1px solid #f2d39f; }
.badge-stage-5 { color: #2f6377; background: #e3f1f6; border: 1px solid #c9e0e9; }
.badge-stage-6 { color: #2c6c57; background: #dff0e9; border: 1px solid #c3e3d7; }
.badge-stage-7, .badge-stage-8 { color: #fff; background: var(--pine-700); border: 1px solid var(--pine-700); }
.status-badge { display: inline-flex; align-items: center; gap: .36rem; color: var(--ink-700); background: #f5f6f4; border: 1px solid var(--line); }
.status-badge::before { content: ""; width: 6px; height: 6px; background: var(--ink-300); border-radius: 50%; }
.status-active::before { background: #4d9a78; }
.status-paused::before { background: #d19943; }
.status-lost::before, .status-review::before { background: var(--danger); }

.btn { border-radius: .58rem; font-weight: 650; box-shadow: none !important; }
.btn-sm { border-radius: .5rem; }
.btn-primary { --bs-btn-bg: var(--pine-700); --bs-btn-border-color: var(--pine-700); --bs-btn-hover-bg: var(--pine-900); --bs-btn-hover-border-color: var(--pine-900); --bs-btn-active-bg: var(--pine-950); --bs-btn-active-border-color: var(--pine-950); }
.btn-outline-primary { --bs-btn-color: var(--pine-700); --bs-btn-border-color: #9ebbb2; --bs-btn-hover-bg: var(--pine-700); --bs-btn-hover-border-color: var(--pine-700); }
.btn-success { --bs-btn-bg: var(--success); --bs-btn-border-color: var(--success); }
.btn-danger { --bs-btn-bg: var(--danger); --bs-btn-border-color: var(--danger); }
.btn-warning { --bs-btn-bg: #d99b45; --bs-btn-border-color: #d99b45; --bs-btn-color: #2e2518; }

.form-label { margin-bottom: .38rem; color: var(--ink-700); font-size: .76rem; font-weight: 680; }
.form-control, .form-select {
  min-height: 39px;
  color: var(--ink-900);
  background-color: #fff;
  border-color: var(--line-strong);
  border-radius: .55rem;
}
.form-control-sm, .form-select-sm { min-height: 35px; border-radius: .5rem; }
.form-control:focus, .form-select:focus { border-color: #7aa296; box-shadow: 0 0 0 .2rem rgba(40,95,86,.11); }
.form-check-input:checked { background-color: var(--pine-700); border-color: var(--pine-700); }
.form-text { color: var(--ink-500); }

.nav-tabs { gap: .25rem; border-bottom-color: var(--line); }
.nav-tabs .nav-link { margin-bottom: -1px; color: var(--ink-500); border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-weight: 650; }
.nav-tabs .nav-link:hover { color: var(--pine-700); border-color: transparent; }
.nav-tabs .nav-link.active { color: var(--pine-800); background: transparent; border-bottom-color: var(--gold-500); }
.approval-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.approval-tabs .nav-link { white-space: nowrap; }

.pagination { margin-bottom: 0; gap: .25rem; }
.page-link { min-width: 36px; color: var(--ink-700); background: var(--surface); border-color: var(--line); border-radius: .5rem !important; text-align: center; }
.active > .page-link, .page-link.active { background: var(--pine-700); border-color: var(--pine-700); }

.app-alert { display: flex; align-items: flex-start; gap: .65rem; border: 0; border-radius: var(--radius-md); }
.alert-danger { color: #78342f; background: var(--danger-soft); }
.alert-success { color: #285e4b; background: var(--success-soft); }
.alert-warning { color: #75501d; background: var(--warning-soft); border-color: #f0d4a6; }
.alert-info { color: #345e6e; background: var(--info-soft); border-color: #c9dde4; }

.section-title { display: flex; align-items: center; gap: .5rem; margin: 1.25rem 0 .72rem; color: var(--ink-900); font-size: 1rem; font-weight: 720; }
.section-title::before { content: ""; width: 4px; height: 18px; background: var(--gold-500); border-radius: 4px; }
.detail-label { color: var(--ink-500); font-size: .72rem; }
.detail-value { margin-top: .1rem; color: var(--ink-900); word-break: break-word; }
.detail-hero { display: grid; grid-template-columns: .85fr .85fr .9fr 1.8fr; padding: .25rem 0; overflow: hidden; }
.detail-hero-item { display: flex; flex-direction: column; justify-content: center; min-height: 82px; padding: 1rem 1.15rem; border-right: 1px solid var(--line); }
.detail-hero-item:last-child { border-right: 0; }
.detail-hero-item > span { margin-bottom: .28rem; color: var(--ink-500); font-size: .7rem; font-weight: 650; }
.detail-hero-item > strong { overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.detail-hero-item > small { margin-top: .15rem; color: var(--ink-500); font-size: .7rem; }
.detail-next { background: linear-gradient(100deg, transparent, rgba(223,236,232,.48)); }
.detail-columns .card-body > .section-title:first-child { margin-top: .1rem; }
.kv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0 1rem; }
.kv-grid .kv-item { padding: .65rem 0; border-bottom: 1px solid #eceeeb; }
.stat-card { padding: .85rem; text-align: center; }
.stat-card .num { margin: .2rem 0; color: var(--pine-800); font-size: 1.75rem; font-weight: 760; }

.empty-state { padding: 3.2rem 1rem !important; color: var(--ink-500); text-align: center; }
.empty-state i { display: block; margin-bottom: .65rem; color: #afbbb7; font-size: 1.8rem; }
.overdue-highlight { --bs-table-bg: #fcedea !important; }
.text-danger-strong { color: var(--danger) !important; font-weight: 700; }

.funnel-stack { display: flex; flex-direction: column; align-items: center; gap: .55rem; padding: 1rem .75rem; }
.funnel-level { display: grid; grid-template-columns: 1fr auto; align-items: center; min-height: 58px; padding: .6rem 1rem; color: #fff; background: var(--pine-700); border-radius: .7rem; box-shadow: inset 0 1px rgba(255,255,255,.15); }
.funnel-level:nth-child(2) { width: 78%; background: #337065; }
.funnel-level:nth-child(3) { width: 60%; background: #b57b34; }
.funnel-level:first-child { width: 96%; }
.funnel-level strong { font-size: 1.32rem; }
.funnel-level span { opacity: .8; font-size: .75rem; }

.mobile-sidebar { --bs-offcanvas-width: 288px; color: #fff; background: var(--pine-950); }
.mobile-sidebar .offcanvas-header { border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-sidebar .offcanvas-body { display: flex; flex-direction: column; padding: .8rem; }
.mobile-account-links { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.09); }
.mobile-account-links a { display: flex; align-items: center; gap: .4rem; justify-content: center; padding: .65rem; color: rgba(255,255,255,.7); background: rgba(255,255,255,.06); border-radius: .55rem; }

.auth-body {
  background:
    radial-gradient(circle at 85% 15%, rgba(198,138,59,.22), transparent 28%),
    linear-gradient(145deg, var(--pine-950) 0, var(--pine-800) 48%, #e9e4da 48%, var(--canvas) 100%);
}
.auth-main { display: grid; place-items: center; min-height: 100vh; padding: 1.5rem; }
.auth-main .row { width: min(100%, 1040px); margin: 0 !important; }
.auth-main .row > div { width: 100%; max-width: 460px; margin: auto; }
.auth-main .card { border: 1px solid rgba(255,255,255,.65); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.auth-main .card-body { padding: clamp(1.5rem, 5vw, 2.5rem) !important; }
.auth-brand { display: flex; justify-content: center; align-items: center; gap: .72rem; margin-bottom: 1.6rem; }
.auth-brand .brand-mark { width: 48px; height: 48px; flex-basis: 48px; }
.auth-brand strong { display: block; font-size: 1.15rem; }
.auth-brand small { display: block; color: var(--ink-500); font-size: .72rem; }

.modal-content { border: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.modal-header, .modal-footer { border-color: var(--line); }
.dropdown-menu { border-color: var(--line); border-radius: .65rem; box-shadow: var(--shadow-md); }
.dropdown-item { border-radius: .4rem; }
.dropdown-menu { padding: .4rem; }

.list-group { border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.list-group-item { padding: .72rem .85rem; color: var(--ink-700); background: var(--surface); border-color: var(--line); font-weight: 600; }
.list-group-item.active { color: #fff; background: var(--pine-700); border-color: var(--pine-700); }
.list-group-item-action:hover { color: var(--pine-800); background: var(--pine-50); }
code { color: #8b5c24; background: var(--gold-100); border-radius: .3rem; padding: .12rem .3rem; }
pre { color: inherit; font-family: inherit; }
.ev-paste { background: var(--surface-muted); border-color: var(--line) !important; }
.ev-paste:hover { color: var(--pine-700) !important; background: var(--pine-50); border-color: #b9d0c8 !important; }

footer { margin-top: 2rem; padding: 1rem 0; color: var(--ink-300); font-size: .7rem; text-align: center; }

/* 截圖 OCR 與顧問工作台 */
.ocr-intake-card { overflow: hidden; }
.step-heading { display: flex; align-items: center; gap: .75rem; margin-bottom: .9rem; }
.step-heading > span { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 31px; color: #fff; background: var(--pine-700); border-radius: 9px; font-weight: 750; }
.step-heading strong, .step-heading small { display: block; }
.step-heading strong { font-size: .94rem; }
.step-heading small { margin-top: .12rem; color: var(--ink-500); font-size: .71rem; }
.segmented-control { display: inline-flex; padding: 3px; background: var(--surface-muted); border: 1px solid var(--line); border-radius: .65rem; }
.segmented-control .btn { padding: .48rem .85rem; color: var(--ink-500); border: 0; }
.segmented-control .btn-check:checked + .btn { color: var(--pine-900); background: #fff; box-shadow: 0 2px 8px rgba(13,43,39,.08) !important; }
.platform-picker { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; }
.platform-picker label { cursor: pointer; }
.platform-picker input { position: absolute; opacity: 0; pointer-events: none; }
.platform-picker span { display: flex; align-items: center; justify-content: center; gap: .42rem; min-height: 40px; padding: .45rem .6rem; color: var(--ink-500); background: #fff; border: 1px solid var(--line-strong); border-radius: .55rem; font-size: .75rem; font-weight: 650; text-align: center; }
.platform-picker input:checked + span { color: var(--pine-800); background: var(--pine-50); border-color: #8db1a6; box-shadow: inset 0 0 0 1px #8db1a6; }
.ocr-dropzone { display: grid; place-items: center; min-height: 178px; padding: 1.5rem; color: var(--ink-500); background: repeating-linear-gradient(135deg, rgba(239,246,243,.72), rgba(239,246,243,.72) 12px, rgba(255,253,250,.7) 12px, rgba(255,253,250,.7) 24px); border: 1.5px dashed #9db7ae; border-radius: var(--radius-md); text-align: center; transition: border .16s ease, background .16s ease, transform .16s ease; }
.ocr-dropzone > i { margin-bottom: .35rem; color: var(--pine-700); font-size: 2rem; }
.ocr-dropzone strong, .ocr-dropzone span { display: block; }
.ocr-dropzone strong { color: var(--ink-900); }
.ocr-dropzone span { margin-top: .25rem; font-size: .76rem; }
.ocr-dropzone.is-dragging { background: var(--pine-100); border-color: var(--pine-700); transform: translateY(-2px); }
.ocr-file-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .65rem; }
.ocr-file-item { position: relative; overflow: hidden; background: var(--surface-muted); border: 1px solid var(--line); border-radius: .65rem; }
.ocr-file-item img { display: block; width: 100%; height: 104px; object-fit: cover; }
.ocr-file-item footer { display: flex; align-items: center; justify-content: space-between; gap: .3rem; margin: 0; padding: .42rem .5rem; color: var(--ink-700); font-size: .65rem; text-align: left; }
.ocr-file-item footer span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ocr-file-controls { position: absolute; top: .35rem; right: .35rem; display: flex; gap: .25rem; }
.ocr-file-controls button { display: grid; place-items: center; width: 27px; height: 27px; padding: 0; color: #fff; background: rgba(13,43,39,.82); border: 0; border-radius: 7px; }
.feature-list { display: grid; gap: .35rem; }
.feature-list > div { display: flex; gap: .7rem; padding: .7rem 0; border-bottom: 1px solid #eceeeb; }
.feature-list > div:last-child { border-bottom: 0; }
.feature-list i { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; color: var(--pine-700); background: var(--pine-50); border-radius: 9px; }
.feature-list strong, .feature-list small { display: block; }
.feature-list small { margin-top: .15rem; color: var(--ink-500); font-size: .69rem; line-height: 1.45; }
.batch-list { display: grid; }
.batch-list > a { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .75rem 0; border-bottom: 1px solid #eceeeb; }
.batch-list > a:last-child { border-bottom: 0; }
.batch-list strong, .batch-list small { display: block; }
.batch-list strong { color: var(--ink-900); font-size: .78rem; }
.batch-list small { margin-top: .16rem; color: var(--ink-500); font-size: .67rem; }
.empty-inline { padding: 1.3rem .5rem; color: var(--ink-500); text-align: center; }
.ocr-status { display: inline-flex; align-items: center; flex: 0 0 auto; padding: .28rem .55rem; color: var(--ink-700); background: #eef1ef; border-radius: 99px; font-size: .66rem; font-weight: 720; }
.ocr-status-ready { color: #845719; background: var(--warning-soft); }
.ocr-status-processing, .ocr-status-queued { color: var(--info); background: var(--info-soft); }
.ocr-status-committed { color: var(--success); background: var(--success-soft); }
.ocr-status-failed { color: var(--danger); background: var(--danger-soft); }
.ocr-progress-card { overflow: hidden; }
.ocr-progress-card .progress { height: 5px; background: var(--pine-50); }
.ocr-progress-card .progress-bar { background-color: var(--gold-500); }
.ocr-run-meta { display: flex; gap: .8rem; flex-wrap: wrap; color: var(--ink-500); font-size: .65rem; }
.ocr-run-meta span { display: inline-flex; align-items: center; gap: .28rem; }
.ocr-image-strip { display: flex; gap: .6rem; overflow-x: auto; padding: .1rem .05rem .45rem; scrollbar-width: thin; }
.ocr-image-card { position: relative; width: 104px; flex: 0 0 104px; overflow: hidden; color: var(--ink-700); background: var(--surface); border: 1px solid var(--line); border-radius: .65rem; box-shadow: var(--shadow-sm); }
.ocr-image-card img { display: block; width: 100%; height: 92px; object-fit: cover; }
.ocr-image-card span, .ocr-image-card small { display: block; padding: .3rem .4rem; font-size: .62rem; }
.ocr-image-card small { color: var(--danger); }
.ocr-sticky-panel { position: sticky; top: 84px; }
.ocr-crop-preview { position: relative; overflow: hidden; min-height: 210px; max-height: 300px; background: #e5e9e7; border: 1px solid var(--line); border-radius: .7rem; }
.ocr-crop-preview img { display: block; width: 100%; height: 250px; object-fit: contain; }
.ocr-crop-preview > span { position: absolute; z-index: 2; pointer-events: none; border: 2px solid var(--gold-500); border-radius: .35rem; box-shadow: 0 0 0 999px rgba(13,43,39,.48), 0 0 0 1px rgba(255,255,255,.8) inset; transition: all .16s ease; }
[data-ocr-crop-controls].is-disabled { opacity: .46; }
.ocr-overlay-list { display: grid; gap: .6rem; }
.ocr-overlay-item { overflow: hidden; border: 1px solid var(--line); border-radius: .7rem; }
.ocr-overlay-item summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem .75rem; color: var(--ink-900); background: var(--surface-muted); cursor: pointer; font-size: .72rem; font-weight: 720; }
.ocr-overlay-item summary small { color: var(--ink-500); font-size: .6rem; font-weight: 560; }
.ocr-overlay-stage { position: relative; overflow: auto; max-height: 520px; background: #eef1ef; }
.ocr-overlay-stage img { display: block; width: 100%; height: auto; }
.ocr-detection-box { position: absolute; z-index: 2; min-width: 3px; min-height: 3px; pointer-events: none; border: 2px solid #3d8f72; border-radius: .2rem; background: rgba(61,143,114,.09); box-shadow: 0 0 0 1px rgba(255,255,255,.7); }
.ocr-detection-box.box-sales { border-color: #2672d4; background: rgba(38,114,212,.09); }
.ocr-detection-box.box-system { border-color: var(--gold-500); background: rgba(201,137,38,.12); }
.conversation-editor { display: grid; gap: .65rem; max-height: calc(100vh - 280px); overflow-y: auto; padding-right: .15rem; scrollbar-width: thin; }
.transcript-row { padding: .65rem; background: #fff; border: 1px solid var(--line); border-left: 3px solid #3d8f72; border-radius: .65rem; }
.transcript-row.transcript-sales { border-left-color: #2672d4; }
.transcript-row.transcript-system { border-left-color: var(--gold-500); }
.transcript-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .45rem; }
.transcript-head .form-select { width: 128px; }
.transcript-row textarea { min-height: 58px; resize: vertical; line-height: 1.45; }
.transcript-row footer { display: flex; align-items: center; gap: .55rem; margin-top: .38rem; color: var(--ink-500); font-size: .59rem; flex-wrap: wrap; }
.transcript-row footer span { display: inline-flex; align-items: center; gap: .22rem; }
.transcript-row footer small { flex-basis: 100%; color: var(--ink-700); }
.conversation-review { max-height: calc(100vh - 220px); overflow-y: auto; padding: .5rem; background: #eef1ef; border-radius: .7rem; scrollbar-width: thin; }
.message-row { display: flex; margin: .4rem 0; }
.message-row > div { max-width: 86%; }
.message-row span { display: block; margin: 0 .3rem .15rem; color: var(--ink-500); font-size: .6rem; }
.message-row p { margin: 0; padding: .55rem .7rem; color: var(--ink-900); background: #fff; border: 1px solid rgba(0,0,0,.04); border-radius: .75rem .75rem .75rem .2rem; box-shadow: 0 1px 3px rgba(13,43,39,.04); font-size: .76rem; line-height: 1.5; white-space: pre-wrap; }
.message-sales { justify-content: flex-end; }
.message-sales span { text-align: right; }
.message-sales p { background: #dcefe7; border-radius: .75rem .75rem .2rem .75rem; }
.message-system { justify-content: center; }
.message-system p { color: var(--ink-500); background: transparent; border: 0; box-shadow: none; font-size: .68rem; }
.candidate-list { display: grid; gap: .7rem; }
.candidate-row { display: grid; grid-template-columns: 30px 1fr; gap: .55rem; padding: .78rem; background: var(--surface-muted); border: 1px solid var(--line); border-radius: .7rem; }
.candidate-check { padding-top: 1.7rem; }
.candidate-check input { width: 18px; height: 18px; accent-color: var(--pine-700); }
.candidate-main label { color: var(--ink-900); font-size: .76rem; font-weight: 720; }
.confidence-chip { padding: .18rem .42rem; border-radius: 99px; font-size: .62rem; font-weight: 720; }
.confidence-high { color: var(--success); background: var(--success-soft); }
.confidence-medium { color: var(--warning); background: var(--warning-soft); }
.confidence-low { color: var(--ink-500); background: #e8ecea; }
.candidate-evidence { display: grid; gap: .16rem; margin-top: .42rem; color: var(--ink-700); font-size: .67rem; }
.candidate-evidence span { display: flex; gap: .3rem; }
.candidate-evidence small { color: var(--ink-500); }
.evidence-choice { display: grid; grid-template-columns: 18px 54px 1fr; align-items: center; gap: .5rem; min-height: 66px; padding: .45rem; background: var(--surface-muted); border: 1px solid var(--line); border-radius: .6rem; cursor: pointer; }
.evidence-choice img { width: 54px; height: 54px; object-fit: cover; border-radius: .4rem; }
.evidence-choice span { font-size: .7rem; }
.commit-bar { position: sticky; bottom: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .9rem 1rem; background: rgba(255,253,250,.96); border: 1px solid var(--line-strong); border-radius: .8rem; box-shadow: 0 -10px 30px rgba(13,43,39,.08); backdrop-filter: blur(12px); }
.commit-bar strong, .commit-bar small { display: block; }
.commit-bar small { margin-top: .15rem; color: var(--ink-500); font-size: .68rem; }
.assessment-timeline { display: grid; gap: .8rem; }
.assessment-timeline > div { position: relative; padding: .8rem .8rem .8rem 1rem; background: var(--surface-muted); border-left: 3px solid var(--gold-500); border-radius: 0 .6rem .6rem 0; }
.assessment-timeline time, .assessment-timeline strong, .assessment-timeline small { display: block; }
.assessment-timeline time, .assessment-timeline small { color: var(--ink-500); font-size: .66rem; }
.assessment-timeline strong { margin: .2rem 0; }
.assessment-timeline p { display: flex; gap: .3rem; margin: .4rem 0; flex-wrap: wrap; }
.assessment-timeline p span { padding: .18rem .42rem; background: var(--pine-100); border-radius: 99px; font-size: .64rem; }
.consultant-summary { border-color: #c9d9d3; background: linear-gradient(120deg, #fffdfa, #f2f7f4); }
.consultant-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.consultant-summary-item { padding: .75rem; background: rgba(255,255,255,.75); border: 1px solid rgba(204,213,208,.8); border-radius: .65rem; }
.consultant-summary-item span, .consultant-summary-item small { display: block; }
.consultant-summary-item > span { color: var(--ink-500); font-size: .67rem; font-weight: 680; }
.consultant-summary-item strong { display: block; margin-top: .25rem; font-size: .8rem; line-height: 1.45; }
.consultant-summary-item small { margin-top: .2rem; color: var(--ink-500); }
.dimension-chips { display: flex; gap: .35rem; flex-wrap: wrap; }
.dimension-chips span { padding: .3rem .5rem; color: var(--pine-800); background: var(--pine-100); border-radius: 99px; font-size: .67rem; font-weight: 680; }

@media (max-width: 1199.98px) {
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  .app-workspace { margin-left: 0; }
  .app-topbar { min-height: 62px; }
  .app-content { padding: 1rem; }
  .table thead th { top: 0; }
  .detail-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-hero-item:nth-child(2) { border-right: 0; }
  .detail-hero-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .ocr-sticky-panel { position: static; }
  .conversation-review { max-height: 560px; }
  .conversation-editor { max-height: none; }
  .consultant-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  body { font-size: .86rem; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  .page-actions { width: 100%; }
  .page-actions .btn { flex: 1; }
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .summary-card { min-height: 82px; padding: .8rem; }
  .summary-icon { width: 36px; height: 36px; flex-basis: 36px; }
  .summary-copy strong { font-size: 1.28rem; }
  .funnel-summary { grid-template-columns: 1fr; }
  .card-body { padding: .85rem; }
  .filter-panel .row > [class*="col-"] { width: 50%; }
  .filter-panel .row > .filter-keyword { width: 100%; }
  .filter-panel .row > .filter-actions { width: 100%; display: flex; gap: .5rem; }
  .filter-actions .btn { flex: 1; }
  .funnel-level:first-child { width: 100%; }
  .funnel-level:nth-child(2) { width: 88%; }
  .funnel-level:nth-child(3) { width: 76%; }
  .detail-hero { grid-template-columns: 1fr; }
  .detail-hero-item { min-height: 64px; border-right: 0; border-bottom: 1px solid var(--line); }
  .detail-hero-item:nth-child(2) { border-bottom: 1px solid var(--line); }
  .detail-hero-item:last-child { border-bottom: 0; }
  .platform-picker { grid-template-columns: 1fr; }
  .commit-bar { align-items: stretch; flex-direction: column; }
  .commit-bar .btn { width: 100%; }
}

@media (max-width: 479.98px) {
  .summary-grid { grid-template-columns: 1fr; }
  .filter-panel .row > [class*="col-"] { width: 100%; }
  .topbar-eyebrow { display: none; }
  .topbar-title strong { max-width: 55vw; }
  .consultant-summary-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
