/* AI 移動家辦 — Claude 風格主題（2026-07-04 Hi 指示 3：米白底/赤陶橘/暖墨色） */
:root {
  --navy: #3d3a33;
  --navy-2: #4a463d;
  --navy-3: #575247;
  --ink: #1f1e1b;
  --muted: #7a7468;
  --line: #e8e4da;
  --bg: #f4f2ec;
  --card: #ffffff;
  --orange: #d97757;
  --orange-soft: #f9ede6;
  --gold: #c9a86a;
  --blue: #5f7d95;
  --blue-soft: #eef3f6;
  --green: #5e8d6f;
  --crit: #c34f42;
  --warn: #b98237;
  --info: #5f7d95;
  --radius: 14px;
  --shadow: 0 2px 8px rgba(14, 36, 64, .06), 0 8px 24px rgba(14, 36, 64, .06);
  --shadow-lg: 0 12px 40px rgba(14, 36, 64, .16);
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", "Segoe UI", system-ui, sans-serif;
  color: var(--ink); background: var(--bg); line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { margin: 0; font-weight: 800; letter-spacing: .2px; }
small { color: var(--muted); }
button { font-family: inherit; cursor: pointer; }

/* ---------- 頂部品牌列 ---------- */
.topbar {
  background: linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 60%, var(--navy-3) 100%);
  color: #fff; padding: 14px 28px; display: flex; align-items: center; gap: 16px;
  border-bottom: 3px solid var(--orange);
}
.topbar .logo {
  width: 40px; height: 40px; border-radius: 50%; background: #f3ead6; color: var(--navy);
  display: grid; place-items: center; font-weight: 900; font-size: 20px; flex: 0 0 auto;
}
.topbar .brand { display: flex; flex-direction: column; }
.topbar .brand .en { color: var(--gold); font-size: 12px; letter-spacing: 2px; }
.topbar .brand .zh { font-size: 20px; font-weight: 900; }
.topbar .tagline { color: #b9c6d8; font-size: 13px; margin-left: 8px; flex: 1; }
.ai-badge {
  font-size: 12px; padding: 6px 12px; border-radius: 999px; font-weight: 700;
  background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.25);
}
.ai-badge .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; background: var(--gold); }
.ai-badge.live .dot { background: #54e08a; box-shadow: 0 0 0 3px rgba(84,224,138,.25); }

/* ---------- 五階段 stepper ---------- */
.stepper { display: flex; gap: 0; background: #fff; padding: 0 16px; border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 20; overflow-x: auto; }
.step {
  flex: 1 1 0; min-width: 150px; text-align: center; padding: 14px 8px; border-bottom: 3px solid transparent;
  color: var(--muted); font-weight: 700; font-size: 14px; white-space: nowrap; transition: .2s; background: none; border-top: none; border-left: none; border-right: none;
}
.step .num { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
  background: var(--line); color: var(--muted); font-size: 12px; margin-right: 6px; vertical-align: middle; }
.step.active { color: var(--navy); border-bottom-color: var(--orange); }
.step.active .num { background: var(--orange); color: #fff; }
.step.done { color: var(--green); }
.step.done .num { background: var(--green); color: #fff; }
.step:disabled { cursor: not-allowed; opacity: .55; }

/* ---------- 主版面 ---------- */
.wrap { max-width: 1680px; margin: 0 auto; padding: 26px clamp(16px, 3vw, 48px) 80px; }
.stage { display: none; animation: fade .35s ease; }
.stage.active { display: block; }
@keyframes fade { from { opacity: 0; transform: translateY(8px);} to { opacity: 1; transform: none;} }
.stage-head { margin-bottom: 18px; }
.stage-head h2 { font-size: 24px; color: var(--navy); }
.stage-head .sub { color: var(--muted); margin-top: 4px; }
.kicker { display:inline-block; font-size:12px; font-weight:800; letter-spacing:2px; color:var(--orange); text-transform:uppercase; }

.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; border: 1px solid var(--line); }
.grid { display: grid; gap: 16px; }
.cols-2 { grid-template-columns: 1fr 1fr; }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 860px){ .cols-2, .cols-3 { grid-template-columns: 1fr; } }

/* ---------- 按鈕 ---------- */
.btn { border: none; border-radius: 10px; padding: 12px 22px; font-weight: 800; font-size: 15px; transition: .15s; }
.btn.primary { background: var(--orange); color: #fff; box-shadow: 0 4px 14px rgba(232,116,59,.35); }
.btn.primary:hover { filter: brightness(1.05); transform: translateY(-1px); }
.btn.ghost { background: #fff; color: var(--navy); border: 1.5px solid var(--line); }
.btn.ghost:hover { border-color: var(--orange); color: var(--orange); }
.btn.dark { background: var(--navy); color: #fff; }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.actions { display: flex; gap: 12px; margin-top: 22px; align-items: center; }
.actions .spacer { flex: 1; }

/* ---------- 客戶卡（Stage 1）---------- */
.client-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
@media (max-width: 860px){ .client-pick { grid-template-columns: 1fr; } }
.client-card { text-align: left; background: #fff; border: 1.5px solid var(--line); border-radius: var(--radius); padding: 18px; transition: .15s; position: relative; }
.client-card:hover { border-color: var(--orange); box-shadow: var(--shadow); }
.client-card.selected { border-color: var(--orange); box-shadow: 0 0 0 3px var(--orange-soft); }
.client-card .nm { font-size: 18px; font-weight: 800; color: var(--navy); }
.client-card .meta { color: var(--muted); font-size: 13px; margin: 2px 0 10px; }
.client-card .need { background: var(--blue-soft); color: var(--blue); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.client-card .star { display: inline-block; margin: 0 6px 8px 0; background: var(--gold); color: #fff; font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 999px; }

/* ---------- 訪談題綱 ---------- */
.guide-dim { border-left: 3px solid var(--orange); padding: 6px 0 6px 14px; margin-bottom: 12px; }
.guide-dim h4 { color: var(--navy); font-size: 15px; }
.guide-dim ul { margin: 6px 0 0; padding-left: 18px; color: var(--muted); }
.guide-dim li { margin: 3px 0; }

/* ---------- 客戶 360（Stage 2）---------- */
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
@media (max-width: 700px){ .facts { grid-template-columns: 1fr; } }
.fact { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--line); }
.fact .k { color: var(--muted); font-size: 14px; }
.fact .v { font-weight: 700; color: var(--ink); text-align: right; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.tag { background: var(--navy); color: #fff; font-size: 12px; padding: 5px 11px; border-radius: 999px; font-weight: 600; }
.tag.soft { background: var(--blue-soft); color: var(--blue); }

/* ---------- 6 維儀表板（Stage 3）---------- */
.dash-top { display:flex; gap:16px; align-items:stretch; margin-bottom:16px; flex-wrap:wrap; }
.radar-box { flex: 0 0 280px; }
.legend-trust { flex: 1; min-width: 260px; }
.dim-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
@media (max-width: 860px){ .dim-grid { grid-template-columns: 1fr; } }
.dim {
  border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden;
  box-shadow: var(--shadow);
}
.dim .dim-h { display: flex; align-items: center; gap: 10px; padding: 13px 16px; background: var(--navy); color: #fff; }
.dim .dim-h .ic { font-size: 18px; font-weight: 900; color: var(--gold); }
.dim .dim-h .t { font-weight: 800; flex: 1; }
.dim .dim-h .emph-badge { font-size: 10.5px; padding: 3px 8px; border-radius: 999px; font-weight: 800; background: var(--gold); color: #fff; }
.dim .dim-h .score { font-size: 12px; padding: 3px 9px; border-radius: 999px; font-weight: 800; }
.score.s-hi { background: var(--crit); color: #fff; }
.score.s-mid { background: var(--warn); color: #fff; }
.score.s-lo { background: var(--green); color: #fff; }
.dim .dim-b { padding: 14px 16px; }
.dim .headline { font-weight: 800; color: var(--navy); margin-bottom: 10px; }
.metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.metric { background: var(--bg); border-radius: 9px; padding: 8px 10px; }
.metric .ml { font-size: 11px; color: var(--muted); }
.metric .mv { font-size: 16px; font-weight: 800; color: var(--ink); }
.finding { display: flex; gap: 9px; padding: 8px 0; border-top: 1px dashed var(--line); font-size: 13.5px; }
.finding .sev { flex: 0 0 auto; width: 6px; border-radius: 3px; }
.finding.critical .sev { background: var(--crit); }
.finding.warning .sev { background: var(--warn); }
.finding.info .sev { background: var(--info); }
.finding .ftext { flex: 1; }
.cite { display: inline-block; margin-top: 4px; font-size: 11.5px; color: var(--blue); background: var(--blue-soft); padding: 2px 8px; border-radius: 6px; }
.cite::before { content: "▸ 來源："; opacity: .7; }

/* ---------- 信任層 legend ---------- */
.trust-layer { display:flex; gap:10px; align-items:flex-start; padding:10px 0; border-top:1px dashed var(--line); }
.trust-layer:first-child { border-top:none; }
.trust-layer .badge { flex:0 0 auto; font-size:11px; font-weight:800; padding:4px 9px; border-radius:6px; background:var(--orange-soft); color:var(--orange); }
.trust-layer .tl-t { font-weight:800; color:var(--navy); font-size:14px; }
.trust-layer .tl-d { color:var(--muted); font-size:12.5px; }
.schema-ok { color: var(--green); font-weight: 800; }
.schema-bad { color: var(--crit); font-weight: 800; }

/* ---------- 對比表（Stage 4 hero）---------- */
.hero-multi { display:flex; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.multi-card { flex:1; min-width:200px; background:linear-gradient(135deg, var(--navy), var(--navy-3)); color:#fff; border-radius:var(--radius); padding:20px; text-align:center; }
.multi-card.accent { background:linear-gradient(135deg, var(--orange), #c95a25); }
.multi-card .big { font-size:42px; font-weight:900; line-height:1; }
.multi-card .lbl { color:#d8e1ee; font-size:13px; margin-top:8px; }
.multi-card.accent .lbl { color:#ffe7d8; }
.cmp { width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.cmp th, .cmp td { padding:12px 14px; text-align:left; border-bottom:1px solid var(--line); font-size:14px; }
.cmp thead th { color:#fff; font-weight:800; }
.cmp thead th:nth-child(1){ background:var(--ink); }
.cmp thead th:nth-child(2){ background:var(--blue); }
.cmp thead th:nth-child(3){ background:var(--orange); }
.cmp tbody td:first-child { color:var(--muted); font-weight:700; }
.cmp tr.total td { font-weight:900; font-size:15px; background:var(--orange-soft); }
.cmp tr.total td:nth-child(3){ color:var(--orange); }
.cmp .pill { font-size:11px; background:var(--gold); color:#fff; padding:2px 8px; border-radius:999px; font-weight:800; margin-left:6px; }

/* 商品明細 */
.plan-lines { margin-top:14px; }
.plan-line { display:grid; grid-template-columns: 1.6fr .8fr .5fr .8fr; gap:8px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; margin-bottom:7px; font-size:13.5px; align-items:center; }
.plan-line .pn { font-weight:700; color:var(--navy); }
.plan-line .role { color:var(--muted); font-size:12px; grid-column: 1 / -1; margin-top:-3px; }
.plan-line .num { text-align:right; font-variant-numeric: tabular-nums; }
.plan-line .comm { color:var(--orange); font-weight:800; text-align:right; }
.plan-line .evalm { color:var(--blue); font-weight:700; background:var(--blue-soft); padding:2px 8px; border-radius:6px; }

/* 保單功能設計 */
.pf-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
@media (max-width:860px){ .pf-grid { grid-template-columns:1fr; } }
.pf { border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:9px; padding:12px 14px; background:#fff; }
.pf-t { font-weight:800; color:var(--navy); font-size:14px; margin-bottom:5px; }
.pf-x { color:var(--muted); font-size:13px; line-height:1.65; margin-bottom:6px; }

/* 實質課稅掃描 */
.stscan { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.st-pat { font-size:12px; padding:5px 10px; border-radius:8px; border:1px solid var(--line); color:var(--muted); }
.st-pat.hit { background:#fdecec; color:var(--crit); border-color:#f3c4c4; font-weight:700; }
.riskbar { display:inline-block; padding:5px 12px; border-radius:999px; font-weight:800; font-size:13px; }
.riskbar.low { background:#e7f5ee; color:var(--green); }
.riskbar.medium { background:#fdf2e0; color:var(--warn); }
.riskbar.high { background:#fdecec; color:var(--crit); }

/* HITL */
.hitl { border:2px dashed var(--orange); border-radius:var(--radius); padding:16px 18px; background:var(--orange-soft); margin-top:18px; }
.hitl h4 { color:var(--orange); }
.hitl label { display:flex; gap:10px; align-items:flex-start; margin-top:10px; font-size:14px; color:var(--ink); cursor:pointer; }
.hitl input[type=checkbox]{ margin-top:4px; width:18px; height:18px; accent-color: var(--orange); }
.hitl .approved { color:var(--green); font-weight:800; margin-top:10px; }

/* ---------- 持續追蹤（Stage 5）---------- */
.timeline { display:flex; flex-direction:column; gap:0; }
.tl-item { display:flex; gap:14px; }
.tl-item .rail { display:flex; flex-direction:column; align-items:center; }
.tl-item .knob { width:14px; height:14px; border-radius:50%; background:var(--orange); margin-top:6px; }
.tl-item .bar { flex:1; width:2px; background:var(--line); }
.tl-item .body { padding-bottom:18px; }
.events { display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.event-btn { background:#fff; border:1.5px solid var(--line); border-radius:10px; padding:10px 14px; font-weight:700; color:var(--navy); font-size:13.5px; }
.event-btn:hover { border-color:var(--orange); color:var(--orange); }
.replan-out { margin-top:14px; padding:14px; border-radius:10px; background:var(--blue-soft); color:var(--ink); font-size:14px; display:none; }
.replan-out.show { display:block; }

/* ---------- 雜項 ---------- */
.note { font-size:12.5px; color:var(--muted); background:#fbfcfe; border:1px dashed var(--line); border-radius:10px; padding:10px 12px; margin-top:14px; }
.narr { background:var(--navy); color:#eaf0f8; border-radius:var(--radius); padding:18px 20px; line-height:1.8; }
.narr .tp { display:flex; gap:8px; margin-top:8px; }
.narr .tp .b { color:var(--gold); font-weight:900; }
.loading { color:var(--muted); font-style:italic; }

/* 法源驗證：可點擊引用 + modal */
.cite.clickable { cursor:pointer; }
.cite.clickable:hover { background:var(--gold); color:#fff; }
.cite.verified::after { content:" ✓"; color:var(--green); font-weight:800; }
.cite.unverified { background:#fdecec; color:var(--crit); }
.cite.unverified::after { content:" ✗"; }
.modal-overlay { position:fixed; inset:0; background:rgba(14,36,64,.55); display:grid; place-items:center; z-index:100; padding:20px; }
.modal-box { background:#fff; border-radius:var(--radius); max-width:680px; width:100%; max-height:82vh; overflow:auto; padding:26px 28px; box-shadow:var(--shadow-lg); position:relative; }
.modal-close { position:absolute; top:12px; right:16px; border:none; background:none; font-size:28px; color:var(--muted); line-height:1; }
.modal-box h3 { color:var(--navy); margin-bottom:6px; }
.src-law { display:inline-block; background:var(--navy); color:#fff; font-size:12px; padding:3px 10px; border-radius:999px; margin-bottom:10px; }
.src-text { background:var(--bg); border-left:3px solid var(--orange); border-radius:8px; padding:14px 16px; line-height:1.9; color:var(--ink); white-space:pre-wrap; }
.src-meta { font-size:13px; color:var(--muted); margin-top:12px; }
.src-meta a { color:var(--blue); }
.src-warn { margin-top:12px; background:#fdf2e0; border:1px solid #f0d59a; border-radius:8px; padding:12px 14px; font-size:13.5px; color:#7a5a1e; }
.src-bad { color:var(--crit); font-weight:800; }
.audit-line { margin-top:6px; font-size:12.5px; }

/* 身分別研判卡 */
.hh-card { background:#fff; border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:var(--radius); box-shadow:var(--shadow); padding:16px 18px; margin-bottom:16px; }
.hh-card.special { border-left-color:var(--orange); background:linear-gradient(180deg,#fff8f3,#fff); }
.hh-top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.hh-badge { font-size:12px; font-weight:800; color:#fff; background:var(--navy); padding:4px 10px; border-radius:999px; }
.hh-primary { font-size:20px; font-weight:900; color:var(--navy); }
.hh-card.special .hh-primary { color:var(--orange); }
.hh-note { color:var(--muted); font-size:12.5px; }
.hh-desc { color:var(--ink); font-size:14px; margin:10px 0 8px; line-height:1.7; }
.hh-emph { font-size:13.5px; background:var(--blue-soft); color:var(--ink); border-radius:8px; padding:9px 12px; }
.hh-card.special .hh-emph { background:var(--orange-soft); }
.hh-flags { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
@media (max-width:860px){ .hh-flags { grid-template-columns:1fr; } }
.hh-flag { border:1px solid var(--line); border-radius:9px; padding:10px 12px; background:#fff; }
.hh-flag.critical { border-left:4px solid var(--crit); }
.hh-flag.warning { border-left:4px solid var(--warn); }
.hh-flag.info { border-left:4px solid var(--info); }
.hh-flag .ft { font-weight:800; color:var(--navy); font-size:13.5px; }
.hh-flag .fx { color:var(--muted); font-size:12.5px; margin-top:4px; line-height:1.6; }
.footer-mini { text-align:center; color:var(--muted); font-size:12px; margin-top:30px; }

/* 財務規劃建議書（列印/匯出 PDF）*/
#printDoc { display:none; }
#printDoc h1 { font-size:22px; color:var(--navy); border-bottom:3px solid var(--orange); padding-bottom:8px; }
#printDoc h2 { font-size:16px; color:var(--navy); margin:16px 0 6px; }
#printDoc table { width:100%; border-collapse:collapse; margin:6px 0; font-size:12.5px; }
#printDoc th, #printDoc td { border:1px solid #ccc; padding:6px 8px; text-align:left; }
#printDoc th { background:#f0f0f0; }
#printDoc ul { font-size:12.5px; line-height:1.7; }
#printDoc .disc { font-size:11px; color:#666; margin-top:16px; border-top:1px dashed #ccc; padding-top:8px; }
/* SOP v1.7 客戶財務健檢報告（SoA 式）樣式 */
#printDoc h3 { font-size:13.5px; color:var(--navy); margin:10px 0 4px; }
#printDoc .rpt-sub { font-size:11.5px; color:#666; margin:2px 0 10px; }
#printDoc .rpt-callout { background:var(--orange-soft); border-left:4px solid var(--orange); padding:8px 12px; margin:8px 0; font-weight:700; font-size:13px; }
#printDoc .rpt-t { width:100%; border-collapse:collapse; margin:6px 0; font-size:12px; }
#printDoc .rpt-t th, #printDoc .rpt-t td { border:1px solid #ccc; padding:5px 7px; text-align:left; vertical-align:top; }
#printDoc .rpt-t th { background:#f0f0f0; }
#printDoc .rpt-t tr.rpt-total td { background:#fafafa; font-weight:800; }
#printDoc .score { display:inline-block; padding:1px 8px; border-radius:5px; font-weight:800; color:#fff; }
#printDoc .score.s-hi { background:var(--crit); } #printDoc .score.s-mid { background:var(--warn); } #printDoc .score.s-ok { background:var(--green); }
#printDoc .rpt-acts, #printDoc .rpt-recs, #printDoc .rpt-risks, #printDoc .rpt-disc { font-size:12px; line-height:1.7; padding-left:18px; }
#printDoc .rpt-recs li, #printDoc .rpt-risks li { margin-bottom:6px; }
#printDoc .rpt-why { color:#555; font-size:11.5px; }
#printDoc .rpt-risk-critical { border-left:3px solid var(--crit); padding-left:7px; list-style:none; margin-left:-14px; }
#printDoc .rpt-risk-warning { border-left:3px solid var(--warn); padding-left:7px; list-style:none; margin-left:-14px; }
#printDoc .rpt-flag { background:#fff8f3; border-left:3px solid var(--orange); padding:5px 10px; font-size:12px; }
#printDoc .rpt-scope, #printDoc .rpt-disc-inline { font-size:11.5px; color:#444; background:#f7f9fc; border:1px solid #e3e8ef; padding:7px 10px; border-radius:6px; margin:6px 0; }
#printDoc .rpt-tiny { font-size:10.5px; color:#777; margin:4px 0 2px; }
#printDoc .rpt-2col { display:flex; gap:14px; align-items:center; }
#printDoc .rpt-radar { flex:0 0 46%; } #printDoc .rpt-gaps { flex:1; }
#printDoc .rpt-bar { display:flex; align-items:center; gap:6px; font-size:11px; margin:3px 0; }
#printDoc .rpt-bar-l { flex:0 0 34%; } #printDoc .rpt-bar-v { flex:0 0 24px; text-align:right; font-weight:700; }
#printDoc .rpt-bar-track { flex:1; height:11px; background:#eef1f6; border:1px solid #d7dee8; border-radius:6px; overflow:hidden; }
#printDoc .rpt-bar-fill { display:block; height:100%; }
#printDoc .rpt-bar-fill.s-hi { background:var(--crit); } #printDoc .rpt-bar-fill.s-mid { background:var(--warn); } #printDoc .rpt-bar-fill.s-ok { background:var(--green); }
#printDoc .rpt-disc li { margin-bottom:5px; color:#444; font-size:11px; }
#printDoc .rpt-watermark { color:var(--crit); border:2px dashed var(--crit); padding:6px 12px; font-weight:800; text-align:center; margin-bottom:10px; border-radius:6px; }
#printDoc .cite { font-size:11px; }
@media print {
  .topbar, .stepper, .wrap, #srcModal, #clientModal { display:none !important; }
  #printDoc { display:block; padding:10px 16px; }
  #printDoc .cite.clickable { text-decoration:none; color:var(--navy); }
  @page { margin:14mm; }
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}

/* ---------- 自訂客戶：卡片刪除鍵 + 輸入表單 ---------- */
.client-card.custom { border-style:dashed; }
.client-card .del-client { position:absolute; bottom:12px; right:12px; width:24px; height:24px; border-radius:50%;
  background:#fff; border:1.5px solid var(--line); color:var(--muted); font-size:13px; line-height:21px; text-align:center; }
.client-card .del-client:hover { border-color:var(--crit); color:var(--crit); }

.form-box { max-width:760px; }
#clientForm fieldset { border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px 16px; margin:0 0 14px; }
#clientForm legend { color:var(--navy); font-weight:800; font-size:13px; padding:0 8px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; }
@media (max-width:680px){ .form-grid { grid-template-columns:1fr; } }
#clientForm label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--ink); font-weight:600; }
#clientForm label.col-2 { grid-column:1 / -1; }
#clientForm input, #clientForm select { font:inherit; font-size:14px; padding:8px 10px; border:1.5px solid var(--line);
  border-radius:8px; background:#fff; color:var(--ink); font-weight:500; }
#clientForm input:focus, #clientForm select:focus { outline:none; border-color:var(--orange); box-shadow:0 0 0 3px var(--orange-soft); }
.form-checks { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:10px; align-items:center; }
.form-checks .chk { flex-direction:row; align-items:center; gap:6px; font-weight:600; }
.form-checks .chk input { width:auto; }
.form-error { background:#fdecec; border:1px solid var(--crit); color:var(--crit); border-radius:8px; padding:10px 14px; font-size:13px; margin:4px 0 12px; }
.form-error ul { margin:4px 0 0; padding-left:18px; }
.form-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:4px; }


/* ===== SOP v2.0 主流程重構（樣態/面談/可行性/拍板） ===== */
.arch-filter{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.mchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 13px;cursor:pointer;font-size:13px;color:var(--muted)}
.mchip:hover{border-color:var(--orange)}
.mchip.on{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}
.mchip.fl.fu:not(.on){border-color:var(--orange);color:var(--orange);font-weight:600}
.arch-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}
@media(max-width:720px){.arch-grid{grid-template-columns:1fr}}
.arch-box{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:#fbfcfe}
.arch-box.focus{background:#fff7f2;border-color:#f3c9b3}
.arch-box h4{color:var(--navy);margin:0 0 6px;font-size:14px}
.arch-box ul{margin:0;padding-left:18px;font-size:13.5px}
.arch-box li{margin:3px 0}
.arch-box p{margin:0;font-size:13.5px}
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}
@media(max-width:820px){.q-grid{grid-template-columns:repeat(2,1fr)}}
.q-grid.detail{background:#fbfcfe;border:1px dashed var(--line);border-radius:10px;padding:10px 12px;margin-top:8px}
.q-lab{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}
.q-lab.dim-lab{opacity:.55}
.q-in{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px;font-variant-numeric:tabular-nums;width:100%;box-sizing:border-box}
.q-in:focus{outline:2px solid rgba(232,116,59,.35);border-color:var(--orange)}
.q-toggles{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 2px}
.q-tg{font-size:13px;color:var(--navy);font-weight:600;display:flex;gap:6px;align-items:center;cursor:pointer}
.q-live{margin-top:10px;font-size:13px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.q-net{color:var(--orange)}
.fu-hint{border:1px dashed var(--orange);background:#fff7f2;border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:10px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fl-group{margin:10px 0}
.fl-h{font-weight:700;color:var(--navy);font-size:13.5px;margin-bottom:6px}
.fl-flags{display:flex;gap:7px;flex-wrap:wrap}
.tg-row{display:flex;gap:8px;align-items:center;margin:6px 0;font-size:14px;flex-wrap:wrap}
.tg-row select{border:1px solid var(--line);border-radius:8px;padding:7px 8px;font-size:13.5px}
.tg-del{border:none;background:#f1f3f7;border-radius:6px;cursor:pointer;padding:5px 9px;color:var(--muted)}
.tg-del:hover{background:#fde8e8;color:var(--crit)}
.feas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-bottom:10px}
.feas-card{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px}
.feas-card.high{border-color:#9ae0b9;background:#f2fbf6}
.feas-card.medium{border-color:#f2d98c;background:#fffbea}
.feas-card.low{border-color:#f3c9b3;background:#fff7f2}
.feas-card.unreachable{border-color:#f5b5b5;background:#fdf3f3}
.feas-top{font-size:14.5px;color:var(--navy)}
.feas-verdict{margin:4px 0;font-size:13.5px}
.feas-detail{font-size:13px;color:var(--muted)}
.assump{font-size:12.8px;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.warn-line{color:var(--warn)}
.adj-rets{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13.5px;margin-top:8px;border-top:1px dashed var(--line);padding-top:10px}
.sim-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin:4px 0 2px}
.sim-leg{display:flex;gap:5px;align-items:center}
.sim-leg .sw{width:14px;height:4px;border-radius:2px;display:inline-block}
.sim-leg.muted{color:#9fb1c8}
.dec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}
.dec-card{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px}
.dec-card.high{border-color:#9ae0b9;background:#f2fbf6}
.dec-card.medium{border-color:#f2d98c;background:#fffbea}
.dec-card.low{border-color:#f3c9b3;background:#fff7f2}
.dec-card.unreachable{border-color:#f5b5b5;background:#fdf3f3}
.dec-path{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--muted)}
.dec-path b{font-size:19px;color:var(--navy);display:block}
.dec-path .arr{font-size:22px;color:var(--orange);font-weight:700}
.hintx{font-size:11.5px;color:#9fb1c8}
.dec-goal{margin-top:8px;font-size:13.5px}
.dec-mostlikely{margin-top:12px;font-size:13.5px;background:#eef4fb;border-radius:10px;padding:10px 14px}
.rs-row{border-left:4px solid var(--line);padding:8px 12px;margin:8px 0;background:#fbfcfe;border-radius:0 10px 10px 0}
.rs-row.critical{border-left-color:var(--crit)}
.rs-row.warning{border-left-color:var(--warn)}
.rs-risk{font-size:13.5px}
.rs-sol{font-size:13px;color:var(--navy);margin-top:5px}
.kgi-refs{margin-top:6px;font-size:12.5px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.kgi-chip{border:1px solid var(--line);background:#fff;border-radius:8px;padding:3px 9px;font-size:12px;color:var(--navy)}


/* ===== v2.1（Hi 十三項指示）：目標置頂拉桿/建議採用/執行計畫/匯出 ===== */
.q-pair{display:flex;gap:10px;align-items:center}
.q-pair .q-in{width:130px;flex:0 0 auto}
.q-pair input[type=range]{flex:1;accent-color:var(--orange);min-width:80px}
.tg-card{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin:8px 0;background:#fffdf9}
.tg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
@media(max-width:760px){.tg-grid{grid-template-columns:1fr}}
.plan-card{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0;background:var(--card)}
.plan-card.adopted{border-color:var(--green);background:#f3f8f4}
.plan-card h5{margin:0 0 8px;color:var(--navy);font-size:14.5px}
.plan-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
@media(max-width:760px){.plan-split{grid-template-columns:1fr}}
.plan-box{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;font-size:13px}
.plan-box b{color:var(--navy)}
.plan-box .amt{font-size:18px;font-weight:800;color:var(--orange)}
.plan-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.plan-acts .btn{padding:7px 14px;font-size:13px}
.btn.adopt.on{background:var(--green);color:#fff;border-color:var(--green)}
.exec-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.exec-table th,.exec-table td{border:1px solid var(--line);padding:7px 10px;text-align:left}
.exec-table th{background:var(--orange-soft);color:var(--navy);white-space:nowrap}
.export-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px;border-top:1px dashed var(--line);padding-top:10px;font-size:13px}
.app-ver{font-size:11px;color:var(--muted);letter-spacing:.5px}
.fl-group{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:8px 0;background:var(--card)}
.fl-h{border-bottom:1px dashed var(--line);padding-bottom:6px;margin-bottom:8px}
.mchip.fl{padding:8px 14px;border-radius:10px}


/* ===== v2.2（Hi 十一項指示）：預留稅源方案卡／現金流細項／圖表 hover ===== */
.tax-card{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--card);margin:6px 0}
.tax-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){.tax-split{grid-template-columns:1fr}}
.tax-before,.tax-after{border-radius:10px;padding:12px 14px}
.tax-before{background:#fdf3f1;border:1px solid #e6c3b8}
.tax-after{background:#f3f8f4;border:1px solid #bcd6c2}
.tax-h{font-weight:700;font-size:13.5px;color:var(--navy);margin-bottom:6px}
.tax-big{font-size:24px;font-weight:800;color:var(--navy);margin:2px 0}
.tax-tag{font-size:12px;font-weight:600;color:var(--green);margin-left:6px}
.tax-sub{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.tax-ul{margin:4px 0 0;padding-left:18px;font-size:12.8px}
.tax-ul li{margin:3px 0}
.tax-cond{margin-top:10px;font-size:12.3px;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.tax-warn{color:var(--warn)}
.tax-none{background:#f3f8f4;border:1px solid #bcd6c2;border-radius:10px;padding:12px 14px;font-size:13px;color:var(--navy)}
.q-cf{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
@media(max-width:760px){.q-cf{grid-template-columns:1fr}}
.q-cf-col{border:1px dashed var(--line);border-radius:10px;padding:8px 10px;background:#fbfcfe}
.q-cf-h{font-weight:700;font-size:12.5px;color:var(--navy);margin-bottom:6px}
.chart-band{cursor:crosshair}
.chart-band:hover{fill:rgba(217,119,87,.06)}

/* ---------- 寬螢幕增強（v2.3 全版響應式：手機<768 現況 / PC ≥1200 / 大 PC ≥1400）---------- */
@media (min-width: 1200px){
  .radar-box { flex: 0 0 320px; }
  .q-grid { grid-template-columns: repeat(4, 1fr); }
  .feas-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
}
@media (min-width: 1400px){
  .dim-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px){
  .topbar .tagline { display: none; } /* 窄幅下標語被擠成直排，隱藏之（品牌與 AI 徽章保留） */
}

/* ---------- v2.4 迷你表格（壓測/受益人設計卡）---------- */
.mini-tbl { width: 100%; border-collapse: collapse; font-size: 13px; background: #fff; }
.mini-tbl th, .mini-tbl td { border: 1px solid var(--line); padding: 6px 10px; text-align: left; vertical-align: top; }
.mini-tbl th { background: #f0ece2; color: var(--navy); white-space: nowrap; }

/* ---------- v2.4 公開部署合規層：免責 footer ---------- */
.site-disclaimer { max-width: 1680px; margin: 30px auto 0; padding: 14px clamp(16px,3vw,48px) 26px;
  color: var(--muted); font-size: 12px; line-height: 1.7; border-top: 1px solid var(--line); }
