:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:light-dark(#142235,var(--rvr-brand));background:light-dark(#f5f7fa,var(--rvr-surface));font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}.sidebar{background:light-dark(#111e31,#111e31);color:light-dark(#e8f0f8,var(--rvr-text));padding:27px 17px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 12px 42px}.brand-mark{display:grid;place-items:center;background:light-dark(#21c2af,var(--rvr-soft));color:light-dark(#0c2532,var(--rvr-brand));font-weight:900;font-size:17px;width:38px;height:38px;border-radius:11px;letter-spacing:-.08em}.brand strong{display:block;font-size:17px;line-height:1.1}.brand small{display:block;color:light-dark(#8fa3b8,var(--rvr-brand));font-size:12px;margin-top:3px}.sidebar-label{color:light-dark(#758a9f,var(--rvr-brand));font-size:11px;letter-spacing:.14em;font-weight:800;padding:0 15px 12px}.sidebar nav{display:grid;gap:5px}.nav-link{display:flex;align-items:center;gap:13px;color:light-dark(#a9bacb,var(--rvr-muted));padding:12px 15px;border-radius:10px;font-weight:600;font-size:14px}.nav-link:hover,.nav-link.active{background:light-dark(#20344a,#20344a);color:light-dark(#fff,var(--rvr-text))}.nav-link.active{box-shadow:inset 3px 0 #21c2af}.nav-icon{font-size:20px;width:21px;text-align:center;line-height:1}.sidebar-bottom{margin-top:auto;border-top:1px solid light-dark(#2c4054,var(--rvr-line));padding:20px 15px 0;display:flex;gap:10px;align-items:flex-start;color:light-dark(#d9e7ef,var(--rvr-muted));font-size:13px}.sidebar-bottom small{color:light-dark(#8297aa,var(--rvr-brand))}.local-dot{background:light-dark(#21c2af,var(--rvr-soft));width:9px;height:9px;border-radius:50%;margin-top:4px;box-shadow:0 0 0 4px #174c4f}.main{min-width:0}.topbar{height:72px;background:light-dark(#fff,var(--rvr-surface));border-bottom:1px solid light-dark(#e5ebf1,var(--rvr-line));display:flex;align-items:center;justify-content:space-between;padding:0 38px}.breadcrumb{font-size:14px;font-weight:650;color:light-dark(#627388,var(--rvr-brand))}.breadcrumb span{padding:0 11px;color:light-dark(#a7b5c3,var(--rvr-muted))}.topbar-right{display:flex;align-items:center;gap:16px}.pill{background:light-dark(#eef5f7,var(--rvr-soft));color:light-dark(#2e626e,var(--rvr-brand));border:1px solid light-dark(#d5e8e9,var(--rvr-line));border-radius:8px;padding:8px 11px;font-size:11px;font-weight:800;letter-spacing:.07em}.avatar{border-radius:50%;width:34px;height:34px;display:grid;place-items:center;background:light-dark(#152d45,#152d45);color:light-dark(#fff,var(--rvr-text));font-size:11px;font-weight:800}.page-section{padding:35px 38px 0;max-width:1630px;margin:auto;scroll-margin-top:14px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.section-heading.compact{padding-top:30px}.eyebrow{font-size:11px;color:light-dark(#149a8c,var(--rvr-brand));font-weight:850;letter-spacing:.16em;margin-bottom:7px}h1{font-size:33px;letter-spacing:-.045em;line-height:1.08;margin:0;color:light-dark(#142235,var(--rvr-brand))}h2{font-size:18px;letter-spacing:-.025em;margin:0;color:light-dark(#17283d,var(--rvr-brand))}.lead{margin:11px 0 0;color:light-dark(#758598,var(--rvr-brand));font-size:14px}.status-pill,.count-pill{font-size:12px;font-weight:700;border-radius:100px;padding:8px 12px;background:light-dark(#e8f5f1,var(--rvr-soft));color:light-dark(#207b69,var(--rvr-success));white-space:nowrap}.count-pill{background:light-dark(#e9eef4,var(--rvr-soft));color:light-dark(#415c73,var(--rvr-brand))}.count-pill.amber{background:light-dark(#fff0d5,var(--rvr-soft));color:light-dark(#956013,var(--rvr-warning))}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi,.panel{background:light-dark(#fff,var(--rvr-surface));border:1px solid light-dark(#e3eaf0,var(--rvr-line));border-radius:14px;box-shadow:0 5px 22px rgba(21,39,59,.035)}.kpi{padding:22px 22px 19px;min-height:152px}.kpi>span{color:light-dark(#73869a,var(--rvr-brand));font-size:13px;font-weight:700}.kpi strong{display:block;color:light-dark(#15283c,var(--rvr-brand));font-size:29px;letter-spacing:-.045em;margin:14px 0 8px;white-space:nowrap}.kpi small{font-size:12px;color:light-dark(#8290a0,var(--rvr-muted))}.kpi.accent{background:light-dark(#163c4a,#163c4a);border-color:light-dark(#163c4a,var(--rvr-line))}.kpi.accent>span,.kpi.accent small{color:light-dark(#a6c4c9,var(--rvr-muted))}.kpi.accent strong{color:light-dark(#fff,var(--rvr-text))}.chart-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:14px;margin-top:14px}.panel{padding:23px}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.panel-head p{color:light-dark(#8392a3,var(--rvr-muted));font-size:12px;margin:6px 0 0}.legend{display:flex;gap:15px;align-items:center;font-size:11px;color:light-dark(#738399,var(--rvr-brand));white-space:nowrap}.legend span{display:flex;align-items:center;gap:6px}.swatch{display:inline-block;width:9px;height:9px;border-radius:50%}.swatch.teal{background:light-dark(#27b4a4,var(--rvr-soft))}.swatch.blue{background:light-dark(#537cae,var(--rvr-soft))}.chart{height:270px;margin-top:20px}.chart svg{width:100%;height:100%;overflow:visible}.chart-grid .panel:not(.large){min-height:350px}.donut-wrap{height:190px;display:grid;place-items:center;margin-top:14px}.donut-wrap svg{max-height:190px}.expense-legend{display:grid;grid-template-columns:1fr 1fr;gap:9px 12px}.expense-legend div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:light-dark(#5d6e81,var(--rvr-brand))}.expense-legend strong{font-size:11px;color:light-dark(#253c52,var(--rvr-brand))}.pnl-panel{margin-top:14px}.pnl-lines{margin-top:12px}.pnl-line{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid light-dark(#eef2f6,var(--rvr-line));font-size:14px}.pnl-line:last-child{border:none}.pnl-line span{color:light-dark(#596d80,var(--rvr-brand))}.pnl-line strong{font-variant-numeric:tabular-nums;color:light-dark(#1d3347,var(--rvr-brand))}.pnl-line.sub{padding-left:19px}.pnl-line.key{background:light-dark(#f2f8f8,var(--rvr-surface));margin:0 -12px;padding:12px;border-radius:7px;font-weight:700}.pnl-line.key span,.pnl-line.key strong{color:light-dark(#173f47,var(--rvr-brand))}.pnl-line.profit{background:light-dark(#163c4a,#163c4a);margin:12px -12px 0;padding:15px 12px;border-radius:8px}.pnl-line.profit span,.pnl-line.profit strong{color:light-dark(#fff,var(--rvr-text))}.project-panel{padding:0}.table-toolbar{display:flex;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid light-dark(#edf1f5,var(--rvr-line))}.table-toolbar input,.table-toolbar select{border:1px solid light-dark(#dbe4eb,var(--rvr-line));border-radius:8px;background:light-dark(#fff,var(--rvr-surface));color:light-dark(#274056,var(--rvr-brand));padding:10px 12px;font-size:13px;outline:none}.table-toolbar input{width:270px}.table-toolbar input:focus,.table-toolbar select:focus{border-color:light-dark(#21ad9f,var(--rvr-line));box-shadow:0 0 0 3px #e2f6f3}.table-scroller{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:right;padding:14px 17px;color:light-dark(#8190a0,var(--rvr-muted));font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid light-dark(#e9eef3,var(--rvr-line))}th:first-child{text-align:left}td{padding:13px 17px;text-align:right;color:light-dark(#293d51,var(--rvr-brand));border-bottom:1px solid light-dark(#edf1f5,var(--rvr-line));font-variant-numeric:tabular-nums;white-space:nowrap}td:first-child{text-align:left;font-weight:700;color:light-dark(#1d3549,var(--rvr-brand))}tr:hover td{background:light-dark(#f8fbfc,var(--rvr-surface))}.negative{color:light-dark(#b65c56,var(--rvr-danger))}.positive{color:light-dark(#168779,var(--rvr-success))}.table-note{padding:13px 18px;background:light-dark(#f7fafb,var(--rvr-surface));border-radius:0 0 14px 14px;font-size:12px;color:light-dark(#728697,var(--rvr-brand))}.flow-panel{padding:22px 25px}.sankey{width:100%;overflow:auto}.sankey svg{width:100%;min-width:780px;height:auto}.flow-note{border-top:1px solid light-dark(#e9eef2,var(--rvr-line));margin-top:8px;padding-top:16px;color:light-dark(#7b8d9f,var(--rvr-brand));font-size:12px}.sources-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sources-list{margin-top:12px}.source-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid light-dark(#eef2f6,var(--rvr-line));padding:13px 0}.source-row:last-child{border:0}.source-row strong{display:block;font-size:13px}.source-row span{font-size:11px;color:light-dark(#8999a9,var(--rvr-muted))}.source-row b{font-size:12px;white-space:nowrap;color:light-dark(#236f6b,var(--rvr-brand))}.method-list p{border-bottom:1px solid light-dark(#eef2f6,var(--rvr-line));margin:0;padding:13px 0;display:grid;grid-template-columns:120px 1fr;gap:15px;font-size:12px}.method-list p:last-child{border:0}.method-list b{color:light-dark(#2c4357,var(--rvr-brand))}.method-list span{color:light-dark(#758698,var(--rvr-brand))}.review-panel{margin-top:14px}.review-list{margin-top:15px}.review-row{display:grid;grid-template-columns:70px 1fr 120px;gap:12px;align-items:center;padding:13px 0;border-top:1px solid light-dark(#eef2f6,var(--rvr-line));font-size:13px}.review-row span:first-child{color:light-dark(#90a0af,var(--rvr-muted))}.review-row strong{text-align:right;font-variant-numeric:tabular-nums}footer{padding:38px;color:light-dark(#99a9b7,var(--rvr-muted));font-size:11px}.login-page{min-height:100vh;display:grid;place-items:center;background:light-dark(#111e31,#111e31)}.login-card{background:light-dark(#fff,var(--rvr-surface));border-radius:20px;padding:36px;width:min(92vw,430px);box-shadow:0 24px 80px #08152480}.login-card .brand-mark{margin-bottom:27px}.login-card p{color:light-dark(#738497,var(--rvr-brand));font-size:14px;line-height:1.5}.login-card form{display:grid;gap:9px;margin:23px 0}.login-card label{font-size:13px;font-weight:700}.login-card input{border:1px solid light-dark(#ccd9e2,var(--rvr-line));border-radius:8px;padding:12px}.login-card button{border:0;border-radius:8px;background:light-dark(#1c8f87,var(--rvr-soft));color:light-dark(#fff,var(--rvr-text));font-weight:700;padding:13px;cursor:pointer}.login-card small{color:light-dark(#8999a6,var(--rvr-muted))}.login-card #login-error{color:light-dark(#b34b49,var(--rvr-danger));font-size:12px;min-height:16px}@media(max-width:1180px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}}@media(max-width:800px){.shell{display:block}.sidebar{height:auto;position:static;padding:12px 16px}.brand{padding:0 0 12px}.sidebar-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto}.nav-link{white-space:nowrap;padding:8px 11px}.topbar{height:56px;padding:0 18px}.page-section{padding:24px 17px 0}.section-heading{align-items:flex-start;flex-direction:column}.sources-grid{grid-template-columns:1fr}.chart-grid{grid-template-columns:1fr}}@media(max-width:540px){h1{font-size:27px}.kpi-grid{gap:8px}.kpi{padding:14px;min-height:135px}.kpi strong{font-size:20px}.kpi small{font-size:11px}.panel{padding:17px}.legend{display:none}.table-toolbar{flex-direction:column}.table-toolbar input{width:100%}.pnl-line{font-size:12px}}
:is(.expense-legend) .group-0{background:light-dark(#1fae9c,var(--rvr-success-bg))}:is(.expense-legend) .group-1{background:light-dark(#58c4b5,var(--rvr-success-bg))}:is(.expense-legend) .group-2{background:light-dark(#8db3b8,var(--rvr-soft))}:is(.expense-legend) .group-3{background:light-dark(#517ba6,var(--rvr-soft))}
:root{color:light-dark(#17213a,var(--rvr-brand));background:light-dark(#e7e7e7,var(--rvr-soft))}
body{background:light-dark(#e7e7e7,var(--rvr-soft))}
.sidebar{background:light-dark(#0f296f,#0f296f);color:light-dark(#fff,var(--rvr-text))}
.brand-mark{background:light-dark(#f95d51,var(--rvr-danger-bg));color:light-dark(#fff,var(--rvr-text))}
.brand small,.sidebar-label,.sidebar-bottom small{color:light-dark(#aebce3,var(--rvr-text))}
.nav-link{color:light-dark(#d5def4,var(--rvr-muted))}
.nav-link:hover,.nav-link.active{background:light-dark(#29478f,var(--rvr-soft));color:light-dark(#fff,var(--rvr-text))}
.nav-link.active{box-shadow:inset 3px 0 #f95d51}
.sidebar-bottom{border-color:light-dark(#435da1,var(--rvr-line))}
.local-dot{background:light-dark(#f95d51,var(--rvr-danger-bg));box-shadow:0 0 0 4px #536ba6}
.topbar{background:light-dark(#efefef,var(--rvr-soft));border-color:light-dark(#d4d4d4,var(--rvr-line))}
.pill{background:light-dark(#dee4f5,var(--rvr-soft));color:light-dark(#0f296f,var(--rvr-brand));border-color:light-dark(#c6d0eb,var(--rvr-line))}
.avatar{background:light-dark(#0f296f,#0f296f)}
.eyebrow{color:light-dark(#f95d51,var(--rvr-danger))}
.status-pill{background:light-dark(#e5eafa,var(--rvr-soft));color:light-dark(#0f296f,var(--rvr-brand))}
.count-pill{background:light-dark(#dce3f4,var(--rvr-soft));color:light-dark(#0f296f,var(--rvr-brand))}
.kpi,.panel,.comparison-card{border-color:light-dark(#d8dce5,var(--rvr-line));box-shadow:0 5px 22px rgba(15,41,111,.045)}
.kpi.accent{background:light-dark(#0f296f,#0f296f);border-color:light-dark(#0f296f,var(--rvr-line))}
.kpi.accent>span,.kpi.accent small{color:light-dark(#c2cef0,var(--rvr-muted))}
.swatch.teal{background:light-dark(#0f296f,#0f296f)}
.swatch.blue{background:light-dark(#f95d51,var(--rvr-danger-bg))}
.expense-legend .group-0{background:light-dark(#0f296f,#0f296f)}
.expense-legend .group-1{background:light-dark(#5470b6,var(--rvr-soft))}
.expense-legend .group-2{background:light-dark(#a2afd3,var(--rvr-soft))}
.expense-legend .group-3{background:light-dark(#f95d51,var(--rvr-danger-bg))}
.pnl-line.key{background:light-dark(#edf1fa,var(--rvr-soft))}
.pnl-line.key span,.pnl-line.key strong{color:light-dark(#0f296f,var(--rvr-brand))}
.pnl-line.profit{background:light-dark(#0f296f,#0f296f)}
.table-toolbar input:focus,.table-toolbar select:focus,.ranking-panel select:focus{border-color:light-dark(#0f296f,var(--rvr-line));box-shadow:0 0 0 3px #e4eafb}
.positive{color:light-dark(#0f296f,var(--rvr-brand))}
.negative{color:light-dark(#d94b42,var(--rvr-danger))}
.table-note{background:light-dark(#f1f3f8,var(--rvr-soft))}
.login-page{background:light-dark(#0f296f,#0f296f)}
.login-card button{background:light-dark(#0f296f,#0f296f)}
.comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.comparison-card{background:light-dark(#fff,var(--rvr-surface));border:1px solid;border-radius:14px;padding:20px 22px;min-height:127px}
.comparison-card span{color:light-dark(#73839b,var(--rvr-brand));font-size:13px;font-weight:700}
.comparison-card strong{display:block;color:light-dark(#0f296f,var(--rvr-brand));font-size:28px;letter-spacing:-.04em;margin:9px 0 5px}
.comparison-card small{color:light-dark(#7e8ca3,var(--rvr-brand));font-size:12px}
.ranking-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.ranking-panel{min-width:0}
.ranking-panel select{border:1px solid light-dark(#d3d9e5,var(--rvr-line));border-radius:8px;background:light-dark(#fff,var(--rvr-surface));color:light-dark(#0f296f,var(--rvr-brand));padding:8px 10px;font-size:12px;outline:none}
.rank-list{margin-top:16px;display:grid;gap:12px}
.rank-row{min-width:0}
.rank-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:5px}
.rank-top span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:light-dark(#203151,var(--rvr-brand));font-weight:650}
.rank-top b{display:inline-grid;place-items:center;background:light-dark(#edf1fa,var(--rvr-soft));color:light-dark(#0f296f,var(--rvr-brand));width:22px;height:22px;border-radius:6px;margin-right:9px;font-size:11px}
.rank-top strong{white-space:nowrap;color:light-dark(#0f296f,var(--rvr-brand));font-size:11px;font-variant-numeric:tabular-nums}
.rank-negative .rank-top strong{color:light-dark(#d94b42,var(--rvr-danger))}
.rank-row progress{display:block;width:100%;height:8px;appearance:none;border:0;border-radius:5px;overflow:hidden;background:light-dark(#e8ebf1,var(--rvr-soft))}
.rank-row progress::-webkit-progress-bar{background:light-dark(#e8ebf1,var(--rvr-soft))}
.rank-row progress::-webkit-progress-value{background:light-dark(#3657a5,var(--rvr-soft));border-radius:5px}
.rank-row progress::-moz-progress-bar{background:light-dark(#3657a5,var(--rvr-soft));border-radius:5px}
.rank-negative progress::-webkit-progress-value{background:light-dark(#f95d51,var(--rvr-danger-bg))}
.rank-negative progress::-moz-progress-bar{background:light-dark(#f95d51,var(--rvr-danger-bg))}
.project-panel .table-title{padding:20px 20px 0}
.table-controls{display:flex;gap:9px}
.show-all{display:block;margin:14px auto;border:1px solid light-dark(#b4c2e3,var(--rvr-line));border-radius:8px;background:light-dark(#fff,var(--rvr-surface));color:light-dark(#0f296f,var(--rvr-brand));font-weight:750;font-size:13px;padding:10px 16px;cursor:pointer}
.show-all:hover{background:light-dark(#edf1fa,var(--rvr-soft))}
.show-all[hidden]{display:none}
@media(max-width:1000px){.comparison-grid{grid-template-columns:1fr 1fr}.ranking-grid{grid-template-columns:1fr}}
@media(max-width:650px){.comparison-grid{grid-template-columns:1fr}.comparison-card{min-height:auto}.ranking-panel .panel-head{flex-wrap:wrap}.table-controls{width:100%}.table-controls select{flex:1;min-width:0}}
.brand{gap:11px;padding-bottom:34px}.brand-logo{width:43px;height:43px;object-fit:contain;background:light-dark(#fff,var(--rvr-surface));border-radius:10px;padding:4px}.brand strong{font-size:14px;white-space:nowrap}.avatar{font-size:9px}
.period-controls{display:flex;gap:10px;align-items:end}.period-controls label{display:grid;gap:5px;color:light-dark(#6a7890,var(--rvr-brand));font-size:11px;font-weight:750}.period-controls select{min-width:125px;padding:9px 31px 9px 11px;border:1px solid light-dark(#cbd4e5,var(--rvr-line));border-radius:9px;background:light-dark(#fff,var(--rvr-surface));color:light-dark(#0f296f,var(--rvr-brand));font-size:13px;font-weight:700}.period-note{margin:-10px 0 18px;color:light-dark(#6c7b91,var(--rvr-brand));font-size:12px}.section-heading{align-items:center}.chart-grid{grid-template-columns:minmax(0,1.75fr) minmax(320px,.9fr)}
.expense-panel{min-width:0}.expense-panel .panel-head{margin-bottom:3px}.donut-wrap{height:224px;margin:5px 0}.donut-wrap svg{width:216px;max-height:216px}.expense-legend{display:grid;grid-template-columns:1fr;gap:8px}.expense-legend div{font-size:12px;padding:3px 0}.expense-legend .swatch{margin-right:6px}
.pnl-scroll{overflow:auto;margin-top:15px}.pnl-table{width:100%;min-width:780px}.pnl-table th{font-size:10px;vertical-align:bottom;white-space:normal;line-height:1.3;padding:11px 13px}.pnl-table td{padding:11px 13px}.pnl-table td:first-child{min-width:225px}.pnl-table tr.key td{background:light-dark(#edf1fa,var(--rvr-soft));color:light-dark(#0f296f,var(--rvr-brand));font-weight:800}.pnl-table tr.profit td{background:light-dark(#0f296f,#0f296f);color:light-dark(#fff,var(--rvr-text));font-weight:800;border-color:light-dark(#0f296f,var(--rvr-line))}.pnl-table tr.profit .negative,.pnl-table tr.profit .positive{color:light-dark(#fff,var(--rvr-text))}.pnl-table .ytd-cell strong{display:block;color:inherit}.pnl-table .ytd-cell small{display:block;font-size:11px;margin-top:3px}.pnl-table tr.sub td:first-child{padding-left:25px;font-weight:550}.muted{color:light-dark(#9aa5b8,var(--rvr-muted))}
.monthly-bars{display:grid;gap:10px;padding:8px 0}.month-row{display:grid;grid-template-columns:42px minmax(0,1fr) 85px 100px;gap:13px;align-items:center;padding:6px 9px;border-radius:8px;color:light-dark(#445674,var(--rvr-brand));font-size:12px;font-variant-numeric:tabular-nums}.month-row.selected{background:light-dark(#edf1fa,var(--rvr-soft))}.month-row>span{text-align:right;font-weight:750;color:light-dark(#0f296f,var(--rvr-brand))}.month-row small{text-align:right;color:light-dark(#78879d,var(--rvr-brand))}.month-track{position:relative;height:15px;border-radius:5px;background:light-dark(#e9edf5,var(--rvr-soft));overflow:hidden}.month-revenue{height:100%;background:light-dark(#8096ca,var(--rvr-soft));border-radius:5px}.month-row.selected .month-revenue{background:light-dark(#0f296f,#0f296f)}.month-margin{position:absolute;left:0;top:0;height:100%;background:light-dark(#f95d51,var(--rvr-danger-bg));opacity:.95;border-radius:5px}
.source-details{margin-top:14px}.source-details>summary{cursor:pointer;color:light-dark(#0f296f,var(--rvr-brand));font-size:13px;font-weight:750;padding:13px 16px;background:light-dark(#fff,var(--rvr-surface));border:1px solid light-dark(#d8dce5,var(--rvr-line));border-radius:9px}.source-details[open]>summary{margin-bottom:12px}.sources-grid{align-items:start}.review-panel{margin-top:0}.flow-note{margin-top:12px}
@media(max-width:1180px){.chart-grid{grid-template-columns:1fr}.expense-panel{max-width:460px}}
@media(max-width:800px){.section-heading{align-items:flex-start}.period-controls{width:100%;flex-wrap:wrap}.period-controls label{flex:1}.period-controls select{width:100%}.month-row{grid-template-columns:32px minmax(0,1fr) 68px}.month-row small{display:none}}
.page-section{max-width:1560px;padding:36px clamp(38px,4.3vw,72px) 0}.topbar{padding:0 clamp(38px,4.3vw,72px)}
.section-heading{margin-bottom:16px;gap:32px}.section-heading>div:first-child{min-width:0}.lead{max-width:720px;line-height:1.45}
.period-controls{flex:none;gap:14px;padding-right:2px}.period-controls label{gap:7px}.period-controls select{min-width:146px;height:42px;border-radius:10px;box-shadow:0 2px 8px rgba(15,41,111,.035)}.period-controls label:last-child select{min-width:184px}
.report-meta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 19px}.period-note{margin:0;line-height:1.35}.report-status{font-size:11px;color:light-dark(#60728d,var(--rvr-brand));text-align:right;white-space:nowrap}
.chart-grid{gap:16px;margin-top:16px}.kpi-grid{gap:16px}.kpi,.panel,.comparison-card{border-radius:16px}.kpi{min-height:144px}.kpi strong{line-height:1.1}.panel{padding:24px}
.pnl-table tr.key td{border-top:1px solid light-dark(#dbe3f3,var(--rvr-line))}.pnl-table tr.profit td:first-child{border-radius:8px 0 0 8px}.pnl-table tr.profit td:last-child{border-radius:0 8px 8px 0}
@media(max-width:1050px){.page-section{padding-left:30px;padding-right:30px}.topbar{padding-left:30px;padding-right:30px}.section-heading{align-items:flex-start;flex-direction:column;gap:18px}.period-controls{width:100%}.report-meta{align-items:flex-start;flex-direction:column;gap:6px}.report-status{text-align:left}}
@media(max-width:800px){.page-section{padding:25px 18px 0}.topbar{padding:0 18px}.period-controls{flex-wrap:wrap;gap:10px}.period-controls label{min-width:130px;flex:1}.period-controls select,.period-controls label:last-child select{width:100%;min-width:0}.chart-grid{gap:12px}.kpi-grid{gap:10px}.panel{padding:18px}}
.swatch.blue{background:light-dark(#258d69,var(--rvr-success-bg))}.chart-grid{grid-template-columns:minmax(0,1.45fr) minmax(380px,1fr)}.chart{height:310px}
.donut-wrap{height:170px;margin:8px 0 6px}.donut-wrap svg{width:170px;max-height:170px}.expense-legend{gap:0}.expense-legend .expense-item{display:grid;grid-template-columns:minmax(0,1fr) 66px 46px;align-items:center;gap:8px;padding:5px 0;border-top:1px solid light-dark(#eef1f7,var(--rvr-line));font-size:11px}.expense-legend .expense-item span{display:flex;align-items:center;min-width:0;color:light-dark(#34435d,var(--rvr-brand))}.expense-legend .expense-item .swatch{flex:none;margin-right:7px}.expense-legend .expense-item strong{font-size:11px;text-align:right;font-variant-numeric:tabular-nums;color:light-dark(#172b55,var(--rvr-brand))}.expense-legend .expense-item small{font-size:10px;text-align:right;color:light-dark(#7b8ba5,var(--rvr-brand));font-variant-numeric:tabular-nums}
.pnl-table{min-width:810px}.pnl-table th:nth-child(1){width:27%}.pnl-table th:nth-child(2){width:16%}.pnl-table th:nth-child(3){width:25%}.pnl-table th:nth-child(4){width:32%}.pnl-table th span{font-weight:600;text-transform:none;letter-spacing:0;color:light-dark(#96a1b2,var(--rvr-muted))}.pnl-table td{white-space:normal}.pnl-table td:nth-child(2){white-space:nowrap;font-weight:700}.pnl-table .comparison-cell{white-space:nowrap}.compare-amount{font-weight:650;font-variant-numeric:tabular-nums}.compare-separator{color:light-dark(#a4afc1,var(--rvr-muted));margin:0 6px}.delta{display:inline-block;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.delta.good{color:light-dark(#0d7956,var(--rvr-success));background:light-dark(#e6f5ec,var(--rvr-soft))}.delta.bad{color:light-dark(#bb443e,var(--rvr-danger));background:light-dark(#fdece9,var(--rvr-soft))}.delta.neutral{color:light-dark(#728096,var(--rvr-brand));background:light-dark(#f0f2f6,var(--rvr-soft))}.pnl-table tr.profit .compare-amount{color:light-dark(#fff,var(--rvr-text))}.pnl-table tr.profit .compare-separator{color:light-dark(#aabbe3,var(--rvr-text))}
.rank-row progress{height:14px;border-radius:7px}.rank-row progress::-webkit-progress-bar{background:light-dark(#e7efe9,var(--rvr-soft))}.rank-row progress::-webkit-progress-value{background:light-dark(#27936c,var(--rvr-success-bg));border-radius:7px}.rank-row progress::-moz-progress-bar{background:light-dark(#27936c,var(--rvr-success-bg));border-radius:7px}.rank-negative progress::-webkit-progress-value{background:light-dark(#e96a60,var(--rvr-danger-bg))}.rank-negative progress::-moz-progress-bar{background:light-dark(#e96a60,var(--rvr-danger-bg))}.rank-top strong{color:light-dark(#187958,var(--rvr-success))}.rank-negative .rank-top strong{color:light-dark(#c24c45,var(--rvr-danger))}
.monthly-legend{display:flex;gap:24px;flex-wrap:wrap;color:light-dark(#5f7089,var(--rvr-brand));font-size:12px;font-weight:700;padding-bottom:15px;border-bottom:1px solid light-dark(#edf0f6,var(--rvr-line))}.monthly-legend span{display:inline-flex;align-items:center;gap:7px}.monthly-revenue-color{background:light-dark(#0f296f,#0f296f)}.monthly-margin-color{background:light-dark(#8195c4,var(--rvr-soft))}.monthly-profit-color{background:light-dark(#258d69,var(--rvr-success-bg))}.monthly-bars{gap:0;padding:8px 0}.month-row{display:grid;grid-template-columns:45px minmax(0,1fr);gap:14px;align-items:center;padding:9px 11px;border-bottom:1px solid light-dark(#eef1f6,var(--rvr-line));border-radius:0}.month-row:last-child{border-bottom:0}.month-row.selected{border-radius:8px;border-color:transparent}.month-row>strong{font-size:12px;color:light-dark(#34445e,var(--rvr-brand))}.month-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.month-metric{min-width:0;font-variant-numeric:tabular-nums}.month-metric>span{display:block;font-size:12px;font-weight:750;color:light-dark(#1c315a,var(--rvr-brand));margin-bottom:5px;white-space:nowrap}.month-metric.profit>span{color:light-dark(#187958,var(--rvr-success))}.month-metric.loss>span{color:light-dark(#bd4b45,var(--rvr-danger))}.mini-track{width:100%;height:8px;border-radius:5px;background:light-dark(#ebeff6,var(--rvr-soft));overflow:hidden}.mini-fill{height:100%;border-radius:5px;background:light-dark(#0f296f,#0f296f)}.month-metric.margin .mini-fill{background:light-dark(#8195c4,var(--rvr-soft))}.month-metric.profit .mini-fill{background:light-dark(#258d69,var(--rvr-success-bg))}.month-metric.loss .mini-fill{background:light-dark(#e96a60,var(--rvr-danger-bg))}
@media(max-width:1180px){.chart-grid{grid-template-columns:1fr}.expense-panel{max-width:none}.expense-legend{grid-template-columns:1fr 1fr;column-gap:18px}}
@media(max-width:650px){.expense-legend{grid-template-columns:1fr}.monthly-bars{overflow-x:auto}.month-row{min-width:580px}.monthly-legend{gap:10px 16px}.pnl-table{min-width:800px}}
.rank-context{display:block;margin:-1px 0 7px 31px;color:light-dark(#7a879a,var(--rvr-brand));font-size:10px;line-height:1.3}.project-context{display:block;margin-top:3px;color:light-dark(#6f7f98,var(--rvr-brand));font-size:10px;font-weight:550;white-space:normal;max-width:320px;line-height:1.3}
.project-context.warning{color:light-dark(#a05a2d,var(--rvr-warning))}
.chart-grid{align-items:start}.chart{height:auto;margin-top:12px}.chart svg{display:block;width:100%;height:auto}
.monthly-head{display:grid;grid-template-columns:45px minmax(0,1fr);gap:14px;padding:2px 11px 12px;border-bottom:1px solid light-dark(#dfe6f0,var(--rvr-line));color:light-dark(#64748d,var(--rvr-brand));font-size:12px;font-weight:800}.month-head-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.month-head-labels span:first-child{color:light-dark(#0f296f,var(--rvr-brand))}.month-head-labels span:last-child{color:light-dark(#187958,var(--rvr-success))}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%230f296f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 13px center!important;background-size:12px 8px!important;padding-right:38px!important;cursor:pointer}select:focus-visible{outline:2px solid #0f296f;outline-offset:2px}
@media(max-width:650px){.monthly-head{min-width:580px}.flow-panel{overflow:hidden}.monthly-bars{overflow-x:auto}}
.sidebar-section,.sidebar-subsection{margin:0}.sidebar-section>summary,.sidebar-subsection>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;color:light-dark(#b7c7ed,var(--rvr-text));font-weight:800}.sidebar-section>summary::-webkit-details-marker,.sidebar-subsection>summary::-webkit-details-marker{display:none}.sidebar-section>summary{padding:14px 12px 10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase}.sidebar-subsection>summary{padding:12px 13px;margin:6px 0;color:light-dark(#fff,var(--rvr-text));font-size:14px;background:light-dark(#1b377a,#1b377a);border-radius:10px}.sidebar-section>summary:after,.sidebar-subsection>summary:after{content:'⌄';font-size:16px;line-height:1;transition:transform .18s}.sidebar-section:not([open])>summary:after,.sidebar-subsection:not([open])>summary:after{transform:rotate(-90deg)}.sidebar-subsection nav{padding-left:9px}.sidebar-subsection .nav-link{padding:10px 14px;font-size:13px}.sidebar-section summary:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:7px}
.chart-grid{align-items:stretch}.chart-grid>.large{display:flex;flex-direction:column}.chart{flex:1;min-height:390px;margin-top:12px;display:flex;align-items:stretch}.chart svg{width:100%;height:100%;min-height:390px}
.rank-top{display:grid;grid-template-columns:minmax(0,1fr) 102px 76px;gap:8px;align-items:center}.rank-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-amount,.rank-percent{text-align:right;font-variant-numeric:tabular-nums;font-size:12px!important}.rank-percent{color:light-dark(#6b7892,var(--rvr-brand))!important}.rank-negative .rank-amount,.rank-negative .rank-percent{color:light-dark(#c24c45,var(--rvr-danger))!important}
.margin-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.margin-amount{font-weight:750}.margin-signal{display:inline-block;min-width:56px;text-align:center;padding:3px 6px;border-radius:6px;font-weight:800;font-size:11px}.margin-signal.good{background:light-dark(#e6f5ec,var(--rvr-soft));color:light-dark(#0d7956,var(--rvr-success))}.margin-signal.caution{background:light-dark(#fff3d7,var(--rvr-soft));color:light-dark(#9b6b0d,var(--rvr-warning))}.margin-signal.bad{background:light-dark(#fdece9,var(--rvr-soft));color:light-dark(#bb443e,var(--rvr-danger))}
.monthly-head,.month-row{grid-template-columns:62px minmax(0,1fr);gap:16px}.month-head-labels,.month-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.month-head-labels span:first-child{color:inherit}.month-head-labels span:last-child{color:light-dark(#187958,var(--rvr-success))}.month-row{padding:12px 11px}.month-row>strong{font-size:13px}.share-metric{min-width:0;font-variant-numeric:tabular-nums}.share-metric strong{display:block;margin-bottom:6px;font-size:14px;color:light-dark(#263d67,var(--rvr-brand))}.share-metric.profit strong{color:light-dark(#187958,var(--rvr-success))}.share-metric.loss strong,.share-metric.overflow strong{color:light-dark(#bd4b45,var(--rvr-danger))}.share-metric.unavailable strong{color:light-dark(#9aa6b7,var(--rvr-muted))}.share-track{height:10px;border-radius:6px;background:light-dark(#ebeff6,var(--rvr-soft));overflow:hidden}.share-fill{height:100%;border-radius:6px;background:light-dark(#8297c9,var(--rvr-soft))}.share-metric.marketing .share-fill{background:light-dark(#f08372,var(--rvr-danger-bg))}.share-metric.team .share-fill{background:light-dark(#3556a1,var(--rvr-soft))}.share-metric.other .share-fill{background:light-dark(#9baad0,var(--rvr-soft))}.share-metric.profit .share-fill{background:light-dark(#258d69,var(--rvr-success-bg))}.share-metric.loss .share-fill,.share-metric.overflow .share-fill{background:light-dark(#e96a60,var(--rvr-danger-bg))}
@media(max-width:800px){.sidebar-section>summary{display:none}.sidebar-subsection>summary{padding:6px 12px}.sidebar-subsection nav{padding-left:0}.chart{min-height:320px}.chart svg{min-height:320px}.month-head-labels,.month-metrics{gap:14px}}
@media(max-width:650px){.monthly-head,.month-row{min-width:690px}.flow-panel{overflow-x:auto}.monthly-bars{overflow:visible}.rank-top{grid-template-columns:minmax(0,1fr) 85px 65px}.rank-amount,.rank-percent{font-size:11px!important}}

@media(max-width:800px){.sidebar-section>summary{display:flex;padding:10px 8px}.sidebar-section nav{flex-wrap:wrap;overflow:visible}}
.unit-toggle{cursor:pointer;font:inherit;font-size:12px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.unit-toggle:hover{background:light-dark(#cdd8f2,var(--rvr-soft))}.unit-toggle:focus-visible{outline:2px solid #0f296f;outline-offset:3px}
.pnl-section-nav .pnl-parent{font-weight:800;color:light-dark(#fff,var(--rvr-text));background:light-dark(#1b377a,#1b377a)}
.pnl-section-nav .nav-link:not(.pnl-parent){margin-left:13px}
.chart{overflow-x:auto;overflow-y:hidden}.chart svg{flex:none}
body.money-rubles .kpi strong{font-size:clamp(18px,2vw,27px)}
