*{scrollbar-width:thin;scrollbar-color:var(--accent-2) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--accent-2);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--accent)}::-webkit-scrollbar-corner{background:0 0}:root{--bg:#f0f2f5;--bg-2:#e8ebf0;--sidebar:#eef0f4;--panel:#fff;--panel-2:#ffffffc0;--inset:#eef1f6;--track:#d0d6e080;--line:#d0d6e0;--line-soft:#dce1e8;--accent:#3b4f91;--accent-deep:#2b3969;--accent-2:#8b9bd0;--brand-blue-1:#1e2547;--brand-blue-2:#2b3969;--warm-bg:#e6dfd9;--taupe:#c4bcad;--maroon:#3e0a07;--slate:#848c97;--blue:#4a8fc4;--blue-2:#6aa9da;--teal:#1f8a6c;--text:#1a1e2a;--muted:#5c6478;--muted-2:#848c97;--display:"Montserrat",system-ui,sans-serif;--body:"Montserrat",system-ui,sans-serif;--sidebar-w:266px;--sidebar-w-collapsed:72px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}.app{grid-template-columns:var(--sidebar-w) 1fr;height:100dvh;transition:grid-template-columns .25s;display:grid}.app.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar-backdrop{display:none}.hamburger-btn{background:var(--inset);width:38px;height:38px;color:var(--text);cursor:pointer;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;transition:all .15s;display:none}.hamburger-btn:hover{color:var(--accent);background:var(--panel)}.mobile-brand{flex:none;align-items:center;text-decoration:none;display:none}.mobile-brand-mark{object-fit:contain;flex:none;width:42px;height:42px}.sidebar{background:var(--sidebar);border-right:1px solid var(--line-soft);flex-direction:column;padding:16px 14px 18px;transition:padding .25s;display:flex;overflow:auto}.sidebar .sidebar-inner{flex-direction:column;flex:1;display:flex}.collapsed .sidebar{scrollbar-width:none;align-items:center;padding:16px 10px 18px;overflow:hidden}.collapsed .sidebar .brand{justify-content:center;gap:0;padding-bottom:14px}.collapsed .sidebar .brand-mark{display:block}.collapsed .sidebar .brand-full,.collapsed .sidebar .toggle{display:none}.collapsed .sidebar .nav a{justify-content:center;padding:11px 0}.collapsed .sidebar .nav a .nav-icon{width:22px;height:22px}.collapsed .sidebar .nav a .nav-text,.collapsed .sidebar .nav-label,.collapsed .sidebar .nav-divider,.collapsed .sidebar .nav a .dot{display:none}.collapsed .sidebar .collapse-btn{justify-content:center;padding:8px 0}.collapsed .sidebar .collapse-btn .collapse-text{display:none}.collapsed .sidebar .collapse-btn svg{transform:rotate(180deg)}.collapsed .sidebar .theme-btn .collapse-text{display:none}.brand{justify-content:center;align-items:center;padding-bottom:26px;display:flex}.brand-mark{object-fit:contain;flex:none;width:46px;height:46px;display:none}.brand-full{object-fit:contain;width:auto;height:68px;display:block}.collapse-btn{color:var(--muted-2);font-family:var(--body);cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;margin-top:auto;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.collapse-btn:hover{color:var(--text);background:#00000008}.collapse-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;transition:transform .25s}.toggle{gap:10px;margin:22px 0 8px;display:flex}.toggle button{border:1.5px solid var(--accent);color:var(--accent);font-family:var(--body);cursor:pointer;background:0 0;border-radius:999px;flex:1;padding:8px 0;font-size:13.5px;font-weight:600;transition:all .15s}.toggle button.on{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}.toggle button:not(.on){color:var(--text)}.toggle button:not(.on):hover{background:#8b9bd01a}.nav{flex-direction:column;gap:2px;margin-top:14px;display:flex}.nav a{color:var(--muted);cursor:pointer;border-radius:10px;align-items:center;gap:11px;padding:11px 14px;font-size:14.5px;font-weight:500;text-decoration:none;transition:all .15s;display:flex;position:relative}.nav a .dot{background:var(--accent);opacity:0;border-radius:50%;flex:none;width:7px;height:7px}.nav a:hover{color:var(--text);background:#00000006}.nav a.active{color:var(--text);background:linear-gradient(90deg,#e8ecf4,#f0f2f7 70%)}.nav a.active .dot{opacity:1}.nav a .nav-icon{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.nav-divider{background:var(--line-soft);height:1px;margin:8px 0}.nav-label{letter-spacing:.18em;color:var(--muted-2);text-transform:uppercase;margin-top:4px;padding:8px 14px 4px;font-size:10.5px;font-weight:600}.main{flex-direction:column;min-width:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line-soft);flex:none;align-items:center;gap:12px;padding-right:18px;display:flex}.tabs{flex:1;gap:8px;padding:18px 26px;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--line);background:var(--panel);color:var(--text);font-family:var(--body);white-space:nowrap;cursor:pointer;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:600;transition:all .15s}.tabs button:hover{color:var(--text);border-color:var(--muted-2)}.tabs button.on{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}.theme-btn{background:var(--inset);width:36px;height:36px;color:var(--muted);cursor:pointer;border:0;border-radius:10px;flex:none;place-items:center;transition:all .15s;display:grid}.theme-btn:hover{color:var(--accent);background:var(--panel)}.theme-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.content{flex:1;padding:22px 26px;overflow:hidden auto}.card{background:var(--panel);border:1px solid var(--line-soft);border-radius:18px;min-width:0}.card-pad{padding:18px 20px}.eyebrow{letter-spacing:.16em;color:var(--muted);text-align:center;font-size:13.5px;font-weight:700}#page-insights .eyebrow,#page-areas .eyebrow,#page-payment-plan .eyebrow,#page-top-projects .eyebrow,#page-overview .eyebrow,#page-profitability .eyebrow,#page-comparison .eyebrow{color:#2b3969}.ov-top{grid-template-columns:260px 1fr;gap:18px;display:grid}.launch{flex-direction:column;justify-content:space-between;display:flex}.launch .title{font-family:var(--display);color:var(--accent);letter-spacing:-.01em;white-space:nowrap;font-size:26px;font-style:normal;font-weight:700;line-height:.92;position:relative}.launch .title:after{content:attr(data-tooltip);color:#fff;font-family:var(--body);letter-spacing:0;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:20;background:linear-gradient(120deg,#2b3969,#1e2547);border-radius:10px;padding:8px 14px;font-size:12px;font-style:normal;font-weight:600;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 10px 24px #0a0e1a47}.launch .title:before{content:"";opacity:0;visibility:hidden;pointer-events:none;z-index:20;border:6px solid #0000;border-top-color:#1e2547;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.launch .title:hover:after,.launch .title:focus-visible:after,.launch .title:hover:before,.launch .title:focus-visible:before{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.launch .desc{color:var(--muted);margin:10px 0 0;font-size:13px}.launch .launch-box{margin:0}.statbox{background:#eef1f6;border:1px solid #dce1e8;border-radius:13px;align-items:center;gap:12px;padding:22px 13px;display:flex}.statbox .ic{background:#e0e5ee;border-radius:11px;flex:none;place-items:center;width:46px;height:46px;display:grid}.statbox .ic svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.statbox .num{font-family:var(--display);letter-spacing:.01em;color:var(--accent);font-size:34px;font-style:italic;font-weight:900;line-height:1}.statbox .lab{color:var(--muted);white-space:nowrap;margin-top:4px;font-size:13px}.vbars{align-items:flex-start;gap:14px;min-width:0;height:312px;margin-top:16px;padding:0 24px 0 6px;display:flex;overflow-x:auto}.vbar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:calc(100% - 90px);display:flex;position:relative}.vbar .val{color:var(--muted);justify-content:center;align-items:center;height:18px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.vbar .fill{background:linear-gradient(#2b3969,#8b9bd0);border-radius:7px 7px 0 0;width:70%;min-height:16px}.vbar .lbl{color:var(--muted-2);white-space:normal;overflow-wrap:break-word;text-align:right;transform-origin:100% 0;max-width:72px;margin-top:18px;font-size:11px;line-height:1.15;position:absolute;top:100%;right:0;transform:rotate(-32deg)}#page-overview .vbar .fill{width:36px}#page-overview .vbar .lbl{color:#2b3969;text-align:center;overflow-wrap:normal;word-break:keep-all;max-width:none;font-size:12px;font-weight:700;left:0;right:0;transform:none}#page-overview .vbars.diagonal-labels .vbar .lbl{color:#2b3969;transform-origin:100% 0;text-align:right;overflow-wrap:break-word;word-break:normal;max-width:72px;font-size:11px;font-weight:700;left:auto;right:0;transform:rotate(-32deg)}#page-top-projects .vbar .fill{width:36px}#page-top-projects .vbar .lbl{color:#2b3969;text-align:center;max-width:80px;margin-left:0;font-size:13px;font-weight:700;left:50%;right:auto;transform:translate(-50%)}.ov-bottom{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.hbar-row{grid-template-columns:104px 1fr 52px;align-items:center;gap:14px;margin:11px 0;display:grid;overflow:visible}.hbar-row .name{color:#2b3969;text-align:right;white-space:normal;overflow-wrap:break-word;font-size:13px;line-height:1.25}.hbar-row .track{background:var(--track);border-radius:999px;height:14px;overflow:hidden}.hbar-row .fill{border-radius:999px;height:100%}.fill.blue{background:linear-gradient(90deg,#5e9fd2,#84bce6)}.fill.accent{background:linear-gradient(90deg,#2b3969,#8b9bd0)}.hbar-row .v{color:var(--muted);text-align:right;white-space:nowrap;min-width:80px;font-size:13px;font-weight:600;overflow:visible}.launch .title{cursor:pointer;transition:transform .2s,color .2s}.launch .title:hover{color:var(--accent-deep);transform:translateY(-2px)}@media (width>=1081px){#page-overview.show{flex-direction:column;gap:18px;height:100%;display:flex}#page-overview .ov-top{flex:4;min-height:305px}#page-overview .ov-bottom{flex:3;min-height:170px;margin-top:0}#page-overview .ov-chart-card{flex-direction:column;height:100%;min-height:0;display:flex}#page-overview .vbars{flex:1;height:auto;min-height:120px}#page-overview .ov-bottom .card-pad{flex-direction:column;height:100%;min-height:0;display:flex}#page-overview .typ-list{flex:1;height:auto;min-height:60px;max-height:none!important}}.kpis{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.kpi{border:1px solid var(--line-soft);border-radius:16px;align-items:center;gap:16px;min-height:96px;padding:18px 20px;display:flex}.kpi .ic{border-radius:12px;flex:none;place-items:center;width:50px;height:50px;display:grid}.kpi .ic svg{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.kpi .k-lab{color:var(--text);font-size:13.5px;font-weight:500}.kpi .k-num{font-family:var(--display);letter-spacing:.01em;margin-top:2px;font-size:33px;font-style:italic;font-weight:900;line-height:1.05}.kpi.accent{background:linear-gradient(120deg,#2b3969,#1e2547)}.kpi.accent .ic{background:#ffffff26}.kpi.accent .ic svg{stroke:#fff}.kpi.accent .k-lab{color:#c1cae6;font-weight:600}.kpi.accent .k-num{color:#fff}.kpi.blue{background:#e8f0fa}.kpi.blue .ic{background:#d0e2f5}.kpi.blue .ic svg{stroke:#63a6dc}.kpi.blue .k-num{color:#2b3969}.kpi.teal{background:#e6f5f0}.kpi.teal .ic{background:#ccebe0}.kpi.teal .ic svg{stroke:#21c795}.kpi.slate{background:#eef0f4}.kpi.slate .ic{background:#dce0e8}.kpi.slate .ic svg{stroke:#7ca2e2}.kpi.slate .k-num{color:#2b3969}.dev-grid{grid-template-columns:296px 1fr;align-items:flex-start;gap:18px;margin-top:18px;display:grid}.right-col{flex-direction:column;gap:0;min-height:0;display:flex;overflow:hidden}.dev-grid .filter-col{width:100%}.dev-grid .chart-panel{height:340px}.filter h4{color:var(--accent);font-family:var(--display);margin:0 0 14px;font-size:17px;font-weight:800}.filter-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.filter-head h4{margin:0 0 14px}.clear-filter-btn{border:1px solid var(--line-soft);background:var(--inset);cursor:pointer;width:34px;height:34px;color:var(--muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:14px;transition:all .15s;display:inline-flex}.clear-filter-btn:hover{background:var(--panel);color:var(--text);border-color:var(--line)}.clear-filter-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.filter-list{max-height:120px;overflow-y:auto}.search{background:#eef1f6;border:1px solid #d0d6e0;border-radius:9px;align-items:center;gap:9px;margin-bottom:14px;padding:9px 12px;display:flex}.search svg{width:15px;height:15px;stroke:var(--muted-2);fill:none;stroke-width:2px}.search input{color:var(--text);font-family:var(--body);background:0 0;border:0;outline:none;width:100%;font-size:13.5px}.search input::placeholder{color:var(--muted-2)}.opt,.cmp-opt,.pcheck{color:var(--text);cursor:pointer;align-items:center;gap:11px;padding:8px 2px;font-size:14px;display:flex}.cb{border:1.5px solid #3a4566;border-radius:5px;flex:none;place-items:center;width:18px;height:18px;display:grid}.cb.on{background:var(--accent-deep);border-color:var(--accent-deep)}.cb svg{stroke:#fff;stroke-width:3px;fill:none;opacity:0;width:12px;height:12px}.cb.on svg{opacity:1}.mini-title{letter-spacing:.14em;color:var(--muted);text-align:center;font-size:13.5px;font-weight:750}#page-developers .mini-title,#page-specs .mini-title{color:#2b3969}.legend{color:var(--text);gap:18px;margin:10px 0 0;font-size:12.5px;display:flex}.legend span{align-items:center;gap:7px;display:inline-flex}.legend i{border-radius:50%;width:9px;height:9px;display:inline-block}.nv{justify-content:center;align-items:flex-end;gap:30px;margin-top:18px;display:flex;overflow:visible}.nv .col{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex}.nv .v{color:var(--muted);margin-bottom:6px;font-size:12px}.nv .b{border-radius:5px 5px 0 0;width:28px}.nv .lab{color:var(--muted);margin-top:9px;font-size:12px}.area-bars{align-items:flex-end;gap:16px;margin-top:20px;padding-bottom:40px;display:flex;overflow:visible}.area-bars .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.area-bars .v{color:var(--muted);margin-bottom:6px;font-size:12px}.area-bars .b{background:linear-gradient(#2b3969,#8b9bd0);border-radius:6px 6px 0 0;width:70%;max-width:32px;height:80px}.area-bars .lab{color:#2b3969;text-align:center;white-space:normal;overflow-wrap:normal;word-break:keep-all;width:100%;margin-top:10px;font-size:13px;font-weight:700;line-height:1.2}table{border-collapse:collapse;border-radius:12px;width:100%;margin-top:18px;overflow:hidden}thead th{color:#fff;text-align:left;background:linear-gradient(90deg,#2b3969,#1e2547);padding:13px 16px;font-size:13.5px;font-weight:700}tbody td{color:var(--text);border-bottom:1px solid var(--line-soft);padding:14px 16px;font-size:13.5px}tbody tr:nth-child(2n){background:#f4f6f9}td.dev{color:var(--accent-deep);font-weight:600}.badge{color:#3a7aaa;background:#e0e9f2;border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:500;display:inline-block}.page{display:none}.page.show{display:block}.dev-table-wrap{border-radius:12px;width:100%;padding:0;position:relative;overflow:auto}.dev-table-wrap::-webkit-scrollbar{display:none}.dev-table-wrap table{border-radius:0;width:max-content;min-width:100%;margin-top:0}.dev-table{table-layout:fixed}.dev-table thead th,.dev-table tbody td{white-space:nowrap;padding:8px 12px;font-size:12.5px}.dev-table thead th:first-child,.dev-table tbody td:first-child{width:230px}.dev-table thead th:nth-child(2),.dev-table tbody td:nth-child(2){width:180px}.dev-table thead th:nth-child(3),.dev-table tbody td:nth-child(3){width:170px}.dev-table thead th:nth-child(n+4),.dev-table tbody td:nth-child(n+4){width:150px}.dev-table-wrap thead{z-index:3;position:sticky;top:0}.dev-table-wrap thead th{z-index:3;background:linear-gradient(90deg,#2b3969,#1e2547);position:sticky;top:0}.dev-table-wrap thead th:first-child{z-index:5;left:0}.dev-table-wrap tbody td.sticky-col{z-index:1;background:var(--panel);position:sticky;left:0}.dev-table-wrap tbody tr:nth-child(2n) td.sticky-col{background:#f4f6f9}.dev-table-wrap tbody tr:hover td.sticky-col{background:var(--bg-2)}.upload-zone{border:2px dashed var(--line);text-align:center;cursor:pointer;background:var(--panel-2);border-radius:18px;padding:48px 32px;transition:all .15s}.upload-zone:hover{border-color:var(--accent);background:#8b9bd008}.upload-zone.dragover{border-color:var(--accent);background:#8b9bd012}.upload-zone .upload-icon{background:var(--inset);border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;display:inline-flex}.upload-zone .upload-icon svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.upload-zone .upload-title{font-family:var(--display);color:var(--text);margin-bottom:6px;font-size:20px;font-weight:800}.upload-zone .upload-desc{color:var(--muted);margin-bottom:4px;font-size:13.5px}.upload-zone .upload-formats{color:var(--muted-2);margin-top:8px;font-size:12px}.upload-zone input[type=file]{display:none}.btn-accent{background:var(--accent-deep);color:#fff;font-family:var(--body);cursor:pointer;border:0;border-radius:999px;padding:12px 32px;font-size:14px;font-weight:700;transition:all .15s}.btn-accent:hover{filter:brightness(1.18)}.btn-accent:disabled{opacity:.5;cursor:not-allowed}.file-name{background:var(--inset);color:var(--muted);border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:8px 16px;font-size:13px;display:inline-flex}.file-name svg{width:16px;height:16px;stroke:var(--teal);fill:none;stroke-width:2px}.settings-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.settings-info p{color:var(--muted);margin:6px 0;font-size:13.5px;line-height:1.6}.settings-info .icon-row{align-items:center;gap:12px;padding:10px 0;display:flex}.settings-info .icon-row svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:2px;flex:none}.success-msg{color:#1a7a54;background:#e6f5ee;border:1px solid #b8e0d0;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13.5px;display:flex}.success-msg svg{stroke:#1a7a54;fill:none;stroke-width:2px;flex:none;width:18px;height:18px}.err-msg{color:#3e0a07;background:#f5e9e8;border:1px solid #e0c4c1;border-radius:10px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:13.5px;display:flex}.err-msg svg{stroke:#3e0a07;fill:none;stroke-width:2px;flex:none;width:18px;height:18px}.treemap{gap:7px;height:86vh;min-height:680px;display:flex}.tcol{flex-direction:column;gap:7px;display:flex}.tile{border-radius:10px;flex-direction:column;justify-content:space-between;min-height:0;padding:15px 17px;display:flex;overflow:hidden}.tile .tn{font-size:16px;font-weight:600}.tile .tv{opacity:.85;align-self:flex-start;font-size:14px}.specs-grid{grid-template-columns:1fr 300px;gap:18px;display:grid}.specs-grid .card:first-child{min-height:120px}.specs-grid .filter{max-height:190px;padding:14px 16px;overflow-y:auto}.specs-grid .filter h4{margin:0 0 10px;font-size:15px}.pricecat-title{font-family:var(--display);color:var(--accent);letter-spacing:normal;font-size:15px;font-weight:800}.specs-grid .filter .opt{padding:5px 2px;font-size:13px}.specs-grid .filter-list{max-height:none;overflow:visible}.pricecat{flex-direction:column;gap:10px;display:flex}.pricecat button{text-align:center;color:#08275e;font-family:var(--body);cursor:pointer;background:#f8f6f5;border:1px solid #2a3a5a;border-radius:11px;padding:13px;font-size:13.5px;font-weight:600;transition:all .15s}.pricecat button.on{color:#fff;background:linear-gradient(120deg,#2b3969,#1e2547);border-color:#0000}.pricecat button:not(.on):hover{border-color:#3a4d72}.pp-grid{grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}#page-payment-plan .vbar .lbl{color:#2b3969}#dp-bars .vbar .fill{width:24px}#dp-bars .vbar .lbl{text-align:center;max-width:80px;margin-left:0;font-size:14px;font-weight:700;left:50%;right:auto;transform:translate(-50%)}#dy-bars .vbar .fill{width:min(30px,60%)}#dy-bars .vbar .lbl{text-align:center;max-width:min(80px,100%);margin-left:0;font-size:14px;font-weight:700;left:50%;right:auto;transform:translate(-50%)}.pp-col{flex-direction:column;gap:16px;min-width:0;min-height:0;display:flex}.pp-col>:last-child{flex-direction:column;flex:1;min-height:0;display:flex}#fin-donut{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.pp-card-relative{position:relative}.focus-btn{border:1px solid var(--line-soft);background:var(--inset);cursor:pointer;width:22px;height:22px;color:var(--muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex;position:absolute;top:16px;right:18px}.focus-btn:hover{background:var(--panel);color:var(--text);border-color:var(--line)}.focus-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:13px;height:13px}.focus-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f0f2f8f2;flex-direction:column;display:none;position:fixed;inset:0}.focus-overlay.show{display:flex}.focus-overlay-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:22px 32px;display:flex}.focus-overlay-title{font-family:var(--display);color:var(--accent-deep);font-size:22px;font-style:italic;font-weight:900}.focus-overlay-close{border:1px solid var(--line-soft);background:var(--inset);width:38px;height:38px;color:var(--muted);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.focus-overlay-close:hover{background:var(--panel);color:var(--text)}.focus-overlay-close svg{stroke:currentColor;fill:none;stroke-width:2px;width:18px;height:18px}.focus-overlay-body{flex:1;justify-content:center;align-items:center;min-height:0;padding:0 48px 48px;display:flex;overflow:auto}.focus-overlay-body svg{max-width:100%;max-height:100%}.fin-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;margin-top:14px;font-size:12.5px;display:flex}.fin-legend span{align-items:center;gap:7px;display:inline-flex}.fin-legend i{border-radius:50%;width:11px;height:11px;display:inline-block}.stack-row{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;margin:11px 0;display:grid}.stack-row .yr{color:var(--accent-deep);font-size:14px;font-weight:700}.stack-bar{border-radius:7px;min-width:0;height:40px;display:flex;overflow:hidden}.stack-bar div{color:#fff;justify-content:center;align-items:center;min-width:0;font-size:12.5px;font-weight:700;display:flex;overflow:hidden}.stack-bar-wrap{min-width:0;position:relative}.stack-label{color:#fff;white-space:nowrap;text-shadow:0 1px 3px #000000b3;pointer-events:none;font-weight:700;position:absolute;top:50%;transform:translate(-50%,-50%)}.stack-row-lg{grid-template-columns:100px minmax(0,1fr);gap:24px;margin:20px 0}.stack-row-lg .yr{font-size:20px}.stack-bar-lg{border-radius:10px;height:64px}.stack-bar-lg div,.stack-row-lg .stack-label{font-size:17px}.donut-name,.donut-value,.donut-total,.donut-sub{fill:#2b3969}.grid-l{stroke:#1c2740;stroke-width:1px;stroke-dasharray:3 4}.trend{stroke:#cfd6e2;stroke-width:1.6px;stroke-dasharray:6 6;fill:none}.pt{fill:#2b3969;stroke:#8b9bd0;stroke-width:1.5px;cursor:pointer}.axt{fill:#2b3969;font:600 13px var(--body)}.lpath{fill:none;stroke:#6aa9da;stroke-width:3px}.lpt{fill:var(--accent)}.clab{fill:var(--text);font:600 12px var(--body);paint-order:stroke;stroke:var(--panel);stroke-width:4px;stroke-linejoin:round}.alab{fill:#7d889c;font:500 11px var(--body)}.scatter-tooltip{color:#252525;font-family:var(--body);z-index:10000;pointer-events:none;white-space:nowrap;background:#fff;border-radius:3px;padding:10px 16px;font-size:14px;display:none;position:fixed;box-shadow:0 8px 24px #0000004d}.scatter-tooltip .row{justify-content:space-between;align-items:center;gap:32px;padding:5px 0;display:flex}.scatter-tooltip .row:first-child{border-bottom:1px solid #e3e3e3}.scatter-tooltip .lab{color:#333}.scatter-tooltip .val{color:#111;text-align:right}@media (width>=1081px){#page-payment-plan.show{flex-direction:column;height:100%;display:flex}#page-payment-plan .pp-grid{flex:1;height:auto;min-height:0}#page-payment-plan .pp-dp-card,#page-payment-plan .pp-iy-card,#page-payment-plan .pp-dy-card{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}#page-payment-plan .pp-dp-card{min-height:180px}#page-payment-plan .pp-iy-card{min-height:140px}#page-payment-plan .pp-dy-card{min-height:160px}#page-payment-plan #dp-bars{flex:1;height:auto;min-height:0}#page-payment-plan .pp-iy-card .chart-scroll{flex-direction:column;flex:1;min-height:0;display:flex}#page-payment-plan #dy-bars{flex:1;height:auto;min-height:0}#page-payment-plan #dp-bars .vbar,#page-payment-plan #dy-bars .vbar{height:calc(100% - 36px)}#page-payment-plan .pp-finyear-card{flex-direction:column;flex:1;min-height:160px;display:flex}#page-payment-plan .fin-year-list{flex-direction:column;flex:1;gap:25px;min-height:0;display:flex;overflow:hidden auto}#page-payment-plan .fin-year-list .fin-legend{flex:none}#page-payment-plan .fin-year-list .stack-row{flex:1;align-items:stretch;min-height:22px;margin:0}#page-payment-plan .fin-year-list .stack-row .yr{align-self:center}#page-payment-plan .fin-year-list .stack-bar{height:100%;min-height:18px}#page-payment-plan .pp-donut-card{flex:1;min-height:220px}#page-payment-plan .pp-donut-card .chart-scroll{flex-direction:column;flex:1;min-height:0;display:flex}}.prof-grid{grid-template-columns:1fr 320px;gap:18px;display:grid}.prof-grid .filter-list{max-height:320px}.tp-grid{grid-template-columns:230px 1fr;align-items:start;gap:18px;display:grid}.tp-grid .filter-list{max-height:none}.cmp-grid{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;align-items:stretch;gap:10px;height:94%;display:grid}.cmp-grid .card{flex-direction:column;min-height:0;display:flex}.cmp-grid .card .chart-scroll,.cmp-grid .card .filter-body{flex:1;min-height:0}.chart-scroll{min-width:0}.chart-scroll svg{height:100%}.cmp-grid .filter-body{overflow-y:auto}#page-comparison .cmp-grid .card-pad{padding:14px 16px}.cmp-quarter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.cmp-quarter-pills{flex-wrap:wrap;gap:8px;display:flex}.quarter-pill{border:1.5px solid var(--accent);color:var(--accent);font-family:var(--body);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:600;transition:all .15s}.quarter-pill:hover{background:#8b9bd01a}.quarter-pill.on{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}.cmp-empty{color:var(--muted);text-align:center;padding:60px 0}.prof-list{padding-right:6px;overflow-y:auto}.prow{grid-template-columns:160px 1fr 52px;align-items:center;gap:13px;margin:9px 0;display:grid}.prow .name{color:var(--muted);text-align:right;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.prow .track{background:var(--track);border-radius:5px;height:15px;position:relative;overflow:hidden}.prow .track:after{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:50%}.prow .fill{height:100%;position:absolute;top:0}.prow .fill.pos{background:linear-gradient(90deg,#2b3969,#8b9bd0);border-radius:0 5px 5px 0;left:50%}.prow .fill.neg{background:linear-gradient(270deg,#2b3969,#8b9bd0);border-radius:5px 0 0 5px;right:50%}.prow .v{color:var(--muted);font-size:13px;font-weight:600}.avg-card{text-align:center;background:#eaf0fa;border:1px solid #c8d6ea;border-radius:16px;padding:34px}.avg-card .big{font-family:var(--display);color:#2b3969;font-size:56px;font-style:italic;font-weight:900;line-height:1}.avg-card .cap{color:#5c6478;margin-top:10px;font-size:14px}.upload-overlay{z-index:99999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05080fd9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upload-overlay-inner{text-align:center}.upload-overlay-text{color:#e9edf4;margin-top:24px;font-size:18px;font-weight:600}.upload-overlay-sub{color:#8d97aa;margin-top:6px;font-size:14px}.spinner{border:3px solid #1b2336;border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.drill{flex-direction:column;gap:22px;min-height:100%;padding:0;display:flex}.drill .topbar{border-bottom:0;justify-content:space-between;align-items:center;padding:0;display:flex}.back{border:2px solid var(--accent-deep);cursor:pointer;background:0 0;border-radius:14px;place-items:center;width:74px;height:54px;transition:all .15s;display:grid}.back:hover{background:var(--inset)}.back svg{width:30px;height:30px;stroke:var(--accent-deep);fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.seg-frame{border:2px solid var(--accent);border-radius:18px;gap:10px;padding:10px;display:flex}.seg-frame button{font-family:var(--body);cursor:pointer;border:0;border-radius:11px;padding:13px 40px;font-size:18px;font-weight:700;transition:all .15s}.seg-frame button.on{color:#fff;background:linear-gradient(120deg,#2b3969,#1e2547);box-shadow:inset 0 0 0 2px #8b9bd066}.seg-frame button:not(.on){color:#273652;background:#dce3f0}.seg-frame button:not(.on):hover{background:#cdd6ea}.chart-card{border:2px solid var(--accent);background:var(--panel);border-radius:20px;flex-direction:column;flex:1;min-height:0;padding:22px 26px 14px;display:flex}.chart-title{text-align:center;color:var(--accent-deep);font-size:24px;font-weight:800;font-family:var(--body);margin:4px 0 14px}#nl-legend{color:var(--text);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px;margin-bottom:6px;font-size:15px;display:flex}#nl-legend .lt{color:var(--muted);margin-right:4px;font-weight:700}#nl-legend span{align-items:center;gap:8px;display:inline-flex}#nl-legend i{border-radius:50%;width:15px;height:15px;display:inline-block}.plot-scroll{flex:1;min-width:0;min-height:440px}.plot{width:100%;height:100%;display:block}.gl{stroke:#c8d6ea;stroke-width:1px;stroke-dasharray:2 5}.yl{fill:#5c6478;font:500 15px var(--body)}.xl{fill:#5c6478;font:500 14px var(--body)}.dot{stroke-width:2.5px;filter:url(#dropsh);cursor:pointer}.nl-tooltip{white-space:normal;max-width:340px}.nl-tooltip .units-table{border-top:1px solid #e3e3e3;margin-top:8px;padding-top:8px}.nl-tooltip .units-row{grid-template-columns:1.3fr 1fr 1fr;gap:10px;padding:3px 0;font-size:12.5px;display:grid}.nl-tooltip .units-row.units-head{color:#333;font-weight:700}.nl-tooltip .units-row span:not(:first-child){text-align:right}.nl-tooltip .units-empty{color:#777;padding:4px 0;font-size:12.5px}.modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f0f2f8cc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border:1px solid #d8dce6;border-radius:20px;width:460px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal-header{border-bottom:1px solid #e8ecf2;justify-content:space-between;align-items:center;padding:22px 24px 0;display:flex}.modal-title{font-family:var(--display);color:var(--accent);font-size:24px;font-style:italic;font-weight:900}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 6px;font-size:28px;line-height:1}.modal-close:hover{color:var(--text)}.modal-body{padding:22px 24px 24px}.modal-field{margin-bottom:18px}.modal-field label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.modal-field input{color:#1a1e2a;width:100%;font-family:var(--body);background:#f4f6f9;border:1.5px solid #d8dce6;border-radius:12px;outline:none;padding:12px 16px;font-size:14px;transition:all .15s}.modal-field input:focus{border-color:var(--accent-deep)}.modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.modal-cancel{color:#5c6478;font-family:var(--body);cursor:pointer;background:0 0;border:1.5px solid #d8dce6;border-radius:999px;padding:12px 28px;font-size:14px;font-weight:600;transition:all .15s}.modal-cancel:hover{color:#1a1e2a;background:#eef0f4}@media (width<=1080px){.app,.app.collapsed{grid-template-columns:1fr}.sidebar{z-index:1001;scrollbar-width:none;width:min(280px,84vw);height:100dvh;box-shadow:none;align-items:stretch;padding:16px 14px 18px;transition:transform .25s;position:fixed;top:0;left:0;overflow:auto;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0);box-shadow:16px 0 40px #0a0e1a40}.collapsed .sidebar{align-items:stretch;padding:16px 14px 18px}.collapsed .sidebar .brand{justify-content:center;gap:0;padding-bottom:20px}.collapsed .sidebar .brand-mark{display:none}.collapsed .sidebar .brand-full{display:block}.collapsed .sidebar .toggle{display:flex}.collapsed .sidebar .nav a{justify-content:flex-start;padding:11px 14px}.collapsed .sidebar .nav a .nav-icon{width:20px;height:20px}.collapsed .sidebar .nav a .nav-text,.collapsed .sidebar .nav-label,.collapsed .sidebar .nav-divider,.collapsed .sidebar .nav a .dot{display:block}.collapsed .sidebar .theme-btn .collapse-text{display:inline}.collapse-btn{display:none}.sidebar-backdrop{z-index:1000;opacity:0;pointer-events:none;background:#0a0e1a73;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-backdrop.show{opacity:1;pointer-events:auto}.hamburger-btn{width:42px;height:42px;display:inline-flex}.mobile-brand{display:inline-flex}.topbar{gap:14px;min-height:64px;padding:10px 18px 10px 14px}.tabs{padding:14px 16px}.content{padding:16px}.ov-top,.dev-grid{grid-template-columns:minmax(0,1fr)}#page-overview .launch{gap:22px}.ov-bottom{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.settings-grid,.specs-grid,.tp-grid,.pp-grid,.prof-grid{grid-template-columns:minmax(0,1fr)}.cmp-grid{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);height:auto}.pp-col,.dev-grid>*,.ov-top>*,.ov-bottom>*,.specs-grid>*,.tp-grid>*,.prof-grid>*,.cmp-grid>*{min-width:0}.tp-grid .filter{height:auto!important}.tp-grid .filter .filter-list{max-height:260px}.dev-charts-row{flex-direction:column}.dev-charts-row>.chart-panel{flex:auto!important;max-width:100%!important}.treemap{height:70vh;min-height:420px;overflow-x:auto}.treemap .tcol{min-width:150px}.vbars .vbar{flex:0 0 58px;min-width:58px}#page-overview .vbars{gap:26px}#page-overview .vbars .vbar .lbl,#page-overview .vbars.diagonal-labels .vbar .lbl{color:#2b3969;text-align:center;overflow-wrap:normal;word-break:keep-all;max-width:none;font-size:12px;font-weight:700;left:0;right:0;transform:none}.area-bars{overflow-x:auto}.area-bars .col{flex:0 0 64px;min-width:64px}.chart-scroll{overflow-x:auto}.scatter-svg{min-width:820px}.qt-svg,.iy-svg{min-width:480px}.donut-svg{min-width:560px}.plot-scroll{overflow-x:auto}.plot{min-width:1000px}.focus-overlay-header{padding:16px 18px}.focus-overlay-body{justify-content:flex-start;padding:0 18px 24px}.focus-overlay-title{font-size:19px}.fin-year-focus-wrap{min-width:640px}.scatter-tooltip{white-space:normal;border-radius:8px;max-width:78vw;padding:7px 11px;font-size:12px}.scatter-tooltip .row{gap:16px;padding:4px 0}.seg-frame button{padding:11px 22px;font-size:16px}.chart-title{font-size:20px}.back{width:56px;height:46px}.back svg{width:24px;height:24px}}@media (width<=640px){.kpis{grid-template-columns:minmax(0,1fr)}.kpi{min-height:auto;padding:14px 16px}.kpi .k-num,.statbox .num{font-size:26px}.launch .title{font-size:20px}.avg-card{padding:24px}.avg-card .big{font-size:38px}.vbars{height:230px}.modal{border-radius:16px;width:100%}.modal-header{padding:18px 18px 0}.modal-body{padding:18px}table{font-size:12.5px}thead th,tbody td{padding:10px 12px}.prow{grid-template-columns:96px 1fr 44px;gap:8px}.hbar-row{grid-template-columns:78px 1fr 44px;gap:8px}.cmp-quarter-bar{flex-direction:column;align-items:flex-start;gap:10px}.seg-frame{flex-direction:column;width:100%}.seg-frame button{width:100%}.chart-title{font-size:17px}.plot-scroll{min-height:320px}.upload-zone{padding:32px 18px}}
