.btn{border-radius:var(--r-2);border:1px solid var(--cb-rule);background:var(--cb-sheet);height:30px;color:var(--cb-ink);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--cb-cabinet-2);border-color:#b4bec9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{height:26px;padding:0 9px;font-size:12px}.btn.primary{background:var(--cb-green);border-color:var(--cb-green);color:#fff}.btn.primary:hover{background:var(--cb-green-2)}.btn.danger{color:var(--cb-arrears);border-color:#e7b7b2}.btn.danger:hover{background:var(--cb-arrears-tint)}.btn.danger-solid{background:var(--cb-arrears);border-color:var(--cb-arrears);color:#fff}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--cb-cabinet)}.btn.link{height:auto;color:var(--cb-green);background:0 0;border:0;padding:0;font-weight:500}.btn.link:hover{text-decoration:underline}.btn .kbd-hint{font-family:var(--font-mono);opacity:.7;font-size:10px;font-weight:400}.icon-btn{border-radius:var(--r-2);width:26px;height:26px;color:var(--cb-pencil);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--cb-cabinet);color:var(--cb-ink)}.kbd{border:1px solid var(--cb-rule);border-radius:var(--r-1);min-width:16px;height:16px;font-family:var(--font-mono);color:var(--cb-pencil);background:var(--cb-sheet);justify-content:center;align-items:center;padding:0 4px;font-size:10px;line-height:12px;display:inline-flex}.kbd.dark{color:#c9d1da;background:0 0;border-color:#ffffff2e}.code-chip{border-radius:var(--r-1);height:18px;font-family:var(--font-mono);letter-spacing:.02em;background:var(--cb-cabinet);color:var(--cb-slate);border:1px solid var(--cb-rule-soft);white-space:nowrap;align-items:center;padding:0 5px;font-size:11px;font-weight:500;display:inline-flex}.code-chip.dark{color:#e6ebf0;background:#ffffff1a;border-color:#0000}.code-chip.green{background:var(--cb-green);color:#fff;border-color:var(--cb-green)}.dot{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.dot:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.dot.ring:before{background:0 0;border:1.5px solid;width:5px;height:5px}.tone-ok{color:var(--cb-green)}.tone-bad{color:var(--cb-arrears)}.tone-warn{color:var(--cb-pending)}.tone-muted{color:var(--cb-pencil)}.tone-ink{color:var(--cb-ink)}.pill{white-space:nowrap;border:1px solid;border-radius:10px;align-items:center;gap:5px;height:20px;padding:0 7px;font-size:12px;font-weight:500;display:inline-flex}.count{min-width:18px;height:18px;font-size:11px;font-weight:600;font-family:var(--font-mono);background:var(--cb-cabinet);color:var(--cb-slate);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.count.warn{color:var(--cb-pending);background:#f8e2c8}.count.bad{color:var(--cb-arrears);background:#f6d5d2}.avatar{background:var(--cb-ink);color:#fff;border-radius:var(--r-2);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:600;display:flex}.avatar.sm{width:26px;height:26px;font-size:11px}.rule-v{background:var(--cb-rule-soft);flex-shrink:0;align-self:stretch;width:1px}.panel{background:var(--cb-sheet);border:1px solid var(--cb-rule);border-radius:var(--r-3);flex-direction:column;min-width:0;display:flex}.panel-head{border-bottom:1px solid var(--cb-rule-soft);flex-shrink:0;align-items:center;gap:8px;min-height:40px;padding:0 12px 0 14px;display:flex}.panel-head .title{white-space:nowrap;font-size:14px;font-weight:600}.panel-head .sub{color:var(--cb-pencil);white-space:nowrap;font-size:12px}.panel-head .spacer{flex:1}.panel-body{padding:14px}.panel-foot{border-top:1px solid var(--cb-rule-soft);min-height:34px;color:var(--cb-pencil);background:var(--cb-cabinet-2);flex-shrink:0;align-items:center;gap:10px;padding:0 14px;font-size:12px;display:flex}.figure{flex-direction:column;gap:4px;min-width:0;display:flex}.figure .value{font-family:var(--font-mono);white-space:nowrap;font-size:20px;font-weight:500;line-height:26px}.figure .value.xl{letter-spacing:-.01em;font-size:28px;line-height:34px}.figure .hint{color:var(--cb-pencil);font-size:12px}.figures{display:flex}.figures>*{border-right:1px solid var(--cb-rule-soft);flex:1;padding:12px 14px}.figures>:last-child{border-right:0}.kv{grid-template-columns:max-content 1fr;gap:8px 16px;font-size:13px;display:grid}.kv dt{color:var(--cb-pencil)}.kv dd{margin:0}.tbl{border-collapse:collapse;width:100%;font-size:12.5px}.tbl th{z-index:1;background:var(--cb-cabinet-2);text-align:left;letter-spacing:.06em;text-transform:uppercase;height:28px;color:var(--cb-pencil);border-bottom:1px solid var(--cb-rule);white-space:nowrap;padding:0 10px;font-size:11px;font-weight:500;position:sticky;top:0}.tbl td{border-bottom:1px solid var(--cb-rule-soft);white-space:nowrap;height:30px;padding:0 10px}.tbl.dense td{height:28px}.tbl tr.clickable{cursor:pointer}.tbl tbody tr:hover td{background:#f7f9fb}.tbl tr.selected td{background:var(--cb-green-tint)!important}.tbl tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--cb-green)}.tbl tr.bad td{background:var(--cb-arrears-tint)}.tbl tr.total td{background:var(--cb-cabinet-2);border-top:1px solid var(--cb-rule);font-weight:600}.tbl th.r,.tbl td.r{text-align:right}.tbl td.num,.tbl td.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.tbl .ref{font-family:var(--font-mono);text-decoration:underline;-webkit-text-decoration-color:var(--cb-rule);text-decoration-color:var(--cb-rule);text-underline-offset:3px}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>.label .req{color:var(--cb-arrears);margin-left:2px}.input,.select,.textarea{border:1px solid var(--cb-rule);border-radius:var(--r-2);background:var(--cb-sheet);width:100%;min-width:0;height:32px;padding:0 10px;font-size:13px}.textarea{resize:vertical;height:auto;padding:8px 10px}.input.mono{font-family:var(--font-mono)}.input.num{text-align:right;font-family:var(--font-mono)}.input:focus,.select:focus,.textarea:focus{border-color:var(--cb-green);box-shadow:var(--cb-focus);outline:none}.input.invalid{border-color:var(--cb-arrears)}.input:disabled,.select:disabled{background:var(--cb-cabinet-2);color:var(--cb-pencil)}.field .help{color:var(--cb-pencil);font-size:12px}.field .err{color:var(--cb-arrears);font-size:12px}.seg{border:1px solid var(--cb-rule);border-radius:var(--r-2);background:var(--cb-cabinet);gap:2px;padding:2px;display:inline-flex}.seg button{border-radius:var(--r-1);height:26px;color:var(--cb-pencil);background:0 0;border:0;padding:0 12px;font-size:13px}.seg button.on{background:var(--cb-sheet);color:var(--cb-ink);font-weight:500;box-shadow:0 1px 2px #14202e1f}.check{align-items:center;gap:8px;font-size:13px;display:inline-flex}.check input{accent-color:var(--cb-green);width:14px;height:14px}.subtabs{height:var(--h-subtabs);border-bottom:1px solid var(--cb-rule);background:var(--cb-sheet);flex-shrink:0;align-items:stretch;gap:22px;padding:0 16px;display:flex}.subtabs a,.subtabs button{color:var(--cb-pencil);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:0;font-size:13px;display:flex}.subtabs a.on,.subtabs button.on{color:var(--cb-ink);border-bottom-color:var(--cb-ink);font-weight:600}.subtabs .count{min-width:16px;height:16px;font-size:10px}.subtabs .right{align-items:center;gap:6px;margin-left:auto;display:flex}.callout{border:1px solid var(--cb-rule);border-radius:var(--r-2);background:var(--cb-sheet);border-left-width:3px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}.callout.bad{border-color:#e7b7b2;border-left-color:var(--cb-arrears);background:var(--cb-arrears-tint)}.callout.warn{border-color:#f0d2ad;border-left-color:var(--cb-pending);background:var(--cb-pending-tint)}.callout.ok{border-color:#b9d8cb;border-left-color:var(--cb-green);background:var(--cb-green-tint)}.callout.info{border-left-color:var(--cb-slate);background:var(--cb-cabinet-2)}.progress{background:var(--cb-cabinet);border-radius:3px;height:6px;position:relative;overflow:hidden}.progress>i{background:var(--cb-green);border-radius:3px;position:absolute;top:0;bottom:0;left:0}.progress>i.bad{background:var(--cb-arrears)}.page{flex-direction:column;flex:1;min-height:0;display:flex}.page-body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px;display:flex;overflow:auto}.page-title{align-items:center;gap:12px;display:flex}.page-title h1{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600;line-height:26px}.row{gap:14px;min-width:0;display:flex}.col{flex-direction:column;gap:14px;min-width:0;display:flex}.grow{flex:1;min-width:0}.toolbar{align-items:center;gap:8px;display:flex}.empty{text-align:center;color:var(--cb-pencil);padding:40px 16px}.sidelist{background:var(--cb-sheet);border-right:1px solid var(--cb-rule);flex-direction:column;flex-shrink:0;width:300px;min-height:0;display:flex}.sidelist-head{border-bottom:1px solid var(--cb-rule-soft);flex-shrink:0;align-items:center;gap:8px;height:40px;padding:0 8px 0 14px;display:flex}.sidelist-head .title{flex:1;font-size:14px;font-weight:600}.strip{background:var(--cb-sheet);border-right:1px solid var(--cb-rule);flex-direction:column;flex-shrink:0;align-items:center;gap:10px;width:40px;padding:8px 0;display:flex}.strip .rot{writing-mode:vertical-rl;white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex;transform:rotate(180deg)}.strip .rot .mono{color:var(--cb-pencil);font-weight:400}.navlist{flex-direction:column;padding:6px 0;display:flex}.navlist a,.navlist button{text-align:left;height:32px;color:var(--cb-ink);background:0 0;border:0;align-items:center;gap:10px;padding:0 14px;font-size:13px;display:flex}.navlist a:hover,.navlist button:hover{background:var(--cb-cabinet-2)}.navlist a.on,.navlist button.on{background:var(--cb-green-tint);box-shadow:inset 3px 0 0 var(--cb-green);font-weight:600}.navlist .grp{padding:12px 14px 4px}.navlist .end{margin-left:auto}.win{background:var(--cb-sheet);border-radius:var(--r-3);box-shadow:var(--cb-shadow-window);border:1px solid #9aa6b4;flex-direction:column;display:flex;position:absolute;overflow:hidden}.win-bar{background:var(--cb-ink);color:#fff;cursor:default;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:8px;height:32px;padding:0 4px 0 10px;display:flex}.win.blur .win-bar{background:var(--cb-slate)}.win-bar .title{font-size:13px;font-weight:600}.win-bar .rec{font-family:var(--font-mono);color:#9aa6b4;font-size:12px}.win-bar .ctl{color:#c9d1da;border-radius:var(--r-1);background:0 0;border:0;justify-content:center;align-items:center;width:26px;height:24px;display:flex}.win-bar .ctl:hover{color:#fff;background:#ffffff1f}.win-bar .ctl.close:hover{background:#b42318}.win-body{flex:1;min-height:0;overflow:auto}.win-foot{border-top:1px solid var(--cb-rule);background:var(--cb-cabinet-2);flex-shrink:0;align-items:center;gap:8px;min-height:52px;padding:0 14px;display:flex}.toasts{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:44px;right:16px}.toast{background:var(--cb-sheet);border:1px solid var(--cb-rule);border-left:3px solid var(--cb-slate);border-radius:var(--r-3);width:360px;box-shadow:var(--cb-shadow-pop);gap:10px;padding:10px 12px;display:flex}.toast.ok{border-left-color:var(--cb-green)}.toast.error{border-left-color:var(--cb-arrears)}.toast .t{font-weight:600}.toast .d{color:var(--cb-pencil);margin-top:2px;font-size:12px}.menu{background:var(--cb-sheet);border:1px solid var(--cb-rule);border-radius:var(--r-3);box-shadow:var(--cb-shadow-pop);z-index:2000;min-width:220px;padding:4px 0;position:absolute}.menu button,.menu a{text-align:left;width:100%;height:30px;color:var(--cb-ink);background:0 0;border:0;align-items:center;gap:10px;padding:0 12px;font-size:13px;display:flex}.menu button:hover,.menu a:hover,.menu .active{background:var(--cb-cabinet)}.menu .sep{background:var(--cb-rule-soft);height:1px;margin:4px 0}.menu .hdr{padding:6px 12px 4px}.overlay{z-index:5000;background:#14202e73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}
