:root{--surface-1: #1a1a19;--page: #0d0d0d;--ink: #ffffff;--ink-2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #199e70;--series-3: #c98500;--series-4: #008300;--neg: #e66767;--good-text: #0ca30c;--accent: #3987e5;--card-shadow: 0 1px 2px rgba(0, 0, 0, .3)}:root[data-theme=light]{--surface-1: #fcfcfb;--page: #f9f9f7;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--grid: #e1e0d9;--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--series-1: #2a78d6;--series-2: #1baf7a;--series-3: #eda100;--series-4: #008300;--neg: #e34948;--good-text: #006300;--accent: #2a78d6;--card-shadow: 0 1px 2px rgba(11, 11, 11, .05)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--page);color:var(--ink);font-size:14px}.app{display:flex;min-height:100vh}.sidebar{width:208px;flex-shrink:0;padding:16px 10px;border-right:1px solid var(--border);background:var(--surface-1);position:sticky;top:0;height:100vh}.sidebar.collapsed{width:58px;padding:16px 6px}.collapse-btn{position:absolute;top:8px;right:-13px;z-index:5;width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:var(--surface-1);color:var(--ink-2);cursor:pointer;font-size:13px;line-height:1;box-shadow:var(--card-shadow)}.collapse-btn:hover{color:var(--accent);border-color:var(--accent)}.logo{font-weight:700;font-size:15px;padding:6px 10px 14px;white-space:nowrap;overflow:hidden}.sidebar.collapsed .logo{padding:6px 0 14px;text-align:center;font-size:13px}.logo small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:2px}.nav-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--ink-2);font-size:14px;margin-bottom:2px;font-family:inherit;white-space:nowrap;overflow:hidden}.sidebar.collapsed .nav-item{justify-content:center;padding:9px 0}.nav-icon{font-size:16px;flex-shrink:0}.nav-item:hover{background:var(--page)}.nav-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-weight:600}.sidebar.collapsed .theme-btn{padding:7px 0}.sidebar.collapsed .badge{padding:3px 6px;justify-content:center;width:100%}.sidebar.collapsed .dirty-note{text-align:center}.main{flex:1;padding:20px 24px 60px;min-width:0}.page-title{font-size:20px;font-weight:700;margin:0 0 4px}.page-sub{color:var(--muted);margin:0 0 18px;font-size:13px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--border)}.badge.ok{color:var(--good-text)}.badge.warn{color:var(--neg)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}.tile{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:var(--card-shadow);cursor:pointer;transition:border-color .12s}.tile:hover{border-color:var(--accent)}.tile.selected{border-color:var(--accent);outline:1px solid var(--accent)}.tile .t-label{color:var(--muted);font-size:12px;margin-bottom:6px}.tile .t-value{font-size:22px;font-weight:700;letter-spacing:-.02em}.tile .t-value.neg{color:var(--neg)}.tile .t-note{color:var(--ink-2);font-size:12px;margin-top:4px}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:var(--card-shadow);min-width:0;max-width:100%;overflow:hidden}.card h3{margin:0 0 10px;font-size:14px}.card h3 small{color:var(--muted);font-weight:400;margin-left:8px}.cards-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:1100px){.cards-row{grid-template-columns:1fr}}.legend{display:flex;gap:16px;font-size:12px;color:var(--ink-2);margin-bottom:6px;flex-wrap:wrap}.legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}table.data{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:13px}table.data th,table.data td{padding:5px 10px;text-align:right;border-bottom:1px solid var(--grid);white-space:nowrap}table.data th{color:var(--muted);font-weight:500;font-size:12px}table.data td:first-child,table.data th:first-child{text-align:left}table.data td.neg{color:var(--neg)}table.data tr.total td{font-weight:700;border-top:2px solid var(--baseline)}table.data tr.section td{color:var(--muted);font-weight:600;padding-top:12px;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.report-wrap{overflow-x:auto;max-width:100%}.tile{min-width:0}.tile .t-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-wrap table.data td:first-child,.report-wrap table.data th:first-child{position:sticky;left:0;background:var(--surface-1);min-width:240px;max-width:320px;white-space:normal;z-index:1}.houses{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.house{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:var(--card-shadow)}.house.off{opacity:.55}.house-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.house-head b{font-size:15px}.house .row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px}.house .row .lbl{color:var(--ink-2)}.gap-pos{color:var(--good-text);font-weight:600}.gap-neg{color:var(--neg);font-weight:600}.switch{position:relative;width:36px;height:20px;cursor:pointer}.switch input{opacity:0;width:0;height:0}.switch .sl{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--baseline);border-radius:999px;transition:.15s}.switch .sl:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:2px;left:2px;transition:.15s}.switch input:checked+.sl{background:var(--accent)}.switch input:checked+.sl:before{transform:translate(16px)}.pgroup{margin-bottom:18px}.pgroup h4{margin:0 0 6px;font-size:13px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em}.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;border-bottom:1px solid var(--grid)}.prow .plbl{font-size:13px;color:var(--ink);flex:1}.prow .pnote{font-size:11px;color:var(--muted)}input.pinput,select.pinput{width:130px;padding:5px 8px;border:1px solid var(--baseline);border-radius:7px;background:var(--page);color:var(--ink);font:inherit;text-align:right;font-variant-numeric:tabular-nums}input.pinput:focus,select.pinput:focus{outline:2px solid var(--accent);outline-offset:-1px}input.pinput.dirty{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--page))}.tabs{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap}.tab{border:1px solid var(--border);background:var(--surface-1);color:var(--ink-2);border-radius:8px;padding:6px 12px;cursor:pointer;font:inherit;font-size:13px}.tab.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--accent);font-weight:600;border-color:var(--accent)}.btn{border:1px solid var(--border);background:var(--surface-1);color:var(--ink);border-radius:8px;padding:7px 14px;cursor:pointer;font:inherit;font-size:13px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn.danger{color:var(--neg)}.btn:disabled{opacity:.5;cursor:default}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.dirty-note{font-size:12px;color:var(--accent)}.tooltip{position:fixed;pointer-events:none;z-index:50;background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 4px 16px #0000002e;font-variant-numeric:tabular-nums;min-width:150px}.tooltip .tt-title{color:var(--muted);margin-bottom:4px}.tooltip .tt-row{display:flex;justify-content:space-between;gap:14px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:90;display:flex;align-items:center;justify-content:center}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;padding:18px;width:min(760px,92vw);max-height:84vh;overflow:auto;box-shadow:0 12px 48px #0006}.modal h3{margin:0 0 4px}.modal .formula{font-family:ui-monospace,Consolas,monospace;font-size:12px;background:var(--page);border:1px solid var(--grid);border-radius:8px;padding:8px 10px;margin:10px 0;word-break:break-all;color:var(--ink-2)}.drill-row{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-bottom:1px solid var(--grid);cursor:pointer;border-radius:6px}.drill-row:hover{background:var(--page)}.drill-row .dl{color:var(--ink-2);font-size:13px}.drill-row .dv{font-variant-numeric:tabular-nums;white-space:nowrap}td.clickable{cursor:pointer}td.clickable:hover{outline:1px solid var(--accent);outline-offset:-1px;border-radius:4px}.ro-value{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.law-note{font-size:11px;color:var(--muted)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:12px;color:var(--muted)}.spinner{width:28px;height:28px;border:3px solid var(--grid);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobile-header,.bottom-nav{display:none}@media(max-width:768px){.app{display:block}.sidebar{display:none}.mobile-header{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:40;background:var(--surface-1);border-bottom:1px solid var(--border);padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top))}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--surface-1);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 6px;font-size:10px;color:var(--ink-2);background:none;border:0;font-family:inherit;cursor:pointer}.bottom-nav button.active{color:var(--accent);font-weight:600}.main{padding:12px 12px calc(76px + env(safe-area-inset-bottom))}.page-title{font-size:17px}.page-sub{font-size:12px;margin-bottom:12px}.tiles{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.tile{padding:10px 12px;border-radius:10px}.tile .t-value{font-size:17px}.tile .t-label{font-size:11px;margin-bottom:4px}.cards-row{grid-template-columns:1fr;gap:10px}.card{padding:12px;border-radius:10px;margin-bottom:10px}table.data th,table.data td{padding:4px 7px;font-size:12px}.report-wrap table.data td:first-child,.report-wrap table.data th:first-child{min-width:132px;max-width:190px;font-size:12px}.houses{grid-template-columns:1fr;gap:10px}input.pinput,select.pinput{width:108px;padding:6px 8px;font-size:13px}.prow{flex-wrap:wrap}.modal{width:96vw;padding:14px;max-height:80vh}.tabs{gap:3px}.tab{padding:5px 9px;font-size:12px}}
