/* Painter Links — black and teal design system. */
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;src:url('/static/fonts/poppins-400.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;src:url('/static/fonts/poppins-500.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;src:url('/static/fonts/poppins-600.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;src:url('/static/fonts/poppins-700.woff2') format('woff2');font-display:swap;}
@font-face{font-family:'Material Symbols Rounded';font-style:normal;font-weight:400 700;src:url('/static/fonts/material-symbols-rounded.woff2?v=4') format('woff2');font-display:swap;}

:root{
  --navy:#071011;--navy-800:#0a1718;--navy-900:#05090a;--royal:#14B8A6;--royal-600:#2DD4BF;--royal-bright:#5EEAD4;
  --sky:#67E8F9;--gold:#2DD4BF;--gold-700:#14B8A6;--teal:#2DD4BF;--teal-bright:#5EEAD4;--coral:#F87171;--violet:#A78BFA;
  --success:#34D399;--risk:#F87171;--caution:#FBBF24;--green:#34D399;--red:#F87171;
  --c1:#2DD4BF;--c2:#5EEAD4;--c3:#14B8A6;--c4:#F87171;--c5:#A78BFA;--c6:#67E8F9;
  --g-navy-royal:linear-gradient(135deg,#0A1214,#14B8A6);--g-gold:linear-gradient(135deg,#14B8A6,#2DD4BF);
  --canvas:#05090A;--surface:#0A1214;--surface-2:#0E1B1E;--text:#ECFEFF;--muted:#94A3A8;--line:rgba(148,163,184,.18);
  --chrome:#071011;--th-bg:rgba(255,255,255,.04);--hover:rgba(45,212,191,.10);--track:rgba(255,255,255,.10);
  --sh:0 .375rem 1rem rgba(0,0,0,.42);--r-royal:#2DD4BF;--r-teal:#14B8A6;--r-gold:#2DD4BF;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{font-family:'Poppins',system-ui,sans-serif;background:var(--canvas);font-size:.875rem;-webkit-font-smoothing:antialiased;}
.material-symbols-rounded{font-family:'Material Symbols Rounded';font-weight:400;line-height:1;font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 20;vertical-align:middle;}
a{color:var(--royal-600);text-decoration:none;}


/* page canvas */
.bl{background:var(--canvas);color:var(--text);min-height:100vh;width:100%;}
.wrap{padding:1.4rem 1.5rem 3rem;max-width:none;}
.sec{margin-bottom:1.8rem;}
.sec > h2{font-size:1.05rem;font-weight:700;color:var(--text);margin:0 0 .15rem;letter-spacing:-.01em;display:flex;align-items:center;gap:.5rem;}
.sec > h2 .material-symbols-rounded{font-size:1.15rem;color:var(--gold);}
.sec > .d{font-size:.74rem;color:var(--muted);margin:0 0 .85rem;}
.eyebrow{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}

/* shell (surfaces) */
.shell{display:grid;grid-template-columns:12rem 1fr;width:100%;min-height:44rem;}
.side{background:var(--chrome);padding:.75rem .55rem;position:relative;overflow:hidden;}
.side::before{content:'';position:absolute;inset:-25% -50% auto auto;width:12rem;height:12rem;border-radius:50%;background:radial-gradient(circle,rgba(47,95,208,.3),transparent 65%);}
.sbrand{display:flex;align-items:center;gap:.5rem;margin:.2rem .2rem 1rem;position:relative;}
.sbrand img{height:1.7rem;}.sbrand .bn{color:#fff;font-size:.82rem;font-weight:700;letter-spacing:-.015em;}
.nav2{display:flex;flex-direction:column;gap:.1rem;position:relative;}
.ni{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:.45rem;color:#b3c4d8;font-size:.74rem;font-weight:500;cursor:pointer;}
.ni .material-symbols-rounded{font-size:1rem;opacity:.85;}
.ni.on{background:rgba(255,255,255,.09);color:#fff;font-weight:600;box-shadow:inset .15rem 0 0 var(--gold);}
.ni.on .material-symbols-rounded{color:var(--gold);opacity:1;}
.navseg{margin:.65rem .25rem .2rem;font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:#6f86a3;font-weight:700;}
.main{min-width:0;display:flex;flex-direction:column;}
.topbar{height:2.7rem;display:flex;align-items:center;gap:.65rem;padding:0 .9rem;background:var(--chrome);position:relative;flex:0 0 auto;}
.topbar::after{content:'';position:absolute;left:0;right:0;bottom:0;height:.0625rem;background:linear-gradient(90deg,transparent,rgba(252,193,26,.5),transparent);}
.crumb{color:#cfe0ef;font-size:.72rem;font-weight:600;}
.topbar .search{display:flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.1);border:.0625rem solid rgba(255,255,255,.13);border-radius:625rem;padding:.26rem .65rem;color:#cfe0ef;font-size:.68rem;min-width:9rem;margin-left:.5rem;}
.topbar .search .material-symbols-rounded{font-size:.9rem;}
.topbar .tr{margin-left:auto;display:flex;align-items:center;gap:.5rem;}
.av{width:1.65rem;height:1.65rem;border-radius:50%;background:#0b2c49;border:.0625rem solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.66rem;}
.content{padding:.85rem .95rem 1.2rem;flex:1;}
.surface{display:none;}.surface.on{display:block;}

/* buttons */
.btn{font-family:inherit;font-weight:600;font-size:.74rem;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.32rem;padding:.45rem .85rem;border-radius:.5rem;}
.btn .material-symbols-rounded{font-size:.98rem;font-variation-settings:'FILL' 0,'wght' 600;}
.btn.prim{background:var(--g-navy-royal);color:#fff;box-shadow:0 .25rem .7rem rgba(20,55,120,.28);}
.btn.sec{background:var(--surface);color:var(--navy);border:.09375rem solid var(--line);}
.bl .btn.sec{color:#cfe0ef;}
.btn.ghost{background:transparent;color:var(--royal-600);}
.btn.danger{background:var(--risk);color:#fff;}
.btn.success{background:var(--success);color:#fff;}
.btn.caution{background:var(--g-gold);color:var(--navy-900);}
.btn.sm{padding:.32rem .6rem;font-size:.7rem;}
.btn.lg{padding:.6rem 1.1rem;font-size:.82rem;}
.iconbtn{width:2rem;height:2rem;padding:0;justify-content:center;border-radius:.5rem;background:var(--hover);color:var(--royal-600);border:none;cursor:pointer;display:inline-flex;align-items:center;}
.iconbtn .material-symbols-rounded{font-size:1.1rem;}

/* cards */
.card{background:var(--surface);border:.0625rem solid var(--line);border-radius:.7rem;box-shadow:var(--sh);overflow:hidden;}
.card .ch{display:flex;align-items:center;gap:.45rem;padding:.6rem .8rem;border-bottom:.0625rem solid var(--line);}
.card .ch b{font-size:.8rem;color:var(--text);font-weight:700;}.card .ch .material-symbols-rounded{font-size:1rem;color:var(--royal-600);}.card .ch .r{margin-left:auto;font-size:.68rem;color:var(--royal-600);font-weight:600;}
.card .cbd{padding:.8rem;}

/* stat tiles */
.statgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.6rem;}
.stat{background:var(--surface);border:.0625rem solid var(--line);border-radius:.7rem;box-shadow:var(--sh);padding:.6rem .75rem;position:relative;overflow:hidden;}
.stat .ac{position:absolute;inset:0 0 auto 0;height:.16rem;background:var(--g-navy-royal);}
.stat.gold .ac{background:var(--g-gold);}.stat.teal .ac{background:linear-gradient(135deg,#12a594,#0c7c70);}
.stat .l{font-size:.56rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.stat .n{font-size:1.3rem;font-weight:800;color:var(--text);letter-spacing:-.02em;margin:.06rem 0 .04rem;}
.stat .dl{display:inline-flex;align-items:center;gap:.12rem;font-size:.62rem;font-weight:600;}
.stat .dl.up{color:var(--success);}.stat .dl.dn{color:var(--coral);}.stat .dl .material-symbols-rounded{font-size:.8rem;}
.stat .spark{position:absolute;right:.6rem;bottom:.55rem;}

/* tables */
.tbl{width:100%;border-collapse:collapse;}
.tbl thead th{font-size:.56rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text);opacity:.85;text-align:left;padding:.5rem .75rem;background:var(--th-bg);white-space:nowrap;}
.tbl tbody td{font-size:.74rem;color:var(--text);padding:.5rem .75rem;border-top:.0625rem solid var(--line);white-space:nowrap;}
.tbl tbody tr:hover td{background:var(--hover);}
.tbl tbody tr.sel td{background:var(--hover);}.tbl tbody tr.sel{box-shadow:inset .15rem 0 0 var(--royal);}
.tbl .amt{text-align:right;font-weight:700;color:var(--text);}.bl .tbl .amt{color:var(--gold);}
.tbl .cid{font-weight:700;color:var(--royal-600);}.bl .tbl .cid{color:var(--royal-bright);}
.subc{font-size:.6rem;color:var(--muted);}

/* status chips / pills / badges */
.st{display:inline-flex;align-items:center;gap:.25rem;font-size:.6rem;font-weight:600;padding:.13rem .45rem;border-radius:625rem;}
.st .dot{width:.38rem;height:.38rem;border-radius:50%;}
.st.ok{background:rgba(43,157,102,.14);color:var(--success);}.st.ok .dot{background:var(--success);}
.st.rev{background:rgba(252,193,26,.18);color:var(--gold-700);}.st.rev .dot{background:var(--gold-700);}.bl .st.rev{color:var(--gold);}
.st.new{background:rgba(47,95,208,.16);color:var(--royal-600);}.st.new .dot{background:var(--royal);}.bl .st.new{color:var(--royal-bright);}
.st.sub{background:rgba(18,165,148,.16);color:var(--teal);}.st.sub .dot{background:var(--teal);}
.st.risk{background:rgba(227,62,67,.14);color:var(--risk);}.st.risk .dot{background:var(--risk);}
.st.warn{background:rgba(224,154,12,.16);color:var(--caution);}.st.warn .dot{background:var(--caution);}
.pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.66rem;font-weight:600;padding:.2rem .55rem;border-radius:625rem;background:var(--hover);color:var(--text);border:.0625rem solid var(--line);}
.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:600;padding:.22rem .3rem .22rem .55rem;border-radius:625rem;background:rgba(47,95,208,.1);border:.0625rem solid rgba(47,95,208,.2);color:var(--royal-600);}
.chip .x{font-size:.9rem;cursor:pointer;}

/* forms */
.field{display:flex;flex-direction:column;gap:.3rem;}
.field label{font-size:.7rem;color:var(--text);font-weight:600;display:flex;align-items:center;gap:.3rem;}
.field label .req{color:var(--risk);}
.control{display:flex;align-items:center;gap:.45rem;background:var(--surface);border:.09375rem solid var(--line);border-radius:.5rem;padding:.5rem .65rem;}
.control .material-symbols-rounded{font-size:1.05rem;color:var(--muted);}
.control input,.control select,.control textarea{border:none;outline:none;font-family:inherit;font-size:.78rem;color:var(--text);width:100%;background:transparent;}
.control.focused{border-color:var(--navy);box-shadow:0 0 0 .1875rem rgba(14,61,99,.16),inset 0 0 0 .0625rem var(--gold);}
.bl .control.focused{border-color:var(--gold);box-shadow:0 0 0 .1875rem rgba(252,193,26,.24);}
.control.error{border-color:var(--risk);box-shadow:0 0 0 .1875rem rgba(227,62,67,.14);}
.control.disabled{background:var(--th-bg);color:var(--muted);}
.help{font-size:.64rem;color:var(--muted);}.help.err{color:var(--risk);display:inline-flex;align-items:center;gap:.25rem;}.help.err .material-symbols-rounded{font-size:.85rem;}
.ctl{display:inline-flex;align-items:center;gap:.45rem;font-size:.76rem;color:var(--text);font-weight:500;}
.cbx{width:1.1rem;height:1.1rem;border-radius:.28rem;background:var(--navy);display:inline-flex;align-items:center;justify-content:center;}
.bl .cbx{background:var(--royal);}
.cbx .material-symbols-rounded{font-size:.9rem;color:#fff;font-variation-settings:'FILL' 1,'wght' 700;}
.cbx.off{background:var(--surface);border:.09375rem solid var(--line);}
.radio{width:1.1rem;height:1.1rem;border-radius:50%;border:.125rem solid var(--navy);display:inline-flex;align-items:center;justify-content:center;}
.bl .radio{border-color:var(--royal-bright);}
.radio i{width:.55rem;height:.55rem;border-radius:50%;background:var(--navy);}.bl .radio i{background:var(--royal-bright);}
.radio.off{border-color:var(--line);}.radio.off i{display:none;}
.toggle{width:2.3rem;height:1.3rem;border-radius:625rem;background:var(--gold);position:relative;}
.toggle i{position:absolute;top:.16rem;left:1.16rem;width:.98rem;height:.98rem;border-radius:50%;background:#fff;box-shadow:0 .0625rem .1875rem rgba(0,0,0,.3);}
.toggle.off{background:var(--line);}.toggle.off i{left:.16rem;}
.seg{display:inline-flex;background:var(--th-bg);border-radius:.5rem;padding:.14rem;}
.seg b{font-size:.7rem;font-weight:600;color:var(--muted);padding:.26rem .6rem;border-radius:.38rem;cursor:pointer;}
.seg b.on{background:var(--surface);color:var(--navy);box-shadow:0 .0625rem .125rem rgba(16,33,58,.12);}.bl .seg b.on{color:#eaf1f8;}

/* tabs / breadcrumb / pagination */
.tabbar{display:flex;gap:1rem;border-bottom:.0625rem solid var(--line);}
.tab{font-size:.78rem;font-weight:600;color:var(--muted);padding:.4rem 0 .55rem;position:relative;cursor:pointer;}
.tab.on{color:var(--text);}.tab.on::after{content:'';position:absolute;left:0;right:0;bottom:-.0625rem;height:.15625rem;border-radius:.1875rem;background:var(--gold);}
.bcrumb{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:var(--muted);}.bcrumb b{color:var(--text);}.bcrumb .material-symbols-rounded{font-size:.85rem;}
.pag{display:flex;align-items:center;gap:.4rem;}
.pag .pg{min-width:1.7rem;height:1.7rem;border-radius:.4rem;border:.0625rem solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--text);background:var(--surface);font-size:.72rem;padding:0 .3rem;cursor:pointer;}
.pag .pg.on{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700;}.bl .pag .pg.on{background:var(--royal);border-color:var(--royal);}
.pag .pg .material-symbols-rounded{font-size:1rem;}

/* alerts / banners / toasts */
.alert{display:flex;align-items:flex-start;gap:.55rem;border-radius:.6rem;padding:.6rem .8rem;font-size:.76rem;border:.0625rem solid;}
.alert .material-symbols-rounded{font-size:1.1rem;margin-top:.05rem;}
.alert.info{background:rgba(47,95,208,.08);border-color:rgba(47,95,208,.25);color:var(--royal-600);}
.alert.ok{background:rgba(43,157,102,.1);border-color:rgba(43,157,102,.3);color:var(--success);}
.alert.warn{background:rgba(224,154,12,.1);border-color:rgba(224,154,12,.3);color:var(--caution);}
.alert.risk{background:rgba(227,62,67,.1);border-color:rgba(227,62,67,.3);color:var(--risk);}
.toast{display:inline-flex;align-items:center;gap:.55rem;background:#0e1b2b;color:#fff;border-radius:.55rem;padding:.55rem .8rem;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.35);font-size:.74rem;border:.0625rem solid rgba(255,255,255,.08);}
.toast .material-symbols-rounded{font-size:1.05rem;}.toast.ok .material-symbols-rounded{color:#5fd07e;}.toast.risk .material-symbols-rounded{color:#ff8a8a;}

/* modal */
.modal{background:var(--surface);border:.0625rem solid var(--line);border-radius:.8rem;box-shadow:0 1.5rem 3rem rgba(16,33,58,.28);max-width:24rem;}
.modal .mh{display:flex;align-items:center;gap:.5rem;padding:.8rem .9rem;border-bottom:.0625rem solid var(--line);}.modal .mh b{font-size:.85rem;color:var(--text);font-weight:700;}.modal .mh .material-symbols-rounded{margin-left:auto;color:var(--muted);cursor:pointer;}
.modal .mb{padding:.9rem;font-size:.78rem;color:var(--text);}
.modal .mf{display:flex;justify-content:flex-end;gap:.5rem;padding:.7rem .9rem;border-top:.0625rem solid var(--line);}

/* menu */
.menu{background:var(--surface);border:.0625rem solid var(--line);border-radius:.6rem;box-shadow:0 .75rem 2rem rgba(16,33,58,.2);padding:.3rem;min-width:11rem;display:inline-block;}
.menu .mi{display:flex;align-items:center;gap:.55rem;font-size:.76rem;color:var(--text);padding:.4rem .55rem;border-radius:.4rem;cursor:pointer;}
.menu .mi:hover,.menu .mi.hot{background:var(--hover);}
.menu .mi .material-symbols-rounded{font-size:1.05rem;color:var(--royal-600);}
.menu .sep{height:.0625rem;background:var(--line);margin:.25rem .2rem;}

/* avatar */
.avatar{width:1.8rem;height:1.8rem;border-radius:50%;background:var(--g-navy-royal);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:700;}
.avatar.un{background:var(--line);color:var(--muted);}

/* empty / loading */
.empty{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.6rem;text-align:center;color:var(--muted);}
.empty .ic{width:3rem;height:3rem;border-radius:50%;background:var(--hover);display:flex;align-items:center;justify-content:center;}
.empty .ic .material-symbols-rounded{font-size:1.5rem;color:var(--royal-600);}
.empty b{font-size:.82rem;color:var(--text);}.empty span{font-size:.7rem;}
.sk{background:linear-gradient(100deg,var(--track) 30%,var(--surface-2) 50%,var(--track) 70%);background-size:200% 100%;animation:sh 1.3s infinite;border-radius:.4rem;}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
.spinner{width:1.5rem;height:1.5rem;border:.15625rem solid var(--line);border-top-color:var(--royal);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

/* charts */
.legend{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.35rem;}
.legend span{display:inline-flex;align-items:center;gap:.25rem;font-size:.58rem;color:var(--muted);font-weight:500;}
.legend i{width:.6rem;height:.6rem;border-radius:.15rem;display:inline-block;}
text.ax{fill:var(--muted);font-size:.5rem;font-family:Poppins;opacity:.85;}
.gl{stroke:var(--line);stroke-width:1;}
.live{display:inline-flex;align-items:center;gap:.28rem;font-size:.58rem;font-weight:700;color:var(--success);background:rgba(43,157,102,.12);border-radius:625rem;padding:.1rem .45rem .1rem .3rem;}
.live .d{width:.42rem;height:.42rem;border-radius:50%;background:var(--success);animation:pulse 1.6s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(43,157,102,.5)}70%{box-shadow:0 0 0 .32rem rgba(43,157,102,0)}100%{box-shadow:0 0 0 0 rgba(43,157,102,0)}}

/* grids */
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.6rem;align-items:start;}
.c2{grid-column:span 2;}.c3{grid-column:span 3;}.c4{grid-column:span 4;}.c5{grid-column:span 5;}.c6{grid-column:span 6;}.c7{grid-column:span 7;}.c8{grid-column:span 8;}
.w{background:var(--surface);border:.0625rem solid var(--line);border-radius:.7rem;box-shadow:var(--sh);position:relative;display:flex;flex-direction:column;overflow:hidden;min-width:0;}
.w svg{display:block;max-width:100%;}
.wh{display:flex;align-items:center;gap:.4rem;padding:.42rem .6rem;border-bottom:.0625rem solid var(--line);}
.wh .grip{color:var(--muted);opacity:.5;font-size:.9rem;}.wh b{font-size:.72rem;color:var(--text);font-weight:700;}.wh .sub{font-size:.6rem;color:var(--muted);}.wh .menu2{margin-left:auto;color:var(--muted);opacity:.7;font-size:.95rem;}
.wb{padding:.55rem .65rem .62rem;flex:1;}
.swatch{display:flex;flex-direction:column;gap:.3rem;}.swatch .b{height:2.6rem;border-radius:.45rem;box-shadow:inset 0 0 0 .0625rem rgba(0,0,0,.06);}.swatch .n{font-size:.64rem;font-weight:600;color:var(--text);}.swatch .h{font-size:.58rem;color:var(--muted);font-family:ui-monospace,monospace;}

/* ===== POLISH PASS: crisp charts, consistent sizing, hover/drilldown, wizards ===== */
.bl svg polyline,.bl svg path,.bl svg line,.bl svg circle{vector-effect:non-scaling-stroke;}
.chartbox{width:100%;height:8.5rem;}.chartbox.sm{height:6rem;}.chartbox.lg{height:11rem;}
.chartbox svg{width:100%;height:100%;display:block;}
.donutbox{width:5.5rem;height:5.5rem;flex:0 0 auto;}.donutbox.sm{width:4.6rem;height:4.6rem;}.donutbox svg{width:100%;height:100%;display:block;}
.bl .hit{cursor:pointer;transition:filter .12s,opacity .12s;}.bl .hit:hover{filter:brightness(1.1) saturate(1.05);}
.bl tbody tr.drill{cursor:pointer;}.bl tbody tr.drill:hover td:first-child{box-shadow:inset .15rem 0 0 var(--royal);}
#bl-tip{position:fixed;z-index:300;pointer-events:none;background:#0e1b2b;color:#fff;border:.0625rem solid rgba(255,255,255,.12);border-radius:.45rem;padding:.42rem .58rem;font-size:.66rem;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.45);opacity:0;transform:translateY(.25rem);transition:opacity .1s,transform .1s;max-width:15rem;}
#bl-tip.on{opacity:1;transform:none;}
#bl-tip h6{margin:0 0 .28rem;font-size:.66rem;color:#cfe0ef;font-weight:600;}
#bl-tip .r{display:flex;align-items:center;justify-content:space-between;gap:.8rem;line-height:1.5;}
#bl-tip .r i{width:.5rem;height:.5rem;border-radius:50%;display:inline-block;margin-right:.3rem;}#bl-tip .r b{font-weight:700;}
#bl-tip .delta{color:#5fd07e;font-weight:700;}#bl-tip .delta.dn{color:#ff8a8a;}
#bl-pop{position:fixed;z-index:310;background:var(--surface);color:var(--text);border:.0625rem solid var(--line);border-radius:.6rem;box-shadow:0 1rem 2.5rem rgba(16,33,58,.3);min-width:16rem;opacity:0;transform:translateY(.3rem) scale(.98);transition:opacity .12s,transform .12s;pointer-events:none;}
#bl-pop.on{opacity:1;transform:none;pointer-events:auto;}
#bl-pop .ph{display:flex;align-items:center;gap:.4rem;padding:.55rem .7rem;border-bottom:.0625rem solid var(--line);font-size:.76rem;font-weight:700;color:var(--text);}
#bl-pop .ph .material-symbols-rounded{font-size:1rem;color:var(--royal-600);}#bl-pop .ph .x{margin-left:auto;color:var(--muted);cursor:pointer;}
#bl-pop .pr{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.36rem .7rem;font-size:.72rem;}
#bl-pop .pr .bar{height:.4rem;border-radius:625rem;background:var(--royal);}
#bl-pop .pf{padding:.5rem .7rem;border-top:.0625rem solid var(--line);text-align:right;}
.stepper{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;}
.stp{display:flex;align-items:center;gap:.4rem;cursor:pointer;}
.stp .num{width:1.5rem;height:1.5rem;border-radius:50%;border:.125rem solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.64rem;font-weight:700;color:var(--muted);background:var(--surface);flex:0 0 auto;}
.stp.done .num{background:var(--success);border-color:var(--success);color:#fff;}
.stp.now .num{background:var(--navy);border-color:var(--navy);color:#fff;}.bl .stp.now .num{background:var(--royal);border-color:var(--royal);}
.stp .lb{font-size:.68rem;font-weight:600;color:var(--text);white-space:nowrap;}.stp.todo .lb{color:var(--muted);font-weight:500;}
.stpline{width:1rem;height:.125rem;background:var(--line);flex:0 0 auto;}.stpline.done{background:var(--success);}
.formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.75rem 1rem;}.formgrid .full{grid-column:1/-1;}
.uploadzone{border:.09375rem dashed var(--royal);border-radius:.6rem;padding:.9rem;text-align:center;background:rgba(47,95,208,.04);color:var(--royal-600);font-size:.72rem;cursor:pointer;}
.uploadzone .material-symbols-rounded{font-size:1.5rem;display:block;margin:0 auto .25rem;}
.formacts{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1rem;padding-top:.85rem;border-top:.0625rem solid var(--line);}
/* action-row buttons must size to their content, never stretch to the row height
   (the nested flex group default-stretched .prim/.ghost to ~2x — the giant Save button) */
.formacts > div{align-items:center;}
.wstep{display:none;}.wstep.on{display:block;}
.midsplit{display:grid;grid-template-columns:11rem 1fr;gap:.7rem;align-items:start;}
.midlist{background:var(--surface-2);border:.0625rem solid var(--line);border-radius:.5rem;padding:.4rem;}
.midlist .mi2{display:flex;align-items:center;gap:.4rem;padding:.35rem .45rem;border-radius:.35rem;font-size:.7rem;color:var(--text);cursor:pointer;}
.midlist .mi2.on{background:var(--hover);font-weight:600;box-shadow:inset .12rem 0 0 var(--royal);}
.svcrow{display:flex;align-items:center;gap:.6rem;padding:.5rem .65rem;border:.0625rem solid var(--line);border-radius:.5rem;margin-bottom:.4rem;background:var(--surface);}
.svcrow .nm{font-size:.76rem;font-weight:600;color:var(--text);}.svcrow .meta{font-size:.62rem;color:var(--muted);}
.slider{height:.35rem;border-radius:625rem;background:var(--line);position:relative;flex:1;}
.slider i{position:absolute;left:0;top:0;bottom:0;width:55%;background:var(--royal);border-radius:625rem;}
.slider .knob{position:absolute;left:55%;top:50%;transform:translate(-50%,-50%);width:.85rem;height:.85rem;border-radius:50%;background:#fff;border:.125rem solid var(--royal);box-shadow:0 .0625rem .1875rem rgba(0,0,0,.2);}

/* ===== SITE-WIDE NORMALIZATION (cleanup pass) ===== */
/* donuts & pies: one consistent size, centred, never squished (CSS beats inline width/height attrs) */
.bl svg[viewBox="0 0 42 42"]{width:5rem!important;height:5rem!important;flex:0 0 auto;}
/* fill-style trend/area/bar charts: fixed height so they don't stretch tall on wide widgets */
.bl .wb svg[preserveAspectRatio="none"]{height:7.25rem!important;}
.bl .wb.tall svg[preserveAspectRatio="none"]{height:9.5rem!important;}
.bl .wb.short svg[preserveAspectRatio="none"]{height:5rem!important;}
/* button rhythm — consistent box regardless of inline padding/content */
.bl .btn{min-height:1.95rem;line-height:1;white-space:nowrap;}
.bl .btn.sm{min-height:1.65rem;}.bl .btn.lg{min-height:2.35rem;}
.bl .iconbtn{width:2rem;height:2rem;flex:0 0 auto;}
.bl .pill{white-space:nowrap;}
/* chart card grid for the gallery — even, tidy cells */
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.7rem;}
.cgrid .w{min-height:0;}
.cardchart{display:flex;flex-direction:column;}
.cardchart .wb{display:flex;flex-direction:column;justify-content:center;}
.donutwrap{display:flex;align-items:center;gap:.7rem;justify-content:center;}
.donutwrap.stack{flex-direction:column;gap:.4rem;}
.donutwrap .leg{flex:0 1 auto;}

/* ===== reusable chart primitives (global, used on every page) ===== */
.cv{width:100%;height:6.5rem;display:block;}
.axrow{display:flex;justify-content:space-between;font-size:.55rem;color:var(--muted);padding:0 .1rem;margin-top:.2rem;}
.legr{display:flex;gap:.55rem;flex-wrap:wrap;}
.legr span{display:inline-flex;align-items:center;gap:.25rem;font-size:.58rem;color:var(--muted);}
.legr i{width:.55rem;height:.55rem;border-radius:.15rem;flex:0 0 auto;}
.legr.col{flex-direction:column;gap:.25rem;}
.hb{display:flex;align-items:center;gap:.5rem;margin:.24rem 0;font-size:.68rem;color:var(--text);}
.hb .nm{width:5rem;flex:0 0 auto;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hb .tk{flex:1;height:.7rem;border-radius:625rem;background:var(--track);overflow:hidden;}
.hb .tk i{display:block;height:100%;border-radius:625rem;background:var(--royal);}
.hb .vv{font-weight:700;color:var(--text);width:2.8rem;text-align:right;flex:0 0 auto;}
.fn{display:flex;flex-direction:column;align-items:center;gap:.3rem;}
.fn .seg{height:1.3rem;border-radius:.3rem;display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;color:#fff;font-size:.62rem;font-weight:600;}
.hmgrid{display:grid;grid-template-columns:auto repeat(12,1fr);gap:.125rem;align-items:center;}
.hmgrid .dl{font-size:.55rem;color:var(--muted);padding-right:.2rem;}
.hmgrid .cell{height:.85rem;border-radius:.125rem;}
.pie{border-radius:50%;flex:0 0 auto;width:5rem;height:5rem;}
.blt{position:relative;height:1.1rem;border-radius:.3rem;background:var(--track);margin:.3rem 0;}
.blt .val{position:absolute;left:0;top:.28rem;bottom:.28rem;border-radius:.25rem;background:var(--royal);}
.blt .tgt{position:absolute;top:0;bottom:0;width:.125rem;background:var(--ink);}.bl .blt .tgt{background:#fff;}
.rp{position:relative;flex:0 0 auto;width:5rem;height:5rem;}
.rp .lab{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.rp .lab b{font-size:.95rem;font-weight:800;color:var(--text);}.rp .lab span{font-size:.5rem;color:var(--muted);}
/* gauge / half-donut svgs centred in their card, capped size (never balloon) */
.gaugesvg{width:100%;max-width:11rem;height:5.5rem;display:block;margin:0 auto;}
.halfsvg{width:100%;max-width:9rem;height:5rem;display:block;margin:0 auto;}
