/* ================================================================
   PICASSO Mobile — GOVA design system
   ink / paper / blue · motion-first · RTL-safe
   ================================================================ */
:root{
  --ink:#0E0E10;
  --ink-2:#1C1C21;
  --paper:#FFFFFF;
  --paper-warm:#F5F2EC;
  --rule:#E6E2D8;
  --faint:#8E8B85;
  --blue:#0034BF;        /* PRIMARY — GOVA brand v2, 8 Aug 2026 */
  --blue-light:#0046FF;  /* hover / focus / the logo's blue */
  --blue-soft:#E6EBFA;
  --ok:#2E7D5B;          /* official GOVA OK green */
  --ok-soft:#EAF3EF;
  --warn:#B8791B;
  --warn-soft:#FBF1E0;
  --bad:#C4462F;
  --bad-soft:#FBEAE6;
  --gold:#C9A227;
  --shadow:0 10px 30px rgba(14,14,16,.10);
  --shadow-lg:0 22px 50px rgba(14,14,16,.18);
  --r:16px;
  --r-sm:11px;
  --tap:52px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --ease:cubic-bezier(.22,.8,.28,1);
  --font:'Space Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Consolas,monospace;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;margin:0;}
body{
  font-family:var(--font);
  background:var(--paper-warm);
  color:var(--ink);
  font-size:15px;
  line-height:1.5;
  overscroll-behavior-y:none;
  -webkit-font-smoothing:antialiased;
}
body[dir="rtl"]{font-family:'Noto Naskh Arabic',var(--font);}
button,input,select,textarea{font:inherit;color:inherit;}
.mono{font-family:var(--mono);}

/* ---------- app shell ---------- */
#app{display:flex;flex-direction:column;height:100%;max-width:520px;margin:0 auto;position:relative;background:var(--paper-warm);overflow:hidden;}
.topbar{
  background:var(--ink);color:#fff;padding:calc(10px + var(--safe-top)) 16px 12px;
  display:flex;align-items:center;gap:10px;position:relative;z-index:20;
}
.topbar .mark{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:-.3px;}
.topbar .mark b{color:#5B87FF;}
.topbar .who{flex:1;min-width:0;font-size:12px;opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.topbar .chip{
  background:rgba(255,255,255,.14);border:0;color:#fff;border-radius:30px;
  padding:5px 11px;font-size:11px;font-family:var(--mono);cursor:pointer;transition:background .2s var(--ease);
}
.topbar .chip:active{background:rgba(255,255,255,.3);}
.topbar .chip.off{background:var(--bad);}
.topbar .chip.badge{background:var(--blue);}

.screen{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 16px 26px;-webkit-overflow-scrolling:touch;}
.screen.flush{padding-left:0;padding-right:0;}

/* ---------- bottom nav ---------- */
.tabbar{
  display:flex;background:var(--paper);border-top:1px solid var(--rule);
  padding:6px 4px calc(6px + var(--safe-bottom));position:relative;z-index:20;
}
.tabbar .tab{
  flex:1;border:0;background:none;padding:8px 2px 6px;display:flex;flex-direction:column;
  align-items:center;gap:3px;font-size:10.5px;color:var(--faint);cursor:pointer;
  border-radius:12px;transition:color .22s var(--ease),transform .22s var(--ease);
}
.tabbar .tab .ic{font-size:19px;line-height:1;transition:transform .3s var(--ease);}
.tabbar .tab.on{color:var(--ink);font-weight:600;}
.tabbar .tab.on .ic{transform:translateY(-2px) scale(1.14);}
.tabbar .tab:active{transform:scale(.94);}
.tabbar .tab .dot{width:5px;height:5px;border-radius:50%;background:var(--blue);opacity:0;transition:opacity .25s;}
.tabbar .tab.on .dot{opacity:1;}

/* ---------- typography ---------- */
h1.page{font-size:23px;margin:2px 0 3px;letter-spacing:-.6px;font-weight:700;}
p.sub{margin:0 0 16px;color:var(--faint);font-size:13px;line-height:1.55;}
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--faint);margin-bottom:7px;}
h2.sec{font-size:15px;margin:22px 0 10px;font-weight:700;letter-spacing:-.2px;}

/* ---------- cards ---------- */
.card{
  background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);
  padding:15px 16px;margin-bottom:12px;box-shadow:0 1px 2px rgba(14,14,16,.04);
}
.card.tap{cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease);}
.card.tap:active{transform:scale(.985);box-shadow:var(--shadow);}
.card .t{font-weight:650;font-size:14.5px;letter-spacing:-.2px;}
.card .d{color:var(--faint);font-size:12.5px;margin-top:3px;}
.card .r{display:flex;justify-content:space-between;align-items:center;gap:10px;}

.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.kpi{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:13px 14px;position:relative;overflow:hidden;}
.kpi .lab{font-family:var(--mono);font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:var(--faint);}
.kpi .val{font-size:22px;font-weight:700;letter-spacing:-1px;margin-top:5px;}
.kpi .val small{font-size:12px;font-weight:500;color:var(--faint);letter-spacing:0;}
.kpi .dl{font-size:11px;margin-top:2px;color:var(--faint);}
.kpi::after{content:"";position:absolute;inset-inline-end:-20px;top:-20px;width:64px;height:64px;border-radius:50%;background:var(--blue-soft);opacity:.55;}
.kpi.ok::after{background:var(--ok-soft);} .kpi.warn::after{background:var(--warn-soft);} .kpi.bad::after{background:var(--bad-soft);}

