:root{color:#172033;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}.loading-screen,.login-page{align-items:center;background:#f5f7fb;display:flex;min-height:100vh;justify-content:center}.login-panel{background:#fff;border:1px solid #dde3ec;border-radius:8px;box-shadow:0 18px 45px #17203314;display:grid;gap:16px;padding:32px;width:min(420px,calc(100vw - 32px))}.login-mark{align-items:center;background:#eef7f2;border-radius:8px;color:#1f8a4c;display:flex;height:44px;justify-content:center;width:44px}.login-panel h1,.login-panel p{margin:0}.login-panel p{color:#607087;line-height:1.45}.login-panel label{color:#3b4658;display:grid;font-size:14px;gap:7px}.login-panel input{background:#fff;border:1px solid #cfd8e5;border-radius:7px;color:#172033;min-height:38px;outline:none;padding:8px 10px}.login-panel input:focus{border-color:#4f9fe8;box-shadow:0 0 0 3px #4f9fe829}.login-panel button,.logout-button,.icon-button,.sidebar-toggle,.period-picker__button,.period-preset{align-items:center;border:0;border-radius:7px;cursor:pointer;display:inline-flex;font-weight:650;gap:8px;justify-content:center}.login-panel button{background:#172033;color:#fff;min-height:42px}.login-panel button:disabled{cursor:wait;opacity:.7}.form-error,.alert{background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;color:#9a3412;font-size:14px;padding:11px 12px}.alert{margin-bottom:16px}.alert--error{background:#fff1f2;border-color:#fecdd3;color:#be123c}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.app-shell--sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid #dde3ec;display:flex;flex-direction:column;gap:28px;padding:22px 16px}.brand{align-items:center;display:flex;gap:12px;min-width:0}.brand__mark{align-items:center;background:#172033;border-radius:8px;color:#fff;display:flex;font-size:13px;font-weight:800;height:38px;justify-content:center;width:38px}.brand strong,.brand span{display:block}.brand__text{min-width:0}.brand span{color:#607087;font-size:12px;margin-top:2px}.sidebar-toggle{background:#f8fafc;border:1px solid #dde3ec;color:#3b4658;height:34px;margin-left:auto;padding:0;width:34px}.app-shell--sidebar-collapsed .sidebar{padding-left:18px;padding-right:18px}.app-shell--sidebar-collapsed .brand{display:grid;gap:10px;justify-items:center}.app-shell--sidebar-collapsed .brand__text,.app-shell--sidebar-collapsed .nav-item span{display:none}.app-shell--sidebar-collapsed .sidebar-toggle{margin-left:0}.sidebar nav{display:grid;gap:6px}.nav-item{align-items:center;border-radius:7px;color:#3b4658;display:flex;font-size:14px;gap:10px;min-height:38px;padding:8px 10px;text-decoration:none}.app-shell--sidebar-collapsed .nav-item{justify-content:center;padding-left:0;padding-right:0}.nav-item--active{background:#eef5ff;color:#1765ad;font-weight:700}.nav-item--muted{color:#9aa6b5}.dashboard{min-width:0;padding:26px 30px 42px}.topbar{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:18px}.topbar h1{font-size:28px;letter-spacing:0;line-height:1.2;margin:0}.topbar p{color:#607087;margin:6px 0 0}.topbar__controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.period-picker{position:relative}.period-picker__button{background:#fff;border:1px solid #dde3ec;color:#3b4658;min-height:38px;padding:8px 11px}.period-picker__button strong{color:#172033;font-variant-numeric:tabular-nums}.period-popover{background:#fff;border:1px solid #d7dfeb;border-radius:8px;box-shadow:0 18px 36px #1720331f;display:grid;gap:12px;padding:12px;position:absolute;right:0;top:calc(100% + 8px);width:min(440px,calc(100vw - 28px));z-index:5}.period-presets{display:flex;flex-wrap:wrap;gap:8px}.period-preset{background:#f8fafc;border:1px solid #dbe4ef;color:#3b4658;font-size:13px;min-height:34px;padding:7px 10px}.period-preset--active{background:#eef5ff;border-color:#9cc8f3;color:#1765ad}.period-preset:disabled{cursor:default}.period-range{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.period-range label{color:#607087;display:grid;font-size:13px;gap:6px}.period-range input{background:#fff;border:1px solid #cfd8e5;border-radius:7px;color:#172033;min-height:38px;outline:none;padding:8px 10px}.period-range input:focus{border-color:#4f9fe8;box-shadow:0 0 0 3px #4f9fe829}.icon-button,.logout-button{background:#fff;border:1px solid #dde3ec;color:#3b4658;min-height:38px;padding:8px 11px}.icon-button{aspect-ratio:1}.quality-strip{align-items:center;background:#fff;border:1px solid #dde3ec;border-radius:8px;color:#3b4658;display:flex;flex-wrap:wrap;gap:14px 22px;margin-bottom:14px;padding:12px 14px}.quality-strip div{align-items:center;display:flex;gap:7px}.scenario-strip{align-items:center;background:#fff;border:1px solid #dde3ec;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(240px,1fr) minmax(260px,auto) minmax(190px,auto);margin-bottom:14px;padding:14px}.scenario-strip__copy{display:grid;gap:4px}.scenario-strip__copy strong,.scenario-strip__total strong{color:#172033}.scenario-strip__copy span,.scenario-strip__total span{color:#607087;font-size:13px;line-height:1.4}.fund-toggles{display:flex;flex-wrap:wrap;gap:8px}.fund-toggle{align-items:center;background:#f8fafc;border:1px solid #dbe4ef;border-radius:7px;color:#273347;cursor:pointer;display:inline-flex;font-size:13px;font-weight:650;gap:8px;min-height:34px;padding:7px 10px;white-space:nowrap}.fund-toggle input{accent-color:#1765ad;height:15px;margin:0;width:15px}.scenario-strip__total{display:grid;gap:4px;justify-items:end;text-align:right}.kpi-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(180px,1fr));margin-bottom:14px}.kpi-card,.panel{background:#fff;border:1px solid #dde3ec;border-radius:8px}.kpi-card{display:grid;gap:7px;min-height:112px;padding:16px}.kpi-card span{color:#607087;font-size:13px}.kpi-card strong{color:#172033;font-size:clamp(20px,2vw,28px);letter-spacing:0;line-height:1.12}.kpi-card small{color:#607087}.kpi-card--positive strong,.money-cell--positive{color:#16894f}.kpi-card--negative strong,.money-cell--negative,.money-cell--negative.money-cell--neutral{color:#cf3b31}.panel{margin-top:14px;overflow:hidden}.section-heading{align-items:center;border-bottom:1px solid #e7ecf3;display:flex;justify-content:space-between;padding:16px 18px}.section-heading h2{font-size:18px;line-height:1.3;margin:0}.chart-shell{height:380px;padding:12px 18px 18px}.chart-tooltip{background:#fff;border:1px solid #d7dfeb;border-radius:8px;box-shadow:0 18px 36px #1720331f;display:grid;gap:9px;min-width:260px;padding:14px}.chart-tooltip__title{color:#172033;font-weight:800}.chart-tooltip__row,.chart-tooltip__total{align-items:center;display:grid;gap:8px;grid-template-columns:10px minmax(0,1fr) auto}.chart-tooltip__dot{border-radius:999px;height:10px;width:10px}.chart-tooltip__total{border-top:1px solid #e7ecf3;grid-template-columns:minmax(0,1fr) auto;padding-top:9px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;font-size:13px;min-width:1160px;width:100%}th,td{border-bottom:1px solid #edf1f6;padding:11px 12px;text-align:right;white-space:nowrap}th:first-child,td:first-child{left:0;position:sticky;text-align:left;z-index:1}th:first-child{background:#f8fafc}td:first-child{background:#fff;font-weight:700}th{background:#f8fafc;color:#607087;font-size:12px;font-weight:750}.money-cell{color:#273347;font-variant-numeric:tabular-nums}.money-cell--strong{font-weight:800}.empty-state{align-items:center;color:#607087;display:flex;height:100%;justify-content:center}@media(max-width:1080px){.app-shell,.app-shell--sidebar-collapsed{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #dde3ec;border-right:0;flex-direction:row;overflow-x:auto}.sidebar nav{display:flex;min-width:max-content}.app-shell--sidebar-collapsed .brand{display:flex;justify-items:initial}.app-shell--sidebar-collapsed .brand__text,.app-shell--sidebar-collapsed .nav-item span{display:block}.app-shell--sidebar-collapsed .nav-item{justify-content:flex-start;padding:8px 10px}.kpi-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.scenario-strip{grid-template-columns:1fr}.scenario-strip__total{justify-items:start;text-align:left}}@media(max-width:720px){.dashboard{padding:18px 14px 30px}.topbar{display:grid}.topbar__controls{justify-content:flex-start}.period-popover{left:0;right:auto}.period-range,.kpi-grid{grid-template-columns:1fr}.chart-shell{height:320px;padding-left:8px;padding-right:8px}}
