:root{--bg: #f2f5f3;--panel: #fff;--panel-2: #f4f7f5;--border: #dbe3de;--line: #ebf0ed;--text: #13201b;--muted: #5d6c65;--faint: #8b9a92;--accent: #0e8f62;--accent-2: #0a6e4b;--accent-soft: rgba(14, 143, 98, .1);--dr: #0e6e8f;--dr-soft: rgba(14, 110, 143, .1);--cr: #b8343c;--cr-soft: rgba(184, 52, 60, .09);--in: #11895a;--out: #b8343c;--gold: #c98a1e;--warn: #9a6200;--warn-soft: rgba(201, 138, 30, .13);--side: #0d2620;--side-text: #c4d6ce;--side-muted: #6f8f82;--side-line: rgba(255, 255, 255, .07);--r: 6px;--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #0a1210;--panel: #101b18;--panel-2: #14221e;--border: #22352f;--line: #1a2925;--text: #e6efea;--muted: #8fa59b;--faint: #5b7268;--accent: #2bc48a;--accent-2: #1fa372;--accent-soft: rgba(43, 196, 138, .13);--dr: #4fb3d9;--dr-soft: rgba(79, 179, 217, .12);--cr: #f0727a;--cr-soft: rgba(240, 114, 122, .12);--in: #2bc48a;--out: #f0727a;--gold: #e3a740;--warn: #e8a93a;--warn-soft: rgba(232, 169, 58, .13);--side: #070e0c;--side-text: #b9cdc4;--side-muted: #5f7d70;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.01em}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:8px 10px;color:var(--text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled{background:var(--panel-2);color:var(--muted)}label{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted)}label.inline{display:grid;min-width:180px}label.check{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text);font-size:13.5px}label.check input{width:auto;accent-color:var(--accent)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.r{text-align:right}.nowrap{white-space:nowrap}.pad{padding:14px 18px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:5px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-weight:600;font-size:13.5px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-2);color:#fff}.btn.primary.payment,.btn.primary.expense{background:var(--out);border-color:var(--out)}.btn.ghost{padding:6px 10px}.btn.block{width:100%;padding:11px}.link{background:none;border:0;padding:0;color:var(--accent);font-weight:600;cursor:pointer;text-align:left}.link:hover{text-decoration:underline}.link.danger{color:var(--cr)}.icon{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--side-line);background:none;color:inherit;cursor:pointer;font-size:16px}.chip{border:1px solid var(--border);background:var(--panel);border-radius:4px;padding:4px 10px;font-size:12.5px;cursor:pointer;color:var(--text)}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.off{opacity:.5;text-decoration:line-through}.tag{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px;background:var(--panel-2);color:var(--muted);margin-left:4px}.tag:first-child{margin-left:0}.tag.settlement{background:var(--warn-soft);color:var(--warn)}.tag.receipt{background:#11895a1f;color:var(--in)}.tag.payment,.tag.expense{background:var(--cr-soft);color:var(--out)}.tag.journal{background:var(--dr-soft);color:var(--dr)}.bal{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.bal.dr{color:var(--dr)}.bal.cr{color:var(--cr)}.bal.strong{font-weight:600}.in{color:var(--in)}.out{color:var(--out)}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}.side{position:sticky;top:0;height:100vh;background:var(--side);color:var(--side-text);display:flex;flex-direction:column;padding:16px 12px;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 6px 16px;border-bottom:1px solid var(--side-line);font-size:17px;color:#fff}.brand b{color:#3fd39c}.brand.dark{color:var(--text);border:0;padding:0}.brand.dark b{color:var(--accent)}.side nav{flex:1}.nav-label{margin:18px 10px 6px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted)}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:4px;background:none;color:var(--side-text);cursor:pointer;text-align:left;font-size:13.5px}.nav-item .ic{width:18px;text-align:center;opacity:.8}.nav-item:hover{background:var(--side-line);color:#fff}.nav-item.active{background:#3fd39c1f;color:#fff;font-weight:600;box-shadow:inset 3px 0 #3fd39c}.side-foot{display:flex;align-items:center;gap:8px;border-top:1px solid var(--side-line);padding:12px 4px 0}.side-foot .who{display:grid;flex:1;min-width:0;line-height:1.3}.side-foot b{color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-foot small{color:var(--side-muted);font-size:11.5px}.main{min-width:0}.mobilebar{display:none}.page{padding:24px 30px 50px;display:grid;gap:16px;max-width:1400px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head h1{font-size:23px;font-weight:600}.page-head p{margin:4px 0 0;color:var(--muted);max-width:70ch}.page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.boot{padding:40px;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;min-width:0}.card.flush{padding:0;overflow:hidden}.card h2{font-size:15px;font-weight:600}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.card.flush>.card-head{margin:0;border-bottom:1px solid var(--line)}.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.two>*{min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;display:grid;gap:4px;border-top:3px solid var(--accent);min-width:0}.tile.dr{border-top-color:var(--dr)}.tile.dr b{color:var(--dr)}.tile.cr{border-top-color:var(--cr)}.tile.cr b{color:var(--cr)}.tile.cash{border-top-color:var(--gold)}.tile small{font-size:12.5px;color:var(--muted);font-weight:600}.tile b{font-family:var(--mono);font-size:clamp(18px,1.7vw,23px);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.band{background:var(--side);color:#e8f2ed;border-radius:var(--r);padding:16px 20px;display:grid;gap:12px}.band header{display:flex;justify-content:space-between;align-items:baseline}.band h2{font-size:15px;font-weight:600}.band .link{color:#3fd39c}.flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.flow>div{display:grid;gap:2px}.flow small{font-size:12px;color:#8fb1a3}.flow b,.flow .bal{font-family:var(--mono);font-size:16px;font-weight:600;color:#e8f2ed}.flow .bal.dr{color:#7fd0ef}.flow .bal.cr{color:#ff9aa0}.flow .op{color:#6f8f82;font-size:18px}.flow .close{padding-left:14px;border-left:1px solid rgba(255,255,255,.12)}.flow .close .bal{font-size:20px}.ranks{list-style:none;margin:0;padding:0;display:grid}.ranks li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--line)}.ranks li:last-child{border-bottom:0}.ranks .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.ranks .bar{grid-column:1 / -1;height:4px;background:var(--panel-2);border-radius:2px;overflow:hidden}.ranks .bar i{display:block;height:100%}.ranks .bar.dr i{background:var(--dr);opacity:.6}.ranks .bar.cr i{background:var(--cr);opacity:.6}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);background:var(--panel-2);padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl th.r,.tbl td.r{text-align:right}.tbl tr.off td{opacity:.55}.tbl tbody tr:hover td{background:var(--panel-2)}.book tr.day td{background:var(--panel-2);font-size:12.5px}.book tr.daytotal td{border-top:1px solid var(--border);background:var(--panel-2);font-weight:600}.scroll{max-height:420px;overflow:auto}.sumrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border)}.sumrow>div{padding:12px 16px;border-right:1px solid var(--line);display:grid}.sumrow>div:last-child{border-right:0}.sumrow small{font-size:12px;color:var(--muted)}.sumrow b{font-family:var(--mono);font-size:17px;font-weight:600}.amt-v{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.amt-v.dr{color:var(--dr)}.amt-v.cr{color:var(--cr)}.amt-v.strong{font-weight:600}.cell{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}input.bad,.cell.bad{border-color:var(--cr);box-shadow:0 0 0 3px var(--cr-soft)}.cell.cr{color:var(--cr)}.cell.dr{color:var(--dr)}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search{max-width:320px}.narrow{width:auto;min-width:150px}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.weeknav{display:inline-flex;align-items:center;gap:4px}.weekpick{position:relative;display:inline-flex;align-items:center;padding:7px 12px;border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--text);font-weight:600;font-family:var(--mono);font-size:13px;cursor:pointer}.weekpick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}.tabs button{display:grid;gap:1px;text-align:left;border:0;background:none;padding:8px 14px 9px;cursor:pointer;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button small{font-family:var(--mono);font-size:11.5px;font-weight:500;color:var(--faint)}.tabs button small.cr{color:var(--cr)}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.tabs button.on small{color:var(--text)}.link.plain{color:inherit;font-weight:inherit}.link.plain:hover{color:var(--accent)}.mini{border:0;background:none;color:var(--faint);cursor:pointer;font-size:15px;line-height:1;padding:2px 4px;border-radius:3px}.mini:hover{color:var(--text);background:var(--panel-2)}.tag.red{background:var(--cr-soft);color:var(--cr)}.tag.dg{background:var(--dr-soft);color:var(--dr)}.tag.off{opacity:.5;text-decoration:line-through}.tag.k-result{background:var(--accent-soft);color:var(--accent-2)}.tag.k-brok,.tag.k-adjust{background:var(--warn-soft);color:var(--warn)}.tag.k-cash{background:var(--dr-soft);color:var(--dr)}.tag.k-transfer{background:var(--panel-2);color:var(--muted)}.block{display:block}small.block{display:block;margin-top:2px;font-size:12px}.accts{max-width:520px}.accts .tag{margin:1px 4px 1px 0}.tablewrap{overflow-x:auto}.msg.inset{margin:10px 14px 0}.pick{min-width:240px}.strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:var(--panel);border:1px solid var(--border);border-radius:var(--r)}.strip>div{display:grid;gap:2px;padding:11px 14px;border-right:1px solid var(--line);min-width:0}.strip>div:last-child{border-right:0}.strip small{font-size:11.5px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strip .amt-v{font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.strip .end{background:var(--panel-2)}.blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;align-items:start;padding-bottom:70px}.block{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);min-width:0;overflow:hidden}.block.dirty{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.block>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 12px;background:var(--side)}.block>header .name{color:#fff;font-weight:600;font-size:14px;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block>header .name:hover{color:#3fd39c}.block>header .mini{color:var(--side-muted)}.block>header .mini:hover{color:#fff;background:var(--side-line)}.block table{width:100%;border-collapse:collapse;font-size:13px}.block th{text-align:left;font-weight:500;color:var(--text);padding:0 10px 0 12px;height:31px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0;width:52%}.block td{text-align:right;padding:0 6px 0 0;border-bottom:1px solid var(--line);height:31px}.block td>.amt-v{padding-right:6px}.block .cell{width:100%;border:1px solid transparent;background:none;padding:4px 6px;border-radius:3px}.block .cell:hover:not(:disabled){border-color:var(--border)}.block .cell:focus{background:var(--panel);border-color:var(--accent)}.block .cell:disabled{background:none;color:inherit}.block tr.lb th{color:var(--muted);font-weight:600}.block tr.lb{background:var(--panel-2)}.block tr.sub th{font-weight:600;color:var(--dr)}.block tr.sub th small{color:var(--muted);font-weight:500}.block tr.dg th{padding-left:26px;color:var(--muted);font-size:12.5px}.block tr.off th{color:var(--faint);text-decoration:line-through}.block tr.adj th{padding-left:8px}.block .note{border:1px solid transparent;background:none;padding:4px;font-size:12.5px;color:var(--warn)}.block .note:hover,.block .note:focus{border-color:var(--border);background:var(--panel)}.block td.with-x{display:flex;align-items:center;gap:2px;padding-top:1px}.block tr.cash th{color:var(--muted);font-style:italic;cursor:help}.block tr.cash td{cursor:help}.block tfoot th,.block tfoot td{border-bottom:0;height:36px;font-weight:700}.block tfoot td small{font-size:10.5px;font-weight:700;margin-left:4px}.block tr.total.cr{background:var(--cr-soft)}.block tr.total.cr small{color:var(--cr)}.block tr.total.dr{background:var(--dr-soft)}.block tr.total.dr small{color:var(--dr)}.block>footer{display:flex;gap:14px;padding:7px 12px;border-top:1px solid var(--line);font-size:12.5px}.savebar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 18px;background:var(--side);color:#e8f2ed;border-radius:8px;box-shadow:0 12px 34px #0000004d;max-width:calc(100vw - 24px)}.savebar .btn:not(.primary){background:transparent;color:#e8f2ed;border-color:#fff3}@media(min-width:861px){.savebar{left:calc(50% + 120px)}}.final{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start}.finallist .tbl td{padding:6px 12px}.finallist tfoot th{padding:9px 12px;border-top:2px solid var(--border);background:var(--panel-2)}.finallist tr.net th{border-top:1px solid var(--line)}.finallist.red>.card-head h2{color:var(--cr)}.cashform{display:grid;grid-template-columns:140px 130px 130px 110px minmax(160px,1.2fr) minmax(160px,1.6fr) auto;gap:8px;align-items:end;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--panel-2)}.cashform.editing{background:var(--warn-soft)}.cashform label{font-size:11.5px}.cashform .go{display:flex;gap:6px}.tbl.book tr.op td{background:var(--panel-2);font-weight:600}.tbl.book tr.sel td{background:var(--warn-soft)}.tbl.book td{padding:6px 12px}.with-drcr{display:flex;gap:8px}.with-drcr select{width:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.form{display:grid;gap:12px}.msg{margin:0;padding:9px 12px;border-radius:5px;font-size:13.5px}.msg.ok{background:#11895a1a;color:var(--in)}.msg.err{background:var(--cr-soft);color:var(--cr)}.msg.warn{background:var(--warn-soft);color:var(--warn)}.range{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.range label{min-width:150px}.chips{display:flex;gap:6px;flex-wrap:wrap}fieldset.subs{border:1px solid var(--border);border-radius:6px;padding:10px 12px 12px;display:grid;gap:10px;margin:0}fieldset.subs legend{font-size:12.5px;font-weight:600;color:var(--muted);padding:0 4px}.paste-preview{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:5px}.paste-preview div{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px;padding:5px 10px;border-bottom:1px solid var(--line);font-size:13px}.paste-preview .bad{color:var(--cr)}button.tile{text-align:left;cursor:pointer;font:inherit;color:inherit}button.tile:hover{border-color:var(--accent)}.tile.red{border-top-color:var(--cr)}.ranks li .name{text-align:left}.band .amt-v{font-size:16px;font-weight:600;color:#e8f2ed}.band .amt-v.cr{color:#ff9aa0}.band .amt-v.dr{color:#7fd0ef}.band .close .amt-v{font-size:20px}.band .op{font-size:13px}.page.wide{max-width:none}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#08141080;display:grid;place-items:center;padding:16px;z-index:50}.modal{width:min(520px,100%);max-height:90vh;overflow:auto;background:var(--panel);border-radius:8px;border:1px solid var(--border);padding:18px 20px;display:grid;gap:12px;box-shadow:0 20px 50px #0000004d}.modal.wide{width:min(780px,100%)}.modal header{display:flex;justify-content:space-between;align-items:center}.modal h2{font-size:17px}.modal .x{border:0;background:none;font-size:22px;cursor:pointer;color:var(--muted)}.modal p{margin:0}.auth{min-height:100%;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(14,143,98,.14),transparent 50%),var(--bg)}.auth-card{width:min(400px,100%);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:26px 24px;display:grid;gap:14px}.auth-card h1{font-size:21px;margin-top:6px}.auth-card p{margin:0;font-size:13.5px}.print-only{display:none}@media print{body{background:#fff;color:#000}.no-print,.side,.mobilebar,.page-actions,.toolbar,.range{display:none!important}.shell{display:block}.page{padding:0}.page-head p{display:none}.card{border:0}.print-only{display:block}.print-title{font-weight:600;font-size:15px;padding:0 0 8px}.tbl th{background:#eee;color:#000}.tbl td,.tbl th{padding:4px 6px;font-size:11px}.bal.dr,.bal.cr,.in,.out{color:#000}}@media(max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.side{position:fixed;inset:0 auto 0 0;width:min(280px,85vw);z-index:40;transform:translate(-102%);transition:transform .18s}.side.open{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#08141080;z-index:35}.mobilebar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:20;padding:10px 14px;background:var(--side);color:#fff}.mobilebar .icon{color:#fff}.page{padding:16px 14px 40px}.page-head h1{font-size:20px}.sumrow{grid-template-columns:1fr 1fr}.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strip>div{border-bottom:1px solid var(--line)}.final{grid-template-columns:minmax(0,1fr)}.cashform{grid-template-columns:1fr 1fr}.cashform .grow,.cashform .grow2,.cashform .go{grid-column:1 / -1}.blocks{grid-template-columns:minmax(0,1fr)}.savebar{left:12px;right:12px;transform:none}.pick{min-width:0;width:100%}.grid .wide{grid-column:auto}.card.flush{overflow-x:auto}.flow .close{padding-left:0;border-left:0}}@media(prefers-reduced-motion:reduce){.side{transition:none}}.tbl.tree tr.head td{background:var(--panel)}.tbl.tree tr.party td{font-size:13px}.tbl.tree .twig{color:var(--faint);font-family:var(--mono)}button.tag.head{border:0;cursor:pointer;background:var(--accent-soft);color:var(--accent-2);font:inherit;font-size:11px;font-weight:600}button.tag.head:hover{text-decoration:underline}.page-actions .seg button{padding:7px 12px;font-size:13px}.asof{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-size:13px}.asof input{width:auto}.seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--panel)}.seg button{border:0;background:var(--panel);padding:8px 14px;font-weight:600;color:var(--muted);cursor:pointer}.seg button+button{border-left:1px solid var(--border)}.seg button.on{color:#fff;background:var(--accent)}.seg button:hover:not(.on){color:var(--text)}.grid{align-items:start}.fixed-field{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted)}.fixed-field b{font-size:14px;color:var(--text);padding:8px 10px;border:1px dashed var(--border);border-radius:5px;background:var(--panel-2)}.mail{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);height:100vh;min-height:0}.mail-side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--panel)}.mail-tools{display:flex;gap:6px;align-items:center;padding:10px 12px 0}.mail-tools select{flex:1;min-width:0}.mail-tools .btn.ghost{padding:7px 10px}.mail-one{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-search{flex:1.3;min-width:0}.mail-side>.msg{margin:8px 12px 0}.mail-list{list-style:none;margin:10px 0 0;padding:0;overflow-y:auto;flex:1;border-top:1px solid var(--line)}.mail-list li>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:9px 12px 9px 16px;cursor:pointer;color:var(--text);position:relative}.mail-list li>button:hover{background:var(--panel-2)}.mail-list li>button.on{background:var(--accent-soft)}.mail-list .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}.mail-list .when{font-size:12px;color:var(--muted);white-space:nowrap}.mail-list .subj{grid-column:1 / -1;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-list .unread .who,.mail-list .unread .subj{font-weight:700;color:var(--text)}.mail-list .unread:before{content:"";position:absolute;left:5px;top:15px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.mail-pager{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-top:1px solid var(--line)}.mail-read{overflow-y:auto;min-width:0;background:var(--bg)}.mail-msg{padding:16px 22px 30px;display:grid;gap:10px;max-width:980px}.mail-msg h2{font-size:19px}.mail-actions{display:flex;gap:6px;flex-wrap:wrap}.mail-actions .back{display:none}.mail-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;margin:0;font-size:13px}.mail-head dt{color:var(--muted)}.mail-head dd{margin:0;overflow-wrap:anywhere}.mail-atts{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.mail-atts a{display:inline-block;padding:5px 10px;border:1px solid var(--border);border-radius:5px;background:var(--panel);text-decoration:none;color:var(--text);font-size:13px}.mail-atts a:hover{border-color:var(--accent)}.mail-atts small{color:var(--muted)}.mail-html{width:100%;height:70vh;border:1px solid var(--border);border-radius:6px;background:#fff}.mail-text{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.55 var(--font);margin:0;padding:14px 16px;background:var(--panel);border:1px solid var(--border);border-radius:6px}.compose textarea{font:14px/1.5 var(--font)}.compose-files{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--side);color:#e8f2ed;padding:10px 16px;border-radius:8px;z-index:60;box-shadow:0 10px 30px #0000004d;max-width:calc(100vw - 24px)}.mail-test{display:grid;gap:6px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.card-head small.muted{display:block;font-weight:400}@media(max-width:860px){.mail{grid-template-columns:minmax(0,1fr);height:calc(100vh - 56px)}.mail.reading .mail-side{display:none}.mail:not(.reading) .mail-read{display:none}.mail-actions .back{display:inline-flex}.mail-msg{padding:12px 14px 24px}.grid2{grid-template-columns:1fr}}
