/* Nuqta — styled to match the Mutqin hub: soft surfaces, 16px radii, layered shadows, indigo→violet brand, gentle motion. */
:root{--pri:#4f46e5;--pri2:#9333ea;--acc:var(--pri);--gold:#fbbf24;--bg:#f5f6fb;--sf:#fff;--sf2:#f1f3f9;--sf3:#e8ebf4;--ink:#0f172a;--mut:#64748b;--line:#e3e7f0;--pri-soft:color-mix(in srgb,var(--pri) 9%,#fff);--pri-line:color-mix(in srgb,var(--pri) 30%,#fff);--neg:#e11d48;--pos:#059669;--r:16px;--r2:12px;
--sh:0 1px 2px rgba(15,23,42,.05),0 4px 16px rgba(15,23,42,.06);--sh2:0 2px 6px rgba(15,23,42,.06),0 14px 40px rgba(15,23,42,.12);--card:var(--sf);--tx:var(--ink);--bd:var(--line);--grad:linear-gradient(135deg,var(--pri),var(--pri2));color-scheme:light}
[data-theme=dark]{--bg:#0b1020;--sf:#131a2c;--sf2:#182036;--sf3:#212a44;--ink:#e6e9f2;--mut:#93a0b8;--line:#253050;--pri-soft:color-mix(in srgb,var(--pri) 22%,#0b1020);--pri-line:color-mix(in srgb,var(--pri) 45%,#0b1020);--neg:#fb7185;--pos:#34d399;--sh:0 1px 2px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.25);--sh2:0 2px 6px rgba(0,0,0,.35),0 14px 40px rgba(0,0,0,.45);color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Arabic","Geeza Pro",Tahoma,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.45}
a{color:var(--pri)}.mut{color:var(--mut)}.sm{font-size:.85em}.sp{flex:1}.neg{color:var(--neg)}.pos{color:var(--pos)}
@keyframes vin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes up{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes draw{from{stroke-dasharray:0 100}}@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(var(--dx,10px),var(--dy,-18px))}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes p{50%{opacity:.3}}
.vin,main>*{animation:vin .35s cubic-bezier(.2,.7,.2,1) both}
/* top bar (glass) */
.top{position:sticky;top:0;z-index:8;display:flex;align-items:center;gap:.45rem;padding:.6rem 1rem;border-bottom:1px solid var(--line);isolation:isolate}
.top::before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}.brand .bt{display:flex;flex-direction:column;line-height:1.1}.brand b{font-size:1.06rem;letter-spacing:-.01em}.brand small{font-size:.7rem;color:var(--mut)}
.logo{width:34px;height:34px;border-radius:10px;background:var(--grad);display:grid;place-items:center;box-shadow:0 4px 14px rgba(79,70,229,.35);flex:none}.logo svg{width:26px;height:26px}
.ib{width:40px;height:40px;display:inline-grid;place-items:center;border:1px solid var(--line);background:var(--sf);font-size:1.05rem;cursor:pointer;border-radius:12px;color:var(--ink);text-decoration:none;position:relative;transition:transform .15s,background .15s,box-shadow .15s;flex:none}.ib:hover{background:var(--sf2)}.ib:active{transform:scale(.94)}.ib:disabled{opacity:.35}
.badge i{position:absolute;top:-4px;inset-inline-end:-4px;background:var(--neg);color:#fff;font-size:.65rem;border-radius:9px;padding:0 .3rem;font-style:normal}
.sync{display:flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:var(--sf);color:var(--mut);border-radius:999px;padding:.35rem .7rem;font-size:.78rem;cursor:pointer;max-width:40vw;height:40px}.sync .sl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--mut);flex:none}.s-ok .dot{background:var(--pos)}.s-err .dot{background:var(--neg)}.s-busy .dot{background:#f59e0b;animation:p 1s infinite}.s-wait .dot,.s-off .dot{background:#f59e0b}
/* nav */
.nav{position:fixed;bottom:0;inset-inline:0;display:flex;z-index:8;padding:.25rem .3rem calc(.25rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--sf) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.nav a{flex:1;text-align:center;padding:.35rem 0;text-decoration:none;color:var(--mut);font-size:.7rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;border-radius:12px;transition:color .2s,background .2s}.nav a span{font-size:1.15rem;transition:transform .2s}.nav a em{font-style:normal}.nav a.on{color:var(--pri);font-weight:650;background:var(--pri-soft)}.nav a.on span{transform:translateY(-1px) scale(1.08)}
main{padding:1rem 1rem 6.5rem;max-width:1180px;margin:0 auto}
@media(min-width:900px){.nav{top:61px;bottom:0;inset-inline-end:auto;width:220px;flex-direction:column;gap:.2rem;padding:1rem .7rem;border-top:0;border-inline-end:1px solid var(--line);background:transparent;backdrop-filter:none}.nav a{flex:none;flex-direction:row;gap:.7rem;padding:.65rem .9rem;font-size:.93rem;text-align:start}.nav a:hover{background:var(--sf2)}main{margin-inline-start:220px;padding:1.4rem 1.6rem 2rem}.cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}}
/* cards */
.card{background:var(--sf);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:1rem;box-shadow:var(--sh);transition:box-shadow .2s,transform .2s}.card h3{margin:0 0 .8rem;font-size:1rem;display:flex;gap:.5rem;align-items:center;letter-spacing:-.01em}.card h3 a{margin-inline-start:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.acct{border:1px solid var(--line);border-inline-start:4px solid var(--c);padding:.55rem .75rem;background:var(--sf2);border-radius:var(--r2);display:flex;flex-direction:column}.acct b{font-size:1.04rem}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.kpis div{display:flex;flex-direction:column;background:var(--sf2);border-radius:var(--r2);padding:.6rem .7rem}.kpis b{font-size:1.1rem}
.bar{display:grid;grid-template-columns:8.5rem 1fr auto;gap:.6rem;align-items:center;margin:.45rem 0;font-size:.9rem}.bar i{display:block;height:.55rem;border-radius:99px;background:var(--c);transform-origin:left;animation:fade .5s both}.bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--sf)}.tx{display:flex;align-items:center;gap:.6rem;padding:.65rem .85rem;background:var(--sf);border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s}.tx:last-child{border-bottom:0}.tx:hover{background:var(--sf2)}.tl{flex:1;min-width:0;display:flex;flex-direction:column}.tl small{color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.amt{font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.k-exp .amt{color:var(--neg)}.k-inc .amt{color:var(--pos)}.k-xfer .amt{color:var(--mut)}.arch{opacity:.55}
.day{margin:1rem .2rem .35rem;font-size:.8rem;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.tag{display:inline-block;padding:0 .45rem;border-radius:99px;font-size:.75em;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--ink);border:1px solid color-mix(in srgb,var(--c) 50%,transparent)}.tag.fm{--c:#f59e0b}
.sw{display:inline-block;width:.65rem;height:.65rem;border-radius:50%;background:var(--c);margin-inline-end:.4rem}
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.8rem}.toolbar h2{margin:0;font-size:1.2rem;letter-spacing:-.01em}.toolbar .in{flex:1;min-width:10rem}
.btn{border:1px solid var(--line);background:var(--sf);color:var(--ink);padding:.55rem .9rem;border-radius:var(--r2);cursor:pointer;font:inherit;font-weight:550;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;transition:transform .12s,box-shadow .15s,background .15s}.btn:hover{background:var(--sf2)}.btn:active{transform:scale(.97)}
.btn.pri{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(79,70,229,.3)}.btn.pri:hover{filter:brightness(1.06)}.btn.danger{color:var(--neg)}.btn.sm{padding:.3rem .6rem;font-size:.82rem;border-radius:10px}.btn.ghost{background:transparent;border-color:transparent;color:var(--mut)}
.in{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:var(--r2);background:var(--sf2);color:var(--ink);font:inherit;transition:border-color .15s,box-shadow .15s}.in:focus{outline:0;border-color:var(--pri-line);box-shadow:0 0 0 4px color-mix(in srgb,var(--pri) 14%,transparent)}.in.sm{width:auto;min-width:6rem}.in.big{font-size:1.6rem;font-weight:700}
.row{display:flex;gap:.5rem;align-items:center}.row.end{justify-content:flex-end;margin-top:.8rem}.wrap{flex-wrap:wrap}
.form{display:flex;flex-direction:column;gap:.65rem}.form label{display:flex;flex-direction:column;gap:.25rem;font-size:.86rem;color:var(--mut)}.form .row label{flex:1}.chk{flex-direction:row!important;align-items:center;gap:.4rem!important;color:var(--ink)!important;display:flex;margin:.25rem 0}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;max-height:11rem;overflow:auto;padding:.1rem}.chip input{display:none}.chip span,button.chip{display:inline-block;border:1px solid var(--line);background:var(--sf);color:var(--ink);border-radius:99px;padding:.25rem .7rem;font:inherit;font-size:.8rem;cursor:pointer;white-space:pre;transition:all .15s}.chip input:checked+span,button.chip.on{background:color-mix(in srgb,var(--c) 16%,var(--sf));border-color:var(--c);color:var(--ink);font-weight:600}
.seg{display:flex;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;margin-bottom:.8rem;background:var(--sf2);padding:3px;gap:3px}.seg button{flex:1;border:0;background:transparent;color:var(--ink);padding:.5rem .7rem;cursor:pointer;font:inherit;border-radius:9px;transition:background .2s,color .2s}.seg button.on{background:var(--sf);color:var(--pri);font-weight:650;box-shadow:var(--sh)}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(3px);z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s both}.sheet{background:var(--sf);width:100%;max-width:640px;max-height:94vh;overflow:auto;border-radius:22px 22px 0 0;padding:0 1.1rem 1.2rem;box-shadow:var(--sh2);animation:up .3s cubic-bezier(.2,.8,.2,1) both}
@media(min-width:700px){.modal{align-items:center}.sheet{border-radius:22px}}
.sheet>h3{margin-top:1rem}.ftop{position:sticky;top:0;background:var(--sf);display:flex;gap:.5rem;align-items:center;padding:.9rem 0;z-index:2;border-bottom:1px solid var(--line);margin-bottom:.8rem}
.amtrow{display:flex;gap:.4rem}.calc{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;margin-top:.4rem}.calc button{padding:.7rem;border:1px solid var(--line);border-radius:var(--r2);background:var(--sf2);color:var(--ink);font-size:1.1rem}
.atts{display:flex;flex-wrap:wrap;gap:.4rem}.att{background:var(--sf2);border-radius:8px;padding:.2rem .5rem;font-size:.85rem}.att button{border:0;background:none;color:var(--neg);cursor:pointer}
.ord button{border:0;background:none;color:var(--mut);cursor:pointer}
.fab{position:fixed;bottom:5rem;inset-inline-end:1.1rem;width:3.6rem;height:3.6rem;border-radius:18px;border:0;background:var(--grad);color:#fff;font-size:1.8rem;box-shadow:0 10px 26px rgba(79,70,229,.45);cursor:pointer;z-index:9;transition:transform .2s}.fab:hover{transform:translateY(-2px) rotate(90deg)}.fab:active{transform:scale(.93)}@media(min-width:900px){.fab{bottom:1.6rem}}
.toast{position:fixed;bottom:8rem;left:50%;transform:translateX(-50%);background:#0f172a;color:#fff;padding:.6rem 1.1rem;border-radius:12px;z-index:40;font-size:.9rem;max-width:90vw;box-shadow:var(--sh2);animation:up .25s both}
[hidden]{display:none!important}
@media(max-width:520px){.top{gap:.25rem;padding:.5rem .6rem}.sync .sl{display:none}.sync{padding:.3rem .55rem}.ib{width:36px;height:36px}.brand small{display:none}.nav a em{font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}}
/* welcome / sign-in */
.welcome{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;position:relative;overflow:hidden;background:radial-gradient(1000px 500px at 10% -10%,color-mix(in srgb,var(--pri) 18%,transparent),transparent),radial-gradient(800px 500px at 110% 110%,color-mix(in srgb,var(--pri2) 16%,transparent),transparent),var(--bg)}
.dots i{position:absolute;border-radius:50%;background:var(--grad);opacity:.16;width:calc(10px + var(--i) * 5px);height:calc(10px + var(--i) * 5px);left:calc(var(--i) * 7.3%);top:calc(((var(--i) * 37) % 100) * 1%);--dx:calc((var(--i) - 7) * 4px);animation:float calc(6s + var(--i) * .5s) ease-in-out infinite;animation-delay:calc(var(--i) * -.7s)}.dots i:nth-child(3n){background:var(--gold);opacity:.22}
.wcard{position:relative;width:100%;max-width:420px;text-align:center;background:color-mix(in srgb,var(--sf) 86%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:26px;padding:2.2rem 1.6rem 1.6rem;box-shadow:var(--sh2);animation:up .6s cubic-bezier(.2,.8,.2,1) both}
.wlogo{width:76px;height:76px;margin:0 auto 1rem;border-radius:22px;background:var(--grad);display:grid;place-items:center;box-shadow:0 14px 34px rgba(79,70,229,.45);animation:pulse 3.2s ease-in-out infinite}.wlogo svg{width:58px;height:58px}
.wcard h1{margin:0;font-size:2rem;letter-spacing:-.02em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.tagl{margin:.1rem 0 .9rem;font-weight:600;color:var(--mut);letter-spacing:.02em}
.wcard>*{animation:vin .5s both}.wcard>*:nth-child(2){animation-delay:.08s}.wcard>*:nth-child(3){animation-delay:.14s}.wcard>*:nth-child(4){animation-delay:.2s}.wcard>*:nth-child(5){animation-delay:.26s}.wcard>*:nth-child(6){animation-delay:.32s}
.gbtn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;margin:1.2rem 0 .5rem;padding:.8rem 1rem;border-radius:14px;border:1px solid var(--line);background:#fff;color:#1f2937;font:inherit;font-weight:650;cursor:pointer;box-shadow:var(--sh);transition:transform .15s,box-shadow .2s}.gbtn:hover{box-shadow:var(--sh2);transform:translateY(-1px)}.wcard .btn.ghost{width:100%;justify-content:center}
.wlang{display:flex;justify-content:center;gap:.4rem;margin-top:.8rem}.wlang button{border:1px solid var(--line);background:var(--sf2);color:var(--ink);border-radius:99px;padding:.25rem .8rem;font:inherit;font-size:.8rem;cursor:pointer}.wfoot{position:relative;margin-top:1rem}
/* dashboard */
.dash>*{animation:vin .4s both}.dbar{display:flex;flex-direction:column;gap:.7rem}
.seg-c{display:inline-flex;flex-wrap:wrap;background:var(--sf2);border:1px solid var(--line);border-radius:var(--r2);padding:3px;gap:3px}.seg-c button{border:0;background:transparent;color:var(--mut);font:inherit;font-size:.84rem;padding:.4rem .75rem;border-radius:9px;cursor:pointer;transition:all .2s}.seg-c button.on{background:var(--sf);color:var(--pri);font-weight:650;box-shadow:var(--sh)}.seg-c.sm button{padding:.3rem .6rem;font-size:.78rem}
.nb{font-style:normal;background:#fff;color:var(--pri);border-radius:99px;padding:0 .4rem;font-size:.72rem;margin-inline-start:.2rem}.btn:not(.pri) .nb{background:var(--pri);color:#fff}
.fpanel{border-top:1px dashed var(--line);padding-top:.6rem;animation:vin .3s both}.fpanel h4{margin:.6rem 0 .35rem;font-size:.82rem;color:var(--mut)}.fl{display:flex;flex-direction:column;gap:.45rem}
.kgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}@media(min-width:900px){.kgrid{grid-template-columns:repeat(4,1fr)}}
.kpi{position:relative;overflow:hidden;background:var(--sf);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:.15rem;transition:transform .2s,box-shadow .2s}.kpi:hover{transform:translateY(-2px);box-shadow:var(--sh2)}.kpi small{color:var(--mut);font-weight:600}.kpi b{font-size:1.25rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.kpi::after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;inset-inline-end:-30px;top:-30px;background:var(--kc);opacity:.13}.k-bal{--kc:var(--pri)}.k-exp{--kc:var(--neg)}.k-inc{--kc:var(--pos)}.k-net{--kc:var(--gold)}
.k-bal{background:var(--grad);color:#fff;border-color:transparent}.k-bal small,.k-bal .mut{color:rgba(255,255,255,.8)}.k-bal::after{background:#fff;opacity:.16}
.dl{font-size:.76rem;font-weight:650}.dl.up{color:var(--pos)}.dl.dn{color:var(--neg)}
.cols2{display:grid;grid-template-columns:1fr;gap:0 1rem}@media(min-width:900px){.cols2{grid-template-columns:1fr 1fr}.cols2 .wide{grid-column:1/-1}}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:-.3rem 0 .6rem;font-size:.82rem;color:var(--mut)}.crumbs button{border:0;background:var(--pri-soft);color:var(--pri);border-radius:99px;padding:.15rem .6rem;font:inherit;cursor:pointer}
.chart.bars{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:clamp(2px,.6vw,8px);height:180px;align-items:end}
.bc{border:0;background:none;padding:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.3rem;color:var(--mut);font:inherit;cursor:default;min-width:0}.bc.dr{cursor:pointer}
.bw{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px;border-radius:6px;transition:background .15s}.bc:hover .bw{background:var(--sf2)}
.bw i{display:block;width:100%;max-width:26px;min-height:0;border-radius:6px 6px 3px 3px;background:var(--grad);transform-origin:bottom;animation:grow .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}.bw i.b2{background:linear-gradient(180deg,#34d399,#059669)}.bc:hover i{filter:brightness(1.12)}
.bc em{font-style:normal;font-size:.68rem;white-space:nowrap;height:1em}
.lg{display:flex;gap:1rem;font-size:.78rem;color:var(--mut);margin-top:.5rem}.lg span::before{content:"";display:inline-block;width:.65rem;height:.65rem;border-radius:3px;margin-inline-end:.35rem;vertical-align:-1px}.lg .l1::before{background:var(--grad)}.lg .l2::before{background:#10b981}
.hint{margin:.5rem 0 0}.txw{max-height:340px;overflow:auto;margin-bottom:.6rem}
.dwrap{display:grid;grid-template-columns:minmax(150px,200px) 1fr;gap:1rem;align-items:center}@media(max-width:420px){.dwrap{grid-template-columns:1fr}}
.donut{position:relative;width:100%;max-width:220px;margin:auto}.donut svg{width:100%;display:block}.arc{transition:stroke-width .2s,opacity .2s;animation:draw .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
.arc{cursor:default}.arc.dr{cursor:pointer}.arc:hover{stroke-width:6.6}
.dc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.dc small{color:var(--mut);font-size:.75rem;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dc b{font-size:1.05rem}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}.legend li{display:flex;align-items:center;gap:.5rem;padding:.3rem .45rem;border-radius:9px;font-size:.86rem;transition:background .15s}.legend li.dr{cursor:pointer}.legend li:hover{background:var(--sf2)}.legend i{width:.7rem;height:.7rem;border-radius:4px;flex:none}.legend span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm{min-width:9rem;text-align:center}.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:.6rem}.cw{text-align:center;font-size:.72rem;color:var(--mut);font-weight:600}
.cd{position:relative;aspect-ratio:1/1;max-height:84px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--pri) calc(var(--h) * 100%),var(--sf));color:var(--ink);font:inherit;padding:4px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;cursor:pointer;transition:transform .15s,box-shadow .15s;min-width:0}.cd.e{border:0;background:none;cursor:default}
.cd b{font-size:.78rem;font-weight:600}.cd small{font-size:.66rem;font-weight:650;align-self:flex-end;max-width:100%;overflow:hidden}.cd:hover{transform:translateY(-1px);box-shadow:var(--sh)}.cd.td{outline:2px solid var(--gold);outline-offset:1px}.cd.sel{outline:2px solid var(--pri);outline-offset:1px}.ii{position:absolute;top:5px;inset-inline-end:5px;width:6px;height:6px;border-radius:50%;background:var(--pos)}
.cdl{margin-top:.9rem}.cdl h4{margin:.2rem 0 .5rem}
.tip{position:fixed;z-index:50;pointer-events:none;background:#0f172a;color:#fff;border-radius:10px;padding:.45rem .65rem;font-size:.8rem;box-shadow:var(--sh2);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s;display:flex;flex-direction:column;max-width:260px}.tip.on{opacity:1;transform:none}.tip span{opacity:.85}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* settings (Mutqin hub style) */
.set{max-width:1100px;margin:0 auto}
.shero{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border-radius:var(--r);background:var(--grad);color:#fff;box-shadow:var(--sh2);margin-bottom:.8rem;position:relative;overflow:hidden}
.shero::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.12);inset-inline-end:-50px;top:-70px}
.shero h2{margin:0;font-size:1.35rem}.shero .mut{color:rgba(255,255,255,.85)}.shero .sync{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.3)}
.savatar{width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.18);display:grid;place-items:center;overflow:hidden;flex:none}.savatar img{width:100%;height:100%;object-fit:cover}.savatar svg{width:40px;height:40px}
.snav{display:flex;gap:.4rem;overflow-x:auto;padding:.2rem .1rem .6rem;scrollbar-width:none;position:sticky;top:58px;z-index:5}
.snav::-webkit-scrollbar{display:none}
.snav a{flex:none;display:flex;align-items:center;gap:.35rem;padding:.42rem .8rem;border-radius:99px;background:var(--sf);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.84rem;box-shadow:var(--sh);transition:transform .15s,border-color .15s}
.snav a:hover{transform:translateY(-1px);border-color:var(--pri-line)}
.sgrid{display:grid;gap:.9rem;grid-template-columns:1fr}
@media(min-width:900px){.sgrid{grid-template-columns:1fr 1fr;align-items:start}.snav{top:66px}}
.scard{scroll-margin-top:120px;animation:up .45s cubic-bezier(.2,.7,.2,1) both}
.scard:nth-child(2){animation-delay:.04s}.scard:nth-child(3){animation-delay:.08s}.scard:nth-child(4){animation-delay:.12s}.scard:nth-child(5){animation-delay:.16s}.scard:nth-child(n+6){animation-delay:.2s}
.scard h3{margin:.1rem 0 .6rem;font-size:1.05rem}.scard h4{margin:.8rem 0 .2rem;font-size:.82rem;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.scard.flash{animation:flash 1s ease}@keyframes flash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--pri) 55%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.srow{display:flex;align-items:center;gap:.8rem;padding:.65rem 0;border-top:1px solid var(--line)}
.srow:first-of-type{border-top:0}.srow.col{flex-direction:column;align-items:stretch}
.srow .sl{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.srow .sl b{font-weight:600;font-size:.93rem}.srow .sl small{font-size:.78rem}
.srow .sc{display:flex;align-items:center;gap:.35rem;flex:none;max-width:60%}.srow .sc .in{min-width:0}.in.sm{width:7.5rem}
.srow .seg-c{flex-wrap:nowrap}
.tg{position:relative;display:inline-block;width:46px;height:28px;flex:none;cursor:pointer}.tg input{opacity:0;width:0;height:0;position:absolute}
.tg i{position:absolute;inset:0;border-radius:99px;background:var(--sf3);border:1px solid var(--line);transition:background .25s}
.tg i::after{content:"";position:absolute;width:22px;height:22px;top:2px;inset-inline-start:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.tg input:checked+i{background:var(--grad);border-color:transparent}.tg input:checked+i::after{transform:translateX(18px)}[dir=rtl] .tg input:checked+i::after{transform:translateX(-18px)}
.tg input:focus-visible+i{outline:2px solid var(--pri);outline-offset:2px}
.pals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.pal{display:grid;justify-items:center;gap:.3rem;padding:.55rem .3rem;border-radius:12px;border:2px solid var(--line);background:var(--sf);color:var(--ink);cursor:pointer;font:inherit;transition:transform .15s,border-color .2s,box-shadow .2s}
.pal:hover{transform:translateY(-2px)}.pal[aria-checked=true]{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft)}
.pal .sw{width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),var(--sh)}.pal small{font-size:.72rem;text-align:center;line-height:1.15}
.preview{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);padding:.7rem;display:grid;gap:.55rem;margin-bottom:.4rem;transition:background .3s}
.pv-top{display:flex;align-items:center;gap:.45rem}.pv-top .logo svg{width:24px;height:24px}.pv-top i{width:22px;height:22px;border-radius:8px;background:var(--sf);border:1px solid var(--line)}
.pv-kpi{background:var(--grad);color:#fff;border-radius:12px;padding:.6rem .8rem;display:flex;flex-direction:column;box-shadow:var(--sh)}.pv-kpi small{opacity:.85}.pv-kpi b{font-size:1.15rem}
.pv-row{display:flex;align-items:center;gap:.35rem}.pv-row .chip{border:1px solid var(--line);background:var(--sf);border-radius:99px;padding:.15rem .6rem;font-size:.75rem}.pv-row .chip.on{background:var(--pri-soft);border-color:var(--pri-line);color:var(--pri);font-weight:600}
.pv-bars{display:flex;align-items:flex-end;gap:5px;height:54px}.pv-bars i{flex:1;border-radius:6px 6px 2px 2px;background:var(--grad);transform-origin:bottom;animation:grow .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--d)*40ms)}
.mgr{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.55rem}
.mgr a,.mgr button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.55rem;align-items:center;text-align:start;padding:.7rem .8rem;border-radius:14px;border:1px solid var(--line);background:var(--sf2);color:var(--ink);text-decoration:none;font:inherit;cursor:pointer;transition:transform .15s,box-shadow .2s,border-color .2s}
.mgr a:hover,.mgr button:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--pri-line)}
.mgr span{grid-row:1/3;font-size:1.3rem}.mgr b{font-size:.88rem;font-weight:600}.mgr small{color:var(--mut);font-size:.75rem}
details.log{margin:.4rem 0 .7rem;border:1px solid var(--line);border-radius:12px;padding:.5rem .8rem;background:var(--sf2)}details.log summary{cursor:pointer;font-weight:600}details.log ul{margin:.3rem 0;padding-inline-start:1.2rem}details.log li{margin:.2rem 0;font-size:.88rem}
.wlang{flex-wrap:wrap}.wlang button.on{background:var(--pri-soft);border-color:var(--pri-line);color:var(--pri);font-weight:600}.wlang button{display:inline-flex;align-items:center;gap:.3rem}.wlang svg{width:15px;height:15px}
.ib svg{display:block}
@media(max-width:420px){.srow{flex-wrap:wrap}.srow .sc{max-width:100%}}
@media(prefers-reduced-motion:reduce){.scard,.pv-bars i{animation:none}}
@media(max-width:520px){.shero .sync{display:none}}
[data-theme=dark] .seg-c button.on{background:var(--sf3);color:#fff}

/* ---- 2.2 main view ---- */
.main{display:flex;flex-direction:column;gap:.9rem}
.qadd{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.qadd .btn{justify-content:center;font-weight:650}.qe{color:var(--neg)}.qi{color:var(--pos)}.qx{color:var(--pri)}
.bals{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}
.bal{flex:none;min-width:9rem;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;border:1px solid var(--line);background:var(--sf);border-radius:var(--r2);padding:.55rem .8rem;cursor:pointer;color:var(--ink);font:inherit;box-shadow:var(--sh)}.bal small{color:var(--mut);font-size:.75rem}.bal b{font-variant-numeric:tabular-nums}.bal:hover{border-color:var(--pri-line)}
.fbar{display:flex;flex-direction:column;gap:.55rem;position:sticky;top:62px;z-index:5}.fbar .seg{margin:0}.seg.wrap{flex-wrap:wrap}.seg.wrap button{flex:1 0 auto;padding:.35rem .6rem;font-size:.85rem}
.frow{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.frow #q{flex:1 1 14rem;min-width:0}
.fchips{max-height:none}.fchips i{font-style:normal;opacity:.6;margin-inline-start:.2rem}
.lnk{border:0;background:none;color:var(--pri);cursor:pointer;font:inherit;padding:.2rem .3rem;text-decoration:underline}
.ic{border:0;background:none;cursor:pointer;color:var(--mut);font-size:1rem;padding:.2rem .4rem}
.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi .dl{font-size:.75rem;font-weight:600;color:var(--mut)}.kpi .dl.up{color:var(--pos)}.kpi .dl.dn{color:var(--neg)}.kpi em{font-style:normal;font-size:.72rem;color:var(--mut)}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:.9rem}.dcard{min-width:0}.dcard h3{margin:0 0 .6rem;font-size:1rem}
.row.between{justify-content:space-between}
/* bar charts */
.bars{display:block;height:auto}.bplot{position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:clamp(1px,.5vw,6px);height:170px;align-items:end}
.bars .bar{display:flex;align-items:flex-end;gap:1px;height:100%;margin:0;border:0;background:none;padding:0;cursor:pointer;border-radius:6px 6px 0 0}
.bars .bar i{flex:1;display:block;min-height:1px;background:var(--neg);opacity:.85;border-radius:5px 5px 0 0;animation:none}.bars .bar i.v2{background:var(--pos)}.bars .bar:hover i{opacity:1}
.ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.avl{stroke:var(--mut);stroke-dasharray:3 3;stroke-width:1;vector-effect:non-scaling-stroke}.trl{stroke:var(--pri);stroke-width:2;fill:none;vector-effect:non-scaling-stroke}
.avt{position:absolute;inset-inline-end:0;font-size:.68rem;color:var(--mut);background:var(--sf);padding:0 .3rem;border-radius:6px;pointer-events:none}
.blab{display:grid;grid-template-columns:repeat(var(--n),1fr);font-size:.62rem;color:var(--mut);margin-top:.25rem;text-align:center}.blab span{overflow:hidden;white-space:nowrap}
.lg{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;vertical-align:middle;margin:0 .2rem 0 .5rem}.lg.e{background:var(--neg)}.lg.i{background:var(--pos)}.lg.a{border-top:2px dashed var(--mut);height:0;border-radius:0}.lg.r{border-top:2px solid var(--pri);height:0;border-radius:0}
.leg{list-style:none;margin:0;padding:0}.leg button{display:flex;align-items:center;gap:.45rem;width:100%;border:0;background:none;color:var(--ink);font:inherit;padding:.3rem;cursor:pointer;border-radius:8px;text-align:start}.leg button:hover{background:var(--sf2)}.leg i{width:.7rem;height:.7rem;border-radius:3px;flex:none}.leg b{margin-inline-start:auto;font-variant-numeric:tabular-nums}
.heat{display:grid;grid-template-columns:2.2rem repeat(24,1fr);gap:2px;font-size:.6rem;color:var(--mut)}.hh{text-align:center}.hd{font-size:.7rem;align-self:center}
.hc{aspect-ratio:1;border:0;border-radius:3px;padding:0;cursor:pointer;background:color-mix(in srgb,var(--neg) calc(var(--a)*100%),var(--sf2))}
.hbars{list-style:none;margin:0;padding:0}.hbars button{display:grid;grid-template-columns:minmax(0,9rem) 1fr auto auto;gap:.5rem;align-items:center;width:100%;border:0;background:none;color:var(--ink);font:inherit;font-size:.88rem;padding:.3rem;cursor:pointer;border-radius:8px;text-align:start}.hbars button:hover{background:var(--sf2)}.hbars span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbars i{height:.5rem;border-radius:99px;background:var(--pri);display:block}.hbars small{color:var(--mut)}
/* calendar */
.cnav{display:flex;align-items:center;justify-content:space-between;gap:.4rem;flex-wrap:wrap}.cnav .crumbs{margin:0}.crumbs button.on{background:var(--pri);color:#fff}.crumbs i{font-style:normal}.arr{display:flex;gap:.3rem}.arr button{border:1px solid var(--line);background:var(--sf);color:var(--ink);border-radius:9px;width:34px;height:34px;cursor:pointer}
.ctot{font-size:.85rem;margin:.5rem 0}.ctot .e{color:var(--neg)}.ctot .i{color:var(--pos)}
.cgrid{display:grid;gap:.4rem}.cgrid.c4{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.cgrid.c7{grid-template-columns:repeat(7,1fr)}
.ct{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;border:1px solid var(--line);border-radius:10px;padding:.45rem .5rem;cursor:pointer;color:var(--ink);font:inherit;font-size:.8rem;text-align:start;background:color-mix(in srgb,var(--neg) calc(var(--a)*100%),var(--sf));min-width:0;overflow:hidden}.ct small,.ct span{font-size:.7rem;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ct.empty{opacity:.55}.ct:hover{border-color:var(--pri-line)}
.mgrid{display:grid;grid-template-columns:2rem repeat(7,1fr);gap:3px}.mgrid .hd{text-align:center}.wk{border:0;background:var(--sf2);border-radius:8px;font-size:.65rem;color:var(--mut);cursor:pointer;padding:0}.out{min-height:2.6rem}.cday{min-height:2.8rem;padding:.3rem}
@media(max-width:760px){.fbar{position:static}}
@media(max-width:560px){.ct span{display:none}.cday b{font-size:.75rem}.heat{grid-template-columns:1.6rem repeat(24,1fr);gap:1px}.qadd .btn{padding:.55rem .3rem;font-size:.85rem}.fbar{top:56px}}
/* pickers */
.tree{list-style:none;margin:.4rem 0;padding:0;max-height:50vh;overflow:auto}.tree ul{list-style:none;padding-inline-start:1.2rem;margin:0}.tree li{padding:.12rem 0}
.mf{display:grid;grid-template-columns:8rem 1fr;gap:.5rem .7rem;align-items:center;max-height:62vh;overflow:auto}.mf>label{font-weight:600;font-size:.85rem}.g2{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}@media(max-width:560px){.mf{grid-template-columns:1fr}}
.prow{display:flex;align-items:center;justify-content:space-between}
/* account */
.av{border-radius:50%;object-fit:cover;display:inline-grid;place-items:center;flex:none}.ini{background:var(--grad);color:#fff;font-weight:700}
#acct{padding:0;border-radius:50%;width:40px;height:40px;border:2px solid transparent;background:none;cursor:pointer;display:inline-grid;place-items:center}#acct.stale{border-color:#f59e0b;box-shadow:0 0 0 2px color-mix(in srgb,#f59e0b 35%,transparent)}
.acct-in{display:inline-flex;align-items:center;gap:.35rem;width:auto!important;border-radius:999px!important;padding:0 .8rem!important;border:1px solid var(--line)!important;background:var(--sf)!important}@media(max-width:560px){.acl{display:none}}
.acrow{gap:.7rem;align-items:center;margin-bottom:.6rem}.warn{background:color-mix(in srgb,#f59e0b 14%,var(--sf));border:1px solid color-mix(in srgb,#f59e0b 45%,var(--sf));border-radius:10px;padding:.5rem .7rem}
.col{display:flex;flex-direction:column;gap:.4rem}.col .btn{justify-content:flex-start}
/* loading */
@keyframes shim{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skel{border-radius:10px;background:linear-gradient(90deg,var(--sf2) 25%,var(--sf3) 50%,var(--sf2) 75%);background-size:200% 100%;animation:shim 1.2s infinite linear;min-height:1rem}
.skel-card{height:220px}.skel-kpi{height:78px}.skel-row{height:44px;margin:.35rem 0}
.spin{width:1em;height:1em;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;display:inline-block;animation:spn .7s linear infinite;vertical-align:-.15em}@keyframes spn{to{transform:rotate(360deg)}}
#topbar{position:fixed;top:0;inset-inline:0;height:3px;z-index:60;pointer-events:none;opacity:0;transition:opacity .2s}#topbar.on{opacity:1}#topbar i{display:block;height:100%;width:var(--p,30%);background:var(--grad);transition:width .25s}#topbar.ind i{width:35%;animation:ind 1.1s infinite ease-in-out}@keyframes ind{0%{margin-inline-start:-35%}100%{margin-inline-start:100%}}
.dgrid.busy,.kpis.busy,#mlist.busy{opacity:.55;transition:opacity .15s}
.wn ul{padding-inline-start:1.2rem}.wn li{margin:.25rem 0}
/* 2.2: wide screens use a top navigation bar (logo start, tabs centre, actions end; mirrors in RTL) */
@media(min-width:900px){.nav{top:0;bottom:auto;left:50%;right:auto;inset-inline:auto;left:50%;transform:translateX(-50%);width:auto;height:61px;flex-direction:row;align-items:center;gap:.25rem;padding:0;border:0;background:none;z-index:9}
[dir=rtl] .nav{left:auto;right:50%;transform:translateX(50%)}
.nav a{flex-direction:row;gap:.4rem;padding:.45rem .85rem;font-size:.88rem}.nav a span{font-size:1rem}.nav a em{font-size:.88rem;max-width:none}
main{margin-inline-start:auto;margin-inline-end:auto;max-width:1400px;padding:1.4rem 1.6rem 2rem}}
@media(min-width:900px) and (max-width:1300px){.nav a em{display:none}}
@media(min-width:900px){#sync .sl{display:inline-block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}}
