html,body{margin:0;height:100%}body.app{background:#F6F8FB;color:#0B1D3A}
:focus-visible{outline:2px solid #12A150;outline-offset:2px}
button{font-family:inherit}a{color:inherit}
.boot{min-height:100vh;display:grid;place-items:center;align-content:center;gap:14px;font:500 13px/1 Inter;color:#66738A}
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh;background:linear-gradient(90deg,#fff 235px,#E3E8EF 235px,#E3E8EF 236px,transparent 236px)}
.side{position:sticky;top:0;height:100vh;box-sizing:border-box;background:#fff;border-right:1px solid #E3E8EF;padding:22px 14px;display:flex;flex-direction:column;overflow-y:auto}
.side .brand{padding:2px 10px 24px;display:flex;align-items:center;justify-content:space-between}.side .brand img{height:30px;display:block}
.side .grp{font:600 10.5px/1 Inter;letter-spacing:.12em;text-transform:uppercase;color:#9AA6B8;padding:14px 10px 8px}
.nv{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:8px;font:500 13.5px/1 Inter;color:#4F5B71;text-decoration:none;margin-bottom:2px}
.nv svg path{stroke:#66738A}.nv:hover{background:#F6F8FB;color:#0B1D3A}
.nv.on{background:#EFF3F9;color:#0B1D3A;font-weight:600;box-shadow:inset 0 0 0 1px rgba(11,29,58,.06)}.nv.on svg path{stroke:#0B1D3A}
.nv em{margin-left:auto;font:600 11px/1 Inter;font-style:normal;color:#9A2321;background:#FFE4DF;border-radius:999px;padding:4px 7px}
.nv .lock{margin-left:auto;opacity:.6}
.side .up{all:unset;cursor:pointer;display:block;margin-top:auto;border-radius:12px;padding:14px;background:linear-gradient(160deg,#12284C,#0B1D3A);color:#fff}
.side .up:focus-visible{box-shadow:var(--pl-focus)}.side .up:hover{background:linear-gradient(160deg,#173361,#0E2448)}
.side .up b{display:block;font:600 13px/18px Inter;margin-bottom:4px}.side .up span{font:400 12px/17px Inter;color:#9FB0CC}
.side .up--gold{background:linear-gradient(160deg,#12284C,#0B1D3A);box-shadow:inset 0 0 0 1px rgba(245,184,61,.35)}
.side .me{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 8px 0;margin-top:14px;border-top:1px solid #EEF1F6;font:500 13px/1.2 Inter;color:#0B1D3A;width:100%;box-sizing:border-box;position:relative}
.side .me i{flex:none;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#F8C95F,#D99A1A);display:grid;place-items:center;font:700 12px/1 Inter;color:#fff;font-style:normal}
.side .me span{display:block;font:400 11.5px/1.3 Inter;color:#66738A}.side .me>div{min-width:0;flex:1}.side .me>div>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu{position:absolute;left:8px;right:8px;bottom:56px;background:#fff;border-radius:12px;box-shadow:var(--pl-shadow-lg);padding:6px;z-index:30}
.menu a,.menu button{all:unset;cursor:pointer;box-sizing:border-box;display:block;width:100%;padding:9px 10px;border-radius:8px;font:500 13px/1.2 Inter;color:#374257}.menu a:hover,.menu button:hover{background:#F6F8FB}
.main{padding:26px 32px 40px;display:flex;flex-direction:column;gap:18px;min-width:0;max-width:1440px;box-sizing:border-box;width:100%}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.top h1{font:700 26px/32px "Plus Jakarta Sans";letter-spacing:-.025em;margin:4px 0 0;color:#0B1D3A}
.top .r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.seg{display:flex;background:#EEF1F6;border-radius:9px;padding:3px;font:500 12.5px/1 Inter;color:#4F5B71}
.seg button{all:unset;cursor:pointer;padding:8px 12px;border-radius:7px}.seg button:hover{color:#0B1D3A}.seg button:focus-visible{box-shadow:var(--pl-focus)}
.seg button[aria-pressed="true"]{background:#fff;color:#0B1D3A;box-shadow:var(--pl-shadow-xs),0 0 0 1px rgba(11,29,58,.05);font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.pl-kpi{position:relative}.pl-kpi[title]{cursor:help}
.pl-kpi__foot>span{white-space:nowrap}
.track{position:relative;flex:1;height:6px;border-radius:6px;background:#EEF1F6;margin:12px 0}.track i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:linear-gradient(90deg,#6ECB95,#12A150);max-width:100%}.track em{position:absolute;top:-4px;width:2px;height:14px;background:#D99A1A;border-radius:2px;margin-left:-2px}
.track--neg i{background:linear-gradient(90deg,#F99D90,#DC3D32)}
.mid,.bot{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px}
.chead{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:12px}
.legend{display:flex;gap:14px;font:500 12px/1 Inter;color:#4F5B71;flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
svg .ax{font:500 11px Inter;fill:#66738A;font-feature-settings:"tnum" 1}
.cwrap{position:relative;touch-action:pan-y}.cwrap svg{display:block;overflow:visible;width:100%;height:auto}
.cwrap:focus-visible{outline:2px solid #12A150;outline-offset:4px;border-radius:8px}
.tip{position:absolute;transform:translate(-100%,-50%);margin-left:-16px;background:#0B1D3A;color:#fff;border-radius:10px;padding:10px 12px;font:500 12px/18px Inter;box-shadow:0 12px 24px -8px rgba(11,29,58,.5);white-space:nowrap;pointer-events:none;z-index:4;transition:left .08s linear,top .08s linear}
.tip.right{transform:translate(0,-50%);margin-left:16px}
.tip b{font-weight:600;font-feature-settings:"tnum" 1}.tip .k{display:flex;justify-content:space-between;gap:18px}.tip .d{color:#8EA6C8;font-size:11px;margin-bottom:2px}
.tip i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:6px}
.anno{position:absolute;transform:translate(-50%,0);margin-top:14px;font:600 11px/1 Inter;color:#9A2321;background:#FFF4F2;padding:5px 8px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(220,61,50,.2);white-space:nowrap;pointer-events:none}
.leakcard .pl-leak{box-shadow:none;border:1px solid #EEF1F6;padding:12px 14px;grid-template-columns:32px 1fr auto;gap:12px}
.leakcard .pl-leak__icon{width:32px;height:32px}.leakcard .pl-leak__amount{font-size:16px}
.leakcard .list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.total{display:flex;align-items:baseline;gap:8px;margin-top:2px}.total b{font:650 30px/34px Inter;letter-spacing:-.03em;color:#BF2C26;font-feature-settings:"tnum" 1}.total span{font:500 13px/1 Inter;color:#66738A}
.total--ok b{color:#0D8743}
table{width:100%;border-collapse:collapse;font:400 13px/1 Inter;font-feature-settings:"tnum" 1}
th{text-align:left;font:600 11px/1 Inter;letter-spacing:.08em;text-transform:uppercase;color:#66738A;padding:0 0 10px;border-bottom:1px solid #EEF1F6;white-space:nowrap}
td{padding:11px 0;border-bottom:1px solid #F1F4F8;color:#374257;line-height:1.35}td:first-child{color:#0B1D3A;font-weight:500}
.tbl th:not(:first-child),.tbl td:not(:first-child){text-align:right}
.tbl th+th,.tbl td+td{padding-left:12px}
.pos{color:#0D8743;font-weight:600}.neg{color:#BF2C26;font-weight:600}.wat{color:#946A10;font-weight:600}
.price .row{display:flex;justify-content:space-between;gap:12px;font:400 13px/1.3 Inter;color:#4F5B71;padding:9px 0;border-bottom:1px solid #F1F4F8}
.price .row b{color:#0B1D3A;font-weight:600;font-feature-settings:"tnum" 1}
.price .rec{margin-top:12px;border-radius:12px;padding:14px;background:linear-gradient(180deg,#EBF8F0,#F5FBF7);box-shadow:inset 0 0 0 1px rgba(18,161,80,.18);display:flex;justify-content:space-between;align-items:center;gap:12px}
.price .rec span{font:500 12.5px/18px Inter;color:#0B6C37}.price .rec b{font:650 24px/28px Inter;letter-spacing:-.02em;color:#0B6C37;font-feature-settings:"tnum" 1}
.linkbtn{all:unset;cursor:pointer;color:#0D8743;font:500 13px/1.2 Inter}.linkbtn:hover{text-decoration:underline}.linkbtn:focus-visible{box-shadow:var(--pl-focus);border-radius:4px}
/* pages */
.card{background:#fff;border-radius:16px;box-shadow:var(--pl-shadow-sm);padding:20px 22px}
.grid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hint{font:400 13px/20px Inter;color:#66738A}.muted{color:#66738A}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tabs{display:flex;gap:4px;border-bottom:1px solid #E3E8EF;margin-bottom:14px}
.tabs button{all:unset;cursor:pointer;padding:10px 14px;font:550 14px/1 Inter;color:#66738A;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button[aria-selected="true"]{color:#0B1D3A;border-color:#12A150}.tabs button:focus-visible{box-shadow:var(--pl-focus)}
.rowact{display:inline-flex;gap:2px}.rowact button{all:unset;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;color:#66738A}.rowact button:hover{background:#F1F4F8;color:#0B1D3A}.rowact button:focus-visible{box-shadow:var(--pl-focus)}
.st{display:inline-flex;align-items:center;gap:6px;font:550 12px/1 Inter;padding:5px 8px;border-radius:999px}
.st--paid{background:#EBF8F0;color:#0B6C37}.st--unpaid{background:#FEF8EA;color:#7A540C}.st--unbilled{background:#FFF4F2;color:#9A2321}
.sample-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9AA6B8;margin-left:6px;vertical-align:middle}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl--wide td,.tbl--wide th{white-space:nowrap}
.tfoot td{font-weight:650;color:#0B1D3A;border-bottom:0;padding-top:14px}
.empty{text-align:center;padding:48px 24px}.empty h2{font:650 20px/26px "Plus Jakarta Sans";margin:14px 0 8px}.empty p{max-width:520px;margin:0 auto 20px;color:#4F5B71;font:400 14.5px/22px Inter}
.empty__ico{width:52px;height:52px;margin:0 auto;border-radius:14px;display:grid;place-items:center;background:#EBF8F0;box-shadow:inset 0 0 0 1px rgba(18,161,80,.18)}
.start{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;text-align:left}
.start button{all:unset;cursor:pointer;box-sizing:border-box;background:#F6F8FB;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px;box-shadow:inset 0 0 0 1px #E3E8EF}
.start button:hover{box-shadow:inset 0 0 0 1px #9AA6B8;background:#fff}.start button:focus-visible{box-shadow:var(--pl-focus)}
.start b{font:600 14px/20px Inter;color:#0B1D3A}.start span{font:400 12.5px/18px Inter;color:#66738A}.start i{font-style:normal;font:700 12px/1 Inter;color:#12A150}
.fix{display:grid;grid-template-columns:28px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid #F1F4F8;align-items:start}.fix:last-child{border-bottom:0}
.fix__n{width:28px;height:28px;border-radius:8px;background:#EFF3F9;display:grid;place-items:center;font:700 12px/1 Inter;color:#0B1D3A}
.fix h3{margin:0;font:600 14.5px/21px Inter}.fix p{margin:3px 0 0;font:400 13px/19px Inter;color:#4F5B71}.fix small{display:block;margin-top:4px;font:400 12px/17px Inter;color:#9AA6B8}
.fix__amt{text-align:right;font:650 17px/22px Inter;color:#0D8743;font-feature-settings:"tnum" 1}.fix__amt span{display:block;font:500 11.5px/16px Inter;color:#66738A}
.fix__amt--watch{color:#946A10}
.guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.guide li{list-style:none;background:#F6F8FB;border-radius:12px;padding:16px;box-shadow:inset 0 0 0 1px #EEF1F6}.guide b{display:block;font:600 14px/20px Inter;margin-bottom:4px}.guide span{font:400 13px/19px Inter;color:#4F5B71}
.guide-hero{display:flex;gap:28px;align-items:center}.guide-cover{flex:none;width:180px;aspect-ratio:1/1.294;border-radius:10px;background:linear-gradient(160deg,#12284C,#0B1D3A);box-shadow:0 20px 40px -20px rgba(11,29,58,.6);padding:16px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;color:#fff}
.guide-cover b{font:750 18px/22px "Plus Jakarta Sans";letter-spacing:-.02em}.guide-cover span{font:500 9px/12px Inter;color:#8EA6C8}
/* modal */
.ov{position:fixed;inset:0;background:rgba(6,15,32,.45);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:50;padding:16px;animation:fade .15s}
@keyframes fade{from{opacity:0}}
.modal{background:#fff;border-radius:18px;box-shadow:var(--pl-shadow-lg);width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto;padding:24px}
.modal--wide{max-width:760px}
.modal h2{font:650 19px/26px "Plus Jakarta Sans";margin:0 0 4px}.modal .sub{margin:0 0 18px;color:#66738A;font:400 13.5px/20px Inter}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fgrid .full{grid-column:1/-1}
.mfoot{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;flex-wrap:wrap}.mfoot .l{margin-right:auto}
.comp{display:grid;grid-template-columns:minmax(0,1fr) 130px 120px 32px;gap:8px;align-items:center;margin-bottom:8px}
.comp .pl-input{height:36px}
.sum{background:#F6F8FB;border-radius:12px;padding:12px 14px;margin-top:14px}.sum .row{display:flex;justify-content:space-between;font:400 13px/1.3 Inter;color:#4F5B71;padding:5px 0}.sum .row b{color:#0B1D3A;font-feature-settings:"tnum" 1}
.sum .row--big{border-top:1px solid #E3E8EF;margin-top:4px;padding-top:9px}.sum .row--big b{font-size:15px}
.helper{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px;font:400 12.5px/1 Inter;color:#66738A}.helper .pl-input{height:32px;width:90px}
.pl-input select{cursor:pointer}
.dd{position:relative}.dd__m{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:12px;box-shadow:var(--pl-shadow-lg);padding:6px;min-width:200px;z-index:20}
.dd__m button{all:unset;cursor:pointer;box-sizing:border-box;display:block;width:100%;padding:9px 10px;border-radius:8px;font:500 13px/1.2 Inter;color:#374257}.dd__m button:hover,.dd__m button:focus-visible{background:#F6F8FB}
.dd__m small{display:block;color:#9AA6B8;font-weight:400;margin-top:2px}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
#toast div{background:#0B1D3A;color:#fff;font:500 13px/1.3 Inter;padding:10px 14px;border-radius:10px;box-shadow:0 12px 24px -8px rgba(11,29,58,.5);animation:fade .2s}
#toast div.err{background:#9A2321}
/* lock */
.lockwrap{position:relative}.lockwrap>.blur{filter:blur(4px) saturate(.85);opacity:.6;pointer-events:none;user-select:none}
.lockcard{position:absolute;left:50%;top:120px;transform:translateX(-50%);width:min(440px,calc(100% - 24px));background:#fff;border-radius:18px;box-shadow:var(--pl-shadow-lg);padding:26px;z-index:5;text-align:center}
.lockcard h2{font:700 21px/27px "Plus Jakarta Sans";margin:10px 0 6px;letter-spacing:-.015em}.lockcard p{margin:0 0 16px;color:#4F5B71;font:400 14px/21px Inter}
.lockcard .amt{font:700 32px/36px Inter;letter-spacing:-.03em;margin:4px 0 14px}.lockcard .amt span{font:500 13px/1 Inter;color:#66738A;letter-spacing:0;margin-left:6px}
.mtop{display:none}
.scanres .lrow{padding:14px 0;border-bottom:1px solid #F1F4F8}
/* responsive */
@media (max-width:1200px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.start{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1020px){.mid,.bot,.grid2{grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
 .shell{grid-template-columns:1fr;background:none}
 .side{position:fixed;left:0;top:0;bottom:0;width:272px;z-index:40;transform:translateX(-100%);transition:transform .2s var(--pl-ease);box-shadow:var(--pl-shadow-lg)}
 .side.open{transform:none}.scrim{position:fixed;inset:0;background:rgba(6,15,32,.4);z-index:39}
 .mtop{display:flex;position:sticky;top:0;z-index:30;align-items:center;justify-content:space-between;padding:12px 16px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid #E3E8EF}
 .mtop img{height:26px;display:block}.mtop button{all:unset;cursor:pointer;width:38px;height:38px;display:grid;place-items:center;border-radius:10px}.mtop button:focus-visible{box-shadow:var(--pl-focus)}
 .main{padding:18px 16px 32px;gap:14px}.top{align-items:flex-start}.top h1{font-size:22px;line-height:28px}
 .top .r{width:100%}.top .r .seg{order:-1;width:100%;justify-content:space-between}.seg button{flex:1;text-align:center}
}
@media (max-width:640px){.chead{flex-wrap:wrap}.legend{gap:10px}}
@media (max-width:560px){.kpis{grid-template-columns:1fr 1fr;gap:10px}.pl-kpi{padding:14px 14px 12px}.pl-kpi__value{font-size:22px;line-height:28px}.pl-kpi__label{flex-wrap:wrap;gap:4px}.pl-kpi__foot svg{display:none}
 .grid3,.fgrid,.start,.guide{grid-template-columns:1fr}.comp{grid-template-columns:1fr 1fr 32px}.comp .ctype{grid-column:1/3}.card,.pl-card{padding:16px}.guide-hero{flex-direction:column;align-items:flex-start}
 .top .r .pl-btn{flex:1}.total b{font-size:26px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.side,.mtop,.top .r{display:none!important}.shell{display:block}}
