/* ═══════════════════════════════════════════════════════════════
   群鸟业财 — Vercel-inspired Design System
   Clean dark surfaces · neutral palette · purposeful accents
   Dark-first with user-toggleable light mode + glassmorphism
   ═══════════════════════════════════════════════════════════════ */
/* --- Dark mode (default) --- */
:root, [data-theme="dark"]{--bg-0:#000000;--bg-1:#0a0a0a;--bg-2:#111111;--bg-3:#171717;--glass:#111;--glass-2:#1a1a1a;--border:#222;--border-strong:#333;--fg:#fafafa;--fg-dim:#a1a1a1;--fg-mute:#666;--accent:#3b82f6;--accent-2:#60a5fa;--accent-strong:#2563eb;--gold:#f59e0b;--green:#22c55e;--rose:#ef4444;--violet:#8b5cf6;--orange:#f97316;--shadow:0 1px 3px rgba(0,0,0,0.4);--shadow-lg:0 4px 12px rgba(0,0,0,0.5);--radius:8px;--radius-sm:6px;--radius-lg:12px;--font-display:"Geist","Noto Sans SC",ui-sans-serif,system-ui,sans-serif;--font-body:"Geist","Noto Sans SC",ui-sans-serif,system-ui,sans-serif;--font-mono:"Geist Mono","JetBrains Mono",ui-monospace,monospace;--sidebar-w:240px;--topbar-bg:rgba(0,0,0,0.8);--sidebar-bg:var(--bg-1);--nav-hover-bg:rgba(255,255,255,0.03);--nav-active-bg:rgba(255,255,255,0.06);--switch-pill-bg:#fff;--switch-pill-fg:#000;--input-focus-shadow:0 0 0 3px rgba(59,130,246,0.08);--logo-bg:#1a1a1a;--logo-inner:var(--bg-1);--glass-blur:12px;--glass-saturate:180%;--glass-bg:color-mix(in srgb,var(--bg-2) 65%,transparent);--glass-border:color-mix(in srgb,var(--border) 50%,transparent);--glass-shadow:0 1px 3px rgba(0,0,0,0.4),0 8px 24px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.03);--body-gradient:
    radial-gradient(ellipse 600px 400px at 15% 20%,rgba(59,130,246,0.06),transparent),
    radial-gradient(ellipse 500px 350px at 85% 80%,rgba(245,158,11,0.04),transparent),
    radial-gradient(ellipse 400px 300px at 50% 50%,rgba(249,115,22,0.03),transparent)}
/* --- Light mode --- */
[data-theme="light"]{--bg-0:#ffffff;--bg-1:#fafafa;--bg-2:#f4f4f5;--bg-3:#e4e4e7;--glass:#f4f4f5;--glass-2:#e4e4e7;--border:#e4e4e7;--border-strong:#d4d4d8;--fg:#0a0a0a;--fg-dim:#52525b;--fg-mute:#a1a1aa;--accent:#3b82f6;--accent-2:#2563eb;--accent-strong:#1d4ed8;--gold:#d97706;--green:#16a34a;--rose:#dc2626;--violet:#7c3aed;--orange:#ea580c;--shadow:0 1px 3px rgba(0,0,0,0.06);--shadow-lg:0 4px 12px rgba(0,0,0,0.08);--topbar-bg:rgba(255,255,255,0.85);--sidebar-bg:var(--bg-1);--nav-hover-bg:rgba(0,0,0,0.03);--nav-active-bg:rgba(0,0,0,0.06);--switch-pill-bg:#000;--switch-pill-fg:#fff;--input-focus-shadow:0 0 0 3px rgba(59,130,246,0.12);--logo-bg:#e4e4e7;--logo-inner:var(--bg-1);--glass-blur:12px;--glass-saturate:180%;--glass-bg:color-mix(in srgb,var(--bg-2) 72%,transparent);--glass-border:color-mix(in srgb,var(--border) 50%,transparent);--glass-shadow:0 1px 3px rgba(0,0,0,0.04),0 8px 24px rgba(0,0,0,0.03),inset 0 1px 0 rgba(255,255,255,0.5);--body-gradient:
    radial-gradient(ellipse 600px 400px at 15% 20%,rgba(59,130,246,0.04),transparent),
    radial-gradient(ellipse 500px 350px at 85% 80%,rgba(245,158,11,0.03),transparent),
    radial-gradient(ellipse 400px 300px at 50% 50%,rgba(249,115,22,0.02),transparent)}
/* Theme toggle transition */
*{transition-property:background-color,border-color,color,box-shadow;transition-duration:.2s;transition-timing-function:ease}
@media(prefers-reduced-motion:reduce){
  *{transition-duration:.01ms!important}
}
/* Theme toggle button */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);color:var(--fg);cursor:pointer;transition:all .2s;flex:0 0 36px}
.theme-toggle:hover{background:color-mix(in srgb,var(--accent) 12%,var(--bg-2));border-color:color-mix(in srgb,var(--accent) 30%,transparent)}
.theme-toggle svg{width:18px;height:18px}
/* ============== Logo 主题适配 ============== */
/* 暗色模式：白色鸟身 + 金色喙 + 深色背景（默认，已由 SVG 渐变定义） */
/* 亮色模式：反转鸟身为深色 + 浅色背景 */
[data-theme="light"] #flBg stop:nth-child(1){stop-color:#f4f4f5}
[data-theme="light"] #flBg stop:nth-child(2){stop-color:#e4e4e7}
[data-theme="light"] #flBg stop:nth-child(3){stop-color:#d4d4d8}
[data-theme="light"] #flGt stop:nth-child(1){stop-color:#3b82f6;stop-opacity:.12}
[data-theme="light"] #flGt stop:nth-child(2){stop-color:#3b82f6;stop-opacity:0}
[data-theme="light"] #flGv stop:nth-child(1){stop-color:#8b5cf6;stop-opacity:.10}
[data-theme="light"] #flGv stop:nth-child(2){stop-color:#8b5cf6;stop-opacity:0}
[data-theme="light"] #flBody stop:nth-child(1){stop-color:#0a0a0a}
[data-theme="light"] #flBody stop:nth-child(2){stop-color:#27272a}
[data-theme="light"] #flBody stop:nth-child(3){stop-color:#52525b}
/* 金色喙在亮暗模式下都可见，保持不变 */
/* 亮色模式 drop-shadow 调淡 */
[data-theme="light"] #flDs{--ds-color:rgba(0,0,0,.15)}
*{box-sizing:border-box;margin:0;padding:0}
.material-symbols-rounded{font-family:"Material Symbols Rounded";font-weight:normal;font-style:normal;font-size:1em;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-feature-settings:"liga";max-width:1.2em;overflow:hidden}
.nav-item>.material-symbols-rounded{width:18px;max-width:18px;height:18px;overflow:hidden;font-size:18px;flex-shrink:0}
html,body{height:100%}
html{scrollbar-gutter:stable}
body{font-family:var(--font-body);color:var(--fg);background:var(--bg-0);overflow-x:hidden;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}
.bg-stage{position:fixed;inset:0;z-index:-2;background:var(--bg-0)}
.bg-stage::after{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--body-gradient)}
.bg-grid{display:none}
.orb{display:none}
.shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);position:fixed;top:0;left:0;bottom:0;z-index:20;background:var(--sidebar-bg);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;padding:16px 12px;transition:transform .3s}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 16px;margin-bottom:4px;border-bottom:1px solid var(--border)}
.logo{width:36px;height:36px;border-radius:8px;position:relative;background:var(--logo-bg);border:1px solid var(--border-strong);display:grid;place-items:center;flex-shrink:0}
.logo::after{content:"";position:absolute;inset:2px;border-radius:6px;background:var(--logo-inner)}
.logo svg{position:relative;z-index:1;width:18px;height:18px}
.brand-text .t1{font-family:var(--font-display);font-weight:600;font-size:14px;letter-spacing:-0.01em;line-height:1.2}
.brand-text .t2{font-family:var(--font-mono);font-size:9px;color:var(--fg-mute);letter-spacing:0.08em;text-transform:uppercase;margin-top:3px}
.nav{flex:1;display:flex;flex-direction:column;gap:2px;margin-top:8px}
.nav-group{font-family:var(--font-mono);font-size:9px;color:var(--fg-mute);letter-spacing:0.08em;text-transform:uppercase;padding:12px 10px 6px}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--fg-dim);cursor:pointer;font-size:13px;font-weight:500;transition:background .15s,color .15s;position:relative;border:1px solid transparent}
.nav-item:hover{color:var(--fg);background:var(--nav-hover-bg)}
.nav-item.active{color:var(--fg);background:var(--nav-active-bg)}
.nav-item svg{width:18px;height:18px;flex-shrink:0;opacity:.8}
.nav-item.active svg{opacity:1}
.nav-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;font-family:var(--font-mono);min-width:18px;text-align:center}
.sidebar-foot{padding:10px 8px 4px;border-top:1px solid var(--border);font-size:10px;color:var(--fg-mute);font-family:var(--font-mono);text-align:center;letter-spacing:0.02em}
.main{flex:1;margin-left:var(--sidebar-w);min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;background:var(--topbar-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--glass-border);flex-wrap:wrap}
.page-title{display:flex;align-items:center;gap:12px}
.page-title h1{font-family:var(--font-display);font-weight:600;font-size:17px;letter-spacing:-0.01em}
.page-title .crumb{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.topbar-right{display:flex;align-items:center;gap:10px}
.role-switch{position:relative;display:flex;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:6px;padding:3px}
.role-switch button{position:relative;z-index:2;background:transparent;border:0;color:var(--fg-dim);font-family:var(--font-body);font-size:12px;font-weight:500;padding:6px 14px;cursor:pointer;border-radius:4px;transition:color .2s;display:flex;align-items:center;gap:6px}
.role-switch button.active{color:var(--fg)}
.role-switch .pill{position:absolute;top:3px;bottom:3px;border-radius:4px;z-index:1;transition:all .3s cubic-bezier(.4,.0,.2,1);background:var(--switch-pill-bg)}
.view-switcher{display:flex;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:6px;padding:2px;gap:2px;margin-left:auto}
/* 信息维护紧凑列表：单元格单行省略，每条记录高度不超过两行 */
.md-list{table-layout:fixed;width:100%}
.md-list th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md-list td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;padding-top:7px;padding-bottom:7px}
.md-list td:first-child{max-width:220px}
.md-list td:nth-child(2){max-width:160px}
.md-list td:nth-child(3){max-width:240px}
.md-list td:nth-child(4){max-width:180px}
.md-list td:nth-child(5){max-width:180px}
.md-list td:nth-child(6){max-width:200px}
.md-list td:nth-child(7){max-width:120px}
.md-list td:last-child{max-width:110px;text-align:right}
.md-list tr[onclick]{cursor:pointer}
.md-list tr[onclick]:hover td{background:var(--bg-3)}
.view-switcher button{background:transparent;border:0;color:var(--fg-dim);cursor:pointer;padding:5px;border-radius:4px;display:grid;place-items:center;transition:all .15s}
.view-switcher button.active{background:var(--switch-pill-bg);color:var(--switch-pill-fg)}
.view-switcher button svg{width:15px;height:15px}
.menu-toggle{display:none;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--fg);width:36px;height:36px;border-radius:6px;cursor:pointer;align-items:center;justify-content:center}
.content{padding:24px 24px 80px;max-width:1400px;width:100%;margin:0 auto}
@media(max-width:980px){
  :root{--sidebar-w:0px}
  .sidebar{transform:translateX(-100%);width:240px}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0}
  .menu-toggle{display:flex}
  .content{padding:16px 14px 60px}
  .topbar{padding:12px 14px}
}
body.settlement-standalone .sidebar,body.settlement-standalone .menu-toggle{display:none!important}
body.settlement-standalone .main{margin-left:0;width:100%}
body.settlement-standalone .content{max-width:none}
.statbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:20px}