/* ---------- badges & pills ---------- */
.badge{display:inline-block;padding:2.5px 9px;border-radius:30px;font-size:10.5px;font-weight:600;font-family:var(--mono);letter-spacing:.2px;}
.b-ok{background:var(--ok-soft);color:var(--ok);}
.b-info{background:var(--blue-soft);color:var(--blue);}
.b-warn{background:var(--warn-soft);color:var(--warn);}
.b-bad{background:var(--bad-soft);color:var(--bad);}
.b-mute{background:var(--paper-warm);color:var(--faint);}

/* ---------- buttons ---------- */
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:var(--tap);background:var(--blue);color:#fff;border:0;border-radius:14px;
  font-size:15px;font-weight:600;cursor:pointer;margin-top:10px;padding:0 16px;
  transition:transform .16s var(--ease),filter .16s var(--ease);position:relative;overflow:hidden;
}
.btn:active{transform:scale(.975);filter:brightness(.92);}
.btn.ghost{background:var(--paper);color:var(--ink);border:1px solid var(--rule);}
.btn.dark{background:var(--ink);}
.btn.ok{background:var(--ok);}
.btn.sm{min-height:40px;font-size:13.5px;border-radius:11px;margin-top:0;width:auto;padding:0 14px;}
.btn[disabled]{opacity:.45;pointer-events:none;}
.btnrow{display:flex;gap:8px;margin-top:10px;}
.btnrow .btn{margin-top:0;}

.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.tile{
  background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);padding:14px 12px;
  text-align:center;cursor:pointer;transition:transform .18s var(--ease),border-color .18s;
  min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
}
.tile:active{transform:scale(.96);border-color:var(--blue);}
.tile .ic{font-size:22px;line-height:1;}
.tile .lb{font-size:12.5px;font-weight:600;}
.tile .n{position:absolute;}

/* ---------- forms ---------- */
.field{margin-bottom:12px;}
.field label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--faint);margin-bottom:6px;}
.inp{
  width:100%;min-height:var(--tap);background:var(--paper);border:1px solid var(--rule);
  border-radius:12px;padding:0 14px;font-size:15px;transition:border-color .2s,box-shadow .2s;
}
textarea.inp{min-height:90px;padding:12px 14px;resize:vertical;line-height:1.5;}
.inp:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);}
.stepper{display:flex;gap:8px;align-items:center;}
.stepper button{
  width:52px;height:52px;flex:0 0 auto;border-radius:14px;border:1px solid var(--rule);
  background:var(--paper);font-size:22px;cursor:pointer;transition:transform .15s var(--ease),background .15s;
}
.stepper button:active{transform:scale(.9);background:var(--blue-soft);}
.stepper .inp{text-align:center;font-family:var(--mono);font-size:19px;font-weight:600;}
.seg{display:flex;background:var(--paper-warm);border:1px solid var(--rule);border-radius:13px;padding:3px;gap:3px;margin-bottom:14px;}
.seg button{flex:1;border:0;background:none;padding:9px 4px;border-radius:10px;font-size:12.5px;font-weight:600;color:var(--faint);cursor:pointer;transition:all .22s var(--ease);}
.seg button.on{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08);}

/* ---------- list rows ---------- */
.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);}
.row:last-child{border-bottom:0;}
.row .grow{flex:1;min-width:0;}
.row .ttl{font-weight:600;font-size:14px;}
.row .sub2{color:var(--faint);font-size:12px;margin-top:2px;}
.avatar{
  width:40px;height:40px;border-radius:13px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:#fff;font-weight:700;font-size:14px;font-family:var(--mono);
}

