:root{--bg:#091011;--panel:#111a1c;--panel2:#0d1719;--line:#294044;--line2:#36575c;--text:#edf5f3;--muted:#96aba8;--gold:#e3bc63;--green:#65dbad;--red:#ff7f8a;--cyan:#75d5da}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Microsoft JhengHei",sans-serif;font-size:17px}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}aside{background:#080d0e;border-right:1px solid var(--line);padding:24px 14px;position:sticky;top:0;height:100vh}.brand{font-size:23px;font-weight:900;padding:4px 8px 20px;border-bottom:1px solid var(--line)}.brand small{display:block;font-size:12px;color:var(--muted);margin-top:6px;letter-spacing:.12em}nav{display:grid;gap:8px;margin-top:18px}nav a,.side-bottom a{color:var(--text);text-decoration:none;padding:14px 12px;border-radius:9px;font-weight:700}nav a:hover,nav a.active{background:#142022;color:#ffe09a}.side-bottom{position:absolute;bottom:20px;left:14px;right:14px;display:grid;gap:4px}main{padding:26px;min-width:0}h1{font-size:34px;margin:0 0 6px}h2{margin:0 0 14px;font-size:23px}h3{margin:12px 0}.sub,.muted{color:var(--muted)}.sub{margin:0}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.compact-head{margin-bottom:12px}.head-actions,.toolbar-buttons,.actions,.quick-buttons{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.overview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}section{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.metrics>div{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:15px}.metrics span{display:block;color:var(--muted);font-size:14px}.metrics b{display:block;font-size:28px;margin-top:7px}.metrics b small{font-size:13px;color:var(--muted)}.head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.head h2{margin:0}.grid,.report-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;margin-bottom:12px}.span2{grid-column:1/-1}label{display:grid;gap:6px;font-weight:700}input,select,button,.btn{height:42px;border-radius:8px;border:1px solid #38555a;background:#0c1618;color:var(--text);padding:0 11px;font:inherit}button,.btn{cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button.primary,.primary.btn{background:linear-gradient(#ffe18b,#d0a03e);border-color:#ffe18b;color:#18130b;font-weight:900}.big{font-size:18px}.small{height:32px;font-size:14px;padding:0 9px}.danger{border-color:#6d353b;color:#ff9da5;background:#281417}.table{overflow:auto;border:1px solid var(--line);border-radius:9px}table{border-collapse:collapse;width:100%;min-width:860px}th,td{padding:11px 10px;border-bottom:1px solid #243538;text-align:left;vertical-align:middle}th{background:#142326;color:#cfe0dd;white-space:nowrap}.sheet-table table{min-width:1350px}.green{color:var(--green)!important}.red{color:var(--red)!important}.empty{text-align:center;color:var(--muted)}.empty-box{padding:18px;color:var(--muted);border:1px dashed var(--line);border-radius:9px}.nature{padding:5px 9px;border-radius:999px;font-size:13px;font-weight:800}.nature.physical{background:#123a31;color:#77e0b5}.nature.virtual{background:#302718;color:#f3c96c}.unit-switch{display:flex;align-items:center;gap:6px;color:var(--muted);flex-wrap:wrap}.unit-switch a{color:var(--text);text-decoration:none;border:1px solid var(--line2);border-radius:8px;padding:8px 12px;font-weight:800}.unit-switch a.active{background:#3b311a;border-color:#c59a46;color:#ffe09a}.checkline{display:flex;align-items:center;gap:8px}.checkline input,.mini-check input{width:18px;height:18px}.mini-check{display:flex;align-items:center;gap:5px;font-size:14px}.row-actions{display:flex;gap:6px;align-items:center}.row-actions form{margin:0}.pill{padding:5px 9px;border-radius:999px;font-size:14px;font-weight:800}.pill.in{background:#123a31;color:#77e0b5}.pill.out{background:#412025;color:#ff989f}.flash{position:fixed;right:20px;top:18px;background:#203034;border:1px solid #476166;padding:11px 14px;border-radius:8px;z-index:100}.pin{font-size:42px;font-weight:900;letter-spacing:.18em;color:var(--gold)}
/* dialogs */dialog{width:min(760px,94vw);max-height:88vh;overflow:auto;background:#0d1719;color:var(--text);border:1px solid var(--line2);border-radius:14px;padding:18px;box-shadow:0 30px 90px #000b}dialog.wide-dialog{width:min(1100px,96vw)}dialog::backdrop{background:#0009}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.dialog-head h2{margin:0}.dialog-head button{font-size:25px;width:42px}.dialog-actions{display:flex;justify-content:flex-end}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}.inline-form input{min-width:140px;flex:1}.manager-list{display:grid;gap:7px;margin:10px 0 16px}.manager-row{display:grid;grid-template-columns:90px 1fr 1.4fr 90px;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px;background:#101b1d}.manager-row form{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr 90px 90px 80px;gap:7px}.manager-row.compact{grid-template-columns:1fr 100px 80px}.type-list .manager-row{display:grid}.menu-manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
/* spreadsheet */.sheet-panel{padding:0;overflow:hidden}.sheet-title{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;background:#132226;border-bottom:1px solid var(--line)}.sheet-title h2{margin:0}.sheet-title span{color:var(--muted);font-size:13px}.sheet-entry{display:grid;gap:0;overflow:auto}.sheet-entry.v05{grid-template-columns:158px 125px 125px 145px 190px 105px 90px 125px 130px minmax(180px,1fr) 92px}.sheet-entry label,.save-cell{min-width:0;border-right:1px solid #24383c}.sheet-entry label>span{display:block;height:32px;background:#142326;color:#bcd2cf;padding:7px 9px;font-size:13px}.sheet-entry input,.sheet-entry select{width:100%;height:50px;border:0;border-radius:0;background:#0c1517}.sheet-entry .preview output{display:flex;align-items:center;height:50px;padding:0 12px;color:var(--gold);font-weight:900;background:#0c1517}.save-cell{display:flex;align-items:end;background:#0c1517;padding:7px}.save-cell button{width:100%}
/* horizontal account ledger cards */.account-filter{display:flex;gap:7px;flex-wrap:wrap}.account-filter button.active{background:#3b311a;border-color:#c59a46;color:#ffe09a}.account-rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 18px;scrollbar-width:thin}.account-card{flex:0 0 min(860px,calc(100vw - 300px));scroll-snap-align:start;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:17px}.account-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:13px}.account-kicker{color:var(--gold);font-weight:800;font-size:14px}.account-card-head h2{font-size:29px;margin:5px 0}.account-card-head p{margin:0;color:var(--muted)}.card-balance{text-align:right;min-width:210px}.card-balance label{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--muted);font-size:13px}.card-balance select{height:34px;width:100px}.card-balance>span{display:block;color:var(--muted);font-size:13px;margin-top:10px}.card-balance>b{display:block;font-size:31px;margin-top:4px}.account-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:13px 0}.account-metrics>div{border:1px solid var(--line);border-radius:9px;padding:11px}.account-metrics span{display:block;color:var(--muted);font-size:13px}.account-metrics b{display:block;font-size:19px;margin-top:5px}.ledger-title{display:flex;justify-content:space-between;align-items:center;margin:12px 0 8px}.ledger-title span{color:var(--muted);font-size:13px}.account-ledger table{min-width:950px}
body.login{display:grid;place-items:center;min-height:100vh}.login-box{width:min(420px,90vw);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;display:grid;gap:15px}.login-box h1{margin:0}.login-box input,.login-box button{height:52px;font-size:21px}.login-box button{background:linear-gradient(#ffe18b,#d0a03e);color:#17130c;font-weight:900}.err{color:var(--red)}
@media(max-width:1100px){.app{grid-template-columns:190px 1fr}main{padding:18px}.metrics{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start;flex-direction:column}.account-card{flex-basis:calc(100vw - 230px)}.menu-manage-grid{grid-template-columns:1fr}.manager-row{grid-template-columns:1fr}.manager-row form{grid-template-columns:1fr 1fr}.overview-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.app{display:block}aside{position:static;height:auto}.side-bottom{display:none}nav{grid-template-columns:repeat(2,1fr)}main{padding:12px}.metrics,.grid,.report-grid{grid-template-columns:1fr}.span2{grid-column:auto}.overview-toolbar{padding:9px}.account-card{flex-basis:92vw}.account-metrics{grid-template-columns:repeat(2,1fr)}.account-card-head{flex-direction:column}.card-balance{text-align:left}.card-balance label{justify-content:flex-start}.manager-row form{grid-template-columns:1fr}h1{font-size:28px}}