/* ══════════════════ 组件：统计卡 / 徽标 / 标签 / 提示条 ══════════════════ */
.stat{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius);padding:16px;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}
.stat.k2::before{background:var(--gold)}
.stat.k3::before{background:var(--violet)}
.stat.k4::before{background:var(--green)}
.stat.k5::before{background:var(--orange)}
.stat .label{font-size:10px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase;font-family:var(--font-mono)}
.stat .value{font-family:var(--font-mono);font-weight:700;font-size:22px;margin-top:6px;letter-spacing:-0.02em}
.stat .value.gold{color:var(--gold)}
.stat .value.cyan{color:var(--accent-2)}
.stat .value.green{color:var(--green)}
.stat .value.violet{color:var(--violet)}
.stat .sub{font-size:10px;color:var(--fg-mute);margin-top:4px;font-family:var(--font-mono)}
.grid{display:grid;gap:14px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2-1{grid-template-columns:1fr 1fr}
@media(max-width:860px){
  .grid.cols-2,.grid.cols-3,.grid.cols-2-1{grid-template-columns:1fr}
}
.panel{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-lg);overflow:hidden}
.panel-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-title{display:flex;align-items:center;gap:8px}
.panel-title .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.panel-title h3{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:-0.01em}
.panel-title .sub{font-size:10px;color:var(--fg-mute);font-family:var(--font-mono);margin-left:4px;letter-spacing:0.06em}
.panel-body{padding:18px 20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:10px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;font-family:var(--font-mono)}
.field .req{color:var(--accent)}
.input,.textarea,.select{width:100%;background:var(--bg-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--fg);font-family:var(--font-body);font-size:13px;padding:10px 12px;transition:border-color .15s,background .15s;outline:none}
select:not([multiple]):not([size]){-webkit-appearance:none;appearance:none;padding-right:38px!important;background-image:linear-gradient(45deg,transparent 50%,var(--fg-mute) 50%),linear-gradient(135deg,var(--fg-mute) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}
select:not([multiple]):not([size]):disabled{cursor:not-allowed;opacity:.72}
[data-theme="dark"] select{color-scheme:dark}
[data-theme="light"] select{color-scheme:light}
select option{background:var(--bg-1);color:var(--fg)}
select::-ms-expand{display:none}
@media(forced-colors:active){
  select:not([multiple]):not([size]){-webkit-appearance:auto;appearance:auto;padding-right:12px!important;background-image:none}
}
.textarea{resize:vertical;min-height:66px}
.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);background-color:var(--bg-0);box-shadow:var(--input-focus-shadow)}
.input.mono{font-family:var(--font-mono);letter-spacing:0.01em}
.amount-wrap{position:relative}
.amount-wrap::before{content:"¥";position:absolute;left:12px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);color:var(--gold);font-weight:700;font-size:14px}
.amount-wrap .input{padding-left:26px;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--gold)}
.amount-wrap.income::before{content:"¥";color:var(--green)}
.amount-wrap.income .input{color:var(--green)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:520px){
  .row2,.row3{grid-template-columns:1fr}
}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-weight:500;font-size:13px;padding:8px 16px;transition:background .15s,color .15s,border-color .15s;letter-spacing:-0.01em;white-space:nowrap}
.btn:focus-visible{outline:0;box-shadow:0 0 0 2px var(--bg-0),0 0 0 4px var(--accent)}
.btn:disabled{opacity:.4;pointer-events:none}
.btn-primary{background:var(--switch-pill-bg);color:var(--switch-pill-fg)}
.btn-primary:hover{background:#e5e5e5}
.btn-gold{background:var(--gold);color:#000}
.btn-gold:hover{background:#d97706}
.btn-green{background:var(--green);color:#000}
.btn-green:hover{background:#16a34a}
.btn-ghost{background:transparent;border:1px solid var(--border-strong);color:var(--fg-dim)}
.btn-ghost:hover{color:var(--fg);border-color:var(--border-strong);background:var(--nav-hover-bg)}
.btn-rose{background:transparent;border:1px solid rgba(239,68,68,0.3);color:var(--rose)}
.btn-rose:hover{background:rgba(239,68,68,0.08);border-color:var(--rose)}
.btn-sm{padding:6px 12px;font-size:12px;border-radius:5px}
.btn-full{width:100%}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tab{padding:6px 12px;border-radius:6px;font-size:12px;color:var(--fg-dim);cursor:pointer;border:1px solid transparent;transition:all .15s;font-family:var(--font-mono);letter-spacing:0.01em}
.tab:hover{color:var(--fg);background:var(--nav-hover-bg)}
.tab.active{color:var(--fg);background:rgba(255,255,255,0.06);border-color:var(--border-strong)}
.tab .cnt{font-size:10px;opacity:.6;margin-left:3px}
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-2)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{background:rgba(255,255,255,0.02);text-align:left;padding:10px 14px;font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase;font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap}

/* ══════════════════ 组件：表格与列表 ══════════════════ */
td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
tr:hover td{background:var(--nav-hover-bg)}
tr:last-child td{border-bottom:0}
.td-mono{font-family:var(--font-mono);font-size:12px}
.td-amt{font-family:var(--font-mono);font-weight:700;white-space:nowrap}
.td-amt.in{color:var(--green)}
.td-amt.out{color:var(--gold)}
.row-clickable{cursor:pointer}
.act-grp{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.act-grp .copy-block{font-size:12px;padding:6px 12px}
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;font-size:10px;font-family:var(--font-mono);letter-spacing:0.04em;text-transform:uppercase;font-weight:600}
.tag::before{content:"";width:5px;height:5px;border-radius:50%}
.tag-payment{background:rgba(245,158,11,0.1);color:var(--gold)}
.tag-payment::before{background:var(--gold)}
.tag-receipt{background:rgba(34,197,94,0.1);color:var(--green)}
.tag-receipt::before{background:var(--green)}
.tag-pending{background:rgba(245,158,11,0.1);color:var(--gold)}
.tag-pending::before{background:var(--gold)}
.tag-submitted{background:rgba(96,165,250,0.1);color:var(--accent-2)}
.tag-submitted::before{background:var(--accent-2)}
.tag-approved{background:rgba(34,197,94,0.1);color:var(--green)}
.tag-approved::before{background:var(--green)}
.tag-rejected{background:rgba(239,68,68,0.1);color:var(--rose)}
.tag-rejected::before{background:var(--rose)}
.tag-mute{background:rgba(255,255,255,0.04);color:var(--fg-dim)}
.tag-mute::before{background:var(--fg-mute)}
.task-list{display:flex;flex-direction:column;gap:8px}
.task{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:all .15s;cursor:pointer;position:relative;overflow:hidden}
.task:hover{border-color:var(--border-strong);background:var(--bg-3)}
.task .head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.task .payee{font-family:var(--font-display);font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.task .payee .id{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);background:rgba(255,255,255,0.04);padding:2px 6px;border-radius:4px;letter-spacing:0.01em}
.task .amt{font-family:var(--font-mono);font-weight:700;font-size:16px;white-space:nowrap}
.task .amt.out{color:var(--gold)}
.task .amt.in{color:var(--green)}
.task .meta{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--fg-dim);align-items:center}
.task .meta .k{color:var(--fg-mute);font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:0.04em;margin-right:3px}
.task .remark{margin-top:8px;font-size:12px;color:var(--fg-dim);padding-top:8px;border-top:1px solid var(--border)}

/* ══════════════════ 组件：空态 / 面板 / 表单控件 / 模态 / Toast ══════════════════ */
.empty{padding:48px 20px;text-align:center;color:var(--fg-mute);font-size:13px}
.empty svg{width:40px;height:40px;opacity:0.3;margin:0 auto 12px;display:block}
.section-label{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);letter-spacing:0.1em;text-transform:uppercase;margin:16px 0 10px;display:flex;align-items:center;gap:8px}
.section-label::after{content:"";flex:1;height:1px;background:var(--border)}
.notif{display:flex;gap:10px;padding:12px 14px;background:var(--bg-2);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:background .15s}
.notif:hover{background:var(--bg-3)}
.notif.unread{border-left-color:var(--gold);background:rgba(245,158,11,0.03)}
.notif .ico{width:28px;height:28px;border-radius:6px;background:rgba(59,130,246,0.08);display:grid;place-items:center;color:var(--accent);flex-shrink:0;font-size:14px}
.notif.unread .ico{background:rgba(245,158,11,0.08);color:var(--gold)}
.notif .body{flex:1;min-width:0}
.notif .msg{font-size:12px;line-height:1.5}
.notif .msg b{color:var(--accent);font-weight:600}
.notif.unread .msg b{color:var(--gold)}
.notif .time{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);margin-top:3px}
.timeline{position:relative;padding-left:22px}
.timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:1px;background:var(--border-strong)}
.tl-item{position:relative;padding-bottom:16px}
.tl-item::before{content:"";position:absolute;left:-19px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--bg-1);border:2px solid var(--accent)}
.tl-item.violet::before{border-color:var(--violet)}
.tl-item.gold::before{border-color:var(--gold)}
.tl-item.green::before{border-color:var(--green)}
.tl-item .t{font-size:12px;line-height:1.5}
.tl-item .t b{font-weight:600}
.tl-item .time{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);margin-top:3px}
.bank-card{position:relative;border-radius:var(--radius-lg);padding:18px;overflow:hidden;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f1a2e 100%);border:1px solid var(--border-strong)}
.bank-card .chip{position:relative;z-index:1;width:34px;height:26px;border-radius:4px;background:linear-gradient(135deg,#f59e0b,#d97706);margin-bottom:14px}
.bank-card .row{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.bank-card .k{font-family:var(--font-mono);font-size:9px;color:rgba(255,255,255,0.4);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:3px}
.bank-card .v{font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:0.01em;color:#fff}
.bank-card .v.big{font-size:16px}
.bank-card .copy-btn{flex-shrink:0;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);color:#fff;font-size:10px;padding:4px 8px;border-radius:4px;cursor:pointer;font-family:var(--font-mono);transition:all .15s;display:flex;align-items:center;gap:4px}
.bank-card .copy-btn:hover{background:rgba(59,130,246,0.2);border-color:var(--accent)}
.bank-card .copy-btn.copied{background:rgba(34,197,94,0.2);border-color:var(--green);color:var(--green)}
.upload-zone{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:24px 16px;text-align:center;cursor:pointer;transition:all .15s;background:var(--bg-2)}
.upload-zone:hover{border-color:var(--accent);background:rgba(59,130,246,0.03)}
.upload-zone.has-file{border-style:solid;border-color:var(--green);background:rgba(34,197,94,0.03)}
.upload-zone .icon{width:38px;height:38px;margin:0 auto 8px;color:var(--fg-mute)}
.upload-zone:hover .icon{color:var(--accent)}
.upload-zone .t{font-size:13px;color:var(--fg-dim)}
.upload-zone .t b{color:var(--accent)}
.upload-zone .s{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);margin-top:4px}
.voucher-preview{margin-top:10px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);position:relative;background:#000;cursor:zoom-in;transition:transform .15s}
.voucher-preview:hover{transform:scale(1.005)}
.voucher-preview img{width:100%;display:block;max-height:260px;object-fit:contain}
.voucher-preview .scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:scan 1.6s ease-in-out infinite}
.viewer-mask{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.95);display:none;align-items:center;justify-content:center;padding:48px;cursor:zoom-out}
.viewer-mask.show{display:flex}
.viewer-mask img{max-width:100%;max-height:100%;border-radius:var(--radius)}
.viewer-close{position:absolute;top:20px;right:20px;width:38px;height:38px;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-2);color:#fff;cursor:pointer;font-size:22px;display:grid;place-items:center;transition:all .15s}
.viewer-close:hover{background:var(--bg-3);transform:rotate(90deg)}
@keyframes scan{
  0%{top:0}
  50%{top:calc(100% - 2px)}
  100%{top:0}
}
.ocr-box{margin-top:12px;background:rgba(59,130,246,0.03);border:1px solid rgba(59,130,246,0.12);border-radius:var(--radius);padding:14px 16px}
.ocr-box .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ocr-box .head .t{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;color:var(--accent);letter-spacing:0.06em;text-transform:uppercase}
.ocr-box .head .pulse{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:pulse 1.5s infinite}
@keyframes pulse{
  0%,100%{opacity:1}
  50%{opacity:0.4}
}
.ocr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
@media(max-width:520px){
  .ocr-grid{grid-template-columns:1fr}
}
.ocr-item{display:flex;flex-direction:column;gap:2px}
.ocr-item .k{font-family:var(--font-mono);font-size:9px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.ocr-item .v{font-family:var(--font-mono);font-size:12px;color:var(--fg);font-weight:500}
.ocr-item .v.amt{color:var(--gold);font-weight:700}
.modal-mask{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,0.8);display:none;align-items:center;justify-content:center;padding:18px;animation:fade .2s}
.modal-mask.show{display:flex}
.modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--bg-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:popIn .2s ease}
.modal.sm{width:min(480px,100%)}
.modal.lg{width:min(1100px,100%);overflow:auto;display:flex;flex-direction:column}
@keyframes fade{
  from{opacity:0}
  to{opacity:1}
}
@keyframes popIn{
  from{opacity:0;transform:scale(.98)}
  to{opacity:1;transform:scale(1)}
}
.modal-head{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;background:var(--bg-1);z-index:2}
.modal-head h3{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-0.01em}
.modal-head .x{width:30px;height:30px;border-radius:6px;background:transparent;border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;display:grid;place-items:center;transition:all .15s;flex-shrink:0}
.modal-head .x:hover{color:var(--rose);border-color:rgba(239,68,68,0.3);background:rgba(239,68,68,0.05)}
.modal-body{padding:20px 22px}
.toast-wrap{position:fixed;top:16px;right:16px;z-index:99;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:var(--bg-2);border:1px solid var(--border-strong);border-left:2px solid var(--accent);border-radius:var(--radius);padding:10px 14px;font-size:12px;box-shadow:var(--shadow-lg);min-width:220px;animation:toastIn .25s ease;display:flex;align-items:center;gap:8px;pointer-events:auto}
.toast.success{border-left-color:var(--green)}
.toast.warn{border-left-color:var(--gold)}
.toast.error{border-left-color:var(--rose)}
.toast .ico{width:18px;height:18px;flex-shrink:0}
@keyframes toastIn{
  from{opacity:0;transform:translateX(30px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes toastOut{
  to{opacity:0;transform:translateX(30px)}
}
.bar-chart{display:flex;flex-direction:column;gap:8px}
.bar-row{display:grid;grid-template-columns:80px 1fr 80px;gap:10px;align-items:center;font-size:12px}
.bar-row .lbl{color:var(--fg-dim);font-family:var(--font-mono);font-size:10px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-row .bar-track{height:20px;background:var(--bg-1);border-radius:4px;overflow:hidden;position:relative}
.bar-row .bar-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.4,.0,.2,1);position:relative;min-width:2px}
.bar-row .bar-fill.out{background:var(--gold)}
.bar-row .bar-fill.in{background:var(--green)}
.bar-row .val{font-family:var(--font-mono);font-size:11px;font-weight:600;white-space:nowrap}
.bar-row .val.out{color:var(--gold)}
.bar-row .val.in{color:var(--green)}
.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut-svg{position:relative;width:130px;height:130px;flex-shrink:0}
.donut-svg svg{transform:rotate(-90deg)}
.donut-svg .center{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.donut-svg .center .v{font-family:var(--font-mono);font-weight:700;font-size:17px}
.donut-svg .center .k{font-size:9px;color:var(--fg-mute);font-family:var(--font-mono);letter-spacing:0.06em;text-transform:uppercase}
.donut-legend{display:flex;flex-direction:column;gap:7px;flex:1;min-width:130px}
.legend-item{display:flex;align-items:center;gap:8px;font-size:12px}
.legend-item .sw{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.legend-item .lbl{color:var(--fg-dim);flex:1}
.legend-item .v{font-family:var(--font-mono);font-weight:600;font-size:11px}
.hint{font-size:11px;color:var(--fg-mute);margin-top:6px;display:flex;align-items:center;gap:6px;line-height:1.5}
.hint svg{width:13px;height:13px;flex-shrink:0}
.pill-mini{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10px;font-family:var(--font-mono);letter-spacing:0.01em}
.pill-mini.entity{background:rgba(59,130,246,0.1);color:var(--accent-2);border:1px solid rgba(59,130,246,0.2)}
.pill-mini.customer{background:rgba(34,197,94,0.1);color:var(--green);border:1px solid rgba(34,197,94,0.2)}
.pill-mini.supplier{background:rgba(245,158,11,0.1);color:var(--gold);border:1px solid rgba(245,158,11,0.2)}
.pill-mini.both{background:rgba(139,92,246,0.1);color:var(--violet);border:1px solid rgba(139,92,246,0.2)}
.divider{height:1px;background:var(--border);margin:14px 0}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#333;border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:#444}
.flex{display:flex;align-items:center;gap:8px}
.flex-between{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mb0{margin-bottom:0}
.mt8{margin-top:8px}
.text-dim{color:var(--fg-dim)}
.text-mute{color:var(--fg-mute)}
.text-mono{font-family:var(--font-mono)}

/* ══════════════════ 登录页 ══════════════════ */
.startup-page{position:fixed;inset:0;z-index:31;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg-0);color:var(--fg-dim);padding:24px;text-align:center}
.startup-page p{margin:0;font-size:14px}
.startup-page [hidden]{display:none!important}
.startup-spinner{width:24px;height:24px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:startup-spin .8s linear infinite}
.startup-page.failed .startup-spinner{display:none}
@keyframes startup-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .startup-spinner{animation:none}
}
.login-page{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg-0)}
.login-card{width:min(380px,100%);background:var(--bg-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:32px 28px;box-shadow:var(--shadow-lg);text-align:center;animation:popIn .3s ease}
.login-logo{display:flex;justify-content:center;margin-bottom:16px}
.login-logo .logo{border-color:#333}
.login-title{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:-0.02em}
.login-sub{font-family:var(--font-mono);font-size:11px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase;margin-top:6px;margin-bottom:24px}
.login-form{text-align:left}
.login-form .field label{font-size:10px}
.login-error{color:var(--rose);font-size:12px;min-height:16px;margin-top:4px}
.btn-feishu{width:270px;max-width:100%;background:#3370ff;color:#fff;box-shadow:0 8px 24px -10px rgba(51,112,255,.75)}
.btn-feishu:hover{background:#2860e1;transform:translateY(-1px)}
.feishu-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:11px;margin:2px 0 14px}
.feishu-qr-box{width:270px;height:270px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:#fff;display:grid;place-items:center;position:relative;box-shadow:0 0 0 1px rgba(51,112,255,.14),0 20px 48px -20px rgba(51,112,255,.38)}
.feishu-qr-box::after{content:"";position:absolute;inset:0;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);pointer-events:none}
.feishu-qr-box .qr-loading{color:#999;font-size:11px;font-family:var(--font-mono)}
.feishu-qr-tip{font-size:11.5px;color:var(--fg-dim);display:flex;align-items:center;gap:6px;letter-spacing:.01em}
.feishu-qr-tip .material-symbols-rounded{font-size:15px;color:#3370ff}
.login-divider{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:16px 0 0;padding:0;color:var(--fg-mute);font:10px var(--font-mono);letter-spacing:.08em;background:none;border:0;cursor:pointer;user-select:none;transition:color .15s}
.login-divider::before,.login-divider::after{content:"";height:1px;background:var(--border);flex:1}
.login-divider .material-symbols-rounded{font-size:14px;transition:transform .2s ease}
.login-divider:hover{color:var(--fg-dim)}
.login-divider.open .material-symbols-rounded{transform:rotate(180deg)}
.login-hint{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);font-size:11px;color:var(--fg-mute);line-height:2}
.login-hint code{font-family:var(--font-mono);background:rgba(255,255,255,0.04);padding:2px 5px;border-radius:3px;color:var(--accent-2);font-size:11px}
.login-hint .hint-row{display:flex;align-items:center;gap:6px;justify-content:center}
.login-foot{margin-top:14px;font-family:var(--font-mono);font-size:10px;color:var(--fg-mute)}
.login-foot.online{color:var(--green)}
.conn-status{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);letter-spacing:0.02em;padding:5px 10px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border)}
.conn-status .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.conn-status.online .dot{background:var(--green)}
.conn-status.online .txt{color:var(--green)}
.user-chip{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 10px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border)}
.user-chip .avatar{width:30px;height:30px;border-radius:6px;background:var(--accent);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:13px;color:#fff;flex-shrink:0;overflow:hidden}
.user-chip .avatar img{width:100%;height:100%;display:block;object-fit:cover}
.user-chip .avatar.cashier{background:var(--gold);color:#000}
.user-chip .user-info{line-height:1.2}
.user-chip .user-name{font-size:12px;font-weight:600}
.user-chip .user-role{font-family:var(--font-mono);font-size:9px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase;margin-top:2px}
.btn-logout{background:transparent;border:1px solid var(--border);color:var(--fg-dim);width:28px;height:28px;border-radius:5px;cursor:pointer;display:grid;place-items:center;transition:all .15s;flex-shrink:0}
.btn-logout:hover{color:var(--rose);border-color:rgba(239,68,68,0.3);background:rgba(239,68,68,0.05)}
.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.entity-card{position:relative;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .15s;overflow:hidden}
.entity-card:hover{border-color:var(--border-strong);background:var(--bg-3)}
.entity-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px}
.entity-card.own::before{background:var(--accent)}
.entity-card.supplier::before{background:var(--gold)}
.entity-card.customer::before{background:var(--green)}
.entity-card.both::before{background:var(--violet)}
.entity-card .ec-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.entity-card .ec-name{font-family:var(--font-display);font-weight:600;font-size:14px;line-height:1.4;flex:1;min-width:0;word-break:break-all}
.entity-card .ec-badge{flex-shrink:0;font-size:9px;font-weight:600;padding:2px 8px;border-radius:4px;font-family:var(--font-mono);letter-spacing:0.04em}
.ec-badge.own{background:rgba(59,130,246,0.1);color:var(--accent-2);border:1px solid rgba(59,130,246,0.2)}
.ec-badge.supplier{background:rgba(245,158,11,0.1);color:var(--gold);border:1px solid rgba(245,158,11,0.2)}
.ec-badge.customer{background:rgba(34,197,94,0.1);color:var(--green);border:1px solid rgba(34,197,94,0.2)}
.ec-badge.both{background:rgba(139,92,246,0.1);color:var(--violet);border:1px solid rgba(139,92,246,0.2)}
.entity-card .ec-tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}
.entity-card .ec-chip{font-size:10px;padding:2px 8px;border-radius:4px;background:rgba(255,255,255,0.03);border:1px solid var(--border);color:var(--fg-dim)}
.entity-card .ec-chip.short{color:var(--violet);border-color:rgba(139,92,246,0.2);background:rgba(139,92,246,0.05);font-weight:600}
.entity-card .ec-tax{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);display:flex;align-items:center;gap:7px;padding:7px 9px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:6px;margin-bottom:8px}
.entity-card .ec-tax .k{font-size:9px;color:var(--fg-mute);letter-spacing:0.06em;flex-shrink:0}
.entity-card .ec-meta{font-size:11px;color:var(--fg-mute);line-height:1.6}
.entity-card .ec-foot{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.bank-group{margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-2)}
.bank-group-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,255,255,0.02);border-bottom:1px solid var(--border)}
.bank-group-head .g-name{font-family:var(--font-display);font-weight:600;font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bank-group-head .g-cnt{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute)}
.bank-acct{display:flex;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.bank-acct:last-child{border-bottom:0}
.bank-acct .ba-main{flex:1;min-width:220px}
.bank-acct .ba-holder{font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bank-acct .ba-no{font-family:var(--font-mono);font-size:13px;color:var(--accent-2);letter-spacing:0.01em;margin-top:3px;font-weight:600}
.bank-acct .ba-sub{font-size:11px;color:var(--fg-dim);margin-top:3px;display:flex;gap:12px;flex-wrap:wrap}
.bank-acct .ba-sub .k{color:var(--fg-mute);font-family:var(--font-mono);font-size:9px;margin-right:3px}
.copy-block{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;background:rgba(59,130,246,0.08);border:1px solid rgba(59,130,246,0.2);color:var(--accent-2);font-size:11px;font-weight:600;padding:6px 12px;border-radius:5px;cursor:pointer;transition:all .15s;font-family:var(--font-body)}
.copy-block:hover{background:rgba(59,130,246,0.15);border-color:var(--accent)}
.copy-block.copied{background:rgba(34,197,94,0.1);border-color:var(--green);color:var(--green)}
.copy-block svg{width:12px;height:12px}
.fin-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
@media(max-width:900px){
  .fin-layout{grid-template-columns:1fr}
}
.party-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;position:relative;overflow:hidden}
.party-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px}
.party-card.payer::before{background:var(--gold)}
.party-card.payee::before{background:var(--accent)}
.party-card .pc-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.party-card .pc-title{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;font-weight:600}
.party-card.payer .pc-title{color:var(--gold)}
.party-card.payee .pc-title{color:var(--accent-2)}
.party-card .pc-info{margin-top:8px;padding:9px 11px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:6px;font-size:11px;line-height:1.8;color:var(--fg-dim)}
.party-card .pc-info .k{color:var(--fg-mute);font-family:var(--font-mono);font-size:9px;display:inline-block;width:54px}
.party-card .pc-info .mono{font-family:var(--font-mono)}
.payee-block{position:relative;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px}
.payee-block::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);border-radius:2px 0 0 2px}
.payee-block .pb-del{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--rose);cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center}
.payee-block .pb-del:hover{background:rgba(239,68,68,0.08);border-color:rgba(239,68,68,0.3)}
.perm-table td,.perm-table th{text-align:center}
.perm-table td:first-child,.perm-table th:first-child{text-align:left}
.perm-check{appearance:none;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border-strong);background:var(--bg-1);cursor:pointer;position:relative;transition:all .15s;vertical-align:middle}
.perm-check:checked{background:var(--accent);border-color:var(--accent)}
.perm-check:checked::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.perm-check:disabled{opacity:.4;cursor:not-allowed}
.user-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-family:var(--font-mono)}
.user-status.on{color:var(--green)}
.user-status.off{color:var(--fg-mute)}
.user-admin-tabs{display:flex;align-items:center;gap:4px;margin-bottom:14px;padding:5px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);overflow-x:auto}
.user-admin-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 16px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--fg-dim);font:500 12px var(--font-body);white-space:nowrap;cursor:pointer;transition:all .15s}
.user-admin-tab:hover{color:var(--fg);background:var(--nav-hover-bg)}
.user-admin-tab.active{color:#fff;border-color:color-mix(in srgb,var(--accent) 42%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--bg-1))}
.user-admin-tab:focus-visible{outline:2px solid var(--accent-2);outline-offset:1px}
.user-admin-tab .material-symbols-rounded{font-size:16px}
.user-admin-panel[hidden]{display:none}

/* ══════════════════ 飞书通讯录人员卡与组织树 ══════════════════ */
.feishu-directory-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.feishu-org-tree{display:flex;flex-direction:column;gap:8px;min-width:0}
.feishu-department{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--bg-2) 82%,transparent);overflow:hidden}
.feishu-department>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;cursor:pointer;list-style:none;user-select:none;color:var(--fg)}
.feishu-department>summary::-webkit-details-marker{display:none}
.feishu-department>summary:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.feishu-department>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.feishu-dept-chevron{font-size:17px;color:var(--fg-mute);transition:transform .16s;flex:0 0 auto}
.feishu-department[open]>summary .feishu-dept-chevron{transform:rotate(90deg);color:var(--accent-2)}
.feishu-dept-icon{width:30px;height:30px;display:grid;place-items:center;flex:0 0 30px;border:1px solid rgba(59,130,246,.2);border-radius:7px;background:rgba(59,130,246,.08);color:var(--accent-2);font-size:17px}
.feishu-dept-copy{min-width:0;flex:1}
.feishu-dept-copy strong{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feishu-dept-copy small{display:block;margin-top:3px;color:var(--fg-mute);font:9.5px var(--font-mono)}
.feishu-dept-count{flex:0 0 auto;padding:2px 7px;border:1px solid var(--border);border-radius:999px;background:var(--bg-1);color:var(--fg-dim);font:10px var(--font-mono)}
.feishu-dept-body{padding:0 12px 12px 48px}
.feishu-dept-section-label{margin:2px 0 8px;color:var(--fg-mute);font:9px var(--font-mono);letter-spacing:.06em;text-transform:uppercase}
.feishu-member-grid{display:flex;flex-direction:column;gap:4px}
.feishu-person-card{display:flex;align-items:center;gap:9px;min-width:0;min-height:42px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-1)}
.feishu-person-avatar{position:relative;width:30px;height:30px;display:grid;place-items:center;overflow:hidden;flex:0 0 30px;border:1px solid rgba(59,130,246,.22);border-radius:7px;background:linear-gradient(145deg,var(--accent),var(--violet));color:#fff;font:600 11px var(--font-display)}
.feishu-person-avatar img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;background:var(--bg-2)}
.feishu-person-copy{display:grid;grid-template-columns:minmax(90px,140px) minmax(130px,1fr) auto;align-items:center;gap:8px;min-width:0;flex:1}
.feishu-person-name{display:flex;align-items:center;gap:6px;min-width:0}
.feishu-person-name strong{min-width:0;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feishu-person-email{min-width:0;color:var(--fg-mute);font:9.5px var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feishu-person-meta{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;white-space:nowrap}
.feishu-person-meta .pill-mini{font-size:9px;padding:1px 6px}
.feishu-local-account{display:flex;align-items:center;gap:5px;flex:0 1 auto;min-width:155px;padding-left:10px;border-left:1px solid var(--border);color:var(--fg-mute);font-size:9.5px;white-space:nowrap}
.feishu-local-account>.material-symbols-rounded{font-size:14px;flex:0 0 auto}
.feishu-dept-children{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-left:12px;border-left:1px solid var(--border)}
.feishu-dept-empty{padding:7px 0;color:var(--fg-mute);font-size:10.5px}
@media(max-width:820px){
  .feishu-person-card{align-items:flex-start;flex-wrap:wrap}
  .feishu-person-copy{grid-template-columns:minmax(90px,.75fr) minmax(120px,1.25fr)}
  .feishu-person-meta{grid-column:1/-1}
  .feishu-local-account{margin-left:39px;min-width:0;padding-left:0;border-left:0}
}
@media(max-width:620px){
  .user-admin-tabs{padding:4px}
  .user-admin-tab{flex:1;min-width:max-content;padding:7px 10px}
  .feishu-dept-body{padding:0 8px 10px 20px}
  .feishu-dept-children{padding-left:7px}
  .feishu-department>summary{padding:9px 8px;gap:7px}
  .feishu-dept-icon{width:28px;height:28px;flex-basis:28px}
  .feishu-person-copy{grid-template-columns:minmax(80px,.8fr) minmax(100px,1.2fr);gap:5px 7px}
  .feishu-person-meta{gap:4px}
  .feishu-local-account{margin-left:39px;white-space:normal}
}
#content:has(> .settlement-shell){max-width:none}
.settlement-shell{width:100%;max-width:1760px;margin-inline:auto;display:flex;flex-direction:column;gap:18px}
/* ============== 独立项目目录 ============== */
.project-directory{display:flex;flex-direction:column;gap:14px}
.project-directory-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--glass-border));border-radius:var(--radius);background:linear-gradient(112deg,color-mix(in srgb,var(--accent) 12%,var(--bg-2)),color-mix(in srgb,var(--violet) 7%,var(--bg-2)));overflow:hidden}
.project-directory-hero::after{content:"";position:absolute;right:-38px;top:-76px;width:220px;height:220px;border-radius:50%;background:color-mix(in srgb,var(--accent) 9%,transparent);pointer-events:none}
.project-directory-title{position:relative;z-index:1;display:flex;align-items:center;gap:14px;min-width:0}
.project-directory-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:10px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent-2)}
.project-directory-title h2{font:600 18px var(--font-display)}
.project-directory-title p{margin-top:5px;font-size:11.5px;line-height:1.65;color:var(--fg-dim)}
.project-directory-actions{position:relative;z-index:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.project-directory-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.project-directory-stat{padding:14px 15px;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow)}
.project-directory-stat span{font:9px var(--font-mono);letter-spacing:.07em;color:var(--fg-mute);text-transform:uppercase}
.project-directory-stat b{display:block;margin-top:7px;font:700 21px var(--font-mono);color:var(--accent-2)}
.project-directory-stat small{display:block;margin-top:4px;font-size:10px;color:var(--fg-mute)}
.project-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.project-source-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.project-source-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--accent-2)}
.project-source-copy{min-width:0}
.project-source-copy b{display:block;font-size:12.5px}
.project-source-copy small{display:block;margin-top:4px;font:9.5px var(--font-mono);color:var(--fg-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-source-state{display:flex;align-items:center;gap:6px;font:9.5px var(--font-mono);color:var(--fg-mute);white-space:nowrap}
.project-source-state.online{color:var(--green)}
.project-source-state.failed{color:var(--rose)}
.project-directory-panel{border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow);overflow:hidden}
.project-directory-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 190px auto;gap:9px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--glass-border)}
.project-directory-search{position:relative}
.project-directory-search .material-symbols-rounded{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--fg-mute);pointer-events:none}
.project-directory-search .input{padding-left:36px}
.project-directory-count{font:10px var(--font-mono);color:var(--fg-mute);text-align:right;white-space:nowrap}
.project-directory-table-wrap{overflow-x:auto}
.project-directory-table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.project-directory-table{width:100%;min-width:980px;border-collapse:collapse}
.project-directory-table th{padding:10px 14px;border-bottom:1px solid var(--border);font:9px var(--font-mono);letter-spacing:.06em;color:var(--fg-mute);text-align:left;text-transform:uppercase}
.project-directory-table td{padding:13px 14px;border-bottom:1px solid var(--border);font-size:11.5px;color:var(--fg-dim);vertical-align:middle}
.project-directory-table tbody tr:last-child td{border-bottom:0}
.project-directory-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 3%,transparent)}
.project-directory-name{min-width:230px}
.project-directory-name b{display:block;font:600 12.5px var(--font-display);color:var(--fg)}
.project-directory-name small,.project-directory-cell small{display:block;margin-top:4px;font:9.5px var(--font-mono);color:var(--fg-mute)}
.project-source-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid var(--border);border-radius:999px;background:var(--bg-1);font:9.5px var(--font-mono);color:var(--fg-sub);white-space:nowrap}
.project-source-badge.feishu{border-color:color-mix(in srgb,var(--green) 30%,var(--border));background:color-mix(in srgb,var(--green) 7%,var(--bg-1));color:var(--green)}
.project-directory-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.project-directory-tag{padding:2px 5px;border-radius:4px;background:color-mix(in srgb,var(--accent) 7%,transparent);font:9px var(--font-mono);color:var(--fg-mute)}
.project-directory-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--glass-border);font:10px var(--font-mono);color:var(--fg-mute)}
.project-directory-pages{display:flex;align-items:center;gap:6px}
.project-directory-pages .btn{min-width:32px}
.project-directory-empty{padding:42px 20px;text-align:center;color:var(--fg-mute);font-size:11.5px}
@media(max-width:920px){
  .project-directory-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-directory-toolbar{grid-template-columns:1fr 180px}
  .project-directory-count{grid-column:1/-1;text-align:left}
}
@media(max-width:620px){
  .project-directory-hero{align-items:flex-start;flex-direction:column}
  .project-directory-actions{justify-content:flex-start}
  .project-directory-overview{grid-template-columns:1fr 1fr}
  .project-directory-toolbar{grid-template-columns:1fr}
  .project-directory-count{grid-column:auto}
  .project-directory-pagination{align-items:flex-start;flex-direction:column}
  .settlement-project-select-note{align-items:flex-start;flex-wrap:wrap}
  .settlement-project-select-note span:first-child{min-width:0;overflow-wrap:anywhere}
}

