:root{--brand: #4a2a7a;--brand-dk: #3a2062;--brand-mid: #5e3a95;--brand-soft: #ece6f5;--accent: #c4d600;--accent-dk: #a8b800;--accent-soft:#f4f7d6;--ink: #141019;--ink-soft: #46434d;--ink-faint: #6d6a75;--line: #e7e3ee;--line-soft: #f1eef6;--bg: #f6f4fa;--panel: #ffffff;--pos: #2e8b57;--pos-soft: #e4f2ea;--neg: #d13438;--neg-soft: #fbe9ea;--shadow-sm: 0 1px 2px rgba(32,26,46,.05);--shadow: 0 2px 4px rgba(74,42,122,.06), 0 12px 32px rgba(74,42,122,.08);--radius: 12px;--radius-sm: 8px}[data-theme=dark]{--brand: #9d7fd4;--brand-dk: #b9a3e0;--brand-mid: #7d5cbf;--brand-soft: #2a2340;--accent: #c4d600;--accent-dk: #d4e63a;--accent-soft:#2f3312;--ink: #f0edf7;--ink-soft: #c3bcd6;--ink-faint: #9b93b3;--line: #352e48;--line-soft: #2a2338;--bg: #17131f;--panel: #211b2e;--pos: #4caf7d;--pos-soft: #1a3328;--neg: #e5686c;--neg-soft: #3a1f21;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow: 0 2px 8px rgba(0,0,0,.4), 0 12px 32px rgba(0,0,0,.3)}[data-theme=dark] .brand{background:linear-gradient(160deg,#221b30,#1b1526)}[data-theme=dark] .tbl-wrap table.clean.grouped .grp-exp{background:#262035}[data-theme=dark] .topbar{background:#211b2eeb}[data-theme=dark] tbody tr:hover,[data-theme=dark] table.clean tbody tr:hover{background:#2a2338}[data-theme=dark] .cost-row td{background:#1d1828}[data-theme=dark] .ai-panel{background:linear-gradient(160deg,#241d33,#1c1627)}[data-theme=dark] .tbl-wrap table.clean thead th,[data-theme=dark] .tbl-wrap table.clean thead tr.grp th{background:var(--panel)}[data-theme=dark] .tbl-wrap table.clean.grouped .grp-inc{background:#2a2340}[data-theme=dark] .tbl-wrap table.clean.grouped .grp-rat{background:#2b2f14}[data-theme=dark] .chart-card,[data-theme=dark] .kpi{background:var(--panel)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.app{display:flex;min-height:100vh}.sidebar{width:236px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;transition:width .22s cubic-bezier(.4,0,.2,1)}.app.collapsed .sidebar{width:64px}.brand{padding:20px 22px 18px;border-bottom:1px solid var(--line);position:relative;background:linear-gradient(160deg,#fff,#faf8fd);display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;border-left:none;border-right:none;border-top:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s}.brand:hover{background:linear-gradient(160deg,#f8f5fc,#f2edf9)}.brand:hover .mark{box-shadow:0 2px 12px #4a2a7a66}.brand:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-dk))}.brand .logo{display:flex;align-items:center;gap:10px;min-width:0}.brand .mark{width:42px;height:42px;border-radius:10px;flex-shrink:0;overflow:hidden;background:transparent;display:flex;align-items:center;justify-content:center}.app.collapsed .brand .mark{width:36px;height:36px}.brand-text{min-width:0;overflow:hidden;transition:opacity .15s}.app.collapsed .brand-text{opacity:0;width:0}.brand h1{font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.1;white-space:nowrap}.brand span{display:block;font-size:10.5px;color:var(--ink-faint);margin-top:3px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;white-space:nowrap}.collapse-btn{flex-shrink:0;width:28px;height:28px;border-radius:7px;border:.5px solid var(--line);background:var(--panel);color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.collapse-btn:hover{background:var(--brand-soft);color:var(--brand)}.app.collapsed .brand{justify-content:center;padding:18px 8px}.app.collapsed .collapse-btn{display:none}.topbar-toggle{display:flex}.nav-group{padding:16px 12px 2px}.app.collapsed .nav-group{padding:16px 8px 2px}.nav-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);padding:4px 10px 8px;font-weight:700;white-space:nowrap;overflow:hidden}.app.collapsed .nav-group-label{opacity:0;height:6px;padding:0}.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);font-size:13.5px;color:var(--ink);margin-bottom:2px;font-family:inherit;transition:background .12s}.nav-item:hover{background:var(--bg)}.nav-item.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.nav-item .ni-icon{flex-shrink:0;display:flex;align-items:center;color:var(--ink-faint)}.nav-item.active .ni-icon{color:var(--brand)}.nav-item .ni-label{white-space:nowrap;overflow:hidden;transition:opacity .15s}.app.collapsed .nav-item{justify-content:center;padding:9px}.app.collapsed .nav-item .ni-label{opacity:0;width:0}.topbar-toggle{display:flex;width:32px;height:32px;border-radius:7px;border:.5px solid var(--line);background:var(--panel);color:var(--ink-soft);cursor:pointer;align-items:center;justify-content:center}.topbar-toggle:hover{background:var(--brand-soft);color:var(--brand)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:60px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:10}.topbar .title{font-size:16px;font-weight:650;letter-spacing:-.01em}.topbar .right{display:flex;align-items:center;gap:14px}.status{font-size:12px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:20px;background:var(--bg);border:1px solid var(--line)}.status.good{color:var(--pos);background:var(--pos-soft);border-color:transparent}.status.bad{color:var(--neg);background:var(--neg-soft);border-color:transparent}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.ok{background:var(--pos);box-shadow:0 0 0 3px var(--pos-soft)}.dot.bad{background:var(--neg);box-shadow:0 0 0 3px var(--neg-soft)}.dot.pulse{animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.btn{border:1px solid var(--brand);background:var(--brand);color:#fff;padding:8px 17px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;font-family:inherit;transition:background .12s;display:inline-flex;align-items:center;gap:7px}.btn:hover{background:var(--brand-dk)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{background:none;color:var(--brand)}.btn.ghost:hover{background:var(--brand-soft)}.content{padding:26px 32px;width:100%;max-width:1600px;margin:0 auto}.page-intro{margin-bottom:20px}.page-intro h2{font-size:19px;font-weight:700;letter-spacing:-.02em}.page-intro p{color:var(--ink-soft);font-size:13px;margin-top:3px}.controls{display:flex;gap:12px;align-items:flex-end;margin-bottom:22px;flex-wrap:wrap}.field label{display:block;font-size:10.5px;color:var(--ink-faint);margin-bottom:5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.field select{padding:9px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);font-size:13.5px;font-family:inherit;color:var(--ink);min-width:170px;cursor:pointer;transition:border-color .12s}.field select:hover{border-color:var(--brand)}.field select:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:22px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);opacity:0}.kpi.hl:before{opacity:1}.kpi .label{font-size:11.5px;color:var(--ink-soft);margin-bottom:9px;font-weight:500}.kpi .value{font-size:25px;font-weight:750;letter-spacing:-.025em;line-height:1}.kpi .value .unit{font-size:13px;font-weight:500;color:var(--ink-faint);margin-left:2px}.kpi .sub{font-size:11.5px;color:var(--ink-faint);margin-top:7px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:20px;overflow:hidden}.panel-head{padding:15px 20px;border-bottom:1px solid var(--line);font-weight:650;font-size:14px;display:flex;justify-content:space-between;align-items:center}.panel-head .hint{font-size:11.5px;color:var(--ink-faint);font-weight:400}.panel-pad{padding:20px}.tbl-wrap{overflow-x:auto;max-height:560px;overflow-y:auto;border-radius:var(--radius-sm)}.tbl-wrap table.clean thead{position:sticky;top:0;z-index:3}.tbl-wrap table.clean thead th,.tbl-wrap table.clean thead tr.grp th{background:var(--panel)}.tbl-wrap table.clean.grouped .grp-inc{background:var(--brand-soft)}.tbl-wrap table.clean.grouped .grp-exp{background:#f3eef7}.tbl-wrap table.clean.grouped .grp-rat{background:var(--accent-soft)}.charts-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:.5px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink-soft);font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s}.charts-toggle:hover{background:var(--brand-soft);color:var(--brand)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 20px;text-align:left;white-space:nowrap}th{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:700;border-bottom:1px solid var(--line);background:var(--line-soft);position:sticky;top:0}td{border-bottom:1px solid var(--line-soft)}tr:last-child td{border-bottom:none}td.r,th.r{text-align:right}tbody tr:hover{background:#fafcfb}.pos{color:var(--pos);font-weight:600}.neg{color:var(--neg);font-weight:600}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}tr.total-row td{font-weight:700;background:var(--brand-soft);border-top:2px solid var(--brand)}tr.group-row td{font-weight:700;background:var(--line-soft);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.chip{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}.chip.pos{background:var(--pos-soft)}.chip.neg{background:var(--neg-soft)}.state{padding:52px 24px;text-align:center;color:var(--ink-soft);font-size:14px}.state.err{color:var(--neg)}.spinner{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 760px){.app.collapsed .mobile-menu{display:flex}.sidebar{position:fixed;z-index:40;height:100vh;box-shadow:2px 0 16px #4a2a7a26;transform:translate(-100%);transition:transform .22s;width:236px}.app:not(.collapsed) .sidebar{transform:translate(0)}.app.collapsed .sidebar{transform:translate(-100%);width:236px}.app.collapsed .brand-text,.app.collapsed .nav-item .ni-label,.app.collapsed .nav-group-label{opacity:1;width:auto}.app.collapsed .nav-item{justify-content:flex-start;padding:9px 11px}.app.collapsed .brand{justify-content:flex-start;padding:20px 22px 18px}.content{padding:16px}}.source{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-faint);font-weight:500;background:var(--bg);border:1px solid var(--line);padding:3px 9px;border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.source .src-icon{width:6px;height:6px;border-radius:1px;background:var(--brand)}.source b{color:var(--brand);font-weight:700}.source-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;padding:10px 14px;background:var(--brand-soft);border-radius:var(--radius-sm);font-size:12px;color:var(--ink-soft)}.source-row .lead{font-weight:600;color:var(--brand)}.dash-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;flex-wrap:wrap}.dash-hero h2{font-size:22px;font-weight:750;letter-spacing:-.02em}.dash-hero p{font-size:13px;margin-top:2px}.vpill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.vpill.fav{color:var(--pos);background:var(--pos-soft)}.vpill.adv{color:var(--neg);background:var(--neg-soft)}.vpill .arw{font-size:8px}.sec{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:16px;overflow:hidden}.sec-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line-soft)}.sec-name{font-weight:650;font-size:14px}.sec-tot{font-size:13px}.sec-tot b{font-variant-numeric:tabular-nums}table.clean{width:100%;border-collapse:collapse;font-size:12.5px}table.clean th,table.clean td{padding:8px 14px;white-space:nowrap}table.clean thead th{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;border-bottom:1px solid var(--line-soft);background:none;position:static}table.clean td{border-bottom:1px solid var(--line-soft)}table.clean tr:last-child td{border-bottom:none}table.clean td.r,table.clean th.r{text-align:right}table.clean .row-lbl{font-weight:600;color:var(--ink-soft)}table.clean .num{font-variant-numeric:tabular-nums}table.clean .strong{font-weight:700;color:var(--ink)}table.clean tr.var-row td{padding-top:9px;padding-bottom:9px}table.clean tbody tr:hover{background:#fafcfb}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:8px}@media (max-width: 900px){.chart-grid{grid-template-columns:1fr}}.year-note{background:var(--brand-soft);border:1px solid transparent;border-radius:var(--radius-sm);padding:11px 16px;font-size:13px;color:var(--ink-soft);margin-bottom:18px}.year-note b{color:var(--brand)}.kpi{transition:transform .18s ease,box-shadow .18s ease}.kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.panel{transition:box-shadow .18s ease}.panel:hover{box-shadow:var(--shadow)}.sec{transition:transform .16s ease,box-shadow .16s ease}.sec:hover{box-shadow:var(--shadow)}.field select{transition:border-color .15s,box-shadow .15s}.field select:focus{box-shadow:0 0 0 3px var(--brand-soft)}.btn{transition:background .15s,transform .1s}.btn:active{transform:scale(.97)}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}table.clean.grouped thead tr.grp th{padding:6px 14px;font-size:10px;letter-spacing:.08em;border-bottom:1px solid var(--line)}table.clean.grouped .grp-inc{background:var(--brand-soft);color:var(--brand);border-radius:6px 6px 0 0}table.clean.grouped .grp-exp{background:#f3eef7;color:#6b4a8f}table.clean.grouped .grp-rat{background:var(--accent-soft);color:#7a6a1a}table.clean.grouped thead tr:not(.grp) th{border-bottom:2px solid var(--line)}table.clean.grouped th,table.clean.grouped td{padding-left:12px;padding-right:12px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg-btn{border:none;background:var(--panel);color:var(--ink-soft);font-family:inherit;font-size:12px;padding:6px 12px;cursor:pointer;border-right:1px solid var(--line);transition:background .12s,color .12s}.seg-btn:last-child{border-right:none}.seg-btn:hover{background:var(--bg)}.seg-btn.on{background:var(--brand);color:#fff;font-weight:600}.seg-btn.toggle{border:1px solid var(--line);border-radius:8px}.seg-btn.toggle.on{background:var(--accent);color:#201a2e;border-color:var(--accent)}.search{border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:12.5px;font-family:inherit;color:var(--ink);width:130px;transition:border-color .12s,box-shadow .12s}.search:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.cost-row td{background:#faf9fc}.cost-row .row-lbl{color:var(--ink-soft)}.tag{display:inline-block;margin-left:8px;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border:1px solid var(--line);border-radius:4px;padding:1px 5px;vertical-align:middle}.ikd-col{background:color-mix(in srgb,var(--accent) 8%,transparent)}th.ikd-col{color:var(--accent-dk);font-size:10.5px}.charts-head{display:flex;align-items:baseline;gap:12px;margin:26px 0 14px}.charts-head h3{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 900px){.charts-grid{grid-template-columns:1fr}}.chart-card{background:var(--panel);border:.5px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .15s}.chart-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.chart-title{font-size:13px;font-weight:600;color:var(--ink)}.chart-hint{font-size:11px;color:var(--ink-faint);margin-bottom:8px}.summary-split{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;align-items:start}.split-main{min-width:0}.split-side{min-width:0;position:sticky;top:84px}.split-side .charts-head{margin-top:0}.charts-grid.charts-side{grid-template-columns:1fr;gap:12px}@media (max-width: 1200px){.summary-split{grid-template-columns:1fr}.split-side{position:static}.charts-grid.charts-side{grid-template-columns:1fr 1fr}}@media (max-width: 700px){.charts-grid.charts-side{grid-template-columns:1fr}}.ai-panel{margin-top:18px;background:linear-gradient(160deg,#fff,#faf8fd);border:.5px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.ai-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand),var(--accent))}.ai-head{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:700;color:var(--ink)}.ai-badge{background:linear-gradient(135deg,var(--brand),var(--brand-mid));color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;letter-spacing:.03em}.ai-sub{font-size:12.5px;color:var(--ink-faint);margin:6px 0 12px}.ai-btns{display:flex;gap:10px;flex-wrap:wrap}.ai-btn{padding:9px 16px;border-radius:9px;border:.5px solid var(--line);background:var(--panel);color:var(--ink);font-size:13px;font-family:inherit;font-weight:600;cursor:pointer;transition:background .12s,transform .1s,box-shadow .12s}.ai-btn:hover:not(:disabled){background:var(--brand-soft);color:var(--brand)}.ai-btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-mid));color:#fff;border:none}.ai-btn.primary:hover:not(:disabled){box-shadow:0 4px 12px #4a2a7a4d;transform:translateY(-1px)}.ai-btn:disabled{opacity:.55;cursor:default}.ai-nokey{font-size:12.5px;color:var(--ink-soft);line-height:1.6;margin-top:8px;background:var(--accent-soft);padding:12px 14px;border-radius:9px}.ai-err{margin-top:12px;font-size:12.5px;color:var(--neg);background:#fdeaea;padding:10px 14px;border-radius:9px}.ai-result{margin-top:14px;border:.5px solid var(--line);border-radius:11px;overflow:hidden;background:var(--panel)}.ai-result-top{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;background:var(--brand-soft);border-bottom:.5px solid var(--line)}.ai-result-label{font-size:12px;font-weight:700;color:var(--brand);text-transform:uppercase;letter-spacing:.05em}.ai-dl{padding:5px 12px;border-radius:7px;border:.5px solid var(--brand-mid);background:var(--panel);color:var(--brand);font-size:12px;font-family:inherit;font-weight:600;cursor:pointer}.ai-dl:hover{background:var(--brand);color:#fff}.ai-text{padding:16px 18px;font-size:13.5px;line-height:1.7;color:var(--ink);white-space:pre-wrap}.chat-fab{position:fixed;bottom:24px;right:24px;z-index:50;display:flex;align-items:center;gap:9px;padding:13px 20px;background:linear-gradient(135deg,var(--brand),var(--brand-mid));color:#fff;border:none;border-radius:30px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;box-shadow:0 6px 20px #4a2a7a66;transition:transform .15s,box-shadow .15s}.chat-fab:hover{transform:translateY(-2px);box-shadow:0 8px 26px #4a2a7a80}.chat-fab-label{white-space:nowrap}.chat-win{position:fixed;bottom:24px;right:24px;z-index:51;width:400px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 48px);background:var(--panel);border:.5px solid var(--line);border-radius:16px;box-shadow:0 12px 40px #4a2a7a47;display:flex;flex-direction:column;overflow:hidden;animation:chatIn .2s cubic-bezier(.4,0,.2,1)}@keyframes chatIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}.chat-top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,var(--brand),var(--brand-mid));color:#fff}.chat-top .chat-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#fff}.chat-top .ai-badge{background:#ffffff38}.chat-x{background:#ffffff26;border:none;color:#fff;width:28px;height:28px;border-radius:7px;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-x:hover{background:#ffffff4d}.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-note{font-size:12.5px;color:var(--ink-soft);background:var(--accent-soft);padding:12px 14px;border-radius:10px;line-height:1.6}.chat-welcome p{font-size:13.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 12px}.chat-suggest{display:flex;flex-direction:column;gap:8px}.chat-chip{text-align:left;padding:10px 13px;border:.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--brand);font-size:12.5px;font-family:inherit;font-weight:600;cursor:pointer;transition:background .12s}.chat-chip:hover{background:var(--brand-soft)}.chat-msg{display:flex}.chat-msg.user{justify-content:flex-end}.chat-msg.assistant{justify-content:flex-start}.chat-bub{max-width:82%;padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.6;white-space:pre-wrap}.chat-msg.user .chat-bub{background:linear-gradient(135deg,var(--brand),var(--brand-mid));color:#fff;border-bottom-right-radius:4px}.chat-msg.assistant .chat-bub{background:var(--bg);color:var(--ink);border:.5px solid var(--line);border-bottom-left-radius:4px}.chat-typing{display:flex;gap:4px;align-items:center}.chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);animation:typing 1.2s infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chat-input-row{display:flex;gap:8px;padding:12px;border-top:.5px solid var(--line);background:var(--panel);align-items:flex-end}.chat-input{flex:1;resize:none;border:.5px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13.5px;color:var(--ink);background:var(--bg);max-height:120px;line-height:1.4}.chat-input:focus{outline:none;border-color:var(--brand-mid);box-shadow:0 0 0 3px var(--brand-soft)}.chat-send{flex-shrink:0;width:40px;height:40px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--brand),var(--brand-mid));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:box-shadow .12s,transform .1s}.chat-send:hover:not(:disabled){box-shadow:0 4px 12px #4a2a7a59;transform:translateY(-1px)}.chat-send:disabled{opacity:.45;cursor:default}@media (max-width: 480px){.chat-win{bottom:0;right:0;width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.chat-fab{bottom:16px;right:16px}}.theme-toggle{width:36px;height:36px;border-radius:9px;border:.5px solid var(--line);background:var(--panel);color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.theme-toggle:hover{background:var(--brand-soft);color:var(--brand)}.md{font-size:13.5px;line-height:1.65;color:var(--ink)}.md-p{margin:0 0 10px}.md-h{font-weight:700;color:var(--ink);margin:14px 0 8px;line-height:1.3}.md-h:first-child{margin-top:0}.md-h1{font-size:16px;padding-bottom:5px;border-bottom:2px solid var(--accent)}.md-h2{font-size:15px;color:var(--brand)}.md-h3{font-size:13.5px;color:var(--brand)}.md-h4{font-size:13px;color:var(--ink-soft)}.md-ul,.md-ol{margin:4px 0 12px;padding-left:20px}.md-ul li,.md-ol li{margin-bottom:5px}.md-ul{list-style:none;padding-left:4px}.md-ul li{position:relative;padding-left:16px}.md-ul li:before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent-dk)}.md-table{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:12.5px}.md-table th{text-align:left;padding:7px 10px;background:var(--brand-soft);color:var(--brand);font-weight:700;border-bottom:1px solid var(--line)}.md-table td{padding:7px 10px;border-bottom:.5px solid var(--line-soft);color:var(--ink)}.md-table tr:last-child td{border-bottom:none}.md strong{font-weight:700;color:var(--ink)}.mobile-menu{display:none;width:34px;height:34px;border-radius:8px;border:.5px solid var(--line);background:var(--panel);color:var(--ink-soft);cursor:pointer;align-items:center;justify-content:center}.mobile-menu:hover{background:var(--brand-soft);color:var(--brand)}.kpi-heroes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}.kpi-hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px;box-shadow:var(--shadow-sm)}.kpi-hero .hlab{font-size:11.5px;color:var(--ink-soft);font-weight:500}.kpi-hero .hval{font-size:24px;font-weight:750;color:var(--ink);letter-spacing:-.025em;line-height:1;margin-top:6px}.kpi-hero .hval.brandv{color:var(--brand)}.kpi-hero .hval .u{font-size:12px;font-weight:500;color:var(--ink-faint);margin-left:2px}.kpi-strip{display:grid;grid-template-columns:repeat(5,1fr);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:22px}.kpi-mini{padding:10px 13px;border-right:1px solid var(--line-soft)}.kpi-mini:last-child{border-right:0}.kpi-mini .mlab{font-size:11px;color:var(--ink-soft);line-height:1.25}.kpi-mini .mval{font-size:16.5px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1;margin-top:4px}.kpi-mini .mval .u{font-size:11px;font-weight:500;color:var(--ink-faint);margin-left:1px}.kpi-mini .mval.pos{color:var(--pos)}.kpi-mini .mval.neg{color:var(--neg)}@media (max-width: 760px){.kpi-heroes{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,1fr)}.kpi-mini{border-bottom:1px solid var(--line-soft)}}tr.row-total td{font-weight:700;background:var(--brand-soft);border-top:2px solid var(--brand)}tr.row-contrib td{font-weight:600;color:var(--ink-soft);background:var(--line-soft)}.kpi-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:22px}.kpi-block-head{display:flex;justify-content:space-between;align-items:center;background:var(--brand);color:#fff;font-weight:700;font-size:12.5px;padding:9px 16px;letter-spacing:.01em}.kpi-list{display:grid;grid-template-columns:1fr 1fr}.kpi-line{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 16px;border-bottom:1px solid var(--line-soft);min-height:22px}.kpi-line:nth-child(odd){border-right:1px solid var(--line-soft)}.kpi-line-lbl{font-size:12px;color:var(--ink-soft);line-height:1.3}.kpi-line-val{font-size:15px;font-weight:750;color:var(--ink);white-space:nowrap;letter-spacing:-.02em}.kpi-line-val .u{font-size:11px;font-weight:500;color:var(--ink-faint);margin-left:1px}.kpi-line-val.pos{color:var(--pos)}.kpi-line-val.neg{color:var(--neg)}@media (max-width: 760px){.kpi-list{grid-template-columns:1fr}.kpi-line:nth-child(odd){border-right:0}}.cashflow-tbl th:first-child,.cashflow-tbl td:first-child{text-align:left;white-space:nowrap;font-weight:600}.cashflow-tbl th.ye,.cashflow-tbl td.ye{border-left:2px solid var(--brand);font-weight:700;background:var(--brand-soft)}.total-income-tbl th .sub{font-size:10px;font-weight:500;color:var(--ink-faint);margin-top:2px}.ratio-tbl .ratio-val{font-weight:700;color:var(--brand)}.sum-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px}.sum-tab{font-size:13px;padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink-faint);transition:color .15s,border-color .15s,background .15s}.sum-tab:hover{color:var(--ink);border-color:var(--brand-mid)}.sum-tab.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.sum-charts-full{margin-top:4px}.uk-tbl{font-size:12px}.uk-tbl th{white-space:normal;font-size:10px;line-height:1.25;min-width:82px;vertical-align:bottom;font-weight:600}.uk-tbl th:first-child{min-width:150px;text-align:left}.uk-tbl td{white-space:nowrap}.uk-tbl .grp-inc{text-align:center;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--brand);background:#7c6bd81a}.uk-tbl .grp-exp{text-align:center;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:#b5652f;background:#e08a5b1f}.uk-tbl .uk-grp{font-weight:700;color:var(--brand);background:var(--brand-soft);padding-top:9px;padding-bottom:9px}.uk-tbl .grp-ikd{text-align:center;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:#2f7d5b;background:#2f9e751f}.wk-tbl{font-size:11.5px}.wk-tbl th{white-space:nowrap;font-size:10px;font-weight:600;padding:5px 7px}.wk-tbl th:first-child{text-align:left;min-width:150px}.wk-tbl td{white-space:nowrap;padding:5px 7px}.wk-tbl .wk-month{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);background:#7c6bd81a}.wk-tbl .wk-tot{background:#7c6bd80f;font-weight:600}.wk-tbl tbody .wk-tot{color:var(--ink)}.sidebar,.content{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.sidebar::-webkit-scrollbar,.content::-webkit-scrollbar{width:9px;height:9px}.sidebar::-webkit-scrollbar-track,.content::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb,.content::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px;border:2px solid transparent;background-clip:content-box}.sidebar:hover::-webkit-scrollbar-thumb,.content:hover::-webkit-scrollbar-thumb{background:var(--brand-soft);background-clip:content-box}.nav-item{transition:background .14s,color .14s,transform .14s ease}.nav-item:hover{transform:translate(2px)}.app.collapsed .nav-item:hover{transform:none}.app.collapsed .nav-group+.nav-group{border-top:1px solid var(--line-soft);margin-top:6px;padding-top:10px}.recon-badge{margin-left:auto;background:#c1770f;color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;line-height:1;box-shadow:0 0 0 3px var(--panel)}.recon-badge.collapsed{position:absolute;top:4px;right:8px;margin:0;min-width:16px;height:16px;font-size:10px;border-radius:8px;padding:0 4px;box-shadow:0 0 0 2px var(--panel)}.user-chip{display:flex;align-items:center;gap:10px;padding-left:12px;margin-left:2px;border-left:1px solid var(--line)}.user-avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-mid));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;letter-spacing:.02em;box-shadow:0 2px 8px #4a2a7a47}.user-meta{line-height:1.2;min-width:0}.user-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.user-role{font-size:11px;color:var(--ink-faint);text-transform:capitalize}.logout-btn{margin-left:4px}@media (max-width: 820px){.user-meta{display:none}.user-chip{padding-left:8px;gap:8px}}.sidebar{-webkit-user-select:none;user-select:none}.imp-tbl{border-collapse:separate;border-spacing:0}.imp-tbl thead th{position:sticky;top:0;z-index:2;background:var(--panel);box-shadow:inset 0 -1px 0 var(--line);white-space:nowrap}.imp-tbl td,.imp-tbl th{padding:7px 12px}.imp-tbl tbody tr:nth-child(2n)>td{background:#785ab40d}.imp-tbl tbody tr:hover>td{background:#785ab41a}.imp-tbl .r,.imp-tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.imp-tbl .strong{font-weight:650}.imp-tbl td:first-child,.imp-tbl th:first-child{white-space:nowrap}.imp-tbl tbody tr.imp-total>td{font-weight:700;border-top:2px solid var(--line);background:var(--brand-soft, rgba(74,42,122,.06))}@media print{.sidebar,.topbar,.controls,.source-row,.no-print,.ai-panel,.seg,button{display:none!important}.app,.app.collapsed{display:block!important}.main{margin:0!important;width:100%!important}.content{padding:10px 6px!important;max-width:none!important;margin:0!important}.panel,.kpi,.sec,.dash-hero,.tbl-wrap,table{break-inside:avoid;page-break-inside:avoid}body,.app,.content,.panel,.sec{background:#fff!important;box-shadow:none!important}.kpi-row{display:flex!important;flex-wrap:wrap;gap:10px}@page{margin:12mm;size:A4 landscape}}
