/* ============================================================
   BIJLI MITRA
   Palette taken off the IEEMA wordmark: the logo runs amber to
   orange to red left-to-right, so that gradient carries brand
   moments and solid orange carries actions. Neutrals are warm-
   shifted to sit under it. Danger is a deeper crimson than the
   logo red, so a warning never reads as a brand flourish.
   ============================================================ */
:root{
  --amber:#F9A01B;
  --orange:#F26522;
  --orange-d:#D9541A;
  --red:#E8232A;
  --grad:linear-gradient(102deg,#F9A01B 0%,#F26522 52%,#E8232A 100%);

  --tint:#FDECE3;
  --tint-2:#FEF7EF;
  --gold-bg:#FFF3D6;
  --gold-ink:#8A5A00;

  --ink:#171717;
  --ink-2:#6E6862;
  --ink-3:#A9A29C;
  --line:#E7E0DA;
  --surface:#FAF8F6;
  --white:#FFFFFF;

  --danger:#C1121F;
  --danger-bg:#FBE9EA;
  --ok:#1E7A4F;
  --ok-bg:#E7F3EC;

  --r-sm:4px; --r:8px; --r-md:10px; --r-lg:14px; --r-pill:30px;
  --gap:10px;
  --pad:16px;
  --dock:76px;
  --shadow:0 1px 2px rgba(23,23,23,.05), 0 10px 28px rgba(120,60,20,.10);
}
*{box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:'Manjari', system-ui, -apple-system, sans-serif;
  color:var(--ink);
  background:#EFEAE5;
  font-size:14px; line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit; color:inherit}
button{background:none; border:0; cursor:pointer}
a{color:var(--orange)}
:focus-visible{outline:2px solid var(--orange); outline-offset:2px; border-radius:var(--r-sm)}

/* ---------- device shell ---------- */
#shell{
  width:100%; max-width:412px; margin:0 auto;
  min-height:100vh; min-height:100dvh;
  background:var(--white);
  display:flex; flex-direction:column;
  position:relative; overflow:hidden;
}
@media (min-width:900px){
  body{padding:26px 0; background:#E9E3DD}
  #shell{
    width:412px; height:min(880px, calc(100vh - 52px)); min-height:0;
    border-radius:26px; box-shadow:var(--shadow);
  }
}

/* ---------- chrome ---------- */
#top{flex:none}
.appbar{
  padding:14px var(--pad) 12px;
  display:flex; align-items:center; gap:var(--gap);
}
.avatar{
  width:38px; height:38px; border-radius:50%; flex:none;
  background:var(--grad); color:var(--white);
  display:grid; place-items:center; font-size:14px; font-weight:700;
}
.who{flex:1; min-width:0}
.who b{display:block; font-size:14px; font-weight:700; line-height:1.25}
.who span{display:block; font-size:10px; color:var(--ink-2); line-height:1.4}
.iconbtn{
  width:34px; height:34px; border-radius:var(--r); flex:none;
  background:var(--surface); border:1px solid var(--line);
  display:grid; place-items:center; position:relative;
}
.iconbtn .dot{
  position:absolute; top:6px; right:7px; width:7px; height:7px;
  border-radius:50%; background:var(--red); border:1.5px solid var(--white);
}
.screen-title{padding:16px var(--pad) 10px}
.screen-title h2{font-size:22px; font-weight:700; letter-spacing:-.015em; line-height:1.15}
.screen-title p{font-size:12px; color:var(--ink-2); margin-top:2px}
.backbar{
  padding:12px var(--pad) 8px; display:flex; align-items:center; gap:10px;
}
.backbar b{font-size:16px; font-weight:700; flex:1; line-height:1.25}
.back{
  width:34px; height:34px; border-radius:var(--r); flex:none;
  border:1px solid var(--line); background:var(--white);
  display:grid; place-items:center;
}

/* ---------- scroll body ---------- */
#view{
  flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:0 var(--pad) calc(var(--dock) + 28px);
  display:flex; flex-direction:column; gap:18px;
}
/* Children must keep their natural height and let the column scroll.
   Without this, a shell with a fixed height squashes every card. */
#view > *{ flex:0 0 auto }
#top, #dock{ flex:0 0 auto }
#view.plain{padding-bottom:28px}
.pad-top{padding-top:2px}