/* ══════════════════ 结算中心：布局、入口、轮播、列表、结项汇算 ══════════════════ */
.settlement-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}
.settlement-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.settlement-rail{position:sticky;top:88px;display:flex;flex-direction:column;gap:12px;min-width:0}
.settlement-section{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius);min-width:0}
.settlement-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--glass-border);background:color-mix(in srgb,var(--bg-3) 20%,transparent)}
.settlement-section-title{display:flex;align-items:baseline;gap:10px;min-width:0}
.settlement-section-title strong{font-family:var(--font-display);font-size:14px;font-weight:600}
.settlement-section-title span{font-size:11px;color:var(--fg-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settlement-table{width:100%;overflow-x:auto}
.settlement-table-head,.settlement-line{display:grid;grid-template-columns:34px minmax(120px,.9fr) minmax(150px,1.15fr) minmax(180px,1.5fr) 130px 132px 98px 68px;gap:8px;align-items:center;min-width:980px;padding:10px 14px}
.settlement-table-head{font:9px var(--font-mono);letter-spacing:0.06em;color:var(--fg-mute);text-transform:uppercase;border-bottom:1px solid var(--border)}
.settlement-line{border-bottom:1px solid var(--border)}
.settlement-line:last-child{border-bottom:0}
.settlement-line .line-no{font:11px var(--font-mono);color:var(--fg-mute);text-align:center}
.settlement-line .input,.settlement-line .select{padding:7px 8px;border-radius:5px;font-size:12px;min-width:0}
.settlement-line .money-input{font-family:var(--font-mono);font-weight:700;color:var(--gold);text-align:right}
.settlement-line .line-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}
.settlement-line .line-actions button{width:28px;height:28px;padding:0;border-radius:5px}
.settlement-line-extra{grid-column:2 / -1;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;padding-top:2px}
.settlement-line-extra .input{font-size:11px}
.settlement-add{display:flex;align-items:center;justify-content:center;gap:7px;margin:10px 14px 14px;height:42px;border:1px dashed var(--border-strong);border-radius:6px;color:var(--accent-2);background:color-mix(in srgb,var(--accent) 3%,transparent);cursor:pointer;font-size:12px;transition:.15s}
.settlement-add:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:var(--accent)}
.settlement-summary{padding:16px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius)}
.settlement-summary h3{font-family:var(--font-display);font-size:13px;font-weight:600;margin-bottom:14px}
.settlement-total-label{font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.settlement-total{font:700 22px var(--font-mono);color:var(--gold);margin:6px 0 14px}
.st-summary-brief{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;text-align:left}
.st-summary-brief .sb-title{font:600 13.5px var(--font-display);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-summary-brief .sb-meta{font-size:10.5px;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-board-stats{display:flex;flex-direction:column;gap:2px;padding:10px 0 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.st-bs-head,.st-bs-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 74px 74px;gap:6px;align-items:baseline;font-size:10.5px;color:var(--fg-dim)}
.st-bs-head{padding-bottom:6px;font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:.05em;text-transform:uppercase}
.st-bs-head span:not(:first-child),.st-bs-row span:not(:first-child){text-align:right}
.st-bs-row .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-bs-row .groups{color:var(--fg-mute);font-family:var(--font-mono)}
.st-bs-row .amount{font-family:var(--font-mono);font-weight:600;color:var(--gold);font-variant-numeric:tabular-nums}
.st-bs-row .invoice{font-family:var(--font-mono);color:var(--fg-dim);font-variant-numeric:tabular-nums}
.st-bs-row.total{padding-top:6px;border-top:1px dashed var(--border);color:var(--fg)}
.st-bs-row.total .name{font-weight:600}
.st-bs-row.total .amount{color:var(--gold)}
.st-bs-note{font-size:9px;color:var(--fg-mute);margin-top:5px}
.settlement-checks{display:flex;flex-direction:column;gap:9px;padding:12px 0}
.settlement-check{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--fg-dim)}
.settlement-check .ok{color:var(--green)}
.settlement-check .warn{color:var(--gold)}
.settlement-note{font-size:10px;line-height:1.6;color:var(--fg-mute);background:color-mix(in srgb,var(--gold) 5%,transparent);border:1px solid color-mix(in srgb,var(--gold) 15%,transparent);border-radius:6px;padding:9px 10px;margin-bottom:10px}
.settlement-status{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:5px;font:10px var(--font-mono);background:color-mix(in srgb,var(--gold) 10%,transparent);color:var(--gold)}
.settlement-status.approved{background:color-mix(in srgb,var(--green) 10%,transparent);color:var(--green)}
.settlement-status.changes_requested{background:color-mix(in srgb,var(--rose) 10%,transparent);color:var(--rose)}
.settlement-list-card{display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(4,minmax(100px,.65fr)) auto;gap:12px;align-items:center;padding:13px 15px;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:var(--glass-shadow);margin-bottom:8px;cursor:pointer;transition:.15s}
.settlement-list-card:hover{border-color:var(--border-strong);background:var(--bg-3)}
.settlement-list-card .project-name{font-family:var(--font-display);font-weight:600;font-size:13px}
.settlement-list-card .meta{font-size:10px;color:var(--fg-mute);margin-top:3px;font-family:var(--font-mono)}
.settlement-source{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:36px;font:10px var(--font-mono);color:var(--fg-mute);white-space:nowrap}
.settlement-source.online{color:var(--green)}
.source-dot{width:7px;height:7px;border-radius:50%;background:var(--fg-mute);box-shadow:0 0 8px color-mix(in srgb,var(--fg-mute) 50%,transparent)}
.settlement-source.online .source-dot{background:var(--green);box-shadow:0 0 8px color-mix(in srgb,var(--green) 60%,transparent)}
.settlement-center{display:flex;flex-direction:column;gap:14px}
.settlement-carousel{position:relative;min-height:138px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--glass-border));border-radius:var(--radius);background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 14%,var(--bg-2)),color-mix(in srgb,var(--violet) 7%,var(--bg-2)));box-shadow:var(--glass-shadow);overflow:hidden}
.settlement-carousel::after{content:"";position:absolute;right:-52px;top:-76px;width:210px;height:210px;border-radius:50%;background:color-mix(in srgb,var(--accent) 10%,transparent);pointer-events:none}
.settlement-carousel-viewport{position:relative;min-height:138px}
.settlement-carousel-slide{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;min-height:138px;padding:16px 20px 44px}
.settlement-carousel-slide[hidden]{display:none}
.settlement-carousel-slide.active{animation:settlement-carousel-in .22s ease-out}
.settlement-carousel-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;color:var(--accent-2);background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent)}
.settlement-carousel-copy{min-width:0}
.settlement-carousel-kicker{display:flex;align-items:center;gap:8px;margin-bottom:5px;font:9px var(--font-mono);letter-spacing:.08em;color:var(--fg-mute);text-transform:uppercase}
.settlement-carousel-copy h2{display:flex;align-items:center;gap:8px;font:600 15px var(--font-display)}
.settlement-carousel-copy p{max-width:980px;margin-top:5px;font-size:11.5px;line-height:1.65;color:var(--fg-dim)}
.settlement-carousel-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent-2);font:700 10px var(--font-mono)}
.settlement-carousel-meta{position:relative;z-index:1;text-align:right;font:9px var(--font-mono);line-height:1.6;letter-spacing:.06em;color:var(--fg-mute);white-space:nowrap}
.settlement-carousel-worklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin-top:7px}
.settlement-carousel-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;height:27px;padding:0 9px;border:1px solid var(--border);border-radius:6px;background:color-mix(in srgb,var(--bg-1) 62%,transparent);color:var(--fg-dim);font-size:10.5px;text-align:left;cursor:pointer}
.settlement-carousel-item:hover{border-color:var(--border-strong);color:var(--fg);background:var(--bg-3)}
.settlement-carousel-item span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settlement-carousel-item .material-symbols-rounded{font-size:14px;color:var(--fg-mute)}
.settlement-carousel-empty{font-size:11px;line-height:1.6;color:var(--fg-mute)}
.settlement-carousel-controls{position:absolute;z-index:2;left:20px;right:20px;bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.settlement-carousel-buttons{display:flex;align-items:center;gap:5px}
.settlement-carousel-nav,.settlement-carousel-dot{border:0;cursor:pointer}
.settlement-carousel-nav{width:26px;height:26px;padding:0;border-radius:6px;display:grid;place-items:center;background:color-mix(in srgb,var(--bg-1) 62%,transparent);color:var(--fg-dim)}
.settlement-carousel-nav:hover{background:var(--bg-3);color:var(--fg)}
.settlement-carousel-nav .material-symbols-rounded{font-size:16px}
.settlement-carousel-progress{display:flex;align-items:center;gap:3px}
.settlement-carousel-dot{position:relative;width:24px;height:24px;padding:0;background:transparent;transition:width .15s}
.settlement-carousel-dot::after{content:"";position:absolute;left:3px;right:3px;top:10px;height:3px;border-radius:999px;background:var(--border-strong)}
.settlement-carousel-dot.active{width:36px;background:transparent}
.settlement-carousel-dot.active::after{background:var(--accent-2)}
.settlement-carousel-nav:focus-visible,.settlement-carousel-dot:focus-visible,.settlement-carousel-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.settlement-carousel-position{min-width:38px;text-align:right;font:9px var(--font-mono);color:var(--fg-mute)}
.settlement-carousel-announcer{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes settlement-carousel-in{
  from{opacity:.35;transform:translateX(8px)}
  to{opacity:1;transform:translateX(0)}
}
.settlement-worklist{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);box-shadow:var(--glass-shadow)}
.settlement-worklist-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}
.settlement-worklist-title-main{display:flex;align-items:center;gap:8px}
.settlement-worklist-title-main .material-symbols-rounded{font-size:18px;color:var(--accent)}
.settlement-worklist-title-main h3{font:600 13.5px var(--font-display)}
.settlement-worklist-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent-2);font:700 10px var(--font-mono)}
.settlement-worklist-sub{font-size:10.5px;color:var(--fg-mute)}
.settlement-worklist-group+.settlement-worklist-group{border-top:1px dashed var(--border)}
.settlement-worklist-head{display:flex;align-items:center;gap:7px;padding:9px 16px 5px;font-size:11.5px;color:var(--fg-dim)}
.settlement-worklist-head .material-symbols-rounded{font-size:15px;color:var(--accent-2)}
.settlement-worklist-head b{font-weight:600}
.settlement-worklist-rows{display:grid;gap:5px;padding:0 12px 10px}
.settlement-worklist-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--bg-1) 62%,transparent);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}
.settlement-worklist-row:hover{border-color:var(--accent);background:var(--bg-3)}
.settlement-worklist-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.settlement-worklist-copy{flex:1;min-width:0;display:grid;gap:2px}
.settlement-worklist-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--fg)}
.settlement-worklist-copy small{font-size:10px;color:var(--fg-mute)}
.settlement-worklist-action{display:inline-flex;align-items:center;gap:2px;padding:4px 9px;border-radius:6px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent-2);font-size:10.5px;font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.settlement-worklist-row:hover .settlement-worklist-action{background:var(--accent);color:var(--bg-1)}
.settlement-worklist-action .material-symbols-rounded{font-size:14px}
.settlement-worklist-group-empty{padding:4px 16px 12px;font-size:11px;color:var(--fg-mute)}
.settlement-worklist-all-empty{display:flex;align-items:center;gap:8px;padding:16px}
.settlement-worklist-all-empty .material-symbols-rounded{font-size:18px;color:var(--green)}
.settlement-entry-sections{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);grid-template-areas:"special project" "urgent crossbook";gap:14px;align-items:stretch}
.settlement-last-entry-bar{display:flex;align-items:center;gap:10px;margin:12px 0 2px;padding:9px 14px;border:1px dashed var(--border);border-radius:10px;background:var(--bg-2);font-size:11.5px}
.settlement-last-entry-bar .material-symbols-rounded:first-child{font-size:17px;color:var(--accent)}
.settlement-last-entry-bar b{color:var(--accent)}
.settlement-last-entry-bar .btn{margin-left:auto}
.settlement-mine-strip{display:flex;gap:10px;overflow-x:auto;padding:2px;margin-bottom:12px}
.st-entry-launch-grid.st-entry-launch-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.st-entry-launch-grid.st-entry-launch-row.has-project{grid-template-columns:repeat(4,minmax(0,1fr))}

/* 启动页三区（2026-08-27）：须知 → 基础信息 → 草稿与发起记录，视觉分区 */
.st-entry-zone{border:1px solid var(--border);border-radius:12px;background:var(--bg-2);padding:16px 18px 18px}
.st-entry-zone-head{display:flex;align-items:center;gap:8px;margin-bottom:13px}
.st-entry-zone-head .material-symbols-rounded{font-size:18px;color:var(--accent)}
.st-entry-zone-head b{font:600 13px var(--font-display)}
.st-entry-zone-head small{font-size:10px;color:var(--fg-mute)}
.st-entry-zone.zone-notice{border-color:color-mix(in srgb,var(--gold) 28%,var(--border));background:color-mix(in srgb,var(--gold) 5%,var(--bg-2))}
.st-entry-zone.zone-notice .st-entry-zone-head .material-symbols-rounded{color:var(--gold)}
.st-entry-zone.zone-notice ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:11.5px;line-height:1.65;color:var(--fg-dim)}
.st-entry-zone.zone-notice li::marker{color:var(--gold)}
.st-entry-zone.zone-basic .st-entry-footer{margin-top:14px}
.st-entry-zone.zone-records{border-style:dashed;background:color-mix(in srgb,var(--bg-2) 55%,transparent)}
@media(max-width:1080px){.st-entry-launch-grid.st-entry-launch-row,.st-entry-launch-grid.st-entry-launch-row.has-project{grid-template-columns:repeat(2,minmax(0,1fr))}}
.st-entry-notice{margin-top:14px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2)}
.st-entry-notice b{font-size:11.5px}
.st-entry-notice ul{margin:8px 0 0;padding-left:18px;display:grid;gap:5px}
.st-entry-notice li{font-size:11px;color:var(--fg-dim);line-height:1.55}
.st-entry-draft-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.st-draft-row{display:grid;grid-template-columns:72px 96px 110px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;background:var(--bg-1);border-bottom:1px solid var(--border);cursor:pointer;font-size:11.5px}
.st-draft-row:last-child{border-bottom:0}
.st-draft-row:hover{background:var(--bg-2)}
.st-draft-chip{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 8px;border-radius:999px;background:rgba(245,176,79,.12);color:var(--gold);font-size:10.5px;font-weight:600}
.st-draft-chip.returned{background:rgba(248,113,113,.12);color:var(--rose)}
.st-draft-money{text-align:right}
.st-draft-meta{color:var(--fg-mute);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settlement-mine-strip:empty{display:none}
.settlement-mine-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2);cursor:pointer;text-align:left;min-width:220px;transition:border-color .15s,transform .15s}
.settlement-mine-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.settlement-mine-card .material-symbols-rounded{font-size:18px;color:var(--accent)}
.settlement-mine-card .settlement-mine-copy{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.settlement-mine-card .settlement-mine-copy b{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settlement-mine-card .settlement-mine-copy small{color:var(--fg-mute);font-size:10px}
.settlement-mine-card.returned{border-color:rgba(239,68,68,.4)}
.settlement-mine-card.returned .material-symbols-rounded{color:var(--gold)}
.st-autosave-hint{font-size:10px;color:var(--fg-mute);margin-top:6px;min-height:13px;line-height:1.4}
.st-group-v2 .st-group-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;padding:10px 0;border-bottom:1px dashed var(--border)}
.st-group-v2 .st-group-row:last-of-type{border-bottom:0}
.st-group-v2 .st-group-row-main{align-items:end;flex-wrap:wrap;padding-top:12px;border-bottom:0}
.st-group-v2 .st-group-row-main .field{margin:0;min-width:0;flex:1 1 180px}
.st-account-spacer{flex:1;min-width:0}
/* 组内三段式（2026-08-28）：结算说明 → 结算设置 → 发票信息 */
.st-group-section{display:flex;flex-direction:column;gap:8px}
.st-group-section+.st-group-section{border-top:1px dashed var(--border);padding-top:10px}
.st-group-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.st-group-section-title span{font:600 12px var(--font-display)}
.st-group-section-title small{font-size:10px;color:var(--fg-mute)}
/* 结算说明大框 v2（2026-08-28 用户确认）：标题左上+导入日记账右上同行；框内三行文字明细，
   底部附件区与结算金额区等高对齐（金额贴右下） */
.st-desc-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.st-desc-title{font:600 12px var(--font-display)}
.st-desc-box{border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-1);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.st-desc-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.st-desc-box .st-desc-input{display:block;width:100%;min-height:120px;border:0;border-radius:0;background:transparent;padding:16px;font-size:13px;line-height:1.75;resize:vertical;box-shadow:none}
.st-desc-box .st-desc-input:focus{outline:0}
.st-desc-foot{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-2)}
.st-desc-attach{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:7px;align-items:flex-start;justify-content:flex-start}
.st-desc-attach-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.st-desc-hint{font-size:10px;color:var(--fg-mute)}
.st-desc-chips .inv-empty{font-size:10.5px}
.st-desc-amount{flex:0 0 auto;margin-left:auto;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end}
.st-desc-amount .st-line-amount{flex:0 0 auto;margin-left:0}
.st-desc-amount .field{margin:0}
.st-desc-amount .field label{font-size:9.5px;letter-spacing:.04em}
.st-desc-amount .money-input{width:180px;height:40px;text-align:right;background:var(--bg-1);font-size:16px}
.st-serial{font:600 10px var(--font-mono);color:var(--fg-mute);letter-spacing:.05em;padding:3px 8px;border:1px solid var(--border);border-radius:6px;white-space:nowrap}
.st-import-journal-btn{border-style:dashed;color:var(--accent-2)}
.st-import-journal-btn:hover{border-style:solid}
.st-import-journal-btn .spin{width:11px;height:11px;border:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-top-color:var(--accent);border-radius:50%;animation:stAiSpin .7s linear infinite;display:inline-block}

