:root{--accent:#2563eb;--accent-ink:#1d4ed8;--accent-soft:#eaf0fe;--ink:#0f172a;--muted:#64748b;--faint:#94a3b8;--line:#e5e9f0;--line-strong:#d3dae4;--paper:#ffffff;--mist:#f6f7fa;--sunken:#f8fafc;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(15,23,42,.05);--shadow:0 4px 16px rgba(15,23,42,.06)}*{box-sizing:border-box}body{font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--mist);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}body,h1,h2,p{margin:0}button,input,select{font:inherit}a,button{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,select:focus-visible{outline-offset:0}.shell{min-height:100dvh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;overflow:auto;background:var(--paper);border-right:1px solid var(--line);padding:20px 12px}.shell-brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;letter-spacing:.02em;padding:6px 12px 18px}.shell-brand:before{content:"";width:10px;height:22px;border-radius:3px;background:linear-gradient(180deg,var(--accent),#7aa2f7)}.sidebar nav a{display:flex;align-items:center;padding:9px 12px;margin:2px 0;border-radius:var(--radius-sm);color:#3d4a5c;font-weight:500;text-decoration:none;transition:background .15s ease,color .15s ease}.sidebar nav a:hover{background:var(--sunken);color:var(--ink);text-decoration:none}.sidebar nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.nav-group{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:18px 12px 6px;font-weight:600}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;min-height:64px;padding:12px 32px;display:flex;gap:16px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap}.topbar>span{font-weight:600;color:var(--ink)}.mobile-menu,.topbar button{background:var(--paper);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:36px;padding:4px 12px;transition:background .15s ease,border-color .15s ease}.mobile-menu:hover,.topbar button:hover{background:var(--sunken)}.identity{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--muted)}.identity span{color:var(--ink);font-weight:500}.main-content{padding:28px 32px 64px;width:100%;max-width:1320px}.main-content h1{font-size:26px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}.main-content h2{font-size:18px;font-weight:600;margin:0 0 12px}.main-content h3{font-size:15px;font-weight:600;margin:20px 0 8px}.main-content>p{margin:0 0 18px;color:var(--muted);max-width:80ch}.notice{padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--ink)}.notice p+p{margin-top:8px}.notice[role=alert]{border-color:#fecaca;background:#fef2f2;color:#991b1b}.muted{color:var(--muted)}.mobile-menu{display:none}.ledger-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 16px;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.ledger-actions label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.01em}.ledger-actions input,.ledger-actions select{min-width:180px;max-width:100%;padding:8px 12px}.ledger-actions button,.ledger-actions input,.ledger-actions select{min-height:38px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.ledger-actions button{padding:6px 14px;font-weight:500;transition:background .15s ease,border-color .15s ease,transform .05s ease}.ledger-actions button:not(:disabled):hover{background:var(--sunken)}.ledger-actions button:not(:disabled):active{transform:translateY(1px)}.ledger-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.ledger-actions button.primary:not(:disabled):hover{background:var(--accent-ink)}.ledger-actions a{display:inline-flex;align-items:center;min-height:38px;padding:6px 14px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--accent-ink);font-weight:500}.ledger-actions a[aria-current=page]{background:var(--accent-soft);border-color:#dbe6fd}.ledger-actions a:hover{background:var(--sunken);text-decoration:none}.ledger-table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:auto;margin-bottom:16px}.ledger-table-wrap table{width:100%;border-collapse:separate;border-spacing:0;text-align:left;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ledger-table-wrap th{position:sticky;top:0;z-index:1;background:var(--sunken);color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.ledger-table-wrap td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink)}.ledger-table-wrap tbody tr:last-child td{border-bottom:0}.ledger-table-wrap tbody tr:hover td{background:#fbfcfe}.ledger-table-wrap td small{display:block;font-size:12px;color:var(--faint);overflow-wrap:anywhere;margin-top:2px}.ledger-table-wrap caption{text-align:left;padding:14px 16px 4px;color:var(--muted);font-size:13px;font-weight:600}.ledger-table-wrap button{min-height:32px;padding:4px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--accent-ink);font-weight:500}.ledger-table-wrap button:not(:disabled):hover{background:var(--accent-soft);border-color:#c7d8fb}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.8;white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill[data-tone=ok]{background:#e8f7ef;color:#0f7b44}.pill[data-tone=warn]{background:#fef4e6;color:#9a5b00}.pill[data-tone=bad]{background:#fdeeee;color:#a51c1c}.pill[data-tone=muted]{background:#f1f4f8;color:#5b6b80}.pill[data-tone=info]{background:var(--accent-soft);color:var(--accent-ink)}.ledger-editor{max-width:1040px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.ledger-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;margin:8px 0 4px}.ledger-editor>label,.ledger-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}.ledger-editor>label input,.ledger-fields input:not([type=checkbox]){min-height:40px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-weight:400;font-size:14px}.ledger-fields label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:8px;grid-column:1/-1;color:var(--ink);font-weight:500}.ledger-editor section{margin:20px 0}.ledger-editor fieldset{min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);margin:16px 0;padding:16px}.ledger-editor select{min-height:40px;width:100%;padding:8px 12px}.ledger-editor button,.ledger-editor select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.ledger-editor button{min-height:38px;padding:6px 16px;font-weight:500}.ledger-editor button:not(:disabled):hover{background:var(--sunken)}.ledger-editor button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.ledger-editor button.primary:not(:disabled):hover{background:var(--accent-ink)}.ledger-editor [role=alert]{margin:14px 0;padding:12px 14px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;border-radius:var(--radius-sm)}.ledger-editor dl{margin:12px 0;display:grid;grid-template-columns:180px 1fr;gap:8px 16px}.ledger-editor dt{color:var(--muted);font-size:13px}.ledger-editor dd{margin:0;overflow-wrap:anywhere}.ledger-editor table{width:100%;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}p[role=status]{color:var(--muted);padding:8px 0}.access-error{max-width:560px;margin:80px auto;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.permission-list{display:grid;grid-template-columns:1fr auto;gap:12px;margin:0}.permission-list dd,.permission-list dt{margin:0}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:260px;display:none;box-shadow:var(--shadow);border-right:1px solid var(--line)}.sidebar.is-open{display:block}.mobile-menu{display:inline-flex;align-items:center;min-height:44px}.topbar{padding:12px 16px}.main-content{padding:20px 16px 56px}.ledger-fields{grid-template-columns:1fr}.ledger-actions input,.ledger-actions select{min-width:0;width:100%}.ledger-actions label{flex:1 1 180px}}@media(max-width:640px){body{font-size:15px}.main-content h1{font-size:22px}.ledger-table-wrap{border-radius:10px}.ledger-table-wrap td,.ledger-table-wrap th{padding:10px}.ledger-actions button,.ledger-editor button{min-height:44px}.ledger-actions{padding:12px}}@media(prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.page-head{margin-bottom:22px}.page-head h1{margin-bottom:6px}.page-head p{color:var(--muted);max-width:72ch}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.kpi-label{margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--muted)}.kpi-value{margin:6px 0 2px;font-size:30px;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-value-small{font-size:18px;line-height:1.5}.kpi-foot{margin:0;font-size:12px;color:var(--faint)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;margin-bottom:16px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.card-head h2{margin:0}.card-head a{font-size:13px;font-weight:600}.quick-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-grid a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--sunken);text-decoration:none;transition:border-color .15s ease,background .15s ease}.quick-grid a:hover{border-color:#c7d8fb;background:var(--accent-soft);text-decoration:none}.quick-grid strong{font-size:14px;color:var(--ink)}.quick-grid span{font-size:12px;color:var(--muted)}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.stat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.stat-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.stat-list li:last-child{border-bottom:0}.stat-list span{min-width:0;overflow-wrap:anywhere}.stat-list small{display:block;font-size:11px;color:var(--faint)}.stat-list strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:0}.detail-list div{min-width:0}.detail-list dt{font-size:12px;font-weight:600;color:var(--muted)}.detail-list dd{margin:2px 0 0;overflow-wrap:anywhere}.tag-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}@media(max-width:1100px){.kpi-grid,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.detail-list,.quick-grid,.split{grid-template-columns:1fr}.kpi-value{font-size:26px}}.topbar-search{display:flex;gap:8px;align-items:center;flex:1 1 320px;max-width:460px;margin:0 auto}.topbar-search input{flex:1 1;min-width:0;padding:8px 12px}.topbar-search button,.topbar-search input{min-height:38px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.topbar-search button{padding:6px 14px;font-weight:500}.kbd,.topbar-search button:hover,kbd{background:var(--sunken)}.kbd,kbd{display:inline-block;min-width:20px;padding:1px 6px;border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:5px;font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--muted)}.tip-list{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.tip-list code{background:var(--sunken);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12.5px}.result-line{margin:0 0 12px}@media(max-width:900px){.topbar-search{order:3;flex:1 1 100%;max-width:none;margin:4px 0 0}}