/* ---------- sections ---------- */
.sec{display:flex; flex-direction:column; gap:var(--gap)}
.sec-head{display:flex; align-items:center; justify-content:space-between; gap:10px}
.sec-head h3{font-size:14px; font-weight:700}
.sec-head button{
  display:flex; align-items:center; gap:2px;
  font-size:10px; color:var(--orange); font-weight:700;
}
.lede{font-size:12px; color:var(--ink-2); line-height:1.55}

/* ---------- buttons ---------- */
.btn{
  font-size:13px; font-weight:700;
  background:var(--orange); color:var(--white);
  border-radius:var(--r-pill); padding:10px 20px;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
.btn:active{background:var(--orange-d)}
.btn.wide{width:100%; padding:14px; border-radius:var(--r); font-size:14px}
.btn.ghost{background:var(--tint); color:var(--orange-d)}
.btn.line{background:var(--white); border:1px solid var(--line); color:var(--ink)}
.btn.grad{background:var(--grad)}
.btn.sm{padding:7px 15px; font-size:12px}
.btn[disabled]{opacity:.45}
.btn.danger{background:var(--danger)}

/* ---------- hero: ask bijli mitra ---------- */
.ask-hero{
  background:var(--grad); border-radius:var(--r-lg);
  padding:16px; color:var(--white);
  display:flex; align-items:center; gap:14px;
  width:100%; text-align:left; position:relative; overflow:hidden;
}
.ask-hero .mic{
  width:54px; height:54px; border-radius:50%; flex:none;
  background:rgba(255,255,255,.94); color:var(--orange-d);
  display:grid; place-items:center;
  box-shadow:0 3px 10px rgba(120,40,0,.22);
}
.ask-hero .tx{flex:1; min-width:0}
.ask-hero .tx b{display:block; font-size:16px; font-weight:700; line-height:1.2}
.ask-hero .tx span{display:block; font-size:11px; opacity:.9; margin-top:3px; line-height:1.4}
.ask-hero .go{flex:none; opacity:.85}

/* ---------- daily goal ---------- */
.goal{
  border:0; border-radius:var(--r-md);
  padding:15px; display:flex; align-items:center; gap:14px;
  background:var(--tint-2);
}
.goal .fig{flex:1}
.goal .pts{font-size:26px; font-weight:700; line-height:1; letter-spacing:-.02em}
.goal .pts small{font-size:13px; font-weight:400; color:var(--ink-2)}
.goal .cap{font-size:11px; color:var(--ink-2); margin-top:5px}
.streak{
  display:inline-flex; align-items:center; gap:4px; margin-top:9px;
  background:var(--gold-bg); color:var(--gold-ink);
  border-radius:var(--r-pill); padding:3px 9px; font-size:10px; font-weight:700;
}

/* ---------- kpi tiles ---------- */
.kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap)}
.kpi{border:1px solid var(--line); border-radius:var(--r); padding:9px 10px}
.kpi b{display:block; font-size:16px; font-weight:700; line-height:1.1}
.kpi span{display:block; font-size:10px; color:var(--ink-2); margin-top:2px}
.bar{height:4px; border-radius:2px; background:var(--line); margin-top:7px; overflow:hidden}
.bar i{display:block; height:100%; background:var(--orange); border-radius:2px}
.bar.ok i{background:var(--ok)}

/* ---------- chips ---------- */
.chips{display:flex; gap:var(--gap); overflow-x:auto; padding-bottom:2px;
  scrollbar-width:none; flex:0 0 auto}
.chips > *{flex:0 0 auto}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:none; padding:8px 14px; border-radius:var(--r-pill);
  background:var(--tint-2); border:0;
  font-size:11px; color:var(--ink-2); white-space:nowrap; line-height:1.3;
}
.chip.on{background:var(--tint); color:var(--orange-d); font-weight:700}

/* ---------- generic card ---------- */
.card{border:1px solid var(--line); border-radius:var(--r); padding:12px}
.card.flat{background:var(--surface); border-color:transparent}
.card-row{display:flex; align-items:flex-start; gap:10px}
.card-row .t{flex:1; min-width:0}
.card-row .t b{display:block; font-size:13px; font-weight:700; line-height:1.3}
.card-row .t span{display:block; font-size:10px; color:var(--ink-2); margin-top:3px}
.pts-tag{
  flex:none; background:var(--gold-bg); color:var(--gold-ink);
  border-radius:var(--r-sm); padding:3px 7px; font-size:10px; font-weight:700;
}
.row-end{display:flex; align-items:center; justify-content:space-between; gap:10px}
.meta{font-size:10px; color:var(--ink-2)}
.pips{display:flex; gap:5px}
.pips i{flex:1; height:5px; border-radius:3px; background:var(--line)}
.pips i.done{background:var(--orange)}