/* ---------- scanner ---------- */
.viewfinder{
  position:relative;height:190px;border-radius:var(--r);overflow:hidden;margin-bottom:14px;
  background:radial-gradient(120% 100% at 50% 0%,#25252c 0%,#0E0E10 70%);
  display:flex;align-items:center;justify-content:center;
}
.viewfinder .frame{width:60%;aspect-ratio:1;border-radius:14px;position:relative;}
.viewfinder .frame span{position:absolute;width:26px;height:26px;border:3px solid #fff;}
.viewfinder .frame span:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-radius:8px 0 0 0;}
.viewfinder .frame span:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-radius:0 8px 0 0;}
.viewfinder .frame span:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-radius:0 0 0 8px;}
.viewfinder .frame span:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-radius:0 0 8px 0;}
.viewfinder .laser{
  position:absolute;left:8%;right:8%;height:2px;background:linear-gradient(90deg,transparent,#5B87FF,transparent);
  box-shadow:0 0 14px 2px rgba(91,135,255,.7);animation:sweep 2.4s var(--ease) infinite;
}
@keyframes sweep{0%{top:22%;opacity:0;}12%{opacity:1;}88%{opacity:1;}100%{top:78%;opacity:0;}}
.viewfinder .hint{position:absolute;bottom:12px;left:0;right:0;text-align:center;color:rgba(255,255,255,.65);font-family:var(--mono);font-size:10.5px;}

.codecard{display:flex;align-items:center;gap:12px;}
.qrbox{background:#fff;padding:5px;border-radius:9px;line-height:0;flex:0 0 auto;border:1px solid var(--rule);}
.qrbox svg{display:block;}

/* ---------- shop ---------- */
.hero{
  position:relative;border-radius:22px;overflow:hidden;margin-bottom:16px;padding:22px 20px 20px;
  background:linear-gradient(135deg,#0E0E10 0%,#20222B 55%,#0E0E10 100%);color:#fff;
}
.hero h2{margin:0 0 4px;font-size:21px;letter-spacing:-.5px;}
.hero p{margin:0;font-size:12.5px;opacity:.72;max-width:80%;}
.hero .glow{position:absolute;width:200px;height:200px;border-radius:50%;filter:blur(48px);opacity:.5;}
.hero .g1{background:#0046FF;top:-70px;inset-inline-end:-40px;animation:float1 9s ease-in-out infinite;}
.hero .g2{background:#C9A227;bottom:-90px;inset-inline-start:-50px;animation:float2 11s ease-in-out infinite;}
@keyframes float1{0%,100%{transform:translate(0,0);}50%{transform:translate(-18px,22px);}}
@keyframes float2{0%,100%{transform:translate(0,0);}50%{transform:translate(20px,-18px);}}

.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 12px;margin:0 -16px;scrollbar-width:none;}
.chips::-webkit-scrollbar{display:none;}
.chips button{
  flex:0 0 auto;border:1px solid var(--rule);background:var(--paper);border-radius:30px;
  padding:9px 15px;font-size:12.5px;font-weight:600;color:var(--faint);cursor:pointer;transition:all .22s var(--ease);
}
.chips button.on{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-1px);}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pcard{
  background:var(--paper);border:1px solid var(--rule);border-radius:18px;overflow:hidden;cursor:pointer;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease);display:flex;flex-direction:column;
}
.pcard:active{transform:scale(.97);}
.pcard .art{position:relative;aspect-ratio:1.15;background:var(--paper-warm);overflow:hidden;}
.pcard .art svg{width:100%;height:100%;display:block;}
.pcard .meta{padding:10px 12px 12px;}
.pcard .nm{font-weight:650;font-size:13.5px;line-height:1.25;letter-spacing:-.2px;}
.pcard .pr{font-family:var(--mono);font-size:13px;margin-top:5px;font-weight:600;}
.pcard .tagline{color:var(--faint);font-size:11px;margin-top:2px;}
.pcard .flag{position:absolute;top:9px;inset-inline-start:9px;}
.pcard .stockdot{position:absolute;bottom:9px;inset-inline-end:9px;background:rgba(255,255,255,.9);border-radius:30px;padding:2px 8px;font-size:10px;font-family:var(--mono);}

.detail-art{border-radius:20px;overflow:hidden;background:var(--paper-warm);aspect-ratio:1.4;margin-bottom:14px;}
.detail-art svg{width:100%;height:100%;display:block;}

.cartbar{
  position:absolute;left:12px;right:12px;bottom:calc(12px + var(--safe-bottom));z-index:30;
  background:var(--ink);color:#fff;border-radius:16px;padding:13px 16px;display:flex;align-items:center;gap:12px;
  box-shadow:var(--shadow-lg);animation:riseIn .35s var(--ease);cursor:pointer;
}
@keyframes riseIn{from{transform:translateY(30px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.cartbar .cnt{background:var(--blue);border-radius:30px;padding:2px 9px;font-family:var(--mono);font-size:12px;}
.cartbar .tot{margin-inline-start:auto;font-family:var(--mono);font-weight:600;}

/* ---------- motion helpers ---------- */
.enter{animation:enter .34s var(--ease) both;}
@keyframes enter{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.stag > *{animation:enter .38s var(--ease) both;}
.stag > *:nth-child(1){animation-delay:.02s;} .stag > *:nth-child(2){animation-delay:.06s;}
.stag > *:nth-child(3){animation-delay:.10s;} .stag > *:nth-child(4){animation-delay:.14s;}
.stag > *:nth-child(5){animation-delay:.18s;} .stag > *:nth-child(6){animation-delay:.22s;}
.stag > *:nth-child(7){animation-delay:.26s;} .stag > *:nth-child(8){animation-delay:.30s;}
.stag > *:nth-child(n+9){animation-delay:.34s;}
.pop{animation:pop .4s var(--ease) both;}
@keyframes pop{0%{transform:scale(.86);opacity:0;}60%{transform:scale(1.03);}100%{transform:scale(1);opacity:1;}}

.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + var(--safe-bottom));
  background:var(--ink);color:#fff;padding:13px 18px;border-radius:14px;font-size:13.5px;
  box-shadow:var(--shadow-lg);z-index:80;max-width:88%;text-align:center;
  border-inline-start:3px solid var(--blue);animation:riseIn .3s var(--ease);
}
.sheet-back{position:absolute;inset:0;background:rgba(14,14,16,.45);z-index:60;animation:fade .25s var(--ease);backdrop-filter:blur(2px);}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{
  position:absolute;left:0;right:0;bottom:0;z-index:61;background:var(--paper);
  border-radius:24px 24px 0 0;padding:10px 18px calc(20px + var(--safe-bottom));max-height:88%;overflow-y:auto;
  animation:slideUp .34s var(--ease);box-shadow:var(--shadow-lg);
}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
.sheet .grab{width:42px;height:4px;border-radius:4px;background:var(--rule);margin:4px auto 14px;}

.check{width:64px;height:64px;margin:6px auto 12px;display:block;}
.check circle{stroke:var(--ok);stroke-width:4;fill:none;stroke-dasharray:170;stroke-dashoffset:170;animation:draw .5s var(--ease) forwards;}
.check path{stroke:var(--ok);stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:50;stroke-dashoffset:50;animation:draw .35s var(--ease) .38s forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}

.skel{background:linear-gradient(90deg,var(--rule) 25%,#f2efe8 50%,var(--rule) 75%);background-size:200% 100%;animation:shim 1.3s infinite;border-radius:8px;}
@keyframes shim{to{background-position:-200% 0;}}

.sigpad{width:100%;height:150px;border:1.5px dashed var(--rule);border-radius:14px;background:var(--paper);touch-action:none;display:block;}

.timeline{position:relative;padding-inline-start:22px;}
.timeline::before{content:"";position:absolute;inset-inline-start:6px;top:6px;bottom:6px;width:2px;background:var(--rule);}
.timeline .pt{position:relative;padding-bottom:16px;}
.timeline .pt::before{content:"";position:absolute;inset-inline-start:-22px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--blue);}
.timeline .pt.done::before{background:var(--ok);border-color:var(--ok);}
.timeline .pt.wait::before{border-color:var(--rule);}

.bars{display:flex;align-items:flex-end;gap:6px;height:76px;margin-top:10px;}
.bars .bar{flex:1;background:var(--blue-soft);border-radius:6px 6px 3px 3px;position:relative;animation:grow .7s var(--ease) both;}
.bars .bar i{position:absolute;inset:auto 0 0 0;background:var(--blue);border-radius:6px 6px 3px 3px;display:block;}
@keyframes grow{from{transform:scaleY(0);transform-origin:bottom;}to{transform:scaleY(1);}}

.ring{--p:0;width:76px;height:76px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--blue) calc(var(--p)*1%),var(--rule) 0);}
.ring i{width:60px;height:60px;border-radius:50%;background:var(--paper);display:grid;place-items:center;font-weight:700;font-style:normal;font-size:15px;}

.empty{text-align:center;padding:38px 20px;color:var(--faint);}
.empty .big{font-size:34px;margin-bottom:8px;opacity:.4;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
}

/* --- login (server mode) --- */
.login{padding:32px 22px;display:flex;flex-direction:column;gap:12px;min-height:100dvh;justify-content:center}
.login .mark.big{font-size:15px;letter-spacing:.04em;opacity:.8}
.login h1{margin:2px 0 0;font-size:30px;letter-spacing:-.02em}
.login .sub{margin:0 0 10px;opacity:.65;font-size:14px}
.login .fld{height:52px;border-radius:12px;border:1px solid var(--rule,#ddd);padding:0 14px;font-size:16px;background:#fff}
.login .btn.wide{width:100%;height:54px;font-size:16px;margin-top:6px}
.login .err{background:#fdecea;color:#b23a33;border-radius:10px;padding:10px 12px;font-size:13px}

/* The GOVA mark is a wordmark, not text — its brackets must never mirror in RTL.
   Without this it renders </GOVA> in Arabic. */
.mark, .login .mark.big { direction: ltr; unicode-bidi: isolate; display: inline-block; }


/* ================================================================
   GOVA credit badge — mandatory, one per surface.
   Placed on the sign-in screen (this app's splash) and in Settings;
   the app's bottom tab bar makes a persistent footer impractical.
   ================================================================ */
.gv-credit{display:inline-flex;align-items:center;gap:9px;padding:8px 14px 8px 8px;
  background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:999px;
  text-decoration:none;line-height:1;box-shadow:0 2px 14px -6px rgba(14,14,16,.18)}
.gv-credit .gv-mk{width:26px;height:26px;border-radius:7px;background:var(--ink);color:var(--paper);
  display:grid;place-items:center;position:relative;flex-shrink:0;overflow:hidden}
.gv-credit .gv-mk::after{content:'';position:absolute;inset:-50%;
  background:conic-gradient(from 0deg,transparent 0deg,var(--blue-light) 70deg,transparent 140deg);
  animation:gv-spin 3.6s linear infinite}
.gv-credit .gv-mk::before{content:'';position:absolute;inset:2px;background:var(--ink);border-radius:5px;z-index:1}
.gv-credit .gv-glyph{position:relative;z-index:2;width:70%;height:70%;background:currentColor;display:block;
  -webkit-mask:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii01LjAwIC01LjIwIDE5MC4wMCAxMTAuNDAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iR09WQSBtYXJrIj4KICA8cGF0aCBmaWxsPSIjMEUwRTEwIiBzdHJva2U9IiMwRTBFMTAiIHN0cm9rZS13aWR0aD0iMCIgb3BhY2l0eT0iMSIgZD0iTSA0OC41IDEgTCA5OC41IDEgTCA5OS4yIDEuNSBMIDk5LjIgMTguOSBMIDk4LjMgMjAgTCA1MC41IDIwIEwgNTAuMyAyMC4yIEwgNDguNSAyMC40IEwgNDcuNSAyMSBMIDQzLjUgMjEuMiBMIDM5LjcgMjIuNiBMIDM4LjcgMjIuNiBMIDM4LjEgMjIuOCBMIDM2LjkgMjMuOCBMIDM1LjkgMjQuMiBMIDM1LjMgMjQuOCBMIDMyLjkgMjYuMiBMIDMxLjcgMjcuMiBMIDMxLjEgMjcuNCBMIDI4LjYgMjkuNyBMIDI2LjIgMzMuMSBMIDI0LjggMzUuNSBMIDIzLjIgMzcuNSBMIDIyLjggMzguNSBMIDIyLjggMzkuNyBMIDIyLjIgNDAuOSBMIDIyLjIgNDEuNSBMIDIxLjQgNDMuNyBMIDIxLjIgNDcuNyBMIDIwLjggNDguMyBMIDIwLjYgNDkuOSBMIDIwLjQgNTAuMSBMIDIwLjQgNzcuNyBMIDIwLjIgNzguMyBMIDE5LjUgNzkgTCAxNi45IDc5IFEgMTYuNyA3OS40IDE1LjkgNzkuMiBMIDE1LjcgNzkgTCA4LjEgNzkgTCA3LjkgNzkuMiBMIDYuNSA3OS4yIEwgNi4zIDc5IEwgNC4zIDc5IFEgNC4wNSA3OS40NSAzLjEgNzkuMiBMIDIuOSA3OSBMIDEuNSA3OSBMIDEuMiA3OC43IEwgMSA3OC4xIEwgMSA0OC45IEwgMS42IDQ3LjUgTCAxLjggNDUuOSBMIDIuMiA0NC45IFEgMiA0NC4xIDIuNCA0My45IEwgMi40IDM5LjkgTCAyLjYgMzkuNyBMIDIuOCAzOC4xIEwgMy40IDM2LjcgTCAzLjYgMzUuMSBMIDMuOCAzNC45IEwgMy44IDM0LjEgTCA0LjIgMzIuOSBMIDUgMzEuOSBMIDUuNiAzMC4xIEwgOCAyNi4xIEwgOC42IDI0LjkgTCA4LjYgMjQuNSBRIDkuNjEgMjMuMjEgMTAuMiAyMS41IEwgMTUuNSAxNiBMIDE2IDE1LjcgTCAxOC45IDEyLjYgTCAyMCAxMS43IEwgMjEuMSAxMC40IEwgMjMuMSA5LjQgTCAyNC4xIDguNiBMIDI1LjMgOC4yIFEgMjYuODEgNy4wMSAyOC45IDYuNCBMIDI5LjkgNS42IEwgMzEuNyA1IEwgMzIuOSA0IEwgMzMuNSA0IEwgMzUuMyAzLjIgTCAzNy41IDMgTCAzOS43IDIuMiBMIDQ0LjMgMiBMIDQ0LjUgMS44IEwgNDUuNSAxLjggTCA0Ni43IDEuNCBMIDQ3LjUgMS40IEwgNDguNSAxIFogIj48L3BhdGg+CiAgPHBhdGggZmlsbD0iIzBFMEUxMCIgc3Ryb2tlPSIjMEUwRTEwIiBzdHJva2Utd2lkdGg9IjAiIG9wYWNpdHk9IjEiIGQ9Ik0gNDIuMyA0MCBMIDc3LjkgNDAgTCA3OC4xIDQwLjIgTCA3OS41IDQwLjIgTCA5Ni4yIDU2LjUgTCA5OC4zIDU4LjggUSA5OC43NSA1OC42NSA5OC42IDU5LjEgTCA5OS4yIDU5LjkgTCA5OS4yIDk4LjEgTCA5OC41IDk5IEwgOTguMSA5OS4yIEwgODEuMSA5OS4yIEwgODAuMiA5OC41IEwgODAgOTcuOSBMIDgwIDk2LjkgUSA4MC4zNSA5Ni43NSA4MC4yIDk2LjEgTCA4MCA5NS45IEwgODAgNjMuNSBMIDgwLjIgNjMuMyBMIDgwLjIgNjEuNSBMIDc5LjUgNjAuNiBMIDc5LjEgNjAuNiBMIDc4LjEgNjEuMiBMIDc0LjggNjQuNSBMIDc0LjMgNjUuMiBMIDQ3LjggOTEuNSBMIDQ3LjUgOTIgTCA0My4xIDk2LjIgTCA0Mi44IDk2LjIgTCA0Mi44IDk2LjUgTCA0MC45IDk4LjQgTCAzOS43IDk5LjIgTCAyMi4xIDk5LjIgTCAyMS4yIDk4LjggTCAyMC44IDk3LjcgTCAyMC44IDk2LjUgTCAyMSA5Ni4zIEwgMjEgODAuNyBMIDIxLjUgODAgTCAyMS45IDc5LjggTCAzMS4zIDc5LjggTCAzMi43IDc5IEwgNDAgNzEuOSBMIDQ4LjkgNjIuOCBMIDUwLjQgNjEuNSBMIDUwLjggNjAuOSBMIDUwLjggNjAuMSBMIDUwLjEgNTkuNiBMIDQ1LjUgNTkuNiBRIDQ1LjMgNjAgNDQuNSA1OS44IEwgNDQuMyA1OS42IEwgNDEuOSA1OS42IEwgNDAuOCA1OC43IEwgNDAuNCA1Ny43IEwgNDAuNCA1NS43IEwgNDAuNiA1NS41IEwgNDAuNiA0Ny4xIEwgNDAuNCA0Ni45IEwgNDAuNCA0MS43IEwgNDEuMyA0MC40IEwgNDIuMyA0MCBaICI+PC9wYXRoPgogIDxwYXRoIGZpbGw9IiMwMDQ2RkYiIHN0cm9rZT0iIzAwNDZGRiIgc3Ryb2tlLXdpZHRoPSIwIiBvcGFjaXR5PSIxIiBkPSJNIDEyMC4xIDAuOCBMIDE3Ny43IDAuOCBMIDE3OC40IDEuMyBRIDE3OC4yNSAxLjk1IDE3OC42IDIuMSBMIDE3OC42IDQuMSBMIDE3OC44IDQuMyBMIDE3OC44IDYuMyBMIDE3OSA2LjcgTCAxNzguOCA2LjkgTCAxNzguOCAxOS43IFEgMTc4LjQgMTkuOSAxNzguNiAyMC43IEwgMTc4LjggMjAuOSBMIDE3OC44IDQ4LjcgTCAxNzkgNDguOSBMIDE3OSA1MS4zIEwgMTc4LjggNTEuNSBMIDE3OC44IDU2LjUgTCAxNzkgNTYuNyBMIDE3OSA1Ny45IEwgMTc4LjQgNTkuMyBMIDE3Ny43IDYwIEwgMTc2LjkgNjAuNCBMIDE3NS45IDYwLjQgTCAxNzUuNyA2MC4yIEwgMTU5LjEgNjAuMiBMIDE1OC40IDU5LjUgTCAxNTggNTguNSBMIDE1OCA1Ni43IEwgMTU3LjggNTYuNSBMIDE1Ny44IDUwLjcgTCAxNTggNTAuNSBMIDE1OCA0OS4xIEwgMTU3LjggNDguOSBMIDE1Ny44IDQ1LjkgTCAxNTggNDUuNyBMIDE1OCA0MC45IEwgMTU3LjUgNDAuNCBMIDE0MC41IDQwLjQgTCAxNDAuMyA0MC4yIEwgMTM5LjIgNDAuMiBMIDEzOS4yIDQ2LjUgTCAxMzkgNDYuNyBMIDEzOSA0Ny45IEwgMTM5LjIgNDguMSBMIDEzOS4yIDU2LjUgTCAxMzkuNCA1Ni43IEwgMTM5LjQgNTguMSBMIDEzOC41IDU5LjggTCAxMzYuOSA2MC42IEwgMTM1LjkgNjAuNiBMIDEzNS43IDYwLjQgTCAxMjAuMyA2MC40IEwgMTE5LjcgNjAuMiBMIDExOS4yIDU5LjcgTCAxMTguOCA1OC43IEwgMTE4LjggNTcuNSBMIDExOC42IDU3LjMgTCAxMTguNiA1NS41IEwgMTE4LjggNTUuMyBMIDExOC44IDQ4LjcgTCAxMTguNiA0OC41IEwgMTE4LjYgNDYuOSBMIDExOC44IDQ2LjcgTCAxMTguOCA0MS43IFEgMTE5LjI1IDQxLjQ1IDExOSA0MC41IEwgMTE5LjcgMzkuOCBMIDEyMC45IDM5LjIgTCAxMjEuMSAzOS40IEwgMTI0LjMgMzkuNCBMIDEyNC41IDM5LjIgTCAxMjcuMyAzOS4yIFEgMTI3LjUgMzkuNiAxMjguMyAzOS40IEwgMTI4LjUgMzkuMiBMIDEzMy4xIDM5LjIgTCAxMzMuMyAzOS40IEwgMTM2LjkgMzkuNCBMIDEzNy4xIDM5LjYgTCAxMzguNiAzOS42IEwgMTM4LjYgMzQuOSBMIDEzOC40IDM0LjcgTCAxMzguNCAzMi4zIEwgMTM4LjYgMzIuMSBMIDEzOC42IDIyLjMgTCAxMzguNCAyMi4xIEwgMTM4LjIgMjAuOSBMIDEzNy45IDIwLjYgTCAxMzAuNSAyMC42IEwgMTMwLjMgMjAuNCBMIDEyNC43IDIwLjQgTCAxMjQuNSAyMC42IEwgMTIyLjcgMjAuNiBMIDEyMi41IDIwLjQgTCAxMjAuMyAyMC40IEwgMTE5LjcgMjAuMiBMIDExOS4yIDE5LjcgTCAxMTguOCAxOC43IEwgMTE4LjggNC41IEwgMTE5IDQuMyBMIDExOSAyLjMgUSAxMTkuMzUgMi4xNSAxMTkuMiAxLjUgTCAxMTkuNyAxIEwgMTIwLjEgMC44IFogIj48L3BhdGg+PC9zdmc+') no-repeat center/contain;mask:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii01LjAwIC01LjIwIDE5MC4wMCAxMTAuNDAiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iR09WQSBtYXJrIj4KICA8cGF0aCBmaWxsPSIjMEUwRTEwIiBzdHJva2U9IiMwRTBFMTAiIHN0cm9rZS13aWR0aD0iMCIgb3BhY2l0eT0iMSIgZD0iTSA0OC41IDEgTCA5OC41IDEgTCA5OS4yIDEuNSBMIDk5LjIgMTguOSBMIDk4LjMgMjAgTCA1MC41IDIwIEwgNTAuMyAyMC4yIEwgNDguNSAyMC40IEwgNDcuNSAyMSBMIDQzLjUgMjEuMiBMIDM5LjcgMjIuNiBMIDM4LjcgMjIuNiBMIDM4LjEgMjIuOCBMIDM2LjkgMjMuOCBMIDM1LjkgMjQuMiBMIDM1LjMgMjQuOCBMIDMyLjkgMjYuMiBMIDMxLjcgMjcuMiBMIDMxLjEgMjcuNCBMIDI4LjYgMjkuNyBMIDI2LjIgMzMuMSBMIDI0LjggMzUuNSBMIDIzLjIgMzcuNSBMIDIyLjggMzguNSBMIDIyLjggMzkuNyBMIDIyLjIgNDAuOSBMIDIyLjIgNDEuNSBMIDIxLjQgNDMuNyBMIDIxLjIgNDcuNyBMIDIwLjggNDguMyBMIDIwLjYgNDkuOSBMIDIwLjQgNTAuMSBMIDIwLjQgNzcuNyBMIDIwLjIgNzguMyBMIDE5LjUgNzkgTCAxNi45IDc5IFEgMTYuNyA3OS40IDE1LjkgNzkuMiBMIDE1LjcgNzkgTCA4LjEgNzkgTCA3LjkgNzkuMiBMIDYuNSA3OS4yIEwgNi4zIDc5IEwgNC4zIDc5IFEgNC4wNSA3OS40NSAzLjEgNzkuMiBMIDIuOSA3OSBMIDEuNSA3OSBMIDEuMiA3OC43IEwgMSA3OC4xIEwgMSA0OC45IEwgMS42IDQ3LjUgTCAxLjggNDUuOSBMIDIuMiA0NC45IFEgMiA0NC4xIDIuNCA0My45IEwgMi40IDM5LjkgTCAyLjYgMzkuNyBMIDIuOCAzOC4xIEwgMy40IDM2LjcgTCAzLjYgMzUuMSBMIDMuOCAzNC45IEwgMy44IDM0LjEgTCA0LjIgMzIuOSBMIDUgMzEuOSBMIDUuNiAzMC4xIEwgOCAyNi4xIEwgOC42IDI0LjkgTCA4LjYgMjQuNSBRIDkuNjEgMjMuMjEgMTAuMiAyMS41IEwgMTUuNSAxNiBMIDE2IDE1LjcgTCAxOC45IDEyLjYgTCAyMCAxMS43IEwgMjEuMSAxMC40IEwgMjMuMSA5LjQgTCAyNC4xIDguNiBMIDI1LjMgOC4yIFEgMjYuODEgNy4wMSAyOC45IDYuNCBMIDI5LjkgNS42IEwgMzEuNyA1IEwgMzIuOSA0IEwgMzMuNSA0IEwgMzUuMyAzLjIgTCAzNy41IDMgTCAzOS43IDIuMiBMIDQ0LjMgMiBMIDQ0LjUgMS44IEwgNDUuNSAxLjggTCA0Ni43IDEuNCBMIDQ3LjUgMS40IEwgNDguNSAxIFogIj48L3BhdGg+CiAgPHBhdGggZmlsbD0iIzBFMEUxMCIgc3Ryb2tlPSIjMEUwRTEwIiBzdHJva2Utd2lkdGg9IjAiIG9wYWNpdHk9IjEiIGQ9Ik0gNDIuMyA0MCBMIDc3LjkgNDAgTCA3OC4xIDQwLjIgTCA3OS41IDQwLjIgTCA5Ni4yIDU2LjUgTCA5OC4zIDU4LjggUSA5OC43NSA1OC42NSA5OC42IDU5LjEgTCA5OS4yIDU5LjkgTCA5OS4yIDk4LjEgTCA5OC41IDk5IEwgOTguMSA5OS4yIEwgODEuMSA5OS4yIEwgODAuMiA5OC41IEwgODAgOTcuOSBMIDgwIDk2LjkgUSA4MC4zNSA5Ni43NSA4MC4yIDk2LjEgTCA4MCA5NS45IEwgODAgNjMuNSBMIDgwLjIgNjMuMyBMIDgwLjIgNjEuNSBMIDc5LjUgNjAuNiBMIDc5LjEgNjAuNiBMIDc4LjEgNjEuMiBMIDc0LjggNjQuNSBMIDc0LjMgNjUuMiBMIDQ3LjggOTEuNSBMIDQ3LjUgOTIgTCA0My4xIDk2LjIgTCA0Mi44IDk2LjIgTCA0Mi44IDk2LjUgTCA0MC45IDk4LjQgTCAzOS43IDk5LjIgTCAyMi4xIDk5LjIgTCAyMS4yIDk4LjggTCAyMC44IDk3LjcgTCAyMC44IDk2LjUgTCAyMSA5Ni4zIEwgMjEgODAuNyBMIDIxLjUgODAgTCAyMS45IDc5LjggTCAzMS4zIDc5LjggTCAzMi43IDc5IEwgNDAgNzEuOSBMIDQ4LjkgNjIuOCBMIDUwLjQgNjEuNSBMIDUwLjggNjAuOSBMIDUwLjggNjAuMSBMIDUwLjEgNTkuNiBMIDQ1LjUgNTkuNiBRIDQ1LjMgNjAgNDQuNSA1OS44IEwgNDQuMyA1OS42IEwgNDEuOSA1OS42IEwgNDAuOCA1OC43IEwgNDAuNCA1Ny43IEwgNDAuNCA1NS43IEwgNDAuNiA1NS41IEwgNDAuNiA0Ny4xIEwgNDAuNCA0Ni45IEwgNDAuNCA0MS43IEwgNDEuMyA0MC40IEwgNDIuMyA0MCBaICI+PC9wYXRoPgogIDxwYXRoIGZpbGw9IiMwMDQ2RkYiIHN0cm9rZT0iIzAwNDZGRiIgc3Ryb2tlLXdpZHRoPSIwIiBvcGFjaXR5PSIxIiBkPSJNIDEyMC4xIDAuOCBMIDE3Ny43IDAuOCBMIDE3OC40IDEuMyBRIDE3OC4yNSAxLjk1IDE3OC42IDIuMSBMIDE3OC42IDQuMSBMIDE3OC44IDQuMyBMIDE3OC44IDYuMyBMIDE3OSA2LjcgTCAxNzguOCA2LjkgTCAxNzguOCAxOS43IFEgMTc4LjQgMTkuOSAxNzguNiAyMC43IEwgMTc4LjggMjAuOSBMIDE3OC44IDQ4LjcgTCAxNzkgNDguOSBMIDE3OSA1MS4zIEwgMTc4LjggNTEuNSBMIDE3OC44IDU2LjUgTCAxNzkgNTYuNyBMIDE3OSA1Ny45IEwgMTc4LjQgNTkuMyBMIDE3Ny43IDYwIEwgMTc2LjkgNjAuNCBMIDE3NS45IDYwLjQgTCAxNzUuNyA2MC4yIEwgMTU5LjEgNjAuMiBMIDE1OC40IDU5LjUgTCAxNTggNTguNSBMIDE1OCA1Ni43IEwgMTU3LjggNTYuNSBMIDE1Ny44IDUwLjcgTCAxNTggNTAuNSBMIDE1OCA0OS4xIEwgMTU3LjggNDguOSBMIDE1Ny44IDQ1LjkgTCAxNTggNDUuNyBMIDE1OCA0MC45IEwgMTU3LjUgNDAuNCBMIDE0MC41IDQwLjQgTCAxNDAuMyA0MC4yIEwgMTM5LjIgNDAuMiBMIDEzOS4yIDQ2LjUgTCAxMzkgNDYuNyBMIDEzOSA0Ny45IEwgMTM5LjIgNDguMSBMIDEzOS4yIDU2LjUgTCAxMzkuNCA1Ni43IEwgMTM5LjQgNTguMSBMIDEzOC41IDU5LjggTCAxMzYuOSA2MC42IEwgMTM1LjkgNjAuNiBMIDEzNS43IDYwLjQgTCAxMjAuMyA2MC40IEwgMTE5LjcgNjAuMiBMIDExOS4yIDU5LjcgTCAxMTguOCA1OC43IEwgMTE4LjggNTcuNSBMIDExOC42IDU3LjMgTCAxMTguNiA1NS41IEwgMTE4LjggNTUuMyBMIDExOC44IDQ4LjcgTCAxMTguNiA0OC41IEwgMTE4LjYgNDYuOSBMIDExOC44IDQ2LjcgTCAxMTguOCA0MS43IFEgMTE5LjI1IDQxLjQ1IDExOSA0MC41IEwgMTE5LjcgMzkuOCBMIDEyMC45IDM5LjIgTCAxMjEuMSAzOS40IEwgMTI0LjMgMzkuNCBMIDEyNC41IDM5LjIgTCAxMjcuMyAzOS4yIFEgMTI3LjUgMzkuNiAxMjguMyAzOS40IEwgMTI4LjUgMzkuMiBMIDEzMy4xIDM5LjIgTCAxMzMuMyAzOS40IEwgMTM2LjkgMzkuNCBMIDEzNy4xIDM5LjYgTCAxMzguNiAzOS42IEwgMTM4LjYgMzQuOSBMIDEzOC40IDM0LjcgTCAxMzguNCAzMi4zIEwgMTM4LjYgMzIuMSBMIDEzOC42IDIyLjMgTCAxMzguNCAyMi4xIEwgMTM4LjIgMjAuOSBMIDEzNy45IDIwLjYgTCAxMzAuNSAyMC42IEwgMTMwLjMgMjAuNCBMIDEyNC43IDIwLjQgTCAxMjQuNSAyMC42IEwgMTIyLjcgMjAuNiBMIDEyMi41IDIwLjQgTCAxMjAuMyAyMC40IEwgMTE5LjcgMjAuMiBMIDExOS4yIDE5LjcgTCAxMTguOCAxOC43IEwgMTE4LjggNC41IEwgMTE5IDQuMyBMIDExOSAyLjMgUSAxMTkuMzUgMi4xNSAxMTkuMiAxLjUgTCAxMTkuNyAxIEwgMTIwLjEgMC44IFogIj48L3BhdGg+PC9zdmc+') no-repeat center/contain;
  transition:transform .4s cubic-bezier(.7,0,.3,1)}
.gv-credit:active .gv-glyph{transform:rotate(360deg)}
.gv-credit .gv-stack{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;line-height:1}
.gv-credit .gv-by{font-family:var(--mono,ui-monospace,monospace);font-size:8.5px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint);
  display:inline-flex;align-items:center;justify-content:center;gap:4px}
.gv-credit .gv-dot{width:5px;height:5px;border-radius:50%;background:var(--blue);
  animation:gv-pulse 1.6s ease-in-out infinite}
.gv-credit .gv-nm{font-weight:800;font-size:13px;letter-spacing:-.02em}
.gv-credit:focus-visible{outline:3px solid rgba(0,52,191,.38);outline-offset:3px}
/* RTL: no flex-direction override. An RTL container ALREADY lays flex items
   right-to-left; adding row-reverse double-flips and un-mirrors the badge.
   Verified in Chromium: with row-reverse the mark stayed on the left in Arabic. */
.login .gv-credit{margin-top:26px;align-self:center}
@keyframes gv-spin{to{transform:rotate(360deg)}}
@keyframes gv-pulse{0%,100%{box-shadow:0 0 0 0 currentColor;opacity:1}50%{box-shadow:0 0 0 4px transparent;opacity:.4}}
@media (prefers-reduced-motion:reduce){.gv-credit .gv-mk::after,.gv-credit .gv-dot{animation:none!important}
  .gv-credit:active .gv-glyph{transform:none}}


/* Live-server indicator in the top bar. */
.chip.srv{display:inline-flex;align-items:center;gap:5px;background:var(--ok-soft);color:var(--ok);
  border-color:transparent;font-weight:700;letter-spacing:.02em}
.chip.srv .sdot{width:6px;height:6px;border-radius:50%;background:var(--ok);
  animation:gv-pulse 1.6s ease-in-out infinite;flex:0 0 auto}
@media (prefers-reduced-motion:reduce){.chip.srv .sdot{animation:none}}