.sselect{position:relative;min-width:0;flex:1}
.sselect-btn{width:100%;height:36px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-2);color:var(--fg);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.sselect-btn:disabled{opacity:.6;cursor:not-allowed}
.sselect.disabled .sselect-btn{opacity:.6;cursor:not-allowed}
.sselect-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sselect-label.placeholder{color:var(--fg-mute)}
.sselect-caret{flex:0 0 auto;color:var(--fg-mute);font-size:11px}
 .sso-avatar{width:18px;height:18px;flex:0 0 18px;border-radius:50%;object-fit:cover;background:var(--bg-3)}
.sselect-option .sso-avatar{width:22px;height:22px;flex-basis:22px}
.sselect-option .sso-text{min-width:0;flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis}
.sso-avatar-slot:empty{display:none}
.sselect-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:80;max-height:min(380px,70vh);overflow:hidden;display:none;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-1);box-shadow:0 12px 30px rgba(0,0,0,.14)}
.sselect-menu.up{top:auto;bottom:calc(100% + 4px)}
.sselect-menu>*{flex:0 0 auto}
.sselect.open .sselect-menu{display:flex}
.ss-opts .sselect-option,.ss-opts .ss-empty{flex:0 0 auto}
.sselect-option{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:8px 10px;border:0;border-radius:6px;background:transparent;color:var(--fg-dim);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;overflow:hidden}
.sselect-option small{display:block;color:var(--fg-mute);font-size:10px}
.sselect-option:hover:not(:disabled){background:rgba(59,130,246,.10);color:var(--fg)}
.sselect-option.selected{background:rgba(59,130,246,.16);color:var(--fg)}
.sselect-option:disabled{opacity:.45;cursor:not-allowed}
/* hidden 属性兜底：display:flex 属于 author 样式，会盖过 UA 的 [hidden]{display:none}，导致搜索过滤后选项仍显示 */
.sselect-option[hidden]{display:none}
.st-group-v2 .st-line-amount .input{text-align:right}
.st-inv-area{margin:10px 0 0;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--fg) 4%,transparent)}
.st-inv-inner{padding:10px 12px 4px}
.st-inv-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.st-inv-hint{font-size:11px;color:var(--fg-mute)}
.st-iou-inline{display:inline-flex;align-items:center;gap:8px}
.st-iou-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-dim);cursor:pointer}
.st-iou-check input{accent-color:var(--accent);width:15px;height:15px}
.st-iou-days{width:auto;height:32px;padding:0 8px;font-size:12px}
.st-inv-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px;min-height:22px}
/* 新建合作方的「外部自然人结算」切换（docs/08 §3.3）：默认公司主体，切换后按个人建档。 */
.st-party-type-toggle{margin-bottom:12px}
.st-party-type-toggle.active{color:var(--gold);border-color:var(--gold)}
/* 外部自然人结算行：内部结算中转与结算对象同行并排（docs/08 §3.3），公户提示单行精简。 */
.st-target-relay{flex-wrap:wrap}
.st-target-relay .sselect{flex:1 1 0;min-width:0}
.st-target-relay .sselect:first-of-type{flex:1.6 1 0}
.st-relay-hint{flex-basis:100%;margin:2px 0 0}
/* 对象列原本按单下拉定宽（宽屏 flex:1 1 180px / 紧凑 176px），出现中转下拉时放宽，避免人名截断。 */
.st-group-v2 .st-group-row-main .st-target-field:has(.st-target-relay){flex:2.6 1 380px}
.st-group-compact .st-group-row-main:has(.st-target-relay) .st-target-field{width:auto}
.inv-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;min-height:26px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-2);font-size:10px}
.inv-chip .no{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-chip .rm{font-size:12px}
.inv-chip .ok{color:var(--green)}
.inv-chip .rm{border:0;background:none;color:var(--fg-mute);cursor:pointer;font-size:13px;line-height:1}
.inv-empty{font-size:11px;color:var(--fg-mute)}
.st-inv-footer{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:4px 12px 10px}
.st-verify-out{font-size:11px;line-height:1.5;min-height:14px;flex:1}
.settlement-center-group{min-width:0;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow);padding:13px}
.settlement-center-group[data-settlement-entry-section="special"]{grid-area:special}
.settlement-center-group[data-settlement-entry-section="project"]{grid-area:project}
.settlement-center-group[data-settlement-entry-section="urgent"]{grid-area:urgent;border-color:color-mix(in srgb,var(--gold) 26%,var(--glass-border))}
.settlement-center-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.settlement-center-title{display:flex;align-items:baseline;gap:8px;min-width:0}
.settlement-center-title h3{font:600 14px var(--font-display);white-space:nowrap}
.settlement-center-title span{font:9px var(--font-mono);letter-spacing:.07em;color:var(--fg-mute);white-space:nowrap}
.settlement-center-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.settlement-initiator-settings{flex-shrink:0;gap:5px;white-space:nowrap}
.settlement-initiator-settings .material-symbols-rounded{font-size:16px}
.settlement-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.settlement-entry-grid.special .settlement-entry:last-child:nth-child(odd){grid-column:1 / -1}
/* 入口卡片（2026-08-27 极简化）：图标 + 标题 + 状态一行，整卡可点 */
.settlement-entry{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 15px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2);overflow:hidden;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,background .15s}
.settlement-entry::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--entry-color,var(--accent))}
.settlement-entry:hover{border-color:var(--entry-color,var(--accent));background:color-mix(in srgb,var(--entry-color,var(--accent)) 4%,var(--bg-2))}
.settlement-entry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.settlement-entry.post{--entry-color:var(--violet)}
.settlement-entry.external{--entry-color:var(--gold)}
.settlement-entry.reconciliation{--entry-color:var(--green)}
.settlement-entry.special{--entry-color:var(--green)}
.settlement-entry.special-business{--entry-color:var(--violet)}
.settlement-entry.special-research{--entry-color:var(--accent-2)}
.settlement-entry.urgent-entry{--entry-color:var(--gold);border-color:color-mix(in srgb,var(--gold) 34%,var(--border));background:color-mix(in srgb,var(--gold) 5%,var(--bg-2))}
.settlement-entry-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;display:grid;place-items:center;color:var(--entry-color,var(--accent));background:color-mix(in srgb,var(--entry-color,var(--accent)) 12%,var(--bg-1));border:1px solid color-mix(in srgb,var(--entry-color,var(--accent)) 26%,var(--border))}
.settlement-entry-icon .material-symbols-rounded{font-size:23px;font-variation-settings:"FILL" 0,"wght" 550,"GRAD" 0,"opsz" 24}
.settlement-entry-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.settlement-entry-copy h3{font:600 13px var(--font-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settlement-entry-copy .entry-state{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:10px var(--font-mono);color:var(--fg-mute)}
.settlement-entry-go{flex:0 0 auto;font-size:16px;color:var(--fg-mute);transition:color .15s,transform .15s}
.settlement-entry:hover .settlement-entry-go{color:var(--entry-color,var(--accent));transform:translateX(2px)}
.settlement-entry-grid.urgent{grid-template-columns:1fr}

/* 跨项目速记（2026-09）：费用板块 × 月份 横向代记多个项目，结算单编辑器「导入日记账」带入 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.settlement-center-group[data-settlement-entry-section="crossbook"]{grid-area:crossbook}
.settlement-entry-grid.crossbook{grid-template-columns:1fr}
.settlement-entry.crossbook-entry{--entry-color:var(--violet)}
.settlement-crossbook{display:flex;flex-direction:column;gap:16px}
.crossbook-form{display:flex;flex-direction:column;gap:14px}
.crossbook-controls{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,.9fr);gap:12px;align-items:end}
.crossbook-rows{display:flex;flex-direction:column;gap:8px}
.crossbook-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr) minmax(0,1.3fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2)}
.crossbook-row .field{margin:0}
.crossbook-row .sselect-btn{min-height:38px}
.crossbook-remove{color:var(--fg-mute)}
.crossbook-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.crossbook-total{margin-left:auto;font-size:12px;color:var(--fg-dim)}
.crossbook-total b{font-family:var(--font-mono);color:var(--accent)}
.crossbook-pending-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font:600 10px var(--font-mono)}
.crossbook-records-loading{padding:20px;text-align:center;color:var(--fg-mute);font-size:12px}
.crossbook-project{display:flex;flex-direction:column;gap:2px}
.crossbook-project .td-mono{font-size:10px;color:var(--fg-mute)}
.crossbook-table tfoot td{font-weight:600}
@media(max-width:920px){
  .crossbook-controls{grid-template-columns:1fr}
  .crossbook-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
  .crossbook-row .crossbook-project-field{grid-column:1 / -1}
  .crossbook-row .crossbook-remove{justify-self:end}
}

/* 加急通道启动页：类型直选 + 项目类补选项目 + 月份 */
.st-urgent-setup{display:flex;flex-direction:column;gap:18px}
.st-urgent-setup .field{margin:0}
.st-urgent-type-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.st-urgent-type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:76px;padding:12px 8px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2);font:600 12.5px var(--font-body);color:var(--fg-dim);cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.st-urgent-type .material-symbols-rounded{font-size:21px}
.st-urgent-type:hover:not(:disabled){border-color:var(--accent);color:var(--fg)}
.st-urgent-type:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.st-urgent-type.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-2));color:var(--accent-2)}
.st-urgent-type small{font:9.5px var(--font-mono);color:var(--fg-mute)}
.st-urgent-launch-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.st-urgent-launch-row .field{flex:1 1 220px}
.st-urgent-launch-row .st-urgent-go{flex:0 0 auto}
@media(max-width:900px){.st-urgent-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.settlement-project-select-note{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;font-size:10px;color:var(--fg-mute)}
.settlement-project-select-note span:last-child{font-family:var(--font-mono)}
.settlement-section-filter{display:flex;gap:6px;flex-wrap:wrap}
.settlement-section-filter .btn.active{border-color:var(--accent);color:var(--accent-2);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.settlement-type-chip{display:inline-flex;align-items:center;gap:5px;font:10px var(--font-mono);color:var(--fg-dim);padding:3px 7px;border-radius:5px;border:1px solid var(--glass-border);background:color-mix(in srgb,var(--bg-3) 20%,transparent)}
.settlement-editor-heading{display:flex;align-items:center;gap:13px;padding:15px 16px;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow)}
.settlement-editor-heading .heading-icon{width:42px;height:42px;flex:0 0 42px;border-radius:9px;display:grid;place-items:center;color:var(--entry-color,var(--accent));background:color-mix(in srgb,var(--entry-color,var(--accent)) 11%,transparent);border:1px solid color-mix(in srgb,var(--entry-color,var(--accent)) 22%,transparent)}
.settlement-editor-heading .heading-copy{min-width:0;flex:1}
.settlement-editor-heading.st-editor-heading-compact{padding:12px 16px;flex-wrap:wrap}
.settlement-editor-heading.st-editor-heading-compact h2{margin:0;line-height:1.5;overflow-wrap:anywhere}
.settlement-editor-heading .heading-label{font:9px var(--font-mono);letter-spacing:.08em;color:var(--fg-mute);text-transform:uppercase}
.settlement-editor-heading h2{font:600 17px var(--font-display);margin-top:3px}
.settlement-editor-heading p{font-size:11px;line-height:1.6;color:var(--fg-dim);margin-top:4px}
.settlement-editor-heading.post{--entry-color:var(--violet)}
.settlement-editor-heading.external{--entry-color:var(--gold)}
.settlement-editor-heading.reconciliation{--entry-color:var(--green)}
.settlement-editor-heading.special{--entry-color:var(--green)}
.settlement-editor-heading.special-business{--entry-color:var(--violet)}
.settlement-editor-heading.special-research{--entry-color:var(--accent-2)}
.settlement-entry-setup{max-width:none;margin:0}
.settlement-entry-setup .settlement-editor-heading{margin-bottom:12px}
.settlement-entry-setup .st-tab-bar{margin-bottom:12px}
.settlement-entry-setup .st-tab-bar label:not([for="st-tab-base"]){cursor:not-allowed;opacity:.5}
.st-basic-card{padding:16px;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow)}
.st-basic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.st-basic-compact-grid{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(190px,.9fr) minmax(180px,.75fr);gap:10px;align-items:stretch}
.st-basic-item{min-height:62px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.st-basic-item>span:first-child{display:block;font:9px var(--font-mono);letter-spacing:.07em;color:var(--fg-mute);text-transform:uppercase;margin-bottom:6px}
.st-basic-item strong{display:block;font-size:14px;font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-basic-item small{display:block;font-size:10px;color:var(--fg-mute);margin-top:3px}
.st-entry-control{min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.st-entry-control .field{margin:0}
.st-entry-control .field label{margin-bottom:6px}
.st-entry-period .select{font-family:var(--font-mono)}
.st-entry-phase{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.st-entry-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.st-entry-cycle{display:flex;align-items:center;gap:8px;min-width:0;color:var(--fg-dim);font-size:11.5px;line-height:1.5}
.st-entry-cycle .material-symbols-rounded{font-size:18px;color:var(--accent-2)}
.st-entry-footer .st-tab-next{margin:0;flex:0 0 auto}
.st-applicant{display:flex!important;align-items:center;gap:10px;margin:0!important;font:inherit!important;letter-spacing:normal!important;text-transform:none!important}
.st-applicant-avatar{width:38px;height:38px;flex:0 0 38px;display:grid!important;place-items:center;border-radius:9px;background:var(--accent);color:#fff!important;font:600 14px var(--font-display)!important;overflow:hidden;margin:0!important}
.st-applicant-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.st-applicant strong{font-size:13px;line-height:1.2}
.st-applicant small{margin-top:3px}
.st-entry-phase{grid-column:1/-1}
.st-phase-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.st-phase-option{display:flex;align-items:center;gap:11px;min-width:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);color:var(--fg-dim);text-align:left;cursor:pointer;transition:.15s}
.st-phase-option:hover{border-color:var(--border-strong);color:var(--fg)}
.st-phase-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg-2));color:var(--fg)}
.st-phase-option:disabled{cursor:not-allowed;opacity:.78}
.st-phase-option .material-symbols-rounded{color:var(--accent-2)}
.st-phase-option b{display:block;font-size:12.5px}
.st-phase-option small{display:block;margin-top:3px;font-size:10px;color:var(--fg-mute)}
.st-reconciliation{display:flex;flex-direction:column;gap:14px}
.st-reconciliation-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.st-reconciliation-metric{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);min-width:0}
.st-reconciliation-metric span{display:block;font:9px var(--font-mono);letter-spacing:.07em;color:var(--fg-mute);text-transform:uppercase}
.st-reconciliation-metric b{display:block;margin-top:7px;font:700 17px var(--font-mono);color:var(--gold);overflow:hidden;text-overflow:ellipsis}
.st-reconciliation-metric small{display:block;margin-top:5px;font-size:10px;color:var(--fg-mute)}
.st-reconciliation-section{border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);overflow:hidden}
.st-reconciliation-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;border-bottom:1px solid var(--glass-border)}
.st-reconciliation-section-head h3{font:600 14px var(--font-display)}
.st-reconciliation-record{border-bottom:1px solid var(--border)}
.st-reconciliation-record:last-child{border-bottom:0}
.st-reconciliation-record.urgent{box-shadow:inset 3px 0 0 var(--gold)}
.st-reconciliation-record>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 15px;cursor:pointer;list-style:none}
.st-reconciliation-record>summary::-webkit-details-marker{display:none}
.st-reconciliation-record-title b{font-size:12.5px}
.st-reconciliation-record-title small{display:block;margin-top:4px;font:9.5px var(--font-mono);color:var(--fg-mute)}
.st-urgent-badge{display:inline-flex;align-items:center;margin-left:7px;padding:2px 6px;border:1px solid color-mix(in srgb,var(--gold) 42%,transparent);border-radius:4px;background:color-mix(in srgb,var(--gold) 11%,transparent);color:var(--gold);font:600 9px var(--font-mono);vertical-align:1px}
.st-reconciliation-record-body{padding:0 15px 14px}
.st-reconciliation-lines{display:flex;flex-direction:column;gap:8px}
.st-reconciliation-line{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(180px,1.4fr) minmax(160px,1fr) 110px;gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);font-size:11px;color:var(--fg-dim);min-width:0}
.st-reconciliation-line.urgent{border-color:color-mix(in srgb,var(--gold) 28%,var(--border));background:color-mix(in srgb,var(--gold) 5%,var(--bg-2))}
.st-reconciliation-line>*{min-width:0;overflow-wrap:anywhere}
.st-reconciliation-line b{display:block;color:var(--fg);font-weight:600}
.st-reconciliation-line small{display:block;margin-top:3px;font-size:9.5px;color:var(--fg-mute)}
.st-reconciliation-line .amount{text-align:right;font:700 12px var(--font-mono);color:var(--gold)}
@media(max-width:760px){
  body:not(.settlement-standalone) .settlement-layout{grid-template-columns:1fr;gap:18px}
  body:not(.settlement-standalone) .settlement-rail{position:static;display:flex}
}
@media(max-width:760px){
  body.settlement-standalone .settlement-layout{grid-template-columns:1fr;gap:18px}
  body.settlement-standalone .settlement-rail{position:static;display:flex}
}
@media(max-width:1180px){
  .st-reconciliation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1150px){
  .settlement-entry-sections{grid-template-columns:1fr;grid-template-areas:"special" "project" "urgent" "crossbook"}
}
@media(max-width:920px){
  .settlement-carousel-slide{grid-template-columns:auto minmax(0,1fr)}
  .settlement-carousel-meta{grid-column:2;text-align:left}
  .st-reconciliation-line{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .settlement-carousel-slide{grid-template-columns:1fr;padding-inline:14px}
  .settlement-carousel-icon,.settlement-carousel-meta{display:none}
  .settlement-carousel-worklist{grid-template-columns:1fr}
  .settlement-carousel-controls{left:14px;right:14px}
  .settlement-carousel-progress{display:none}
  .settlement-entry-grid,.settlement-entry-grid.project{grid-template-columns:1fr}
  .settlement-entry-grid.special .settlement-entry:last-child:nth-child(odd){grid-column:auto}
  .settlement-center-title span{display:none}
  .settlement-entry .entry-meta .btn{min-height:32px}
}
@media(prefers-reduced-motion:reduce){
  .settlement-carousel-slide.active{animation:none}
  .settlement-carousel-dot{transition:none}
}
/* ============== 大类直填 + 四种结算方式 ============== */
.st-panel-info .settlement-section{border-radius:12px;background:color-mix(in srgb,var(--bg-1) 88%,transparent)}
.st-panel-info .settlement-section-head{padding:19px 24px;background:color-mix(in srgb,var(--bg-2) 72%,transparent)}
.st-panel-info .settlement-section-title{gap:14px}
.st-panel-info .settlement-section-title strong{font-size:17px}
.st-panel-info .settlement-section-title span{font-size:12px;line-height:1.6;color:var(--fg-dim)}
/* 2026-08-28 v3 用户确认：编辑器内移除包裹「板块标签 + 结算信息」的外层大卡片（.settlement-section 玻璃卡），历史综合视图保留 */
.st-singlepage .settlement-section,.st-singlepage .st-panel-info .settlement-section{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;box-shadow:none;border-radius:0}
.st-cat-tabs{display:flex;flex-wrap:wrap;gap:4px 10px;margin:0 0 12px;align-items:flex-start}
.st-cat-tab-wrap{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-1);overflow:hidden}
.st-cat-tab-wrap .st-cat-tab{border:0;border-radius:0;background:transparent}
.st-cat-tab-wrap .st-cat-required{display:flex;align-items:center;gap:4px;align-self:stretch;padding:0 8px;border:0;border-left:1px solid var(--border);background:transparent;color:var(--fg-mute);font-size:10px;cursor:pointer;white-space:nowrap}
.st-cat-required .material-symbols-rounded{font-size:14px}
.st-cat-required.needed{color:var(--green);background:color-mix(in srgb,var(--green) 6%,transparent)}
.st-cat-required:disabled{cursor:default;opacity:.65}
.st-cat-tab-wrap.not-needed .st-cat-tab:not(.active){color:var(--fg-mute)}
.st-category-unused{display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 16px;color:var(--fg-dim);text-align:center}
.st-category-unused>.material-symbols-rounded{font-size:24px;color:var(--fg-mute)}
.st-category-unused p{margin:0;font-size:13px}
.st-category-unused small{font-size:11px;color:var(--fg-mute)}
.st-cat-tab{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass-bg);color:var(--fg-dim);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}
.st-cat-tab:hover:not(.active){color:var(--fg);border-color:var(--accent-soft)}
.st-cat-tab.active{color:var(--fg);border-color:color-mix(in srgb,var(--accent) 42%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--bg-1))}
.st-cat[hidden]{display:none}
.st-cat-list{display:flex;flex-direction:column;gap:18px;padding-top:2px}
/* 2026-08-28 v2：板块内容去大卡片（标签按钮曾与卡片上边缘重合），组卡直接排在标签下方 */
.st-cat{border:0;border-radius:0;background:transparent;box-shadow:none}
.st-cat-body .input,.st-cat-body .select{height:42px;padding:0 13px;border-radius:8px;font-size:13px}
.st-cat-body textarea.input{height:auto;min-height:72px;padding:10px 13px;line-height:1.55;resize:vertical}
.st-cat-body .field label{font-family:var(--font-body);font-size:10.5px;letter-spacing:.04em;text-transform:none;margin-bottom:6px}
.st-cat-body .money-input{font:600 17px var(--font-mono);color:var(--gold);text-align:right;letter-spacing:.01em}

