
/* Layout: floating glass header + pill nav over a drifting pastel blob field; views stack as soft cards, clients open in a side drawer */
:root{
--bg:#eef6f3;--fg:#1c2a27;--mu:#5d6f6a;--cd:rgba(255,255,255,.80);--cds:#ffffff;--bd:rgba(28,42,39,.11);
--ac:#0f7a63;--acx:#d8f1e8;--acf:#ffffff;
--wa:#a5530b;--wax:#fdebd6;--er:#b3261e;--erx:#fbe3e1;--bl:#2459a6;--blx:#e1ecfb;--li:#6b4fb8;--lix:#ece6fb;
--p1:#bfe9da;--p2:#ffd6bf;--p3:#dcd2fb;--p4:#c6e2fb;--dot:rgba(15,122,99,.13);--sh:0 12px 30px -16px rgba(20,60,50,.28);
--fd:"Baloo 2","Nunito",system-ui,sans-serif;--fb:"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0e1614;--fg:#e5eeeb;--mu:#9caca7;--cd:rgba(25,35,33,.80);--cds:#18221f;--bd:rgba(229,238,235,.11);--ac:#5fd0b0;--acx:#163a30;--acf:#06241c;--wa:#f2a862;--wax:#3a2914;--er:#f2948c;--erx:#3e1e1b;--bl:#8db8f2;--blx:#1a2b43;--li:#b9a6f5;--lix:#2a2342;--p1:#164a3d;--p2:#4a2d1d;--p3:#2e2753;--p4:#1a3550;--dot:rgba(95,208,176,.10);--sh:0 12px 30px -16px rgba(0,0,0,.65);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0e1614;--fg:#e5eeeb;--mu:#9caca7;--cd:rgba(25,35,33,.80);--cds:#18221f;--bd:rgba(229,238,235,.11);--ac:#5fd0b0;--acx:#163a30;--acf:#06241c;--wa:#f2a862;--wax:#3a2914;--er:#f2948c;--erx:#3e1e1b;--bl:#8db8f2;--blx:#1a2b43;--li:#b9a6f5;--lix:#2a2342;--p1:#164a3d;--p2:#4a2d1d;--p3:#2e2753;--p4:#1a3550;--dot:rgba(95,208,176,.10);--sh:0 12px 30px -16px rgba(0,0,0,.65);color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 var(--fb);-webkit-font-smoothing:antialiased}
.bgfx{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;animation:drift 26s ease-in-out infinite alternate}
.b1{width:46vmax;height:46vmax;background:var(--p1);top:-18vmax;left:-12vmax}
.b2{width:38vmax;height:38vmax;background:var(--p2);top:32%;right:-14vmax;animation-duration:32s;animation-delay:-6s}
.b3{width:34vmax;height:34vmax;background:var(--p3);bottom:-16vmax;left:18%;animation-duration:29s;animation-delay:-12s}
.b4{width:22vmax;height:22vmax;background:var(--p4);top:6%;left:48%;animation-duration:23s;animation-delay:-3s}
@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(4vmax,3vmax) scale(1.08)}100%{transform:translate(-3vmax,5vmax) scale(.95)}}
.dots{position:absolute;inset:0;background-image:radial-gradient(var(--dot) 1.3px,transparent 1.7px);background-size:24px 24px}
.gl{position:absolute;bottom:-60px;font-family:var(--fd);font-weight:800;color:var(--ac);opacity:0;animation:up linear infinite}
@keyframes up{0%{transform:translateY(0) rotate(0);opacity:0}12%{opacity:.17}88%{opacity:.17}100%{transform:translateY(-118vh) rotate(40deg);opacity:0}}
.app{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:16px 48px}
.top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--cd);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--bd);border-radius:22px;box-shadow:var(--sh)}
.brand{display:flex;gap:11px;align-items:center}
.logo{width:42px;height:42px;border-radius:14px;background:var(--ac);color:var(--acf);display:grid;place-items:center;font:800 16px var(--fd);transform:rotate(-6deg);box-shadow:0 8px 16px -8px var(--ac);animation:wig 6s ease-in-out infinite}
@keyframes wig{0%,88%,100%{transform:rotate(-6deg)}92%{transform:rotate(6deg)}96%{transform:rotate(-10deg)}}
.brand b{font:800 19px/1.1 var(--fd);display:block}.brand small{color:var(--mu);font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.dotlive{width:8px;height:8px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 0 var(--ac);animation:pulse 2.4s infinite}.dotlive.off{background:var(--wa);animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ac) 60%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.who{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.who label{color:var(--mu);font-size:13px;font-weight:700}
.nav{display:flex;gap:6px;overflow-x:auto;padding:14px 2px 6px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}
.nav button{background:var(--cd);color:var(--mu);border:1px solid var(--bd);white-space:nowrap;border-radius:99px;padding:7px 15px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.nav button:hover{color:var(--fg)}
.nav button.on{background:var(--ac);color:var(--acf);border-color:transparent;box-shadow:0 8px 18px -10px var(--ac)}
.nb{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:10px;background:var(--er);color:var(--cds);font-size:11px;margin-left:6px;padding:0 5px;vertical-align:1px}
main{padding-top:12px}
h1,h2,h3,h4{font-family:var(--fd);line-height:1.15;text-wrap:balance;margin:0;font-weight:700}
h1{font-size:clamp(26px,4vw,36px)}h2{font-size:25px}h3{font-size:17px}h4{font-size:15px;margin:18px 0 8px}
select,input,button,textarea{font:inherit;color:var(--fg)}
input,select,textarea{background:var(--cds);border:1.5px solid var(--bd);border-radius:12px;padding:8px 11px;max-width:100%;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 4px var(--acx)}
button{background:var(--ac);color:var(--acf);border:0;border-radius:12px;padding:8px 16px;cursor:pointer;font-weight:800;transition:transform .15s,box-shadow .2s,background .2s}
button:hover{transform:translateY(-1px)}button:active{transform:scale(.96)}button:disabled{opacity:.55;cursor:default;transform:none}
button:focus-visible,.fi:focus-visible{outline:3px solid var(--bl);outline-offset:2px}
button.g{background:var(--acx);color:var(--ac)}button.s{padding:5px 11px;font-size:13px;border-radius:10px}
button.dg{background:var(--erx);color:var(--er)}
.card{background:var(--cd);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--bd);border-radius:20px;padding:16px;box-shadow:var(--sh)}
.stack{display:grid;gap:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpi span{color:var(--mu);font-size:13px;font-weight:800}.kpi b{display:block;font:800 30px/1.1 var(--fd);font-variant-numeric:tabular-nums;margin-top:4px}.kpi b small{font-size:16px;color:var(--mu)}
.kpi.hot b{color:var(--er)}
.hero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(120deg,var(--acx),var(--cd) 72%)}
.hero p{margin:6px 0 0;color:var(--mu);max-width:58ch}.hero p b{color:var(--er)}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ac)}
.mascot{width:118px;flex-shrink:0}
.m-body{animation:bob 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}
@keyframes bob{50%{transform:translateY(-6px) rotate(-3deg)}}
.m-ey{fill:var(--fg);animation:blink 4.6s infinite;transform-box:fill-box;transform-origin:center}
@keyframes blink{0%,91%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
.m-sh{fill:var(--dot);animation:shd 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes shd{50%{transform:scaleX(.8)}}
.m-bk{fill:var(--ac)}.m-pg{fill:var(--cds)}.m-ln{fill:var(--acx)}.m-ck{fill:var(--p2)}.m-sm{fill:none;stroke:var(--fg);stroke-width:3;stroke-linecap:round}.m-st{fill:var(--wa)}.m-tk{fill:none;stroke:var(--cds);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800;background:var(--acx);color:var(--ac);white-space:nowrap}
.chip.w{background:var(--wax);color:var(--wa)}.chip.e{background:var(--erx);color:var(--er)}.chip.b{background:var(--blx);color:var(--bl)}.chip.l{background:var(--lix);color:var(--li)}
.ch{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
.cols.eq{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:820px){.cols,.cols.eq{grid-template-columns:1fr}}
.fi{display:flex;width:100%;gap:12px;align-items:center;text-align:left;background:transparent;color:var(--fg);padding:10px 8px;border-radius:14px;font-weight:400;border-bottom:1px dashed var(--bd)}
.fi:hover{background:var(--acx);transform:none}.fi .k{min-width:84px;justify-content:center}
.fi-t{flex:1;min-width:0}.fi-t b{display:block}.fi-t small{display:block;color:var(--mu)}
.bar{height:10px;border-radius:9px;background:var(--acx);overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--ac),var(--bl));border-radius:9px;transition:width .3s}
.sc{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:560px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--bd);font-size:14px;vertical-align:middle}
th{color:var(--mu);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tbody tr{transition:background .2s}tbody tr:hover{background:var(--acx)}
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px}
.col{background:var(--cd);border:1.5px dashed var(--bd);border-radius:20px;padding:12px;min-width:0}
.col-h{display:flex;justify-content:space-between;align-items:center;font-family:var(--fd);font-weight:700;font-size:16px}
.t{background:var(--cds);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-top:10px;font-size:14px;box-shadow:0 6px 14px -10px rgba(0,0,0,.35);transition:transform .2s}
.t:hover{transform:translateY(-2px) rotate(-.4deg)}
.t-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.t-h b{min-width:0}
.t small{color:var(--mu);display:block;margin-top:2px}.t .r{display:flex;gap:6px;align-items:center;margin-top:9px;flex-wrap:wrap}
.t select{padding:4px 8px;font-size:13px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ph{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.note{color:var(--mu);font-size:13px}
.empty{color:var(--mu);text-align:center;padding:18px}
.tools{display:grid;gap:10px}.tools input{width:100%}
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fc{background:var(--cds);color:var(--mu);border:1.5px solid var(--bd);border-radius:99px;padding:5px 12px;font-size:13px}
.fc.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cc{text-align:left;color:var(--fg);display:grid;gap:12px;font-weight:400;cursor:pointer;align-content:start}
.cc:hover{transform:translateY(-3px);box-shadow:0 20px 34px -20px var(--ac)}
.cc-h{display:flex;gap:10px;align-items:center}.cc-n{min-width:0}.cc-n b{display:block;font:700 17px/1.2 var(--fd)}.cc-n small{color:var(--mu);font-size:12.5px}
.cc-s{display:flex;flex-wrap:wrap;gap:4px}.cc-f{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.av{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font:800 15px var(--fd);color:var(--fg);flex-shrink:0}
.av.lg{width:54px;height:54px;font-size:19px;border-radius:18px}
.a0{background:var(--p1)}.a1{background:var(--p2)}.a2{background:var(--p3)}.a3{background:var(--p4)}
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:10px 0}
.f{display:grid;gap:4px;font-size:13px;font-weight:800;color:var(--mu);min-width:0}
.f input,.f select{width:100%;font-weight:400;color:var(--fg)}
.ferr{color:var(--er);font-style:normal;font-size:12px}.ferr:empty{display:none}
.ok{color:var(--ac);font-style:normal;font-size:11.5px}.bad{color:var(--er);font-style:normal;font-size:11.5px}
.svc{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.ck{display:inline-flex;gap:6px;align-items:center;background:var(--cds);border:1.5px solid var(--bd);border-radius:99px;padding:5px 12px;font-size:13px;font-weight:800;cursor:pointer}
.ck input,.doc input{accent-color:var(--ac);margin:0}
#ov{position:fixed;inset:0;background:rgba(8,20,16,.38);opacity:0;pointer-events:none;transition:opacity .3s;z-index:39}
#ov.open{opacity:1;pointer-events:auto}
#dr{position:fixed;top:0;right:0;bottom:0;width:min(540px,100%);transform:translateX(105%);transition:transform .4s cubic-bezier(.2,.85,.2,1);background:var(--cds);z-index:40;overflow-y:auto;box-shadow:-20px 0 50px -20px rgba(0,0,0,.4);padding-top:calc(env(safe-area-inset-top,0px) + 18px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 24px);padding-left:18px;padding-right:max(18px,env(safe-area-inset-right,0px));border-radius:24px 0 0 24px}
#dr.open{transform:none}
.dr-h{display:flex;gap:12px;align-items:center}.dr-t{flex:1;min-width:0}
.x{background:var(--acx);color:var(--ac);width:40px;height:40px;border-radius:12px;padding:0;font-size:22px;line-height:1;flex-shrink:0}
.tabs{display:flex;gap:4px;margin:16px 0 12px;background:var(--bg);padding:4px;border-radius:14px;overflow-x:auto}
.tb{background:transparent;color:var(--mu);padding:7px 12px;border-radius:10px;white-space:nowrap;font-size:14px}
.tb.on{background:var(--cds);color:var(--fg);box-shadow:0 2px 10px -4px rgba(0,0,0,.35)}
.dr-b.fade{animation:rise .35s both}
.li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--bd)}.li>span{min-width:0}.li small{display:block;color:var(--mu)}
.doc{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:12px;cursor:pointer;font-weight:600}.doc:hover{background:var(--acx)}
.doc input{width:18px;height:18px}.doc.ok span{text-decoration:line-through;color:var(--mu)}
.nx{background:var(--wax);border-radius:16px;padding:12px;display:grid;gap:8px}.nx input{width:100%}
textarea{width:100%;min-height:72px;resize:vertical}
.log{border-left:3px solid var(--p1);padding:3px 0 3px 12px;margin:10px 0}.log small{color:var(--mu)}
.sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:8px 0}
.sum div{background:var(--bg);border-radius:14px;padding:10px}.sum span{display:block;font-size:12px;color:var(--mu);font-weight:800}.sum b{font:800 18px var(--fd);font-variant-numeric:tabular-nums}
.drop{display:grid;place-items:center;gap:6px;border:2px dashed var(--ac);border-radius:18px;padding:26px 16px;text-align:center;background:var(--acx);cursor:pointer;color:var(--ac);font-weight:800;transition:transform .2s,background .2s}
.drop:hover,.drop.over{transform:scale(1.01);background:var(--p1)}.drop small{color:var(--mu);font-weight:600}
.drop input{position:absolute;width:1px;height:1px;opacity:0}
.dl{display:grid;gap:10px}
.dlb{display:flex;gap:12px;align-items:center;text-align:left;background:var(--cds);color:var(--fg);border:1.5px solid var(--bd);padding:12px 14px;border-radius:16px;font-weight:400}
.dlb:hover{border-color:var(--ac);box-shadow:0 12px 24px -16px var(--ac)}
.dlb .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font:800 15px var(--fd);flex-shrink:0}
.dlb b{display:block;font-weight:800}.dlb small{color:var(--mu);display:block}
.danger{border-color:color-mix(in srgb,var(--er) 40%,transparent)}
.load{display:grid;place-items:center;gap:8px;padding:50px 16px;text-align:center}
#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translate(-50%,30px);opacity:0;background:var(--fg);color:var(--bg);padding:10px 18px;border-radius:99px;font-weight:800;font-size:14px;z-index:60;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s;max-width:calc(100% - 32px);text-align:center;pointer-events:none}
#toast.on{transform:translate(-50%,0);opacity:1}
#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:70}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:none}}
@keyframes grow{from{width:0}}
main.anim .stack>*{animation:rise .55s cubic-bezier(.2,.8,.2,1) both}
main.anim .stack>*:nth-child(2){animation-delay:.06s}main.anim .stack>*:nth-child(3){animation-delay:.12s}main.anim .stack>*:nth-child(4){animation-delay:.18s}main.anim .stack>*:nth-child(5){animation-delay:.24s}main.anim .stack>*:nth-child(n+6){animation-delay:.3s}
main.anim .cgrid>*,main.anim .grid>*,main.anim .board>*{animation:pop .5s cubic-bezier(.2,.8,.2,1) both}
main.anim .cgrid>*:nth-child(2),main.anim .grid>*:nth-child(2),main.anim .board>*:nth-child(2){animation-delay:.07s}
main.anim .cgrid>*:nth-child(3),main.anim .grid>*:nth-child(3),main.anim .board>*:nth-child(3){animation-delay:.14s}
main.anim .cgrid>*:nth-child(n+4),main.anim .grid>*:nth-child(n+4),main.anim .board>*:nth-child(n+4){animation-delay:.21s}
main.anim .bar i{animation:grow 1.1s .25s cubic-bezier(.2,.8,.2,1) both}
@media (max-width:560px){.mascot{width:84px}.top{border-radius:18px}h2{font-size:22px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.gl{display:none}}

.login{max-width:440px;margin:4vh auto 0;display:grid;gap:14px}
.login .card{display:grid;gap:12px}
.seg{display:flex;gap:4px;background:var(--bg);padding:4px;border-radius:14px}
.seg button{flex:1;background:transparent;color:var(--mu);border-radius:10px}
.seg button.on{background:var(--cds);color:var(--fg);box-shadow:0 2px 10px -4px rgba(0,0,0,.35)}
.gbtn{display:flex;gap:10px;align-items:center;justify-content:center;background:var(--cds);color:var(--fg);border:1.5px solid var(--bd)}
.gbtn svg{width:18px;height:18px}
.or{display:flex;align-items:center;gap:10px;color:var(--mu);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--bd)}
.login input{width:100%}
.otp{letter-spacing:.5em;font:800 22px var(--fd);text-align:center}
.pill{display:inline-flex;gap:6px;align-items:center}
.pvb{justify-content:space-between;background:var(--lix);border-color:color-mix(in srgb,var(--li) 40%,transparent)}
button.card.kpi{text-align:left;color:var(--fg);font-weight:400;cursor:pointer;display:block;width:100%}
button.card.kpi:hover{transform:translateY(-2px);box-shadow:0 18px 30px -18px var(--ac)}
.ck[hidden]{display:none!important}
/* invoice preview, ledger modal, print */
#pm{position:fixed;inset:0;z-index:80;background:rgba(8,20,16,.55);display:none;overflow:auto;padding-top:calc(env(safe-area-inset-top,0px) + 14px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 28px);padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
#pm.open{display:block;animation:rise .3s both}
.pm-bar{position:sticky;top:0;z-index:2;max-width:880px;margin:0 auto 12px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--cds);border:1px solid var(--bd);border-radius:16px;padding:10px 12px;box-shadow:var(--sh)}
.pm-body{max-width:1100px;margin:0 auto}
.ppr{--ink:#1c2422;--pmu:#5b6764;--pln:#e1e7e5;--pac:#0f7a63;background:#fff;color:var(--ink);max-width:880px;margin:0 auto;border-radius:8px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);padding:36px 40px;font:13px/1.5 "Nunito",system-ui,sans-serif;color-scheme:light}
.ppr table{min-width:0;width:auto;border-collapse:collapse}
.ppr th,.ppr td{color:var(--ink);border-bottom:1px solid var(--pln);font-size:13px;padding:6px 8px}
.ppr tbody tr:hover{background:transparent}
.pp-h{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:2px solid var(--pac);padding-bottom:14px}
.pp-f{display:flex;gap:14px;align-items:flex-start;min-width:0;flex:1}.pp-logo{max-height:64px;max-width:170px;object-fit:contain}
.pp-n{font:800 20px/1.2 var(--fd)}.pp-s{color:var(--pmu);font-size:12px;margin-top:4px}
.pp-m{text-align:right}.pp-t{font:800 20px var(--fd);color:var(--pac);letter-spacing:.04em}
.pp-m td{border:0;padding:1px 0 1px 14px;font-size:12px;color:var(--pmu)}.pp-m td b{color:var(--ink)}
.pp-bt{margin:16px 0;font-size:13px}.pp-l{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pac);margin-bottom:3px}
.pp-it{width:100%!important}.pp-it th{background:var(--pac);color:#fff;text-transform:none;letter-spacing:0;font-size:12.5px}.pp-it td:first-child,.pp-it th:first-child{width:34px;text-align:center}
.pp-tot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:14px}.pp-w{flex:1;min-width:220px;font-size:12.5px}
.pp-tot table td{border:0;padding:3px 0 3px 24px}.pp-tot tr.b td{font-weight:800;font-size:14px;border-top:1px solid var(--pln)}
.pp-note{color:var(--pmu);font-size:11.5px;margin:8px 0 0}
.pp-ft{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--pln);margin-top:18px;padding-top:14px;font-size:12.5px}
.pp-sg{text-align:right;font-weight:700}.pp-sl{height:38px;border-bottom:1px solid #999;margin:4px 0 4px auto;width:190px}
.pp-cg{text-align:center;color:var(--pmu);font-size:11px;margin:18px 0 0}
.logo-bx{width:170px;height:64px;border:1.5px dashed var(--bd);border-radius:12px;display:grid;place-items:center;overflow:hidden;background:#fff}.logo-bx img{max-width:100%;max-height:100%;object-fit:contain}
.it{margin-bottom:6px}
.lnk{background:none;color:var(--ac);padding:0;border-radius:0;font-weight:800;text-decoration:underline;text-underline-offset:2px}.lnk:hover{transform:none}
@media (max-width:560px){.ppr{padding:20px 16px}.pp-m{text-align:left}.pp-m td{padding-left:0;padding-right:14px}}
@media print{
 body.pm-on>*:not(#pm){display:none!important}
 body.pm-on{background:#fff}
 body.pm-on #pm{position:static;display:block;background:none;padding:0;overflow:visible;animation:none}
 body.pm-on .pm-bar{display:none!important}
 body.pm-on .ppr{box-shadow:none;margin:0;max-width:none;border-radius:0;padding:0}
 body.pm-on .pm-body .card{box-shadow:none;border:0}
 @page{size:A4;margin:12mm}
}

/* colour themes (data-skin on <html>); mint is the default above */
:root[data-skin="royal"]{--cd:rgba(255,255,255,.80);--cds:#ffffff;--bg:#eef1f8;--fg:#18203a;--mu:#5b6480;--bd:rgba(24,32,58,.12);--ac:#1f3a8a;--acx:#e1e7f7;--acf:#ffffff;--p1:#c9d4f2;--p2:#f1e3b8;--p3:#d9d2f0;--p4:#c8e0f4;--dot:rgba(31,58,138,.12);color-scheme:light}
@media (prefers-color-scheme:dark){:root[data-skin="royal"]:not([data-theme="light"]){--bg:#0d1122;--fg:#e6e9f5;--mu:#a0a8c3;--cd:rgba(22,28,52,.82);--cds:#161c34;--bd:rgba(230,233,245,.12);--ac:#e2b85c;--acx:#2e2a1a;--acf:#1a1405;--p1:#1d2a5c;--p2:#4a3d17;--p3:#2e2656;--p4:#163552;--dot:rgba(226,184,92,.10);color-scheme:dark}}
:root[data-skin="royal"][data-theme="dark"]{--bg:#0d1122;--fg:#e6e9f5;--mu:#a0a8c3;--cd:rgba(22,28,52,.82);--cds:#161c34;--bd:rgba(230,233,245,.12);--ac:#e2b85c;--acx:#2e2a1a;--acf:#1a1405;--p1:#1d2a5c;--p2:#4a3d17;--p3:#2e2656;--p4:#163552;--dot:rgba(226,184,92,.10);color-scheme:dark}
:root[data-skin="ocean"]{--cd:rgba(255,255,255,.80);--cds:#ffffff;--bg:#eef6fb;--fg:#13283a;--mu:#587083;--bd:rgba(19,40,58,.12);--ac:#0e6fae;--acx:#dbeefa;--acf:#ffffff;--p1:#bfe3f5;--p2:#cdeee6;--p3:#d6dcfb;--p4:#ffe3c7;--dot:rgba(14,111,174,.12);color-scheme:light}
@media (prefers-color-scheme:dark){:root[data-skin="ocean"]:not([data-theme="light"]){--bg:#0b1620;--fg:#e3eef6;--mu:#9bb0c0;--cd:rgba(18,32,44,.82);--cds:#12202c;--bd:rgba(227,238,246,.12);--ac:#5ab8f0;--acx:#12324a;--acf:#04182a;--p1:#0f3a57;--p2:#0f4038;--p3:#262c5a;--p4:#4a2e14;--dot:rgba(90,184,240,.10);color-scheme:dark}}
:root[data-skin="ocean"][data-theme="dark"]{--bg:#0b1620;--fg:#e3eef6;--mu:#9bb0c0;--cd:rgba(18,32,44,.82);--cds:#12202c;--bd:rgba(227,238,246,.12);--ac:#5ab8f0;--acx:#12324a;--acf:#04182a;--p1:#0f3a57;--p2:#0f4038;--p3:#262c5a;--p4:#4a2e14;--dot:rgba(90,184,240,.10);color-scheme:dark}
:root[data-skin="lavender"]{--cd:rgba(255,255,255,.80);--cds:#ffffff;--bg:#f4f1fb;--fg:#241c3a;--mu:#6a6282;--bd:rgba(36,28,58,.12);--ac:#6b4fc8;--acx:#ebe4fb;--acf:#ffffff;--p1:#ddd3fb;--p2:#fbd5e6;--p3:#c9e6f7;--p4:#d4f0e1;--dot:rgba(107,79,200,.12);color-scheme:light}
@media (prefers-color-scheme:dark){:root[data-skin="lavender"]:not([data-theme="light"]){--bg:#120f1d;--fg:#ece8f6;--mu:#a69fbe;--cd:rgba(28,23,44,.82);--cds:#1c172c;--bd:rgba(236,232,246,.12);--ac:#b39bfa;--acx:#2c2350;--acf:#160d33;--p1:#2e2456;--p2:#4a1f36;--p3:#163552;--p4:#163d2c;--dot:rgba(179,155,250,.10);color-scheme:dark}}
:root[data-skin="lavender"][data-theme="dark"]{--bg:#120f1d;--fg:#ece8f6;--mu:#a69fbe;--cd:rgba(28,23,44,.82);--cds:#1c172c;--bd:rgba(236,232,246,.12);--ac:#b39bfa;--acx:#2c2350;--acf:#160d33;--p1:#2e2456;--p2:#4a1f36;--p3:#163552;--p4:#163d2c;--dot:rgba(179,155,250,.10);color-scheme:dark}
:root[data-skin="sunset"]{--cd:rgba(255,255,255,.80);--cds:#ffffff;--bg:#fdf3ec;--fg:#2d1d14;--mu:#7a6255;--bd:rgba(45,29,20,.12);--ac:#c2410c;--acx:#fde4d4;--acf:#ffffff;--p1:#ffd9c2;--p2:#ffe9a8;--p3:#f9cdd8;--p4:#d6e8cf;--dot:rgba(194,65,12,.12);color-scheme:light}
@media (prefers-color-scheme:dark){:root[data-skin="sunset"]:not([data-theme="light"]){--bg:#1a110c;--fg:#f6ebe4;--mu:#bca99c;--cd:rgba(38,26,19,.82);--cds:#26190f;--bd:rgba(246,235,228,.12);--ac:#ff9a62;--acx:#452412;--acf:#2a1003;--p1:#4a2412;--p2:#47391a;--p3:#4a1f2a;--p4:#1f3a22;--dot:rgba(255,154,98,.10);color-scheme:dark}}
:root[data-skin="sunset"][data-theme="dark"]{--bg:#1a110c;--fg:#f6ebe4;--mu:#bca99c;--cd:rgba(38,26,19,.82);--cds:#26190f;--bd:rgba(246,235,228,.12);--ac:#ff9a62;--acx:#452412;--acf:#2a1003;--p1:#4a2412;--p2:#47391a;--p3:#4a1f2a;--p4:#1f3a22;--dot:rgba(255,154,98,.10);color-scheme:dark}
:root[data-skin="rose"]{--cd:rgba(255,255,255,.80);--cds:#ffffff;--bg:#fcf1f5;--fg:#2e1622;--mu:#7b5d6b;--bd:rgba(46,22,34,.12);--ac:#be185d;--acx:#fbe1ec;--acf:#ffffff;--p1:#fbd0e1;--p2:#ffe1c9;--p3:#e5d8fb;--p4:#cdeee6;--dot:rgba(190,24,93,.11);color-scheme:light}
@media (prefers-color-scheme:dark){:root[data-skin="rose"]:not([data-theme="light"]){--bg:#1a0e14;--fg:#f6e8ee;--mu:#bfa0ae;--cd:rgba(40,22,31,.82);--cds:#28161f;--bd:rgba(246,232,238,.12);--ac:#f472b6;--acx:#4a1a32;--acf:#2a0716;--p1:#4a1a32;--p2:#4a2e14;--p3:#2e2656;--p4:#0f3a2e;--dot:rgba(244,114,182,.10);color-scheme:dark}}
:root[data-skin="rose"][data-theme="dark"]{--bg:#1a0e14;--fg:#f6e8ee;--mu:#bfa0ae;--cd:rgba(40,22,31,.82);--cds:#28161f;--bd:rgba(246,232,238,.12);--ac:#f472b6;--acx:#4a1a32;--acf:#2a0716;--p1:#4a1a32;--p2:#4a2e14;--p3:#2e2656;--p4:#0f3a2e;--dot:rgba(244,114,182,.10);color-scheme:dark}
:root[data-skin="slate"]{--cd:rgba(255,255,255,.80);--cds:#ffffff;--bg:#f1f3f6;--fg:#1a2230;--mu:#5f6b7c;--bd:rgba(26,34,48,.12);--ac:#334155;--acx:#e2e7ee;--acf:#ffffff;--p1:#d6dde6;--p2:#e7e1d6;--p3:#dde2ec;--p4:#d9e6e1;--dot:rgba(51,65,85,.10);color-scheme:light}
@media (prefers-color-scheme:dark){:root[data-skin="slate"]:not([data-theme="light"]){--bg:#0f1218;--fg:#e6e9ef;--mu:#9aa3b2;--cd:rgba(24,28,36,.84);--cds:#181c24;--bd:rgba(230,233,239,.12);--ac:#a5b4fc;--acx:#232a3d;--acf:#0d1022;--p1:#1e2533;--p2:#2a2620;--p3:#232a3d;--p4:#1c2a26;--dot:rgba(165,180,252,.09);color-scheme:dark}}
:root[data-skin="slate"][data-theme="dark"]{--bg:#0f1218;--fg:#e6e9ef;--mu:#9aa3b2;--cd:rgba(24,28,36,.84);--cds:#181c24;--bd:rgba(230,233,239,.12);--ac:#a5b4fc;--acx:#232a3d;--acf:#0d1022;--p1:#1e2533;--p2:#2a2620;--p3:#232a3d;--p4:#1c2a26;--dot:rgba(165,180,252,.09);color-scheme:dark}
#who{position:relative}
.lkp{position:absolute;right:0;top:calc(100% + 10px);z-index:45;width:min(330px,calc(100vw - 32px));background:var(--cds);border:1px solid var(--bd);border-radius:18px;padding:14px;box-shadow:0 24px 48px -20px rgba(0,0,0,.45);display:grid;gap:10px;animation:pop .25s both;text-align:left}
.lkp b{font-family:var(--fd);font-size:15px}
.sw{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.swb{display:flex;align-items:center;gap:8px;background:var(--bg);color:var(--fg);border:1.5px solid var(--bd);padding:7px 10px;font-weight:700;font-size:13px;text-align:left}
.swb i{width:22px;height:22px;border-radius:8px;background:linear-gradient(135deg,var(--a) 0 55%,var(--b) 55%);flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.swb.on{border-color:var(--ac);box-shadow:0 0 0 3px var(--acx)}
.top{position:relative;z-index:30}
.lkp{z-index:60}

/* ===== Three styles, switchable in Colours → Style (data-style on <html>). Classic is the default. ===== */
/* shared */
.top{position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:30}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:31;background:var(--bg)}
.logo.has-img{width:auto;min-width:42px;max-width:140px;background:#fff;padding:3px 6px;border:1px solid var(--bd)}
.logo img{display:block;max-height:34px;max-width:128px;object-fit:contain}
.nav{padding:14px 2px 8px;gap:8px;position:relative;z-index:2}
.nav-h{display:none}
.nav button{flex-shrink:0;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;padding:8px 15px 8px 12px;font-weight:700;position:relative;overflow:hidden}
.nav button svg{width:17px;height:17px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.gl svg{display:block}
.gl{color:var(--ac)}
@keyframes float{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:var(--glo,.14)}90%{opacity:var(--glo,.14)}100%{transform:translateY(-118vh) rotate(25deg);opacity:0}}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.rpl{position:absolute;border-radius:50%;transform:scale(0);background:currentColor;opacity:.28;pointer-events:none;animation:rpl .55s ease-out forwards}
@keyframes rpl{to{transform:scale(2.8);opacity:0}}
td.n,.kpi b,.sum b{font-variant-numeric:tabular-nums}
main{padding-top:14px;min-width:0}.stack{grid-template-columns:minmax(0,1fr)}
@media (max-width:560px){.nav button{padding:7px 12px 7px 10px}.brand small{display:none}}

/* ---- Classic: solid, clear, soft shadows; lift on hover, ripple on click, smooth page entrance ---- */
:root[data-style="classic"] .blob{opacity:.35;animation-duration:90s}
:root[data-style="classic"] .gl{display:none}
:root[data-style="classic"] .m-body,:root[data-style="classic"] .m-ey{animation-duration:6s}
:root[data-style="classic"] .logo{animation:none;transform:none}
:root[data-style="classic"] .card,:root[data-style="classic"] .top{background:var(--cds);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--bd);border-radius:16px;box-shadow:0 1px 2px rgba(16,24,40,.05),0 6px 18px -10px rgba(16,24,40,.16)}
:root[data-style="classic"] .hero{background:linear-gradient(120deg,var(--acx),var(--cds) 70%)}
:root[data-style="classic"] .grid>.kpi{position:relative;overflow:hidden}
:root[data-style="classic"] .grid>.kpi::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--ac);opacity:.75}
:root[data-style="classic"] .grid>.kpi.hot::before{background:var(--er)}
:root[data-style="classic"] .card,:root[data-style="classic"] .t,:root[data-style="classic"] .fi,:root[data-style="classic"] button,:root[data-style="classic"] tbody tr{transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s,background .2s,border-color .2s,color .2s}
:root[data-style="classic"] .grid>.kpi:hover,:root[data-style="classic"] .cgrid>.card:hover,:root[data-style="classic"] .hpb:hover,:root[data-style="classic"] .dlb:hover,:root[data-style="classic"] .t:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(16,24,40,.06),0 16px 32px -14px rgba(16,24,40,.28);border-color:color-mix(in srgb,var(--ac) 35%,var(--bd))}
:root[data-style="classic"] .nav button{background:var(--cds);border:1px solid var(--bd);color:var(--fg);box-shadow:0 1px 2px rgba(16,24,40,.05)}
:root[data-style="classic"] .nav button:hover{background:var(--acx);color:var(--ac);transform:none}
:root[data-style="classic"] .nav button.on{background:var(--ac);color:var(--acf);border-color:transparent;box-shadow:0 6px 16px -8px var(--ac)}
:root[data-style="classic"] button{position:relative;overflow:hidden}
:root[data-style="classic"] button:hover{transform:translateY(-1px);filter:none}
:root[data-style="classic"] button:active{transform:translateY(0) scale(.98)}
:root[data-style="classic"] .fi:hover{transform:none;background:var(--acx)}
:root[data-style="classic"] tbody tr:hover{background:color-mix(in srgb,var(--acx) 70%,transparent)}
:root[data-style="classic"] main.anim .stack>*,:root[data-style="classic"] main.anim .grid>*,:root[data-style="classic"] main.anim .cgrid>*,:root[data-style="classic"] main.anim .board>*{animation:fadeup .4s cubic-bezier(.2,.8,.2,1) both}
:root[data-style="classic"] :focus-visible{outline:2px solid var(--ac);outline-offset:2px}

/* ---- Glass: see-through panels, glowing edges, gentle enlarge on hover ---- */
:root[data-style="glass"] .blob,:root[data-style="glass"] .m-body,:root[data-style="glass"] .m-ey,:root[data-style="glass"] .m-sh,:root[data-style="glass"] .logo,:root[data-style="glass"] .dotlive{animation:none!important}
:root[data-style="glass"] .logo{transform:none}
:root[data-style="glass"] .blob{opacity:.5;filter:blur(90px)}
:root[data-style="glass"] .gl{display:block;animation:float linear infinite}
:root[data-style="glass"] .dots{background-image:linear-gradient(color-mix(in srgb,var(--ac) 8%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ac) 8%,transparent) 1px,transparent 1px);background-size:44px 44px}
:root[data-style="glass"] .card,:root[data-style="glass"] .top,:root[data-style="glass"] .col,:root[data-style="glass"] .nav button,:root[data-style="glass"] .t,:root[data-style="glass"] .pm-bar{background:color-mix(in srgb,var(--cds) 52%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid color-mix(in srgb,var(--ac) 28%,transparent);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 30%,transparent),0 10px 30px -18px color-mix(in srgb,var(--ac) 55%,transparent)}
:root[data-style="glass"] .hero{background:linear-gradient(120deg,color-mix(in srgb,var(--acx) 70%,transparent),color-mix(in srgb,var(--cds) 35%,transparent))}
:root[data-style="glass"] .grid>.kpi{position:relative;overflow:hidden}
:root[data-style="glass"] .grid>.kpi::after{content:"";position:absolute;left:14px;right:14px;top:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--ac),transparent);opacity:.75}
:root[data-style="glass"] .nav button{color:var(--fg)}
:root[data-style="glass"] .nav button.on{background:color-mix(in srgb,var(--ac) 88%,transparent);color:var(--acf);border-color:transparent;box-shadow:0 8px 22px -10px var(--ac)}
:root[data-style="glass"] .card,:root[data-style="glass"] .nav button,:root[data-style="glass"] .t,:root[data-style="glass"] .fi,:root[data-style="glass"] button,:root[data-style="glass"] tbody tr{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}
:root[data-style="glass"] .grid>.kpi:hover,:root[data-style="glass"] .cgrid>.card:hover,:root[data-style="glass"] .hpb:hover,:root[data-style="glass"] .dlb:hover,:root[data-style="glass"] .t:hover{transform:scale(1.03);border-color:color-mix(in srgb,var(--ac) 60%,transparent)}
:root[data-style="glass"] .nav button:hover,:root[data-style="glass"] button:hover{transform:scale(1.05);filter:none}
:root[data-style="glass"] .fi:hover{transform:scale(1.012);background:color-mix(in srgb,var(--acx) 55%,transparent)}
:root[data-style="glass"] tbody tr:hover{background:color-mix(in srgb,var(--acx) 50%,transparent)}
:root[data-style="glass"] main.anim .stack>*,:root[data-style="glass"] main.anim .cgrid>*,:root[data-style="glass"] main.anim .grid>*,:root[data-style="glass"] main.anim .board>*{animation:fadein .25s ease both}

/* ---- Lively: colourful moving background, bouncy hover, playful but not busy ---- */
:root[data-style="lively"] .blob{opacity:.95;filter:blur(60px)}
:root[data-style="lively"] .gl{display:block;--glo:.18;animation:float linear infinite}
:root[data-style="lively"] .hero{background:linear-gradient(120deg,var(--acx),var(--p1),var(--p3),var(--p2));background-size:300% 300%;animation:shift 16s ease infinite;border:0}
@keyframes shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
:root[data-style="lively"] .grid>.kpi{position:relative;overflow:hidden}
:root[data-style="lively"] .grid>.kpi::before{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-40px;top:-48px;background:var(--p1);opacity:.65;transition:transform .5s}
:root[data-style="lively"] .grid>.kpi:nth-child(4n+2)::before{background:var(--p2)}:root[data-style="lively"] .grid>.kpi:nth-child(4n+3)::before{background:var(--p3)}:root[data-style="lively"] .grid>.kpi:nth-child(4n+4)::before{background:var(--p4)}
:root[data-style="lively"] .grid>.kpi>*{position:relative}
:root[data-style="lively"] .card,:root[data-style="lively"] .t,:root[data-style="lively"] .nav button,:root[data-style="lively"] button{transition:transform .3s cubic-bezier(.3,1.5,.5,1),box-shadow .3s,background .2s,color .2s}
:root[data-style="lively"] .grid>.kpi:hover,:root[data-style="lively"] .cgrid>.card:hover,:root[data-style="lively"] .hpb:hover,:root[data-style="lively"] .t:hover{transform:translateY(-5px) rotate(-.6deg);box-shadow:0 22px 40px -22px var(--ac)}
:root[data-style="lively"] .grid>.kpi:hover::before{transform:scale(1.3)}
:root[data-style="lively"] .nav button:hover{transform:translateY(-3px);color:var(--ac)}
:root[data-style="lively"] .nav button.on{background:var(--ac);color:var(--acf);box-shadow:0 10px 22px -10px var(--ac)}
:root[data-style="lively"] main.anim .stack>*,:root[data-style="lively"] main.anim .grid>*,:root[data-style="lively"] main.anim .cgrid>*,:root[data-style="lively"] main.anim .board>*{animation:pop .5s cubic-bezier(.2,.8,.2,1) both}

@media (hover:none){:root .grid>.kpi:hover,:root .cgrid>.card:hover,:root .hpb:hover,:root .dlb:hover,:root .t:hover,:root .nav button:hover,:root button:hover,:root .fi:hover{transform:none}}

/* client requests */
.rq .thr{display:grid;gap:8px;margin:10px 0}
.msg{max-width:min(560px,92%);padding:9px 12px;border-radius:14px;font-size:14px;background:var(--bg);border:1px solid var(--bd)}
.msg.s{justify-self:end;background:var(--acx);border-color:transparent}
.msg small{display:block;color:var(--mu);font-size:11.5px;margin-top:3px}
.hp{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.hpb{display:grid;gap:4px;text-align:left;background:var(--cds);color:var(--fg);border:1.5px solid var(--bd);padding:14px;border-radius:16px;font-weight:400}
.hpb b{font:700 16px var(--fd)}.hpb small{color:var(--mu)}
.hpb.on,.hpb:hover{border-color:var(--ac);box-shadow:0 12px 24px -16px var(--ac)}

/* ---- Classic, clean and transparent: 30% panels and tabs, drifting ₹ $ and calculator symbols ---- */
:root[data-style="classic"] .gl{display:block;animation:float linear infinite;--glo:.16}
:root[data-style="classic"] .card,:root[data-style="classic"] .top,:root[data-style="classic"] .nav button,:root[data-style="classic"] .col,:root[data-style="classic"] .t,:root[data-style="classic"] .pm-bar{background:color-mix(in srgb,var(--cds) 30%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border:1px solid color-mix(in srgb,var(--fg) 13%,transparent);box-shadow:0 1px 2px rgba(16,24,40,.04)}
:root[data-style="classic"] .hero{background:color-mix(in srgb,var(--acx) 35%,transparent)}
:root[data-style="classic"] .nav button.on{background:var(--ac);color:var(--acf);border-color:transparent}
:root[data-style="classic"] .nav button:hover{background:color-mix(in srgb,var(--acx) 55%,transparent)}
:root[data-style="classic"] .lkp{background:color-mix(in srgb,var(--cds) 94%,transparent)}
:root[data-style="classic"] .grid>.kpi:hover,:root[data-style="classic"] .cgrid>.card:hover,:root[data-style="classic"] .t:hover,:root[data-style="classic"] .hpb:hover,:root[data-style="classic"] .dlb:hover{transform:scale(1.025)}

/* ---- Smooth on every PC: no blur behind moving symbols (this caused flicker on office PCs) ---- */
.bgfx{contain:strict;transform:translateZ(0)}
.gl{will-change:transform,opacity;backface-visibility:hidden}
:root[data-style="classic"] .blob{animation:none}
:root[data-style="classic"] .card,:root[data-style="classic"] .nav button,:root[data-style="classic"] .col,:root[data-style="classic"] .t,:root[data-style="classic"] .pm-bar{backdrop-filter:none;-webkit-backdrop-filter:none}
:root[data-style="classic"] .top{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
:root[data-style="classic"] .grid>.kpi,:root[data-style="classic"] .card{transition:transform .18s ease}

/* ---- Quick actions on Home, per-person tab picker ---- */
.qk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px}
.qk>.note{margin-right:4px;font-weight:700}
.tabrow td{background:color-mix(in srgb,var(--acx) 45%,transparent)}
.tabpick{display:grid;gap:6px;padding:4px 2px}
.tabgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px;margin-top:4px}
.tabgrid .ck.off{opacity:.45}
@media (max-width:640px){.qk button{flex:1 1 calc(50% - 8px)}}
/* Every tab visible on computers: wrap onto a second line instead of hiding off-screen. Phones keep the swipe row. */
@media (min-width:700px){.nav{flex-wrap:wrap;overflow:visible}.nav button{padding:7px 13px 7px 11px;font-size:14px}}
