:root{color-scheme:light;--bg:#f6f7fb;--panel:#fff;--ink:#172039;--muted:#636e85;--soft:#8b95a7;--line:#e6eaf2;--blue:#3658d6;--blue-dark:#2847bd;--blue-light:#edf1ff;--amber:#996118;--amber-light:#fff4e2;--teal:#11785d;--teal-light:#e9f8f2;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-size:14px}
button,input,select,textarea{font:inherit}
button,select{cursor:pointer}
button{color:inherit}
button:disabled{cursor:wait;opacity:.65}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:none}
.definitions{position:absolute;width:0;height:0}
[hidden]{display:none!important}
.layout{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:25px 16px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:11px;align-items:center;padding:0 8px}
.brand-mark{display:grid;place-items:center;border-radius:11px;background:var(--blue);color:#fff;width:40px;height:40px;box-shadow:0 3px 8px #3454cc35}
.brand-mark svg{width:24px;height:24px}
.brand strong{display:block;font-size:16px;font-weight:750;letter-spacing:.01em}
.brand small{display:block;color:var(--muted);margin-top:4px;font-size:11px}
nav{margin-top:43px;display:grid;gap:6px}
.nav-heading{padding:0 11px 6px;color:var(--muted);font-size:11px;letter-spacing:.07em}
.nav-item{display:flex;align-items:center;gap:10px;text-align:left;padding:12px 11px;border:0;border-radius:8px;background:none;font-weight:550;color:#48546d}
.nav-item:hover{background:var(--bg)}
.nav-item.active{color:var(--blue-dark);background:var(--blue-light);font-weight:700}
.nav-count{margin-left:auto;background:#eef0f6;color:#5a6579;padding:2px 7px;font-size:11px;border-radius:12px;min-width:23px;text-align:center}
.nav-item.active .nav-count{background:#dfe7ff;color:var(--blue-dark)}
.local{margin-top:auto;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:18px 10px 3px;color:var(--muted);font-size:12px}
.local i{width:7px;height:7px;border-radius:50%;background:#28a578;box-shadow:0 0 0 3px #e5f7ef}
.topbar{height:64px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 30px}
.breadcrumbs{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.breadcrumbs svg{width:13px;height:13px;color:var(--soft)}
.breadcrumbs strong{color:var(--ink);font-weight:650}
.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e9edfd;color:var(--blue-dark);font-size:13px;font-weight:700}
main{padding:31px 30px 36px;max-width:1680px;margin:auto}
.page-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
h1,h2,p{margin:0}
h1{font-size:29px;font-weight:760;letter-spacing:.015em;line-height:1.3}
.page-title p,.section-head p,.dialog-head p{color:var(--muted);margin-top:7px;font-size:13px;line-height:1.55}
.primary,.outline,.danger{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;min-height:38px;padding:0 14px;border-radius:8px;font-weight:650;font-size:13px;text-decoration:none;border:1px solid transparent}
.primary{background:var(--blue);color:white;box-shadow:0 2px 4px #1839881a}
.primary:hover{background:var(--blue-dark)}
.outline{background:white;border-color:#dbe2f3;color:var(--blue-dark)}
.outline:hover{background:var(--blue-light)}
.danger{color:#a93b3b;background:#fff4f4;border-color:#f2d8d8}
.danger:hover{background:#ffebeb}
.primary svg,.outline svg{width:17px;height:17px}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:19px}
.metrics article{min-height:94px;display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.metric-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;flex:none}
.blue{background:var(--blue-light);color:var(--blue)}
.amber{background:var(--amber-light);color:var(--amber)}
.teal{background:var(--teal-light);color:var(--teal)}
.metric-label{color:var(--muted);font-size:12px;margin-bottom:5px}
.metrics strong{font-size:24px;font-weight:740;font-variant-numeric:tabular-nums;letter-spacing:-.02em;overflow-wrap:anywhere}
.unit{color:var(--soft);font-size:12px}
.dropzone{display:flex;align-items:center;gap:13px;padding:16px 19px;min-height:87px;margin-bottom:22px;border:1px dashed #aabaf3;border-radius:12px;background:#f1f4ff;transition:background .15s,border-color .15s}
.dropzone.dragging{background:#e3eaff;border-color:var(--blue)}
.drop-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#e2e9ff;color:var(--blue)}
.drop-copy{flex:1}
.drop-copy strong{font-size:14px}
.drop-copy p{font-size:12px;margin-top:5px;color:var(--muted)}
.notice{padding:12px 16px;margin:-7px 0 17px;background:var(--blue-light);border-radius:8px;color:var(--blue-dark);line-height:1.55}
.notice.error{background:#fff0f0;color:#a33131}
.ledger{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px}
h2{font-size:17px;font-weight:740}
.section-head p{margin-top:4px;font-size:12px}
.filters{display:flex;gap:8px;align-items:center}
.search{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;padding:0 9px;color:var(--soft);background:#fff}
.search svg{width:17px;height:17px}
.search input{background:none;outline:none!important;border:0;height:35px;width:196px;padding:0 4px;color:var(--ink);font-size:12px}
.search:focus-within{outline:2px solid var(--blue);outline-offset:1px}
select{height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#43516a;padding:0 10px;font-size:12px}
.table-scroll{overflow:auto}
table{border-collapse:collapse;width:100%;text-align:left;min-width:1060px;font-size:12px}
th{background:#f7f8fc;font-weight:650;color:#5b6780;padding:11px 12px;white-space:nowrap}
td{padding:13px 12px;border-bottom:1px solid #eef0f5;vertical-align:middle;line-height:1.48;overflow-wrap:anywhere}
th:first-child,td:first-child{padding-left:18px}
tbody tr:hover{background:#fbfcff}
td.party{min-width:135px;max-width:185px}
td.item{min-width:120px;max-width:165px}
td.claimant{min-width:66px;max-width:120px}
td.remark{min-width:94px;max-width:200px;white-space:pre-wrap}
td.nowrap,.numeric{white-space:nowrap}
.numeric{text-align:right;font-variant-numeric:tabular-nums}
.secondary{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.tag{display:inline-block;white-space:nowrap;border-radius:5px;padding:2px 6px;font-size:11px;font-weight:650}
.tag.pending{background:var(--amber-light);color:var(--amber)}
.tag.booked{background:var(--teal-light);color:var(--teal)}
.tag.kind{background:var(--blue-light);color:var(--blue-dark)}
.text-button{border:0;background:none;color:var(--blue-dark);padding:4px;font-size:12px;font-weight:650;white-space:nowrap}
.text-button:hover{text-decoration:underline}
.empty{text-align:center;padding:35px 16px 38px}
.empty-icon{display:grid;place-items:center;width:49px;height:49px;border-radius:14px;background:#eff2ff;color:#5269cc;margin:0 auto 12px}
.empty-icon svg{width:25px;height:25px}
.empty p{color:var(--muted);margin-top:6px;font-size:12px}
.table-foot{border-top:1px solid var(--line);padding:12px 18px;color:var(--muted);font-size:12px}
dialog{border:1px solid var(--line);border-radius:15px;padding:20px 22px;background:#fff;color:var(--ink);box-shadow:0 16px 70px #17203c33;width:min(550px,calc(100% - 24px));max-height:calc(100vh - 36px)}
dialog::backdrop{background:#17203965}
#details{width:min(740px,calc(100% - 24px))}
.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}
.dialog-head p{overflow-wrap:anywhere}
.icon-button{display:grid;place-items:center;background:#f3f5fa;border:0;border-radius:7px;width:30px;height:30px;color:var(--muted);flex:none}
.icon-button svg{width:16px;height:16px}
.file-list{padding:0;list-style:none;max-height:290px;overflow:auto}
.file-list li{display:flex;gap:14px;justify-content:space-between;padding:10px 12px;margin-bottom:6px;border-radius:6px;background:var(--bg);overflow-wrap:anywhere}
.file-list small{color:var(--muted);white-space:nowrap}
.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:18px}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 15px;margin:15px 0}
.details-grid label,.item-fields label{display:grid;gap:5px;min-width:0;font-size:12px;color:var(--muted)}
.details-grid input,.details-grid textarea,.item-fields input{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:7px 8px;color:var(--ink);font-size:13px;background:#fff}
.details-grid textarea{resize:vertical}
.details-grid .full-width{grid-column:1/-1}
input[readonly]{background:#f6f7fb}
.detail-flags{background:var(--amber-light);color:var(--amber);padding:10px 12px;border-radius:7px;margin-bottom:12px;line-height:1.55}
.item-fields{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(75px,1fr) minmax(64px,.65fr) auto;gap:8px;align-items:end;margin:9px 0}
.detail-error{color:#a33131;margin-top:12px}
.meta{display:flex;gap:10px;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}
@media(max-width:1000px){.layout{grid-template-columns:176px minmax(0,1fr)}main{padding:25px 20px}.topbar{padding:0 20px}.metrics article{padding:12px}.metrics strong{font-size:20px}.search input{width:154px}}
@media(max-width:690px){.layout{display:block}.sidebar{position:static;height:auto;padding:13px 14px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.brand{padding:0;gap:7px}.brand-mark{width:33px;height:33px}.brand strong{font-size:13px}.brand small,.nav-heading,.local,.topbar{display:none}nav{margin:0;display:flex;gap:3px}.nav-item{padding:8px 7px;font-size:12px;gap:4px}.nav-item svg{display:none}main{padding:19px 13px}.page-title h1{font-size:23px}.page-title p{font-size:12px}.metrics{gap:6px}.metrics article{display:block;min-height:82px;padding:9px 6px}.metric-icon{width:23px;height:23px;border-radius:5px;margin-bottom:5px}.metric-icon svg{width:15px;height:15px}.metric-label,.unit{font-size:10px}.metrics strong{font-size:16px}.dropzone{padding:12px 9px;gap:8px}.drop-icon{display:none}.drop-copy strong{font-size:13px}.drop-copy p{font-size:10px}.section-head{display:grid;padding:13px 12px}.search input{width:min(45vw,196px)}.details-grid{grid-template-columns:1fr}}
.signin{min-height:100dvh;display:grid;place-items:center;padding:24px}
.signin-card{width:min(100%,420px);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 16px 48px #17203c0b}
.signin-card .brand{padding:0;margin-bottom:26px}
.signin-card h1{font-size:25px}
.signin-card>p{color:var(--muted);font-size:13px;line-height:1.55;margin:8px 0 16px}
.signin-card .detail-error{color:#a33131;margin:12px 0 0}
.account-form{display:grid;gap:10px}
.account-form label{display:grid;gap:5px;color:var(--muted);font-size:12px}
.account-form input{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:8px 9px;color:var(--ink);font-size:13px;background:#fff}
.account-form button{justify-self:start}
.signin .account-form button{justify-self:stretch;margin-top:4px}
.account-button{display:flex;align-items:center;gap:7px;min-width:0;border:0;border-radius:8px;background:transparent;padding:3px 6px;font-size:13px}
.account-button:hover{background:var(--bg)}
.account-button>svg{width:14px;height:14px;color:var(--muted)}
#account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}
#admin-panel{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
#reset-account{margin-top:15px}
.account-list{list-style:none;padding:0;margin:8px 0 12px;max-height:220px;overflow:auto}
.account-list li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 0;border-bottom:1px solid var(--line)}
.account-list li>div:first-child{min-width:0;overflow-wrap:anywhere}
.account-list li span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.account-actions{display:flex;flex-wrap:wrap;justify-content:flex-end}
.account-feedback{color:var(--teal);font-size:13px;margin-top:12px}
.account-feedback.error{color:#a33131}
@media(max-width:690px){.topbar{display:flex;height:41px;padding:0 12px}.topbar .avatar{width:25px;height:25px}.breadcrumbs{font-size:12px}}