.st-cat-head{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:44px;padding:8px 2px 10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;border-radius:0}
.st-cat-head-left{display:flex;align-items:center;gap:14px;min-width:0}
.st-cat-head-total{margin-left:auto;display:flex;align-items:baseline;gap:9px;flex:0 0 auto}
.st-cat-head-total small{font-size:10px;color:var(--fg-mute);letter-spacing:.04em}
.st-cat-head-total b{font:700 17px var(--font-mono);color:var(--gold);font-variant-numeric:tabular-nums}
.st-cat-icon{width:32px;height:32px;flex:0 0 32px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.st-cat-icon .material-symbols-rounded{font-size:19px}
.st-cat-name{font-family:var(--font-display);font-size:12px;font-weight:600}
.st-cat-status{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 12px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid var(--glass-border)}
.st-cat-status.pending{color:var(--fg-mute);background:color-mix(in srgb,var(--fg-mute) 8%,transparent)}
.st-cat-status.done{color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);border-color:color-mix(in srgb,var(--green) 22%,transparent)}
.st-cat-status.warn{color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent);border-color:color-mix(in srgb,var(--gold) 22%,transparent)}

.st-cat-body{border-top:1px solid var(--border);padding:16px 2px 4px;display:flex;flex-direction:column;gap:14px;min-width:0;background:transparent}

.st-cat-body>*{width:100%;max-width:none;margin-inline:0}
.st-cat-hint{font-size:11.5px;color:var(--fg-dim);line-height:1.7;background:color-mix(in srgb,var(--accent) 5%,transparent);border:1px solid color-mix(in srgb,var(--accent) 14%,transparent);border-radius:6px;padding:10px 13px;overflow-wrap:anywhere}
.st-cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;width:100%;min-width:0}
.st-cat-grid>*{min-width:0}
.st-cat-grid>.field{margin:0}
.st-method-fields{width:100%;min-width:0}
.st-method-fields>.st-cat-hint{grid-column:1/-1}
.st-category-overview{padding-top:16px;border-top:1px solid var(--border)}
.st-category-overview .field{margin:0}
.st-category-summary-input{min-height:96px!important;padding-bottom:40px!important}
.st-summary-input-wrap{position:relative}
.st-ai-summary-btn{position:absolute;right:9px;bottom:9px;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:1px solid color-mix(in srgb,var(--violet) 38%,transparent);border-radius:7px;background:color-mix(in srgb,var(--violet) 12%,var(--bg-1));color:var(--violet);font:600 11px var(--font-body);cursor:pointer;transition:background .15s,border-color .15s}
.st-ai-summary-btn:hover{background:color-mix(in srgb,var(--violet) 20%,var(--bg-1));border-color:var(--violet)}
.st-ai-summary-btn:disabled{opacity:.6;cursor:wait}
.st-ai-summary-btn .material-symbols-rounded{font-size:15px}
.st-ai-summary-btn .spin{width:11px;height:11px;border:2px solid color-mix(in srgb,var(--violet) 35%,transparent);border-top-color:var(--violet);border-radius:50%;animation:stAiSpin .7s linear infinite}
@keyframes stAiSpin{to{transform:rotate(360deg)}}
.st-declared-total .money-input{height:52px;font-size:22px}
.st-declared-total .hint.warn{color:var(--gold)}
.st-card-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid var(--border)}
.st-card-section-title span{font:600 13px var(--font-display)}
.st-card-section-title small{font-size:10px;color:var(--fg-mute)}
.st-group-list{display:flex;flex-direction:column;gap:16px}
.settlement-line.st-settlement-group{display:flex;flex-direction:column;align-items:stretch;gap:13px;min-width:0;margin:0;padding:16px;border:1px solid var(--border);border-radius:9px;background:var(--bg-2);text-align:left}
.st-settlement-group>*{min-width:0}
.st-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid var(--border)}
.st-group-head>div{display:flex;align-items:baseline;gap:9px}
.st-group-head .gno{font:600 11px var(--font-mono);color:var(--fg-dim);letter-spacing:.06em}
.st-group-head span:not(.gno):not(.material-symbols-rounded){font:600 13px var(--font-display)}
.st-group-head small{font-size:10px;color:var(--fg-mute)}
.st-group-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.st-group-row>.field{margin:0}
.st-method-choice-row>.field{margin:0}
.st-method-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.st-method-option{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;height:40px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-1);color:var(--fg-dim);font:600 12px var(--font-body);cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.st-method-option:hover{border-color:var(--border-strong);color:var(--fg)}
.st-method-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.st-method-option:disabled{cursor:not-allowed;opacity:.72}
.st-method-option .material-symbols-rounded{font-size:17px}
.st-method-option.active[data-set-method="external_payment"]{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,var(--bg-1));color:var(--gold)}
.st-method-option.active[data-set-method="employee_reimbursement"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-1));color:var(--accent-2)}
.st-method-option.active[data-set-method="accrual"]{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 10%,var(--bg-1));color:var(--violet)}
.st-method-option.active[data-set-method="platform_writeoff"]{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--bg-1));color:var(--green)}
.st-target-account-row{grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr)}
.st-detail-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(180px,.72fr) minmax(180px,.62fr);gap:18px;align-items:stretch}
.st-detail-row>.field{margin:0}
.st-status-stack{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px}
.st-status-stack .field{margin:0}
.st-target-picker{display:flex;align-items:stretch;gap:8px;min-width:0}
.st-target-picker .select{flex:1;min-width:0}
.st-target-picker .btn{height:42px;white-space:nowrap}
.st-material-details{border-top:1px dashed var(--border);padding-top:10px}
.st-material-details summary{cursor:pointer;font-size:10.5px;color:var(--fg-dim);list-style:none}
.st-material-details summary::-webkit-details-marker{display:none}
.st-material-details summary::before{content:'+';display:inline-block;width:16px;color:var(--accent-2)}
.st-material-details[open] summary::before{content:'−'}
.st-material-details .st-cat-grid{margin-top:12px}
.st-add-group{align-self:flex-start;border-style:dashed}
.st-del-group{width:30px;padding:0;justify-content:center}
.st-del-group:hover{color:var(--rose);border-color:var(--rose)}
.payment-path-fields{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;padding-top:12px;border-top:1px dashed var(--border)}
.st-pill-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-block:2px}
.st-pill-group{font:9.5px var(--font-mono);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);margin-right:2px}
.st-pill-divider{width:1px;height:20px;background:var(--border);margin:0 6px}
.st-pill-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 17px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--border);background:var(--bg-2);color:var(--fg-dim);cursor:pointer;transition:all .15s}
.st-pill-btn:hover{border-color:var(--border-strong);color:var(--fg)}
.st-pill-btn:disabled{cursor:not-allowed;opacity:.7}
.st-pill-btn .material-symbols-rounded{font-size:16px}
.st-pill-btn.active[data-set-method="external_payment"]{background:color-mix(in srgb,var(--gold) 14%,transparent);border-color:var(--gold);color:var(--gold)}
.st-pill-btn.active[data-set-method="employee_reimbursement"]{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent);color:var(--accent-2)}
.st-pill-btn.active[data-set-method="accrual"]{background:color-mix(in srgb,var(--violet) 14%,transparent);border-color:var(--violet);color:var(--violet)}
.st-pill-btn.active[data-set-method="platform_writeoff"]{background:color-mix(in srgb,var(--green) 14%,transparent);border-color:var(--green);color:var(--green)}
.st-method-fields{margin-top:2px}
.st-invoice-guard{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius);font-size:12.5px;line-height:1.6}
.st-invoice-guard.pass{background:color-mix(in srgb,var(--green) 8%,transparent);border:1px solid color-mix(in srgb,var(--green) 20%,transparent);color:var(--green)}
.st-invoice-guard.warn{background:color-mix(in srgb,var(--gold) 8%,transparent);border:1px solid color-mix(in srgb,var(--gold) 20%,transparent);color:var(--gold)}
.st-invoice-guard.note{background:color-mix(in srgb,var(--fg-mute) 7%,transparent);border:1px solid color-mix(in srgb,var(--fg-mute) 18%,transparent);color:var(--fg-dim)}
.st-invoice-guard .material-symbols-rounded{font-size:20px}
.st-summary-rows{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}
.st-summary-rows>div{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--fg-dim)}
.st-summary-rows b{font-weight:600;color:var(--fg);text-align:right}
.st-flow{display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--fg-mute);padding-top:10px;border-top:1px solid var(--border);margin-top:10px}
.st-summary-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.st-entry-launch-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:14px}
.st-entry-launch-grid>.field{margin:0}
.st-entry-applicant-select{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center}
.st-entry-applicant-select .st-applicant-avatar{grid-row:1}
.st-month-track{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:3px 2px 9px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
.st-month-option{flex:0 0 calc((100% - 16px)/3);min-width:132px;height:42px;padding:0 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--fg-dim);font:600 12px var(--font-mono);cursor:pointer;scroll-snap-align:start}
.st-month-option:hover{border-color:var(--border-strong);color:var(--fg)}
.st-month-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-2));color:var(--accent-2)}
.st-month-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.st-month-track::-webkit-scrollbar{height:5px}
.st-month-track::-webkit-scrollbar-track{background:transparent}
.st-month-track::-webkit-scrollbar-thumb{border-radius:999px;background:var(--border-strong)}
.st-month-track::-webkit-scrollbar-thumb:hover{background:var(--fg-mute)}
.st-entry-project-na{display:flex;align-items:center;gap:8px;min-height:48px;padding:12px 14px;border:1px dashed var(--border);border-radius:8px;color:var(--fg-mute);font-size:12px}
.st-entry-identity-empty{margin-top:7px;color:var(--gold);font-size:10.5px;line-height:1.55}
.st-group-core{display:grid;grid-template-columns:minmax(188px,.48fr) minmax(0,1.52fr);gap:18px;align-items:start}
.st-group-core>.field{margin:0}
.st-group-core .st-method-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.st-target-meta{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr) minmax(0,.65fr);gap:14px}
.st-target-meta>.field{margin:0}
.st-detail-row{grid-template-columns:minmax(0,1fr) minmax(210px,.34fr);align-items:stretch}
.st-duplicate-warning{color:var(--rose);font-size:10.5px;line-height:1.5;margin:7px 0 0}
@media(max-width:740px){
  .st-group-row,.payment-path-fields{grid-template-columns:1fr}
  .st-method-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .st-entry-footer{align-items:flex-start;flex-direction:column}
  .st-entry-footer .st-tab-next{align-self:flex-end}
}
@media(max-width:720px){
  .st-basic-compact-grid,.st-entry-launch-grid,.st-entry-launch-grid.st-entry-launch-row,.st-entry-launch-grid.st-entry-launch-row.has-project{grid-template-columns:1fr}
  .st-basic-compact-grid .st-applicant-item{grid-column:auto}
  .st-panel-info .settlement-section-head{align-items:flex-start;padding:16px}
  .st-panel-info .settlement-section-title{align-items:flex-start;flex-direction:column;gap:4px}
  .st-panel-info .settlement-section-title span{white-space:normal}
  .st-cat-list{gap:12px}
  .st-cat-head{min-height:64px;padding:12px 14px;gap:10px}
  .st-cat-head-left{gap:10px}
  .st-cat-icon{width:36px;height:36px;flex-basis:36px}
  .st-cat-name{font-size:12px}
  .st-cat-status{height:26px;padding-inline:9px;font-size:10.5px}
  .st-cat-head-total small{display:none}
  .st-cat-head-total b{font-size:14px}
  .st-cat-body{padding:16px 14px 18px;gap:14px}
  .st-cat-grid,.st-phase-options,.st-reconciliation-summary,.st-reconciliation-line,.st-detail-row,.st-group-core,.st-target-meta{grid-template-columns:1fr}
  .settlement-line.st-settlement-group{margin:0;padding:13px;gap:12px}
  .st-group-head{align-items:flex-start}
  .st-target-picker{align-items:stretch}
  .st-target-picker .btn{padding-inline:9px}
  .st-line-amount{grid-column:auto}
  .st-line-amount .money-input{min-height:52px}
  .st-card-section-title{align-items:flex-start;flex-direction:column;gap:4px}
  .st-reconciliation-record>summary{grid-template-columns:1fr auto}
  .st-reconciliation-record>summary>.td-mono{grid-column:1/-1;text-align:left!important}
  .st-month-option{min-width:0;padding-inline:8px;font-size:11px}
}
.st-category-summary-input{display:block}
/* ============== 结算编辑器标签页 ============== */
.st-tabs{position:relative}
.st-tabs>input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.st-tab-bar{display:grid;grid-template-columns:repeat(4,minmax(148px,1fr));gap:4px;width:min(100%,920px);padding:5px;border:1px solid var(--glass-border);border-radius:12px;background:color-mix(in srgb,var(--bg-2) 84%,transparent);box-shadow:var(--glass-shadow);margin:0 auto 22px;overflow-x:auto}
.st-tab-bar label,.st-tab-complete{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 18px;font-size:13px;font-weight:600;color:var(--fg-dim);border-radius:8px;transition:all .15s;white-space:nowrap}
.st-tab-bar label{cursor:pointer}
.st-tab-complete{color:var(--green);background:color-mix(in srgb,var(--green) 8%,transparent)}
.st-tab-complete .material-symbols-rounded{font-size:16px}
.st-tab-bar label:hover{color:var(--fg)}
#st-tab-base:focus-visible ~ .st-tab-bar label[for="st-tab-base"], #st-tab-info:focus-visible ~ .st-tab-bar label[for="st-tab-info"], #st-tab-attach:focus-visible ~ .st-tab-bar label[for="st-tab-attach"], #st-tab-confirm:focus-visible ~ .st-tab-bar label[for="st-tab-confirm"]{outline:2px solid var(--accent-2);outline-offset:2px}
.st-tab-bar label .st-tab-dot{width:8px;height:8px;border-radius:50%;background:var(--fg-mute);flex-shrink:0;transition:all .15s}
.st-tab-bar label .st-tab-sub{font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
#st-tab-base:checked ~ .st-tab-bar label[for="st-tab-base"], #st-tab-info:checked ~ .st-tab-bar label[for="st-tab-info"], #st-tab-attach:checked ~ .st-tab-bar label[for="st-tab-attach"], #st-tab-confirm:checked ~ .st-tab-bar label[for="st-tab-confirm"]{color:#fff;background:var(--accent-strong);box-shadow:0 5px 16px color-mix(in srgb,var(--accent) 20%,transparent)}
#st-tab-base:checked ~ .st-tab-bar label[for="st-tab-base"] .st-tab-dot, #st-tab-info:checked ~ .st-tab-bar label[for="st-tab-info"] .st-tab-dot, #st-tab-attach:checked ~ .st-tab-bar label[for="st-tab-attach"] .st-tab-dot, #st-tab-confirm:checked ~ .st-tab-bar label[for="st-tab-confirm"] .st-tab-dot{background:#fff}
.st-tab-panel{display:none}
#st-tab-base:checked ~ .st-panel-base, #st-tab-info:checked ~ .st-panel-info, #st-tab-attach:checked ~ .st-panel-attach, #st-tab-confirm:checked ~ .st-panel-confirm{display:block}
.st-tab-next{display:flex;justify-content:flex-end;margin-top:16px}
.st-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.st-field-grid .field{margin:0}
.st-info-banner{font-size:12px;color:var(--fg-dim);background:color-mix(in srgb,var(--accent) 4%,transparent);border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);border-radius:6px;padding:10px 14px;margin-bottom:16px}
.st-agreement-list{display:flex;flex-direction:column;gap:10px}
.st-agreement-item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--bg-2);cursor:pointer}
.st-agreement-item input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}
.st-agreement-item b{display:block;font-size:12.5px}
.st-agreement-item small{display:block;margin-top:6px;font-size:11.5px;line-height:1.75;color:var(--fg-dim)}
.st-agreement-note{margin-top:12px;padding:10px 12px;border-left:3px solid var(--gold);background:color-mix(in srgb,var(--gold) 6%,transparent);font-size:10.5px;line-height:1.7;color:var(--fg-mute)}
.st-agreement-link{padding:0 3px;border:0;background:transparent;color:var(--accent-2);font:inherit;text-decoration:underline;cursor:pointer}
.st-agreement-signature{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--fg-mute)}
.st-agreement-signature b{color:var(--fg)}
.st-agreement-signature span:last-child{margin-left:auto;font-family:var(--font-mono)}
.st-upload-box{display:grid;grid-template-columns:150px minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:10px;align-items:end;padding:14px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 3%,transparent);margin-bottom:14px}
.st-upload-box .field{margin:0}
.st-attachment-list{display:flex;flex-direction:column;gap:8px}
.st-attachment-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.st-attachment-icon{width:34px;height:34px;border-radius:7px;display:grid;place-items:center;color:var(--accent-2);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.st-attachment-copy{min-width:0}
.st-attachment-copy b{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-attachment-copy small{display:block;margin-top:4px;font:9.5px var(--font-mono);color:var(--fg-mute)}
.st-attachment-actions{display:flex;gap:6px;align-items:center}
@media(max-width:920px){
  .st-upload-box{grid-template-columns:1fr 1fr}
  .st-upload-box .field:nth-child(3){grid-column:1/-1}
}
@media(max-width:620px){
  .st-upload-box{grid-template-columns:1fr}
  .st-upload-box .field:nth-child(3){grid-column:auto}
  .st-attachment-row{grid-template-columns:34px minmax(0,1fr)}
  .st-attachment-actions{grid-column:2}
}
@media(max-width:620px){
  .st-tab-bar{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:4px;overflow:visible}
  .st-tab-bar label,.st-tab-complete{min-width:0;min-height:40px;padding:7px 3px;font-size:10.5px;gap:4px}
  .st-tab-bar label .st-tab-dot{width:6px;height:6px}
  .st-agreement-item{padding:12px}
  .st-agreement-signature{align-items:flex-start;flex-wrap:wrap}
  .st-agreement-signature span:last-child{width:100%;margin-left:30px}
}
/* ============== 系统设置标签页 ============== */
.cfg-tabs{position:relative}
.cfg-tabs>input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.cfg-tab-bar{display:flex;gap:0;border-bottom:1px solid var(--glass-border);margin-bottom:18px;overflow-x:auto}
.cfg-tab-bar label{display:flex;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:500;color:var(--fg-dim);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap}
.cfg-tab-bar label:hover{color:var(--fg)}
.cfg-tab-bar label .cfg-tab-dot{width:8px;height:8px;border-radius:50%;background:var(--fg-mute);flex-shrink:0;transition:all .15s}
#cfg-tab-llm:checked ~ .cfg-tab-bar label[for="cfg-tab-llm"], #cfg-tab-syncflow:checked ~ .cfg-tab-bar label[for="cfg-tab-syncflow"], #cfg-tab-feishu:checked ~ .cfg-tab-bar label[for="cfg-tab-feishu"], #cfg-tab-storage:checked ~ .cfg-tab-bar label[for="cfg-tab-storage"], #cfg-tab-help:checked ~ .cfg-tab-bar label[for="cfg-tab-help"]{color:var(--fg);border-bottom-color:var(--accent)}
#cfg-tab-llm:checked ~ .cfg-tab-bar label[for="cfg-tab-llm"] .cfg-tab-dot, #cfg-tab-syncflow:checked ~ .cfg-tab-bar label[for="cfg-tab-syncflow"] .cfg-tab-dot, #cfg-tab-feishu:checked ~ .cfg-tab-bar label[for="cfg-tab-feishu"] .cfg-tab-dot, #cfg-tab-storage:checked ~ .cfg-tab-bar label[for="cfg-tab-storage"] .cfg-tab-dot, #cfg-tab-help:checked ~ .cfg-tab-bar label[for="cfg-tab-help"] .cfg-tab-dot{background:var(--green)}
.cfg-tab-panel{display:none}
#cfg-tab-llm:checked ~ .cfg-panel-llm, #cfg-tab-syncflow:checked ~ .cfg-panel-syncflow, #cfg-tab-feishu:checked ~ .cfg-panel-feishu, #cfg-tab-storage:checked ~ .cfg-panel-storage, #cfg-tab-help:checked ~ .cfg-panel-help{display:block}
.settings-card{transition:border-color .18s,box-shadow .18s}
.settings-card.is-editing{border-color:color-mix(in srgb,var(--accent) 48%,var(--glass-border));box-shadow:var(--glass-shadow),0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}
.settings-card .panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.settings-card-mode{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg-2);color:var(--fg-mute);font:10px var(--font-mono);white-space:nowrap}
.settings-card-mode .material-symbols-rounded{font-size:13px}
.settings-card.is-editing .settings-card-mode{border-color:color-mix(in srgb,var(--accent) 34%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--bg-2));color:var(--accent-2)}
.settings-card-controls{display:none;align-items:center;gap:7px}
.settings-card.is-editing .settings-card-controls{display:flex}
.settings-card.is-editing .settings-edit-trigger{display:none}
.settings-card:not(.is-editing) [data-settings-field]:disabled{opacity:1;cursor:default;color:var(--fg-dim);-webkit-text-fill-color:var(--fg-dim);background-color:color-mix(in srgb,var(--bg-2) 82%,transparent);border-color:color-mix(in srgb,var(--border) 72%,transparent);box-shadow:none}
.settings-card:not(.is-editing) select[data-settings-field]:disabled{background-image:none;padding-right:12px!important}
.settings-card:not(.is-editing) [data-settings-secret]:disabled{letter-spacing:.16em;color:var(--fg-mute);-webkit-text-fill-color:var(--fg-mute)}
.settings-secret-toggle{white-space:nowrap}
.settings-card:not(.is-editing) .settings-secret-toggle{display:none}
.settings-runtime-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;align-items:center}
.settings-runtime-actions::before{content:'使用已保存配置';font:10px var(--font-mono);color:var(--fg-mute);margin-right:2px}
.settings-card.is-editing .settings-runtime-actions{opacity:.58}
.settings-card.is-editing .settings-runtime-actions::before{content:'请先保存或取消编辑'}
.settings-readonly-card .panel-actions{display:flex;align-items:center;gap:8px}
.settings-model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(max-width:620px){
  .settings-card .panel-actions{width:100%;justify-content:flex-start}
  .settings-card-status{margin-right:auto}
  .settings-card-controls{margin-left:auto}
  .settings-runtime-actions::before{width:100%}
  .settings-model-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .settlement-center-head{align-items:flex-start;flex-direction:column}
  .settlement-center-tools{justify-content:flex-start}
  .settlement-center-head:has(.settlement-initiator-settings){flex-direction:row;align-items:center;flex-wrap:wrap}
  .settlement-center-head:has(.settlement-initiator-settings) .settlement-center-title>span{display:none}
  .settlement-center-head:has(.settlement-initiator-settings) .settlement-center-tools{margin-left:auto;gap:4px}
  .settlement-rail{display:flex}
  .settlement-list-card{grid-template-columns:1fr 1fr}
  .settlement-list-card .project-cell{grid-column:1/-1}
  .settlement-entry{min-height:0}
  .settlement-section{overflow:visible}
  .settlement-table{overflow:visible}
  .settlement-table-head{display:none}
  .settlement-line{display:grid;grid-template-columns:28px 1fr;min-width:0;border:1px solid var(--border);border-radius:6px;margin:8px;padding:10px}
  .settlement-line>*{grid-column:2}
  .settlement-line>.line-no{grid-column:1;grid-row:1/8}
  .settlement-line-extra{grid-column:2;grid-template-columns:1fr}
  .settlement-line .line-actions{justify-content:flex-start}
  .st-basic-grid{grid-template-columns:1fr}
  .st-entry-project{grid-column:auto}
  .settlement-editor-heading{align-items:flex-start}
}
.finance-chat-content{max-width:1600px;padding:12px 18px 24px}
.finance-chat-shell{min-width:0}

