:root{--ground: #f2f4f7;--surface: #ffffff;--raised: #f7f8fa;--active: #e9ebef;--border: #e6e6e6;--rule: #f0f0f0;--control: #d4d4d4;--text: #0a0a0a;--muted: #6b6b6b;--accent: #141414;--positive: #2e7d32;--negative: #c4242a;--warning: #92400e;--chart: #1d5fbf;--pill-positive-bg: #dcfae5;--pill-positive-ink: #04250e;--pill-negative-bg: #ffedea;--pill-negative-ink: #831c1e;--pill-warning-bg: #fffbeb;--pill-warning-ink: #92400e;--pill-neutral-bg: #eeeeee;--pill-neutral-ink: #3d3d3d;--radius-card: 8px;--radius-control: 6px;--row-height: 44px;--gap: 12px;--pad: 24px;--control-height: 36px;--fs-title: 24px;--fs-section: 16px;--fs-kpi: 30px;--fs-body: 14px;--fs-small: 12px;--font: Aptos, "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;--mono: "Cascadia Mono", Consolas, "Microsoft YaHei UI", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--ground);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}table{border-collapse:collapse;width:100%}::selection{background:#dbe6f7}:focus-visible{outline:2px solid var(--chart);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:48px;background:var(--ground);position:sticky;top:0;z-index:40}.topbar-inner{max-width:1200px;margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center;gap:28px}.brand{display:inline-flex;align-items:center;gap:9px;min-width:0;font-size:14px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.brand-logo{display:block;width:24px;height:24px;object-fit:contain;flex:0 0 auto;mix-blend-mode:multiply}.brand>span{max-width:180px;overflow:hidden;text-overflow:ellipsis}.brand small{flex:0 0 auto;font-size:11px;color:var(--muted);font-weight:400;margin-left:2px}.nav{display:flex;align-items:center;gap:2px;flex:1;min-width:0}.nav a{padding:6px 11px;border-radius:var(--radius-control);font-size:13.5px;color:var(--muted);white-space:nowrap;transition:color .12s ease,background .12s ease}.nav a:hover{color:var(--text);background:#e9ebef}.nav a.active{color:var(--text);background:#e4e7ec;font-weight:500}.nav-logout{display:none}.top-right{display:flex;align-items:center;gap:12px;margin-left:auto}.scope-chip{font-size:12px;color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:3px 10px;white-space:nowrap}.account{display:inline-flex;align-items:center;gap:8px;font-size:13px}.avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;background:#e3e6ea;color:#3d3d3d}.menu-btn{display:none;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-control)}.main{width:100%;max-width:1200px;margin:0 auto;padding:26px 24px 64px;flex:1}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.page-head h1{font-size:var(--fs-title);font-weight:600;letter-spacing:-.01em;line-height:1.2}.page-head .sub{margin-top:6px;font-size:13px;color:var(--muted);max-width:720px}.head-actions{display:flex;align-items:center;gap:8px;flex:none}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-bottom:10px}.breadcrumb a:hover{color:var(--text)}.breadcrumb span.sep{color:#b8bcc2}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--rule)}.panel-head h2{font-size:var(--fs-section);font-weight:600}.panel-head .hint{font-size:12px;color:var(--muted)}.panel-body{padding:16px 18px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}.stack{display:flex;flex-direction:column;gap:var(--gap)}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.kpi{padding:16px 18px;border-left:1px solid var(--rule);min-width:0}.kpi:first-child{border-left:0}.kpi .label{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi .value{margin-top:8px;font-size:var(--fs-kpi);line-height:1.15;font-weight:400;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .value.strong{font-weight:700}.kpi .unit{font-size:13px;color:var(--muted);margin-left:4px;letter-spacing:0}.kpi .note{margin-top:6px;font-size:12px;color:var(--muted)}.kpi .note .down{color:var(--negative)}.kpi .note .up{color:var(--positive)}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.toolbar .grow{flex:1}.field-inline{height:var(--control-height);border:1px solid var(--control);background:var(--surface);border-radius:var(--radius-control);padding:0 10px;font-size:13.5px;min-width:128px}select.field-inline{padding-right:26px}.search{position:relative;flex:1;min-width:220px;max-width:380px}.search input{width:100%;height:var(--control-height);border:1px solid var(--control);background:var(--surface);border-radius:var(--radius-control);padding:0 12px 0 32px;font-size:13.5px}.search svg{position:absolute;left:10px;top:50%;translate:0 -50%;color:var(--muted)}.segmented{display:inline-flex;background:#e9ebef;border-radius:var(--radius-control);padding:2px;gap:2px}.segmented button{border:0;background:transparent;height:30px;padding:0 10px;font-size:12.5px;border-radius:4px;color:var(--muted);cursor:pointer;white-space:nowrap}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:500;border:1px solid var(--border)}.btn{height:var(--control-height);padding:0 14px;border-radius:var(--radius-control);border:1px solid var(--control);background:var(--surface);color:var(--text);font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.btn:hover{background:#f6f7f9}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#2a2a2a}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted);padding:0 8px}.btn.ghost:hover{color:var(--text);background:#e9ebef}.btn.danger{color:var(--negative);border-color:#efc9c6;background:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.sm{height:28px;padding:0 10px;font-size:12.5px}.table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.data{width:100%;min-width:860px}.data th{height:38px;padding:0 12px;font-size:12px;font-weight:400;color:var(--muted);text-align:left;white-space:nowrap;border-bottom:1px solid var(--rule);background:var(--surface);position:sticky;top:0;z-index:1}.data th.r,.data td.r{text-align:right}.data td{height:var(--row-height);padding:0 12px;border-bottom:1px solid var(--rule);font-size:13.5px;white-space:nowrap;vertical-align:middle}.data tr:last-child td{border-bottom:0}.data tbody tr{cursor:default}.data tbody tr.clickable{cursor:pointer}.data tbody tr.clickable:hover td{background:#fafbfc}.data .identity{font-weight:500}.data .sub{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:1px}.reconcile-receipt-toggle{display:flex;align-items:center;gap:5px;width:100%;height:var(--row-height);padding:0 12px;border:0;background:transparent;color:var(--text);cursor:pointer;font:inherit;text-align:left}.data td.reconcile-detail-trigger-cell{padding:0;cursor:pointer}.data td.reconcile-detail-trigger-cell:hover{background:#fafbfc}.reconcile-receipt-toggle span{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .15s ease-out}.reconcile-receipt-toggle:hover span,.reconcile-receipt-toggle[aria-expanded=true] span{text-decoration-color:currentColor}.reconcile-receipt-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease-out}.reconcile-receipt-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.data tr.receipt-detail-row td{height:auto;padding:0;border-bottom:1px solid var(--rule);background:var(--raised);white-space:normal}.receipt-detail{padding:14px 18px 18px}.receipt-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.receipt-detail-head>div{display:flex;align-items:baseline;gap:10px}.receipt-detail-head strong{font-size:13.5px;font-weight:600}.receipt-detail-head span{color:var(--muted);font-size:12px}.receipt-detail-note{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:start;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:var(--surface);font-size:12.5px}.receipt-detail-note-label{display:flex;flex-direction:column;align-items:flex-start;gap:5px;color:var(--muted);font-size:12.5px}.receipt-detail-note-label .btn{margin-left:-8px}.receipt-detail-note-content{min-width:0}.receipt-detail-note p{max-width:80ch;white-space:pre-wrap;line-height:1.65}.receipt-detail-note p.is-empty{color:var(--muted)}.receipt-detail-note .textarea{min-height:74px;font-size:12.5px}.receipt-detail-note-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:7px}.receipt-detail-note-count{margin-right:auto;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.receipt-detail-items{margin-top:12px;border-top:1px solid var(--rule)}.receipt-detail-item{padding:12px 2px 13px;border-bottom:1px solid var(--rule)}.receipt-detail-item:last-child{padding-bottom:2px;border-bottom:0}.receipt-detail-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px}.receipt-detail-item-head>div{display:flex;align-items:baseline;gap:9px;min-width:0}.receipt-detail-item-head span{color:var(--muted);font-size:11.5px}.receipt-detail-item-head strong{font-size:13.5px;font-weight:600}.receipt-detail-item-head b{flex:none;font-size:14px;font-weight:600}.receipt-detail-fields{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(90px,.45fr) minmax(220px,1.5fr);gap:10px 22px;margin:10px 0 0}.receipt-detail-fields>div{min-width:0}.receipt-detail-fields dt{margin-bottom:2px;color:var(--muted);font-size:11.5px}.receipt-detail-fields dd{margin:0;font-size:12.5px;line-height:1.55;overflow-wrap:anywhere}.receipt-detail-empty{padding:13px 2px 2px;color:var(--muted);font-size:12.5px}@media(min-width:1061px){.data>tbody>tr.receipt-detail-row+tr.clickable>td{border-top:8px solid var(--ground)}}.table-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--rule);background:var(--surface);border-radius:0 0 var(--radius-card) var(--radius-card)}.pager{display:flex;align-items:center;gap:6px}.receipt-toolbar .filter-caption,.receipt-toolbar .filter-to{color:var(--muted);font-size:12.5px}.receipt-records .receipt-number{appearance:none;border:0;background:transparent;padding:0;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;cursor:pointer}.receipt-records .receipt-number:hover{text-decoration-color:currentColor}.receipt-records .receipt-number:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:2px}.text-link{color:var(--text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.text-link:hover{color:var(--muted)}.receipt-records .receipt-number:disabled{color:var(--muted);cursor:not-allowed;text-decoration:none}.receipt-recent-link{display:flex;align-items:center;gap:10px;width:100%;color:inherit;text-decoration:none}.receipt-recent-link:hover span:nth-child(2){text-decoration:underline;text-underline-offset:3px}.status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12.5px}.dot{width:8px;height:8px;border-radius:50%;flex:none;border:1px solid rgba(0,0,0,.18)}.dot.is-future{background:#2f7fd1}.dot.is-unpaid{background:#cfd3d8}.dot.is-overdue{background:#d93025}.dot.is-soon{background:#e8b100}.dot.is-ok{background:#2f9e5b}.dot.is-gap{background:linear-gradient(90deg,#d93025 0 50%,#e8b100 50% 100%)}.pill{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:4px;font-size:11.5px;font-weight:500;white-space:nowrap}.pill.neutral{background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}.pill.ok{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.pill.bad{background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.pill.warn{background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--gap);align-items:stretch}.announcement-panel .panel-body{padding-top:6px}.announcement-list{display:block;color:var(--text);font-size:13px;line-height:1.5}.announcement-item{border-bottom:1px solid var(--rule)}.announcement-item:last-child{border-bottom:0}.announcement-item summary{display:flex;align-items:center;gap:20px;min-height:48px;padding:10px 2px;cursor:pointer;list-style:none}.announcement-item summary::-webkit-details-marker{display:none}.announcement-item summary:hover strong{color:var(--chart)}.announcement-title{display:flex;align-items:center;gap:9px;min-width:0}.announcement-title strong{font-size:13.5px;font-weight:600;transition:color .16s ease-out}.announcement-meta{display:flex;align-items:center;gap:14px;margin-left:auto;flex:none;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.announcement-meta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease-out}.announcement-item[open] .announcement-meta svg{transform:rotate(180deg)}.announcement-item[open] .announcement-toggle{color:var(--text)}.announcement-content{padding:2px 0 16px 3px;color:var(--text)}.announcement-content ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;margin:0;padding:0;list-style:none;line-height:1.55}.announcement-content li{position:relative;padding-left:13px}.announcement-content li:before{content:"";position:absolute;left:0;top:.65em;width:4px;height:4px;border-radius:50%;background:var(--chart)}.announcement-content p{max-width:78ch;white-space:pre-wrap;line-height:1.7}.announcement-byline{margin-top:10px;color:var(--muted);font-size:12px}.announcement-error{padding:10px 2px 2px;color:var(--negative);font-size:12px}.announcement-submit-panel{margin-bottom:12px}.announcement-admin-details{min-width:240px}.announcement-admin-details summary{cursor:pointer;font-weight:500}.announcement-admin-details p{margin-top:10px;max-width:72ch;color:var(--muted);white-space:pre-wrap;line-height:1.65}.overview-grid>.panel{display:flex;flex-direction:column}.overview-grid>.panel>.panel-body{flex:1}.chart-card .panel-body{padding-top:10px}.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--muted);padding:2px 0 10px}.chart-legend i{display:inline-block;width:10px;height:2px;background:var(--chart);vertical-align:middle;margin-right:6px}.building-scroll{max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-color:var(--control) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.building-scroll:focus-visible{outline:2px solid var(--chart);outline-offset:2px}.building-scroll::-webkit-scrollbar{width:8px}.building-scroll::-webkit-scrollbar-track{background:transparent}.building-scroll::-webkit-scrollbar-thumb{background:var(--control);border:2px solid var(--surface);border-radius:8px}.building-ranking{display:flex;flex-direction:column;gap:8px;padding:4px 0 2px}.building-row{display:grid;grid-template-columns:minmax(74px,1fr) minmax(48px,.8fr) minmax(112px,auto);align-items:center;gap:9px;min-height:24px}.building-label{display:flex;align-items:baseline;gap:5px;min-width:0;overflow:hidden;color:var(--text);font-size:12.5px;white-space:nowrap}.building-label small{flex:none;color:var(--muted);font-size:10.5px}.building-label>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.building-meter{height:5px;overflow:hidden;background:var(--rule);border-radius:2px}.building-meter i{display:block;height:100%;background:var(--chart);border-radius:inherit;transition:width .18s ease-out}.building-count{display:grid;grid-template-columns:minmax(2ch,1fr) auto minmax(3ch,1fr) auto minmax(4ch,1fr);column-gap:4px;color:var(--muted);font-size:11.5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-variant-numeric:tabular-nums;text-align:right;line-height:1.35}.building-count b{color:var(--text);font-weight:550;text-align:right}.building-total{color:var(--muted);text-align:right;white-space:nowrap}.building-separator{color:var(--muted);text-align:center}.building-summary{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--rule);color:var(--muted);font-size:11.5px}.todo-list{list-style:none;margin:0;padding:0}.todo-list li{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:13.5px}.todo-list li:last-child{border-bottom:0}.todo-list li .count{margin-left:auto;font-variant-numeric:tabular-nums;font-size:15px}.todo-list li a{color:var(--muted);font-size:12.5px}.todo-list li a:hover{color:var(--text)}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:14px}.detail-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.detail-title h1{font-size:24px;font-weight:600}.detail-meta{display:flex;gap:22px;margin-top:8px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.detail-meta b{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs button{border:0;background:transparent;padding:9px 12px 10px;font-size:13.5px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--text);font-weight:500}.kv{display:grid;grid-template-columns:92px 1fr;gap:8px 12px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:13.5px}.mini-list li:last-child{border-bottom:0}.mini-list .meta{margin-left:auto;color:var(--muted);font-size:12.5px}.billing-search-results{max-height:420px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.full{grid-column:1 / -1}.field label{font-size:13px;font-weight:500}.field .help{font-size:12px;color:var(--muted)}.input,.select,.textarea{width:100%;height:40px;border:1px solid #e3e4e6;background:var(--surface);border-radius:6px;padding:0 11px;font-size:14px;font-variant-numeric:tabular-nums}.textarea{height:auto;min-height:76px;padding:9px 11px;resize:vertical}.input:disabled{background:#f4f5f7;color:var(--muted)}.form-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.fee-rate-list{border-top:1px solid var(--rule);max-height:340px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--control) transparent}.fee-rate-list::-webkit-scrollbar{width:9px}.fee-rate-list::-webkit-scrollbar-thumb{background:var(--control);border:3px solid var(--surface);border-radius:999px}.fee-rate-row{display:grid;grid-template-columns:92px 140px 140px minmax(150px,1fr) auto;gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid var(--rule)}.fee-rate-row:last-child{border-bottom:0}.fee-rate-building{display:flex;flex-direction:column;gap:2px;min-width:0;padding-bottom:9px}.fee-rate-building strong{font-size:13.5px;font-weight:500}.fee-rate-building span,.fee-rate-field>span{color:var(--muted);font-size:11.5px}.fee-rate-field{display:flex;flex-direction:column;gap:4px;min-width:0}.fee-rate-field .input{height:34px;font-size:13px}.fee-rate-batch{display:grid;grid-template-columns:92px 140px 140px minmax(150px,1fr) auto;gap:12px;align-items:end;margin:12px 0 4px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--raised)}.fee-rate-batch-title{display:flex;flex-direction:column;gap:2px;min-width:0;padding-bottom:9px}.fee-rate-batch-title strong{font-size:13.5px;font-weight:500}.fee-rate-batch-title span{color:var(--muted);font-size:11.5px}.fee-rate-batch-note{display:flex;flex-direction:column;gap:5px;min-width:0;padding-bottom:3px}.fee-rate-batch-note span{color:var(--muted);font-size:11.5px}.fee-rate-batch-note strong{min-height:18px;font-size:12.5px;font-weight:500;line-height:1.45}.billing-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:var(--gap);align-items:start}.item-row{display:grid;grid-template-columns:26px minmax(0,1fr) 104px minmax(150px,1fr);grid-template-areas:"check name name name" ". period period period" ". . amount remark";align-items:start;gap:10px;row-gap:8px;padding:12px 0;border-bottom:1px solid var(--rule)}.item-row:last-child{border-bottom:0}.item-row .check{margin-top:3px}.item-row .name{grid-area:name;display:flex;flex-direction:column;gap:2px;font-size:13.5px;font-weight:500}.item-row .item-name{color:var(--text)}.item-row .item-description,.item-row .item-rate{color:var(--muted);font-size:11.5px;font-weight:400;line-height:1.45}.item-row .item-rate.ground-floor-rate{color:var(--negative);font-weight:600}.item-row.is-disabled>:not(.check){opacity:.5}.item-row.is-disabled input:not(.check),.item-row.is-disabled select{background:#f4f5f7;color:var(--muted);cursor:not-allowed}.item-row .period{grid-area:period;display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.item-row .period-label{flex:none;color:var(--text);font-size:11.5px}.item-row .period-range{display:flex;flex:1 1 250px;align-items:center;gap:4px;min-width:0}.item-row .inline-field{display:inline-flex;align-items:center;gap:6px}.item-row input[type=date]{flex:1 1 112px;min-width:0;height:32px;border:1px solid var(--control);border-radius:5px;padding:0 6px;font-size:12px;font-variant-numeric:tabular-nums;background:var(--surface);color:var(--text)}.item-row .amount{height:32px;width:100%;min-width:0;border:1px solid var(--control);border-radius:5px;padding:0 8px;text-align:right;font-variant-numeric:tabular-nums}.check{grid-area:check;width:16px;height:16px;accent-color:#141414}.item-row .remark{width:100%}.item-row .item-field{display:flex;flex-direction:column;gap:4px;min-width:0}.item-row .amount-field{grid-area:amount}.item-row .remark-field{grid-area:remark}.item-row .item-field-label{color:var(--muted);font-size:11.5px;line-height:1.3}.item-calculation-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;padding:0 0 10px 36px;color:var(--muted);font-size:12px}.item-calculation-status{display:inline-flex;align-items:center;gap:8px}.receipt-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:18px}.receipt-preview h3{font-size:15px;text-align:center;letter-spacing:.12em;font-weight:600}.receipt-preview .no{margin-top:6px;text-align:center;font-family:var(--mono);font-size:12.5px;color:var(--muted)}.receipt-preview table{margin-top:14px;font-size:12.5px}.receipt-preview th,.receipt-preview td{padding:7px 6px;border-bottom:1px dashed #e7e7e7;text-align:left;font-weight:400}.receipt-preview th{color:var(--muted);font-size:11.5px}.receipt-preview td.r,.receipt-preview th.r{text-align:right;font-variant-numeric:tabular-nums}.receipt-total{display:flex;justify-content:space-between;padding:14px 6px 4px;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.receipt-foot{display:flex;justify-content:space-between;margin-top:12px;font-size:12px;color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--ground)}.login-card{width:100%;max-width:392px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:30px}.login-mark{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-logo{width:48px;height:48px;flex:none;object-fit:contain}.login-card h1{font-size:22px;font-weight:600}.login-form{margin-top:22px;display:flex;flex-direction:column;gap:14px}.login-form .btn{height:40px;justify-content:center;margin-top:4px}.login-note{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted);line-height:1.65}.form-error{font-size:12.5px;color:var(--negative)}.overlay{position:fixed;inset:0;background:#0a0a0a47;display:grid;place-items:center;padding:20px;z-index:80}.modal{width:100%;max-width:520px;background:var(--surface);border-radius:10px;box-shadow:0 12px 40px #00000024;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--rule)}.modal-head h2{font-size:15px;font-weight:600}.modal-body{padding:18px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--rule);background:#fbfbfc}.release-head{display:flex;align-items:center;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--rule);color:var(--muted);font-size:12.5px}.release-head strong{color:var(--text);font-family:var(--mono);font-size:13px;font-weight:600}.release-notes{display:flex;flex-direction:column;gap:10px;margin:16px 0 0;padding-left:20px;font-size:13.5px;line-height:1.55}.release-notes li::marker{color:var(--chart)}.release-tip{margin-top:18px;color:var(--muted);font-size:12px}.toast{position:fixed;left:50%;bottom:28px;translate:-50% 0;background:#141414;color:#fff;padding:9px 14px;border-radius:6px;font-size:13px;z-index:100;max-width:min(520px,calc(100vw - 32px))}.toast.error{background:#8f1d1d}.empty{padding:34px 16px;text-align:center;color:var(--muted);font-size:13px}.receipt-print-root{display:none}@page{size:A4 portrait;margin:0}@media print{html,body{width:210mm;height:auto;margin:0;padding:0;background:#fff;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}.overlay,.toast{display:none!important}.shell{display:block;min-height:0;background:#fff}.topbar{display:none!important}.main{display:block;width:210mm;max-width:none;height:auto;min-height:0;margin:0;padding:0}.main>*{display:none!important}.main>.receipt-print-root{display:block!important;width:210mm;height:auto;margin:0;padding:0;overflow:hidden;background:#fff;color:#000;font-family:Microsoft YaHei,SimSun,sans-serif}.receipt-copy{width:210mm;height:95mm;display:grid;grid-template-columns:12mm 198mm;overflow:hidden;break-inside:avoid;page-break-inside:avoid;background:#fff}.receipt-copy+.receipt-copy{border-top:.25mm dashed #666}.receipt-copy-side{writing-mode:vertical-rl;display:grid;place-items:center;padding:3mm 0;border-right:.25mm solid #333;font-size:10pt;font-weight:700;letter-spacing:.28em}.receipt-copy-main{min-width:0;height:100%;padding:2mm 4mm 1.6mm;display:flex;flex-direction:column}.receipt-copy-head{display:grid;grid-template-columns:14mm 1fr 51mm;grid-template-rows:7mm 4mm;column-gap:2.5mm;align-items:center;border-bottom:.3mm solid #111;padding-bottom:1mm}.receipt-copy-logo{grid-row:1 / 3;width:12mm;height:12mm;object-fit:contain}.receipt-copy-brand{align-self:end;display:flex;align-items:baseline;gap:2mm}.receipt-copy-brand strong{font-family:STXingkai,KaiTi,serif;font-size:11pt;font-weight:700;letter-spacing:.08em}.receipt-copy-brand span{font-size:7pt;color:#333}.receipt-copy-title{justify-self:end;align-self:end;font-size:14pt;font-weight:700;letter-spacing:.3em;white-space:nowrap}.receipt-copy-number{grid-column:2 / 4;justify-self:end;align-self:start;font-size:7.5pt;letter-spacing:.04em}.receipt-copy-meta{display:flex;gap:1mm;min-width:0;padding:1.2mm 0 1mm;font-size:8pt;white-space:nowrap;overflow:hidden}.receipt-copy-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600}.receipt-copy-table{table-layout:fixed;border:.25mm solid #333;font-size:7.4pt;line-height:1.25}.receipt-copy-table th,.receipt-copy-table td{border:.2mm solid #777;padding:.65mm .9mm;vertical-align:middle;text-align:left;font-weight:400;overflow-wrap:anywhere;word-break:break-all}.receipt-copy-table thead th{height:5mm;text-align:center;font-weight:700}.receipt-copy-table tbody td{height:4.8mm}.receipt-copy-table .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.receipt-copy-table tfoot th,.receipt-copy-table tfoot td{height:6mm;font-weight:700}.receipt-copy-total-label{text-align:right!important;letter-spacing:.15em}.receipt-copy-total{text-align:right;font-size:9pt}.receipt-copy-foot{margin-top:auto;padding-top:1.2mm;display:flex;justify-content:space-between;gap:4mm;font-size:7.6pt;white-space:nowrap}}@media(max-width:980px){.topbar-inner{padding:0 16px;gap:12px}.nav{display:none}.nav.open{display:flex;flex-direction:column;align-items:stretch;position:fixed;inset:48px 0 0;background:var(--ground);padding:16px;gap:4px;z-index:39}.nav.open a{padding:14px 12px;font-size:15px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.nav.open .nav-logout{display:block;margin-top:8px;padding:14px 12px;font-size:15px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--negative);text-align:left}.logout-btn,.scope-chip,.account span.name{display:none}.menu-btn{display:inline-flex}.overview-grid,.billing-grid,.grid-2,.grid-3{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,1fr)}.kpi:nth-child(3){border-left:0;border-top:1px solid var(--rule)}.kpi:nth-child(4){border-top:1px solid var(--rule)}.announcement-content ul{grid-template-columns:1fr}}@media(max-width:760px){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}.main{padding:18px 16px 48px}.page-head{flex-direction:column;align-items:flex-start;gap:12px}.kpi .value{font-size:24px}.announcement-item summary{align-items:flex-start;flex-direction:column;gap:5px;padding:12px 2px}.announcement-title{align-items:flex-start;width:100%}.announcement-meta{width:100%;margin-left:0;gap:10px}.announcement-toggle{margin-left:auto}.form-grid{grid-template-columns:1fr}.item-row{grid-template-columns:26px minmax(0,1fr);grid-template-areas:"check name" ". period" ". amount" ". remark";row-gap:6px}.item-row .period{grid-column:2}.item-row .period-range{display:grid;flex:1 0 100%;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.item-row .period-range input[type=date]{width:100%;min-width:0}.item-row .remark-field{grid-column:2;width:100%}.item-calculation-note{padding-left:32px}.receipt-toolbar .search{flex:1 0 100%;max-width:none}.receipt-toolbar .field-inline{flex:1 1 132px;min-width:0}.fee-rate-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"building action" "price price" "ground ground" "remark remark";align-items:end;row-gap:10px}.fee-rate-list{max-height:62vh}.fee-rate-batch{grid-template-columns:1fr}.fee-rate-batch .btn{width:100%}.fee-rate-building{grid-area:building;padding-bottom:2px}.fee-rate-row .fee-rate-field:nth-of-type(1){grid-area:price}.fee-rate-row .fee-rate-field:nth-of-type(2){grid-area:ground}.fee-rate-row .fee-rate-field:nth-of-type(3){grid-area:remark}.fee-rate-row .btn{grid-area:action}.building-row{grid-template-columns:minmax(74px,1fr) minmax(44px,.9fr) minmax(112px,auto);gap:6px}.building-scroll{max-height:318px}}@media(max-width:1060px){.table-wrap{overflow:visible;border:0;background:transparent}.data{min-width:0;display:block}.data>thead{display:none}.data>tbody{display:flex;flex-direction:column;gap:8px}.data>tbody>tr{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:12px 14px}.data>tbody>tr>td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;height:auto;padding:3px 0;border:0;white-space:normal;text-align:left}.data>tbody>tr>td.r{text-align:right}.data>tbody>tr>td:before{content:attr(data-label);color:var(--muted);font-size:12px;flex:none}.data>tbody>tr>td:first-child{display:block;padding-bottom:7px;margin-bottom:5px;border-bottom:1px solid var(--rule);font-size:14px}.data>tbody>tr>td:first-child:before{display:none}.data>tbody>tr.receipt-detail-row{padding:0;border:0;background:transparent}.data>tbody>tr.receipt-detail-row>td{display:block;padding:0;border:0;background:transparent}.receipt-detail{padding:13px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--raised)}.receipt-detail-note{grid-template-columns:1fr;gap:4px}.receipt-detail-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.receipt-detail-fields>.is-wide{grid-column:1 / -1}.table-foot{border-top:0;background:transparent;padding:12px 2px 0}}@media(max-width:760px){.receipt-detail-fields{grid-template-columns:1fr;gap:9px}.receipt-detail-fields>.is-wide{grid-column:auto}}
