/* 工e有据 shared styles for the service and portable editions. */
:root {
  --ink:#172d27; --muted:#63736b; --faint:#78867e;
  --green:#214d3f; --green-dark:#183f35; --green-soft:#edf4e4;
  --lime:#ddedad; --bg:#f7f8f2; --card:#fff; --line:#dfe5dc;
  --orange:#99600c; --orange-soft:#fff1d7; --red:#ad4439; --red-soft:#fbece7;
  --blue:#3f6686; --blue-soft:#edf3f8; --shadow:none; --radius:12px; --sidebar:220px;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font:14px/1.6 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif; -webkit-font-smoothing:antialiased; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; border:0; }
button:disabled { cursor:not-allowed; opacity:.45; }
a { color:inherit; text-decoration:none; }
button svg,a svg { flex-shrink:0; }
svg.icon { width:20px; height:20px; vertical-align:middle; stroke:currentColor; stroke-width:1.7; fill:none; stroke-linecap:round; stroke-linejoin:round; }
h1,h2,h3,h4,p { margin:0; }
h1 { font-size:34px; font-weight:650; letter-spacing:-1.1px; line-height:1.3; }
h2 { font-size:20px; line-height:1.5; font-weight:650; letter-spacing:-.4px; }
h3 { font-size:16px; line-height:1.65; font-weight:650; }
h4 { font-size:14px; font-weight:600; }
p { line-height:1.8; }
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid #819f47; outline-offset:3px; }
::selection { background:var(--lime); color:var(--green-dark); }
.muted { color:var(--muted); } .small { font-size:13px; } .tiny { font-size:12px; }
.mono { font-family:"SFMono-Regular",Consolas,monospace; font-size:12px; }
.money { font-variant-numeric:tabular-nums; font-feature-settings:"tnum"; letter-spacing:-.5px; }
.row { display:flex; align-items:center; gap:10px; }
.between { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.wrap { flex-wrap:wrap; } .stack { display:flex; flex-direction:column; gap:16px; }
.gap8 { gap:8px; } .mt8 { margin-top:8px; } .mt12 { margin-top:12px; } .mt16 { margin-top:16px; } .mt24 { margin-top:24px; } .mb16 { margin-bottom:16px; }
.ellipsis { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.grow { flex:1; min-width:0; } .nowrap { white-space:nowrap; } .break { overflow-wrap:anywhere; } .hidden { display:none!important; }
.skip-link { position:fixed; top:12px; left:16px; z-index:160; transform:translateY(-180%); padding:12px 18px; background:var(--lime); color:var(--green-dark); border-radius:8px; }
.skip-link:focus { transform:translateY(0); }
.boot { min-height:65vh; padding:40px 24px; display:grid; align-content:center; justify-content:center; gap:20px; text-align:center; }
.boot p { max-width:600px; } .boot label input { max-width:240px; }
.skeleton { min-height:16px; border-radius:6px; background:#e5eadf; animation:breath 1.2s ease-in-out infinite; }

/* Persistent navigation */
.app-layout { display:flex; min-height:100vh; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:30; display:flex; flex-direction:column; width:var(--sidebar); padding:30px 14px 20px; color:#eef4ec; background:var(--green-dark); overflow-y:auto; overscroll-behavior:contain; }
.sidebar>* { flex-shrink:0; }
.brand { display:flex; align-items:center; gap:11px; padding:0 15px 30px; }
.brandmark { display:grid; place-items:center; width:39px; height:43px; color:var(--lime); flex-shrink:0; }
.brandmark svg { width:34px; height:34px; }
.brandname { font-size:24px; font-weight:600; line-height:1.3; letter-spacing:2px; }
.brand-en { display:block; margin-top:3px; color:#d4e3d9; font-size:10px; letter-spacing:3px; }
.workspace-pill { display:flex; align-items:center; gap:10px; padding:12px; margin:0 4px 20px; border:1px solid #ffffff26; border-radius:8px; font-size:12px; }
.workspace-pill .initial { display:grid; place-items:center; width:28px; height:28px; background:#ffffff12; border-radius:6px; color:var(--lime); }
.nav-label { margin:12px 15px 8px; color:#b1c6b9; font-size:11px; letter-spacing:1.5px; }
.nav-item { display:flex; align-items:center; gap:13px; min-height:47px; padding:11px 15px; margin:5px 0; border-radius:8px; color:#deebe1; font-size:14px; font-weight:500; transition:background .16s,color .16s; }
.nav-item:hover { background:#ffffff0e; color:#fff; }
.nav-item.active { background:var(--lime); color:#18382b; font-weight:650; }
.nav-item .badge-count { margin-left:auto; padding:1px 7px; border-radius:5px; font-size:11px; background:#ffffff19; }
.nav-item.active .badge-count { background:#c8df8c; }
.nav-divider { height:1px; margin:23px 13px; background:#ffffff24; }
.sidebar-bottom { margin-top:auto; padding-top:36px; }
.sidebar-note,.sandbox-note { padding:12px; font-size:11px; color:#bdcfc2; line-height:1.85; }
.sidebar-note { display:flex; align-items:center; gap:9px; width:100%; margin-top:20px; border:1px solid #ffffff30; border-radius:8px; background:transparent; text-align:left; }
.sidebar-note>span { flex:1; min-width:0; } .sidebar-note strong { display:block; color:#edf5e9; font-weight:500; font-size:13px; }
.sidebar-note small { display:block; margin-top:3px; font-size:10px; } .sidebar-note>.icon { width:18px; }
.demo-entry { display:flex; align-items:center; gap:11px; width:100%; padding:13px 12px; margin-top:14px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--green); text-align:left; }
.demo-entry:hover { background:#f1f6e7; }
.demo-entry>span { flex:1; min-width:0; font-size:12px; } .demo-entry strong { display:block; font-size:13px; margin-top:3px; }
.demo-entry .muted,.demo-entry .tiny,.demo-entry small { color:var(--muted); }
.tools-nav summary { padding:10px 15px; color:#bdcfc2; font-size:12px; cursor:pointer; }
.tools-nav[open] summary { margin-bottom:8px; }
.profile { display:flex; align-items:center; gap:10px; margin-top:20px; padding:0 12px; }
.avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#edf0e9; color:var(--green); font-size:13px; font-weight:600; flex-shrink:0; }
.live-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#81a654; flex-shrink:0; }
.main { flex:1; margin-left:var(--sidebar); min-width:0; }
.main:focus { outline:none; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; height:66px; padding:0 32px; border-bottom:1px solid var(--line); background:var(--bg); }
.topbar>.row:first-child { min-width:0; }
.topbar-actions { flex-shrink:0; }
.top-search>span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.breadcrumb { display:flex; align-items:center; gap:10px; min-width:0; color:var(--muted); font-size:13px; }
.breadcrumb strong { color:var(--ink); font-weight:550; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top-search { display:flex; align-items:center; gap:10px; width:268px; min-height:39px; padding:8px 12px; background:white; border:1px solid #d8dfd5; border-radius:7px; color:var(--muted); text-align:left; font-size:12px; }
.kbd { margin-left:auto; padding:0 5px; border:1px solid var(--line); border-radius:3px; font-size:10px; color:var(--faint); }
.app-mode,.mode-chip { background:transparent; display:inline-flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; white-space:nowrap; }
.mode-chip { padding:5px 9px; background:#edf1e8; border-radius:6px; }
.iconbtn { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:36px; height:36px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--muted); }
.iconbtn:hover { border-color:var(--line); background:#fff; }
.mobile-toggle,.mobile-backdrop { display:none; }
.content { max-width:1600px; margin:auto; padding:32px 32px 28px; }
.page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; margin-bottom:24px; }
.page-header>div:first-child { min-width:0; overflow-wrap:anywhere; }
.page-kicker,.eyebrow { margin-bottom:8px; color:var(--green); font-size:11px; font-weight:650; letter-spacing:1.3px; }
.page-heading { max-width:720px; }
.page-subtitle { margin-top:8px; color:var(--muted); font-size:14px; line-height:1.8; }
.page-actions { display:flex; gap:10px; flex-wrap:wrap; padding-top:3px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:9px 15px; border:1px solid #d9e1d5; border-radius:7px; background:#fff; color:var(--green); font-size:13px; font-weight:550; line-height:1.6; white-space:nowrap; transition:background .15s,border-color .15s; }
.btn:hover { background:#f3f6ee; border-color:#b8cbb1; }
.btn.primary { color:white; background:var(--green-dark); border-color:var(--green-dark); }
.btn.primary:hover { background:#285847; border-color:#285847; }
.page-actions>.btn.primary,.page-header>.actions>.btn.primary { background:var(--lime); border-color:var(--lime); color:#18382b; }
.btn.ghost { background:transparent; border-color:transparent; }
.btn.danger { color:var(--red); background:var(--red-soft); border-color:#edd4cb; }
.btn.small { min-height:34px; padding:6px 11px; font-size:12px; }
.btn.block { width:100%; } .btn svg { width:17px; height:17px; } .btn[aria-busy=true]::after { content:'…'; }
.textlink { display:inline-flex; align-items:center; gap:6px; background:transparent; padding:0; color:var(--green); font-size:13px; line-height:1.7; text-align:left; }
.textlink:hover { text-decoration:underline; text-underline-offset:4px; }
.panel { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:21px 22px 17px; }
.panel-head h2 { font-size:18px; } .panel-body { padding:0 22px 22px; } .panel-pad { padding:22px; }
.grid2,.workspace-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr); gap:20px; align-items:start; }
.grid-equal,.policy-grid,.settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }

/* Workbench: one decision list, one material-change spotlight. */
.workspace-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:16px 0; margin-bottom:22px; background:white; border:1px solid var(--line); border-radius:10px; }
.summary-stat { background:transparent; text-align:left; color:var(--ink); display:flex; align-items:center; gap:17px; min-width:0; padding:0 26px; border-right:1px solid var(--line); }
.summary-stat:last-child { border-right:0; }
.summary-stat:hover,.summary-stat.selected { background:#f5f8ee; }
.summary-stat .summary-label { display:block; color:var(--muted); font-size:13px; }
.summary-stat small { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.summary-stat .kpi-icon { width:40px; height:40px; border-radius:50%; flex-shrink:0; }
.summary-stat>.icon,.summary-stat>.summary-icon { width:42px; height:42px; padding:10px; border-radius:50%; color:var(--green); background:#f2f5ed; flex-shrink:0; }
.summary-stat label,.summary-stat .label { display:block; color:var(--muted); font-size:13px; }
.summary-stat strong,.summary-stat .num { display:block; font-size:29px; font-weight:600; line-height:1.3; font-variant-numeric:tabular-nums; }
.work-queue { min-width:0; }
.queue-tabs { display:flex; align-items:center; gap:24px; padding:0 22px; border-bottom:1px solid var(--line); }
.queue-tabs button { display:flex; align-items:center; gap:7px; padding:11px 0 13px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); white-space:nowrap; font-size:13px; }
.queue-tabs button.active { background:transparent; border-radius:0; border-color:#bed982; color:var(--green-dark); font-weight:600; }
.queue-tabs .tab-count,.queue-tabs button>span { padding:0 5px; border-radius:4px; background:#edf2e5; font-size:11px; }
.queue-row { display:grid; grid-template-columns:38px minmax(0,1fr) auto auto; gap:14px; align-items:center; margin:0 22px; padding:22px 0; border-bottom:1px solid #e9ede5; }
.queue-row:last-child { border-bottom:0; }
.queue-main { display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:0; overflow-wrap:anywhere; }
.queue-main small { color:var(--muted); font-size:12px; }
.queue-row:hover .queue-main strong,.queue-row:hover .queue-action { color:#608039; }
.queue-main strong { font-size:14px; font-weight:600; }
.queue-main p { margin-top:3px; color:var(--muted); font-size:12px; }
.queue-main>div { min-width:0; overflow-wrap:anywhere; }
.queue-amount { display:flex; flex-direction:column; align-items:flex-end; gap:7px; white-space:nowrap; }
.queue-amount strong { font-size:16px; font-weight:550; font-variant-numeric:tabular-nums; }
.queue-action { justify-self:end; font-size:12px; }
.focus-card { padding:22px; background:#eef4df; border:1px solid #e4edcf; border-radius:11px; }
.focus-card>.btn { display:flex; width:100%; margin-top:16px; }
.focus-card h2 { margin:10px 0 15px; font-size:21px; line-height:1.55; }
.focus-card>.tag,.focus-card .eyebrow { display:inline-flex; padding:3px 9px; border:0; border-radius:6px; background:#dcecab; color:var(--green-dark); }
.focus-amounts { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:16px 0; }
.focus-amounts strong { font-size:26px; font-weight:600; letter-spacing:-.8px; }
.focus-amounts del { font-size:22px; color:#80917e; text-decoration:none; }
.focus-amounts .icon { color:var(--green); flex-shrink:0; }
.focus-card .material-link { padding:11px 12px; background:white; border:0; border-radius:7px; color:var(--green-dark); }
.focus-impact { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:17px 0; border-top:1px solid #cbd9b9; padding-top:15px; }
.focus-impact>div { padding-left:18px; border-left:1px solid #cbd9b9; }
.focus-impact>div:first-child { padding-left:0; border:0; }
.focus-impact strong { display:block; font-size:21px; font-weight:600; }
.focus-impact span,.focus-impact p { color:var(--muted); font-size:12px; }
.recent-list { padding:0 22px 16px; }
.recent-item { display:flex; align-items:flex-start; gap:11px; position:relative; padding:11px 0; }
.recent-item>.activity-dot { width:22px; height:22px; margin-top:2px; background:#eaf1d9; color:var(--green-dark); }
.recent-item strong { font-size:13px; font-weight:550; }
.recent-item p { font-size:12px; color:var(--muted); margin-top:3px; }
.recent-item time { margin-left:auto; font-size:11px; color:var(--muted); white-space:nowrap; }
.home-foot,.footer-note { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:22px; color:var(--muted); font-size:11px; line-height:1.8; }
.footer-note { margin-top:4px; }

/* Task ledger and review */
.balance-strip { display:flex; align-items:center; flex-wrap:wrap; gap:28px; margin-bottom:21px; padding:20px 24px; border:1px solid var(--line); border-radius:10px; background:white; }
.balance-strip>span { display:flex; flex:1; flex-direction:column; gap:4px; color:var(--muted); font-size:12px; }
.balance-strip>span+span { padding-left:24px; border-left:1px solid var(--line); }
.balance-strip b { color:var(--ink); font-size:22px; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; }
.balance-strip>span { flex-direction:row; align-items:center; gap:13px; }
.balance-strip>span>span { display:flex; flex-direction:column; gap:4px; }
.balance-strip>span>.icon { width:26px; height:26px; color:var(--green); flex-shrink:0; }
.balance-strip .btn { margin-left:auto; }
.tabs { display:flex; gap:28px; border-bottom:1px solid var(--line); margin-bottom:18px; }
.tab { display:flex; align-items:center; gap:7px; padding:0 4px 12px; background:transparent; border-bottom:3px solid transparent; color:var(--muted); font-size:14px; white-space:nowrap; }
.tab.active { color:var(--green-dark); border-color:#bed982; font-weight:650; }
.tab-count { display:inline-block; padding:1px 6px; border-radius:5px; background:#edf2e5; font-size:11px; }
.payment-workspace { display:grid; grid-template-columns:270px minmax(0,1fr); gap:18px; align-items:start; }
.payment-list { min-width:0; padding:17px 13px; background:white; border:1px solid var(--line); border-radius:10px; }
.payment-list>.between { padding:0 3px 14px; gap:10px; }
.payment-list>.between h2,.payment-list>.between h3 { font-size:16px; }
.payment-choice { display:block; width:100%; margin-bottom:10px; padding:15px 13px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); text-align:left; overflow-wrap:anywhere; }
.payment-choice:hover { border-color:#adc78e; background:#fafcf6; }
.payment-choice.selected,.payment-choice[aria-current="true"] { border-color:#dce9c5; background:#edf5df; }
.payment-choice .between { align-items:flex-start; gap:8px; }
.payment-choice strong { font-size:13px; font-weight:600; }
.payment-number { margin:11px 0 9px; font-size:24px; line-height:1.3; font-weight:550; }
.dual-status { display:flex; flex-wrap:wrap; gap:13px; }
.dual-status span { color:var(--muted); font-size:11px; }
.dual-status b { display:block; margin-top:3px; color:var(--green); font-size:12px; font-weight:500; }
.support-block { margin-top:23px; padding-top:18px; border-top:1px solid var(--line); }
.support-block>.btn { margin-top:12px; }
.support-block>.between { gap:8px; margin-bottom:7px; }
.support-block h3 { font-size:15px; }
.material-link { display:flex; align-items:center; gap:9px; width:100%; padding:13px 2px; border-bottom:1px solid var(--line); background:transparent; color:var(--muted); text-align:left; font-size:12px; }
.material-link span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.material-link b { font-weight:500; } .material-link>.icon { color:var(--green); }
.payment-decision { min-width:0; padding:24px; border:1px solid var(--line); border-radius:10px; background:white; }
.payment-decision:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
.review-summary { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.review-summary .review-heading { flex:1; flex-wrap:wrap; }
.review-summary .review-amount { margin:0; text-align:right; flex-shrink:0; }
.review-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.review-heading h2,.decision-title { font-size:24px; font-weight:650; line-height:1.5; letter-spacing:-.6px; }
.decision-title { margin:8px 0 6px; }
.review-heading p,.decision-explanation { margin-top:6px; color:var(--muted); font-size:14px; }
.review-amount { display:flex; flex-direction:column; gap:3px; margin:16px 0 10px; line-height:1.4; }
.review-amount>span { color:var(--muted); font-size:12px; } .review-amount strong { font-size:34px; font-weight:550; }
.review-info,.payee-strip { display:flex; flex-wrap:wrap; gap:20px; margin:17px 0; padding:13px 15px; border:1px solid var(--line); border-radius:7px; }
.review-info span,.payee-strip span { font-size:12px; color:var(--muted); }
.review-info strong,.payee-strip strong { display:block; margin-top:4px; color:var(--ink); font-size:14px; font-weight:500; overflow-wrap:anywhere; }
.change-entry { display:flex; align-items:center; gap:14px; margin:20px 0; padding:17px; border-radius:8px; background:#f0f5e8; }
.change-entry p { margin-top:3px; font-size:12px; color:var(--muted); }
.change-symbol { color:var(--green); } .change-symbol svg { width:27px; height:27px; }
.change-result { margin:14px 0; padding:13px 16px; border:1px solid #e1ebce; border-radius:8px; background:#eef5df; }
.change-result h3 { font-size:16px; }
.field-diff { margin:6px 0; }
.field-diff>div { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:6px 0; border-bottom:1px solid #d4dfc5; font-size:19px; }
.field-diff>div:last-child { border-bottom:0; }
.field-diff>div>span { min-width:78px; color:var(--muted); font-size:12px; }
.field-diff del { color:#778674; font-size:17px; text-decoration:none; }
.field-diff strong { color:var(--green-dark); font-weight:650; overflow-wrap:anywhere; }
.field-diff .icon { width:18px; color:var(--green); }
.impact-summary { display:flex; flex-wrap:wrap; gap:18px; padding-top:11px; margin-bottom:9px; border-top:1px solid #d4dfc5; color:var(--muted); font-size:12px; }
.review-checks { margin:12px 0; padding:0 15px; border:1px solid var(--line); border-radius:8px; }
.review-check,.issue-line { display:flex; align-items:flex-start; gap:11px; padding:13px 0; color:var(--orange); }
.review-check+.review-check { border-top:1px solid var(--line); }
.review-check .icon,.issue-line .icon { flex-shrink:0; margin-top:2px; }
.review-check .check-icon .icon { margin:0; } .review-check strong { color:var(--ink); font-size:13px; font-weight:550; }
.review-check p,.issue-line p { margin-top:3px; color:var(--muted); font-size:12px; }
.review-check.clear,.issue-line.clear { color:var(--green); }
.review-actions,.decision-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.review-actions>.btn { flex:1; }
.evidence-list { margin-top:18px; padding:13px 15px; border:1px solid var(--line); border-radius:8px; background:#fafbf7; }
.evidence-list .material-link:last-child { border-bottom:0; }
.evidence-details { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }
.evidence-details summary { color:var(--muted); font-size:13px; cursor:pointer; }
.evidence-details .panel { margin-top:10px; border:0; }
.evidence-details .detail-header { padding-left:0; padding-right:0; }
.task-layout { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); gap:20px; align-items:start; }
.task-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:20px 0; }
.summary-item { padding-right:12px; border-right:1px solid var(--line); }
.summary-item:last-child { border:0; }
.summary-item label { display:block; color:var(--muted); font-size:12px; margin-bottom:7px; }
.summary-item strong { font-size:19px; font-weight:600; }
.stepper { display:flex; align-items:center; gap:4px; margin:22px 0 2px; }
.step { display:flex; align-items:center; gap:6px; flex:1; color:var(--faint); font-size:11px; }
.step-num { display:grid; place-items:center; width:23px; height:23px; border:1px solid var(--line); border-radius:50%; background:white; font-size:11px; }
.step.done { color:var(--green); } .step.done .step-num { background:var(--green-soft); border-color:#c7d7bb; }
.step.current .step-num { background:var(--green); border-color:var(--green); color:white; }
.step::after { content:''; height:1px; flex:1; margin:0 4px; background:var(--line); } .step:last-child::after { display:none; }
.op-card { padding:18px; border:1px solid var(--line); border-radius:9px; background:white; }
.op-card.selected { border-color:#8ca96c; } .op-card:hover { border-color:#b5c6a6; }
.op-card-title { font-size:14px; font-weight:600; } .op-amount { margin:12px 0 8px; font-size:24px; font-weight:600; }
.op-meta { color:var(--muted); font-size:12px; line-height:1.8; }
.op-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding-top:13px; margin-top:13px; border-top:1px solid var(--line); }
.stale-note { margin:12px 0; padding:9px 11px; border-radius:6px; color:var(--orange); background:var(--orange-soft); font-size:12px; }

/* Tables, status, timeline and budgets */
.status-pill { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border-radius:6px; background:#f0f2ed; color:#69786e; font-size:11px; font-weight:500; white-space:nowrap; }
.status-pill::before { content:''; width:4px; height:4px; border-radius:50%; background:currentColor; }
.status-pill.green { color:var(--green); background:#edf5e1; } .status-pill.amber { color:var(--orange); background:var(--orange-soft); }
.status-pill.red { color:var(--red); background:var(--red-soft); } .status-pill.blue { color:var(--blue); background:var(--blue-soft); } .status-pill.gray { background:#f0f2ed; color:#66746a; }
.table-wrap { max-width:100%; overflow:auto; overscroll-behavior-x:contain; }
.data-table { border-collapse:collapse; width:100%; text-align:left; white-space:nowrap; }
.data-table th { padding:12px 20px; border-block:1px solid var(--line); background:#f7f9f3; color:var(--muted); font-size:12px; font-weight:500; }
.data-table td { padding:17px 20px; border-bottom:1px solid #e9ede5; font-size:13px; vertical-align:middle; }
.data-table tr:last-child td { border-bottom:0; } .data-table tbody tr:hover { background:#fafcf6; }
.data-table .primarycell { max-width:360px; overflow:hidden; text-overflow:ellipsis; font-weight:550; color:var(--ink); }
.data-table .secondary { margin-top:4px; color:var(--muted); font-size:11px; }
.table-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 20px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.filters { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.filter { min-height:34px; padding:6px 11px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--muted); font-size:12px; }
.filter.active { background:#eef4e4; border-color:#e1ebcf; color:var(--green); }
.input-search { display:flex; align-items:center; gap:8px; padding:8px 11px; border:1px solid var(--line); border-radius:7px; background:white; color:var(--muted); }
.input-search input { width:100%; min-width:70px; border:0; outline:none; background:transparent; font-size:13px; }
.input-search:focus-within { outline:2px solid var(--green); outline-offset:2px; } .input-search input:focus-visible { outline:none; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:20px 0; }
.kpi { min-width:0; padding:20px; border:1px solid var(--line); border-radius:10px; background:white; }
.kpi-label { color:var(--muted); font-size:12px; } .kpi-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:8px; background:#f1f5eb; color:var(--green); }
.kpi-number { margin:10px 0 7px; font-size:30px; font-weight:600; line-height:1.25; letter-spacing:-1px; }
.kpi-number .unit { margin-right:3px; font-size:15px; font-weight:500; letter-spacing:0; }
.kpi-foot { font-size:12px; line-height:1.7; color:var(--muted); } .kpi-foot .green { color:var(--green); }
.fundbar { display:flex; height:12px; margin-top:19px; border-radius:4px; overflow:hidden; background:#edf1e7; }
.fundbar span { display:block; min-width:0; } .fundbar .paid { background:#315f48; } .fundbar .held { background:#b2c891; } .fundbar .free { background:#e9eede; }
.legend-list { display:flex; flex-direction:column; gap:14px; margin-top:21px; }
.legend-item { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
.legend-dot { display:inline-block; width:8px; height:8px; border-radius:2px; flex-shrink:0; }
.legend-list strong { margin-left:auto; color:var(--ink); font-weight:550; }
.progress-line { height:5px; overflow:hidden; border-radius:4px; background:#edf1e7; } .progress-line span { display:block; height:100%; background:#8fb566; }
.activity-item { display:flex; gap:12px; padding:12px 0; font-size:13px; }
.activity-dot { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#f0f5e8; color:var(--green); flex-shrink:0; }
.activity-dot svg { width:14px; height:14px; } .activity-time { margin-top:4px; color:var(--muted); font-size:11px; }
.pending-line { display:flex; align-items:center; gap:12px; padding:15px 0; border-bottom:1px solid var(--line); } .pending-line:last-child { border:0; }
.mini-square,.decision-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:8px; background:#f0f4ec; color:var(--green); flex-shrink:0; }
.mini-square.amber,.decision-mark.attention { background:var(--orange-soft); color:var(--orange); } .mini-square.green { background:var(--green-soft); color:var(--green); }
.audit-tag,.tag { display:inline-block; padding:3px 7px; border:1px solid var(--line); border-radius:4px; background:#fafbf7; color:var(--muted); font-size:11px; }

/* Materials and transparent review evidence */
.document-grid { display:grid; grid-template-columns:260px minmax(0,1fr); gap:20px; }
.doc-list { display:flex; flex-direction:column; gap:10px; }
.doc-item { display:flex; align-items:flex-start; gap:10px; padding:15px; border:1px solid var(--line); border-radius:8px; background:white; text-align:left; cursor:pointer; min-width:0; }
.doc-item.active { border-color:#b5c78f; background:#f3f7e9; } .doc-item.obsolete { opacity:.65; }
.doc-file { display:grid; place-items:center; width:34px; height:41px; border:1px solid #dce6d1; border-radius:6px; background:#f1f6e9; color:var(--green); font-size:10px; font-weight:650; flex-shrink:0; }
.doc-content { max-height:480px; overflow:auto; padding:20px; border:1px solid var(--line); border-radius:8px; background:#fafbf6; font-size:13px; line-height:1.95; white-space:pre-wrap; overflow-wrap:anywhere; }
.source-line { display:block; min-height:23px; } .line-no { display:inline-block; width:29px; color:#89957e; font-size:11px; user-select:none; }
.source-line.marked { background:#e5edce; border-radius:3px; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.field-item { min-width:0; padding:13px; border:1px solid var(--line); border-radius:7px; background:#f8faf3; }
.field-item label { display:block; margin-bottom:6px; color:var(--muted); font-size:12px; } .field-item strong { font-size:13px; font-weight:550; overflow-wrap:anywhere; }
.hash-box { padding:11px; border:1px solid var(--line); border-radius:6px; background:#f7f9f3; color:var(--muted); font:11px/1.8 Consolas,monospace; overflow-wrap:anywhere; }
.detail-header { padding:18px 20px; border-bottom:1px solid var(--line); background:#f8faf4; }
.detail-section { padding:19px 20px; border-bottom:1px solid var(--line); } .detail-section:last-child { border:0; }
.check-item { display:flex; align-items:flex-start; gap:10px; padding:12px 0; border-bottom:1px solid var(--line); font-size:13px; } .check-item:last-child { border:0; }
.check-icon { display:grid; place-items:center; width:19px; height:19px; margin-top:1px; border-radius:50%; background:#edf5e2; color:var(--green); flex-shrink:0; }
.check-icon.bad { background:var(--orange-soft); color:var(--orange); } .check-icon svg { width:13px; height:13px; }
.check-detail { margin-top:4px; color:var(--muted); font-size:12px; line-height:1.85; }
.check-summary { color:var(--green); font-size:28px; font-weight:600; }
.source-mini { margin-top:9px; padding:11px; border:1px solid var(--line); border-radius:7px; background:#fafbf5; color:var(--muted); font-size:12px; line-height:1.9; }
.preview-heading { padding-top:20px; border-top:1px solid var(--line); } .preview-heading h3 { margin-top:8px; font-size:20px; }
.impact-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.impact-group { padding:13px; border-left:3px solid #c89542; background:#fff5e5; }
.impact-group.unaffected { border-color:#789c48; background:#f0f5e7; } .impact-group.historical { border-color:#87917f; background:#f2f4ed; }
.impact-group p { display:flex; flex-direction:column; margin-top:10px; font-size:12px; } .impact-group p strong { font-weight:500; } .impact-group p span { color:var(--muted); font-variant-numeric:tabular-nums; }
.comparison { display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr); align-items:center; gap:8px; padding:16px; border:1px solid #e1e9d3; border-radius:8px; background:#f4f8ec; }
.comparison h4 { margin-bottom:7px; color:var(--muted); font-size:12px; } .comparison strong { font-size:18px; overflow-wrap:anywhere; } .compare-arrow { color:var(--green); text-align:center; }
.keyval { display:flex; justify-content:space-between; gap:20px; padding:11px 0; border-bottom:1px solid var(--line); font-size:13px; } .keyval:last-child { border:0; } .keyval dt { color:var(--muted); } .keyval dd { margin:0; text-align:right; overflow-wrap:anywhere; }

/* Rules, help and safe demonstration space */
.rule-card,.settings-card { min-width:0; padding:23px; border:1px solid var(--line); border-radius:10px; background:white; }
.rule-icon { display:grid; place-items:center; width:37px; height:37px; margin-bottom:13px; border-radius:8px; background:#eff5e5; color:var(--green); }
.rule-card p,.settings-card p { margin-top:8px; color:var(--muted); font-size:13px; }
.settings-card h2 { margin-top:14px; font-size:18px; } .settings-card>.row { margin-top:17px; flex-wrap:wrap; }
.settings-nav { display:flex; flex-wrap:wrap; gap:8px; }
.technical-details { padding-top:17px; margin-top:20px; border-top:1px solid var(--line); }
.technical-details summary { color:var(--muted); cursor:pointer; font-size:12px; }
.technical-details[open] summary { margin-bottom:14px; }
.danger-zone { padding:18px 20px; border:1px solid #e9d9cc; border-radius:8px; background:#fdfbf6; }
.danger-zone summary { color:#886847; }
.check-list { min-width:0; }
.help-copy p { margin:10px 0; font-size:13px; color:var(--muted); } .help-copy h3 { margin-top:20px; }
.lab-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.lab-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:24px; border:1px solid var(--line); border-radius:10px; background:white; }
.lab-card .number { margin-left:auto; color:var(--faint); font-size:11px; letter-spacing:1px; }
.lab-card h3 { margin:17px 0 8px; font-size:17px; } .lab-card p { flex:1; margin-bottom:20px; color:var(--muted); font-size:13px; line-height:1.9; }
.lab-card .lab-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:#eff5e5; color:var(--green); }
.test-row { display:flex; align-items:center; gap:11px; padding:14px 0; border-bottom:1px solid var(--line); font-size:13px; } .test-row:last-child { border:0; }
.empty { padding:44px 24px; text-align:center; } .empty svg { width:36px; height:36px; color:#8da47e; }
.empty h3 { margin:13px 0 7px; font-size:16px; } .empty p { max-width:400px; margin:0 auto 19px; color:var(--muted); font-size:13px; }
.notice { display:flex; align-items:flex-start; gap:9px; padding:13px 15px; border:1px solid #dbe5ef; border-radius:8px; background:var(--blue-soft); color:var(--blue); font-size:13px; line-height:1.8; }
.notice svg { flex-shrink:0; width:17px; height:17px; margin-top:3px; }
.notice.amber { border-color:#f1dfba; background:var(--orange-soft); color:var(--orange); } .notice.green { border-color:#d8e7c5; background:var(--green-soft); color:var(--green); } .notice.red { border-color:#efd4cb; background:var(--red-soft); color:var(--red); }
.alert-card { display:flex; gap:13px; margin-top:5px; padding:17px; border:1px solid #eddcbd; border-radius:9px; background:#fff7e9; }
.alert-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:8px; color:var(--orange); background:#faebcd; flex-shrink:0; }
.alert-card h3 { font-size:14px; color:#705224; } .alert-card p { margin-top:4px; color:#8b714d; font-size:12px; }
.search-result { display:flex; align-items:center; gap:12px; width:100%; padding:13px; border-radius:7px; background:white; text-align:left; }
.search-result:hover { background:#f0f6e7; }
.menu-item { display:flex; align-items:center; gap:12px; width:100%; padding:15px; border-bottom:1px solid var(--line); background:white; text-align:left; font-size:13px; } .menu-item:hover { background:#f5f8ed; }

/* Forms and overlays */
.modal-overlay { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:30px 16px; background:#142d275c; backdrop-filter:blur(3px); animation:fadein .15s; }
.modal { display:flex; flex-direction:column; width:620px; max-width:100%; max-height:calc(100dvh - 60px); overflow:hidden; border-radius:12px; background:white; box-shadow:0 20px 70px #10291e2b; }
.modal.wide { width:calc(100vw - 60px); max-width:1080px; }
.modal-head { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:20px 24px; border-bottom:1px solid var(--line); }
.modal-head h2 { min-width:0; font-size:20px; overflow-wrap:anywhere; } .modal-head .iconbtn { flex-shrink:0; }
.modal-body { padding:23px 24px; overflow:auto; overscroll-behavior:contain; }
.modal-foot { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; padding:16px 24px; border-top:1px solid var(--line); background:#fafbf7; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.form-field { display:flex; flex-direction:column; gap:7px; min-width:0; margin-bottom:17px; }
.form-field:last-child,.form-grid .form-field { margin-bottom:0; } .form-field.full { grid-column:1/-1; }
.form-field label { color:#49624e; font-size:13px; font-weight:550; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-width:0; min-height:42px; padding:10px 12px; border:1px solid #d5dfcc; border-radius:7px; background:white; color:var(--ink); font-size:14px; line-height:1.6; }
.form-field textarea { min-height:104px; resize:vertical; }
.form-field input:focus,.form-field textarea:focus,.form-field select:focus { outline:2px solid #d9e7c1; border-color:#88a763; outline-offset:1px; }
.form-field small { color:var(--muted); font-size:12px; line-height:1.7; }
.check-label { display:flex; align-items:flex-start; gap:9px; padding:8px 0; font-size:13px; line-height:1.8; cursor:pointer; }
.check-label input { margin-top:5px; accent-color:var(--green); }
.upload-box { padding:22px; border:1px dashed #aac18d; border-radius:8px; background:#f7faef; color:var(--green); text-align:center; cursor:pointer; }
.upload-box:hover { background:#eff5e1; } .upload-box p { margin-top:6px; color:var(--muted); font-size:12px; }
.modal-error { margin-bottom:16px; padding:11px 13px; border-radius:7px; background:var(--red-soft); color:var(--red); font-size:14px; line-height:1.8; }
.modal:has(#doc-form) { position:fixed; right:0; top:0; width:min(1050px,90vw); height:100dvh; max-height:100dvh; border-radius:12px 0 0 12px; }
.modal:has(#doc-form) .modal-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-content:start; }
.modal:has(#doc-form) #modal-error { grid-column:1/-1; }
.modal:has(#doc-form) #doc-form { grid-column:1; }
.modal:has(#doc-form) #doc-preview { grid-column:2; grid-row:2 / span 3; min-width:0; margin:0; }
.modal:has(#doc-form) .modal-body>.row { grid-column:1; flex-wrap:wrap; }
.modal:has(#doc-form) .form-grid { grid-template-columns:1fr; } .modal:has(#doc-form) .form-field.full { grid-column:auto; }
.modal:has(#doc-form) .upload-box { padding:15px; } .modal:has(#doc-form) .preview-heading { border:0; padding-top:0; }
.modal:has(#doc-form) .impact-columns { grid-template-columns:1fr; } .modal:has(#doc-form) textarea { min-height:220px; }
.modal:has(#doc-form) .form-field { margin-bottom:12px; }
#toast-root { position:fixed; left:calc(50% + var(--sidebar)/2); bottom:26px; z-index:150; display:flex; flex-direction:column; gap:8px; transform:translateX(-50%); }
.toast { display:flex; align-items:center; gap:10px; min-width:220px; max-width:460px; padding:13px 18px; border:1px solid #d3e1c2; border-radius:9px; background:white; color:var(--green); box-shadow:0 8px 30px #16372518; font-size:13px; line-height:1.7; animation:toastin .2s; }
.toast.error { border-color:#edcec4; color:var(--red); }

/* Retained presentation patterns for saved and historical views. */
.hero,.work-intro { display:flex; justify-content:space-between; align-items:center; gap:28px; padding:30px; border:1px solid #dbe7c8; border-radius:12px; background:#edf4df; }
.hero h2,.work-intro h2 { font-size:30px; line-height:1.4; } .hero p,.work-intro p { margin-top:10px; color:var(--muted); font-size:14px; }
.hero-trace,.intro-note { width:330px; padding:23px; border:1px solid #dbe5cf; border-radius:10px; background:white; }
.hero-trace .label,.note-index { font-size:11px; color:var(--muted); }
.trace-path { display:flex; align-items:center; justify-content:space-between; margin:16px 0; }
.trace-point { display:grid; place-items:center; width:43px; height:40px; border:1px solid #dbe5cf; border-radius:8px; color:var(--green); }
.trace-line { height:1px; flex:1; margin:0 6px; background:#c1d5a8; } .trace-foot { display:flex; justify-content:space-between; font-size:11px; color:var(--muted); }
.intro-note h3 { font-size:18px; margin-top:16px; } .intro-note p { font-size:13px; margin:12px 0 18px; }
.focus-money { font-size:34px; margin:12px 0; }
.decision-list { padding:0 22px 8px; }
.decision-row { display:flex; align-items:center; gap:16px; padding:19px 0; border-top:1px solid var(--line); }
.decision-row:first-child { border-top:0; } .decision-row p { margin-top:4px; color:var(--muted); font-size:12px; }
.decision-row .grow { overflow-wrap:anywhere; } .decision-row:hover strong { color:var(--green); }
.decision-end { display:flex; flex-direction:column; align-items:flex-end; gap:7px; min-width:110px; } .decision-end strong { font-size:17px; }
[title] { text-underline-offset:3px; }
@keyframes fadein { from { opacity:0; } to { opacity:1; } }
@keyframes toastin { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes breath { 50% { opacity:.5; } }

/* Adaptive layout: preserve readable decisions before adding density. */
@media (min-width:1700px) {
  .content { padding:38px 42px; } .topbar { padding-inline:42px; }
  .page-header h1 { font-size:38px; } .payment-workspace { grid-template-columns:300px minmax(0,1fr); }
  .payment-decision { padding:30px; } .queue-row { padding-block:24px; }
}
@media (max-width:1200px) {
  .content { padding:26px; } .topbar { padding-inline:26px; }
  .workspace-grid { grid-template-columns:1fr; }
  .workspace-grid>.stack { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .workspace-grid>.stack>.panel { align-self:start; }
  .grid2 { grid-template-columns:1.2fr 1fr; }
  .page-header h1 { font-size:30px; } .summary-stat { padding-inline:20px; }
  .payment-workspace { grid-template-columns:250px minmax(0,1fr); gap:16px; }
  .payment-decision { padding:21px; } .review-heading { flex-wrap:wrap; gap:9px; }
  .balance-strip { gap:15px; padding:18px; } .balance-strip>span+span { padding-left:15px; } .balance-strip b { font-size:18px; }
  .lab-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .document-grid { grid-template-columns:220px minmax(0,1fr); }
  .top-search { width:220px; } .date-text { display:none; }
  .data-table th,.data-table td { padding-inline:16px; }
}
@media (max-width:1080px) {
  .payment-workspace,.task-layout { grid-template-columns:1fr; }
  .payment-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:18px; }
  .payment-list>.between,.payment-list>.support-block,.payment-list>.empty { grid-column:1/-1; }
  .payment-list>.between { padding-bottom:0; } .payment-choice { margin-bottom:0; }
  .payment-list>.support-block { margin-top:4px; }
  .payment-list .support-block { display:flex; flex-wrap:wrap; align-items:center; gap:0 18px; }
  .payment-list .support-block>.between { width:100%; } .payment-list .material-link { width:calc(50% - 9px); }
  .change-entry { flex-wrap:wrap; } .review-heading h2 { font-size:23px; }
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid2,.grid-equal,.policy-grid,.settings-grid { grid-template-columns:1fr; }
  .hero-trace { display:none; } .hero h2 { font-size:27px; }
  .topbar .app-mode { display:none; }
}
@media (max-width:900px) {
  .workspace-grid>.stack { display:flex; }
  .workspace-summary { padding-block:14px; } .summary-stat { gap:10px; padding-inline:16px; }
  .summary-stat>.icon,.summary-stat>.summary-icon { width:34px; height:34px; padding:7px; }
  .summary-stat strong,.summary-stat .num { font-size:25px; }
  .queue-row { grid-template-columns:minmax(0,1fr) auto auto; gap:12px; margin-inline:18px; }
  .queue-row>.decision-mark { display:none; } .queue-main { gap:9px; }
  .queue-main>.mini-square,.queue-main>.decision-mark { display:none; }
  .page-header { flex-wrap:wrap; gap:15px; }
  .top-search { width:190px; } .topbar .kbd { display:none; }
  .balance-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
  .balance-strip>span+span { padding-left:0; border:0; } .balance-strip .btn { margin:0; justify-self:start; }
  .modal:has(#doc-form) { width:95vw; }
}
@media (max-width:760px) {
  :root { --sidebar:0px; }
  body { font-size:14px; }
  .sidebar { width:240px; transform:translateX(-100%); transition:transform .2s; padding-top:25px; }
  .sidebar.open { transform:translateX(0); }
  .mobile-backdrop.show { display:block; position:fixed; inset:0; z-index:29; background:#142e2666; }
  .mobile-toggle { display:inline-flex; } .main { margin:0; }
  .topbar { height:62px; gap:8px; padding:0 12px; } .topbar .row { gap:8px; }
  .breadcrumb { gap:6px; font-size:12px; } .breadcrumb strong { max-width:145px; }
  .top-search { justify-content:center; width:42px; min-height:42px; padding:0; border-color:transparent; background:transparent; }
  .top-search span,.top-search .kbd { display:none; }
  .topbar .app-mode { display:inline-flex; min-height:44px; padding:0 4px; font-size:11px; }
  .topbar .app-mode>span { display:none; }
  .breadcrumb>a,.breadcrumb>.icon { display:none; }
  .topbar .mode-chip { max-width:105px; font-size:10px; } .topbar .mode-chip .live-dot { display:none; }
  .topbar .avatar { width:32px; height:32px; }
  .content { padding:24px 16px; }
  h1,.page-header h1 { font-size:28px; line-height:1.35; letter-spacing:-.7px; }
  .page-header { gap:16px; margin-bottom:20px; } .page-subtitle { font-size:13px; margin-top:7px; }
  .page-kicker { font-size:10px; } .page-actions,.page-header .actions { display:flex; flex-wrap:wrap; flex-direction:row; gap:9px; }
  .iconbtn { width:44px; height:44px; }
  .btn,.btn.small,.nav-item,.material-link,.filter,.textlink,.tab,.queue-tabs button { min-height:44px; }
  .btn { padding:10px 14px; } .btn.small { padding:8px 12px; }
  .textlink { align-items:center; }
  .workspace-summary { margin-bottom:17px; padding-block:15px; }
  .summary-stat { flex-direction:column; align-items:flex-start; gap:6px; padding-inline:14px; }
  .summary-stat>.icon,.summary-stat>.summary-icon,.summary-stat>.kpi-icon { width:29px; height:29px; padding:6px; }
  .summary-stat label,.summary-stat .label,.summary-stat .summary-label { font-size:11px; } .summary-stat small { display:none; } .summary-stat strong,.summary-stat .num { font-size:24px; }
  .workspace-grid,.workspace-grid>.stack { gap:16px; }
  .panel-head { padding:18px 16px 14px; } .panel-head h2 { font-size:17px; }
  .panel-body { padding:0 16px 18px; } .panel-pad { padding:18px; }
  .queue-tabs { gap:20px; padding-inline:16px; overflow-x:auto; }
  .queue-tabs button { padding-block:8px 10px; font-size:12px; }
  .queue-row { grid-template-columns:minmax(0,1fr) auto; gap:7px 13px; margin-inline:16px; padding:17px 0; }
  .queue-row>.decision-mark { display:none; } .queue-main { align-self:start; } .queue-main strong { font-size:13px; } .queue-main p { font-size:11px; }
  .queue-amount strong { font-size:15px; } .queue-amount { gap:6px; }
  .queue-action { grid-column:1/-1; min-height:34px; justify-self:start; font-size:12px; }
  .focus-card { padding:19px; } .focus-card>.btn { display:flex; width:100%; margin-top:16px; }
.focus-card h2 { font-size:21px; }
  .focus-amounts strong { font-size:27px; } .focus-amounts del { font-size:23px; }
  .recent-list { padding-inline:17px; } .recent-item { flex-wrap:wrap; gap:4px 11px; }
  .recent-item time { margin-left:19px; }
  .balance-strip { padding:17px; gap:19px 12px; } .balance-strip>span { gap:9px; } .balance-strip>span>.icon { width:22px; height:22px; } .balance-strip b { font-size:19px; }
  .tabs { gap:21px; overflow-x:auto; } .tab { font-size:13px; }
  .payment-list { display:block; padding:15px; } .payment-list>.between { padding-bottom:14px; }
  .payment-choice { padding:16px; margin-bottom:10px; } .payment-choice strong { font-size:14px; } .payment-number { margin:10px 0; font-size:25px; }
  .payment-list .support-block { display:block; margin-top:17px; padding-top:16px; }
  .payment-list .material-link { width:100%; }
  .payment-decision { padding:19px 17px; } .review-heading h2,.decision-title { font-size:23px; }
  .review-summary { display:block; } .review-summary .review-amount { margin:14px 0 10px; text-align:left; }
  .review-heading p,.decision-explanation { font-size:13px; } .review-amount strong { font-size:31px; }
  .review-info,.payee-strip { gap:13px 20px; padding:13px; }
  .change-entry { gap:10px; padding:15px; } .change-symbol { display:none; }
  .change-result { padding:17px 15px; }
  .field-diff>div { gap:10px; font-size:20px; } .field-diff>div>span { width:100%; } .field-diff del { font-size:17px; }
  .impact-summary { flex-direction:column; gap:6px; }
  .review-actions { flex-direction:column; } .review-actions>.btn { width:100%; }
  .review-checks { padding-inline:12px; } .review-check { gap:9px; }
  .evidence-list { padding:12px; }
  .task-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:19px 12px; } .summary-item:nth-child(2) { border:0; }
  .step { font-size:10px; } .step-num { width:20px; height:20px; } .step::after { margin:0 2px; }
  .document-grid { grid-template-columns:1fr; } .doc-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .doc-item { padding:12px; gap:8px; } .doc-item .small { font-size:11px; } .doc-file { width:29px; height:35px; font-size:9px; }
  .doc-content { padding:14px; font-size:12px; }
  .field-grid { gap:9px; } .field-item { padding:11px; }
  .lab-grid,.form-grid,.impact-columns { grid-template-columns:1fr; } .form-field.full { grid-column:auto; }
  .kpi-grid { gap:11px; } .kpi { padding:16px; } .kpi-number { font-size:25px; } .kpi-foot { font-size:11px; }
  .panel-head.wrap { align-items:flex-start; } .panel-head .input-search { max-width:155px; }
  .table-footer { align-items:flex-start; flex-direction:column; gap:4px; padding:13px 16px; }
  .form-field input,.form-field select,.form-field textarea { min-height:44px; font-size:16px; }
  .modal-overlay { padding:12px; } .modal { max-height:calc(100dvh - 24px); border-radius:10px; }
  .modal.wide { width:100%; } .modal-head { padding:17px 18px; } .modal-head h2 { font-size:19px; }
  .modal-body { padding:19px 18px; } .modal-foot { padding:14px 18px; } .modal-foot .btn { flex:1; white-space:normal; }
  .modal:has(#doc-form) { width:100%; border-radius:0; } .modal:has(#doc-form) .modal-body { display:block; }
  .modal:has(#doc-form) #doc-preview { margin-top:24px; } .modal:has(#doc-form) textarea { min-height:190px; }
  #toast-root { left:50%; width:calc(100% - 32px); bottom:18px; } .toast { width:100%; max-width:100%; min-width:0; }
  .home-foot,.footer-note { flex-direction:column; align-items:flex-start; gap:7px; }
  .between.mobile-stack { flex-direction:column; align-items:flex-start; }
  .hero,.work-intro { flex-direction:column; padding:24px; } .hero h2,.work-intro h2 { font-size:28px; }
  .intro-note { width:100%; padding:20px; }
  .decision-list { padding:0 16px 8px; } .decision-row { gap:10px; } .decision-mark,.decision-row>.icon { display:none; }
  .decision-end { min-width:95px; flex-shrink:0; } .decision-end strong { font-size:15px; }
}
@media (max-width:380px) {
  .topbar .mode-chip { display:none; }
  .content { padding-inline:12px; } .page-header h1 { font-size:26px; }
  .summary-stat { padding-inline:10px; } .queue-row { margin-inline:13px; }
  .focus-amounts strong { font-size:24px; } .focus-amounts del { font-size:20px; }
  .doc-list,.field-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; }
}
@media print {
  :root { --sidebar:0px; }
  body { background:white; font-size:11pt; color:#172d27; }
  .sidebar,.topbar,.footer-note,.home-foot,.btn,.iconbtn,.tabs,.skip-link,.mobile-backdrop,#modal-root,#toast-root,.page-actions,.queue-action { display:none!important; }
  .main { margin:0; } .content { max-width:none; padding:0; }
  .panel,.payment-decision,.payment-list,.focus-card { margin-bottom:14px; box-shadow:none; break-inside:avoid; }
  .workspace-grid,.payment-workspace,.task-layout,.grid2,.grid-equal,.settings-grid { display:block; }
  .table-wrap,.panel,.doc-content { overflow:visible; } .doc-content { max-height:none; }
  .data-table { white-space:normal; } .data-table th,.data-table td { padding:9px; }
  .payment-list { display:none; } .page-header h1 { font-size:26px; } .page-header { margin-bottom:16px; }
}

/* Concept refinement: compact ledger and a single, legible review sheet. */
.content:has(.workspace-summary) .page-header h1 { font-size:38px; letter-spacing:-1.1px; }
.content:has(.workspace-summary) .page-kicker { display:none; }
.workspace-summary { padding:14px 0; margin-bottom:18px; }
.summary-stat small { display:none; }
.workspace-grid { grid-template-columns:minmax(0,1.55fr) minmax(360px,1fr); gap:16px; }
.work-queue .panel-head { padding:20px 20px 10px; }
.work-queue .panel-head p { display:none; }
.queue-tabs { padding-inline:20px; gap:22px; }
.queue-columns,.queue-row { display:grid; grid-template-columns:minmax(150px,1.65fr) minmax(85px,1fr) minmax(95px,1fr) minmax(82px,.85fr) 76px; gap:10px; }
.queue-columns { margin:16px 20px 0; padding:10px 0; color:var(--muted); font-size:11px; border-block:1px solid var(--line); background:#f7f9f5; }
.queue-row { margin:0 20px; min-height:87px; padding:16px 0; }
.queue-content { display:flex; align-items:center; min-width:0; gap:9px; }
.queue-content .decision-mark { width:32px; height:36px; flex-shrink:0; }
.queue-main { gap:5px; }
.queue-main strong { font-size:13px; line-height:1.5; }
.queue-main small { font-size:10px; }
.queue-payee { font-size:12px; overflow-wrap:anywhere; }
.queue-amount { display:block; text-align:left; font-size:13px; font-weight:600; white-space:normal; overflow-wrap:anywhere; }
.queue-status .status-pill { font-size:10px; padding:4px 7px; white-space:normal; }
.queue-action { font-size:11px; white-space:nowrap; }
.queue-action .icon { width:15px; }
.focus-card { padding:20px; }
.focus-card h2 { font-size:20px; margin:9px 0 12px; line-height:1.5; }
.focus-amounts { margin:12px 0; }
.focus-amounts strong { font-size:29px; }
.focus-amounts del { font-size:25px; }
.focus-impact { margin:12px 0; padding-top:12px; }
.focus-card>.btn { margin-top:12px; }
.recent-list { padding:0 20px 12px; }
.recent-item { padding:10px 0; }
.recent-item p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.6; }
.recent-heading { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.recent-heading time { font-size:10px; }
.workspace-grid .demo-entry { margin-top:0; padding-block:10px; }
.content:has(.payment-workspace) { padding-top:24px; }
.content:has(.payment-workspace) .page-header { margin-bottom:18px; }
.balance-strip { padding:15px 20px; margin-bottom:18px; }
.payment-workspace { grid-template-columns:290px minmax(0,1fr); gap:16px; }
.payment-list { padding:16px 13px; }
.payment-list>.between { padding-bottom:0; }
.payment-choice { position:relative; padding:13px 14px; }
.payment-choice.selected { border-left:3px solid #9eba69; padding-left:12px; }
.payment-number { font-size:22px; margin:6px 0; }
.payment-choice .dual-status { position:absolute; bottom:15px; right:10px; max-width:47%; }
.payment-choice .payment-number { padding-right:85px; }
.support-block { margin-top:20px; }
.support-block .material-link { margin-top:8px; padding:12px 9px; border:1px solid var(--line); border-radius:7px; background:#fcfdf9; }
.support-block .material-link span { white-space:normal; overflow-wrap:anywhere; }
.support-block .material-link b { white-space:nowrap; font-size:10px; }
.payment-decision { padding:18px 20px; }
.review-heading h2,.decision-title { font-size:22px; margin:3px 0; }
.review-summary { gap:14px; }
.review-amount strong { font-size:28px; }
.decision-explanation { font-size:12px; line-height:1.7; }
.has-material-change .review-summary .review-heading { align-items:center; }
.has-material-change .eyebrow { display:none; }
.change-result { padding:14px 16px 10px; margin:12px 0; }
.amount-comparison { display:grid; grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) auto; align-items:center; gap:14px; padding-bottom:12px; }
.amount-comparison>div>span { display:block; font-size:12px; color:var(--muted); }
.amount-comparison strong { display:block; font-size:27px; line-height:1.5; font-weight:650; overflow-wrap:anywhere; }
.amount-delta { padding:7px 10px; border-radius:6px; font-size:12px; font-weight:600; }
.amount-delta.increase { background:#f9e8dd; color:#a84424; }
.amount-delta.decrease { background:#e0efdc; color:#315b38; }
.impact-summary { margin:0; gap:8px 16px; font-size:11px; }
.impact-summary>span,.independent-payment,.historical-payment { display:flex; align-items:center; gap:6px; }
.independent-payment,.historical-payment { color:var(--green); min-width:0; }
.independent-payment span,.historical-payment span { overflow-wrap:anywhere; }
.independent-payment:hover,.historical-payment:hover { text-decoration:underline; }
.impact-summary .icon { width:16px; flex-shrink:0; }
.review-info { margin:10px 0; padding:10px 12px; justify-content:space-between; }
.review-info>span { display:flex; align-items:baseline; gap:12px; }
.review-info strong { margin:0; font-size:13px; }
.review-checks { margin:10px 0; padding:0 12px; }
.review-check { padding:9px 0; gap:9px; }
.review-check>div { display:flex; align-items:baseline; gap:12px; flex:1; min-width:0; }
.review-check strong { flex-shrink:0; font-size:12px; }
.review-check p { margin:0; font-size:11px; line-height:1.7; }
.review-actions { margin-top:10px; }
.change-entry { margin:12px 0; padding:10px 12px; }
.change-entry strong { font-size:12px; }
.change-entry p { font-size:11px; }
.evidence-details { margin-top:12px; padding-top:12px; }
.payment-secondary { margin-top:12px; }
.payment-secondary .btn { min-height:30px; padding:4px 9px; font-size:11px; background:transparent; border-color:transparent; color:var(--muted); }
.payment-secondary .btn:hover { border-color:var(--line); color:var(--green-dark); }
.review-footnote { margin-top:12px; font-size:10px; }
@media (max-width:1300px) and (min-width:1081px) {
 .workspace-grid { grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr); }
 .queue-columns,.queue-row { grid-template-columns:minmax(125px,1.5fr) minmax(70px,1fr) minmax(84px,1fr) 78px; }
 .queue-columns>span:nth-child(2),.queue-payee { display:none; }
 .payment-workspace { grid-template-columns:245px minmax(0,1fr); }
 .amount-comparison { gap:10px; }
 .amount-comparison strong { font-size:23px; }
 .amount-delta { grid-column:3/5; justify-self:end; }
 .review-check>div { display:block; }
}
@media (max-width:1080px) {
 .workspace-grid { grid-template-columns:1fr; }
 .workspace-grid>.stack { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .payment-workspace { grid-template-columns:1fr; }
 .payment-choice .payment-number { padding-right:0; }
 .payment-choice .dual-status { position:static; max-width:none; }
}
@media (max-width:760px) {
 .content:has(.workspace-summary) .page-header h1 { font-size:29px; }
 .workspace-grid>.stack { display:flex; }
 .queue-columns { display:none; }
 .queue-row { grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; padding:15px 0; margin-inline:16px; }
 .queue-content { grid-column:1; grid-row:1/3; }
 .queue-payee { display:none; }
 .queue-amount { grid-column:2; grid-row:1; text-align:right; font-size:14px; }
 .queue-status { grid-column:2; grid-row:2; text-align:right; }
 .queue-action { grid-column:1/-1; min-height:30px; }
 .queue-tabs { gap:18px; padding-inline:16px; }
 .queue-content .decision-mark { display:none; }
 .recent-heading { flex-wrap:wrap; gap:2px; }
 .recent-heading time { margin-left:0; }
 .payment-list { padding:14px; }
 .payment-choice { padding:12px; }
 .payment-choice .dual-status { position:absolute; max-width:45%; }
 .payment-choice .payment-number { padding-right:100px; }
 .payment-decision { padding:17px 14px; }
 .amount-comparison { grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr); gap:8px; }
 .amount-comparison strong { font-size:22px; }
 .amount-delta { grid-column:1/-1; justify-self:start; }
 .review-info { display:block; }
 .review-info>span+span { margin-top:8px; }
 .review-check>div { display:block; }
 .review-check p { margin-top:3px; font-size:12px; }
 .payment-secondary .btn { min-height:44px; }
 .independent-payment,.historical-payment { min-height:44px; }
}

/* Keep ledger text readable at the reference desktop size. */
.home-example { margin-left:16px; font-size:12px; color:var(--green); text-decoration:underline; text-underline-offset:4px; }
.queue-main strong { font-size:14px; }
.queue-payee,.queue-amount { font-size:13px; }
.queue-columns,.queue-action { font-size:12px; }
.queue-status .status-pill { font-size:11px; }
.review-check strong { font-size:13px; }
.review-check p { font-size:12px; }
@media (max-width:760px) { .home-example { display:inline-block; margin:8px 0 0; min-height:32px; } .queue-main strong { font-size:13px; } }
@media (min-width:761px) and (max-width:1080px) {
 .queue-columns,.queue-row { grid-template-columns:minmax(125px,1.5fr) minmax(84px,1fr) 82px 76px; }
 .queue-columns>span:nth-child(2),.queue-payee { display:none; }
}
@media (max-width:900px) { .workspace-grid>.stack { display:flex; } }

/* Explicit material relationships and evidence boundaries. */
.import-purpose { border:1px solid var(--line); border-radius:10px; padding:14px; margin-inline:0; min-width:0; }
.import-purpose legend { padding:0 5px; font-size:14px; font-weight:650; }
.purpose-choice { display:flex; align-items:flex-start; gap:10px; padding:10px 5px; cursor:pointer; }
.purpose-choice input { margin-top:5px; accent-color:var(--green); flex-shrink:0; }
.purpose-choice strong,.purpose-choice small { display:block; }
.purpose-choice small { color:var(--muted); font-size:12px; line-height:1.7; margin-top:3px; }
.relation-panel { border:1px solid var(--line); padding:18px; border-radius:10px; background:var(--bg); }
.relation-candidate { display:grid; gap:3px; padding:11px 0; border-bottom:1px solid var(--line); }
.relation-candidate a { overflow-wrap:anywhere; }
.impact-columns.impact-five { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.impact-group.pending,.impact-group.unknown { background:var(--orange-soft); border-color:#e6cf9e; }
.impact-group small { display:block; color:var(--muted); font-size:12px; line-height:1.7; }
.impact-group p { flex-wrap:wrap; gap:5px; }
.impact-group p strong { overflow-wrap:anywhere; }
.payable-summary { padding:15px 18px; margin:16px 0; background:var(--bg); border-radius:8px; border-left:3px solid var(--green); }
.payable-summary strong { display:block; margin:5px 0; overflow-wrap:anywhere; }
.historical-evidence .hash-box { max-height:320px; overflow:auto; }
[hidden] { display:none!important; }
@media(max-width:760px) {
 .import-purpose,.relation-panel { padding:12px; }
 .impact-columns.impact-five { grid-template-columns:1fr; }
 .modal-foot { flex-wrap:wrap; }
 .modal-foot .btn { max-width:100%; white-space:normal; }
 .source-mini,.hash-box,.keyval dd { overflow-wrap:anywhere; min-width:0; }
}
.doc-item strong,.document-grid .panel-head h2 { overflow-wrap:anywhere; }
.doc-item strong { display:block; }
.document-grid .panel-head>div { min-width:0; }
.study-judgement { border:1px solid var(--line); padding:16px; border-radius:8px; background:var(--bg); }
.study-help { grid-column:1; min-width:0; }
.study-help label { display:block; font-weight:600; margin-bottom:8px; }
.study-help textarea { width:100%; min-height:80px!important; border:1px solid var(--line); border-radius:8px; padding:10px; margin-bottom:8px; resize:vertical; }
.field-item strong,.field-item small { display:block; }
.field-item small { margin-top:5px; color:var(--muted); font-size:11px; }