/* ══════════════════ 工作台与对话派发 ══════════════════ */
.chat-dispatch{display:flex;flex-direction:column;height:calc(100vh - 106px);min-height:620px}
.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 274px;gap:12px;height:100%;min-height:0}
.chat-layout>*{min-width:0}
.chat-main,.chat-drafts{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius)}
.chat-main{display:flex;flex-direction:column;overflow:hidden;min-height:0}
.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:22px 18px 16px;display:flex;flex-direction:column;gap:18px;min-height:0;scrollbar-width:thin;scrollbar-color:#333 transparent}
.chat-msg{display:flex;gap:10px;max-width:94%;animation:msgIn .2s ease;align-items:flex-start}
.chat-msg.user{align-self:flex-end;flex-direction:row-reverse;max-width:78%}
.chat-msg.assistant{align-self:stretch}
.chat-msg.system{align-self:center;max-width:none}
.chat-msg .av{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;flex-shrink:0;font-size:14px;margin-top:1px}
.chat-msg.user .av{background:rgba(139,92,246,0.1);border:1px solid rgba(139,92,246,0.2);color:var(--violet)}
.chat-msg.assistant .av{background:var(--accent);color:#fff}
.chat-msg .msg-content{min-width:0;flex:1}
.chat-msg.user .msg-content{display:flex;flex-direction:column;align-items:flex-end}
.chat-msg .msg-meta{display:flex;align-items:center;gap:7px;margin:0 0 6px 4px;color:var(--fg-mute);font-size:10px;font-family:var(--font-mono)}
.chat-msg .msg-meta strong{font-family:var(--font-body);font-size:11px;color:var(--fg-dim);font-weight:600}
.chat-msg.user .msg-meta{margin-right:4px}
.chat-msg .bubble{font-size:12px;line-height:1.65;color:var(--fg-dim)}
.chat-msg.user .bubble{padding:9px 13px;background:rgba(59,130,246,0.08);border:1px solid rgba(59,130,246,0.15);border-radius:6px 2px 6px 6px;color:var(--fg)}
.chat-msg.assistant .bubble{min-width:0}
.chat-msg.system .bubble{background:var(--bg-1);border:1px solid var(--border);border-radius:999px;color:var(--fg-mute);font-size:10px;font-family:var(--font-mono);display:flex;align-items:center;gap:6px;padding:5px 10px}
.chat-msg.system .bubble .spin{width:11px;height:11px}
.assistant-summary{max-width:780px}
.assistant-summary strong{color:var(--fg);font-weight:600}
.chat-intro{max-width:720px}
.chat-intro-title{display:block;color:var(--fg);font-weight:600;margin-bottom:3px}
.prompt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.prompt-chip{appearance:none;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-2);color:var(--fg-dim);padding:6px 10px;font-family:var(--font-body);font-size:11px;cursor:pointer;transition:.15s}
.prompt-chip:hover,.prompt-chip:focus-visible{color:var(--accent-2);border-color:var(--accent);background:rgba(59,130,246,0.04);outline:none}
.message-error{display:inline-flex;align-items:center;gap:7px;color:var(--rose)}
.chat-review-note{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--fg-mute);font-size:10px;font-family:var(--font-mono)}
.chat-review-note.low{color:var(--green)}
.chat-review-note.medium{color:var(--gold)}
.chat-review-note.high{color:var(--rose)}
@keyframes msgIn{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:none}
}
.chat-input-bar{margin:0 10px 10px;padding:10px 11px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);transition:.15s}
.chat-input-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(59,130,246,0.06)}
.chat-input-bar textarea{display:block;width:100%;resize:none;min-height:40px;max-height:110px;padding:0;background:transparent;border:0;color:var(--fg);font-family:var(--font-body);font-size:12px;line-height:1.6;outline:0;overflow-x:hidden}
.chat-input-bar textarea::placeholder{color:#555}
.composer-foot{display:flex;align-items:center;gap:8px;margin-top:7px}
.composer-type{display:flex;align-items:center;gap:6px;color:var(--fg-mute);font-size:10px;font-family:var(--font-mono)}
.composer-type select{width:auto;min-height:0;padding:4px 22px 4px 7px;border-radius:4px;background-color:var(--bg-2);font-size:10px}
.composer-hint{margin-left:auto;color:var(--fg-mute);font-family:var(--font-mono);font-size:9px}
.chat-send{width:38px;height:34px;padding:0;border-radius:5px;font-size:16px;flex-shrink:0}
.chat-inline-drafts{display:flex;flex-direction:column;gap:10px;margin-top:12px;max-width:100%}
.inline-draft-card{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-2);overflow:hidden;color:var(--fg)}
.inline-draft-card.risk-medium{border-color:rgba(245,158,11,0.3)}
.inline-draft-card.risk-high{border-color:rgba(239,68,68,0.35)}
.inline-card-head{display:flex;align-items:center;gap:7px;padding:9px 12px;border-bottom:1px solid var(--border)}
.match-state{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-size:10px;font-family:var(--font-mono);font-weight:600}
.match-state.needs-confirmation{color:var(--gold)}
.inline-card-seq{margin-left:auto;color:var(--fg-mute);font-size:9px;font-family:var(--font-mono)}
.inline-delete{appearance:none;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--fg-mute);cursor:pointer;font-size:13px}
.inline-delete:hover,.inline-delete:focus-visible{background:rgba(239,68,68,0.08);color:var(--rose);border-color:rgba(239,68,68,0.3);outline:none}
.inline-payment-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(190px,.75fr);min-height:205px}
.inline-party-flow{padding:13px 15px;border-right:1px solid var(--border)}
.inline-party{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:start}
.party-symbol{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:17px}
.inline-party.payer .party-symbol{background:rgba(59,130,246,0.1);color:var(--accent-2);border:1px solid rgba(59,130,246,0.2)}
.inline-party.payee .party-symbol{background:rgba(249,115,22,0.1);color:var(--orange);border:1px solid rgba(249,115,22,0.2)}
.party-copy{min-width:0}
.party-kicker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--fg);font-size:11px;font-weight:600;margin-bottom:5px}
.confidence-tag{padding:1px 5px;border-radius:3px;background:rgba(34,197,94,0.08);color:var(--green);font-size:8px;font-family:var(--font-mono);font-weight:600}
.confidence-tag.medium,.confidence-tag.low,.confidence-tag.none{background:rgba(245,158,11,0.08);color:var(--gold)}
.inline-field-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:7px}
.inline-select,.inline-input{width:100%;min-width:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--fg);font-family:var(--font-body);font-size:12px;padding:3px 22px 3px 0;outline:0;text-overflow:ellipsis}
.inline-select:hover,.inline-select:focus,.inline-input:hover,.inline-input:focus{border-color:var(--accent);background:rgba(59,130,246,0.03);padding-left:7px}
.inline-account{font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flow-arrow{height:32px;margin-left:17px;display:flex;align-items:center;color:var(--accent);font-size:16px}
.inline-amount-purpose{display:flex;flex-direction:column;justify-content:center;gap:17px;padding:15px 18px}
.inline-field-label{display:block;color:var(--fg-mute);font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:4px}
.inline-money-wrap{display:flex;align-items:baseline;gap:5px;color:var(--gold);font-family:var(--font-mono)}
.inline-money-wrap span{font-size:16px;font-weight:700}
.inline-money-wrap input{width:100%;min-width:0;background:transparent;border:0;border-bottom:1px solid transparent;outline:0;color:var(--gold);font-family:var(--font-mono);font-size:22px;font-weight:800;letter-spacing:-0.5px;padding:0}
.inline-money-wrap input:focus{border-color:rgba(245,158,11,0.4)}
.inline-remark{width:100%;background:transparent;border:0;border-bottom:1px solid transparent;color:var(--fg);font-family:var(--font-body);font-size:13px;font-weight:500;outline:0;padding:1px 0 3px}
.inline-remark:focus{border-color:var(--accent)}
.inline-review-area{padding:10px 14px 12px;border-top:1px solid var(--border);background:rgba(0,0,0,0.2)}
.inline-review-title{display:flex;align-items:center;gap:6px;color:var(--gold);font-size:11px;font-weight:600;margin-bottom:7px}
.inline-warnings{display:flex;flex-direction:column;gap:5px;color:var(--fg-dim);font-size:10px;line-height:1.5}
.inline-suggestion{margin-top:6px;color:var(--accent-2);font-size:10px}
.match-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
.match-candidate{appearance:none;text-align:left;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-2);color:var(--fg-dim);padding:7px 9px;cursor:pointer;min-width:0;transition:.15s}
.match-candidate:hover,.match-candidate:focus-visible{border-color:var(--accent);background:rgba(59,130,246,0.04);outline:none}
.match-candidate strong{display:block;color:var(--fg);font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match-candidate span{display:block;color:var(--fg-mute);font-family:var(--font-mono);font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inline-complete{display:flex;align-items:center;gap:7px;border:1px solid rgba(34,197,94,0.2);border-radius:6px;background:rgba(34,197,94,0.04);color:var(--green);padding:9px 11px;font-size:11px}
.chat-drafts{display:flex;flex-direction:column;overflow:hidden;min-height:0}
.chat-drafts-head{display:flex;align-items:center;gap:7px;padding:13px 12px;border-bottom:1px solid var(--border)}
.chat-drafts-head .h-title{font-size:12px;font-weight:600;color:var(--fg)}
.chat-drafts-head .cnt{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim)}
.mobile-batch-toggle,.mobile-batch-close{display:none}
.summary-clear{margin-left:auto;appearance:none;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--fg-mute);cursor:pointer;font-size:14px}
.summary-clear:hover,.summary-clear:focus-visible{background:var(--nav-hover-bg);color:var(--accent-2);outline:none}
.chat-drafts-body{flex:1;overflow-y:auto;padding:13px 11px;display:flex;flex-direction:column;gap:10px;min-height:0;scrollbar-width:thin;scrollbar-color:#333 transparent}
.summary-total{padding-bottom:12px;border-bottom:1px solid var(--border)}
.summary-total .label{font-size:10px;color:var(--fg-mute);font-family:var(--font-mono)}
.summary-total .value{margin-top:5px;color:var(--gold);font-family:var(--font-mono);font-size:20px;font-weight:700;letter-spacing:-0.3px}
.draft-empty{margin:auto;text-align:center;color:var(--fg-mute);font-size:11px;line-height:1.7;padding:20px 8px}
.draft-empty i{display:block;font-size:22px;margin-bottom:6px;opacity:.5}
.summary-list{display:flex;flex-direction:column;gap:8px;min-width:0}
.summary-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);padding:9px;position:relative}
.summary-card.risk-medium{border-color:rgba(245,158,11,0.25)}
.summary-card.risk-high{border-color:rgba(239,68,68,0.3)}
.summary-party{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px;align-items:center;min-width:0}
.summary-party>div:last-child{min-width:0}
.summary-party-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px}
.summary-party.payer .summary-party-icon{background:rgba(59,130,246,0.1);color:var(--accent-2)}
.summary-party.payee .summary-party-icon{background:rgba(249,115,22,0.1);color:var(--orange)}
.summary-party-name{font-size:10px;color:var(--fg-dim);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-party-account{font-family:var(--font-mono);font-size:8px;color:var(--fg-mute);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-arrow{height:22px;margin-left:6px;display:flex;align-items:center;color:var(--fg-mute);font-size:13px}
.summary-card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:8px;padding-top:7px;border-top:1px solid var(--border)}
.summary-purpose{font-size:9px;color:var(--fg-mute);max-width:52%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-amount{color:var(--gold);font-family:var(--font-mono);font-size:13px;font-weight:700;white-space:nowrap}
.chat-drafts-foot{padding:10px 11px 11px;border-top:1px solid var(--border)}
.dispatch-all{width:100%;height:40px;border-radius:6px;font-size:13px}
.save-chat-draft{width:100%;margin-top:7px;height:36px}
.summary-risk{display:flex;align-items:flex-start;gap:6px;margin-top:8px;color:var(--fg-mute);font-size:9px;line-height:1.5}
.summary-risk.low{color:var(--green)}
.summary-risk.medium{color:var(--gold)}
.summary-risk.high{color:var(--rose)}
.summary-quicknav{display:flex;justify-content:center;gap:5px;margin-top:8px;flex-wrap:wrap}
.summary-quicknav button{appearance:none;border:0;background:transparent;color:var(--fg-mute);font-family:var(--font-body);font-size:9px;padding:3px 4px;cursor:pointer}
.summary-quicknav button:hover,.summary-quicknav button:focus-visible{color:var(--accent-2);outline:none}
.workbench-content{max-width:1600px;padding:12px 18px 30px}
.workbench-shell{display:flex;flex-direction:column;gap:10px;min-width:0}
.workbench-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;padding:0 2px}
.workbench-context{display:flex;align-items:center;gap:8px;min-width:0;color:var(--fg-dim);font-size:11px}
.workbench-context strong{color:var(--fg);font-size:12px}
.workbench-context .status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}
.workbench-context .mono{font-family:var(--font-mono);font-size:9px;color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.workbench-all-todos{appearance:none;border:0;background:transparent;color:var(--accent-2);font:10px var(--font-mono);cursor:pointer;white-space:nowrap}
.workbench-all-todos:hover{text-decoration:underline}
.workbench-quick-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.workbench-quick{appearance:none;text-align:left;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:58px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);color:var(--fg);cursor:pointer;transition:.15s;min-width:0}
.workbench-quick:hover,.workbench-quick:focus-visible{border-color:var(--accent);background:var(--bg-3);outline:none}
.workbench-quick .quick-icon{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;background:rgba(59,130,246,0.08);color:var(--accent-2);font-size:16px}
.workbench-quick.gold .quick-icon{background:rgba(245,158,11,0.08);color:var(--gold)}
.workbench-quick.violet .quick-icon{background:rgba(139,92,246,0.08);color:var(--violet)}
.workbench-quick.green .quick-icon{background:rgba(34,197,94,0.08);color:var(--green)}
.workbench-quick .quick-copy{min-width:0}
.workbench-quick .quick-title{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workbench-quick .quick-desc{margin-top:2px;color:var(--fg-mute);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workbench-quick>.material-symbols-rounded{font-size:13px;color:var(--fg-mute)}
.workbench-app-shell{--workbench-top-zone-h:168px;width:min(100%,980px);margin:0 auto;gap:12px}
.workbench-mobile-section{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}
.workbench-function-zone,.workbench-todo-zone{height:var(--workbench-top-zone-h);display:flex;flex-direction:column}
.workbench-section-head{height:40px;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px}
.workbench-section-title{display:flex;align-items:center;gap:7px;min-width:0}
.workbench-section-title>.material-symbols-rounded{font-size:16px;color:var(--accent-2)}
.workbench-section-title strong{font-size:12px;color:var(--fg)}
.workbench-section-title span:last-child{font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.workbench-section-head>.mono{font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.workbench-app-shell .workbench-quick-strip{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;padding:0 11px 11px;min-height:0}
.workbench-app-shell .workbench-quick{height:100%;min-height:0;padding:7px 9px}
.workbench-todo-list{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px;padding:0 11px 11px;min-height:0;overflow:auto}
.workbench-todo-list .side-action{height:100%;min-height:0;padding:7px 9px}
.workbench-todo-list .draft-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:7px;padding:0!important}
.workbench-todo-list .draft-empty i{margin:0}
.workbench-conversation-zone{min-height:max(520px,calc(100vh - 476px));overflow:visible;background:transparent;border:0;box-shadow:none}
.workbench-conversation-zone>.workbench-section-head{padding:0 2px}
.workbench-conversation-zone .workbench-finance-chat .chat-dispatch{height:auto;min-height:max(478px,calc(100vh - 518px))}
.workbench-app-shell .chat-layout{grid-template-columns:minmax(0,1fr) 238px}
.role-workbench{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:12px;min-height:calc(100vh - 218px)}
.role-chat{display:flex;flex-direction:column;min-height:580px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.role-chat-log{flex:1;min-height:0;overflow-y:auto;padding:22px 20px;display:flex;flex-direction:column;gap:14px}
.role-chat-composer{margin:0 10px 10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1)}
.role-chat-composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(59,130,246,0.06)}
.role-chat-composer textarea{display:block;width:100%;min-height:44px;max-height:110px;resize:none;background:transparent;border:0;outline:0;color:var(--fg);font:12px/1.6 var(--font-body)}
.role-chat-composer textarea::placeholder{color:#555}
.role-chat-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;color:var(--fg-mute);font-size:9px}
.chat-result-list{display:flex;flex-direction:column;gap:7px;margin-top:8px}
.chat-result-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid rgba(59,130,246,0.15);border-radius:var(--radius);background:var(--bg-2)}
.chat-result-card:hover{border-color:rgba(59,130,246,0.3)}
.chat-result-copy{min-width:0}
.chat-result-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--fg);font-size:11px;font-weight:600}
.chat-result-title .material-symbols-rounded{font-size:15px;color:var(--accent-2)}
.chat-result-summary{margin-top:3px;color:var(--fg-dim);font-size:10px;line-height:1.5}
.chat-result-meta{margin-top:5px;color:var(--fg-mute);font:9px var(--font-mono)}
.chat-result-card .btn{white-space:nowrap}
.role-chat-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.workbench-side-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.workbench-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid var(--border)}
.workbench-side-head strong{font-size:12px}
.workbench-side-head span{font:9px var(--font-mono);color:var(--fg-mute)}
.workbench-side-body{padding:11px;display:flex;flex-direction:column;gap:7px}
.side-action{appearance:none;text-align:left;display:flex;align-items:center;gap:8px;width:100%;padding:9px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);color:var(--fg-dim);cursor:pointer;font-size:11px;transition:.15s}
.side-action:hover,.side-action:focus-visible{border-color:var(--accent);color:var(--fg);outline:none}
.side-action .material-symbols-rounded{color:var(--accent-2);font-size:15px}
.side-action .side-copy{min-width:0;flex:1}
.side-action b{display:block;color:inherit;font-weight:600}
.side-action small{display:block;color:var(--fg-mute);font-size:9px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-todo{padding:9px 0;border-bottom:1px solid var(--border)}
.mini-todo:last-child{border-bottom:0}
.mini-todo .mini-title{font-size:10px;color:var(--fg);line-height:1.4}
.mini-todo .mini-meta{margin-top:3px;font:9px var(--font-mono);color:var(--fg-mute)}
.todos-shell{display:flex;flex-direction:column;gap:12px}
.todo-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.todo-stat{padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.todo-stat .k{font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.todo-stat .v{margin-top:5px;font:700 20px var(--font-mono);color:var(--accent-2)}
.todo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.todo-filters{display:flex;gap:6px;flex-wrap:wrap}
.todo-filter.active{border-color:var(--accent);background:rgba(59,130,246,0.06);color:var(--accent-2)}
.todo-list{display:flex;flex-direction:column;gap:8px}
.todo-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);transition:.15s}
.todo-item:hover{border-color:var(--border-strong);background:var(--bg-3)}
.todo-priority{width:8px;height:8px;border-radius:50%;background:var(--fg-mute)}
.todo-priority.high,.todo-priority.urgent{background:var(--rose)}
.todo-priority.medium{background:var(--gold)}
.todo-priority.low{background:var(--green)}
.todo-copy{min-width:0}
.todo-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;font-weight:600}
.todo-summary{margin-top:4px;color:var(--fg-dim);font-size:11px;line-height:1.5}
.todo-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;color:var(--fg-mute);font:9px var(--font-mono)}
.todo-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:300px}
.domain-access{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.55fr);gap:12px}
.domain-access-main,.domain-access-side{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.domain-access-main h2{font:600 17px var(--font-display)}
.domain-access-main p{margin-top:8px;color:var(--fg-dim);font-size:12px;line-height:1.7;max-width:720px}
.domain-capabilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}
.domain-capability{padding:11px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1)}
.domain-capability strong{display:block;font-size:11px}
.domain-capability span{display:block;margin-top:3px;color:var(--fg-mute);font-size:10px;line-height:1.5}
.domain-access-side .access-label{font:9px var(--font-mono);color:var(--fg-mute);letter-spacing:0.06em;text-transform:uppercase}
.domain-access-side .access-value{margin-top:7px;font-size:14px;font-weight:600;color:var(--gold)}
.domain-access-side p{margin-top:7px;color:var(--fg-dim);font-size:10px;line-height:1.6}
.domain-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