/* ---------- video rail ---------- */
.rail{display:flex; gap:var(--gap); overflow-x:auto; scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.vid{flex:none; width:152px; text-align:left}
.vid .thumb{
  height:90px; border-radius:var(--r); background:var(--tint);
  display:grid; place-items:center; position:relative; overflow:hidden;
}
.vid .thumb .dur{
  position:absolute; right:6px; bottom:6px; background:rgba(23,23,23,.8);
  color:#fff; font-size:9px; border-radius:var(--r-sm); padding:2px 5px;
}
.vid .thumb .seen{
  position:absolute; left:6px; top:6px; width:18px; height:18px;
  border-radius:50%; background:var(--ok); color:#fff; display:grid; place-items:center;
}
.vid b{display:block; font-size:11px; font-weight:700; line-height:1.35; margin-top:7px}
.vid span{display:block; font-size:9px; color:var(--ink-2); margin-top:3px}

/* ---------- article rows ---------- */
.arts{display:flex; flex-direction:column}
.art-row{
  display:flex; gap:var(--gap); padding:13px 0; align-items:flex-start;
  border-bottom:1px solid var(--line); text-align:left; width:100%;
}
.art-row:last-child{border-bottom:0}
.art-row .th{
  width:60px; height:60px; flex:none; border-radius:var(--r);
  background:var(--surface); display:grid; place-items:center; color:var(--ink-3);
}
.art-row .tx{flex:1; min-width:0}
.art-row .tx b{display:block; font-size:12px; font-weight:700; line-height:1.35; margin-top:5px}
.art-row .tx .m{display:block; font-size:10px; color:var(--ink-2); margin-top:4px}
.tag{
  display:inline-block; background:var(--tint); color:var(--orange-d);
  border-radius:var(--r-sm); padding:2px 7px; font-size:9px; font-weight:700;
}
.tag.warn{background:var(--gold-bg); color:var(--gold-ink)}
.tag.danger{background:var(--danger-bg); color:var(--danger)}
.tag.ok{background:var(--ok-bg); color:var(--ok)}
.tick{
  flex:none; width:18px; height:18px; border-radius:50%;
  background:var(--ok); color:#fff; display:grid; place-items:center;
}

/* ---------- feature card ---------- */
.feature{border:1px solid var(--line); border-radius:var(--r); overflow:hidden; text-align:left; width:100%}
.feature .art{height:126px; background:var(--tint); display:grid; place-items:center; position:relative}
.feature .art .tag{position:absolute; left:10px; top:10px; background:var(--white)}
.feature .fx{padding:12px}
.feature .fx b{display:block; font-size:14px; font-weight:700; line-height:1.3}
.feature .fx p{font-size:11px; color:var(--ink-2); margin-top:5px; line-height:1.45}

/* ---------- tools grid ---------- */
.tools{display:grid; grid-template-columns:1fr 1fr; gap:var(--gap)}
.tool{
  border:1px solid var(--line); border-radius:var(--r); padding:12px;
  display:flex; flex-direction:column; gap:8px; min-height:98px; text-align:left;
}
.tool .ic{
  width:32px; height:32px; border-radius:var(--r); display:grid; place-items:center;
  background:var(--tint); color:var(--orange-d);
}
.tool.alert .ic{background:var(--danger-bg); color:var(--danger)}
.tool b{font-size:12px; font-weight:700; line-height:1.3}
.tool span{font-size:10px; color:var(--ink-2); line-height:1.4}

/* ---------- forms ---------- */
.label{font-size:11px; font-weight:700; color:var(--ink-2); margin-bottom:6px; display:block}
.inp, select.inp, textarea.inp{
  width:100%; background:var(--white); border:1px solid var(--line);
  border-radius:var(--r); padding:13px 14px; font-size:14px;
}
.inp:focus{border-color:var(--orange); outline:none}
select.inp{appearance:none; background-image:none}
.field-row{display:flex; gap:var(--gap)}
.prefix{
  display:flex; align-items:center; gap:8px; padding:13px 14px;
  border:1px solid var(--line); border-radius:var(--r); background:var(--surface);
  font-size:14px; font-weight:700; flex:none;
}
.err{font-size:11px; color:var(--danger); font-weight:700}
.otp{display:flex; gap:10px; justify-content:space-between}
.otp input{
  width:100%; text-align:center; font-size:22px; font-weight:700;
  padding:12px 0; border:1px solid var(--line); border-radius:var(--r);
  background:var(--white);
}
.otp input:focus{border-color:var(--orange); outline:none}

/* ---------- auth ---------- */
#auth{
  flex:1; overflow-y:auto; padding:0 22px 30px;
  display:flex; flex-direction:column;
}
.brandmark{padding:46px 0 26px}
.brandmark .word{
  font-size:34px; font-weight:700; letter-spacing:-.02em; line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--orange);
}
.brandmark .tag-line{font-size:12px; color:var(--ink-2); margin-top:6px}
.auth-h{font-size:22px; font-weight:700; letter-spacing:-.015em; line-height:1.2}
.auth-p{font-size:13px; color:var(--ink-2); margin-top:6px; line-height:1.5; max-width:34ch}
.auth-form{margin-top:26px; display:flex; flex-direction:column; gap:16px}
.auth-foot{margin-top:auto; padding-top:26px; font-size:11px; color:var(--ink-3); line-height:1.5}
.demo-hint{
  background:var(--gold-bg); color:var(--gold-ink);
  border-radius:var(--r); padding:10px 12px; font-size:11px; font-weight:700;
}
.pick{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left;
  border:1px solid var(--line); border-radius:var(--r); padding:13px 14px;
}
.pick.on{border-color:var(--orange); background:var(--tint-2)}
.pick .rb{
  width:20px; height:20px; border-radius:50%; flex:none;
  border:2px solid var(--line); display:grid; place-items:center;
}
.pick.on .rb{border-color:var(--orange)}
.pick.on .rb i{width:10px; height:10px; border-radius:50%; background:var(--orange); display:block}
.pick .px{flex:1}
.pick .px b{display:block; font-size:14px; font-weight:700}
.pick .px span{display:block; font-size:10px; color:var(--ink-2); margin-top:1px}
.steps{display:flex; gap:6px; padding:0 0 4px}
.steps i{flex:1; height:4px; border-radius:2px; background:var(--line)}
.steps i.on{background:var(--orange)}

