:root{color-scheme:light;--ink:#17263b;--muted:#5d6c82;--paper:#fff;--canvas:#f5f7fb;--line:#e0e6ef;--accent:#315acb;--light:#edf2ff;--danger:#a43938;--amber:#80510b;--radius:14px;font-family:"Segoe UI",-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;color:var(--ink);background:var(--canvas)}

*{box-sizing:border-box}
body{margin:0;line-height:1.65}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:var(--accent);text-underline-offset:3px}
button,.button{min-height:44px;border:1px solid var(--line);border-radius:9px;padding:10px 17px;background:white;color:var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
button:hover,.button:hover{border-color:var(--accent);background:#edf2fc}
button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
button.primary:hover,.button.primary:hover{background:#23449f}
.danger{color:var(--danger);border-color:#dcbbb6}
.quiet{background:transparent;border-color:transparent;color:var(--muted)}
button:disabled{opacity:.55;cursor:wait}
input,textarea,select{width:100%;min-height:46px;border:1px solid #bcc8d9;border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink)}
textarea{min-height:104px;resize:vertical}
input[type=file]{font-size:14px;padding:10px}
input[type=file]::file-selector-button{border:0;background:var(--light);border-radius:5px;padding:8px;margin-right:10px;color:var(--accent)}
label{display:block;font-size:14px;font-weight:600;margin-bottom:18px}
label>span{display:block;margin-bottom:7px}
label small{display:block;margin-top:6px;font-weight:400;color:var(--muted)}
:focus-visible{outline:3px solid #547ae0;outline-offset:3px}
.skip{position:fixed;top:-100px;left:16px;background:#fff;z-index:20;padding:10px}
.skip:focus{top:12px}
h1,h2,h3,p{margin:0}
h1{font-size:30px;line-height:1.35;font-weight:650;letter-spacing:-.6px}
h2{font-size:20px;line-height:1.45;font-weight:650}
h3{font-size:17px;font-weight:650}
.muted,.hint{color:var(--muted)}
.hint{font-size:14px;margin-top:7px}
.eyebrow{font-size:12px;letter-spacing:1.6px;font-weight:700;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.money{font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}
.stack{display:grid;gap:18px}
.row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.two label{margin:0}
.form-actions{padding-top:8px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.panel-head{margin-bottom:22px}
.panel-head .hint{max-width:640px}
.divider{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
.preserve{white-space:pre-wrap;overflow-wrap:anywhere}
.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;background:#eff3f8;color:#53667e;font-size:12px;font-weight:600;white-space:nowrap}
.tag.pending,.tag.needs_review{background:#fff1d9;color:#80510b}
.tag.approved,.tag.paid{background:var(--light);color:var(--accent)}
.tag.rejected{background:#fbece8;color:var(--danger)}
.tag.restricted{background:#eceef4;color:#4f5374}
.error{color:var(--danger);background:#fff0ed;border:1px solid #e2c3bb;border-radius:8px;padding:12px;font-size:14px;margin:14px 0}
.error:empty{display:none}
.warning{background:#fff5df;color:#735114;padding:13px 16px;border-radius:8px;font-size:14px}
.demo-strip{background:#edf2fb;color:#415877;font-size:12px;letter-spacing:.2px;padding:7px 24px;text-align:center;border-bottom:1px solid #dce5f3}
.layout{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:11px;margin-bottom:42px;text-decoration:none;color:var(--ink)}
.mark{width:37px;height:37px;border-radius:10px;background:var(--accent);color:white;display:grid;place-items:center;font-size:24px;font-weight:700;flex-shrink:0}
.brand-name{font-weight:750;font-size:20px;letter-spacing:-.5px}
.brand small{display:block;font-size:10px;color:var(--muted);letter-spacing:.2px}
.nav{display:grid;gap:8px}
.nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:600;min-height:48px}
.nav a.active{background:var(--light);color:var(--accent)}
.nav a:hover{background:#f2f5fc}
.nav-icon{width:18px;text-align:center;font-size:18px}
.sidebar-bottom{margin-top:auto;padding:24px 8px 0}
.person{display:flex;gap:9px;align-items:center;margin-bottom:15px}
.avatar{width:32px;height:32px;background:#edf1f8;display:grid;place-items:center;border-radius:50%;font-size:13px;font-weight:700}
.person strong{display:block;font-size:13px}
.person small{font-size:11px;color:var(--muted)}
.main-column{min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;height:68px;padding:0 40px;border-bottom:1px solid var(--line);background:#ffffffb5;font-size:13px;color:var(--muted)}
.mobile-brand,.mobile-nav{display:none}
main.content{max-width:1220px;margin:0 auto;padding:40px}
.page-head{margin-bottom:32px}
.page-head .hint{margin-top:10px}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 34px}
.metric{padding:22px 24px;border:1px solid var(--line);border-radius:12px;background:#fff}
.metric:first-child{background:#edf2ff;border-color:#d6e1fa}
.metric p{font-size:13px;color:var(--muted)}
.metric strong{display:block;font-size:36px;line-height:1.2;margin:12px 0 4px;font-weight:600;font-variant-numeric:tabular-nums}
.section-title{margin-bottom:16px}
.case-list{display:grid;gap:12px}
.case-card{display:block;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:12px;background:#fff;padding:21px 24px;transition:border-color .15s}
.case-card:hover{border-color:#8ea8d6}
.case-card h3{overflow-wrap:anywhere;margin:8px 0}
.case-card .summary{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:600px}
.case-card .meta{margin-top:14px;font-size:12px;color:var(--muted)}
.case-card .amount{font-size:21px}
.filters{display:grid;grid-template-columns:1fr 180px;gap:16px;margin-bottom:20px}
.filters label{margin:0}
.empty{padding:48px 24px;text-align:center;border:1px dashed #cbd5e4;border-radius:12px;background:#fff}
.empty .hint{margin:10px 0 20px}
.case-head{margin:20px 0 26px}
.case-head h1{overflow-wrap:anywhere;max-width:800px}
.case-summary{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start}
.budget-total{text-align:right;min-width:160px}
.budget-total strong{font-size:32px;display:block;line-height:1.4}
.budget-total span{font-size:12px;color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.detail-main,.detail-side{display:grid;gap:22px}
.detail-side .panel{padding:24px}
.detail-side .actions button{flex:1}
.kv{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px 12px;font-size:14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;overflow-wrap:anywhere}
.files{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.file-row{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px 14px;align-items:center}
.file-row a{font-size:14px;overflow-wrap:anywhere;font-weight:500}
.file-row small{font-size:12px;color:var(--muted)}
details>summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600;min-height:44px;padding:10px 0}
details[open]>summary{margin-bottom:10px}
.upload-form{background:#f4f7fd;padding:16px;border-radius:10px;margin-top:16px}
.upload-form label{margin-bottom:12px}
.payment{border:1px solid var(--line);border-radius:10px;padding:20px;margin-top:16px}
.payment .money{font-size:23px}
.payment .kv{margin:16px 0}
.decision-box{background:#f5f7fc;border:1px solid var(--line);padding:18px;border-radius:10px;margin-top:18px}
.decision-box label:last-of-type{margin-bottom:14px}
.history-item{padding:20px 0;border-top:1px solid var(--line)}
.history-item:first-of-type{border-top:0}
.history-item .hint{font-size:13px}
.history-item details{padding-left:14px;border-left:2px solid var(--line);margin-top:12px}
.users-list{display:grid;gap:12px}
.user-row{display:grid;grid-template-columns:1fr 170px auto;gap:15px;align-items:center;border-top:1px solid var(--line);padding:18px 0}
.user-row label{margin:0}
.user-row small{display:block;color:var(--muted)}
.login-shell{max-width:1120px;padding:70px 40px;margin:auto;min-height:100vh;display:grid;grid-template-columns:1fr 430px;gap:80px;align-items:center}
.login-story .brand{margin-bottom:65px}
.login-story h1{font-size:40px;line-height:1.5;max-width:450px;letter-spacing:-1px}
.login-story>p{max-width:400px;color:var(--muted);margin-top:22px}
.flow-lines{display:grid;gap:14px;margin-top:42px;font-size:14px}
.flow-lines span{display:flex;gap:14px;align-items:center}
.flow-lines b{border:1px solid #ccd9eb;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:12px;font-weight:500;color:var(--accent)}
.login-panel{padding:32px}
.login-panel h2{margin-bottom:24px}
.login-panel .primary{width:100%}
.demo-options{display:grid;gap:8px;margin-top:16px}
.demo-options button{justify-content:space-between;font-size:13px;text-align:left}
.demo-options small{color:var(--muted);font-weight:400}
.loading{padding:60px;max-width:800px;margin:auto}
#notice{position:fixed;bottom:28px;right:28px;max-width:min(440px,calc(100vw - 40px));background:#1c3153;color:#fff;box-shadow:0 8px 25px #15346724;border-radius:10px;padding:14px 20px;z-index:30;font-size:14px}

@media(max-width:1100px){main.content{padding:30px}
.topbar{padding:0 30px}
.detail-grid{grid-template-columns:1fr}
.detail-side{grid-row:1}
.detail-side .panel{max-width:none}
.login-shell{gap:40px;grid-template-columns:1fr 400px}
.login-story h1{font-size:34px}
}

@media(max-width:720px){.layout{display:block}
.sidebar{display:none}
.mobile-brand{display:flex;gap:9px;align-items:center;font-weight:700;font-size:18px;color:var(--ink)}
.mobile-brand .mark{width:29px;height:29px;font-size:19px;border-radius:7px}
.topbar{height:60px;padding:0 20px}
.desktop-title{display:none}
.topbar time{font-size:11px}
.demo-strip{padding:7px 15px;font-size:11px}
.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:white;border-top:1px solid var(--line);z-index:10;padding:6px 8px max(8px,env(safe-area-inset-bottom));justify-content:space-around}
.mobile-nav a,.mobile-nav button{border:0;display:flex;flex:1;flex-direction:column;gap:2px;font-size:11px;padding:5px;text-decoration:none;color:var(--muted);line-height:1.5;background:transparent;min-height:46px}
.mobile-nav .active{color:var(--accent);font-weight:700}
.mobile-nav .nav-icon{font-size:19px}
main.content{padding:25px 18px 100px}
h1{font-size:25px}
h2{font-size:19px}
.page-head{align-items:start;flex-direction:column;gap:18px;margin-bottom:22px}
.page-head .actions{width:100%}
.page-head .primary{width:100%}
.metrics{gap:8px;margin:24px 0}
.metric{padding:14px 11px}
.metric p{font-size:11px}
.metric strong{font-size:28px}
.metric small{font-size:10px}
.section-title h2{font-size:18px}
.section-title a{font-size:13px}
.case-card{padding:17px}
.case-card .amount{font-size:18px}
.case-card .row{align-items:start;gap:10px}
.case-card .summary{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px}
.case-card .meta{font-size:11px}
.filters{grid-template-columns:1fr 130px;gap:10px}
.panel{padding:20px}
.case-summary{grid-template-columns:1fr;gap:20px}
.budget-total{text-align:left}
.budget-total strong{font-size:30px}
.two{grid-template-columns:1fr}
.actions button{min-height:46px}
.detail-grid{gap:18px}
.detail-main,.detail-side{gap:18px}
.detail-side .panel{padding:20px}
.payment{padding:16px}
.kv{grid-template-columns:90px 1fr;font-size:13px}
.file-row{align-items:start}
.file-row .tag{white-space:normal}
.user-row{grid-template-columns:1fr 1fr;gap:12px}
.user-row button{grid-column:1/-1}
.login-shell{display:block;min-height:auto;padding:30px 20px 50px}
.login-story .brand{margin-bottom:30px}
.login-story h1{font-size:28px;max-width:100%}
.login-story>p{font-size:14px;margin-top:12px}
.flow-lines{display:none}
.login-panel{margin-top:28px;padding:24px}
.login-panel h2{font-size:20px}
#notice{bottom:86px;right:18px}
.loading{padding:30px 20px}
}

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

@media print{body{background:white}
.sidebar,.topbar,.mobile-nav,.skip,button,.button,form,#notice,.demo-strip,.filters{display:none!important}
.layout,.detail-grid{display:block}
main.content{padding:0;max-width:none}
.panel,.case-card{box-shadow:none;break-inside:avoid;margin-bottom:15px}
.detail-side{margin-bottom:15px}
a{color:inherit}
.page-head{margin-bottom:20px}
}
/* Prospa spatial workspace: material depth and task surfaces. Brand refinement below. */
:root { --radius:16px; --display:"Bahnschrift","Segoe UI","Microsoft YaHei",sans-serif; }
body { background:var(--canvas); -webkit-font-smoothing:antialiased; }
h1,h2,h3 { font-family:var(--display); }
h1 { font-weight:650; letter-spacing:-.035em; }
h2 { letter-spacing:-.02em; }
button,.button,input,select,textarea { border-radius:9px; }
button,.button { transition:background-color .18s,border-color .18s,transform .18s; }
button:active,.button:active { transform:translateY(1px); }
button.primary,.button.primary { background:linear-gradient(145deg,#3f68d7,#284bb4); border-color:#365bc2; box-shadow:inset 0 1px 0 #ffffff36,0 4px 9px #315acb15; }
button.primary:hover,.button.primary:hover { background:#274dbb; }
input,textarea,select { box-shadow:inset 0 1px 2px #1a325205; border-color:#becbdd; }
input:focus,textarea:focus,select:focus { border-color:var(--accent); }
input::placeholder,textarea::placeholder { color:#6c788a; }
.layout { grid-template-columns:224px minmax(0,1fr); }
.sidebar { padding:32px 19px 25px; border-color:#e1e7f1; background:linear-gradient(180deg,#fff 70%,#f7f9fd); }
.brand { gap:12px; margin-bottom:46px; }
.mark { border-radius:10px; background:linear-gradient(145deg,#6485da 0%,#3559b2 45%,#1a3474 100%); box-shadow:inset 0 1px 0 #ffffff80,inset 0 -2px 3px #091e5e3d,0 4px 12px #214c9c20; font-family:var(--display); }
.brand-name { font-family:var(--display); font-size:23px; font-weight:700; letter-spacing:-1px; }
.brand small { font-size:10px; letter-spacing:.03em; }
.nav { gap:7px; }
.nav a { min-height:49px; padding:12px 15px; font-weight:500; color:#596d89; position:relative; }
.nav a.active { background:#eaf0fe; color:#284fae; box-shadow:inset 0 0 0 1px #dce6ff; font-weight:650; }
.nav a.active::after { content:""; width:4px; height:18px; border-radius:3px; background:#3a64ce; position:absolute; right:0; }
.nav-icon { opacity:.9; }
.sidebar-bottom { border-top:1px solid var(--line); padding:22px 8px 0; }
.avatar { border:1px solid #d8e3f4; background:linear-gradient(140deg,#fff,#e5edfa); color:#395a92; }
.person strong { font-size:13px; }
.person small { font-size:12px; }
.topbar { height:66px; background:#ffffffc9; padding:0 38px; }
.topbar time { font-variant-numeric:tabular-nums; letter-spacing:.03em; font-size:12px; }
.demo-strip { padding:6px 24px; font-size:11px; background:#eef3fc; color:#415877; }
main.content { max-width:1480px; padding:30px 38px 50px; }
.eyebrow { color:#5c7394; letter-spacing:.17em; font-size:11px; }
.home-hero { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(340px,1.15fr); gap:20px; align-items:center; margin:-8px -6px 20px; }
.hero-copy { padding:24px 0 28px 6px; max-width:410px; }
.hero-copy h1 { font-size:clamp(30px,2.7vw,42px); line-height:1.55; letter-spacing:-.04em; text-wrap:balance; }
.hero-copy h1>span { display:block; white-space:nowrap; }
.hero-copy .eyebrow { margin-bottom:18px; }
.hero-copy .hint { font-size:14px; line-height:1.9; max-width:340px; margin-top:15px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:23px; margin-top:26px; }
.hero-actions .button { padding:11px 21px; min-height:47px; }
.text-link { font-size:13px; font-weight:600; text-decoration:none; }
.spatial-panel { min-width:0; align-self:stretch; position:relative; padding:6px 0; isolation:isolate; }
.spatial-heading { display:flex; justify-content:space-between; align-items:center; padding:0 13px; font-size:11px; font-weight:650; color:#4e6381; min-height:44px; position:relative; z-index:3; }
.spatial-heading>span { letter-spacing:.12em; }
.motion-control { min-height:36px; padding:4px 9px; border-color:#d8e1ef; background:#ffffffad; font-size:13px; gap:7px; color:#496383; }
.motion-control span { font-size:10px; letter-spacing:.06em; }
.motion-control[aria-pressed=true] { background:#e7edfa; border-color:#aabfe7; }
.spatial-panel:has([data-spatial=fallback]) .motion-control { visibility:hidden; }
.spatial-host { position:relative; height:280px; width:100%; touch-action:pan-y; overflow:hidden; border-radius:22px; }
.spatial-host::before { content:""; position:absolute; inset:8% 10% 0; background:radial-gradient(ellipse at 50% 70%,#dae6fb80,transparent 68%); pointer-events:none; }
.spatial-canvas,.spatial-poster { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:contain; }
.spatial-canvas { cursor:pointer; touch-action:pan-y; }
.spatial-poster { opacity:1; transition:opacity .4s; }
[data-spatial=ready] .spatial-poster { opacity:0; visibility:hidden; }
.spatial-labels { position:absolute; inset:0; pointer-events:none; z-index:2; }
.spatial-label { position:absolute; left:0; top:0; font-size:10px; color:#3d587c; white-space:nowrap; padding:4px 7px; background:#f8fbffdf; border:1px solid #dce5f2; border-radius:5px; box-shadow:0 2px 6px #24457808; transition:color .2s,background .2s,opacity .2s; }
.spatial-label::after { content:""; position:absolute; top:100%; left:50%; height:12px; width:1px; background:#8aa4c4; }
.spatial-label.selected { color:#fff; background:#355ebb; border-color:#355ebb; }
.spatial-label.dim { opacity:.45; }
.spatial-caption { display:flex; justify-content:center; gap:7px; align-items:center; color:#5a708f; font-size:10px; padding:5px 5px 7px; }
.status-dot { width:5px; height:5px; border-radius:50%; background:#6686b2; display:inline-block; }
.metrics { margin:16px 0 34px; gap:16px; }
.metric { padding:20px 23px 18px; border:1px solid #e0e7f2; border-radius:14px; background:linear-gradient(135deg,#fff,#fbfcff); box-shadow:0 4px 15px #23396203; }
.metric:first-child { background:linear-gradient(140deg,#f4f7ff,#eaf0fd); border-color:#d9e3f8; }
.metric-top { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.metric p { font-size:13px; color:#536984; }
.metric-symbol { font-size:19px; color:#7191c3; font-weight:400; }
.metric-value { display:flex; align-items:baseline; gap:12px; }
.metric-value strong { font-family:var(--display); font-size:42px; font-weight:400; letter-spacing:-2px; margin:12px 0 0; }
.metric-value>span { font-size:11px; color:#667c9b; }
.work-queue { background:#ffffff99; border:1px solid #e0e7f2; border-radius:17px; padding:24px; }
.section-title { margin:0 0 18px; }
.section-title h2 { font-size:21px; }
.section-title .hint { font-size:12px; margin-top:4px; }
.queue-mark { font-size:28px; font-weight:300; color:#6481ac; }
.business-filters { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:21px; }
.business-filters button { font-size:12px; border-radius:7px; padding:5px 10px; min-height:38px; gap:7px; color:#4f6686; border-color:transparent; background:transparent; font-weight:500; }
.business-filters button>span { font-size:10px; font-variant-numeric:tabular-nums; color:#62799b; background:#eaf0f8; border-radius:4px; padding:0 5px; min-width:18px; }
.business-filters button[aria-pressed=true] { color:#2c53b1; background:#eaf0fe; border-color:#d9e5fc; font-weight:650; }
.case-list { gap:11px; }
.case-card { padding:19px 21px; border:1px solid #e3e9f2; border-radius:11px; box-shadow:0 1px 1px #24406603; transition:background-color .2s,border-color .2s,transform .2s; }
.case-card:hover { border-color:#a8bfe7; background:#fcfdff; transform:translateY(-2px); }
.case-card .amount { font-family:var(--display); font-weight:500; font-size:23px; }
.case-card h3 { font-size:17px; letter-spacing:-.02em; margin:10px 0 7px; }
.case-card .summary { color:#5b6d85; }
.case-card .meta { font-size:11px; color:#647c9d; margin-top:14px; }
.tag { font-size:11px; border-radius:5px; padding:3px 8px; font-weight:600; letter-spacing:.01em; }
.tag.approved,.tag.paid { background:#e8f2f0; color:#2c6558; }
.panel { border-color:#dfe6f0; box-shadow:0 4px 15px #273b6303; }
.page-head:not(.case-head) h1 { font-size:33px; }
.case-summary { margin:24px 0 30px; padding-bottom:23px; border-bottom:1px solid #dbe4f0; }
.case-summary h1 { font-size:30px; margin-top:9px; }
.budget-total strong { font-family:var(--display); font-size:36px; font-weight:500; letter-spacing:-1px; }
.detail-grid { grid-template-columns:minmax(0,1fr) 300px; gap:22px; }
.detail-side .panel { background:linear-gradient(155deg,#fff,#f1f5fc); }
.detail-main>.panel { position:relative; }
.detail-main>.panel>.row>h2,.panel-head h2 { font-size:19px; color:#233a5a; }
.decision-box { background:#f4f7fc; border-color:#dbe5f3; }
.file-row { border-color:#e2e8f2; background:linear-gradient(120deg,#fff,#fbfcff); border-radius:9px; padding:14px 15px; }
.file-row a { font-weight:600; color:#325c9c; }
.payment { border-color:#dfe7f3; background:#fcfdff; border-radius:12px; }
.history-item { padding:23px 0; }
.history-item h3 { color:#244569; font-size:16px; }
.history-item details { border-color:#c9d7eb; }
.upload-form { background:#f1f5fc; }
.user-row { border-color:#e2e9f4; }
#notice { background:#1d355c; border:1px solid #476088; box-shadow:0 8px 26px #1e36522b; }
.login-shell { max-width:1350px; min-height:calc(100svh - 31px); padding:38px 54px; grid-template-columns:minmax(0,1.15fr) minmax(380px,.9fr); gap:70px; align-items:center; }
.login-story { min-width:0; }
.login-story .brand { margin-bottom:36px; }
.login-story>.eyebrow { margin-top:0; margin-bottom:13px; font-size:11px; color:#5c7394; }
.login-story h1 { font-size:40px; line-height:1.55; max-width:510px; letter-spacing:-.045em; }
.login-story>p { font-size:14px; max-width:410px; margin-top:13px; line-height:1.9; }
.login-story .spatial-panel { margin-top:16px; max-width:550px; }
.login-story .spatial-host { height:285px; }
.login-story .spatial-heading { padding:0 12px; }
.flow-lines { display:none; }
.login-panel { border-radius:20px; padding:31px; border-color:#d7e1f0; background:linear-gradient(145deg,#fff,#f9fbff); box-shadow:0 22px 60px #2b54870c,inset 0 1px 0 #fff; }
.login-panel h2 { font-size:24px; margin-bottom:24px; }
.login-panel label { font-size:13px; }
.login-panel .hint { font-size:12px; }
.demo-options { gap:7px; }
.demo-options button { padding:9px 13px; border-color:#dce5f2; background:#fff; border-radius:8px; min-height:49px; }
.demo-options button:hover { background:#edf3ff; border-color:#aac0e9; }
.demo-options button>span:first-child { display:flex; flex-direction:column; gap:1px; }
.demo-options small { font-size:11px; color:#667b97; }
@keyframes surface-enter { from { transform:translateY(7px); } to { transform:translateY(0); } }
.content>.panel,.content>.home-hero,.work-queue { animation:surface-enter .35s cubic-bezier(.2,.7,.2,1); }
@media(min-width:1500px) { .spatial-host { height:320px; } .hero-copy h1 { font-size:44px; } }
@media(max-width:1200px) {
  .layout { grid-template-columns:200px minmax(0,1fr); }
  main.content { padding:26px; } .topbar { padding:0 26px; }
  .home-hero { grid-template-columns:minmax(245px,1fr) minmax(285px,1fr); gap:10px; }
  .hero-copy h1 { font-size:31px; } .hero-copy .hint { font-size:13px; }
  .detail-grid { grid-template-columns:1fr; } .detail-side { grid-row:1; }
  .login-shell { gap:40px; padding:36px 40px; }
  .login-story h1 { font-size:34px; }
  .business-filters button { padding:5px 8px; }
}
@media(max-width:900px) and (min-width:721px) {
  .layout { grid-template-columns:174px minmax(0,1fr); } .sidebar { padding:26px 12px; }
  .brand { gap:8px; } .brand-name { font-size:21px; } .brand small { font-size:9px; }
  .home-hero { grid-template-columns:1fr; } .hero-copy { max-width:none; padding-bottom:0; }
  .home-hero .spatial-panel { max-width:500px; width:100%; justify-self:center; }
  .login-shell { grid-template-columns:1fr 365px; gap:22px; padding:28px; }
  .login-story h1 { font-size:30px; } .login-panel { padding:25px; }
}
@media(max-width:720px) {
  .layout { display:block; } main.content { padding:25px 18px 100px; }
  .topbar { padding:0 20px; height:60px; } .mobile-brand { font-family:var(--display); }
  .demo-strip { padding:6px 12px; font-size:10px; }
  .home-hero { grid-template-columns:1fr; margin:0 0 20px; gap:3px; }
  .hero-copy { padding:0; max-width:none; }
  .hero-copy .eyebrow { margin-bottom:12px; font-size:10px; }
  .hero-copy h1 { font-size:29px; max-width:360px; line-height:1.65; }
  .hero-copy .hint { font-size:13px; max-width:100%; margin-top:10px; }
  .hero-actions { margin-top:20px; gap:22px; } .hero-actions .button { min-height:46px; padding:10px 20px; }
  .home-hero .spatial-panel { margin-top:15px; }
  .spatial-host { height:190px; }
  .spatial-heading { padding:0 7px; } .spatial-caption { font-size:9px; }
  .spatial-label { font-size:9px; padding:3px 5px; }
  .metrics { gap:8px; margin:20px 0 25px; }
  .metric { padding:13px 10px 12px; border-radius:11px; }
  .metric p { font-size:10px; } .metric-symbol { display:none; }
  .metric-value { gap:6px; } .metric-value strong { font-size:32px; letter-spacing:-1.5px; }
  .metric-value>span { font-size:9px; }
  .work-queue { padding:19px 13px 13px; border-radius:14px; }
  .section-title { padding:0 4px; margin-bottom:14px; } .section-title h2 { font-size:19px; }
  .business-filters { gap:5px; margin-bottom:15px; }
  .business-filters button { font-size:11px; min-height:44px; padding:5px 8px; }
  .case-card { padding:16px; } .case-card h3 { font-size:16px; }
  .case-card .amount { font-size:19px; } .case-card .meta { font-size:10px; }
  .case-summary h1 { font-size:26px; } .case-summary { margin:22px 0; gap:20px; }
  .budget-total strong { font-size:34px; } .page-head:not(.case-head) h1 { font-size:28px; }
  .panel { padding:20px; } .detail-grid { gap:18px; } .detail-side .panel { padding:20px; }
  .mobile-nav { background:#fffffff2; backdrop-filter:blur(14px); border-color:#dce5f2; box-shadow:0 -5px 20px #23477c05; }
  .mobile-nav .active { color:#2b53bb; } .mobile-nav a,.mobile-nav button { min-height:48px; }
  .login-shell { display:block; padding:27px 20px 35px; min-height:auto; }
  .login-story .brand { margin-bottom:27px; }
  .login-story h1 { font-size:29px; max-width:370px; line-height:1.6; }
  .login-story>p { font-size:13px; margin-top:10px; }
  .login-story .spatial-panel { margin-top:10px; } .login-story .spatial-host { height:210px; }
  .login-panel { margin-top:18px; padding:26px 23px; }
  .login-panel h2 { font-size:23px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .motion-control { display:none; } }
@media print {
  html,body { background:white!important; }
  .detail-side .panel { background:white!important; }
  a { color:inherit!important; }
  .spatial-panel,.business-filters,.queue-mark,.hero-actions,.metric-symbol { display:none!important; }
  .home-hero { display:block; margin:0; } .hero-copy { padding:0; max-width:none; }
  .work-queue { padding:0; border:0; background:white; } .metric { background:white!important; }
  .layout,.detail-grid { display:block; } main.content { max-width:none; padding:0; }
  .panel,.case-card,.metric,.login-panel { box-shadow:none; background:white; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}

/* Neutral surfaces and compact overview. The original cursive logo is still pending. */
:root { --ink:#242724; --muted:#626862; --canvas:#f7f8f6; --line:#dfe3dd; --accent:#9e2b25; --light:#fbe9e7; --radius:10px; --display:"Segoe UI","Microsoft YaHei",sans-serif; }
.brand { gap:10px; margin-bottom:32px; }
.brand-name { font-family:var(--display); font-size:22px; letter-spacing:0; font-weight:700; }
.mark,.mobile-brand .mark { width:24px; height:24px; border-radius:7px; background:#d6453d; position:relative; flex:none; box-shadow:none; }
.mark::after { content:""; position:absolute; inset:7px 7px auto auto; width:6px; height:6px; background:#fff; border-radius:2px; }
.brand small { color:var(--muted); letter-spacing:0; }
.sidebar,.topbar,.mobile-nav { background:#fff; border-color:var(--line); box-shadow:none; backdrop-filter:none; }
.sidebar { padding-top:25px; }
.topbar time,.desktop-title,.nav a,.person small,.quiet { color:var(--muted); }
.nav a { min-height:46px; border-radius:7px; }
.nav a.active { color:var(--accent); background:#fbeeea; box-shadow:none; }
.nav a.active::after { background:#d6453d; width:3px; }
.avatar { background:#f1f3ef; color:#495449; border-color:var(--line); }
.demo-strip { color:#616a62; background:#eef1ec; border-color:var(--line); letter-spacing:0; }
button.primary,.button.primary { background:#9e2b25; border-color:#9e2b25; box-shadow:none; }
button.primary:hover,.button.primary:hover { background:#85241f; border-color:#85241f; }
button:hover,.button:hover { background:#f4f5f1; border-color:#9ba39a; }
:focus-visible { outline-color:#9e2b25; }
input,select,textarea { border-color:#bfc6bd; box-shadow:none; }
input::placeholder,textarea::placeholder,.eyebrow { color:var(--muted); }
main.content { padding-top:24px; }
.home-hero { grid-template-columns:minmax(310px,1fr) minmax(330px,.95fr); gap:34px; margin:0 0 26px; align-items:center; }
.hero-copy { max-width:none; padding:0; }
.hero-copy h1 { font-size:30px; line-height:1.35; letter-spacing:-.02em; }
.hero-copy .hint { max-width:none; font-size:14px; margin-top:8px; }
.hero-actions { margin-top:18px; gap:22px; }
.hero-actions .button { min-height:44px; padding:8px 16px; }
.metrics { gap:0; margin:24px 0 0; padding-top:17px; border-top:1px solid var(--line); }
.metric,.metric:first-child { padding:0 18px; border:0; border-left:1px solid var(--line); background:transparent; border-radius:0; box-shadow:none; }
.metric:first-child { padding-left:0; border-left:0; }
.metric p { font-size:12px; color:var(--muted); }
.metric-value { gap:8px; }
.metric-value strong { font-size:28px; letter-spacing:-.03em; font-weight:600; margin:4px 0 0; line-height:1.4; }
.metric-value>span { color:var(--muted); font-size:11px; }
.spatial-panel { padding:0; }
.spatial-host { height:215px; }
.spatial-host::before { display:none; }
.spatial-poster { filter:none; }
.spatial-heading { color:#5e685f; font-size:11px; padding:0 8px; }
.spatial-heading>span { letter-spacing:0; }
.motion-control { background:transparent; color:#5e685f; border-color:var(--line); }
.motion-control[aria-pressed=true] { background:#eef1ec; border-color:#b7c0b3; }
.spatial-label { color:#525f54; background:#fffffff0; border-color:#d8dfd7; box-shadow:none; }
.spatial-label::after { background:#99a395; }
.spatial-label.selected { background:#9e2b25; border-color:#9e2b25; color:#fff; }
.spatial-caption { color:#687366; font-size:10px; padding-bottom:0; }
.work-queue { background:#fff; border-color:var(--line); border-radius:10px; padding:21px 24px 6px; }
.section-title { margin-bottom:14px; }
.section-title h2 { font-size:19px; }
.section-title .hint { margin:0; }
.business-filters { border-bottom:1px solid var(--line); padding-bottom:13px; margin-bottom:0; }
.business-filters button { color:#555e54; }
.business-filters button>span { color:#626d60; background:#edf1eb; }
.business-filters button[aria-pressed=true] { color:#9e2b25; background:#fbeeea; border-color:#efd5cd; }
.work-queue .case-list { gap:0; }
.work-queue .case-card { border:0; border-bottom:1px solid var(--line); border-radius:0; padding:17px 0; box-shadow:none; }
.work-queue .case-card:last-child { border-bottom:0; }
.case-card { border-color:var(--line); box-shadow:none; }
.case-card:hover { background:#fafbf8; border-color:#b7c1b1; transform:none; }
.case-card h3 { font-size:17px; font-weight:650; margin:7px 0 4px; }
.case-card .summary,.case-card .meta { color:var(--muted); }
.case-card .meta { margin-top:9px; font-size:12px; }
.case-card .amount { font-size:21px; font-weight:600; }
.tag:not(.pending):not(.needs_review):not(.approved):not(.paid):not(.rejected) { background:#edf1eb; color:#53604e; }
.panel,.detail-side .panel,.login-panel { background:#fff; border-color:var(--line); box-shadow:none; }
.file-row,.payment { border-color:var(--line); background:#fafbf9; }
.file-row a,.history-item h3 { color:#414f3c; }
.decision-box,.upload-form { background:#f3f5f0; border-color:var(--line); }
.detail-main>.panel>.row>h2,.panel-head h2 { color:var(--ink); }
.case-summary,.history-item details,.user-row { border-color:var(--line); }
#notice { background:#30382f; border-color:#596652; box-shadow:none; }
.login-story h1 { font-size:34px; line-height:1.4; letter-spacing:0; }
.login-story .brand { margin-bottom:28px; }
.login-story>p { color:var(--muted); }
.login-story .spatial-host { height:270px; }
.login-panel { border-radius:12px; }
.demo-options button { border-color:var(--line); }
.demo-options button:hover { background:#f4f6f0; border-color:#b7c1b1; }
.demo-options small { color:var(--muted); }
.content>.home-hero,.work-queue { animation:none; }
@media(max-width:1100px) and (min-width:721px) {
  .home-hero { grid-template-columns:1fr 1fr; gap:22px; }
  .metric { padding:0 10px; } .metric p { font-size:11px; }
}
@media(max-width:900px) and (min-width:721px) {
  .home-hero { grid-template-columns:1fr; }
  .home-hero .spatial-panel { max-width:430px; }
}
@media(max-width:720px) {
  .mobile-brand { color:var(--ink); font-size:19px; }
  main.content { padding-top:20px; }
  .home-hero { grid-template-columns:1fr; gap:16px; margin-bottom:18px; }
  .hero-copy h1 { font-size:27px; line-height:1.4; }
  .hero-copy .hint { font-size:13px; }
  .hero-actions { margin-top:14px; }
  .metrics { margin-top:20px; padding-top:13px; }
  .metric { padding:0 12px; }
  .metric p { font-size:11px; }
  .metric-value strong { font-size:26px; }
  .home-hero .spatial-panel { margin-top:0; }
  .spatial-host { height:190px; }
  .work-queue { padding:16px 15px 4px; }
  .section-title h2 { font-size:18px; }
  .section-title .hint { font-size:11px; }
  .business-filters { gap:2px; padding-bottom:10px; }
  .business-filters button { padding:4px 7px; }
  .case-card .amount { font-size:19px; }
  .case-card .meta { font-size:10px; }
  .mobile-nav .active { color:#9e2b25; }
  .login-story h1 { font-size:28px; }
  .login-story .spatial-host { height:210px; }
}
@media print {
  .home-hero { display:block; }
  .metrics { margin-bottom:18px; }
  .work-queue { padding:0; border:0; }
}

/* Authenticated entrance: created by JS only, always disposable. */
.workspace-entry { position:fixed; inset:0; z-index:40; pointer-events:none; display:grid; place-items:center; overflow:hidden; }
.entry-leaf { position:absolute; top:0; bottom:0; width:50.2%; background:#9e2b25; will-change:transform; }
.entry-left { left:0; border-right:1px solid #ffffff16; }
.entry-right { right:0; }
.entry-copy { position:relative; color:#fff; text-align:center; display:flex; flex-direction:column; align-items:center; padding:24px; will-change:transform,opacity; }
.entry-company { font-size:13px; letter-spacing:.14em; opacity:.8; }
.entry-word { display:block; font-family:var(--display); font-size:96px; line-height:1.35; font-weight:550; letter-spacing:-.045em; margin:12px 0; }
.entry-caption { font-size:14px; letter-spacing:.25em; opacity:.85; }
.entry-skip { position:absolute; bottom:32px; right:36px; pointer-events:auto; color:#fff; border:1px solid #ffffff70; border-radius:6px; background:#80251fcc; font-size:12px; font-weight:500; }
.entry-skip:hover { background:#6c1b16; color:#fff; border-color:#fff; }
.entry-skip:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.entry-replay { min-height:44px; font-size:12px; padding:6px 8px; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:720px) {
  .entry-word { font-size:66px; }
  .entry-company { font-size:11px; }
  .entry-skip { bottom:22px; right:20px; }
  .hero-actions { gap:12px; }
}
@media(prefers-reduced-motion:reduce) { .workspace-entry,.entry-replay { display:none!important; } }
@media print { .workspace-entry,.entry-replay { display:none!important; } }

/* Business-specific product models, one shared studio and a nearby useful action. */
.home-hero { grid-template-columns:minmax(310px,.88fr) minmax(360px,1.12fr); gap:28px; }
.home-hero .spatial-host { height:325px; }
.login-story .spatial-host { height:285px; }
.spatial-heading { padding:0 12px; }
.spatial-heading>span { font-size:12px; }
.motion-control { min-height:44px; min-width:44px; }
.spatial-label { font-size:11px; padding:4px 8px; border-radius:4px; }
.spatial-label.dim { opacity:0; }
.spatial-caption { font-size:11px; line-height:1.6; }
.module-focus { margin-top:23px; padding:16px 0 0; border-top:1px solid var(--line); min-height:114px; }
.module-kicker { font-size:13px; font-weight:650; color:var(--ink); }
.module-title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.module-title h2 { font-size:18px; font-weight:650; line-height:1.4; }
.module-title>span { font-size:11px; color:var(--muted); white-space:nowrap; }
.module-description { color:var(--muted); font-size:13px; line-height:1.8; margin:6px 0; }
.module-path { font-size:11px; color:var(--muted); line-height:1.6; }
.module-create { display:inline-flex; align-items:center; gap:26px; min-height:44px; font-size:13px; color:var(--accent); font-weight:650; text-decoration:none; }
.module-create:hover { text-decoration:underline; text-underline-offset:4px; }
.module-create>span { font-size:18px; }
@media(max-width:1100px) {
  .home-hero { grid-template-columns:minmax(270px,.95fr) minmax(300px,1.05fr); gap:20px; }
  .home-hero .spatial-host { height:295px; }
}
@media(max-width:900px) {
  .home-hero { grid-template-columns:1fr; gap:12px; }
  .home-hero .spatial-host { height:285px; }
  .module-focus { min-height:0; margin-top:18px; padding-top:13px; }
}
@media(max-width:440px) {
  .home-hero .spatial-host { height:270px; }
  .spatial-label { font-size:10px; padding:3px 6px; }
  .module-description { font-size:13px; }
  .module-title { flex-wrap:wrap; gap:3px 14px; }
}
@media print { .module-focus { display:none; } }

/* Actual approval states and next actions; no percentage implies case closure. */
.case-next { display:flex; align-items:baseline; gap:9px; font-size:12px; line-height:1.7; color:#7c483b; margin:8px 0 0; }
.case-next>span { color:var(--muted); flex-shrink:0; }
.workflow-overview { border:1px solid var(--line); background:#fff; border-radius:10px; padding:22px 24px; margin-bottom:24px; }
.workflow-title { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.workflow-title h2 { font-size:19px; line-height:1.4; }
.workflow-title>span { font-size:12px; color:var(--muted); text-align:right; }
.case-steps,.payment-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:22px 0; padding:0; gap:22px; }
.flow-step { display:flex; align-items:flex-start; gap:11px; position:relative; min-width:0; }
.flow-step:not(:last-child)::after { content:""; width:21px; height:1px; position:absolute; right:0; top:17px; background:var(--line); }
.flow-number { width:34px; height:34px; flex:none; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--muted); background:#fff; font-size:12px; font-weight:650; }
.flow-step>div { min-width:0; padding:1px 22px 0 0; }
.flow-step strong { display:block; font-size:14px; line-height:1.5; color:var(--ink); }
.flow-step>div>span { display:block; font-size:12px; line-height:1.6; color:var(--muted); margin-top:4px; overflow-wrap:anywhere; }
.flow-step.done .flow-number { color:#466451; background:#edf4ed; border-color:#cadace; }
.flow-step.current .flow-number { color:#fff; background:#9e2b25; border-color:#9e2b25; }
.flow-step.attention .flow-number { color:#805917; border-color:#e2c98e; background:#fff6df; }
.flow-step.history .flow-number { color:#466451; border-color:#cadace; }
.next-step { display:flex; justify-content:space-between; align-items:center; gap:28px; padding:18px 20px; background:#faf3ef; border-left:3px solid #ad4337; }
.next-step>div { min-width:0; }
.next-label { color:#80534a; font-size:11px; }
.next-step h3 { font-size:18px; line-height:1.5; margin:3px 0 5px; }
.next-step p { color:#5e6158; font-size:13px; line-height:1.8; max-width:720px; margin:0 0 7px; }
.next-owner { font-size:12px; color:#696357; }
.flow-jump { flex-shrink:0; min-height:44px; color:#9e2b25; border-color:#d9bdb2; background:#fff; padding:9px 13px; font-size:13px; }
.flow-jump>span { margin-left:10px; }
.approval-check { padding-bottom:12px; border-bottom:1px solid #dce1d7; margin-bottom:15px; }
.approval-check strong { font-size:14px; }
.approval-check p { font-size:12px; line-height:1.8; margin:5px 0 0; color:var(--muted); }
.execution-note { margin-top:12px; font-size:13px; line-height:1.8; color:var(--muted); padding-left:13px; border-left:2px solid var(--line); }
.decision-receipt { padding:12px 14px; border:1px solid var(--line); border-radius:6px; margin:14px 0; background:#fafbf8; }
.decision-receipt>div { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.decision-receipt strong { font-size:13px; }
.decision-receipt span,.decision-receipt p { font-size:12px; line-height:1.8; color:var(--muted); }
.decision-receipt p { margin-top:5px; overflow-wrap:anywhere; }
.decision-receipt summary { font-size:12px; margin-top:4px; }
.funds-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:18px 0 8px; padding:14px 0; border-block:1px solid var(--line); }
.funds-summary>div { min-width:0; }
.funds-summary dt { font-size:12px; line-height:1.6; color:var(--muted); }
.funds-summary dd { margin:6px 0 0; font-size:21px; line-height:1.5; color:var(--ink); overflow-wrap:anywhere; }
.funds-note { font-size:12px; color:var(--muted); line-height:1.8; margin-bottom:22px; }
.payment-steps { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; padding:14px 0; border-block:1px solid var(--line); }
.payment-steps .flow-step { display:block; }
.payment-steps .flow-number { width:27px; height:27px; font-size:11px; margin-bottom:7px; }
.payment-steps .flow-step:not(:last-child)::after { width:calc(100% - 36px); top:13px; right:0; }
.payment-steps .flow-step>div { padding:0; }
.payment-steps .flow-step strong { font-size:13px; }
.payment-steps .flow-step>div>span { font-size:11px; }
.payment-cancelled { font-size:13px; color:var(--muted); line-height:1.8; margin:14px 0; }
#case-files,#business-panel,#payments-panel,.payment,#source-upload,#payment-request { scroll-margin-top:24px; }
@media(max-width:1200px) { .detail-side { grid-row:auto; } }
@media(max-width:720px) {
  .workflow-overview { padding:19px 18px; margin-bottom:20px; }
  .workflow-title { align-items:flex-start; gap:10px; }
  .workflow-title>span { max-width:140px; line-height:1.6; }
  .case-steps { grid-template-columns:1fr; gap:19px; margin:20px 0; }
  .case-steps .flow-step>div { padding-right:0; }
  .case-steps .flow-step:not(:last-child)::after { width:1px; height:14px; left:17px; right:auto; top:39px; }
  .next-step { align-items:flex-start; flex-direction:column; gap:13px; padding:15px 14px; }
  .next-step h3 { font-size:17px; }
  .next-step .flow-jump { width:100%; justify-content:space-between; }
  .funds-summary { grid-template-columns:1fr; gap:12px; }
  .funds-summary>div { display:flex; justify-content:space-between; align-items:center; gap:14px; }
  .funds-summary dd { margin:0; font-size:20px; }
  .payment-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
  .payment-steps .flow-step:nth-child(2)::after { display:none; }
  .decision-receipt>div { gap:3px; }
}
@media print {
  .workflow-overview,.next-step,.decision-receipt { background:#fff; break-inside:avoid; }
  .workflow-overview { padding:14px; border-color:#bbb; }
  .flow-jump { display:none; }
  .case-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .case-steps .flow-step::after { display:none; }
}
.bank-start { display:grid; grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr); gap:24px; align-items:start; }
.bank-start>*,.bank-preview { min-width:0; }
.bank-start form { display:grid; gap:16px; }
.bank-mapping { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:20px; }
.bank-mapping label,.bank-mapping select { min-width:0; }
.bank-imports { list-style:none; padding:0; margin:20px 0 0; }
.bank-imports li { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:16px 0; border-top:1px solid var(--line); }
.bank-imports a { min-width:0; overflow-wrap:anywhere; text-decoration:none; }
.bank-imports a span { display:block; color:var(--muted); font-size:12px; margin-top:5px; }
.bank-imports .tag { flex-shrink:0; }
.table-scroll { overflow:auto; max-width:100%; margin-top:20px; }
.table-scroll::before { display:none; }
.bank-table { width:100%; border-collapse:collapse; font-size:14px; text-align:left; }
.bank-table th { padding:12px 14px; background:#f2f4f1; color:#58605c; font-size:12px; white-space:nowrap; }
.bank-table td { padding:16px 14px; border-bottom:1px solid var(--line); vertical-align:top; min-width:95px; max-width:340px; overflow-wrap:anywhere; }
.bank-table .number { text-align:right; white-space:nowrap; }
.bank-table small { display:block; color:var(--muted); margin-top:5px; font-size:12px; }
.bank-row-error { background:#fdf5f2; }
.bank-table .warning { display:inline-block; padding:3px 8px; margin:0; }
.bank-table .error { margin:0; }
.bank-preview form textarea { min-height:88px; }
@media(max-width:1000px) { .bank-start { grid-template-columns:1fr; } .bank-mapping { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .bank-mapping { grid-template-columns:1fr; } .bank-imports li { align-items:flex-start; } .bank-table { font-size:13px; } .bank-start { gap:16px; } }
@media(max-width:600px) { .table-scroll::before { content:'左右滑动查看完整明细'; display:block; position:sticky; left:0; color:#58605c; font-size:12px; padding-bottom:10px; } }
@media print { .bank-start { display:block; } .table-scroll { overflow:visible; } .bank-table th { background:#fff; } }

/* A saved report, a confirmed report and reconciled cash are distinct states. */
.settlement-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:18px 0; }
.settlement-grid>label,.settlement-grid input,.settlement-grid select { min-width:0; width:100%; }
.settlement-line { border:1px solid var(--line); border-radius:7px; padding:12px 18px 18px; margin:18px 0; min-width:0; }
.settlement-line legend { color:var(--muted); font-size:12px; padding:0 7px; }
.settlement-equation { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:24px; padding:6px 0 22px; border-bottom:1px solid var(--line); }
.settlement-equation>div { min-width:0; }
.settlement-equation span { display:block; color:var(--muted); font-size:13px; margin-bottom:10px; }
.settlement-equation strong { font-size:26px; overflow-wrap:anywhere; }
.settlement-equation>b { color:var(--muted); font-weight:400; }
.settlement-totals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 28px; margin:22px 0; }
.settlement-totals>div { display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; }
.settlement-totals dt { font-size:13px; color:var(--muted); }
.settlement-totals dd { margin:0; font-size:18px; overflow-wrap:anywhere; }
.settlement-totals .warning { padding:3px 7px; }
.settlement-list,.settlement-facts,.rent-months,.settlement-links,.settlement-history { list-style:none; padding:0; margin:18px 0 0; }
.settlement-list>li,.settlement-facts>li { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:20px 0; border-top:1px solid var(--line); }
.settlement-list>li>a { text-decoration:none; min-width:0; }
.settlement-list>li>div { flex-shrink:0; text-align:right; }
.settlement-list span:not(.tag),.settlement-facts span { display:block; font-size:12px; color:var(--muted); margin-top:6px; line-height:1.7; }
.settlement-list strong,.settlement-facts strong { font-size:15px; }
.settlement-list a,.settlement-facts a,.rent-months strong,.settlement-links strong,.settlement-history p { overflow-wrap:anywhere; }
.rent-months>li,.settlement-links>li,.settlement-history>li { padding:22px 0; border-top:1px solid var(--line); }
.settlement-links .inactive { color:var(--muted); }
.settlement-history .section-title { margin:0 0 8px; }
.settlement-history details { margin-top:10px; }
.settlement-json { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; padding:15px; background:#f4f5f2; }
.source-hash { display:block; overflow-wrap:anywhere; max-width:260px; font-size:11px; padding:10px 0; }
form[data-form^="settlement-"]>label { margin:16px 0; }
@media(max-width:720px) {
  .settlement-grid,.settlement-totals { grid-template-columns:1fr; }
  .settlement-equation { grid-template-columns:1fr; gap:8px; }
  .settlement-equation>div { display:flex; justify-content:space-between; align-items:center; gap:14px; }
  .settlement-equation strong { font-size:23px; }
  .settlement-equation span { margin:0; }
  .settlement-equation>b { display:none; }
  .settlement-list>li,.settlement-facts>li { flex-wrap:wrap; gap:12px; }
  .settlement-list>li>div { text-align:left; }
  .settlement-line { padding-inline:12px; }
  .settlement-links .section-title,.rent-months .section-title,.settlement-history .section-title { align-items:flex-start; flex-wrap:wrap; gap:8px; }
  .settlement-facts>li>div { min-width:0; }
}
.settlement-print { display:none; }
.daily-filters { display:grid; grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(130px,1fr)); gap:16px; margin-bottom:26px; }
.daily-filters>* { min-width:0; }
.daily-list { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.daily-list>li { min-width:0; }
.daily-list>li>a { display:block; border:1px solid var(--line); padding:22px; border-radius:8px; background:#fff; color:var(--ink); text-decoration:none; height:100%; }
.daily-list h3 { font-size:19px; margin:15px 0 9px; line-height:1.5; overflow-wrap:anywhere; }
.daily-excerpt { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--muted); font-size:13px; line-height:1.8; margin-bottom:14px; }
.daily-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; padding-top:14px; margin:14px 0 8px; border-top:1px solid var(--line); }
.daily-alert { display:inline-block; font-size:12px; color:var(--muted); line-height:1.6; }
.daily-alert.warning,.daily-alert.overdue { color:#865b1e; background:#fff4dc; border-radius:4px; padding:2px 7px; }
.daily-alert.danger { color:#9e2b25; background:#faeae5; border-radius:4px; padding:2px 7px; }
.daily-alert.unknown { color:#775f4b; }
.daily-facts>p { line-height:1.85; margin:18px 0; font-size:15px; overflow-wrap:anywhere; }
.daily-facts dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 28px; }
.daily-facts dl>div { min-width:0; }
.daily-facts dt { font-size:12px; color:var(--muted); margin-bottom:7px; }
.daily-facts dd { margin:0; font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.daily-history-note { border-left:3px solid #bb9b64; background:#faf7ee; padding:16px 19px; margin:20px 0; }
.daily-history-note p { font-size:13px; margin:6px 0 0; line-height:1.8; overflow-wrap:anywhere; }
.daily-steps { list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; margin:0 0 22px; padding:0 0 20px; border-bottom:1px solid var(--line); }
.daily-steps li { display:flex; align-items:center; gap:9px; min-width:0; }
.daily-steps span { width:28px; height:28px; display:grid; place-items:center; flex-shrink:0; border:1px solid var(--line); border-radius:50%; font-size:12px; color:var(--muted); }
.daily-steps strong { font-size:13px; }
.daily-steps .current span { background:#9e2b25; border-color:#9e2b25; color:white; }
.daily-proof { border:1px solid var(--line); border-radius:6px; margin:18px 0; padding:14px; min-width:0; }
.daily-proof legend { font-size:13px; padding:0 8px; }
.daily-proof label { display:flex; align-items:center; gap:12px; min-height:44px; overflow-wrap:anywhere; }
.daily-proof input { width:19px; height:19px; flex-shrink:0; }
form[data-form^="record-"]>label { margin:16px 0; }
@media(max-width:1000px) { .daily-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) {
  .daily-list,.daily-facts dl { grid-template-columns:1fr; }
  .daily-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px 8px; }
  .daily-steps strong { font-size:12px; }
  .daily-steps li { gap:6px; }
  .daily-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .daily-filters>label:first-child,.daily-filters>label:last-child { grid-column:1/-1; }
  .mobile-nav { overflow-x:auto; }
  .mobile-nav a,.mobile-nav button { padding-inline:3px; flex-shrink:0; }
}
@media print { .daily-filters { display:none; } .daily-list { display:block; } .daily-list>li { break-inside:avoid; margin-bottom:15px; } .daily-excerpt { display:block; overflow:visible; } .daily-history-note { background:#fff; } }
@media print { .settlement-print { display:block; } .settlement-line,.settlement-equation,.settlement-facts>li { break-inside:avoid; } .settlement-json { background:#fff; } }

/* Execution and acceptance retain the existing Prospa visual system. */
.case-steps:has(>li:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}
.lifecycle-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}
.lifecycle-steps li{display:flex;align-items:center;gap:9px;color:var(--muted);border-top:2px solid var(--line);padding-top:12px;font-size:13px}.lifecycle-steps li span{font-variant-numeric:tabular-nums}.lifecycle-steps .current{color:#a62d24;border-color:#a62d24}.lifecycle-steps .done{color:#456554;border-color:#456554}
.lifecycle-result{background:#f0f4f0;padding:18px;margin:18px 0;border-left:3px solid #456554}.lifecycle-result p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}.lifecycle-history .kv dd{overflow-wrap:anywhere;white-space:pre-wrap}
@media(max-width:760px){.case-steps:has(>li:nth-child(4)){grid-template-columns:1fr 1fr}.lifecycle-steps{grid-template-columns:1fr 1fr;gap:18px}.lifecycle-steps li{font-size:14px}}
@media print{#lifecycle-panel form,#lifecycle-panel details:has(>form){display:none!important}.lifecycle-result{break-inside:avoid}}

.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap}

.report-filters{display:grid;grid-template-columns:1.4fr 1.7fr 1fr 1fr 1fr;gap:16px}.report-filters label{margin:0}.report-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:6px}.report-table{border-collapse:collapse;font-size:13px;min-width:100%;width:max-content}.report-table th,.report-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;max-width:300px}.report-table th{background:#eff2ed;white-space:nowrap;font-weight:600}.report-table td span{display:block;white-space:pre-wrap;overflow-wrap:anywhere;min-width:85px;max-width:270px}.report-table td:first-child{white-space:nowrap}.report-table tr:last-child td{border-bottom:0}.report-table .report-number{font-variant-numeric:tabular-nums}.report-results,.report-archive{min-width:0}.report-archive>button{margin-top:18px}.report-pagination p{font-size:13px;color:var(--muted)}
@media(max-width:1000px){.report-filters{grid-template-columns:1fr 1fr}.report-filters label:first-child{grid-column:1/-1}}
@media(max-width:600px){.report-results>.row{align-items:flex-start;flex-direction:column}.report-filters{gap:12px}.report-pagination{flex-wrap:wrap}.report-results h2{font-size:18px}}
@media print{.report-table-wrap{overflow:visible}.report-table{width:100%;font-size:9px;table-layout:fixed}.report-table th,.report-table td{white-space:normal;padding:4px;overflow-wrap:anywhere}.report-table td span{min-width:0;max-width:none}.report-archive{display:none}}

.report-print{display:none}
@media print{.panel:has(>form[data-form=report-query]),.report-table-wrap,.report-pagination{display:none!important}.report-print{display:block;font-size:12pt;line-height:1.6}.report-print>p{font-size:11pt;margin:14px 0}.report-print article{break-inside:avoid;border-top:1px solid #999;margin-top:18px;padding-top:14px}.report-print h3{font-size:14pt}.report-print dl{margin:10px 0}.report-print dl>div{display:grid;grid-template-columns:34% minmax(0,1fr);gap:10px;border-bottom:1px solid #eee;padding:5px 0}.report-print dt{font-weight:600}.report-print dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.report-results{border:0;padding:0}}
