:root{--ink:#16181d;--ink-2:#3a3f4a;--muted:#5b6170;--line:#ecedf0;--line-2:#d5d8de;--bg:#fff;--bg-soft:#f4f5f7;--accent:#ea580c;--accent-ink:#c2410c;--accent-soft:#fff4ed;--pos:#15803d;--neg:#b91c1c;--radius:14px;color:var(--ink);background:var(--bg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:var(--accent-ink)}a:hover{color:#9a3412}h1{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:800}h2{margin:0 0 12px;font-size:18px;font-weight:700}button,input,select{font:inherit;color:inherit}input,select{border:1px solid var(--line-2);background:#fff;border-radius:10px;min-width:0;min-height:44px;padding:0 12px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:13px}.strong{font-weight:700}.pos{color:var(--pos)}.neg{color:var(--neg)}.error{color:var(--neg);background:#fef2f2;border-radius:10px;margin:0;padding:10px 14px}.saved{color:var(--pos);background:#f0fdf4;border-radius:10px;margin:0;padding:10px 14px}.boot,.empty{color:var(--muted);text-align:center;padding:24px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-ink);color:#fff}.btn-ghost{border-color:var(--line-2);color:var(--ink);background:#fff}.btn-ghost:hover{background:var(--bg-soft);color:var(--ink)}.btn-ghost.danger{color:var(--neg)}.btn-wide{width:100%}.btn-icon{border:1px solid var(--line-2);cursor:pointer;background:#fff;border-radius:10px;width:36px;height:36px}.btn-plus{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;font-size:26px;text-decoration:none;display:flex}.btn-plus:hover{background:var(--accent-ink);color:#fff}.row-gap{align-items:center;gap:8px;display:flex}.row-gap.wrap{flex-wrap:wrap}.topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:12px 24px;max-width:1280px;min-height:68px;margin:0 auto;padding:0 24px;display:flex}.brand{letter-spacing:-.02em;color:var(--ink);font-size:18px;font-weight:800;text-decoration:none}.brand span{color:var(--accent);font-weight:700}.nav{flex-wrap:wrap;flex:auto;gap:4px;display:flex}.nav-pill{color:var(--ink-2);border-radius:999px;padding:10px 16px;font-size:14px;text-decoration:none}.nav-pill:hover{background:var(--bg-soft);color:var(--ink)}.nav-pill.active{background:var(--ink);color:#fff;font-weight:600}.topbar-right{align-items:center;gap:10px;display:flex}.whoami{color:var(--muted);font-size:14px}.page{flex-direction:column;gap:24px;max-width:1280px;margin:0 auto;padding:32px 24px 64px;display:flex}.page.narrow{max-width:640px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head p{margin:6px 0 0}.hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.hero-main{flex-direction:column;gap:8px;display:flex}.hero-number{letter-spacing:-.04em;font-size:clamp(44px,7vw,72px);font-weight:800;line-height:1}.hero-sub{color:var(--ink-2);flex-wrap:wrap;gap:24px;font-size:16px;display:flex}.segmented{background:var(--bg-soft);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.segmented button{min-height:40px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:14px}.segmented button.on{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 2px #00000014}.segmented.big{grid-template-columns:1fr 1fr;display:grid}.segmented.big button{min-height:46px;font-size:15px}.group-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;display:grid}.group-card{background:var(--bg-soft);color:var(--ink);border-radius:20px;flex-direction:column;gap:14px;min-height:150px;padding:22px;text-decoration:none;display:flex}.group-card:first-child{background:var(--accent-soft)}.group-card:hover{color:var(--ink);outline:1px solid var(--line-2)}.group-card-head{justify-content:space-between;font-size:15px;display:flex}.group-card-number{letter-spacing:-.03em;margin-top:auto;font-size:28px;font-weight:800}.columns{flex-wrap:wrap;gap:24px;display:flex}.columns>.panel{flex:340px;min-width:0}.columns>.panel.wide{flex:2 520px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:20px}.attention{background:var(--bg-soft);color:var(--ink);border-radius:10px;justify-content:space-between;margin-bottom:8px;padding:12px 14px;text-decoration:none;display:flex}.attention.warn{background:var(--accent-soft)}.attention.warn b{color:var(--accent-ink)}.bar-row{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.bar-row-head{justify-content:space-between;gap:12px;font-size:14px;display:flex}.bar{background:var(--line);border-radius:3px;height:6px}.bar>div{background:var(--accent);border-radius:3px;height:6px}.legend{color:var(--muted);gap:16px;margin-bottom:8px;font-size:12px;display:flex}.sw{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.sw.in,.b.in{background:var(--accent)}.sw.out,.b.out{background:#9aa1ae}.months{border-bottom:1px solid var(--line);align-items:flex-end;gap:8px;height:180px;display:flex}.month{height:100%;color:var(--muted);flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:4px;font-size:11px;display:flex}.month-bars{flex:1;justify-content:center;align-items:flex-end;gap:3px;width:100%;display:flex}.b{border-radius:4px 4px 0 0;width:12px;min-height:2px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px 10px}.table .num{text-align:right;white-space:nowrap}.row-warn{background:var(--accent-soft)}.filters{flex-wrap:wrap;gap:8px;display:flex}.search{flex:260px;display:flex}.search input{background:var(--bg-soft);border-color:#0000;border-radius:999px;width:100%;padding:0 18px}.filters select{border-radius:999px}.chip-input{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.chip-input input{border-radius:999px}.totals{background:var(--bg-soft);border-radius:12px;flex-wrap:wrap;gap:24px;padding:12px 16px;font-size:14px;display:flex}.split{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.list{flex-direction:column;flex:3 560px;min-width:0;display:flex}.op-row{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;background:#fff;border-radius:0;grid-template-columns:84px 1fr auto auto;align-items:center;gap:12px;padding:14px 8px;display:grid}.op-row:hover{background:var(--bg-soft)}.op-row.selected{background:var(--accent-soft)}.op-date{color:var(--muted);font-size:13px}.op-main{flex-direction:column;gap:2px;min-width:0;display:flex}.op-title{font-weight:600}.op-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.op-flags{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.op-sum{white-space:nowrap;text-align:right;min-width:110px;font-weight:700}.badge{background:var(--bg-soft);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px}.badge.warn{background:var(--accent-soft);color:var(--accent-ink)}.badge.ok{color:var(--pos);background:#f0fdf4}.pager{justify-content:center;align-items:center;gap:16px;padding:16px;display:flex}.card{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:340px;gap:16px;min-width:0;padding:20px;display:flex;position:sticky;top:84px}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-sum{letter-spacing:-.03em;font-size:30px;font-weight:800}.facts{grid-template-columns:110px 1fr;gap:8px 12px;margin:0;font-size:14px;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.docs{flex-direction:column;gap:8px;display:flex}.doc{font-size:14px}.op-form{flex-direction:column;gap:18px;display:flex}.amount{flex-direction:column;align-items:center;gap:6px;padding:8px 0;display:flex}.amount-row{align-items:center;gap:8px;width:100%;display:flex}.amount-row input{text-align:right;border:0;border-bottom:2px solid var(--line-2);border-radius:0;flex:1;min-height:64px;padding:0 4px;font-size:40px;font-weight:800}.amount-row select{border-radius:999px}.field{border:0;flex-direction:column;gap:6px;margin:0;padding:0;font-size:14px;display:flex}.field>span,.field>legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:13px}.two{grid-template-columns:160px 1fr;gap:12px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-2);cursor:pointer;background:#fff;border-radius:999px;min-height:44px;padding:0 16px;font-size:14px}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.dropzone{color:#9a3412;cursor:pointer;text-align:center;background:#fff8f3;border:1.5px dashed #f0a47a;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:84px;padding:12px;display:flex;position:relative}.dropzone.over{background:var(--accent-soft);border-color:var(--accent)}.pending{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.pending li{justify-content:space-between;align-items:center;gap:8px;display:flex}.form-actions{flex-direction:column;gap:8px;display:flex}.check{align-items:center;gap:8px;font-size:14px;display:flex}.check input{min-height:auto}.issue .grid-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px;display:grid}.login{background:var(--bg-soft);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:20px;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:32px;display:flex;box-shadow:0 1px 2px #0000000f}@media (width<=640px){.topbar-inner{gap:8px;padding:8px 16px}.whoami{display:none}.page{gap:18px;padding:20px 16px 48px}.op-row{grid-template-columns:1fr auto}.op-date{grid-column:1/-1}.op-flags{display:none}.two{grid-template-columns:1fr}.card{position:static}}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}.tab{color:var(--ink-2);border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 16px;font-size:14px;text-decoration:none}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.admin-section{flex-direction:column;gap:16px;display:flex}.admin-section .panel{flex-direction:column;gap:12px;display:flex}.add-inline{flex-wrap:wrap;gap:8px;display:flex}.add-inline input{flex:220px}.link-btn{color:var(--ink);cursor:pointer;text-align:left;font:inherit;-webkit-text-decoration:underline dotted var(--line-2);text-decoration:underline dotted var(--line-2);text-underline-offset:4px;background:0 0;border:0;padding:0}.link-btn:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.link-btn.small{color:var(--muted);font-size:13px}.chip.static{cursor:default;align-items:center;display:inline-flex}.small-chips .chip{min-height:32px;padding:0 12px;font-size:13px}.row-muted{opacity:.55}.tree,.tree ul{margin:0;padding:0;list-style:none}.tree ul{border-left:1px solid var(--line);margin-left:6px;padding-left:22px}.tree-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.tree>li>.tree-row{font-size:16px;font-weight:700}.tree-flags{align-items:center;gap:12px;display:flex}.tree-add{padding:6px 0 10px}.tree-add input,.tree-add .btn{min-height:36px}.tag-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 24px;margin:0;padding:0;list-style:none;display:grid}.tag-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.role-list{flex-direction:column;gap:6px;display:flex}.role-option{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.role-option.on{border-color:var(--ink)}.role-option input{min-height:auto;margin-top:3px}.check-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 16px;max-height:260px;padding:4px;display:grid;overflow:auto}.toggle{align-items:flex-start;padding:10px 0}.change{margin-right:12px;display:inline-block}.change s{color:var(--muted)}.nowrap{white-space:nowrap}.history{border-left:2px solid var(--line);flex-direction:column;gap:8px;padding-left:12px;font-size:13px;display:flex}.report-wrap{padding:0;overflow-x:auto}.report{font-size:13px}.report th,.report td{white-space:nowrap;padding:9px 12px}.report .sticky{z-index:1;white-space:normal;background:#fff;min-width:240px;max-width:320px;position:sticky;left:0}.report tr.section td{background:var(--bg-soft);font-weight:700}.report tr.section .sticky{background:var(--bg-soft)}.report tr.grand td{border-top:2px solid var(--ink);font-weight:800}.report .badge{margin-left:8px}.table tr.section td{background:var(--bg-soft);font-weight:700}.filters .segmented{flex-wrap:wrap}