/* ---------- quiz ---------- */
.qwrap{display:flex; flex-direction:column; gap:16px}
.qtext{font-size:17px; font-weight:700; line-height:1.35}
.opts{display:flex; flex-direction:column; gap:var(--gap)}
.opt{
  width:100%; text-align:left; border:1px solid var(--line);
  border-radius:var(--r); padding:14px; font-size:14px;
  display:flex; align-items:center; gap:11px;
}
.opt .mk{
  width:22px; height:22px; border-radius:50%; flex:none;
  border:2px solid var(--line); display:grid; place-items:center; font-size:11px; font-weight:700;
}
.opt.sel{border-color:var(--orange); background:var(--tint-2)}
.opt.sel .mk{border-color:var(--orange); background:var(--orange); color:#fff}
.opt.right{border-color:var(--ok); background:var(--ok-bg)}
.opt.right .mk{border-color:var(--ok); background:var(--ok); color:#fff}
.opt.wrong{border-color:var(--danger); background:var(--danger-bg)}
.opt.wrong .mk{border-color:var(--danger); background:var(--danger); color:#fff}
.verdict{border-radius:var(--r); padding:12px; font-size:12px; line-height:1.5}
.verdict.good{background:var(--ok-bg); color:#12613C}
.verdict.bad{background:var(--danger-bg); color:var(--danger)}
.verdict b{display:block; margin-bottom:3px; font-size:13px}
.score-big{font-size:44px; font-weight:700; letter-spacing:-.03em; line-height:1}

/* ---------- chat ---------- */
#chatwrap{flex:1; display:flex; flex-direction:column; min-height:0}
#log{
  flex:1; overflow-y:auto; padding:6px var(--pad) 14px;
  display:flex; flex-direction:column; gap:12px;
}
.msg{max-width:86%; font-size:13px; line-height:1.5; border-radius:var(--r-lg); padding:11px 13px}
.msg.me{align-self:flex-end; background:var(--orange); color:#fff; border-bottom-right-radius:var(--r-sm)}
.msg.bot{align-self:flex-start; background:var(--surface); border:1px solid var(--line); border-bottom-left-radius:var(--r-sm)}
.msg.bot .src{display:block; font-size:10px; color:var(--ink-3); margin-top:7px}
.typing{display:flex; gap:4px; align-items:center}
.typing i{width:6px; height:6px; border-radius:50%; background:var(--ink-3); display:block; animation:blip 1.1s infinite}
.typing i:nth-child(2){animation-delay:.18s}
.typing i:nth-child(3){animation-delay:.36s}
@keyframes blip{0%,60%,100%{opacity:.28} 30%{opacity:1}}
#composer{
  flex:none; border-top:1px solid var(--line); background:var(--white);
  padding:10px var(--pad) 14px; display:flex; align-items:flex-end; gap:8px;
}
#composer textarea{
  flex:1; resize:none; max-height:96px; border:1px solid var(--line);
  border-radius:var(--r-pill); padding:12px 16px; font-size:14px; line-height:1.35;
}
#composer textarea:focus{border-color:var(--orange); outline:none}
.mic-btn, .send-btn{
  width:44px; height:44px; border-radius:50%; flex:none;
  display:grid; place-items:center;
}
.mic-btn{background:var(--surface); border:1px solid var(--line)}
.mic-btn.live{background:var(--red); color:#fff; border-color:var(--red)}
.send-btn{background:var(--orange); color:#fff}

/* ---------- redeem ---------- */
.balance{
  background:var(--grad); border-radius:var(--r-lg); padding:18px; color:#fff;
}
.balance .n{font-size:36px; font-weight:700; line-height:1; letter-spacing:-.02em}
.balance .c{font-size:12px; opacity:.9; margin-top:5px}
.balance .rate{
  margin-top:12px; background:rgba(255,255,255,.18); border-radius:var(--r);
  padding:8px 11px; font-size:11px; font-weight:700;
}
.vouchers{display:flex; flex-direction:column; gap:var(--gap)}
.vch{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left;
  border:1px solid var(--line); border-radius:var(--r); padding:12px;
}
.vch .lg{
  width:46px; height:46px; border-radius:var(--r); flex:none;
  display:grid; place-items:center; font-size:11px; font-weight:700;
  background:var(--surface); color:var(--ink);
}
.vch .vx{flex:1; min-width:0}
.vch .vx b{display:block; font-size:13px; font-weight:700}
.vch .vx span{display:block; font-size:10px; color:var(--ink-2); margin-top:2px}
.vch .cost{flex:none; text-align:right}
.vch .cost b{display:block; font-size:13px; font-weight:700; color:var(--orange-d)}
.vch .cost span{display:block; font-size:9px; color:var(--ink-2)}
.vch.locked{opacity:.5}
.code{
  font-family:ui-monospace, 'SF Mono', Menlo, monospace;
  font-size:17px; font-weight:700; letter-spacing:.12em;
  background:var(--surface); border:1px dashed var(--ink-3);
  border-radius:var(--r); padding:14px; text-align:center;
}
.done-mark{
  width:66px; height:66px; border-radius:50%; margin:0 auto;
  background:var(--ok-bg); color:var(--ok); display:grid; place-items:center;
}

/* ---------- profile ---------- */
.pcard{display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:var(--r); padding:14px}
.pcard .av{
  width:56px; height:56px; border-radius:50%; flex:none;
  background:var(--grad); color:#fff; display:grid; place-items:center;
  font-size:20px; font-weight:700;
}
.pcard .id{flex:1; min-width:0}
.pcard .id b{display:block; font-size:16px; font-weight:700}
.pcard .id span{display:block; font-size:10px; color:var(--ink-2); margin-top:2px}
.level{
  display:inline-flex; align-items:center; gap:4px; margin-top:7px;
  background:var(--tint); color:var(--orange-d);
  border-radius:var(--r-pill); padding:3px 9px; font-size:10px; font-weight:700;
}
.week{display:flex; gap:6px; align-items:flex-end; height:46px}
.week i{flex:1; border-radius:3px; background:var(--orange); display:block; min-height:4px}
.week i.off{background:var(--line)}
.wk-labels{display:flex; gap:6px}
.wk-labels span{flex:1; text-align:center; font-size:9px; color:var(--ink-3)}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:var(--gap)}
.stat{background:var(--surface); border-radius:var(--r); padding:12px}
.stat b{display:block; font-size:20px; font-weight:700; line-height:1}
.stat span{display:block; font-size:10px; color:var(--ink-2); margin-top:4px}
.cert{display:flex; align-items:center; gap:var(--gap); border:1px solid var(--line); border-radius:var(--r); padding:11px 12px}
.cert .sealed{
  width:34px; height:34px; border-radius:50%; flex:none;
  background:var(--gold-bg); color:var(--gold-ink); display:grid; place-items:center;
}
.cert.locked .sealed{background:var(--surface); color:var(--ink-3)}
.cert .cx{flex:1}
.cert .cx b{display:block; font-size:12px; font-weight:700}
.cert .cx span{display:block; font-size:10px; color:var(--ink-2); margin-top:2px}
.rows{display:flex; flex-direction:column}
.srow{
  display:flex; align-items:center; gap:var(--gap); width:100%; text-align:left;
  padding:13px 0; border-bottom:1px solid var(--line);
}
.srow:last-child{border-bottom:0}
.srow .ic{
  width:30px; height:30px; border-radius:var(--r); flex:none;
  background:var(--surface); color:var(--ink-2); display:grid; place-items:center;
}
.srow b{flex:1; font-size:13px; font-weight:400}
.srow em{font-style:normal; font-size:11px; color:var(--ink-2)}

/* ---------- gauge ---------- */
.gauge{display:block; margin:0 auto}

/* ---------- dock ---------- */
#dock{
  flex:none; height:var(--dock); border-top:1px solid var(--line);
  background:var(--white); position:relative;
  display:grid; grid-template-columns:1fr 1fr 76px 1fr 1fr;
  align-items:start; padding-top:11px;
}
.tab{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  color:var(--ink-3); font-size:9px; padding-top:1px;
}
.tab.on{color:var(--orange); font-weight:700}
#fab{
  position:absolute; left:50%; top:-23px; transform:translateX(-50%);
  width:60px; height:60px; border-radius:50%;
  background:var(--grad); color:#fff; display:grid; place-items:center;
  box-shadow:0 6px 18px rgba(226,90,20,.42); border:4px solid var(--white);
}
#fab:active{transform:translateX(-50%) scale(.95)}
.fab-cap{
  position:absolute; left:50%; transform:translateX(-50%); top:44px;
  font-size:9px; color:var(--orange); font-weight:700; white-space:nowrap;
}

/* ---------- toast / sheet / modal ---------- */
#toast{
  position:fixed; left:50%; bottom:calc(var(--dock) + 22px); transform:translateX(-50%) translateY(14px);
  background:var(--ink); color:#fff; font-size:12px; font-weight:700;
  padding:11px 18px; border-radius:var(--r-pill); z-index:90;
  opacity:0; pointer-events:none; transition:opacity .18s, transform .18s;
  max-width:88%; text-align:center;
}
#toast.up{opacity:1; transform:translateX(-50%) translateY(0)}
.scrim{
  position:absolute; inset:0; background:rgba(23,23,23,.45);
  z-index:70; display:flex; align-items:flex-end;
}
.sheet{
  width:100%; background:var(--white);
  border-radius:var(--r-lg) var(--r-lg) 0 0; padding:18px var(--pad) 22px;
  max-height:82%; overflow-y:auto;
}
.sheet-h{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px}
.sheet-h b{font-size:16px; font-weight:700}
.player{
  width:100%; background:var(--ink); border-radius:var(--r-lg) var(--r-lg) 0 0;
  padding:18px var(--pad) 22px; color:#fff;
}
.player .stage{
  height:170px; border-radius:var(--r); background:#000;
  display:grid; place-items:center; position:relative; overflow:hidden;
}
.player .stage .ring2{color:rgba(255,255,255,.9)}
.player b{display:block; font-size:14px; font-weight:700; margin-top:14px}
.player .tr{height:5px; border-radius:3px; background:rgba(255,255,255,.24); margin-top:12px; overflow:hidden}
.player .tr i{display:block; height:100%; background:var(--amber); border-radius:3px; transition:width .25s linear}
.player .pmeta{display:flex; justify-content:space-between; font-size:10px; opacity:.72; margin-top:7px}

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