/* ══════════════════ 资金往来台账 ══════════════════ */
.fund-ledger-shell{display:flex;flex-direction:column;gap:18px}
.fund-ledger-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.fund-summary-card{min-width:0;padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);box-shadow:var(--shadow)}
.fund-summary-card .k{display:flex;align-items:center;gap:7px;color:var(--fg-mute);font:9px var(--font-mono);letter-spacing:.06em;text-transform:uppercase}
.fund-summary-card .k .material-symbols-rounded{font-size:15px}
.fund-summary-card .v{margin-top:10px;color:var(--fg);font:600 16px var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fund-summary-card .s{margin-top:5px;color:var(--fg-mute);font-size:10px}
.fund-summary-card.alert .v{color:var(--rose)}
.fund-summary-card.gold .v{color:var(--gold)}
.fund-summary-card.accent .v{color:var(--accent)}
.fund-ledger-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.fund-type-tabs{display:flex;gap:6px;flex-wrap:wrap}
.fund-type-tab{display:inline-flex;align-items:center;gap:6px;min-height:31px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);color:var(--fg-dim);font-size:11px;cursor:pointer}
.fund-type-tab:hover{color:var(--fg);border-color:var(--border-strong)}
.fund-type-tab.active{color:var(--accent);border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.08)}
.fund-type-tab b{font:600 9px var(--font-mono);color:var(--fg-mute)}
.fund-filter-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px 150px auto;gap:8px;align-items:center}
.fund-filter-row .input,.fund-filter-row .select{width:100%}
.fund-ledger-table .fund-title{font-weight:600;color:var(--fg)}
.fund-ledger-table .fund-no{margin-top:3px;color:var(--fg-mute);font:9px var(--font-mono)}
.fund-party-line{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fund-due{display:flex;flex-direction:column;gap:3px;font-size:10px}
.fund-due.overdue{color:var(--rose)}
.fund-due.soon{color:var(--gold)}
.fund-badge{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg-2);color:var(--fg-dim);font:9px var(--font-mono);white-space:nowrap}
.fund-badge.borrowing{color:var(--rose);border-color:rgba(244,63,94,.24);background:rgba(244,63,94,.07)}
.fund-badge.lending,.fund-badge.receivable{color:var(--gold);border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.07)}
.fund-badge.advance{color:var(--accent);border-color:rgba(59,130,246,.24);background:rgba(59,130,246,.07)}
.fund-badge.deposit{color:var(--violet);border-color:rgba(139,92,246,.24);background:rgba(139,92,246,.07)}
.fund-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.fund-detail-title{margin:7px 0 0;font-size:19px}
.fund-detail-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.fund-detail-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.fund-detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}
.fund-detail-stat{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}
.fund-detail-stat .k{color:var(--fg-mute);font-size:9px}
.fund-detail-stat .v{margin-top:6px;font:600 14px var(--font-mono)}
.fund-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.fund-subpanel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);overflow:hidden}
.fund-subpanel.wide{grid-column:1/-1}
.fund-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:10px 13px;border-bottom:1px solid var(--border)}
.fund-subhead h4{font-size:11px}
.fund-subbody{padding:12px}
.fund-kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px 12px;font-size:10.5px}
.fund-kv dt{color:var(--fg-mute)}
.fund-kv dd{margin:0;color:var(--fg);word-break:break-word}
.fund-schedule-list{display:flex;flex-direction:column;gap:7px}
.fund-schedule-item{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);font-size:10px}
.fund-schedule-item.overdue{border-color:rgba(244,63,94,.3)}
.fund-entry-split{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px;color:var(--fg-mute);font-size:9px}
.fund-settle-target{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;margin-bottom:14px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);font-size:10.5px}
.fund-event-list{display:flex;flex-direction:column;gap:2px}
.fund-event-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border)}
.fund-event-item:last-child{border-bottom:none}
.fund-event-dot{width:7px;height:7px;margin-top:5px;border-radius:50%;background:var(--accent);flex:none}
.fund-event-item:first-child .fund-event-dot{background:var(--green)}
.fund-event-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.fund-event-time{color:var(--fg-mute);font-size:9px}
.fund-event-summary{margin-top:3px;color:var(--fg);font-size:10px;line-height:1.6;word-break:break-word}
.fund-event-changes{margin-top:5px;display:flex;flex-direction:column;gap:3px;padding:7px 9px;border-radius:5px;background:var(--bg-2);font-size:9.5px}
.fund-event-changes>div{display:flex;gap:8px;flex-wrap:wrap}
.fund-event-field{color:var(--fg-mute);flex:none}
.fund-event-diff{color:var(--fg);font-family:var(--font-mono);word-break:break-all}
.fund-import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.fund-import-summary>div{padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2)}
.fund-import-summary .k{color:var(--fg-mute);font-size:9px}
.fund-import-summary .v{margin-top:5px;font:600 13px var(--font-mono)}
.fund-import-errors{color:var(--rose);font-size:9.5px;line-height:1.55}
@media(max-width:1120px){
  .chat-layout{grid-template-columns:minmax(0,1fr) 248px}
  .inline-payment-grid{grid-template-columns:minmax(0,1fr) 190px}
  .inline-amount-purpose{padding:14px 12px}
  .workbench-quick-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .role-workbench{grid-template-columns:minmax(0,1fr) 250px}
}
@media(max-width:1120px){
  .fund-ledger-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fund-filter-row{grid-template-columns:1fr 170px 140px}
  .fund-filter-row .fund-refresh{grid-column:1/-1;justify-self:start}
}
@media(max-width:820px){
  .finance-chat-content{padding:10px 12px 28px}
  .workbench-content{padding:10px 12px 28px}
  .chat-dispatch{height:auto;min-height:0}
  .chat-layout{grid-template-columns:1fr;height:auto}
  .chat-main{min-height:620px;max-height:calc(100vh - 104px)}
  .chat-drafts{min-height:430px;max-height:620px}
  .workbench-conversation-zone .workbench-finance-chat .chat-dispatch{height:auto;min-height:620px}
  .workbench-app-shell .chat-layout{grid-template-columns:1fr}
  .role-workbench{grid-template-columns:1fr;min-height:0}
  .role-chat{min-height:600px}
  .todo-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .todo-item{grid-template-columns:10px minmax(0,1fr)}
  .todo-actions{grid-column:2;justify-content:flex-start;max-width:none}
  .domain-access{grid-template-columns:1fr}
}
@media(max-width:820px){
  .fund-ledger-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fund-filter-row{grid-template-columns:1fr}
  .fund-filter-row .fund-refresh{grid-column:auto}
  .fund-detail-grid{grid-template-columns:1fr}
  .fund-subpanel.wide{grid-column:auto}
  .fund-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fund-schedule-item{grid-template-columns:76px minmax(0,1fr)}
  .fund-schedule-item>*:nth-child(n+3){justify-self:start}
  .fund-import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .chat-messages{padding:16px 10px 12px}
  .chat-msg,.chat-msg.user{max-width:100%}
  .chat-msg.user .av{display:none}
  .inline-payment-grid{grid-template-columns:1fr}
  .inline-party-flow{border-right:0;border-bottom:1px solid var(--border)}
  .inline-field-row{grid-template-columns:1fr}
  .inline-amount-purpose{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .inline-money-wrap input{font-size:19px}
  .match-candidates{grid-template-columns:1fr}
  .composer-hint{display:none}
  .chat-input-bar{margin:0 6px 6px}
  .workbench-topline{align-items:flex-start}
  .workbench-context{align-items:flex-start;flex-wrap:wrap}
  .workbench-quick-strip{grid-template-columns:1fr}
  .workbench-quick{min-height:54px}
  .workbench-app-content{flex:1;height:0;min-height:0;overflow:hidden;padding-bottom:10px}
  .workbench-app-shell{--workbench-top-zone-h:180px;display:grid;grid-template-rows:var(--workbench-top-zone-h) var(--workbench-top-zone-h) minmax(0,1fr);height:100%;gap:8px}
  .workbench-app-shell .workbench-quick-strip{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;padding:0 7px 7px}
  .workbench-app-shell .workbench-quick{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:5px 3px;text-align:center}
  .workbench-app-shell .workbench-quick .quick-icon{width:28px;height:28px;font-size:15px;flex-shrink:0}
  .workbench-app-shell .workbench-quick .quick-title{font-size:9px;white-space:normal;line-height:1.2}
  .workbench-app-shell .workbench-quick .quick-desc,.workbench-app-shell .workbench-quick>.material-symbols-rounded{display:none}
  .workbench-todo-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(46px,auto);padding:0 7px 7px}
  .workbench-todo-list .side-action{min-height:46px;height:auto}
  .workbench-section-title span:last-child{display:none}
  .workbench-conversation-zone{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .workbench-conversation-zone>.workbench-section-head{height:36px;min-height:36px}
  .workbench-conversation-zone .workbench-finance-chat{flex:1;min-height:0}
  .workbench-conversation-zone .workbench-finance-chat .chat-dispatch{height:100%;min-height:0}
  .workbench-app-shell .chat-layout{position:relative;display:block;height:100%;min-height:0}
  .workbench-app-shell .chat-main{height:100%;min-height:0;max-height:none}
  .workbench-app-shell .chat-messages{min-height:0;padding:10px 8px 6px}
  .workbench-app-shell .chat-input-bar{flex-shrink:0}
  .workbench-app-shell .chat-drafts{display:none;position:absolute;inset:0;z-index:5;height:100%;min-height:0;max-height:none;background:var(--bg-1)}
  .workbench-app-shell .chat-layout.mobile-batch-open .chat-drafts{display:flex}
  .mobile-batch-toggle{display:inline-flex;align-items:center;gap:5px;appearance:none;border:1px solid var(--border);border-radius:5px;background:var(--bg-2);color:var(--fg-dim);padding:5px 7px;font:9px var(--font-mono);cursor:pointer}
  .mobile-batch-toggle .material-symbols-rounded{font-size:13px;color:var(--accent-2)}
  .mobile-batch-toggle b{color:var(--accent-2)}
  .mobile-batch-close{margin-left:0;width:26px;height:26px;place-items:center;appearance:none;border:1px solid var(--border);border-radius:5px;background:var(--bg-2);color:var(--fg-dim);cursor:pointer}
  .mobile-batch-close .material-symbols-rounded{font-size:14px}
  .chat-result-card{grid-template-columns:1fr}
  .chat-result-card .btn{justify-self:start}
  .todo-overview{grid-template-columns:1fr 1fr}
  .todo-item{padding:11px 10px}
  .domain-capabilities{grid-template-columns:1fr}
}
/* ============== 结算配置 ============== */
.sc-shell{display:flex;flex-direction:column;gap:14px}
.sc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.sc-head h2{font-size:18px}
.sc-head p{margin-top:6px;color:var(--fg-dim);font-size:11px;line-height:1.65}
.sc-tabs{display:flex;gap:4px;padding:5px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);overflow-x:auto}
.sc-tab{appearance:none;display:flex;align-items:center;gap:7px;min-height:36px;padding:7px 13px;border:0;border-radius:7px;background:transparent;color:var(--fg-dim);font:600 11px var(--font-body);cursor:pointer;white-space:nowrap}
.sc-tab .material-symbols-rounded{font-size:16px}
.sc-tab.active{background:var(--accent-strong);color:#fff}
.sc-panel[hidden]{display:none}
.sc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sc-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);overflow:hidden}
.sc-card.wide{grid-column:1/-1}
.sc-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:13px 15px;border-bottom:1px solid var(--border)}
.sc-card-head h3{font-size:12px}
.sc-card-head p{margin-top:4px;color:var(--fg-mute);font-size:10px;line-height:1.55}
.sc-card-body{padding:14px}
.sc-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.sc-check{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:7px;background:var(--bg-2);font-size:10.5px;line-height:1.4;cursor:pointer}
.sc-check input{margin-top:1px;accent-color:var(--accent)}
.sc-check small{display:block;margin-top:3px;color:var(--fg-mute)}
.sc-person-group{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.sc-chip-list{display:flex;flex-wrap:wrap;gap:6px}
.sc-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.28);font-size:11px;line-height:1.4}
.sc-chip .x{border:0;background:none;color:inherit;opacity:.55;cursor:pointer;font-size:13px;line-height:1;padding:0}
.sc-chip .x:hover{opacity:1}
.sc-chip.missing{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.30)}
.sc-person-modal-list{max-height:46vh;overflow:auto;margin-top:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:6px}
.sc-person-modal-list .sc-person-option{display:flex;min-width:0;min-height:52px;align-items:center;gap:10px;margin:0;color:var(--fg);font:12px/1.4 var(--font-body);letter-spacing:normal;text-transform:none}
.sc-person-option input{flex:0 0 auto;margin:0;width:15px;height:15px}
.sc-person-option:has(input:disabled){cursor:not-allowed}
.sc-person-identity{min-width:0;display:flex;align-items:center;gap:9px;flex:1}
.sc-person-avatar{position:relative;display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;overflow:hidden;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,var(--bg-1));color:var(--accent);font-size:13px;font-weight:600}
.sc-person-avatar img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;background:var(--bg-1)}
.sc-person-copy{min-width:0;display:block;text-align:left}
.sc-person-copy b{display:block;font-size:12px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.sc-person-copy small{display:block;font-size:10px;line-height:1.4;color:var(--fg-mute);margin-top:3px;overflow-wrap:anywhere}
.sc-office-person{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--fg);font:inherit;cursor:pointer}
.sc-office-person:hover,.sc-office-person[aria-expanded="true"]{border-color:var(--accent)}
.sc-office-person>.material-symbols-rounded{flex:0 0 18px;font-size:18px;color:var(--fg-mute)}
.sc-office-person:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sc-people-selected{display:flex;align-items:center;flex-wrap:wrap;flex:1;min-width:0;gap:8px 16px;text-align:left;font-size:12px}
.sc-people-selected .sc-person-identity{flex:0 1 auto}
.sc-people-more{color:var(--fg-mute);font-size:11px;white-space:nowrap}
.sc-office-picker{margin-top:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-1)}
.sc-office-person-list{grid-template-columns:1fr;max-height:min(32vh,300px)}
.sc-rule{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(130px,.8fr) minmax(0,1.5fr);gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--border)}
.sc-rule:last-child{border-bottom:0}
.sc-rule-groups{display:flex;flex-wrap:wrap;gap:6px}
.sc-rule-groups .sc-check{padding:6px 8px}
.sc-group-row{display:flex;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}
.sc-group-row:last-child{border-bottom:0}
.sc-group-row .input{flex:1}
.sc-supplier-groups{display:flex;flex-wrap:wrap;gap:6px}
.sc-chip-toggle{position:relative;display:inline-flex;cursor:pointer}
.sc-chip-toggle input{position:absolute;opacity:0;pointer-events:none}
.sc-chip-toggle span{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--bg-2);border:1px solid var(--border);font-size:11px;line-height:1.4;transition:background .12s,border-color .12s}
.sc-chip-toggle:hover span{border-color:rgba(59,130,246,.45)}
.sc-chip-toggle input:checked+span{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.28)}
.sc-chip-toggle input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.sc-both-badge{font-size:9px;font-weight:600;padding:2px 8px;border-radius:4px;font-family:var(--font-mono);letter-spacing:.04em;background:rgba(139,92,246,.1);color:var(--violet);border:1px solid rgba(139,92,246,.2)}
.sc-platform-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.2fr) minmax(180px,1.2fr) auto auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}
.sc-platform-row:last-child{border-bottom:0}
.sc-empty{padding:22px;text-align:center;color:var(--fg-mute);font-size:11px}
.sc-sticky-save{position:sticky;bottom:12px;z-index:8;display:flex;justify-content:flex-end;pointer-events:none}
.sc-sticky-save .btn{pointer-events:auto;box-shadow:0 8px 24px rgba(0,0,0,.24)}
/* ═══ 可视化结算审批流 ═══ */
.sc-flow-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}
.sc-flow-heading h3{font-size:17px;font-weight:600;margin:0 0 6px;color:var(--fg)}
.sc-flow-heading p,.sc-flow-detail-head p{font-size:12px;line-height:1.65;color:var(--fg-dim);margin:0}
.sc-flow-live{display:flex;align-items:center;gap:6px;white-space:nowrap;color:var(--accent-2);font-size:12px}
.sc-flow-live .material-symbols-rounded{font-size:18px}
.sc-flow-track{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:stretch}
.sc-flow-node{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0;text-align:left;background:var(--bg-1);color:var(--fg);border:1px solid var(--border);border-radius:10px;padding:14px 10px;cursor:pointer;font-family:inherit}
.sc-flow-node:not(:last-child)::after{content:'›';position:absolute;right:-11px;top:38px;color:var(--fg-dim);font-size:18px}
.sc-flow-node:hover{background:var(--bg-2);border-color:var(--border-strong)}
.sc-flow-node:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sc-flow-node.active{background:color-mix(in srgb,var(--accent) 7%,var(--bg-1));border-color:var(--accent)}
.sc-flow-node-top{display:flex;justify-content:space-between;align-items:center;width:100%;color:var(--fg-dim)}
.sc-flow-node.active .sc-flow-node-top{color:var(--accent-2)}
.sc-flow-node-top .material-symbols-rounded{font-size:23px}
.sc-flow-step{font:11px var(--font-mono);color:var(--fg-dim)}
.sc-flow-node b{font-size:12px;font-weight:600;line-height:1.5}
.sc-flow-node small{font-size:11px;color:var(--fg-dim);line-height:1.5;overflow-wrap:anywhere}
.sc-flow-branches{display:flex;flex-wrap:wrap;gap:10px 20px;margin:16px 0 22px;color:var(--fg-dim);font-size:11px}
.sc-flow-branches>span{display:inline-flex;align-items:center;gap:5px}
.sc-flow-branches .material-symbols-rounded{font-size:16px;color:var(--accent-2)}
.sc-flow-detail{border:1px solid var(--border);border-radius:12px;background:var(--bg-1);padding:22px}
.sc-flow-detail[hidden]{display:none}
.sc-flow-detail-head{display:flex;align-items:flex-start;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.sc-flow-detail-head h3{font-size:15px;margin:0 0 6px;color:var(--fg)}
.sc-flow-number{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,var(--bg-1));color:var(--accent-2);font:13px var(--font-mono)}
.sc-flow-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;padding-top:20px}
.sc-flow-section{display:flex;flex-direction:column;gap:12px;min-width:0}
.sc-flow-section h4{font-size:12px;font-weight:600;margin:0;color:var(--fg)}
.sc-flow-section .sc-check{align-items:flex-start;font-size:12px;line-height:1.6}
.sc-flow-section .sc-check input{margin-top:3px;accent-color:var(--accent)}
.sc-flow-section .sc-check small{color:var(--fg-dim);line-height:1.6}
.sc-flow-help{font-size:12px;line-height:1.7;color:var(--fg-dim);margin:0}
.sc-flow-rules{font-size:12px;line-height:1.75;color:var(--fg-dim);padding-left:18px;margin:0}
.sc-flow-rules li+li{margin-top:7px}
.sc-flow-outcomes{display:flex;flex-direction:column;gap:9px;font-size:12px;line-height:1.6;color:var(--fg-dim)}
.sc-flow-outcomes b{font-weight:500;color:var(--fg)}
.sc-flow-weekdays{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.sc-platform-directory{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.sc-platform-directory .material-symbols-rounded{font-size:16px;color:var(--accent-2)}
@media(max-width:1050px){
  .sc-flow-track{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sc-flow-node:nth-child(4)::after{display:none}
}
@media(max-width:620px){
  .sc-flow-heading{flex-direction:column;gap:8px}
  .sc-flow-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .sc-flow-node::after{display:none}
  .sc-flow-node{padding:12px}
  .sc-flow-detail{padding:16px}
  .sc-flow-detail-grid{grid-template-columns:minmax(0,1fr);gap:22px}
}
.sc-account-ok{color:var(--green)}
.sc-account-missing{color:var(--gold)}
@media(max-width:920px){
  .sc-grid{grid-template-columns:1fr}
  .sc-card.wide{grid-column:auto}
  .sc-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sc-platform-row{grid-template-columns:1fr 1fr}
  .sc-platform-row>*:nth-child(3){grid-column:1/-1}
  .sc-rule{grid-template-columns:1fr 1fr}
  .sc-rule-groups{grid-column:1/-1}
}
@media(max-width:620px){
  .sc-head{flex-direction:column}
  .sc-check-grid{grid-template-columns:1fr}
  .sc-platform-row,.sc-rule{grid-template-columns:1fr}
  .sc-platform-row>*:nth-child(3),.sc-rule-groups{grid-column:auto}
}

/* ── 结算编辑器 v13（原型 v6–v13 定稿）── */
.ft-badge{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:13px;padding:0 3px;border-radius:3px;font:700 7px var(--font-mono);letter-spacing:.04em;flex:0 0 auto}
.ft-badge.pdf{color:#f472b6;background:rgba(236,72,153,.12);border:1px solid rgba(236,72,153,.38)}
.ft-badge.img{color:#fb923c;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.38)}
.ft-badge.xls{color:#4ade80;background:rgba(74,222,128,.10);border:1px solid rgba(74,222,128,.35)}
.sselect .ss-search{width:100%;height:34px;padding:0 10px 0 31px;margin-bottom:5px;border-radius:7px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border-strong));background:var(--bg-3) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a93a6' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.3-4.3'/></svg>") no-repeat 9px center/13px;color:var(--fg);font:inherit;font-size:12.5px;outline:none;box-shadow:inset 0 1px 3px rgba(0,0,0,.18)}
.sselect .ss-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}
.sselect .ss-search::placeholder{color:var(--fg-mute)}
.sselect .ss-opts{display:flex;flex-direction:column;gap:2px;max-height:226px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.sselect .ss-empty{padding:10px 9px;font-size:11px;color:var(--fg-mute)}
.sselect .ss-create{display:flex;align-items:center;gap:6px;width:100%;padding:8px 9px;margin-top:3px;border:1px dashed var(--border-strong);border-radius:6px;background:transparent;color:var(--accent-2);font:inherit;font-size:12px;cursor:pointer;text-align:left}
.sselect .ss-create:hover{border-color:var(--accent);background:rgba(59,130,246,.08)}
.sselect .ss-create .material-symbols-rounded{font-size:14px;width:14px;height:14px}
.sselect.compact{flex:0 0 auto;width:118px}
.sselect.compact .sselect-btn{height:32px;padding:0 9px;font-size:12px}
.st-iou-days-wrap{width:118px;display:inline-flex}
.st-iou-inline{display:inline-flex;align-items:center;gap:8px}
.st-inv-footer{flex-wrap:wrap}
.st-inv-area>.st-inv-footer{justify-content:flex-start}
.st-verify-out{overflow-wrap:anywhere;word-break:break-word}
.st-attach-area .st-inv-list{min-height:22px}
.attach-check{font-size:11px;line-height:1.6;color:var(--fg-dim);flex:1;min-width:0;overflow-wrap:anywhere}
.attach-check .ok{color:var(--green)}
.attach-check .warn{color:var(--gold);font-weight:600}
.attach-check .err{color:var(--rose)}
.attach-check .warnlist{margin:4px 0 0 16px}
.attach-check .warnlist li{margin-top:2px}
.st-group-row-detail{align-items:stretch}
.st-group-row-detail .field{display:flex;flex-direction:column}
.st-group-row-detail .st-detail-text textarea{flex:1;width:100%;min-height:132px}
.st-detail-attach .st-attach-area{flex:1;display:flex;flex-direction:column;min-height:132px}
.st-detail-attach .st-attach-area .st-inv-list{flex:1}
@media(max-width:760px){
  .st-group-row-main{flex-wrap:wrap}
  .st-group-row-main .field{flex:1 1 44%}
  .st-group-v2 .st-line-amount{flex:1 1 100%;margin-left:0}
  .st-group-v2 .st-group-row.st-group-row-detail{grid-template-columns:1fr}
  .st-cat-body{padding:16px 14px 18px}
  .settlement-line.st-settlement-group{padding:13px}
}

/* ── 编辑器观感照搬原型 v13（2026-08-27 用户拍板：方式保留四按钮、其余对齐原型）── */
.st-group-row-main .st-method-options{display:flex;flex:0 0 auto;gap:6px}
.st-group-row-main .st-method-option{height:42px;padding:0 13px;flex:0 0 auto}
.st-cat-body .sselect-btn{height:42px;padding:0 12px}
.st-cat-body .sselect.compact .sselect-btn{height:32px;padding:0 9px;font-size:12px}
.st-cat-body .sselect-btn .sselect-label{font-size:13px}

/* ---- 编辑器布局微调（用户原型 v14）：内容顶满、总额入标题、明细区等高 ---- */
/* 1) 卡片内容更贴边：费用概况/明细/发票区左右两端一致且更满 */
.st-category-overview{margin:0;width:100%}
.st-group-v2 .st-group-row{padding:8px 0}
.st-inv-area{margin:8px 0 0}
/* 2) 明细附件与明细说明各占一半，网格拉伸保证等高 */
.st-group-v2 .st-group-row.st-group-row-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.st-group-row-detail .st-detail-attach{flex:none;width:auto}
.st-group-row-detail .field{display:flex;flex-direction:column}
.st-group-row-detail .st-detail-text textarea{flex:1;width:100%;height:100%;min-height:132px}
.st-detail-attach .st-attach-area{flex:1;height:100%;min-height:132px}

/* 结算填写：文件输入反馈与项目搜索命中 */
.sselect-option mark{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-weight:700;border-radius:2px}
.sselect.ss-project .ss-opts{max-height:302px}
.sselect.ss-project .sselect-option{height:36px;flex-shrink:0}
.sselect.ss-project .sso-text{white-space:nowrap}
.st-file-dragover{outline:2px dashed var(--accent);outline-offset:3px;background:color-mix(in srgb,var(--accent) 6%,var(--bg-1))!important}
.st-file-status{font-size:11px;color:var(--fg-dim);line-height:1.6;min-height:18px}
.st-file-status:empty{display:none}
.st-invoice-supplement{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-1)}
.st-invoice-supplement .input{flex:1;min-width:180px}
@media(max-width:620px){.st-desc-foot{gap:12px}.st-desc-amount{width:100%;margin:0}.st-desc-amount .st-line-amount,.st-desc-amount .money-input{width:100%}.st-desc-attach{flex-basis:100%}}

.sselect-option .ss-keyword-hit{display:inline;margin-left:8px;font-size:10px;color:var(--fg-mute)}


.st-file-download{border:0;padding:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.st-file-download:hover,.st-file-download:focus-visible{color:var(--accent);outline-offset:3px}

/* 结算提交前：直接显示阻断原因，支持跳到具体费用字段。 */
.st-submit-issues{margin-top:14px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--gold) 30%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--gold) 5%,var(--bg-1));font-size:11px;line-height:1.65}
.st-submit-issues-heading{font-weight:600;color:var(--fg)}
.st-submit-issues ul{margin:7px 0 0;padding-left:16px;max-height:250px;overflow-y:auto}
.st-submit-issues li{margin:5px 0;color:var(--fg-dim)}
.st-submit-issues button{padding:0;border:0;background:transparent;color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.st-submit-issues button:hover,.st-submit-issues button:focus-visible{color:var(--accent)}
.st-submit-ready{margin:0;color:var(--green)}
.st-submit-target{outline:2px solid var(--gold)!important;outline-offset:4px;scroll-margin-top:100px}
.st-counterparty-empty{margin:7px 0 0;color:var(--fg-mute);font-size:11px;line-height:1.6}

/* ═══ 结算信息紧凑卡（2026-09-09）：单卡边界，方式/对象/金额横排，材料按需展开 ═══ */
.st-singlepage .st-cat-body{border-top:0;padding-top:4px}
.settlement-line.st-group-compact{gap:12px;padding:14px 16px;border-color:var(--border-strong);background:var(--bg-1);box-shadow:var(--shadow)}
.st-group-compact .st-group-head{padding-bottom:0;border:0;min-height:24px}
.st-group-compact .st-group-head small{color:var(--fg-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-group-compact .st-group-identity{flex:1;min-width:0}
.st-group-compact .st-group-identity .gno{flex-shrink:0}
.st-group-compact .st-group-actions{flex-shrink:0;align-items:center;gap:6px}
.st-group-compact .st-group-actions .btn{height:26px;min-height:26px;padding:3px 6px;font-size:11px}
.st-group-compact .st-group-actions .material-symbols-rounded{font-size:16px}
.st-group-compact .st-del-group{height:26px;min-height:26px;padding:3px 6px}
.st-group-compact .st-group-section{gap:8px}
.st-group-compact .st-group-section+.st-group-section{padding-top:0;border:0}
.st-group-compact .st-desc-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.st-group-compact .st-desc-actions .btn{height:28px;min-height:28px;padding:4px 8px;font-size:11px;border-style:solid}
.st-group-compact .st-desc-actions .material-symbols-rounded{font-size:16px}
.st-group-compact .st-desc-title{white-space:nowrap}
.st-group-compact .st-desc-box{border:0;border-radius:6px;background:var(--bg-2);overflow:visible}
.st-group-compact .st-desc-box .st-desc-input{min-height:64px;height:64px;padding:10px 12px;font-size:12px;line-height:1.7;border-radius:6px}
.st-group-compact .st-desc-attach{flex:none;gap:6px;width:100%}
.st-group-compact .st-desc-attach:not(:has([data-detail-chips]:not(:empty),[data-file-status]:not(:empty),[data-detail-analysis]:not(:empty))){display:none}
.st-group-compact .st-group-row.st-group-row-main{display:grid;grid-template-columns:max-content minmax(150px,1fr) 160px;align-items:start;gap:12px;padding:0}
.st-group-compact .st-group-row-main .field{min-width:0;margin:0}
.st-group-compact .st-group-row-main .st-target-field{width:176px;max-width:100%}
.st-group-compact .st-group-row-main .field>label{display:block;margin:0 0 6px;font-size:10px;color:var(--fg-dim)}
.st-group-compact .st-group-row-main .st-method-options{gap:4px}
.st-group-compact .st-method-option{height:36px;padding:0 10px;gap:5px;font-size:11px}
.st-group-compact .st-method-option .material-symbols-rounded{font-size:16px}
.st-group-compact .st-group-row-main .sselect-btn{height:36px;padding:0 10px}
.st-group-compact .st-line-amount .money-input{width:100%;height:36px;font-size:16px;font-weight:600;text-align:right;background:var(--bg-2)}
.st-group-compact .st-group-section.st-invoice-section{padding-top:10px;border-top:1px solid var(--border)}
.st-group-compact .st-inv-area{margin:0;border:0;border-radius:0;background:transparent}
.st-group-compact .st-inv-inner{padding:0}
.st-group-compact .st-inv-top{gap:8px}
.st-group-compact .st-inv-top>.btn{height:30px;min-height:30px;padding:4px 9px;font-size:11px}
.st-group-compact .st-inv-top .material-symbols-rounded{font-size:16px}
.st-group-compact .st-iou-check{font-size:11px;white-space:nowrap}
.st-group-compact .st-iou-inline{gap:6px}
.st-group-compact .st-iou-days-wrap .sselect-btn{height:30px;padding:0 7px}
.st-group-compact .st-invoice-files{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.st-group-compact .st-inv-list{margin:8px 0 0;min-height:0;min-width:0;gap:6px;flex:1}
.st-group-compact .st-desc-chips{margin:0}
.st-group-compact .st-inv-list:empty,.st-group-compact .attach-check:empty{display:none}
.st-group-compact .st-invoice-reference{display:block;min-width:0;margin-top:8px;padding:0;font-size:11px}
.st-group-compact .st-invoice-reference[hidden]{display:none}
.st-group-compact .st-invoice-reference summary{padding:5px 0;color:var(--fg-dim);cursor:pointer}
.st-group-compact .st-invoice-reference[open]{flex:1 1 100%}
.st-group-compact .st-invoice-reference .input{height:34px}
.st-group-compact .st-invoice-reference small{display:block;margin-top:4px}
.st-group-compact .st-inv-footer{padding:8px 0 0}
.st-group-compact .st-inv-footer:not(:has(.st-verify-out:not(:empty))){display:none}
.st-group-compact .inv-chip{max-width:100%}
.st-group-compact .inv-chip .no{min-width:0;max-width:220px}
/* 发票附件名固定约五个汉字宽度（2026-09-14 用户确认）：固定宽度、超出省略，悬停 title 看全名。 */
.inv-chip .no.st-inv-name,.st-group-compact .inv-chip .no.st-inv-name{min-width:0;width:5em;max-width:5em;flex:0 0 5em}
/* 逐票识别结果（2026-09-14 用户确认）：每票两行、字段铺开整行宽度。 */
.st-inv-check-list{margin-top:6px}
.st-inv-check-row{padding:5px 2px 4px;border-bottom:1px dashed var(--border);font-size:11px}
.st-inv-check-row:last-child{border-bottom:0}
.st-inv-check-l1,.st-inv-check-l2{display:flex;align-items:baseline;gap:10px;min-width:0}
.st-inv-check-l1 b{font-family:var(--font-mono);font-weight:600;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-inv-check-date{flex:0 0 auto;color:var(--fg-mute)}
.st-inv-check-amt{margin-left:auto;flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:600}
.st-inv-check-l2{margin-top:1px}
.st-inv-check-party{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-dim)}
.st-inv-check-status{margin-left:auto;flex:0 0 auto;color:var(--fg-mute);text-align:right}
/* 附件/发票预览弹窗（简约版，2026-09-14）：顶栏仅标题+图标工具，翻页箭头悬浮在内容两侧。 */
.st-preview-tools{display:flex;align-items:center;gap:6px}
.st-preview-tools button{width:30px;height:30px;border-radius:6px;background:transparent;border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;display:grid;place-items:center;transition:all .15s;flex-shrink:0}
.st-preview-tools button:hover{color:var(--accent);border-color:var(--accent)}
.st-preview-body{position:relative;display:flex;align-items:center;justify-content:center;min-height:300px;padding:14px 56px;background:var(--bg-2)}
.st-preview-stage{display:flex;align-items:center;justify-content:center;width:100%;min-width:0}
.st-preview-stage img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:6px}
.st-preview-stage iframe{width:100%;height:70vh;border:0;border-radius:6px;background:#fff}
.st-preview-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:rgba(15,18,26,.5);border:1px solid rgba(255,255,255,.28);color:#fff;cursor:pointer;display:grid;place-items:center;z-index:2;transition:background .15s}
.st-preview-arrow:hover{background:rgba(15,18,26,.75)}
.st-preview-arrow.prev{left:9px}
.st-preview-arrow.next{right:9px}
.st-preview-counter{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);z-index:2;padding:3px 10px;border-radius:999px;background:rgba(15,18,26,.55);color:#fff;font-size:10.5px;font-variant-numeric:tabular-nums;pointer-events:none}
@media(max-width:1100px){
  .st-group-compact .st-group-row.st-group-row-main{grid-template-columns:max-content minmax(130px,1fr) 140px;gap:8px}
  .st-group-compact .st-method-option{padding:0 8px}
}
@media(max-width:760px){
  .st-group-compact .st-group-row.st-group-row-main{grid-template-columns:minmax(0,1fr) 140px}
  .st-group-compact .st-method-field{grid-column:1 / -1}
  .st-group-compact .st-method-option{flex:1}
  .st-group-compact .st-inv-top{gap:6px}
  .st-group-compact .st-inv-top>span:empty{display:none}
}
@media(max-width:420px){
  .settlement-line.st-group-compact{padding:12px}
  .st-group-compact .st-group-row.st-group-row-main{grid-template-columns:minmax(0,1fr) 110px}
  .st-group-compact .st-iou-days-wrap[style*="hidden"]{display:none}
  .st-group-compact .st-line-amount .money-input{font-size:14px;padding:0 8px}
  .st-group-compact .st-desc-actions .btn{padding:4px 6px}
}

/* ============== 结算审批单（2026-09-16）：核验/审批/排程与只读查看的单据视图 ============== */
.st-doc{display:flex;flex-direction:column;gap:16px;min-width:0}
.settlement-layout.st-doc-solo{grid-template-columns:minmax(0,1fr)}
.st-doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow)}
.st-doc-meta{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}
.st-doc-meta>span{font:9px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--fg-mute)}
.st-doc-meta>b{font-size:12px;font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-doc-meta>b small{margin-left:6px;font:500 10px var(--font-mono);color:var(--fg-mute)}
.st-doc-meta>small{font-size:10px;line-height:1.5;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-doc-amounts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.st-doc-amt{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);min-width:0}
.st-doc-amt span{font:9px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--fg-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-doc-amt b{font:600 13.5px var(--font-mono);color:var(--fg);white-space:nowrap}
.st-doc-amt small{font-size:10px;color:var(--fg-dim)}
.st-doc-amt.warn{border-color:color-mix(in srgb,var(--rose) 45%,transparent);background:color-mix(in srgb,var(--rose) 7%,var(--bg-2))}
.st-doc-amt.warn b,.st-doc-overdue{color:var(--rose)}
.st-doc-overdue{font-weight:600}
.st-doc-section{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);box-shadow:var(--glass-shadow);min-width:0}
.st-doc-section>h3{font:600 13px var(--font-display)}
.st-doc-cat{border:1px solid var(--border);border-radius:9px;background:var(--bg-2);overflow:hidden}
.st-doc-cat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border)}
.st-doc-cat-head b{font:600 12.5px var(--font-display);color:var(--fg)}
.st-doc-cat-head>span{display:inline-flex;align-items:baseline;gap:5px;font:9.5px var(--font-mono);color:var(--fg-mute);white-space:nowrap}
.st-doc-cat-head>span b{font:600 11px var(--font-mono);color:var(--gold)}
.st-doc-cat-summary{padding:10px 14px;border-bottom:1px solid var(--border);font-size:11.5px;line-height:1.7;color:var(--fg-dim);background:color-mix(in srgb,var(--bg-3) 30%,transparent)}
.settlement-line.st-doc-line{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0;margin:0;padding:13px 14px;border-bottom:1px solid var(--border);background:transparent;text-align:left}
.st-doc-line:last-child{border-bottom:0}
.st-doc-label{display:block;font:9px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:5px}
.st-doc-line-main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 148px;gap:14px;align-items:start}
.st-doc-desc p{font-size:12px;line-height:1.65;color:var(--fg);white-space:pre-wrap;overflow-wrap:anywhere}
.st-doc-target p{display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0}
.st-doc-target p b{font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-doc-target p small,.st-doc-account{font-size:10px;color:var(--fg-mute)}
.st-doc-amount{text-align:right}
.st-doc-amount b{display:block;font-size:14px}
.st-doc-amount small{font-size:10px;color:var(--fg-mute)}
.st-doc-line-docs{display:flex;flex-direction:column;gap:6px;padding-top:9px;border-top:1px dashed var(--border)}
.st-doc-docs-copy{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--fg-dim)}
.st-iou-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:4px;border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);background:color-mix(in srgb,var(--gold) 10%,transparent);color:var(--gold);font:600 10px var(--font-mono);white-space:nowrap}
.st-iou-badge.overdue{border-color:var(--rose);background:color-mix(in srgb,var(--rose) 12%,transparent);color:var(--rose)}
.st-iou-badge.done{border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent);color:var(--green)}
.st-doc-chips{display:flex;flex-direction:column;gap:6px}
.st-doc-invoice-check{font-size:11px}
.st-doc-invoice-check summary{cursor:pointer;font-size:10.5px;color:var(--fg-mute)}
.st-doc-invoice-check[open] summary{margin-bottom:6px}
.st-doc-plan,.st-doc-posting{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);border-radius:8px;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.st-doc-posting{border-color:color-mix(in srgb,var(--violet) 20%,transparent);background:color-mix(in srgb,var(--violet) 5%,transparent)}
.st-doc-plan-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.st-doc-plan-copy b{font-size:12px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-doc-plan-copy small{font-size:10px;color:var(--fg-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-doc-posting>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-doc-posting>div b{font-size:12px}
.st-doc-posting>div small{font-size:10px;color:var(--fg-mute)}
.st-doc-posting>.td-mono{font-size:10px;color:var(--green);font-weight:600}
.st-doc-schedule{padding-top:9px;border-top:1px dashed var(--border)}
.st-doc-supplement{margin-top:9px}
.st-doc-reconfirm{align-self:flex-start}
.st-doc-attach-list{display:flex;flex-direction:column;gap:8px}
.st-doc-attach-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}
.st-doc-attach-row>.material-symbols-rounded{font-size:18px;color:var(--fg-mute)}
.st-doc-attach-row>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.st-doc-attach-row b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-doc-attach-row small{font-size:10px;color:var(--fg-mute)}
.st-doc-trail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.st-doc-trail li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px dashed var(--border)}
.st-doc-trail li:last-child{border-bottom:0}
.st-doc-trail time{font:10px var(--font-mono);color:var(--fg-mute);padding-top:2px;white-space:nowrap}
.st-doc-event b{font-size:12px;margin-right:8px}
.st-doc-event span{font-size:11px;color:var(--fg-dim);margin-right:8px}
.st-doc-event small{font-size:10px;color:var(--fg-mute)}
.st-doc-event p{margin-top:3px;font-size:11px;line-height:1.6;color:var(--fg-dim);overflow-wrap:anywhere}
.st-doc-rail-hint{font-size:10.5px;line-height:1.6;color:var(--fg-mute);margin-top:8px}
@media(max-width:1080px){
  .st-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .st-doc-amounts{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:740px){
  .st-doc-grid,.st-doc-amounts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .st-doc-line-main{grid-template-columns:minmax(0,1fr)}
  .st-doc-amount{text-align:left}
  .st-doc-plan,.st-doc-posting{grid-template-columns:1fr;gap:6px}
  .st-doc-trail li{grid-template-columns:1fr;gap:3px}
}
