/* Orra Pulse v3 · JC app · light theme, phone first, rounded everywhere, fluid motion */
:root{
  --bg:#F2F3F5; --surface:#FFFFFF; --sunk:#F5F6F8; --ink:#0D0D0D; --muted:#5E646D; --line:#E3E6EA;
  --accent:#0A8A57; --gold:#946500; --gold-bright:#D9A520; --gold-soft:#FBF0D3; --blue:#1F4E79; --blue-soft:#E4EDF6;
  --good:#0A8A57; --good-soft:#E3F4EA; --warn:#AD5A00; --warn-soft:#FDF0DE; --bad:#C62828; --bad-soft:#FCE6E6;
  --brand:#0D0D0D; --on-brand:#FFFFFF; --brand-2:#2B2D31; --gold-light:#F3D27A; --gold-mid:#E7C76A; --strip-bg:#F8EFD6; --strip-ink:#141414;
  --r-lg:16px; --r-md:12px; --r-sm:8px; --ease:cubic-bezier(.22,.9,.26,1);
  --font:"Manrope","Segoe UI",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg)}
body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none !important}
.app{max-width:520px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;background:var(--bg)}
.muted{color:var(--muted)}

/* ---------- sign in ---------- */
.gate{min-height:100vh;min-height:100dvh;background:var(--surface);padding:56px 24px 32px;display:flex;flex-direction:column}
.gate .logo{height:30px;align-self:flex-start}
.gate h1{font-size:26px;font-weight:800;margin:26px 0 6px}
.gate .muted{font-size:14px;line-height:1.5;margin-bottom:6px}
.gstep{display:flex;flex-direction:column}
.fld{display:block;margin-top:14px}
.fld > span{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;border:1.5px solid #C2C7CE;border-radius:var(--r-md);padding:13px 14px;font-size:17px;font-weight:700;background:#fff}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--ink)}
.fld small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
input.pin{letter-spacing:.6em;font-size:22px;text-align:center}
.err{display:block;background:var(--bad-soft);color:var(--bad);font-weight:700;font-size:13px;border-radius:var(--r-md);padding:9px 12px;margin-top:10px}
small.err{background:none;padding:0;margin-top:4px;font-size:11.5px;border-radius:0}
small.err:empty{display:none}
.okmsg{background:var(--good-soft);color:var(--good);font-weight:700;font-size:13.5px;border-radius:var(--r-md);padding:10px 12px;margin-top:12px}
.link{background:none;border:0;color:var(--muted);font-weight:700;font-size:13.5px;margin-top:14px;padding:8px;align-self:center;text-decoration:underline}
.demo-note{margin-top:auto;padding-top:24px;font-size:12.5px;color:var(--gold);font-weight:700;text-align:center}
.btn{background:var(--brand);color:var(--on-brand);border:0;border-radius:999px;padding:10px 16px;font-weight:800;font-size:13.5px;white-space:nowrap}
.btn.full{width:100%;padding:14px;margin-top:16px;font-size:15px}
.btn.ghost{background:var(--surface);color:var(--ink);border:1.5px solid var(--ink)}
.btn.sm{padding:6px 12px;font-size:12px}
.btn:disabled{opacity:.45;cursor:default}

/* ---------- header, ticker ---------- */
.top{display:flex;align-items:center;gap:10px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top img{height:20px}
.top .t{flex:1;min-width:0;line-height:1.25}
.top .t b{display:block;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .t small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar{width:38px;height:38px;border-radius:50%;border:2px solid var(--gold-bright);background:var(--brand);color:var(--on-brand);font-weight:800;font-size:13px;flex:none;padding:0;overflow:hidden;display:grid;place-items:center}
.avatar img{width:100%;height:100%;object-fit:cover}
.ticker{display:flex;align-items:center;width:calc(100% - 24px);margin:8px 12px 0;border:1px solid color-mix(in srgb,var(--gold-bright) 35%,transparent);border-radius:var(--r-md);background:var(--strip-bg);color:var(--strip-ink);padding:0;height:44px;overflow:hidden;text-align:left;position:sticky;top:70px;z-index:4;box-shadow:0 4px 14px rgba(0,0,0,.06)}
.tk-win{flex:1;height:100%;display:flex;align-items:center;overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%)}
.tk-run{display:inline-flex;align-items:center;padding-left:18px;animation:tk 30s linear infinite;font-size:15px;font-weight:700;will-change:transform}
.tk-run span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.tk-run i{font-style:normal;color:var(--gold-bright);font-size:10px;margin:0 20px;flex:none}
.ticker:active .tk-run,.ticker:focus .tk-run{animation-play-state:paused}
@keyframes tk{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.banner{background:var(--warn-soft);color:var(--warn);font-weight:700;font-size:13px;padding:9px 16px}
.banner.bad{background:var(--bad-soft);color:var(--bad)}

/* ---------- layout ---------- */
.scr{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
.upd{font-size:12px;color:var(--muted);padding:10px 16px 0;display:flex;align-items:center;gap:6px}
.upd:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--good);flex:none}
.upd.old:before{background:var(--warn)}
.sec{padding:12px 16px 0}
.sec.flat{padding-top:0}
.h{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--brand) 55%,var(--muted));margin:18px 16px 8px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.h a{color:var(--ink);text-transform:none;letter-spacing:0;font-size:12px;cursor:pointer}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px}
.card + .card{margin-top:10px}
.ct{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.ct b{font-size:14px}
.ct small{font-size:11.5px;color:var(--muted);font-weight:600;text-align:right}
.note{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:8px}
.legend{display:flex;gap:12px;font-size:11px;color:var(--muted);margin-top:8px;flex-wrap:wrap}
.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;background:var(--c)}
svg text{font-family:var(--font)}
.rows{padding:4px 14px}
.row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:10px}
.row + .row{border-top:1px solid var(--line)}
.row .l{font-size:13.5px;font-weight:600;min-width:0}
.row .l small{display:block;font-size:11.5px;color:var(--muted);font-weight:500}
.row .r{font-size:14.5px;font-weight:800;text-align:right;white-space:nowrap}
.row .r small{display:block;font-size:11px;font-weight:600;color:var(--muted)}
.up{color:var(--good) !important} .down{color:var(--bad) !important}
.empty{text-align:center;color:var(--muted);font-size:13.5px;padding:24px 10px}

/* ---------- home ---------- */
.wishchip{display:flex;align-items:center;gap:10px;width:calc(100% - 32px);margin:12px 16px 0;border:0;border-radius:var(--r-md);background:linear-gradient(90deg,#FCE6E6,var(--gold-soft));padding:11px 12px;font-weight:800;font-size:13.5px;text-align:left}
.wishchip em{margin-left:auto;font-style:normal;font-size:12px;color:var(--muted)}
.money{display:flex;gap:14px;align-items:center}
.money .ey,.team .ey,.ihero .ey{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.money .big{display:block;font-size:30px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.money span{display:block;font-size:11.5px;color:var(--muted)}
.money .likely{margin-top:10px;background:var(--gold-soft);border-radius:var(--r-sm);padding:7px 10px;display:inline-block}
.money .likely small{font-size:11px;color:var(--muted);font-weight:700}
.money .likely b{display:block;font-size:19px;font-weight:800;color:var(--gold)}
.ringwrap{text-align:center;flex:none;width:118px}
.ringwrap > small{display:block;font-size:10.5px;color:var(--muted);font-weight:700;line-height:1.3;margin-top:-2px}
.ringwrap .arc{animation:ringIn 1.2s var(--ease) both}
@keyframes ringIn{from{stroke-dasharray:0 238.8}}
.rr{display:grid;grid-template-columns:1fr 1fr;padding:0;overflow:hidden}
.rr > div{padding:12px 14px}
.rr > div + div{border-left:1px solid var(--line)}
.rr small{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.rr b{display:block;font-size:20px;font-weight:800;margin-top:2px}
.rr span{font-size:11.5px;color:var(--muted)}
.rrbar{grid-column:1/-1;padding:0 14px 12px}
.rrbar .track{height:8px;border-radius:8px;background:var(--sunk);position:relative;overflow:hidden}
.rrbar .track i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:var(--gold-bright)}
.rrbar p{font-size:12px;margin-top:6px;font-weight:700}
.rr > .rrbar{border-left:0}
.rrbar.won .track{overflow:visible}
.rrbar.won .track i{background:var(--good)}
.rrbar.won .track em{position:absolute;right:-4px;top:50%;transform:translateY(-50%);font-style:normal;font-size:16px;line-height:1}
.rrbar.won p{color:var(--good);font-weight:600;line-height:1.45}
.rrbar.won p b{font-weight:800;font-size:14px;display:inline}
.rr b.won{font-size:16px;line-height:1.3}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:11px 12px;position:relative;min-width:0}
.tile small{font-size:12px;color:var(--muted);font-weight:600}
.tile b{display:block;font-size:21px;font-weight:800;margin-top:1px}
.tile span{display:block;font-size:11.5px;color:var(--muted)}
.tile i{position:absolute;top:12px;right:12px;width:10px;height:10px;border-radius:50%;background:#C9CED5}
.tile i.g{background:var(--good)} .tile i.y{background:var(--gold-bright)} .tile i.r{background:var(--bad)}
.gap{font-size:12.5px;text-align:center;background:var(--sunk);border-radius:var(--r-md);padding:8px;margin:0 0 10px;border:0;width:100%}
.srows{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.srows button{display:grid;grid-template-columns:38px 1fr auto 14px;align-items:center;gap:12px;width:100%;border:0;background:none;padding:12px;text-align:left;font:inherit}
.srows button + button{border-top:1px solid var(--line)}
.srows button::after{content:"›";font-size:20px;font-weight:700;color:#B4B9C0;line-height:1;justify-self:end}
.srows .si{width:38px;height:38px;border-radius:var(--r-md);background:var(--sunk);display:grid;place-items:center;font-size:19px}
.srows .sl{min-width:0}
.srows .sl b{display:block;font-size:14px;font-weight:800}
.srows .sl small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.srows .sv{text-align:right;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.05;min-width:64px}
.srows .sv em{display:block;font-style:normal;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:0}
.srows .sv.blue,.srows .sv.blue em{color:var(--blue)}
.pipe{display:flex;align-items:center;gap:12px;border:2px solid var(--ink)}
.pipe.done{border-color:var(--good)}
.pipe .ic{font-size:24px;flex:none}
.pipe > div{flex:1;min-width:0}
.pipe b{display:block;font-size:14.5px}
.pipe small{display:block;font-size:12px;color:var(--muted)}
.pipe small.pl1{color:var(--ink);font-weight:700;font-size:12.5px;margin-top:1px}
.team{display:flex;gap:12px;align-items:center;background:linear-gradient(135deg,#FFFFFF 0%,#F1F6FB 100%)}
.team .lock{width:44px;height:44px;border-radius:var(--r-md);background:var(--blue-soft);display:grid;place-items:center;font-size:22px;flex:none}
.team b{display:block;font-size:14.5px;margin:2px 0 6px}
.team > div > small:last-child{font-size:11.5px;color:var(--muted)}
.tbar{height:9px;border-radius:9px;background:#DCE3EB;position:relative;margin-bottom:5px;overflow:hidden}
.tbar i{position:absolute;left:0;top:0;bottom:0;border-radius:9px;background:var(--blue)}

/* ---------- performance ---------- */
.lvl{display:flex;align-items:center;gap:12px}
.lvl .badge{width:52px;height:52px;border-radius:var(--r-md);background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;flex:none}
.lvl b{display:block;font-size:16px}
.lvl small{font-size:12px;color:var(--muted)}
.pbars .r1{display:grid;grid-template-columns:118px 1fr 48px;gap:8px;align-items:center;margin-top:9px;font-size:12.5px;font-weight:600}
.pbars .r1 .tr{height:10px;border-radius:10px;background:var(--sunk);position:relative}
.pbars .r1 .tr i{position:absolute;left:0;top:0;bottom:0;border-radius:10px;background:var(--blue)}
.pbars .r1 .tr em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.35}
.pbars .r1 b{text-align:right;font-size:12.5px}
.pbars .r1 small{grid-column:2/4;font-size:11px;color:var(--muted);margin-top:-5px}
.pbars .r1.off{opacity:.55}
.tipbox{font-size:12.5px;margin-top:10px;background:var(--gold-soft);border-radius:var(--r-md);padding:9px 10px;line-height:1.45}
.two-btn{display:flex;gap:8px;margin-top:10px}
.two-btn .btn{flex:1;padding:9px}
.badges{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.bdg{flex:0 0 calc((100% - 24px) / 4);text-align:center;background:var(--gold-soft);border-radius:var(--r-md);padding:9px 4px;font-size:11px;font-weight:800;line-height:1.25}
.bdg .ic{font-size:24px;display:block;margin-bottom:2px}
.bdg small{display:block;font-weight:500;color:var(--muted);font-size:9.5px;margin-top:2px}
.bdg.off{background:var(--sunk)}
.bdg.off .ic{filter:grayscale(1);opacity:.5}
.bp{height:4px;border-radius:4px;background:#DDE0E4;margin:5px 6px 0;overflow:hidden}
.bp i{display:block;height:100%;background:var(--gold-bright)}

/* ---------- incentive ---------- */
.ibig{font-size:38px;font-weight:800;color:var(--gold);letter-spacing:-.03em;line-height:1.1;margin-top:2px}
.itrack{position:relative;height:12px;border-radius:12px;background:var(--sunk);margin:12px 0 4px}
.itrack i{position:absolute;top:0;bottom:0}
.itrack .seg-earn{left:0;border-radius:12px 0 0 12px;background:linear-gradient(90deg,var(--gold-bright),var(--gold));z-index:1}
.itrack .seg-pipe{border-radius:0 12px 12px 0;background:#EEDDA8}
.itrack .pace{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1.5px;border-radius:3px;background:#0D0D0D;z-index:2}
.irow{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;padding:9px 2px}
.irow + .irow{border-top:1px solid var(--line)}
.irow .il{font-size:13.5px;font-weight:700}
.irow .il small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.irow b{font-size:15px;font-weight:800;white-space:nowrap}
.irow.hi{background:var(--gold-soft);border-radius:var(--r-md);padding:9px 10px;margin:4px -8px 0;border-top:0}
.irow.hi b{color:var(--gold)}
.dot{width:12px;height:12px;border-radius:50%;background:var(--c)}
.dot.ring{background:none;border:3px solid #0D0D0D}
.iprompt{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;width:100%;margin-top:12px;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:10px 10px 10px 12px;text-align:left;font:inherit}
.iprompt span:nth-child(2){font-size:13.5px;font-weight:800}
.iprompt small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.iprompt .go{background:var(--brand);color:var(--on-brand);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:800}
.sbar{display:flex;height:12px;border-radius:12px;overflow:hidden;gap:3px;margin:6px 0 4px;background:var(--sunk)}
.sbar i{display:block;height:100%;border-radius:4px}
.brow{display:grid;grid-template-columns:14px 1fr 38px auto;gap:10px;align-items:center;padding:9px 2px;font-size:13.5px;font-weight:700}
.brow + .brow{border-top:1px solid var(--line)}
.brow small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.brow em{font-style:normal;font-size:12px;color:var(--muted);text-align:right}
.brow b{font-size:14.5px;white-space:nowrap;text-align:right;min-width:62px}
.brow.mute{color:var(--muted)}
.fy{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 6px}
.fy div{background:var(--sunk);border-radius:var(--r-md);padding:8px 10px;min-width:0}
.fy small{display:block;font-size:10.5px;font-weight:700;color:var(--muted)}
.fy b{font-size:15px;font-weight:800}
.fy span{font-size:11px;color:var(--muted);margin-left:4px}
.goals{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.goal{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;width:100%;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:11px 12px;text-align:left;font:inherit}
.goal.mine{border-color:var(--gold-bright);background:var(--gold-soft)}
.goal.done{opacity:.6}
.goal .gp{font-size:20px;font-weight:800;line-height:1}
.goal .gp small,.goal .gx small,.goal .ge small{display:block;font-size:10.5px;font-weight:600;color:var(--muted);margin-top:3px}
.goal .gx{font-size:13.5px;font-weight:800}
.goal .ge{text-align:right;font-size:16px;font-weight:800;color:var(--gold);white-space:nowrap}
.goal .ge small{color:var(--good);font-weight:800}

/* ---------- learn ---------- */
.hiw-t{display:block;font-size:14.5px;font-weight:800}
.hiw-s{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.stairs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:12px}
.stairs > div{display:flex;flex-direction:column;text-align:center}
.stairs u{display:flex;flex-direction:column;justify-content:flex-end;height:104px;text-decoration:none}
.stairs u i{width:100%;display:block;border-radius:var(--r-sm) var(--r-sm) 4px 4px;background:#EEDDA8;transform-origin:bottom;animation:growY .7s var(--ease) both}
.stairs em{font-style:normal;font-size:11.5px;font-weight:800;margin-bottom:4px}
.stairs span{font-size:11px;font-weight:700;color:var(--muted);margin-top:5px}
.stairs .now u i{background:linear-gradient(180deg,var(--gold-bright),var(--gold))}
.stairs .now em{color:var(--gold)} .stairs .now span{color:var(--ink);font-weight:800}
.stairs-cap{font-size:11.5px;color:var(--muted);text-align:center;margin-top:4px}
.bonus{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.bonus div{background:var(--sunk);border-radius:var(--r-md);padding:10px 8px;text-align:center}
.bonus span{font-size:20px;display:block}
.bonus b{display:block;font-size:15px;font-weight:800;margin-top:2px}
.bonus small{display:block;font-size:10.5px;color:var(--muted);line-height:1.3;margin-top:2px}
.hiw-more{display:block;margin:12px auto 0;border:0;background:none;font:inherit;font-weight:800;font-size:13px;color:var(--blue)}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.mcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 6px;text-align:center;position:relative}
.mcard .ic{font-size:26px;display:block}
.mcard b{display:block;font-size:12px;margin-top:4px;line-height:1.25}
.mcard.ok{border-color:var(--good);background:var(--good-soft)}
.mcard.ok:after{content:"✓";position:absolute;top:6px;right:8px;font-size:12px;font-weight:800;color:var(--good)}
.prog{height:8px;border-radius:8px;background:var(--sunk);overflow:hidden;margin-top:8px}
.prog i{display:block;height:100%;width:0;background:var(--gold-bright);border-radius:8px;transition:width .5s var(--ease)}
.list{padding:2px 14px}
.lrow{display:flex;align-items:center;gap:12px;padding:11px 0;width:100%;background:none;border:0;text-align:left}
.lrow + .lrow{border-top:1px solid var(--line)}
.lrow .ic{font-size:20px;flex:none}
.lrow > div{flex:1;min-width:0}
.lrow b{display:block;font-size:13.5px}
.lrow small{font-size:11.5px;color:var(--muted)}
button.lrow:after{content:"›";font-size:20px;color:var(--muted)}
.lrow.past{opacity:.5}
.new{font-size:9.5px;font-weight:800;color:#fff;background:var(--bad);border-radius:10px;padding:1px 6px;margin-left:5px;vertical-align:2px}
.pl{font-size:11px;font-weight:800;background:var(--sunk);color:var(--muted);border-radius:999px;padding:3px 8px;white-space:nowrap}
.pl.gold{background:var(--gold-soft);color:var(--gold)}

/* ---------- buzz ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 2px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:700}
.chip.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.celes{display:flex;gap:10px;overflow-x:auto;padding:0 16px 4px;scroll-padding:0 16px;scroll-snap-type:x mandatory;scrollbar-width:none}
.celes::-webkit-scrollbar{display:none}
.cele{flex:none;width:148px;scroll-snap-align:start;border-radius:var(--r-lg);padding:14px 12px 12px;text-align:center;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}
.cele::before{content:"";position:absolute;inset:0 0 auto 0;height:46px}
.cele.bday::before{background:linear-gradient(135deg,#FCE6E6,#FBD3E0)}
.cele.anniv::before{background:linear-gradient(135deg,#E4EDF6,#CFE0F2)}
.cele.win::before{background:linear-gradient(135deg,var(--gold-soft),var(--gold-light))}
.cav{position:relative;width:48px;height:48px;border-radius:50%;margin:0 auto 6px;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-weight:800;font-size:14px;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.12);overflow:hidden}
.cav img{width:100%;height:100%;object-fit:cover}
.cele b{display:block;font-size:13.5px}
.cele small{display:block;font-size:11px;color:var(--muted)}
.ctag{display:inline-block;margin-top:7px;font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px;background:var(--sunk)}
.wish{display:block;width:100%;margin-top:9px;border:1.5px solid var(--ink);background:var(--surface);border-radius:999px;padding:6px;font-size:12px;font-weight:800}
.wish.done{background:var(--brand);color:var(--on-brand)}
.feed{display:flex;flex-direction:column;gap:12px}
.bpost{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.media{position:relative;display:block;width:100%;border:0;padding:0;cursor:pointer;background:#ECEEF1}
.media.pdf{height:210px;display:grid;place-items:center;background:linear-gradient(180deg,#E9EBEE,#DADDE2)}
.media.pdf img{max-height:186px;max-width:82%;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.18);background:#fff}
.media.img img{display:block;width:100%;max-height:340px;object-fit:cover}
.media .ph{height:120px;display:grid;place-items:center;font-size:42px}
.mbadge{position:absolute;left:10px;bottom:10px;background:rgba(13,13,13,.78);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:4px 10px}
.media.img .mbadge{left:auto;right:10px;bottom:auto;top:10px}
.pbody{padding:12px 14px}
.pbody.row2{display:flex;gap:12px;align-items:center}
.pmeta{display:flex;align-items:center;gap:8px}
.pmeta time{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:600}
.ptag{font-size:10.5px;font-weight:800;border-radius:999px;padding:3px 9px;letter-spacing:.02em}
.ptag.floor{background:var(--gold-soft);color:var(--gold)} .ptag.offer{background:#FDEBDD;color:#A4540A} .ptag.policy{background:var(--blue-soft);color:var(--blue)}
.ptag.ann{background:var(--bad-soft);color:var(--bad)} .ptag.win{background:var(--good-soft);color:var(--good)} .ptag.story{background:#E8F4EF;color:var(--good)} .ptag.celeb{background:#FBE3F0;color:#A0306B}
.pin2{font-size:10.5px;font-weight:800;color:var(--muted)}
.bpost h3{font-size:15.5px;font-weight:800;line-height:1.3;margin:7px 0 3px}
.bpost p{font-size:13px;color:#4A4F57;line-height:1.5;white-space:pre-line}
.bpost p.clip{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rm{background:none;border:0;font-weight:800;font-size:12.5px;padding:4px 0}
.pfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.pby{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted);min-width:0}
.pby i{font-style:normal;width:26px;height:26px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-size:10px;font-weight:800;flex:none}
.rx{display:flex;gap:6px}
.rx button{border:1px solid var(--line);background:var(--sunk);border-radius:999px;padding:5px 10px;font-size:12.5px;font-weight:800}
.rx button.on{background:var(--gold-soft);border-color:var(--gold-bright)}
.pdfmini{width:48px;height:60px;flex:none;border:0;border-radius:var(--r-sm);background:linear-gradient(180deg,#fff,#F1F2F4);box-shadow:0 2px 8px rgba(0,0,0,.12),inset 0 0 0 1px var(--line);position:relative;cursor:pointer;overflow:hidden}
.pdfmini img{width:100%;height:100%;object-fit:cover}
.pdfmini span{position:absolute;left:6px;bottom:6px;background:var(--bad);color:#fff;font-size:9px;font-weight:800;border-radius:4px;padding:1px 5px}
.celist{list-style:none;margin-top:6px}
.celist li{display:grid;grid-template-columns:26px 1fr;align-items:center;column-gap:8px;padding:7px 0;border-top:1px solid var(--line)}
.celist li:first-child{border-top:0}
.celist span{grid-row:span 2;font-size:18px}
.celist b{font-size:13px}
.celist small{font-size:11.5px;color:var(--muted)}

/* ---------- profile ---------- */
.phead{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
.pphoto{position:relative;width:76px;height:76px;border-radius:50%;cursor:pointer;display:block}
.pinit,.pphoto img{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font-size:24px;font-weight:800;object-fit:cover}
.pcam{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;background:var(--gold-bright);border:3px solid var(--surface);display:grid;place-items:center}
.pcam svg{width:14px;height:14px;fill:none;stroke:#0D0D0D;stroke-width:2;stroke-linejoin:round}
.pwho{min-width:0}
.pwho b{display:block;font-size:17px;font-weight:800}
.pwho small{display:block;font-size:11.5px;color:var(--muted);line-height:1.45}
.pdone{text-align:center}
.pdone small{font-size:10px;font-weight:700;color:var(--muted)}
.pring{width:50px;height:50px;border-radius:50%;background:conic-gradient(var(--gold-bright) calc(var(--v)*1%),#ECEEF1 0);display:grid;place-items:center}
.pring span{width:40px;height:40px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-size:12px;font-weight:800}
.pmsg{font-size:11.5px;color:var(--muted);text-align:center;margin:8px 16px 2px}
.pmsg.bad{color:var(--bad);font-weight:700}.pmsg.ok{color:var(--good);font-weight:700}
.pform{padding:6px 16px 16px;margin:10px 16px 0}
.pgroup{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:16px 0 2px}
.pf{margin-top:10px}
.pf label{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px}
.pf .opt{font-weight:600;color:var(--muted);font-size:11px}
.pf input,.pf select{width:100%;border:1.5px solid #C2C7CE;border-radius:var(--r-md);padding:11px 12px;font-size:14.5px;font-weight:700;background:#fff;transition:border-color .2s}
.pf input:focus,.pf select:focus{outline:none;border-color:var(--ink)}
.pf input.bad{border-color:var(--bad);background:#FFF8F8}
.ph{display:flex;align-items:stretch}
.ph span{display:grid;place-items:center;padding:0 12px;border:1.5px solid #C2C7CE;border-right:0;border-radius:var(--r-md) 0 0 var(--r-md);background:var(--sunk);font-weight:800;font-size:14px}
.ph input{border-radius:0 var(--r-md) var(--r-md) 0;letter-spacing:.04em}
.dob{display:grid;grid-template-columns:72px 1fr 92px;gap:8px}
.ro{display:flex;justify-content:space-between;align-items:center;border:1.5px dashed #C2C7CE;border-radius:var(--r-md);padding:11px 12px;background:var(--sunk);font-weight:700;font-size:14px}
.ro em{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}
.hint{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.two2{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}
@media (max-width:440px){.two2{grid-template-columns:1fr}}
.langpick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.langpick button{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:700}
.langpick button.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.langpick button.on::before{content:"✓ "}

/* ---------- nav ---------- */
.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(10px + env(safe-area-inset-bottom));z-index:6}
.nav button{position:relative;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0 2px;color:#8A9098;min-width:0;border-radius:0 0 12px 12px}
.nav button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav button span{font-size:11px;font-weight:700;line-height:1;white-space:nowrap}
.nav button.on{color:var(--brand);background:linear-gradient(180deg,color-mix(in srgb,var(--gold-bright) 14%,transparent),transparent 70%)}
.nav button.on svg{stroke-width:2.2}
.nav button.on::before{content:"";position:absolute;top:-5px;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--gold-bright)}
.nav .ndot{position:absolute;top:4px;left:calc(50% + 7px);width:8px;height:8px;border-radius:50%;background:var(--bad);border:2px solid var(--surface)}

/* ---------- overlays ---------- */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--surface);border-radius:22px 22px 0 0;padding:16px 18px calc(20px + env(safe-area-inset-bottom));width:100%;max-width:520px;max-height:92vh;overflow-y:auto}
.sheet.tall{height:92vh;display:flex;flex-direction:column}
.sheet h2{font-size:18px;font-weight:800}
.sheet .sub{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.shead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stepper{display:flex;align-items:center;border:1.5px solid #C2C7CE;border-radius:var(--r-md);overflow:hidden}
.stepper button{width:46px;height:48px;border:0;background:var(--sunk);font-size:21px;font-weight:800;flex:none}
.stepper input{border:0 !important;border-radius:0 !important;text-align:center;padding:0 !important;height:48px;min-width:0}
.estbox{margin-top:16px;background:var(--gold-soft);border-radius:var(--r-md);padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.estbox small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.estbox b{font-size:22px;font-weight:800;color:var(--gold)}
.langs{display:flex;gap:6px;overflow-x:auto;margin-top:12px;scrollbar-width:none}
.langs::-webkit-scrollbar{display:none}
.langs button{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 11px;font-size:12.5px;font-weight:700}
.langs button.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.q{margin-top:14px}
.qn{display:block;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.q > b{display:block;font-size:15px;line-height:1.4}
.emos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.emos button{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:9px 10px;font-size:13px;font-weight:700;text-align:left;line-height:1.2}
.emos button span{font-size:22px;flex:none}
.emos button.on{border-color:var(--ink);background:var(--gold-soft)}
.lbtabs{display:grid;grid-template-columns:1fr 1fr;background:var(--sunk);border-radius:var(--r-md);padding:4px;margin-top:12px}
.lbtabs button{border:0;background:none;border-radius:9px;padding:8px;font-weight:800;font-size:13px;color:var(--muted)}
.lbtabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.yr1{font-size:10px;font-weight:800;color:var(--blue);background:var(--blue-soft);border-radius:6px;padding:1px 5px}
.rtop{display:flex;align-items:center;gap:14px;margin-top:14px}
.rbig{font-size:44px;font-weight:800;color:var(--blue);letter-spacing:-.03em;line-height:1}
.rtop b{display:block;font-size:18px}
.rtop small{font-size:12px;color:var(--muted);line-height:1.35;display:block}
.rscale{position:relative;display:grid;grid-template-columns:repeat(5,1fr);margin-top:14px;padding-top:14px;border-top:3px solid var(--sunk)}
.rscale i{position:absolute;top:-8px;width:13px;height:13px;margin-left:-6px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 0 0 1px var(--blue)}
.rscale span{font-size:10px;font-weight:700;color:var(--muted);text-align:center;line-height:1.2}
.rscale span.on{color:var(--blue);font-weight:800}
.rlist{margin-top:14px;border-top:1px solid var(--line)}
.ritem{border-bottom:1px solid var(--line)}
.ritem summary{list-style:none;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 2px;cursor:pointer}
.ritem summary::-webkit-details-marker{display:none}
.rn b{display:block;font-size:14px}
.rn small{font-size:11.5px;color:var(--muted)}
.rv{font-size:15px;font-weight:800}
.dots{display:flex;gap:3px}
.dots i{width:9px;height:9px;border-radius:50%;background:#DDE0E4}
.dots i.on{background:var(--blue)}
.rlv{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:0 2px 12px}
.rlv small{grid-column:1/-1;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.rlv span{text-align:center;font-size:12px;font-weight:800;color:var(--muted);background:var(--sunk);border-radius:var(--r-sm);padding:5px 2px}
.rlv span em{display:block;font-style:normal;font-size:10.5px;font-weight:600}
.rlv span.me{background:var(--blue);color:#fff}
.rnext{font-size:12.5px;margin-top:12px;background:var(--gold-soft);border-radius:var(--r-md);padding:9px 11px}
.formula{background:var(--sunk);border-radius:var(--r-md);padding:11px 12px;font-size:13px;line-height:1.6;margin-top:10px}
.mbig{font-size:46px;text-align:center}
.quiz{margin-top:14px}
.quiz .qq{font-weight:800;font-size:14px}
.quiz button{display:block;width:100%;text-align:left;margin-top:8px;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:11px 12px;font-weight:600;font-size:13.5px}
.quiz button.right{border-color:var(--good);background:var(--good-soft)}
.quiz button.wrong{border-color:var(--bad);background:var(--bad-soft)}
.rules h4{font-size:14px;font-weight:800;margin:16px 0 4px}
.rules p{font-size:13px;line-height:1.55;color:#30343A}
.doc{font-size:13.5px;line-height:1.6;margin-top:12px;white-space:pre-line}
.doc h4{font-size:14.5px;margin:12px 0 2px}
table.t{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin-top:8px}
table.t th{background:var(--blue);color:#fff;font-weight:700;padding:7px 8px;text-align:center}
table.t td{padding:7px 8px;border-top:1px solid var(--line);text-align:center;font-weight:600}
table.t td:first-child,table.t th:first-child{text-align:left}
.vbody{flex:1;overflow:auto;background:#E6E8EB;border-radius:var(--r-md);padding:10px;display:flex;flex-direction:column;gap:10px;align-items:center;margin-top:10px}
.vbody canvas,.vbody img{width:100%;height:auto;border-radius:6px;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.15)}
.vbody .vnote{font-size:12px;color:var(--muted);padding:20px;text-align:center}
.wtop{display:flex;gap:12px;align-items:center}
.wav{width:52px;height:52px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-weight:800;flex:none;overflow:hidden}
.wav img{width:100%;height:100%;object-fit:cover}
.wpick{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.wpick button{text-align:left;border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:11px 12px;font-size:14px;font-weight:700}
.wpick button.on{border-color:var(--ink);background:var(--gold-soft)}

/* celebration */
.celebrate{position:fixed;inset:0;background:rgba(13,13,13,.55);display:grid;place-items:center;z-index:30;padding:16px}
.celebrate canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pop{position:relative;background:var(--surface);border-radius:20px;width:100%;max-width:320px;padding:22px 18px;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.pop .em{font-size:46px}
.pop h2{margin:6px 0 4px;font-size:21px;font-weight:800}
.pop p{margin:0 0 12px;color:var(--muted);font-size:13.5px;line-height:1.45}
.pop .gain{font-size:30px;font-weight:800;color:var(--accent)}
.wlist{list-style:none;margin-top:6px;max-height:240px;overflow:auto;text-align:left}
.wlist li{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.wlist i{font-style:normal;width:34px;height:34px;border-radius:50%;background:var(--sunk);display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}
.wlist b{display:block;font-size:12.5px}
.wlist span{font-size:12.5px;color:#4A4F57}

/* toast, loading */
.toast{position:fixed;left:50%;top:84px;transform:translateX(-50%);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:13.5px;padding:11px 18px;border-radius:999px;z-index:40;max-width:90vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.toast.bad{background:var(--bad)}
.loading{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:50;color:var(--muted);font-weight:700;font-size:14px}
.loading.off{display:none}
.spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- fluid movement ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
@keyframes dimIn{from{background:rgba(0,0,0,0)}}
@keyframes growX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes growY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes popIn{0%{opacity:0;transform:scale(.86)}60%{opacity:1;transform:scale(1.03)}100%{transform:scale(1)}}
@keyframes draw{from{stroke-dashoffset:var(--len,600)}to{stroke-dashoffset:0}}
[data-v]:not([hidden]) > *{animation:fadeUp .42s var(--ease) both}
[data-v]:not([hidden]) > :nth-child(2){animation-delay:.03s} [data-v]:not([hidden]) > :nth-child(3){animation-delay:.06s}
[data-v]:not([hidden]) > :nth-child(4){animation-delay:.09s} [data-v]:not([hidden]) > :nth-child(5){animation-delay:.12s}
[data-v]:not([hidden]) > :nth-child(n+6){animation-delay:.15s}
.ov:not([hidden]){animation:dimIn .25s ease both}
.ov:not([hidden]) .sheet{animation:sheetUp .38s var(--ease) both}
.celebrate:not([hidden]) .pop{animation:popIn .5s var(--ease) both}
.pbars .tr i,.tbar i,.rrbar .track i,.bp i,.itrack i:not(.pace),.sbar i{transform-origin:left center;animation:growX .9s var(--ease) both .15s}
svg .grow{transform-box:fill-box;transform-origin:bottom;animation:growY .7s var(--ease) both .1s}
svg .drawn{stroke-dasharray:var(--len,600);animation:draw 1.1s var(--ease) both .2s}
button,.chip,.mcard,.lrow,.emos button,.langs button,.goal,.wish{transition:transform .15s var(--ease),background-color .2s ease,border-color .2s ease,color .2s ease}
button:active,.mcard:active{transform:scale(.97)}
details[open] > :not(summary){animation:fadeUp .3s var(--ease) both}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}}

/* ---------- v3.1: compact celebrations ---------- */
.ccard{margin:0 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px}
.ctiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ctile{border:1.5px solid var(--line);background:var(--sunk);border-radius:var(--r-md);padding:9px 4px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.ctile .ce{font-size:20px;line-height:1}
.ctile b{font-size:19px;font-weight:800;line-height:1.1}
.ctile small{font-size:10.5px;font-weight:700;color:var(--muted);line-height:1.2;max-width:100%;min-height:2.4em;display:flex;align-items:center;justify-content:center;text-align:center}
.ctile.on{border-color:var(--brand);background:var(--gold-soft)}
.ctile.zero{opacity:.45;cursor:default}
.cgroup{margin-top:10px;border-top:1px solid var(--line);padding-top:4px;animation:fadeUp .3s var(--ease) both}
.cgroup h4{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:8px 2px 2px}
.crow{display:flex;align-items:center;gap:10px;padding:8px 2px}
.crow + .crow{border-top:1px solid var(--line)}
.crow .cav{width:40px;height:40px;margin:0;border-width:2px;font-size:12.5px;flex:none}
.crow > div{flex:1;min-width:0}
.crow b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crow small{display:block;font-size:11.5px;color:var(--muted)}
.crow .wish{width:auto;margin:0;flex:none;padding:7px 12px;font-size:12px}

/* ---------- v3.1: document rows (no preview for PDFs) ---------- */
.docrow{display:flex;align-items:center;gap:12px;width:100%;border:0;border-bottom:1px solid var(--line);background:var(--sunk);padding:12px 14px;text-align:left;cursor:pointer}
.docrow .di{width:38px;height:46px;border-radius:var(--r-sm);background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.1),inset 0 0 0 1px var(--line);display:grid;place-items:center;font-size:9px;font-weight:800;color:var(--bad);flex:none}
.docrow > span:nth-child(2){flex:1;min-width:0}
.docrow b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.docrow small{display:block;font-size:11.5px;color:var(--muted)}
.docrow .go{flex:none;font-size:12.5px;font-weight:800;color:var(--on-brand);background:var(--brand);border-radius:999px;padding:7px 13px}

@keyframes twinkle{0%,100%{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}
@media (prefers-reduced-motion:reduce){.tk-win{overflow-x:auto}}
.docrow.in{border:1px solid var(--line);border-radius:var(--r-md);margin-top:10px;padding:10px 12px}

/* share button on offers, incentive note */
.sharebtn{display:inline-flex;align-items:center;gap:6px;margin:8px 0 2px;border:0;border-radius:999px;background:#25D366;color:#fff;font-weight:800;font-size:13px;padding:9px 14px;box-shadow:0 4px 12px rgba(37,211,102,.25)}
.sharebtn:disabled{opacity:.6}
.shead + .sharebtn{margin-top:10px}
.disclaim{margin:4px 2px 0;font-size:12px;line-height:1.5;color:var(--muted);background:var(--sunk);border-radius:var(--r-md);padding:10px 12px}
/* team goal: percentages only */
.tg-nums{display:flex;align-items:center;gap:12px;margin:6px 0 2px}
.tg-nums > div small{display:block;font-size:11px;font-weight:700;color:var(--muted)}
.tg-nums > div b{display:block;font-size:24px;font-weight:800;line-height:1.1}
.tg-nums > div span{display:block;font-size:11px;color:var(--muted)}
.tg-nums .likely b{color:var(--gold)}
.tg-nums > i{font-style:normal;font-size:18px;color:var(--muted)}
.tg-bar{position:relative;height:12px;border-radius:12px;background:var(--sunk);margin:12px 0 22px}
.tg-bar > i{position:absolute;left:0;top:0;bottom:0;border-radius:12px;transform-origin:left;animation:growX .9s var(--ease) both .15s}
.tg-bar .lk{background:repeating-linear-gradient(135deg,var(--gold-light) 0 6px,var(--gold-soft) 6px 12px)}
.tg-bar .nw{background:linear-gradient(90deg,var(--gold-bright),var(--gold))}
.tg-bar em{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--brand);opacity:.35;border-radius:2px}
.tg-bar em.hit{opacity:.8;background:var(--good)}
.tg-bar em span{position:absolute;top:18px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:800;color:var(--muted);white-space:nowrap}
.tg-msg{display:block;font-size:14px;line-height:1.35;margin-bottom:4px}
/* "What you can earn" table */
.sc-sub{font-size:12.5px;color:var(--muted);margin:2px 0 10px}
.sct{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.sct th:first-child,.sct td:first-child{width:38%}
.sct th{background:var(--sunk);font-size:11.5px;font-weight:800;color:var(--muted);text-align:right;padding:8px 10px;line-height:1.25}
.sct th small{display:block;font-size:12px;color:var(--ink);font-weight:800}
.sct td{padding:11px 8px;border-top:1px solid var(--line);text-align:right;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.sct th{padding:8px 8px !important;white-space:normal}
.sct tr.past td{color:var(--muted);font-weight:600}.sct tr.past td b{color:var(--muted)}
.sct td small{display:block;font-size:10.5px;color:var(--good);font-weight:800}
.sct td:first-child,.sct th:first-child{text-align:left}
.sct td b{color:var(--gold)}
.sct tr.hi td{background:var(--gold-soft)}
.sct tr.hi td:first-child{box-shadow:inset 3px 0 0 var(--gold-bright)}
.sc-store{font-size:12.5px;margin:10px 2px 6px;color:var(--muted)}
.sc-store b{color:var(--ink)}
.money .likely[role=button]{cursor:pointer}

/* ===== v3.6 ===== */
/* Home: mini 80 / 100 / 120% table */
.money{flex-wrap:wrap}
.msim{flex-basis:100%;border-top:1px solid var(--line);padding-top:10px;cursor:pointer}
.msim > small{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.msim > small em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:700;color:var(--blue)}
.msr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:7px}
.msr > div{background:var(--sunk);border-radius:var(--r-md);padding:8px 8px 7px;min-width:0;text-align:center}
.msr span{display:block;font-size:12px;font-weight:800;color:var(--muted)}
.msr b{display:block;font-size:15.5px;font-weight:800;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msr i{display:block;font-style:normal;font-size:10.5px;font-weight:800;color:var(--gold);margin-top:2px;line-height:1.25}
.msr > div.past{opacity:.55}
.msim p{font-size:11.5px;color:var(--muted);margin-top:7px}

/* Store manager */
.is-sm [data-jc]{display:none !important}
/* the tab bar spreads whatever tabs are showing evenly (store managers, or tabs switched off by the admin) */
.smt .ct{flex-wrap:wrap;gap:6px}
.wpill{font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px;background:var(--sunk);color:var(--muted)}
.wpill.open{background:var(--good-soft);color:var(--good)}
.smnums{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.smnums > div{background:var(--sunk);border-radius:var(--r-md);padding:10px 12px}
.smnums small{display:block;font-size:11px;font-weight:700;color:var(--muted)}
.smnums b{display:block;font-size:20px;font-weight:800;margin-top:2px}
.smnums b.ok{color:var(--good)}.smnums b.warn{color:var(--warn)}
.smnums span{display:block;font-size:11px;color:var(--muted)}
.smwarn,.smok{font-size:12.5px;font-weight:700;border-radius:var(--r-md);padding:8px 10px;margin-bottom:10px}
.smwarn{background:var(--warn-soft);color:var(--warn)}.smok{background:var(--good-soft);color:var(--good)}
.smlb li{grid-template-columns:28px 36px 1fr auto}
.smav{width:34px;height:34px;border-radius:50%;background:var(--sunk);display:grid;place-items:center;font-size:11px;font-weight:800;overflow:hidden}
.smav img{width:100%;height:100%;object-fit:cover}
.smsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;position:sticky;top:-18px;z-index:2;background:var(--surface);padding:6px 0}
.smsum > div{background:var(--sunk);border-radius:var(--r-md);padding:8px 10px;min-width:0}
.smsum small{display:block;font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.smsum b{display:block;font-size:15px;font-weight:800}
.smsum b.ok{color:var(--good)}.smsum b.warn{color:var(--warn)}
.smrows{margin-top:6px}
.smrow{display:grid;grid-template-columns:minmax(0,1fr) 128px 72px;gap:8px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.smrow .nm{min-width:0;padding-top:16px}
.smrow .nm b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.smrow .nm small{font-size:11px;color:var(--muted)}
.smrow label span{display:block;font-size:10.5px;font-weight:700;color:var(--muted);margin-bottom:3px}
.smrow input{width:100%;border:1.5px solid #C2C7CE;border-radius:var(--r-md);padding:9px 10px;font:inherit;font-weight:800;font-size:14px;background:var(--surface)}
.smrow input:disabled{background:var(--sunk);color:var(--muted)}
.smrow label small{display:block;font-size:10.5px;color:var(--gold);font-weight:800;margin-top:2px;min-height:13px}
@media (max-width:370px){.smrow{grid-template-columns:minmax(0,1fr) 112px 62px}}

/* v3.8: My store (closed until tapped), quiet "updating" banner */
.banner.soft{background:var(--sunk);color:var(--muted)}
.mystore summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer}
.mystore summary::-webkit-details-marker{display:none}
.mystore summary .ic{width:38px;height:38px;border-radius:var(--r-md);background:var(--sunk);display:grid;place-items:center;font-size:19px;flex:none}
.mystore summary > div{flex:1;min-width:0}.mystore summary b{display:block;font-size:14.5px}.mystore summary small{font-size:11.5px;color:var(--muted)}
.mystore summary:after{content:"›";font-size:20px;color:#B4B9C0;transition:transform .25s var(--ease)}
.mystore[open] summary:after{transform:rotate(90deg)}
.ms-pct{font-size:15px;font-weight:800;border-radius:999px;padding:4px 10px;background:var(--sunk)}
.ms-pct.g{background:var(--good-soft);color:var(--good)}.ms-pct.y{background:var(--gold-soft);color:var(--gold)}.ms-pct.r{background:var(--bad-soft);color:var(--bad)}
.ms-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;animation:fadeUp .3s var(--ease) both}
.ms-grid > div{background:var(--sunk);border-radius:var(--r-md);padding:10px 12px;min-width:0}
.ms-grid small{display:block;font-size:11px;font-weight:700;color:var(--muted)}
.ms-grid b{display:block;font-size:18px;font-weight:800;margin-top:2px}
.ms-grid span{display:block;font-size:10.5px;color:var(--muted)}
/* no square tap/focus box around the tappable headers; keyboard users still get a soft rounded ring */
details > summary{-webkit-tap-highlight-color:transparent;outline:none;border-radius:var(--r-md)}
details > summary:focus-visible{box-shadow:0 0 0 3px var(--blue-soft)}
.ms-pcts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}
.ms-pcts em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--muted)}
.ms-grid > div.lk{background:var(--blue-soft)}
.ms-grid b.c-g{color:var(--good)}.ms-grid b.c-y{color:var(--gold)}.ms-grid b.c-r{color:var(--bad)}
.ms-note{font-size:11px;color:var(--muted);margin:8px 2px 0}
.kd-list{margin-top:6px;animation:fadeUp .3s var(--ease) both}
.kd-past{display:none;border-top:1px solid var(--line)}
.kdates.showpast .kd-past{display:block}
.kd-more{display:block;margin:6px auto 0;font-size:12px}

/* Profile photo crop */
.crop{position:relative;width:min(280px,78vw);aspect-ratio:1;margin:14px auto 6px;border-radius:var(--r-lg);overflow:hidden;background:#111}
.crop canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.crop canvas:active{cursor:grabbing}
.crop .ring{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 999px rgba(0,0,0,.45);border:2px solid rgba(255,255,255,.9);pointer-events:none}
.zoom{display:flex;align-items:center;gap:10px;margin:8px auto 14px;width:min(280px,78vw)}
.zoom input{flex:1;accent-color:var(--brand)}

/* SM: hero power meter */
.smhero{display:flex;gap:12px;align-items:center;background:radial-gradient(120% 120% at 100% 0%,var(--gold-soft),var(--surface) 60%)}
.smh-l{flex:1;min-width:0}
.smhero .ey{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.smhero .big{display:block;font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-top:2px}
.smh-l > span{display:block;font-size:12px;color:var(--muted)}
.lvl-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}
.lvl{font-size:12px;font-weight:800;border-radius:999px;padding:4px 10px;background:var(--sunk)}
.lvl.gold{background:linear-gradient(90deg,#F7E08A,#E2B53E);color:#5a3d00}
.lvl.silver{background:linear-gradient(90deg,#EEF0F3,#C9CED5)}
.lvl.bronze{background:linear-gradient(90deg,#F2D2B6,#D69A6A);color:#5a2f10}
.lvl-next{font-size:11.5px;font-weight:700;color:var(--muted)}
.smh-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.smh-chips span{font-size:11px;font-weight:700;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px 8px}
.smh-chips .up{color:var(--good);border-color:#BFE3CF}.smh-chips .down{color:var(--warn);border-color:#F2D2A9}
.smh-ring{flex:none}
/* SM: tabs */
.smtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 16px 4px;background:var(--sunk);border-radius:var(--r-lg);padding:5px;position:sticky;top:0;z-index:3}
.smtabs button{position:relative;border:0;background:none;border-radius:var(--r-md);padding:8px 2px 7px;font:inherit;font-size:12px;font-weight:800;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:1px}
.smtabs button span{font-size:18px;line-height:1}
.smtabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.smtabs button i{position:absolute;top:3px;right:12%;min-width:17px;height:17px;border-radius:9px;background:var(--bad);color:#fff;font-style:normal;font-size:10px;display:grid;place-items:center;padding:0 4px}
.smpane{animation:fadeUp .3s var(--ease) both}
/* SM: briefing */
.brief .ct{align-items:center}
.blist{list-style:none;margin:6px 0 0;padding:0}
.blist li{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.blist li:first-child{border-top:0}
.blist .bi{width:34px;height:34px;border-radius:var(--r-md);background:var(--sunk);display:grid;place-items:center;font-size:17px;flex:none}
.blist li.good .bi{background:var(--good-soft)}.blist li.warn .bi{background:var(--warn-soft)}
.blist b{display:block;font-size:13.5px}
.blist p{font-size:13px;line-height:1.45;color:#2a2f36;margin-top:1px}
.huddle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:12px;border-top:1px dashed var(--line)}
.huddle span{font-size:13px;font-weight:800;color:var(--warn)}
.huddle.done span{color:var(--good)}
/* SM: store */
.tw2{overflow-x:auto;margin-top:8px}
.smt6{width:100%;border-collapse:collapse;font-size:12.5px}
.smt6 th{font-size:11px;color:var(--muted);text-align:right;padding:6px 4px;font-weight:800}
.smt6 td{text-align:right;padding:7px 4px;border-top:1px solid var(--line);font-weight:700}
.smt6 th:first-child,.smt6 td:first-child{text-align:left}
/* SM: team */
.livebar .lb-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.livebar b{display:block;font-size:13.5px}
.livebar small{font-size:11px;color:var(--muted);white-space:nowrap}
.live{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--sunk);border-radius:999px;padding:4px 9px;flex:none}
.live i{width:8px;height:8px;border-radius:50%;background:#B4B9C0}
.live.on{color:var(--good);background:var(--good-soft)}.live.on i{background:var(--good);animation:pulseDot 1.4s ease-in-out infinite}
@keyframes pulseDot{0%,100%{box-shadow:0 0 0 0 rgba(10,138,87,.5)}50%{box-shadow:0 0 0 5px rgba(10,138,87,0)}}
.pbar{height:7px;border-radius:7px;background:var(--sunk);overflow:hidden;margin-top:5px}
.pbar i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--gold-bright),var(--good));transition:width .6s var(--ease)}
.jcard{margin-bottom:10px;border-left:4px solid var(--line)}
.jcard.ok{border-left-color:var(--good)}.jcard.watch{border-left-color:var(--gold-bright)}.jcard.risk{border-left-color:var(--bad)}
.jcard.fresh{animation:flashIn 1.6s ease both}
@keyframes flashIn{0%{box-shadow:0 0 0 3px var(--gold-bright)}100%{box-shadow:0 0 0 0 transparent}}
.jtop{display:flex;gap:10px;align-items:center}
.smav.lg{width:44px;height:44px;font-size:13px;position:relative;overflow:visible}
.smav.lg img{border-radius:50%}
.smav.lg em{position:absolute;bottom:-4px;right:-6px;font-style:normal;font-size:10px;font-weight:800;background:var(--brand);color:var(--on-brand);border-radius:8px;padding:1px 5px;border:2px solid var(--surface)}
.jtop .pill{flex:none;font-size:11px;font-weight:800;border-radius:999px;padding:4px 9px;background:var(--sunk);color:var(--muted)}
.jtop .pill.g{background:var(--good-soft);color:var(--good)}.jtop .pill.y{background:var(--gold-soft);color:var(--gold)}.jtop .pill.r{background:var(--bad-soft);color:var(--bad)}
.jn{flex:1;min-width:0}.jn b{display:block;font-size:14.5px}.jn small{font-size:11.5px;color:var(--muted)}
.jbar{position:relative;height:10px;border-radius:10px;background:var(--sunk);margin:12px 0 4px}
.jbar i{position:absolute;left:0;top:0;bottom:0;border-radius:10px;background:var(--muted);animation:growX .8s var(--ease) both;transform-origin:left;z-index:1}
.jbar i.g{background:var(--good)}.jbar i.y{background:var(--gold-bright)}.jbar i.r{background:var(--bad)}
.jbar u{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,var(--gold-light) 0 5px,var(--gold-soft) 5px 10px);border-radius:0 10px 10px 0}
.jbar em{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);opacity:.5;border-radius:2px;z-index:2}
.jnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}
.jnums small{display:block;font-size:10.5px;color:var(--muted);font-weight:700}
.jnums b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jpipe{display:flex;gap:10px;align-items:center;margin-top:10px;border-radius:var(--r-md);padding:9px 11px;background:var(--sunk)}
.jpipe.ok{background:var(--good-soft)}.jpipe.none{background:var(--warn-soft)}
.jpipe > span{font-size:18px}
.jpipe > div{flex:1;min-width:0}.jpipe b{display:block;font-size:13px}.jpipe small{font-size:11px;color:var(--muted)}
.jpipe em{font-style:normal;font-size:11px;font-weight:800;color:var(--good);white-space:nowrap}
.jpipe.old em{color:var(--muted)}
.jbadges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.jbadges span{font-size:11px;font-weight:700;background:var(--gold-soft);border-radius:999px;padding:3px 9px}
.jplan{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}
.jplan summary{font-size:13px;font-weight:800;color:var(--blue);cursor:pointer;list-style:none}
.jplan summary::-webkit-details-marker{display:none}
.jplan summary:after{content:" ›";transition:transform .2s}
.jplan ol{list-style:none;margin:8px 0;padding:0}
.jplan li{display:flex;gap:10px;padding:6px 0}
.jplan li span{font-size:17px;flex:none}
.jplan li b{display:block;font-size:13px}.jplan li small{font-size:11.5px;color:var(--muted)}

/* Stage: second row (6–10) and store / region labels */

/* How to move up */
.mup .mu{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.mup .ct + .mu{border-top:0;padding-top:4px}
.mup .mi{width:24px;height:24px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-size:12px;font-weight:800;flex:none;margin-top:1px}
.mup .mu b{display:block;font-size:14px}
.mup .mu small{display:block;font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}
.mup .mu em{display:inline-block;font-style:normal;font-size:11.5px;font-weight:700;background:var(--gold-soft);border-radius:var(--r-sm);padding:4px 8px;margin-top:6px;line-height:1.4}
.mup .mu em b{display:inline;font-size:11.5px}

/* Charts */
.cgap{font-size:12px;font-weight:700;border-radius:var(--r-md);padding:7px 10px;margin:0 0 6px;line-height:1.4}
.cgap.up{background:var(--good-soft);color:var(--good)}.cgap.down{background:var(--warn-soft);color:var(--warn)}
.cgap b{color:var(--ink)}
#cumChart svg{touch-action:pan-y;cursor:pointer}
.ctip{font-size:12px;line-height:1.5;background:var(--ink);color:#fff;border-radius:var(--r-md);padding:8px 10px;margin-top:4px;animation:popIn .25s var(--ease) both}
.ctip b{color:var(--gold-bright)}
.legend span.dash:before{height:0;border-top:2px dashed var(--c);background:none;border-radius:0;vertical-align:3px}
.legend span.dia:before{width:8px;height:8px;border-radius:1px;transform:rotate(45deg);background:var(--gold-bright);border:1px solid var(--ink)}

/* Quiz: one attempt */
.quiz button span{font-size:11px;font-weight:800;float:right;margin-top:1px}
.quiz button.right span{color:var(--good)}.quiz button.wrong span{color:var(--bad)}
.quiz button.dim{opacity:.55}
.quiz button.pick{border-color:var(--brand)}
.quiz button:disabled{cursor:default}
.quiz .qnote{font-size:12px;color:var(--muted);margin-top:8px}
.mcard.miss{border-color:#F0B4B4;background:var(--bad-soft)}
.mcard.miss:after{content:"✕";position:absolute;top:6px;right:8px;font-size:12px;font-weight:800;color:var(--bad)}

/* Learn: four tiles */
.ltiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ltile{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;min-width:0}
.ltile .ic{font-size:26px;line-height:1;margin-bottom:6px}
.ltile .ic.art{height:42px;display:flex;align-items:center;margin-bottom:8px}
.ltile .ic.art svg{display:block}
.ltile b{font-size:14.5px}
.ltile small{font-size:11.5px;color:var(--muted)}
.ltile .new{position:absolute;top:10px;right:10px;margin:0}
.ltile:after{content:"›";position:absolute;right:12px;bottom:10px;font-size:20px;color:var(--muted)}
/* Preview tiles: a design tile is always there; the real preview fades in on top */
.lth,.lcv{position:relative;overflow:hidden;flex:none;background:linear-gradient(135deg,var(--gold-soft),var(--gold-light) 55%,var(--gold-bright));display:grid;place-items:center}
.lth{width:46px;height:46px;border-radius:var(--r-md)}
.lth:before,.lcv:before{content:attr(data-ic);font-size:20px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}
.lth img,.lcv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff;opacity:0;transition:opacity .35s ease}
.lth img.in,.lcv img.in{opacity:1}
/* Learn → Collections: large cards */
.lcards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.lcard{display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-lg);padding:8px 8px 10px;min-width:0}
.lcv{width:100%;aspect-ratio:3/4;border-radius:var(--r-md);margin-bottom:6px}
.lcv:before{font-size:34px}
.lcv .prevbox{position:absolute;inset:0;display:block}
.lcv .new{position:absolute;top:6px;right:6px;margin:0;z-index:2}
.lcard b{font-size:13px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lcard small{font-size:11px;color:var(--muted)}

/* Buzz: Floor Report first page, collections */
.media.pdfp{background:linear-gradient(180deg,#E9EBEE,#DADDE2);display:grid;place-items:center;padding:14px 0}
.media.pdfp img,.media.pdfp .prevbox img{display:block;max-height:300px;max-width:78%;margin:0 auto;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.18);background:#fff}
.media.pdfp .prevbox{width:100%;min-height:120px;display:grid;place-items:center}
.gfig{margin:0 0 12px}.gfig img{display:block;width:100%;border-radius:var(--r-md)}
.gfig figcaption{font-size:11.5px;color:var(--muted);text-align:center;margin-top:4px}

/* Profile: points */
.pts{margin:0 16px 4px}
.ptop{display:flex;gap:12px;align-items:center}
.pstar{width:48px;height:48px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;font-size:24px;flex:none}
.ptop .ey{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ptop b{display:block;font-size:26px;font-weight:800;line-height:1.1;color:var(--gold)}
.ptop > div span{display:block;font-size:12px;color:var(--muted)}
.prow{animation:none}
.precent summary{font-size:13px;font-weight:800;cursor:pointer;padding:6px 0;color:var(--blue)}
.prow{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.prow small{display:block;font-size:11px;color:var(--muted)}
.prow b{color:var(--good)}
/* ===== v3.9: incentive prediction (no "earned so far") ===== */
.money .pc{flex:1 1 100%;min-width:0}
.ptag,.money .ptag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.04em;border-radius:999px;padding:2px 8px;background:var(--gold-soft);color:var(--gold);margin-left:4px;vertical-align:1px}
.psub{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.plike{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;background:linear-gradient(135deg,var(--gold-soft),var(--surface));border:1.5px solid var(--gold-bright);border-radius:var(--r-lg);padding:12px 14px;cursor:pointer}
.plike small{display:block;font-size:11px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.05em}
.plike span{display:block;font-size:12px;color:var(--muted);line-height:1.4;margin-top:2px}
.plike span b{color:var(--ink)}
.plike > b{font-size:26px;font-weight:800;color:var(--gold);white-space:nowrap;letter-spacing:-.01em}
.pmeter{margin:16px 0 8px}
.pm-l{display:flex;justify-content:space-between;font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:24px}
.pm-l b{color:var(--ink)}
.pbar2{position:relative;height:14px;border-radius:14px;background:var(--sunk)}
.pbar2 > i{position:absolute;left:0;top:0;bottom:0;border-radius:14px;transform-origin:left;animation:growX .9s var(--ease) both .1s}
.pbar2 .lk{background:repeating-linear-gradient(135deg,var(--gold-light) 0 6px,var(--gold-soft) 6px 12px)}
.pbar2 .nw{background:linear-gradient(90deg,var(--gold-bright),var(--gold))}
.pbar2 em{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);opacity:.45;border-radius:2px}
.pbar2 em span{position:absolute;top:20px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:800;font-style:normal;color:var(--muted);white-space:nowrap}
.pbar2 em.up span{top:auto;bottom:20px}
.pbar2 em.start{background:var(--warn);opacity:1}.pbar2 em.start span{color:var(--warn)}
.plg{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;font-size:11px;color:var(--muted)}
.plg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px -1px 0}
.plg i.a{background:var(--gold)}.plg i.b{background:var(--gold-light)}.plg i.b + *{margin:0}
.plv-h{font-size:12.5px;font-weight:800;margin-top:26px}
.pnote{font-size:12px;line-height:1.45;border-radius:var(--r-md);padding:9px 11px;margin-top:10px;font-weight:700}
.pnote.warn{background:var(--warn-soft);color:var(--warn)}.pnote.good{background:var(--good-soft);color:var(--good)}
.pmore{display:block;margin:12px auto 0;font-weight:800;color:var(--blue)}
.psteps,.ihero .psteps{display:block;list-style:none;margin:8px 0 0;padding:0}
.psteps li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.psteps li:first-child{border-top:0}
.psteps .n{width:24px;height:24px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-size:11.5px;font-weight:800;flex:none}
.psteps li > div{flex:1;min-width:0}
.psteps b{display:block;font-size:13.5px}
.psteps small{display:block;font-size:12px;color:var(--muted);line-height:1.45;margin-top:1px}
.psteps em{font-style:normal;font-weight:800;font-size:14px;white-space:nowrap}
.psteps li.zero em{color:var(--muted);font-weight:700}
.psteps.two li{padding:8px 0}
.ptotal{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:12px 14px;background:var(--brand);color:var(--on-brand);border-radius:var(--r-md);font-weight:700}
.ptotal b{font-size:20px;color:var(--gold-bright)}
.sct.pt td small{color:var(--muted);font-weight:600}
.sct.pt tr.hi td:last-child b{font-size:15px}
.pladder{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;align-items:end;height:120px;margin-top:10px}
.pladder > div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.pladder i{display:block;width:100%;border-radius:8px 8px 4px 4px;background:var(--gold-light);transform-origin:bottom;animation:growY .6s var(--ease) both}
.pladder .z i{background:var(--line)}
.pladder .now i{background:linear-gradient(180deg,var(--gold-bright),var(--gold))}
.pladder em{font-style:normal;font-size:10px;font-weight:800;margin-bottom:3px;white-space:nowrap}
.pladder span{font-size:11px;font-weight:700;color:var(--muted);margin-top:4px}

/* demo-only screenshot mode for the training guides */
html.shot *,html.shot *::before,html.shot *::after{animation:none!important;transition:none!important}
html.shot #banner{display:none!important}
/* Performance details: red / amber / green */
.row[class*="rag-"] .r:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:2px;background:currentColor}
.row.rag-g .r{color:var(--good)}.row.rag-y .r{color:var(--warn)}.row.rag-r .r{color:var(--bad)}
.legend.rag span:before{border-radius:50%;width:8px;height:8px;vertical-align:0}
.legend.rag .g:before{background:var(--good)}.legend.rag .y:before{background:var(--warn)}.legend.rag .r:before{background:var(--bad)}
/* =====================================================================
   ORRY: the AI assistant (character, floating button, space, chat, talk)
   ===================================================================== */
.orry{width:var(--s);height:var(--s);position:relative;flex:none;display:inline-block}
.orry svg{width:100%;height:100%;display:block;position:relative;z-index:2;overflow:visible}
.orry .body{transform-box:fill-box;transform-origin:50% 60%;animation:oyBreathe 4.6s ease-in-out infinite}
@keyframes oyBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.025) translateY(-1%)}}
.orry .gaze{transition:transform .45s var(--ease)}
.orry .eyes{transform-box:fill-box;transform-origin:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .25s}
.orry .eye{transform-box:fill-box;transform-origin:center;animation:oyBlink 4.4s infinite}.orry .eye.r{animation-delay:.04s}
@keyframes oyBlink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.08)}}
.orry .happy,.orry .blush,.orry .brow{opacity:0;transition:opacity .3s}
.orry .aura{position:absolute;inset:-12%;border-radius:50%;z-index:1;opacity:0;background:radial-gradient(circle,rgba(217,165,32,.45),rgba(217,165,32,0) 68%);transition:opacity .4s}
.orry .ring{position:absolute;inset:-6%;border-radius:50%;border:2px solid rgba(217,165,32,.7);opacity:0;z-index:1}
.orry .dots{position:absolute;right:-6%;top:-4%;display:flex;gap:3px;opacity:0;transition:opacity .3s;z-index:3}
.orry .dots b{width:calc(var(--s)*.07);height:calc(var(--s)*.07);min-width:3px;min-height:3px;border-radius:50%;background:#D9A520;animation:oyDot 1s infinite}
.orry .dots b:nth-child(2){animation-delay:.15s}.orry .dots b:nth-child(3){animation-delay:.3s}
@keyframes oyDot{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-40%);opacity:1}}
.orry.happy .eyes{opacity:0}.orry.happy .happy{opacity:1}.orry.happy .blush{opacity:.75}
.orry.happy .body{animation:oyHop .9s cubic-bezier(.34,1.56,.64,1) 1}
@keyframes oyHop{30%{transform:translateY(-6%) scale(1.04)}60%{transform:scale(.98)}}
.orry.care .eyes{transform:scale(.92) translateY(6px)}.orry.care .blush{opacity:.45}.orry.care .brow{opacity:1}
.orry.listen .eyes{transform:scale(1.16)}.orry.listen .aura{opacity:1;animation:oyAura 1.4s ease-in-out infinite}.orry.listen .ring{animation:oyRipple 1.8s ease-out infinite}
@keyframes oyAura{0%,100%{transform:scale(.95);opacity:.7}50%{transform:scale(1.08);opacity:1}}
@keyframes oyRipple{from{transform:scale(.95);opacity:.8}to{transform:scale(1.45);opacity:0}}
.orry.think .gaze{transform:translate(22px,-20px)!important}.orry.think .dots{opacity:1}
.orry.speak .eyes{animation:oyTalk .32s ease-in-out infinite alternate}.orry.speak .aura{opacity:.8;animation:oyAura .6s ease-in-out infinite}
@keyframes oyTalk{from{transform:translateY(0)}to{transform:translateY(-6px) scaleY(.9)}}
.orry.wave .body{animation:oyWiggle 1.2s var(--ease) 1}
@keyframes oyWiggle{20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(2deg)}}
/* Orry's extra expressions (home screen personality) */
.orry .heart,.orry .star,.orry .sleep,.orry .winkarc{opacity:0;transition:opacity .25s}
.orry .heart g,.orry .star g{transform-box:fill-box;transform-origin:center}
.orry.love .eyes,.orry.starry .eyes,.orry.sleepy .eyes{opacity:0}
.orry.love .heart{opacity:1}.orry.love .heart g{animation:oyBeat .55s ease-in-out infinite}.orry.love .blush{opacity:1}
.orry.starry .star{opacity:1}.orry.starry .star g{animation:oyTwirl 1.4s linear infinite}.orry.starry .blush{opacity:.6}
@keyframes oyBeat{50%{transform:scale(1.18)}}
@keyframes oyTwirl{50%{transform:scale(1.15) rotate(20deg)}}
.orry.wink .eye.r{opacity:0}.orry.wink .winkarc{opacity:1}.orry.wink .blush{opacity:.5}
.orry.curious .brow{opacity:1}.orry.curious .eyes{transform:scale(1.08)}
.orry.surprised .eyes{transform:scale(1.3)}.orry.surprised .brow{opacity:1}
.orry.sleepy .sleep{opacity:1}.orry.sleepy .body{animation-duration:7s}
.orry .gem{transform-box:fill-box;transform-origin:50% 100%;animation:oyGem 4.6s ease-in-out infinite}
@keyframes oyGem{50%{transform:rotate(8deg)}}
.orry .glint{transform-box:fill-box;transform-origin:center;animation:oyGlint 2.6s ease-in-out infinite}
@keyframes oyGlint{0%,70%,100%{opacity:0;transform:scale(.2)}80%{opacity:1;transform:scale(1) rotate(45deg)}}
@media (prefers-reduced-motion:reduce){.orry *,.orry-ui *{animation:none!important;transition:none!important}}

/* floating button: bottom centre, above the menu */
.orry-fab{position:fixed;left:50%;bottom:calc(74px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:7;border:0;padding:0;background:none;border-radius:50%;filter:drop-shadow(0 8px 16px rgba(0,0,0,.22));transition:transform .4s cubic-bezier(.34,1.56,.64,1);cursor:pointer}
.orry-fab:active{transform:translateX(-50%) scale(.92)}
.has-orry .scr{padding-bottom:calc(150px + env(safe-area-inset-bottom))}
.sheet-open .orry-fab,.orry-open .orry-fab,.sheet-open .orry-nudge{display:none}
.orry-nudge{position:fixed;left:50%;bottom:calc(146px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(10px) scale(.9);opacity:0;background:#141414;color:#fff;border-radius:18px;padding:10px 14px;font-size:13px;font-weight:700;white-space:nowrap;z-index:7;transition:all .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 10px 24px rgba(0,0,0,.2);cursor:pointer}
.orry-nudge:after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#141414;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.orry-nudge.show{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}

/* full-screen Orry layer */
.orry-ui{position:fixed;inset:0;z-index:25;display:flex;justify-content:center;opacity:0;transform:translateY(24px);transition:opacity .35s var(--ease),transform .45s var(--ease);background:rgba(0,0,0,.35)}
.orry-ui.show{opacity:1;transform:none}
.orry-open{overflow:hidden}
.oy-pane{position:relative;width:100%;max-width:520px;height:100%;overflow:hidden;display:flex;flex-direction:column}
.oy-x,.oy-x2{position:absolute;top:calc(14px + env(safe-area-inset-top));right:16px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.7);backdrop-filter:blur(10px);font-size:15px;z-index:5;color:#141414}
.oy-x.dark{background:rgba(255,255,255,.1);border-color:transparent;color:#fff}
/* space */
.oy-space{background:linear-gradient(#FFF9EC 0,#FFF9EC 32%,#F2F3F5 72%);padding:calc(56px + env(safe-area-inset-top)) 20px calc(18px + env(safe-area-inset-bottom));overflow-y:auto}
.oy-aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.oy-aurora i{position:absolute;border-radius:50%;filter:blur(42px);opacity:.75;animation:oyFloat 14s ease-in-out infinite}
.oy-aurora i:nth-child(1){width:280px;height:280px;background:#F7D98A;top:-70px;left:-70px}
.oy-aurora i:nth-child(2){width:240px;height:240px;background:#FBE3D6;top:140px;right:-90px;animation-delay:-4s}
.oy-aurora i:nth-child(3){width:260px;height:260px;background:#E6ECFF;bottom:40px;left:-50px;animation-delay:-8s}
@keyframes oyFloat{33%{transform:translate(30px,20px) scale(1.08)}66%{transform:translate(-20px,30px) scale(.95)}}
.oy-meet{position:absolute;top:calc(14px + env(safe-area-inset-top));left:16px;z-index:5;border:1px solid #fff;background:rgba(255,255,255,.8);backdrop-filter:blur(10px);border-radius:999px;padding:9px 13px;font:inherit;font-size:12.5px;font-weight:800;color:var(--gold)}
.oy-info{position:absolute;top:calc(14px + env(safe-area-inset-top));right:62px;width:38px;height:38px;border-radius:50%;border:1px solid #fff;background:rgba(255,255,255,.7);backdrop-filter:blur(10px);font:inherit;font-size:14px;font-weight:800;z-index:5;color:#141414}
.oy-hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.oy-stage{position:relative;width:230px;height:230px;display:grid;place-items:center;margin-top:-18px;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.oy-stage .glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(217,165,32,.40),rgba(217,165,32,0) 66%);animation:oyGlow 3.4s ease-in-out infinite;transition:background .5s}
.oy-stage.love .glow{background:radial-gradient(circle,rgba(232,93,117,.30),rgba(232,93,117,0) 66%)}
.oy-stage .rg{position:absolute;inset:34px;border-radius:50%;border:2px solid rgba(217,165,32,.5);animation:oyRing 3.4s ease-out infinite}
.oy-stage .rg:nth-of-type(4){animation-delay:1.13s}.oy-stage .rg:nth-of-type(5){animation-delay:2.26s}
@keyframes oyGlow{50%{transform:scale(1.07);opacity:.75}}
@keyframes oyRing{from{transform:scale(.8);opacity:.9}to{transform:scale(1.22);opacity:0}}
.oy-stage .shadow{position:absolute;bottom:18px;left:50%;width:110px;height:14px;margin-left:-55px;border-radius:50%;background:rgba(148,101,0,.22);filter:blur(5px);animation:oyShad 4.6s ease-in-out infinite}
@keyframes oyShad{50%{transform:scale(.88);opacity:.75}}
.oy-stage .orry{cursor:pointer;transform-origin:50% 90%;filter:drop-shadow(0 16px 24px rgba(148,101,0,.25));z-index:2}
.oy-fx{position:absolute;left:50%;top:50%;pointer-events:none;font-size:20px;line-height:1;z-index:3;will-change:transform,opacity}
.oy-fx.sp{color:#D9A520}.oy-fx.z{color:#5E646D;font-weight:800}
.oy-mood{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--good);background:rgba(255,255,255,.88);border-radius:999px;padding:5px 12px;margin-top:-8px;min-height:26px;transition:color .3s;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.oy-mood:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.oy-mood span.in{animation:oyIn .3s var(--ease)}
@keyframes oyIn{from{opacity:0;transform:translateY(5px)}}
.oy-say{position:relative;margin-top:12px;background:#fff;border-radius:20px;padding:14px 16px;font-size:15px;line-height:1.45;font-weight:600;box-shadow:0 10px 28px rgba(148,101,0,.10);min-height:72px;width:100%;text-align:left;opacity:0;transform:translateY(10px) scale(.97);transition:opacity .5s,transform .5s cubic-bezier(.34,1.56,.64,1)}
.oy-say.on{opacity:1;transform:none}
.oy-say:before{content:"";position:absolute;top:-6px;left:50%;width:14px;height:14px;background:#fff;transform:translateX(-50%) rotate(45deg);border-radius:3px}
.oy-say b{color:var(--gold);font-weight:800}
.oy-caret{display:inline-block;width:2px;height:16px;background:#D9A520;vertical-align:-3px;animation:oyCaret 1s steps(2) infinite}@keyframes oyCaret{50%{opacity:0}}
.oy-acts{display:flex;gap:8px;margin-top:10px;width:100%;opacity:0;transform:translateY(8px);pointer-events:none;transition:all .5s var(--ease)}
.oy-acts.on{opacity:1;transform:none;pointer-events:auto}
.oy-acts button{flex:1;border-radius:999px;padding:9px 8px;font:inherit;font-size:12.5px;font-weight:800;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.oy-acts button:active{transform:scale(.95)}
.oy-acts .p{background:#FBF0D3;color:var(--gold);border:1.5px solid #F0D88F}
.oy-acts .s{background:#fff;border:1.5px solid #E3E6EA;color:#5E646D}
/* Chat + Talk: the two main actions */
.oy-modes{position:relative;display:grid;grid-template-columns:1.25fr 1fr;gap:10px;margin-top:18px}
.oy-mode{position:relative;overflow:hidden;text-align:left;border:0;border-radius:22px;padding:16px 16px 14px;font:inherit;display:flex;flex-direction:column;gap:10px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.oy-mode:active{transform:scale(.96)}
.oy-mode .ic{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;font-size:21px;position:relative}
.oy-mode b{font-size:17px;font-weight:800}
.oy-mode small{font-size:12px;font-weight:600;margin-top:-8px}
.oy-mode.chat{background:#0D0D0D;color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.22)}
.oy-mode.chat .ic{background:linear-gradient(135deg,#F3D27A,#D9A520);color:#141414}
.oy-mode.chat small{color:#C9CCD1}
.oy-mode.chat:before{content:"";position:absolute;top:0;left:-60%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.14),transparent);animation:oyShine 3.6s ease-in-out infinite}
@keyframes oyShine{0%,55%{left:-60%}100%{left:130%}}
.oy-mode .dt{position:absolute;right:16px;top:20px;display:flex;gap:4px}
.oy-mode .dt i{width:6px;height:6px;border-radius:50%;background:#F3D27A;animation:oyDot 1.2s infinite}
.oy-mode .dt i:nth-child(2){animation-delay:.15s}.oy-mode .dt i:nth-child(3){animation-delay:.3s}
.oy-mode.talk{background:linear-gradient(150deg,#FBF0D3,#fff);border:1.5px solid #F0D88F;color:#0D0D0D;box-shadow:0 10px 24px rgba(148,101,0,.14)}
.oy-mode.talk .ic{background:#fff;border:1.5px solid #F0D88F}
.oy-mode.talk .ic:after{content:"";position:absolute;inset:-6px;border-radius:19px;border:2px solid rgba(217,165,32,.55);animation:oyRipple 2.2s ease-out infinite}
.oy-mode.talk small{color:#5E646D}
.oy-mode .wv{position:absolute;right:14px;top:22px;display:flex;gap:3px;align-items:center;height:22px}
.oy-mode .wv i{width:3.5px;border-radius:3px;background:#D9A520;animation:oyWv 1.1s ease-in-out infinite}
.oy-mode .wv i:nth-child(2){animation-delay:.12s}.oy-mode .wv i:nth-child(3){animation-delay:.24s}.oy-mode .wv i:nth-child(4){animation-delay:.36s}
@keyframes oyWv{0%,100%{height:6px}50%{height:20px}}
.oy-lbl{position:relative;font-size:11.5px;font-weight:800;letter-spacing:.08em;color:#5E646D;margin:20px 2px 10px}
.oy-faq{position:relative;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.03)}
.oy-faq button{display:flex;width:100%;align-items:center;gap:10px;padding:11px 14px;border:0;background:none;font:inherit;font-size:14px;font-weight:700;color:#0D0D0D;text-align:left}
.oy-faq button+button{border-top:1px solid #E3E6EA}
.oy-faq button:active{background:#F5F6F8}
.oy-faq span{width:30px;height:30px;border-radius:10px;background:#FBF0D3;display:grid;place-items:center;font-size:15px;flex:none}
.oy-faq button:after{content:"\203A";margin-left:auto;color:#5E646D;font-size:20px;line-height:1}
.oy-trust{position:relative;margin-top:14px;font-size:12px;color:#4a4f57;line-height:1.45;background:rgba(255,255,255,.8);border-radius:14px;padding:10px 12px}
/* Meet Orry card */
.oy-card{position:absolute;inset:0;z-index:8;background:linear-gradient(#FFF9EC,#fff 55%);display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(56px + env(safe-area-inset-top)) 20px 24px;overflow-y:auto;animation:oyCard .35s var(--ease)}
@keyframes oyCard{from{opacity:0;transform:scale(1.04)}}
.oy-card[hidden]{display:none}
.oy-cx{position:absolute;top:calc(14px + env(safe-area-inset-top));right:16px;width:38px;height:38px;border-radius:50%;border:1px solid #E3E6EA;background:#fff;font:inherit;font-weight:800}
.oy-card .orry{filter:drop-shadow(0 12px 20px rgba(148,101,0,.25))}
.oy-card h3{font-size:26px;font-weight:800;margin-top:10px}
.oy-card .tag{font-size:13.5px;color:var(--gold);font-weight:800;margin-top:2px}
.oy-card p{font-size:15px;font-weight:600;margin:14px 6px 0;line-height:1.5}
.oy-card .traits{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px}
.oy-card .traits span{background:#fff;border:1px solid #E3E6EA;border-radius:999px;padding:6px 11px;font-size:12.5px;font-weight:700}
.oy-card .likes{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;text-align:left}
.oy-card .likes div{background:#fff;border-radius:16px;padding:12px;border:1px solid #E3E6EA;font-size:13px;line-height:1.6}
.oy-card .likes b{display:block;font-size:11.5px;letter-spacing:.08em;color:#5E646D;margin-bottom:2px}
/* chat */
.oy-chat{background:#F7F5F0}
.oy-ch{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 14px 10px;background:rgba(247,245,240,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(13,13,13,.07);position:relative;z-index:3}
.oy-ch b{display:block;font-size:15px}.oy-ch small{font-size:11px;color:#0A8A57;font-weight:700}
.oy-back{border:0;background:none;font-size:26px;line-height:1;padding:0 4px;color:#141414}
.oy-ch .oy-x2{position:static;margin-left:auto;background:#fff;border-color:#fff;width:34px;height:34px}
.oy-feed{flex:1;overflow-y:auto;padding:14px 12px 8px;display:flex;flex-direction:column;gap:10px;scrollbar-width:none}.oy-feed::-webkit-scrollbar{display:none}
.oy-msg{max-width:86%;font-size:14px;line-height:1.5}
.oy-msg.an{animation:oyPop .5s cubic-bezier(.34,1.56,.64,1) both}
@keyframes oyPop{from{opacity:0;transform:translateY(10px) scale(.96)}}
.oy-msg.me{align-self:flex-end;background:#141414;color:#fff;border-radius:22px 22px 6px 22px;padding:10px 14px;white-space:pre-wrap;word-break:break-word}
.oy-msg.or{align-self:flex-start;display:flex;gap:8px;align-items:flex-end}
.oy-bub{background:#fff;border-radius:22px 22px 22px 6px;padding:11px 14px;box-shadow:0 2px 10px rgba(0,0,0,.04);min-width:0;word-break:break-word}
.oy-bub p{margin:0 0 6px}.oy-bub p:last-child{margin-bottom:0}.oy-bub b{font-weight:800}
.oy-bub ul{margin:4px 0 6px;padding-left:18px}.oy-bub li{margin:3px 0}
.oy-plan{background:#FBF7EC;border-radius:16px;padding:4px 10px;margin:6px 0}
.oy-plan label{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid rgba(13,13,13,.07);font-size:13.5px}
.oy-plan label:first-child{border-top:0}.oy-plan input{accent-color:#141414;width:18px;height:18px;margin-top:1px;flex:none}
.oy-plan input:checked+span{text-decoration:line-through;color:#6B717A}
.oy-rx{display:flex;gap:6px;margin-top:8px}.oy-rx button{border:1px solid rgba(13,13,13,.08);background:#fff;border-radius:999px;padding:3px 10px;font-size:12px}.oy-rx button.on{background:#141414;color:#fff;border-color:#141414}
.oy-note{align-self:center;background:#FBF0D3;color:#6e4b00;border-radius:16px;padding:9px 13px;font-size:13px;text-align:center;max-width:90%}
.oy-typing{align-self:flex-start;display:flex;gap:8px;align-items:flex-end}
.oy-typing .oy-bub{display:flex;gap:4px;padding:13px 14px}.oy-typing .oy-bub i{width:7px;height:7px;border-radius:50%;background:#B9BDC4;animation:oyDot 1s infinite}
.oy-typing .oy-bub i:nth-child(2){animation-delay:.15s}.oy-typing .oy-bub i:nth-child(3){animation-delay:.3s}
.oy-sugg{display:flex;gap:7px;padding:6px 12px;overflow-x:auto;scrollbar-width:none}.oy-sugg::-webkit-scrollbar{display:none}
.oy-sugg button{white-space:nowrap;background:#fff;border:1px solid rgba(13,13,13,.08);border-radius:999px;padding:8px 12px;font:inherit;font-size:12.5px;font-weight:700;color:#141414}
.oy-comp{margin:6px 10px calc(12px + env(safe-area-inset-bottom));background:#fff;border-radius:28px;display:flex;align-items:center;padding:6px 6px 6px 16px;gap:6px;box-shadow:0 6px 24px rgba(0,0,0,.07)}
.oy-comp input{flex:1;border:0;outline:0;font:inherit;font-size:15px;background:none;min-width:0}
.oy-comp button{width:42px;height:42px;border-radius:50%;border:0;font-size:16px;flex:none}
.oy-comp .mic{background:#F3F1EC}.oy-comp .send{background:#141414;color:#fff}
/* talk */
.oy-talk{background:radial-gradient(120% 80% at 50% 30%,#2a2210 0%,#0c0c0d 60%);color:#fff;align-items:center;text-align:center;padding:calc(60px + env(safe-area-inset-top)) 22px calc(24px + env(safe-area-inset-bottom))}
.oy-langs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.oy-langs button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#d8d2c2;border-radius:999px;padding:6px 11px;font:inherit;font-size:12px;font-weight:700}
.oy-langs button.on{background:#D9A520;color:#1b1300;border-color:#D9A520}
.oy-orb{position:relative;margin:38px 0 22px;width:210px;height:210px;display:grid;place-items:center}
.oy-orb .glow{position:absolute;inset:-34px;border-radius:50%;background:radial-gradient(circle,rgba(217,165,32,.42),transparent 65%);transition:transform .15s}
.oy-orb .halo{position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(217,165,32,.5);animation:oyRipple 2.4s ease-out infinite}.oy-orb .halo.h2{animation-delay:1.2s}
.oy-orb .parts i{position:absolute;width:4px;height:4px;border-radius:50%;background:#D9A520;opacity:.6;animation:oyRise 6s linear infinite}
@keyframes oyRise{from{transform:translateY(0);opacity:0}10%{opacity:.7}to{transform:translateY(-320px);opacity:0}}
.oy-state{font-size:22px;font-weight:800;letter-spacing:-.01em;min-height:30px}
.oy-sub{font-size:12.5px;color:#A9A391;margin-top:4px;max-width:300px}
.oy-cap{margin-top:18px;font-size:16px;line-height:1.55;color:#fff;max-width:330px;max-height:30vh;overflow-y:auto}
.oy-tctl{margin-top:auto;display:flex;gap:20px;align-items:center}
.oy-tctl .sm{width:54px;height:54px;border-radius:50%;border:0;background:rgba(255,255,255,.1);color:#fff;font-size:18px}
.oy-tctl .end{background:#C62828}
.oy-tctl .bigmic{width:80px;height:80px;border-radius:50%;border:0;background:linear-gradient(135deg,#E9B93A,#C68B10);font-size:28px;box-shadow:0 0 0 8px rgba(217,165,32,.18);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s}
.oy-tctl .bigmic.on{box-shadow:0 0 0 14px rgba(217,165,32,.28);transform:scale(1.06)}
.oy-tctl .bigmic:disabled{opacity:.35}
.oy-hear{display:block;margin:12px auto 0;border:0;border-radius:999px;background:#D9A520;color:#1b1300;font:inherit;font-weight:800;font-size:14px;padding:10px 18px}
/* =====================================================================
   STARTUP SCREEN (build 2.9, Option H, same for everyone). Full show on the first open of the day (about 2 s), quick (.quick) after that.
   Calm blue and gold light drifts behind, the ORRA logo comes into focus, a gold rule with a gem grows, PULSE tracks in; then a soft fade.
   ===================================================================== */
.splash{position:fixed;inset:0;z-index:100;overflow:hidden;background:#F2F3F5;color:var(--ink)}
.splash.out{animation:spOut .38s ease forwards}
.splash.quick.out{animation-duration:.26s}
.splash.gone{display:none}
@keyframes spOut{to{opacity:0;visibility:hidden}}
.sp-stage{position:relative;width:100%;height:100%;display:grid;place-items:center}
.sp-blob{position:absolute;width:min(78vw,320px);aspect-ratio:1;border-radius:50%;filter:blur(50px);opacity:0;will-change:transform,opacity}
.sp-blob.b1{background:#BCD3EA;left:-14%;top:20%}
.sp-blob.b2{background:#F2DFAE;right:-20%;top:44%}
.sp-mark{position:relative;text-align:center;margin-top:-6vh}
.sp-logo{display:block;width:132px;height:auto;margin:0 auto;opacity:0;filter:blur(10px);transform:scale(1.08)}
.sp-rule{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px}
.sp-rule i{display:block;width:0;height:1px;background:#C9A040}
.sp-rule b{width:6px;height:6px;border-radius:1px;background:#C9A040;transform:rotate(45deg) scale(0)}
.sp-pulse{margin-top:12px;font-weight:800;font-size:12.5px;letter-spacing:.42em;padding-left:.42em;color:#3D6E9F;opacity:0}
.go .sp-blob.b1{animation:spSoft .8s ease forwards,spDrift1 2.6s ease-in-out forwards}
.go .sp-blob.b2{animation:spSoft .8s ease .1s forwards,spDrift2 2.6s ease-in-out forwards}
.go .sp-logo{animation:spFocus .9s cubic-bezier(.2,.8,.2,1) .2s forwards}
.go .sp-rule i{animation:spGrow .6s cubic-bezier(.2,.8,.2,1) .8s forwards}
.go .sp-rule b{animation:spGem .4s cubic-bezier(.34,1.56,.64,1) 1s forwards}
.go .sp-pulse{animation:spTrack .6s cubic-bezier(.2,.8,.2,1) 1.15s forwards}
@keyframes spSoft{to{opacity:.6}}
@keyframes spDrift1{to{transform:translate(60px,-40px) scale(1.15)}}
@keyframes spDrift2{to{transform:translate(-50px,30px) scale(1.1)}}
@keyframes spFocus{to{opacity:1;filter:blur(0);transform:none}}
@keyframes spGrow{to{width:46px}}
@keyframes spGem{to{transform:rotate(45deg) scale(1)}}
@keyframes spTrack{from{opacity:0;letter-spacing:1.1em}to{opacity:1;letter-spacing:.42em}}
/* quick version (later opens on the same day): the same picture, settled in about 0.4 s */
.go.quick .sp-blob.b1,.go.quick .sp-blob.b2{animation:spSoft .25s ease forwards}
.go.quick .sp-logo{animation:spFocus .32s cubic-bezier(.2,.8,.2,1) forwards}
.go.quick .sp-rule i{animation:spGrow .28s cubic-bezier(.2,.8,.2,1) .06s forwards}
.go.quick .sp-rule b{animation:spGem .25s cubic-bezier(.34,1.56,.64,1) .12s forwards}
.go.quick .sp-pulse{animation:spTrack .3s cubic-bezier(.2,.8,.2,1) .1s forwards}
@media (prefers-reduced-motion:reduce){.splash,.splash *{animation-duration:.01s!important;animation-delay:0s!important}}
/* Voice of ORRA: leaders' videos (YouTube thumbnail in the feed, player in a sheet) */
.ptag.video{background:#141414;color:#F3D27A}
.media.vid{aspect-ratio:16/9;background:#141414;overflow:hidden}
.media.vid img{display:block;width:100%;height:100%;object-fit:cover}
.media.vid::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.45))}
.vplay{position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;background:rgba(255,255,255,.95);color:#141414;display:grid;place-items:center;font-size:22px;padding-left:4px;z-index:2;box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform .25s var(--ease)}
.media.vid:active .vplay{transform:scale(.92)}
.media.vid .mbadge{z-index:2}
.vplayer{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;background:#000;margin-top:12px}
.vplayer iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vdesc{margin-top:12px;font-size:14px;line-height:1.55;white-space:pre-wrap;color:var(--ink)}
.vyt{display:block;text-align:center;text-decoration:none;margin-top:14px}

/* ===== v4.0 build 2 · Customers tab, follow-ups card, Performance › Schemes, SM leaderboard (as in mockups/customers-tab-preview.html) ===== */
.pt-hide{display:none!important}
.ptabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 16px 4px;background:var(--sunk);border-radius:var(--r-lg);padding:5px}
.ptabs button{border:0;background:none;border-radius:var(--r-md);padding:9px 2px;font:inherit;font-size:13.5px;font-weight:800;color:var(--muted);display:flex;gap:6px;align-items:center;justify-content:center}
.ptabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.ptabs em{font-style:normal;font-size:11px;background:var(--bad);color:#fff;border-radius:999px;padding:1px 7px}
.cx-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 16px 6px}
.cx-top h1{font-size:22px;font-weight:800;margin:0}.cx-top p{margin:2px 0 0;font-size:13px;color:var(--muted);font-weight:600}
.cx-back{border:0;background:none;font:inherit;font-weight:800;font-size:13px;color:var(--muted);margin:12px 16px 0;padding:0}
.cx-ring{position:relative;width:58px;height:58px;flex:none}.cx-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.cx-ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:13.5px;font-weight:800}
.cx-list{padding:4px 0}
.cx-gw + .cx-gw{border-top:1px solid var(--line)}
.cx-g{display:flex;width:100%;align-items:center;gap:12px;padding:12px 14px;border:0;background:none;font:inherit;text-align:left;color:inherit}
.cx-g .gi{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-size:18px;background:var(--sunk);flex:none}
.cx-g .t{flex:1;min-width:0}.cx-g b{display:block;font-size:14.5px}.cx-g small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:1px}
.cx-g .n{font-style:normal;min-width:26px;text-align:center;font-size:13px;font-weight:800;border-radius:999px;padding:3px 8px;background:var(--sunk)}
.cx-g .n.hot{background:var(--bad);color:#fff}.cx-g .n.warm{background:var(--warn-soft);color:var(--warn)}.cx-g .n.gold{background:var(--gold-soft);color:var(--gold)}.cx-g .n.ok{background:var(--good-soft);color:var(--good)}
.cx-g > i{font-style:normal;color:var(--muted);font-weight:800;font-size:18px;transition:transform .2s var(--ease)}.cx-g.open > i{transform:rotate(90deg)}
.cx-in{background:var(--sunk);margin:0 10px 10px;border-radius:14px;padding:2px 0}
.cx-c{display:flex;width:100%;align-items:center;gap:10px;padding:10px 12px;border:0;background:none;font:inherit;text-align:left;color:inherit}
.cx-c + .cx-c{border-top:1px solid var(--line)}
.cx-c .av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--surface);border:1.5px solid var(--line);flex:none}
.cx-c .t{flex:1;min-width:0}.cx-c b{display:block;font-size:13.5px}.cx-c small{display:block;font-size:11.5px;color:var(--muted);font-weight:600}
.cx-c .st{font-size:11px;font-weight:800;border-radius:999px;padding:4px 9px;white-space:nowrap;max-width:46%;overflow:hidden;text-overflow:ellipsis}
.st.todo{background:var(--brand);color:var(--on-brand)}.st.done{background:var(--good-soft);color:var(--good)}.st.wait{background:var(--warn-soft);color:var(--warn)}.st.wa{background:#E7F7EE;color:#0A7A45}
.cx-sum{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 10px 8px}
.cx-sum div{background:var(--surface);border:1px solid #F0D88F;border-radius:12px;padding:9px 10px}.cx-sum small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.cx-sum b{display:block;font-size:18px;font-weight:800;margin-top:2px}
.gold{color:var(--gold)}
.cx-mat{background:linear-gradient(160deg,#FFF7E2,transparent 60%)}
.cx-note{font-size:11.5px;color:var(--muted);font-weight:600;text-align:center;margin:10px 20px 0;line-height:1.45}
.cx-when{display:flex;gap:8px;padding:12px 16px 2px}
.cx-when button{flex:1;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 4px;font:inherit;font-size:12px;font-weight:800;color:inherit}
.cx-when button.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.cx-home{display:flex;width:100%;align-items:center;gap:12px;background:linear-gradient(135deg,#141414,#2B2D31);color:#fff;border:0;font:inherit;text-align:left}
.cx-home .gi{width:44px;height:44px;border-radius:14px;background:rgba(243,210,122,.16);display:grid;place-items:center;font-size:22px;flex:none}
.cx-home .t{flex:1}.cx-home b{display:block;font-size:16px}.cx-home small{display:block;font-size:11.5px;color:#C9CCD1;font-weight:600;margin-top:2px}
.cx-home .btn{background:var(--gold-light);color:#141414}
.nav .nbadge{position:absolute;top:2px;left:calc(50% + 6px);font-style:normal;font-size:10px;font-weight:800;background:var(--bad);color:#fff;border-radius:999px;padding:1px 5px;border:2px solid var(--surface)}
.cx-info{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:14px}
.cx-info div{background:var(--sunk);border-radius:12px;padding:9px 8px;text-align:center}.cx-info small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.cx-info b{display:block;font-size:15px;font-weight:800;margin-top:2px}
.cx-info .bad{background:var(--bad-soft)}.cx-info .bad b{color:var(--bad)}
.cx-due{margin-top:10px;background:var(--warn-soft);border-radius:12px;padding:10px 12px;font-size:12.5px;font-weight:700;color:var(--warn)}
.cx-btn2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.cx-btn2 span{border:1.5px dashed var(--line);border-radius:12px;padding:10px 6px;text-align:center;font-size:12.5px;font-weight:800;color:#9AA0A6}.cx-btn2 small{display:block;font-size:10px;font-weight:700}
.cx-lbl{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}
.cx-rem{display:flex;flex-wrap:wrap;gap:8px}.cx-rem button{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 12px;font:inherit;font-size:12.5px;font-weight:700;color:inherit}
.cx-rem button.on{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.cx-past{font-size:12px;color:var(--muted);font-weight:600;margin-top:12px;background:var(--sunk);border-radius:12px;padding:9px 12px}
.cx-jc{display:flex;width:100%;align-items:center;gap:10px;padding:11px 14px;border:0;background:none;font:inherit;text-align:left;color:inherit}
.cx-jc + .cx-jc{border-top:1px solid var(--line)}
.cx-jc .t{flex:1;min-width:0}.cx-jc b{display:block;font-size:13.5px}.cx-jc .bar{display:block;height:7px;border-radius:7px;background:var(--bad-soft);overflow:hidden;margin-top:6px}.cx-jc .bar i{display:block;height:100%;background:var(--good);border-radius:7px}
.cx-jc .v{font-size:12.5px;font-weight:800;text-align:right;min-width:62px}.cx-jc .v small{display:block;font-size:10.5px;color:var(--muted);font-weight:700}
.sx-hd{display:flex;align-items:center;justify-content:space-between;gap:10px}.sx-hd b{display:block;font-size:15px}.sx-hd small{display:block;font-size:11.5px;color:var(--muted);font-weight:600}
.sx-pc{font-size:22px;font-weight:800;border-radius:14px;padding:6px 12px;background:var(--sunk)}.sx-pc.g{background:var(--good-soft);color:var(--good)}.sx-pc.y{background:var(--warn-soft);color:var(--warn)}.sx-pc.r{background:var(--bad-soft);color:var(--bad)}
.sx-t{width:100%;border-collapse:collapse;margin-top:12px;font-size:13.5px}.sx-t td{padding:9px 4px;border-top:1px solid var(--line)}.sx-t td:last-child{text-align:right;font-weight:800}
.sx-t td small{color:var(--muted);font-weight:600;font-size:11px;margin-left:4px}.sx-t tr.ok td:last-child{color:var(--good)}.sx-t tr.off td:last-child{color:var(--bad)}
.sx-lvl{margin:8px 0 0;font-size:12px;font-weight:800;color:var(--muted)}
.sx.mat{background:linear-gradient(160deg,#FFF7E2,var(--surface) 60%);border-color:#F0D88F}.sx .mg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sx .mg div{background:var(--surface);border:1px solid #F0D88F;border-radius:12px;padding:9px 10px}.sx .mg small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.sx .mg b{display:block;font-size:17px;font-weight:800;margin-top:2px}
.sx .more{display:block;width:100%;border:0;background:none;font:inherit;text-align:center;font-size:12.5px;font-weight:800;margin-top:10px;color:inherit}
.smlb-me{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.smlb-me div{background:var(--sunk);border-radius:12px;padding:10px 8px;text-align:center}
.smlb-me small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.smlb-me b{display:block;font-size:19px;font-weight:800;margin-top:2px}.smlb-me i{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}
.smlb-list{list-style:none;margin:12px 0 0;padding:0}.smlb-list li{display:grid;grid-template-columns:26px 1fr auto;column-gap:8px;align-items:center;padding:8px 4px;border-top:1px solid var(--line)}
.smlb-list li span{font-weight:800;color:var(--muted)}.smlb-list li b{font-size:13.5px}.smlb-list li small{grid-column:2;font-size:11px;color:var(--muted)}.smlb-list li em{grid-row:1/3;grid-column:3;font-style:normal;font-weight:800}
.smlb-list li.me{background:var(--gold-soft);border-radius:10px}
.ptabs button:focus,.cx-when button:focus,.cx-g:focus,.cx-c:focus,.cx-jc:focus,.cx-rem button:focus,.cx-home:focus{outline:none}
.ptabs button:focus-visible,.cx-when button:focus-visible,.cx-g:focus-visible,.cx-c:focus-visible,.cx-jc:focus-visible,.cx-rem button:focus-visible,.cx-home:focus-visible{box-shadow:0 0 0 3px var(--gold-soft)}
#schSix .card{margin-top:12px}

/* ===== v4.0 · Customers (approved design 29 Oct 2026, mockups/customers-v2-preview.html) ===== */
.v2-top{margin:14px 16px 4px;display:flex;align-items:flex-end;justify-content:space-between}
.v2-top h1{font-size:22px;font-weight:800;margin:0}.v2-top p{margin:2px 0 0;font-size:12.5px;color:var(--muted);font-weight:600}
.v2-prog{margin:8px 16px 0;height:8px;border-radius:8px;background:var(--line);overflow:hidden}.v2-prog i{display:block;height:100%;background:var(--good);border-radius:8px;transition:width .4s var(--ease)}
.v2-seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 16px 4px;background:var(--sunk);border-radius:14px;padding:5px}
.v2-seg button{border:0;background:none;border-radius:10px;padding:9px 2px;font:inherit;font-size:13.5px;font-weight:800;color:var(--muted)}
.v2-seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.v2-h{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--brand) 55%,var(--muted));margin:16px 16px 8px}
.v2-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin:0 16px;overflow:hidden}
.v2-r,.v2-occ{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;width:100%;border:0;background:none;font:inherit;text-align:left;color:inherit}
.v2-r + .v2-r,.v2-occ + .v2-occ,.v2-r + .v2-more,.v2-occ + .v2-more{border-top:1px solid var(--line)}
.v2-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}
.v2-av.r{background:var(--bad-soft);color:var(--bad)}.v2-av.y{background:var(--warn-soft);color:var(--warn)}.v2-av.b{background:var(--blue-soft);color:var(--blue)}.v2-av.g{background:var(--gold-soft);color:var(--gold)}.v2-av.ok{background:var(--good-soft);color:var(--good)}
.v2-tx{min-width:0}.v2-tx b{display:block;font-size:14px;line-height:1.25}.v2-tx small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px}
.v2-noname{color:var(--muted);font-style:italic;font-weight:700}
.v2-tag{display:inline-block;font-size:10.5px;font-weight:800;border-radius:6px;padding:2px 6px;margin-top:4px}
.v2-tag.r{background:var(--bad-soft);color:var(--bad)}.v2-tag.y{background:var(--warn-soft);color:var(--warn)}.v2-tag.b{background:var(--blue-soft);color:var(--blue)}.v2-tag.g{background:var(--gold-soft);color:var(--gold)}
.v2-amt{text-align:right;white-space:nowrap}.v2-amt b{display:block;font-size:14.5px}.v2-amt small{display:block;font-size:10.5px;color:var(--muted);font-weight:700}
.v2-done .v2-tx b{color:var(--muted);text-decoration:line-through}.v2-done .v2-amt b{color:var(--good);font-size:12px}
.v2-wait{color:var(--warn)!important;font-size:12px!important}
.v2-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 16px}.v2-tiles.two{grid-template-columns:1fr 1fr}
.v2-t{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 10px 9px;font:inherit;text-align:left;color:inherit}
.v2-t small{display:block;font-size:11px;font-weight:800;color:var(--muted)}.v2-t b{display:block;font-size:22px;font-weight:800;margin-top:2px}.v2-t span{display:block;font-size:10.5px;color:var(--muted);font-weight:700}
.v2-t.r b{color:var(--bad)}.v2-t.y b{color:var(--warn)}.v2-t.g{background:linear-gradient(160deg,#FFF7E2,var(--surface));border-color:#F0D88F}.v2-t.g b{color:var(--gold)}
.v2-t.zero{opacity:.55}
.v2-more{display:block;width:100%;border:0;background:none;font:inherit;text-align:center;font-size:12.5px;font-weight:800;padding:12px;color:inherit}
.v2-back{display:block;border:0;background:none;font:inherit;margin:12px 16px 0;padding:0;font-size:13px;font-weight:800;color:var(--muted)}
.v2-sum{margin:10px 16px 0;border-radius:14px;padding:11px 13px;display:flex;justify-content:space-between;align-items:center}
.v2-sum small{display:block;font-size:11px;font-weight:800}.v2-sum b{font-size:19px;font-weight:800}
.v2-sum.r{background:var(--bad-soft);color:var(--bad)}.v2-sum.g{background:var(--gold-soft);color:var(--gold)}.v2-sum.b{background:var(--blue-soft);color:var(--blue)}
.v2-search{margin:10px 16px 0}.v2-search input{width:100%;box-sizing:border-box;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:13.5px;font-weight:600}
.v2-search input:focus{outline:none;border-color:var(--ink)}
.v2-chips{display:flex;gap:6px;margin:10px 16px 0;overflow-x:auto;scrollbar-width:none}.v2-chips::-webkit-scrollbar{display:none}
.v2-chips button{flex:none;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 11px;font:inherit;font-size:12px;font-weight:800;color:inherit}
.v2-chips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.v2-wa{background:#E7F7EE;color:#0A7A45;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800}
.v2-sh h2{font-size:20px;margin:0}.v2-sh .sub{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.4}
.v2-big{margin-top:14px;border-radius:16px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.v2-big small{display:block;font-size:11.5px;font-weight:800}.v2-big > div b{display:block;font-size:26px;font-weight:800}.v2-big span{font-size:12px;font-weight:700;text-align:right;line-height:1.45}
.v2-big.r{background:var(--bad-soft);color:var(--bad)}.v2-big.b{background:var(--blue-soft);color:var(--blue)}.v2-big.g{background:var(--gold-soft);color:var(--gold)}
.v2-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.v2-facts div{background:var(--sunk);border-radius:12px;padding:9px;text-align:center}
.v2-facts small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.v2-facts b{font-size:14.5px}
.v2-lbl{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}
.v2-rem{display:grid;grid-template-columns:1fr 1fr;gap:8px}.v2-rem button{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;padding:11px 8px;font:inherit;font-size:13px;font-weight:800;color:inherit}
.v2-rem button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.v2-past{font-size:12px;color:var(--muted);font-weight:600;margin-top:12px;background:var(--sunk);border-radius:12px;padding:9px 12px}
.v2-wishbtn{display:block;width:100%;margin-top:14px;border:0;background:#E7F7EE;color:#0A7A45;border-radius:14px;padding:13px;font:inherit;font-size:13.5px;font-weight:800}
.v2-r:focus,.v2-occ:focus,.v2-t:focus,.v2-more:focus,.v2-seg button:focus,.v2-chips button:focus,.v2-rem button:focus,.v2-back:focus,.lt-head:focus,.s2-btn:focus{outline:none}
.v2-r:focus-visible,.v2-t:focus-visible,.v2-seg button:focus-visible,.v2-chips button:focus-visible,.v2-rem button:focus-visible,.lt-head:focus-visible{box-shadow:0 0 0 3px var(--gold-soft)}
/* ===== v4.0 · Performance › Schemes (approved design 29 Oct 2026, mockups/schemes-v2-preview.html) ===== */
.s2-card{border-radius:18px;padding:16px;margin-bottom:12px}
.s2-hero{display:grid;grid-template-columns:118px minmax(0,1fr);gap:14px;align-items:center}
.s2-ring{position:relative;width:118px;height:118px}.s2-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.s2-ring b{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font-size:30px;font-weight:800;line-height:1}
.s2-ring b small{display:block;font-size:10.5px;font-weight:800;color:var(--muted);margin-top:4px;letter-spacing:.04em}
.s2-lvl{display:inline-block;font-size:11.5px;font-weight:800;border-radius:999px;padding:4px 10px}
.s2-lvl.r{background:var(--bad-soft);color:var(--bad)}.s2-lvl.y{background:var(--warn-soft);color:var(--warn)}.s2-lvl.g{background:var(--good-soft);color:var(--good)}
.s2-hero h3{margin:8px 0 2px;font-size:15px}.s2-hero p{margin:0;font-size:12px;color:var(--muted);font-weight:600;line-height:1.45}
.s2-split{display:flex;height:12px;border-radius:12px;overflow:hidden;margin-top:16px;background:var(--line)}
.s2-split i{display:block}.s2-split .a{background:#0A8A57}.s2-split .b{background:#E25A5A}
.s2-leg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.s2-leg div{background:var(--sunk);border-radius:12px;padding:9px 10px}.s2-leg small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}
.s2-leg b{display:block;font-size:19px;font-weight:800;margin-top:1px}.s2-leg .g b{color:var(--good)}.s2-leg .r b{color:var(--bad)}
.card.s2-act{background:linear-gradient(135deg,#141414,#2B2D31);color:#fff;border:0;border-radius:18px;margin-bottom:12px}
.s2-act > small{display:block;font-size:11px;font-weight:800;color:#F3D27A;letter-spacing:.04em;text-transform:uppercase}
.s2-act > b{display:block;font-size:17px;margin-top:4px;line-height:1.3}.s2-act > p{margin:6px 0 0;font-size:12px;color:#C9CCD1;font-weight:600}
.s2-btn{display:inline-block;margin-top:12px;background:#F3D27A;color:#141414;border:0;border-radius:999px;padding:9px 14px;font:inherit;font-size:12.5px;font-weight:800}
.s2-btn.dark{background:#141414;color:#fff}
.s2-pend{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.18)}
.s2-pend span{font-size:12px;color:#C9CCD1;font-weight:700}.s2-pend em{font-style:normal;font-size:17px;font-weight:800}
.card.s2-mat{background:linear-gradient(160deg,#FFF7E2,var(--surface) 65%);border-color:#F0D88F;border-radius:18px;margin-bottom:12px}
.s2-mat .row,.s2-enr .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.s2-mat h4,.s2-enr h4{margin:0;font-size:15px}
.s2-mat .row small,.s2-enr .row small{font-size:11.5px;color:var(--muted);font-weight:700}
.s2-mat .big{display:flex;gap:18px;margin-top:10px}.s2-mat .big div small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.s2-mat .big div b{display:block;font-size:22px;font-weight:800}
.s2-mat .big .gold b{color:var(--gold)}
.s2-empty{display:flex;gap:12px;align-items:center}.s2-empty > span{font-size:26px}.s2-empty b{display:block;font-size:14px}.s2-empty small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.card.s2-enr{border-radius:18px}
.s2-tgt{display:flex;align-items:center;gap:10px;margin-top:10px}.s2-tgt b{font-size:24px;white-space:nowrap}.s2-tgt b small{font-size:13px;color:var(--muted)}
.s2-tgt .bar{flex:1;height:10px;border-radius:10px;background:var(--line);overflow:hidden}.s2-tgt .bar i{display:block;height:100%;background:var(--good);border-radius:10px}.s2-tgt em{font-style:normal;font-size:12px;font-weight:800}
.s2-bars{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:end;height:126px;margin-top:16px;padding-top:6px}
.s2-bars div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.s2-bars em{font-style:normal;font-size:11.5px;font-weight:800}.s2-bars i{display:block;width:70%;max-width:30px;border-radius:8px 8px 4px 4px;background:#D9DCE1}.s2-bars .now i{background:#141414}
.s2-bars span{font-size:10.5px;font-weight:700;color:var(--muted)}.s2-bars .now span{color:var(--ink);font-weight:800}
.s2-be{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:12px;text-align:center}.s2-be span{font-size:10.5px;font-weight:800;color:var(--good);background:var(--good-soft);border-radius:6px;padding:2px 0}
.s2-note{font-size:11.5px;color:var(--muted);font-weight:600;margin:8px 0 0;text-align:center}
/* ===== v4.0 · Learn as a tile inside Buzz (opens and closes in place) ===== */
.lt-wrap{margin-top:12px}.lt-card{padding:0;overflow:hidden;border-radius:18px}
.lt-head{display:flex;width:100%;align-items:center;gap:12px;padding:14px;border:0;background:linear-gradient(135deg,#F3F7FD,var(--surface) 70%);font:inherit;text-align:left;color:inherit}
.lt-head .gi{width:44px;height:44px;border-radius:14px;background:var(--blue-soft);display:grid;place-items:center;font-size:22px;flex:none}
.lt-head .t{flex:1;min-width:0}.lt-head b{display:block;font-size:16px}.lt-head small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px}
.lt-head > i{font-style:normal;font-size:20px;font-weight:800;color:var(--muted);transition:transform .25s var(--ease)}
.lt-wrap.open .lt-head > i{transform:rotate(90deg)}
.lt-body{border-top:1px solid var(--line);padding-bottom:12px;background:var(--bg)}
.lt-body:not([hidden]){animation:ltIn .3s var(--ease) both}
@keyframes ltIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ===== v4.0 build 2.3 · Customers, one step at a time (approved 29 Oct 2026, mockups/customers-v3-preview.html) ===== */
/* nothing covers the list on Customers: no announcement strip, no Orry button */
body[data-view="cust"] .ticker,body[data-view="cust"] .orry-fab,body[data-view="cust"] .orry-nudge{display:none}
body[data-view="cust"] .scr{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.s3-top{margin:14px 16px 2px}.s3-top h1{font-size:22px;font-weight:800;margin:0;line-height:1.25}
.s3-top p{margin:3px 0 0;font-size:13px;color:var(--muted);font-weight:600}.s3-top p b{color:var(--ink)}.s3-top p b.ok{color:var(--good)}
.s3-prog{margin:10px 16px 2px;height:10px;border-radius:10px;background:var(--line);overflow:hidden}
.s3-prog i{display:block;height:100%;background:var(--good);border-radius:10px;transition:width .4s var(--ease)}
.s3-back{display:inline-block;margin:12px 16px 0;padding:6px 0;border:0;background:none;font:inherit;font-size:14px;font-weight:800;color:var(--muted)}
.s3-big,.s3-step,.s3-p{display:flex;align-items:center;width:calc(100% - 32px);border:1px solid var(--line);background:var(--surface);font:inherit;color:inherit;text-align:left;transition:transform .2s var(--ease)}
.s3-big:active,.s3-step:active,.s3-p:active{transform:scale(.985)}
.s3-big{gap:12px;border-radius:20px;margin:12px 16px 0;padding:14px;min-height:80px}
.s3-big .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:22px;flex:none}
.s3-big .t,.s3-step .t,.s3-p .t{flex:1;min-width:0}
.s3-big .t b{display:block;font-size:16px;line-height:1.25}.s3-big .t small{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin-top:3px;line-height:1.35}
.s3-big .n{text-align:right;flex:none;max-width:96px}.s3-big .n b{display:block;font-size:26px;line-height:1.1}.s3-big .n small{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-top:2px}
.s3-big > i,.s3-step > i{font-style:normal;font-size:18px;color:var(--muted);font-weight:800;flex:none}
.s3-big.blue .ic{background:var(--blue-soft)}.s3-big.red .ic{background:var(--bad-soft)}.s3-big.gold .ic{background:var(--gold-soft)}.s3-big.pink .ic{background:#FCEAF2}
.s3-big.blue .n b{color:var(--blue)}.s3-big.red .n b{color:var(--bad)}.s3-big.gold .n b{color:var(--gold)}.s3-big.pink .n b{color:#B0306A}
.s3-big.zero{opacity:.55}
.s3-tip{margin:14px 16px 0;background:#FFF7E2;border:1px solid #F0D88F;border-radius:16px;padding:12px 14px;font-size:12.5px;font-weight:700;color:#7A5300;line-height:1.5}
.s3-find{display:block;width:calc(100% - 32px);margin:12px 16px 0;padding:13px;border:1.5px dashed var(--line);border-radius:16px;background:none;font:inherit;font-size:13.5px;font-weight:800;color:var(--muted)}
.s3-step{gap:12px;border-radius:18px;margin:10px 16px 0;padding:14px}
.s3-step .num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:15px;flex:none;background:var(--sunk)}
.s3-step.now{border:2px solid var(--good);box-shadow:0 6px 18px rgba(10,138,87,.12)}.s3-step.now .num{background:var(--good);color:#fff}
.s3-step.fin .num{background:var(--good-soft);color:var(--good)}.s3-step.hu{background:var(--sunk);border-style:dashed}
.s3-step .t b{display:block;font-size:15.5px}.s3-step .t small{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-top:2px}
.s3-step .bar{display:block;height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:7px}.s3-step .bar i{display:block;height:100%;background:var(--good)}
.s3-step .n{text-align:right;font-weight:800;flex:none}.s3-step .n b{font-size:20px;display:block}.s3-step .n small{font-size:10.5px;color:var(--muted)}
.s3-badge{display:inline-block;background:var(--good);color:#fff;font-size:10.5px;font-weight:800;border-radius:6px;padding:2px 7px;margin-left:6px;vertical-align:2px}
.s3-list{margin-top:4px}
.s3-p{gap:12px;border-radius:16px;margin:8px 16px 0;padding:12px 14px}
.s3-p .av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.s3-p .av.r{background:var(--bad-soft);color:var(--bad)}.s3-p .av.y{background:var(--warn-soft);color:var(--warn)}.s3-p .av.b{background:var(--blue-soft);color:var(--blue)}.s3-p .av.g{background:var(--gold-soft);color:var(--gold)}.s3-p .av.ok{background:var(--good-soft);color:var(--good)}
.s3-p .t b{display:block;font-size:15px;line-height:1.25}.s3-p .t small{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-top:2px}
.s3-p .amt{text-align:right;flex:none;max-width:110px}.s3-p .amt b{display:block;font-size:15px}.s3-p .amt small{display:block;font-size:10.5px;color:var(--muted);font-weight:700}
.s3-p.done{background:var(--sunk)}.s3-p.done .t b,.s3-p.done .amt b{color:var(--muted)}.s3-p.done .amt small{color:var(--good)}
.s3-chip{display:inline-block;margin-top:6px;background:#141414;color:#fff;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:800}
.s3-chip.wait{background:var(--warn-soft);color:var(--warn)}
.s3-more{display:block;width:calc(100% - 32px);margin:10px 16px 0;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface);font:inherit;font-weight:800;font-size:13.5px}
.s3-who{display:flex;gap:12px;align-items:center}.s3-who .v2-av{width:48px;height:48px;font-size:16px;flex:none}.s3-who h2{margin:0}
.s3-say{margin-top:14px;border-radius:16px;padding:14px;background:var(--warn-soft);color:#7A4100}
.s3-say.r{background:var(--bad-soft);color:#8E1C1C}.s3-say.b{background:var(--blue-soft);color:var(--blue)}.s3-say.g{background:var(--gold-soft);color:#6E4B00}
.s3-say small{display:block;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.s3-say b{display:block;font-size:22px;margin-top:2px;line-height:1.25}.s3-say p{margin:4px 0 0;font-size:13px;font-weight:700;line-height:1.45}
.s3-q{font-size:13.5px;font-weight:800;margin:16px 0 8px}
.s3-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.s3-btns button{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:13px 6px;min-height:48px;font:inherit;font-weight:800;font-size:13.5px;color:var(--ink)}
.s3-btns button.on{background:#141414;color:#fff;border-color:#141414}
.s3-save{margin-top:14px;min-height:52px;font-size:15px}
.s3-left{text-align:center;font-size:12px;color:var(--muted);font-weight:700;margin-top:10px}
/* =====================================================================
   build 2.5 (30 Oct 2026): one light design language, red to green progress, motion
   ===================================================================== */
:root{--act:#1F4E79;--act-soft:#E8F0F9}
html{touch-action:manipulation}
@supports (-webkit-touch-callout:none){input,select,textarea{font-size:16px !important}}
/* Home · calls card: light, highlighted, with a completion bar */
.cx-home{background:linear-gradient(135deg,#EEF4FB,var(--surface) 72%);color:var(--ink);border:1.5px solid #CFE0F2;box-shadow:0 6px 18px rgba(31,78,121,.08)}
.cx-home .gi{background:#fff;border:1px solid #DCE8F5}
.cx-home small{color:var(--muted)}
.cx-home .btn{background:var(--act);color:#fff}
.pbar{display:block;height:7px;border-radius:7px;background:#E3E9F1;overflow:hidden;margin-top:8px}
.pbar i{display:block;height:100%;border-radius:7px;transition:width .7s cubic-bezier(.22,1,.36,1),background .7s}
/* Home · Incentive Simulator: same light style, gold tint */
.pipe{border:1.5px solid #F0D88F;background:linear-gradient(135deg,#FFF8E6,var(--surface) 70%)}
.pipe.done{border-color:#BFE3CF;background:linear-gradient(135deg,#EAF7F0,var(--surface) 70%)}
.pipe .ic{width:44px;height:44px;border-radius:14px;background:#fff;border:1px solid #F3E2B0;display:grid;place-items:center;font-size:22px}
.pipe b{font-size:15px}.pipe small{font-size:12.5px;font-weight:600}
.pipe .btn{background:var(--act);color:#fff}
.pipe.done .btn{background:#fff;color:var(--act);border:1.5px solid #CFE0F2}
/* Home · tiles: 8 even tiles; health and profile open their page */
button.tile{font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%}
button.tile:active{transform:scale(.98)}
.tile.wide{grid-column:span 2}
/* My store */
.ms-grid b.c-g,.ms-grid b.c-y,.ms-grid b.c-r{font-size:20px}
/* Switches (Sales / Schemes, National / My store): clearly two options, the chosen one filled */
.ptabs,.lbtabs{background:#E6E9EE;border:1px solid #D5DAE1;padding:4px;border-radius:14px;gap:4px}
.ptabs button,.lbtabs button{min-height:42px;color:#4A5059;border-radius:11px;transition:background .25s,color .25s,box-shadow .25s}
.ptabs button.on,.lbtabs button.on{background:var(--act);color:#fff;box-shadow:0 3px 10px rgba(31,78,121,.25)}
/* How to move up: one line per step; tap to open */
.mup .mu{cursor:pointer;align-items:flex-start}
.mup .mu-t{flex:1;min-width:0}
.mup .mu-l{display:flex;align-items:center;gap:8px}
.mup .mu-l b{flex:1;min-width:0;font-size:14px}
.mup .mu-r{font-size:12px;font-weight:800;color:var(--good);background:var(--good-soft);border-radius:999px;padding:3px 9px;white-space:nowrap}
.mup .mu-l > i{font-style:normal;font-size:18px;color:#A3A9B1;transition:transform .25s var(--ease)}
.mup .mu.open .mu-l > i{transform:rotate(90deg)}
.mup .mu-d{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
.mup .mu-d > div{overflow:hidden}
.mup .mu.open .mu-d{grid-template-rows:1fr}
.mup .mu.open .mu-d > div{padding-top:4px}
/* Cumulative chart: tap hint */
.cum-wrap{position:relative}
.cum-hint{position:absolute;top:2px;left:50%;transform:translateX(-50%);font-size:11.5px;font-weight:800;background:var(--act);color:#fff;border-radius:999px;padding:4px 10px;pointer-events:none;animation:hintPulse 1.8s ease-in-out infinite}
@keyframes hintPulse{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.06)}}
.ctip{border-radius:12px}
/* Performance list: richer rows */
.krow{display:flex;align-items:center;gap:12px;padding:11px 0}
.krow + .krow{border-top:1px solid var(--line)}
.krow .ki{width:38px;height:38px;border-radius:12px;background:var(--sunk);display:grid;place-items:center;font-size:18px;flex:none}
.krow .kt{flex:1;min-width:0}.krow .kt b{display:block;font-size:14px}.krow .kt small{display:block;font-size:11.5px;color:var(--muted);font-weight:600}
.kbar{display:block;position:relative;height:6px;border-radius:6px;background:#EEF0F3;margin-top:6px}
.kbar i{display:block;height:100%;border-radius:6px;animation:growX .7s var(--ease) both;transform-origin:left}
.kbar em{position:absolute;top:-3px;width:2px;height:12px;background:#0D0D0D;opacity:.5;border-radius:2px}
.krow .kv{text-align:right;flex:none}.krow .kv b{display:block;font-size:18px;font-weight:800}
.kw{display:inline-block;font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 8px;margin-top:2px}
.kw.g{background:var(--good-soft);color:var(--good)}.kw.y{background:var(--warn-soft);color:var(--warn)}.kw.r{background:var(--bad-soft);color:var(--bad)}
/* Schemes: next step light, matured two equal tiles, scheme split tiles */
.card.s2-act{background:linear-gradient(135deg,#FFF1EC,var(--surface) 70%);color:var(--ink);border:1.5px solid #F5C9BA}
.s2-act > small{color:#B4462A;letter-spacing:.02em}
.s2-act > p{color:var(--muted)}
.s2-pend{border-top:1px dashed #F0CFC2}.s2-pend span{color:var(--muted)}.s2-pend em{color:var(--bad)}
.s2-btn{background:var(--act);color:#fff}
.s2-btn.full{display:block;width:100%;text-align:center;padding:12px}
.s2-mat .big{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.s2-mat .big > div{background:#fff;border:1px solid #F3E2B0;border-radius:12px;padding:10px 12px;min-width:0}
.s2-mat .big div b{font-size:20px;white-space:nowrap}
.s2-split3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.s2-split3 > div{background:var(--sunk);border-radius:12px;padding:9px 10px;min-width:0}
.s2-split3 small{display:block;font-size:11px;font-weight:800;color:var(--muted)}
.s2-split3 b{display:block;font-size:20px;font-weight:800;line-height:1.15}
.s2-split3 span{display:block;font-size:11.5px;font-weight:700}
.s2-split3 em{display:block;font-style:normal;font-size:10.5px;color:var(--muted);font-weight:700}
.s2-split3 .zero{opacity:.45}
.s2-legend{display:flex;justify-content:center;gap:14px;margin-top:8px;font-size:11px;font-weight:700;color:var(--muted)}
.s2-legend span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:#141414}
.s2-legend .g::before{background:var(--good-soft);border:1px solid var(--good)}
/* Customers: customer base line */
.s3-base{margin:10px 16px 0;font-size:12.5px;font-weight:600;color:var(--muted)}
.s3-base b{color:var(--ink);font-weight:800}.s3-base i{font-style:normal;margin:0 6px;opacity:.5}
/* Buzz: celebrations in 3 equal, compact tiles */
.ctiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.ctile{flex-direction:row;justify-content:center;flex-wrap:wrap;column-gap:6px;padding:8px 6px}
.ctile .ce{font-size:17px}.ctile b{font-size:17px}
.ctile small{flex-basis:100%;min-height:0}
.ccard{padding:10px}
/* Sheets: close on top, spring in, pull down to close */
.sh-x{position:sticky;top:0;float:right;z-index:2;width:34px;height:34px;margin:-6px -6px 0 8px;border:0;border-radius:50%;background:var(--sunk);color:var(--ink);font-size:15px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.ov:not([hidden]) .sheet{animation:sheetSpring .46s cubic-bezier(.34,1.32,.64,1) both}
@keyframes sheetSpring{from{transform:translateY(100%)}to{transform:none}}
/* Tabs slide in from the side they come from */
[data-v].sl-r{animation:slR .32s cubic-bezier(.22,1,.36,1) both}
[data-v].sl-l{animation:slL .32s cubic-bezier(.22,1,.36,1) both}
@keyframes slR{from{transform:translateX(36px);opacity:.4}to{transform:none;opacity:1}}
@keyframes slL{from{transform:translateX(-36px);opacity:.4}to{transform:none;opacity:1}}
/* Bottom bar: the chosen icon gives a small bounce */
.nav button.on svg{animation:navPop .42s cubic-bezier(.34,1.6,.64,1)}
@keyframes navPop{0%{transform:scale(.8)}60%{transform:scale(1.18) translateY(-2px)}100%{transform:none}}
.nav button:active svg{transform:scale(.88)}
/* Orry steps aside while the page scrolls */
.orry-fab,.orry-nudge{transition:opacity .25s,transform .3s var(--ease)}
.scrolling .orry-fab{opacity:0;transform:translate(-50%,24px);pointer-events:none}
.scrolling .orry-nudge{opacity:0;pointer-events:none}
/* Confetti burst */
.cft{position:fixed;width:7px;height:9px;border-radius:2px;z-index:60;pointer-events:none}
/* Shimmer placeholders while loading */
.skel{display:grid;gap:10px;padding:16px}
.skel i{display:block;height:13px;border-radius:7px;background:linear-gradient(90deg,#EEF0F3 0%,#F8F9FA 45%,#EEF0F3 90%);background-size:220% 100%;animation:shim 1.15s linear infinite}
@keyframes shim{from{background-position:120% 0}to{background-position:-120% 0}}
@media (prefers-reduced-motion:reduce){
  [data-v].sl-r,[data-v].sl-l,.nav button.on svg,.cum-hint,.skel i,.kbar i,.ov:not([hidden]) .sheet{animation:none}
  .pbar i,.mup .mu-d{transition:none}
}
/* progress bars grow in when they appear */
.pbar i,.s3-prog i,.s3-step .bar i,.s2-tgt .bar i{animation:growX .8s cubic-bezier(.22,1,.36,1) both;transform-origin:left}
@media (prefers-reduced-motion:reduce){.pbar i,.s3-prog i,.s3-step .bar i,.s2-tgt .bar i{animation:none}}
/* S1: the last dark blocks become light (incentive total, chart details, podium places 4 and 5) */
.ptotal{background:var(--act-soft);color:var(--ink);border:1.5px solid #CFE0F2}
.ctip{background:var(--act-soft);color:var(--ink);border:1px solid #CFE0F2}
.ptotal b{color:var(--act)}
.sheet{position:relative}
.sheet.tall .sh-x{position:absolute;top:12px;right:14px;margin:0;float:none}
/* =====================================================================
   build 2.6 (30 Oct 2026): compact top bar, balanced mid blue, profile tabs, scheme incentive, polls,
   occasions, app-switcher cover, iPhone-style motion (no change to the design itself)
   ===================================================================== */
/* One balanced mid blue for every chosen/primary fill (white text), on light blue tracks. No black fills. */
:root{--act:#3D6E9F;--act-soft:#E3ECF5}
.btn{background:var(--act);color:#fff}
.btn.ghost{background:var(--surface);color:var(--ink);border:1.5px solid #BFD2E6}
.chip.on,.langs button.on,.cx-when button.on,.cx-rem button.on,.v2-chips button.on,.v2-rem button.on,.s3-btns button.on{background:var(--act);color:#fff;border-color:var(--act)}
.s3-chip,.st.todo,.docrow .go,.iprompt .go,.s2-btn.dark{background:var(--act);color:#fff}
.psteps .n,.mup .mi{background:var(--act);color:#fff}
.lvl .badge,.rlv span.me,table.t th,.dots i.on,.pbars .r1 .tr i,.tbar i,.s2-bars .now i{background:var(--act)}
.rscale i{background:var(--act);box-shadow:0 0 0 1px var(--act)}
.wish.done{background:var(--act-soft);color:var(--act);border-color:#BFD2E6}
.avatar,.pinit,.pphoto img,.podium .me .av{background:var(--act);color:#fff}
.ctip b{color:var(--act)}
.ptabs,.lbtabs{background:var(--act-soft);border-color:#D3E0EE}
.ptabs button.on,.lbtabs button.on{background:var(--act);color:#fff;box-shadow:0 3px 10px rgba(61,110,159,.28)}

/* Top bar (16): one white row of about 52 px: logo · title + one line · Ask Orry · bell · photo */
.top{gap:6px;min-height:52px;padding:8px 12px 8px 14px;padding-top:max(8px,env(safe-area-inset-top))}
.top .tlogo{height:24px;width:auto;flex:none;margin-right:4px;image-rendering:-webkit-optimize-contrast}
.top .t b{font-size:15px}
.top .t small{font-size:11.5px}
.askorry{flex:none;border:0;border-radius:999px;background:var(--act);color:#fff;font:inherit;font-size:12px;font-weight:800;padding:7px 11px;white-space:nowrap;box-shadow:0 3px 10px rgba(61,110,159,.26)}
.bell{position:relative;flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;padding:0;color:var(--ink)}
.bell svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bell .bdot{position:absolute;top:4px;right:5px;width:9px;height:9px;border-radius:50%;background:var(--bad);border:2px solid var(--surface)}
.top .avatar{width:30px;height:30px;font-size:11px;border-width:2px}
.ticker{top:calc(58px + env(safe-area-inset-top))}
/* The moving strip only on Home and Buzz (F) */
body:not([data-view="home"]):not([data-view="buzz"]) .ticker{display:none}
/* No floating Orry button any more: Orry's hello points at the button in the bar */
.has-orry .scr{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
.orry-nudge{left:auto;right:max(12px,calc((100vw - 520px) / 2 + 12px));bottom:auto;top:calc(58px + env(safe-area-inset-top));transform:translateY(-6px) scale(.92);transform-origin:top right;background:var(--act)}
.orry-nudge:after{bottom:auto;top:-5px;left:auto;right:96px;transform:rotate(45deg);background:var(--act)}
.orry-nudge.show{transform:none}

/* Profile (A, Option 3): two tabs, a 2-column form, HR fields locked in grey */
.pftabs{margin:12px 16px 0}
.pform{padding:4px 14px 16px}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 10px}
.pgrid .full{grid-column:1/-1}
.pgrid .pf{min-width:0}
.pf label{font-size:12px}
.pf.lock label i{font-style:normal;font-size:10.5px;margin-left:2px}
.pf.lock input,.pf.lock .ro{background:#F1F3F5;color:#6B7178;border:1.5px solid #E1E4E8}
.pf .ro{min-height:46px}
.ph span{padding:0 8px;font-size:13px}
.ph input{min-width:0;letter-spacing:.02em}
.langpick button.on{background:var(--act-soft);color:var(--act);border-color:#9DBAD8}
#pfAcc .pts{margin:12px 16px 0}
@media (max-width:330px){.pgrid{grid-template-columns:1fr}}

/* Performance: slide a finger along the cumulative chart (sideways only; up/down still scrolls) */
#cumChart svg{touch-action:pan-y;cursor:crosshair}

/* Incentive › Schemes (14) */
.kbox{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.kbox.one{grid-template-columns:1fr}
.kbox > div{background:var(--sunk);border-radius:var(--r-md);padding:10px 11px;min-width:0}
.kbox > div.lk{background:var(--gold-soft);box-shadow:inset 0 0 0 1.5px var(--gold-bright)}
.kbox small{display:block;font-size:11px;font-weight:800;color:var(--muted)}
.kbox b{display:block;font-size:20px;font-weight:800;margin-top:1px}
.kbox .lk b{color:var(--gold)}
.kbox ul{list-style:none;margin-top:6px}
.kbox li{display:flex;justify-content:space-between;gap:6px;font-size:11.5px;padding:2px 0;color:var(--muted);font-weight:600}
.kbox li em{font-style:normal;font-weight:800;color:var(--ink);white-space:nowrap}
.kform{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;background:var(--act-soft);border:1.5px solid #CFE0F2;border-radius:var(--r-md);padding:11px 14px;font-weight:700}
.kform b{font-size:19px;color:var(--act)}
.pbar2.be em.sl{background:var(--gold);opacity:.75}
.sct4{font-size:12px}
.sct4 th:first-child,.sct4 td:first-child{width:31%}
.sct4 td{padding:10px 6px}
.sct tr.now td{background:var(--act-soft)}
.psch{display:block;font-size:12px;font-weight:800;color:var(--good);margin-top:5px;min-height:1em}
#incTabs{margin-bottom:10px}

/* Customers (V): spouse card, last bought, store manager's assign list */
.s3-big.rose .ic{background:#FBE7EF}.s3-big.rose .n b{color:#A8456B}
.v2-tx small.lt{color:var(--act);font-weight:700}
.asg-btn{flex:none;border:0;border-radius:999px;background:var(--act);color:#fff;font:inherit;font-size:12px;font-weight:800;padding:8px 11px;white-space:nowrap}
.asg-btn.ghost{background:var(--act-soft);color:var(--act)}
.asg-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.asg-list button{display:flex;align-items:center;gap:12px;width:100%;border:1.5px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 12px;font:inherit;text-align:left;color:inherit}
.asg-list button.on{border-color:var(--act);background:var(--act-soft)}
.asg-list .av{width:36px;height:36px;border-radius:50%;background:var(--act-soft);color:var(--act);display:grid;place-items:center;font-weight:800;font-size:12.5px;flex:none}
.asg-list span:nth-child(2){flex:1;min-width:0}.asg-list b{display:block;font-size:14px}.asg-list small{font-size:11.5px;color:var(--muted)}
.asg-list i{font-style:normal;color:var(--muted);font-weight:800}

/* Polls (H): one tap votes; then the % bars fill in */
.card.poll{border-radius:18px;padding:14px;background:linear-gradient(160deg,#EEF4FB,var(--surface) 60%);border-color:#CFE0F2}
.poll + .poll{margin-top:10px}
.pl-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;font-weight:800;color:var(--act);text-transform:uppercase;letter-spacing:.04em}
.pl-h small{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:700}
.pl-img{display:block;width:100%;max-height:180px;object-fit:cover;border-radius:12px;margin-top:10px}
.pl-q{display:block;font-size:16px;line-height:1.35;margin-top:8px}
.pl-ch{display:grid;gap:8px;margin-top:12px}
.pl-ch.pics{grid-template-columns:1fr 1fr}
.pl-opt{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;border:1.5px solid #BFD2E6;background:var(--surface);border-radius:14px;padding:10px 14px;font:inherit;font-size:14.5px;font-weight:800;color:var(--ink);text-align:left}
.pl-opt img{width:44px;height:44px;border-radius:10px;object-fit:cover;flex:none}
.pl-ch.pics .pl-opt{flex-direction:column;align-items:stretch;text-align:center}.pl-ch.pics .pl-opt img{width:100%;height:90px}
.pl-opt.pick{background:var(--act);color:#fff;border-color:var(--act)}
.pl-res{position:relative;display:flex;align-items:center;gap:10px;min-height:46px;border-radius:14px;background:#E9EEF4;padding:10px 14px;overflow:hidden;font-weight:800;font-size:14px}
.pl-res > i{position:absolute;left:0;top:0;bottom:0;background:#CBDAEA;border-radius:14px;transform-origin:left;animation:growX 1s cubic-bezier(.22,1,.36,1) both .1s}
.pl-res.me{box-shadow:inset 0 0 0 2px var(--act)}.pl-res.me > i{background:#AFC8E2}
.pl-res > :not(i){position:relative}
.pl-res span{flex:1;min-width:0}.pl-res b{font-size:15px}
.pl-res img{width:32px;height:32px;border-radius:8px;object-fit:cover}
.pl-foot{font-size:11.5px;color:var(--muted);font-weight:700;margin-top:10px}
.pollgate{position:fixed;inset:0;z-index:35;background:var(--bg);overflow-y:auto;display:flex;justify-content:center;padding:calc(20px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom))}
.pollgate:not([hidden]){animation:fadeUp .35s var(--ease) both}
.pg-in{width:100%;max-width:480px;margin:auto 0}
.pg-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.pg-top img{height:24px}.pg-top span{font-size:12px;font-weight:800;color:var(--act);text-transform:uppercase;letter-spacing:.05em}

/* App-switcher cover (D): frosted, figures can't be read in the recent-apps picture */
.shield{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:rgba(242,243,245,.94);-webkit-backdrop-filter:blur(26px) saturate(1.2);backdrop-filter:blur(26px) saturate(1.2)}
.shield > div{text-align:center}
.shield img{height:30px;display:block;margin:0 auto}
.shield b{display:block;font-size:13px;letter-spacing:.42em;padding-left:.42em;font-weight:800;margin-top:8px;text-transform:uppercase}
.shield small{display:inline-block;margin-top:14px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--act);background:var(--act-soft);border-radius:999px;padding:5px 12px}
.shield.out{opacity:0;transition:opacity .26s ease}

/* J: iPhone-style motion on today's design: rolling digits, spring press, staggered entrance, card grows into its page */
[data-cu],.rolling{font-variant-numeric:tabular-nums}.rolling{white-space:nowrap}
.rd,.rd-c{display:inline-block;overflow:hidden;vertical-align:top}
.rd > span{display:block;transition:transform .32s cubic-bezier(.22,1,.36,1)}
.rd i{display:block;font-style:normal;text-align:center}
button,.chip,.mcard,.lrow,.goal,.wish,.s3-big,.s3-step,.s3-p,.plike,.pl-opt{transition:transform .42s cubic-bezier(.34,1.56,.64,1),background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}
button:active,.mcard:active,.plike:active,.s3-big:active,.s3-step:active,.s3-p:active,.pl-opt:active{transform:scale(.97);transition-duration:.12s}
@keyframes riseIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card){animation:riseIn .28s cubic-bezier(.22,1,.36,1) both}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card):nth-child(2){animation-delay:.015s}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card):nth-child(3){animation-delay:.03s}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card):nth-child(4){animation-delay:.045s}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card):nth-child(5){animation-delay:.055s}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card):nth-child(6){animation-delay:.06s}
.enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card):nth-child(n+7){animation-delay:.07s}
::view-transition-group(cxgrow){animation-duration:.46s;animation-timing-function:cubic-bezier(.3,1.12,.5,1)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}
.sheet .grab{cursor:grab}
@media (prefers-reduced-motion:reduce){
  .rd > span,.shield.out{transition:none}
  .enter :is(.tiles > *,.s3-big,.s3-step,.s3-p,.bpost,.krow,.srows > *,.poll,.v2-card),.pl-res > i,.pollgate:not([hidden]){animation:none}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

/* ===== build 2.7 ===== */
/* Store manager tabs: the active tab in mid blue (approved mockup sm-build27) */
.smtabs{background:var(--act-soft)}
.smtabs button.on{background:var(--act);color:#fff;box-shadow:0 3px 10px rgba(61,110,159,.28)}
#smHome .pill{display:inline-block;flex:none;font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px;background:var(--sunk);color:var(--muted);white-space:nowrap}
#smHome .pill.g{background:var(--good-soft);color:var(--good)}#smHome .pill.y{background:var(--warn-soft);color:var(--warn)}#smHome .pill.r{background:var(--bad-soft);color:var(--bad)}#smHome .pill.a{background:var(--act-soft);color:var(--act)}
#smHome .row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ptabs.mini{margin:0 0 12px;padding:3px}
.ptabs.mini button{min-height:34px;padding:6px 2px;font-size:12.5px}
.ptabs.smsw{margin:10px 0 2px}

/* SM1: the store's top card (no levels) + 3 tiles */
.card.smhero2{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,#EEF4FB,var(--surface) 70%);border:1.5px solid #CFE0F2;border-radius:18px}
.smhero2 .smh-ring{width:96px;height:96px;flex:none;position:relative}
.smhero2 .smh-ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:22px;font-weight:800;letter-spacing:-.02em}
.smhero2 .smh-ring .arc{transition:stroke-dasharray .9s var(--ease)}
.smh-r{flex:1;min-width:0}
.smh-r .ey{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.smh-r .big{font-size:18px;font-weight:800;margin:3px 0 6px;line-height:1.2}
.smh-r .big span{font-size:12px;color:var(--muted);font-weight:700}
.smh-pill{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px}
.smh-pill.up{background:var(--good-soft);color:var(--good)}.smh-pill.down{background:var(--warn-soft);color:var(--warn)}
.smh-mini{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.smh-mini div{background:var(--surface);border:1px solid #DCE8F5;border-radius:12px;padding:6px 8px;min-width:0}
.smh-mini small{display:block;font-size:10px;color:var(--muted);font-weight:700}.smh-mini b{font-size:13.5px;white-space:nowrap}
.smh-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.smh-tiles .tile{border-radius:16px;padding:10px}
.smh-tiles .tile small{font-size:10.5px;font-weight:700}
.smh-tiles .tile b{font-size:18px}.smh-tiles .tile b.g{color:var(--good)}.smh-tiles .tile b.y{color:var(--warn)}.smh-tiles .tile b.r{color:var(--bad)}
.smh-tiles .tile span{font-size:10.5px;font-weight:700}

/* SM5: Store › Schemes */
.card.sm-health{background:linear-gradient(135deg,#EAF7F0,var(--surface) 70%);border:1.5px solid #BFE3CF;border-radius:18px}
.sm-health .big{display:block;font-size:30px;font-weight:800;color:var(--good);line-height:1.1}
.sm-health small{font-size:11px;font-weight:700;color:var(--muted)}
.sm-health .pills{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.split{display:flex;height:10px;border-radius:10px;overflow:hidden;margin-top:12px;background:#E3E9F1}.split i{display:block;height:100%}
.card.sm-enr{border-radius:18px;padding:12px}
.sm-enr .big{font-size:22px;font-weight:800}.sm-enr .row small{font-size:11.5px;font-weight:700;color:var(--muted)}
.sm-st3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.sm-st{background:var(--surface);border:1px solid var(--line);border-top:4px solid #D9A520;border-radius:14px;padding:8px 9px;min-width:0}
.sm-st.gps{border-top-color:#3D6E9F}.sm-st.iis{border-top-color:#0A8A57}.sm-st.zero{opacity:.6}
.sm-st small{display:block;font-size:10.5px;font-weight:800;color:var(--muted)}.sm-st b{display:block;font-size:18px;font-weight:800;margin:1px 0}
.sm-st span{display:block;font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm-be{margin-top:12px;font-size:11.5px;font-weight:700}.sm-be span{color:var(--muted)}
.sm-bebar{position:relative;height:8px;border-radius:8px;background:#E3E9F1;overflow:hidden;margin-top:6px}
.sm-bebar i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,#B98612,#D9A520)}
.sm-bebar u{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,#F3D27A 0 4px,#FBF0D3 4px 8px);border-radius:0 8px 8px 0}
.card.sm-six{border-radius:18px}
.sm-bars{display:flex;align-items:flex-end;gap:10px;height:150px;padding:0 4px}
.sm-bars > div{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.sm-bars em{font-style:normal;font-size:10.5px;font-weight:800}
.sm-bars small{font-size:10px;font-weight:700;color:var(--muted)}
.sm-bars .st{width:100%;min-height:3px;display:flex;flex-direction:column;border-radius:8px 8px 4px 4px;overflow:hidden;background:#E3E9F1;transition:height .6s var(--ease)}
.sm-bars .st span{display:block}
.sm-bars .now em,.sm-bars .now small{color:var(--act);font-weight:800}.sm-bars .now .st{outline:2px solid var(--act);outline-offset:1px}
.leg{display:flex;gap:12px;justify-content:center;font-size:10.5px;font-weight:700;color:var(--muted);margin-top:8px}
.leg i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.sm-best{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-size:11.5px;font-weight:700;background:var(--sunk);border-radius:12px;padding:8px 10px}

/* SM4: The Crown League (light gold, a little royal; percentages only) */

/* SM6: Team, one aligned table */
.card.livebar2{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:18px;margin-top:4px}
.livebar2 b{display:block;font-size:14px}.livebar2 small{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);font-weight:700;margin-top:2px}
.livebar2 .live{font-size:10px;padding:2px 7px}

/* C2, C2+: Slide to Wish (iPhone 4s/5s unlock look) */
.sw-row{transition:background-color .35s ease}
.sw-row + .sw-row,.sw-row + .v2-more{border-top:1px solid var(--line)}
.sw-row.wished{background:#F4FBF7}
.sw-bot{padding:0 12px 12px}
.sw-tag{flex:none;font-size:10.5px;font-weight:800;border-radius:999px;padding:3px 9px;background:var(--sunk);color:var(--muted);max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-tag.wished{background:var(--good-soft);color:var(--good)}.sw-tag.retry{background:var(--warn-soft);color:var(--warn)}.sw-tag.closed{background:#EEF0F3;color:#6B7280}
.sw-sl{height:54px;border-radius:16px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#EEF1F4;
  box-shadow:inset 0 1px 3px rgba(16,24,40,.12),inset 0 0 0 1px rgba(16,24,40,.04);touch-action:pan-y;-webkit-user-select:none;user-select:none;outline:none}
.sw-sl:focus-visible{box-shadow:inset 0 1px 3px rgba(16,24,40,.12),0 0 0 3px #CFE0F2}
.sw-lab{font-size:15px;font-weight:700;letter-spacing:.02em;padding-left:44px;pointer-events:none;white-space:nowrap;
  background:linear-gradient(90deg,#A3ABB5 0%,#A3ABB5 40%,#4B5563 50%,#A3ABB5 60%,#A3ABB5 100%);background-size:250% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:swShine 2.6s linear infinite}
@keyframes swShine{from{background-position:100% 0}to{background-position:-150% 0}}
.sw-kn{position:absolute;left:5px;top:5px;width:62px;height:44px;border-radius:12px;background:linear-gradient(180deg,#FFFFFF,#EEF1F4);color:#9AA3AE;
  box-shadow:0 2px 5px rgba(16,24,40,.22),inset 0 1px 0 #fff;display:grid;place-items:center;touch-action:pan-y;cursor:grab}
.sw-kn svg{width:24px;height:24px;pointer-events:none}
.sw-sl.drag .sw-kn{cursor:grabbing}
.sw-sl.held{background:#0A8A57}
.sw-sl.held .sw-kn{left:calc(100% - 67px);transform:none!important;color:#0A8A57}
.sw-sl.held .sw-lab{opacity:0}
.sw-done{height:54px;border-radius:16px;background:var(--good-soft);box-shadow:inset 0 0 0 1px #BFE3CF;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 5px 0 16px;font-weight:800;color:var(--good);font-size:14px}
.sw-done span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-done i{width:44px;height:44px;border-radius:12px;background:var(--good);display:grid;place-items:center;flex:none}.sw-done svg{width:22px;height:22px}
.sw-row.pop .sw-done{animation:swPop .6s cubic-bezier(.34,1.56,.64,1)}
.sw-row.pop .sw-done i{animation:swTick .55s cubic-bezier(.34,1.56,.64,1) .08s both}
@keyframes swPop{from{transform:scale(.96);opacity:.4}to{transform:none;opacity:1}}
@keyframes swTick{from{transform:scale(.4) rotate(-20deg)}to{transform:none}}
/* the locked "How Did It Go?" sheet */
.sheet.locked .grab{cursor:default}
.sw-sh h2{font-size:19px;font-weight:800}
.sw-who{display:flex;align-items:center;gap:10px;margin:8px 0 16px;font-size:12.5px;color:var(--muted);font-weight:700}
.sw-who .v2-av{width:30px;height:30px;border-radius:9px;font-size:15px}
.sw-opts{display:flex;flex-direction:column;gap:8px}
.sw-opts button{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border:1.5px solid #E6E9ED;border-radius:14px;background:var(--surface);font:inherit;font-size:14px;font-weight:700;text-align:left;color:inherit}
.sw-opts button .t{flex:1;min-width:0}
.sw-rd{width:20px;height:20px;border-radius:50%;border:2px solid #C5CCD4;flex:none;transition:border-width .18s ease,border-color .18s ease}
.sw-opts button.on{border-color:var(--act);background:var(--act-soft)}.sw-opts button.on .sw-rd{border:6px solid var(--act)}
.sw-opts em{font-style:normal;font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 8px;flex:none}
.sw-opts em.wished{background:var(--good-soft);color:var(--good)}.sw-opts em.retry{background:var(--warn-soft);color:var(--warn)}.sw-opts em.closed{background:#EEF0F3;color:#6B7280}
.sw-sh #swSave:disabled{background:#C9D3DE;color:#fff;opacity:1}

/* SM8: store manager › Customers, a store overview */
.card.smc-base{display:grid;grid-template-columns:1.1fr 1fr;gap:10px;align-items:center;background:linear-gradient(135deg,#EEF4FB,var(--surface) 72%);border:1.5px solid #CFE0F2;border-radius:18px}
.smc-base .bg b{display:block;font-size:30px;font-weight:800;line-height:1.15}
.smc-base .bg small{display:block;font-size:11px;color:var(--muted);font-weight:700}
.smc-base ul{list-style:none;font-size:12px;font-weight:700;min-width:0}
.smc-base li{display:flex;justify-content:space-between;gap:6px;padding:3px 0}.smc-base li span{color:var(--muted);white-space:nowrap}
.card.smc-occ{padding:10px 12px;border-radius:18px}
.smc-occ .oh,.smc-occ .oc{display:grid;grid-template-columns:28px minmax(0,1fr) 60px 60px;gap:6px;align-items:center}
.smc-occ .oh{font-size:10px;font-weight:800;color:var(--muted);text-align:center;padding-bottom:2px}.smc-occ .oh span:nth-child(2){text-align:left}
.smc-occ .oc{padding:10px 0;border-top:1px solid #F0F1F3;font-size:12px}
.smc-occ .e{font-size:20px}
.smc-occ .t b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smc-occ small{display:block;font-size:10.5px;color:var(--muted);font-weight:600}
.smc-occ .bar{height:7px;border-radius:7px;background:#E3E9F1;overflow:hidden;margin-top:5px}.smc-occ .bar i{display:block;height:100%;border-radius:7px;background:var(--good)}
.smc-occ .c{text-align:center}.smc-occ .c b{font-size:15px;font-weight:800}.smc-occ .c b.g{color:var(--good)}.smc-occ .c small.o{color:var(--warn);font-weight:700}
.card.smc-ua{background:linear-gradient(135deg,#FFF6E8,var(--surface) 70%);border:1.5px solid #F2D6A6;border-radius:18px;padding:6px 14px}
.smc-ua .ua{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #F5EBDA}.smc-ua .ua:last-of-type{border-bottom:0}
.smc-ua .e{font-size:18px}.smc-ua .n{flex:1;min-width:0}.smc-ua .n b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smc-ua .n small{display:block;font-size:10.5px;color:var(--muted);font-weight:600}
.smc-ua .asg-btn{padding:7px 14px}
.smc-ua .empty{padding:12px}
.smc-more{text-align:center;padding:4px 0 8px}
.smc-all{border:1.5px solid #CFE0F2;background:var(--surface);color:var(--act);border-radius:999px;font:inherit;font-size:12px;font-weight:800;padding:6px 14px}
.smc-trk{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.smc-trk > div{border-radius:16px;padding:10px 12px}
.smc-trk small{font-size:11px;font-weight:700}.smc-trk b{display:block;font-size:24px;font-weight:800}
.smc-trk .on{background:var(--good-soft);border:1.5px solid #BFE3CF;color:var(--good)}.smc-trk .off{background:var(--bad-soft);border:1.5px solid #F3C7C7;color:var(--bad)}
.card.smc-fu{padding:8px 12px;border-radius:18px}
.smc-fu .fh,.smc-fu .fr{display:grid;grid-template-columns:minmax(0,1fr) 50px 46px 56px;gap:4px;align-items:center;text-align:center}
.smc-fu .fh{font-size:10px;font-weight:800;color:var(--muted);padding:4px 0 6px}.smc-fu .fh span:first-child{text-align:left}
.smc-fu .fr{width:100%;border:0;border-top:1px solid #F0F1F3;background:none;font:inherit;color:inherit;padding:10px 2px;font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;border-radius:0}
.smc-fu .fr .nm{text-align:left;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smc-fu .fr .nm i{font-style:normal;color:var(--muted);font-size:10px;margin-left:4px}
.smc-fu .fr .p{color:var(--bad)}.smc-fu .fr .d{color:var(--good)}
.smc-fu .fr.open{background:#F4F8FC;border-radius:12px 12px 0 0}
.smc-x{background:#F4F8FC;border-radius:0 0 12px 12px;padding:4px 10px 10px;font-size:11.5px;margin-bottom:4px}
.smc-x > div{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed #DCE8F5}
.smc-x > div span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.smc-x b.p{color:var(--bad)}.smc-x b.d{color:var(--good)}
.smc-x .smc-all{display:block;margin:8px auto 0}
.smc-x.skel{padding:12px 10px}
.smc-x .empty{padding:10px}
@media (prefers-reduced-motion:reduce){
  .sw-lab{animation:none;background-position:30% 0}
  .sw-row.pop .sw-done,.sw-row.pop .sw-done i{animation:none}
  .sm-bars .st,.smhero2 .smh-ring .arc{transition:none}
}
/* build 2.7: the store manager's tabs stay visible under the top bar (and under the announcement strip when it shows) while scrolling */
.smtabs{top:calc(64px + env(safe-area-inset-top))}
body:has(#ticker:not([hidden])) .smtabs{top:calc(116px + env(safe-area-inset-top))}

/* build 2.8 (L1 + L2): one leaderboard component. The app font and plain digits; a podium of 3 equal columns; ONE grid for every
   list row with the same padding (my row only gets a tint). Gold = The Crown League (store managers); blue = ICs. */
.lbx{font-variant-numeric:tabular-nums}
.card.lbx{border-radius:20px;padding:14px 12px 8px}
.lbx.lbx-flat{margin-top:14px}
.lbx-t{display:flex;align-items:center;gap:7px;font-size:16px;font-weight:800;padding:0 4px;white-space:nowrap}
.lbx-t svg{flex:none}
.lbx-t span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.lbx-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px;min-height:32px}
.lbx-t + .lbx-hd{margin-top:6px}
.lbx-sub{font-size:11.5px;font-weight:700;color:var(--muted);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbx-h{font-size:15px;font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbx-sw{display:flex;flex:none;border-radius:999px;padding:3px;background:#E6EDF5}
.lbx-sw button{border:0;background:none;font:inherit;font-size:11.5px;font-weight:800;color:var(--muted);padding:6px 12px;border-radius:999px;transition:background-color .2s ease,color .2s ease}
.lbx-sw button.on{background:var(--act);color:#fff}
.lbx-pod{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:end;margin:18px 0 12px}
.lbx-pod > div{min-width:0;text-align:center}
.lbx-av{position:relative;width:46px;height:46px;border-radius:50%;margin:0 auto 6px;display:grid;place-items:center;font-size:14px;font-weight:800;background:#EAF1F8;color:#3D6E9F}
.lbx-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.lbx-av .crn{position:absolute;top:-16px;left:50%;transform:translateX(-50%)}
.lbx-pod .p1 .lbx-av{width:56px;height:56px;font-size:16px;box-shadow:0 0 0 3px #E2C27A}
.lbx-pod .p2 .lbx-av{box-shadow:0 0 0 3px #C9CFD6}.lbx-pod .p3 .lbx-av{box-shadow:0 0 0 3px #DDB596}
.lbx-pod b{display:flex;align-items:center;justify-content:center;height:2.5em;font-size:12.5px;font-weight:800;line-height:1.25;padding:0 2px}
.lbx-pod b span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.lbx-pod .me b{color:var(--act)}
.lbx-pod small{display:block;font-size:10.5px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.lbx-pod .pc{display:inline-block;max-width:100%;margin-top:5px;font-size:11.5px;font-weight:800;border-radius:999px;padding:2px 8px;background:#EAF1F8;color:var(--act);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbx-pod .blk{margin-top:8px;border-radius:12px 12px 4px 4px;display:grid;place-items:center;font-size:20px;font-weight:800}
.lbx-pod .p1 .blk{height:62px;background:#F3DFA4;color:#7A5810}
.lbx-pod .p2 .blk{height:46px;background:#E4E8EC;color:#5D6670}
.lbx-pod .p3 .blk{height:36px;background:#F0DCCB;color:#8E5A30}
.lbx-r{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:0;border-top:1px solid transparent}
.lbx-r + .lbx-r{border-top-color:#EEF0F3}
.lbx-r .no{width:28px;font-size:14px;font-weight:800;color:var(--muted);text-align:center}
.lbx-r .nm{min-width:0}
.lbx-r .nm b{display:block;font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbx-r .nm small{display:flex;align-items:center;gap:6px;min-width:0;font-size:11px;font-weight:600;color:var(--muted);margin-top:1px}
.lbx-r .nm small span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbx-r .you{flex:none;font-style:normal;font-size:10px;font-weight:800;line-height:1.5;color:#fff;background:var(--act);border-radius:999px;padding:0 7px}
.lbx-r .v{font-size:14px;font-weight:800;text-align:right;white-space:nowrap}
.lbx-r .v small{display:block;font-size:10.5px;font-weight:600;color:var(--muted)}
.lbx-gap{text-align:center;font-size:12px;font-weight:800;color:#B6BCC5;letter-spacing:.3em;padding:2px 0}
.lbx-note{font-size:12px;text-align:center;color:var(--muted);margin:10px 0 2px}.lbx-note b{color:var(--ink)}
.lbx-note .link{font-size:12px;padding:0;margin:0;display:inline}
.card.lbx.lbx-gold{background:linear-gradient(180deg,#FBF4E0,var(--surface) 55%);border:1px solid #EFE0B6}
.lbx.lbx-gold .lbx-sw{background:#F4E9CC}
.lbx.lbx-gold .p1 .lbx-av{background:#F7E7B5;color:#8A6410}.lbx.lbx-gold .p2 .lbx-av{background:#EEF0F3;color:#5D6670}.lbx.lbx-gold .p3 .lbx-av{background:#F6E8DC;color:#9A6234}
.lbx.lbx-gold .pc{background:var(--surface);color:var(--ink)}.lbx.lbx-gold .p1 .pc{color:#8A6410}
.lbx.lbx-gold .lbx-r + .lbx-r{border-top-color:#F1E8D2}
.lbx.lbx-gold .lbx-gap{color:#C9B27A}
.lbx .lbx-r.me{background:#EAF1F8;border-radius:12px}
.lbx .lbx-r.me,.lbx .lbx-r.me + .lbx-r{border-top-color:transparent}
.lbx .lbx-r.me .no{color:var(--act)}
.lbx.lbx-home .lbx-pod{margin:14px 0 10px}

/* build 2.8 (T1, Option B): Team tab. Filter chips, then compact IC rows on one grid (status edge · ring · name · 2 right-aligned lines). */
.tm-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.tm-chips button{min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:8px 4px;font:inherit;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:1px;transition:background-color .2s ease,border-color .2s ease}
.tm-chips b{font-size:17px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}
.tm-chips small{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tm-chips .r b{color:var(--bad)}.tm-chips .y b{color:var(--warn)}.tm-chips .g b{color:var(--good)}
.tm-chips button.on{background:var(--act);border-color:var(--act)}
.tm-chips button.on b,.tm-chips button.on small{color:#fff}
.tm-chips button:disabled{opacity:.5}
.card.tm-card{padding:0;margin-top:10px;border-radius:18px;overflow:hidden}
.tm-r{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;margin:0;padding:11px 12px 11px 14px;border:0;border-top:1px solid #EEF0F3;border-radius:0;background:none;font:inherit;color:inherit;text-align:left;transition:background-color .2s ease}
.tm-list > .tm-r:first-child{border-top-color:transparent}
.tm-r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#C9CFD6}
.tm-r.s-risk::before{background:var(--bad)}.tm-r.s-watch::before{background:#E8A23A}.tm-r.s-ok::before{background:var(--good)}
.tm-r.open,.tm-r:active{background:#F4F8FC}
.tm-ring{position:relative;width:44px;height:44px;display:grid;place-items:center;color:#C9CFD6}
.tm-ring svg{position:absolute;inset:0}
.tm-ring b{position:relative;font-size:10.5px;font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.s-risk .tm-ring{color:var(--bad)}.s-watch .tm-ring{color:#E8A23A}.s-ok .tm-ring{color:var(--good)}
.tm-r .nm{min-width:0}
.tm-r .nm b{display:block;font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-r .nm small{display:block;margin-top:2px;font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.tm-r .st{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:10.5px;font-weight:600;color:var(--muted);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.tm-r .st b{font-size:11.5px;font-weight:800;color:var(--ink)}
.tm-x{background:#F4F8FC;padding:0 12px 12px 14px}
.jcard.tt-more{margin:0;border:0;padding:0;background:none;box-shadow:none}
.tt-more .jpipe{margin-top:0;background:var(--surface)}
.tm-tot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:10px 8px;background:#F4F8FC;border-top:1px solid #E3EAF2;text-align:center;font-variant-numeric:tabular-nums}
.tm-tot small{display:block;font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-tot b{display:block;margin-top:1px;font-size:13.5px;font-weight:800;white-space:nowrap}
/* build 2.8: each list is ONE grid; rows take its columns (subgrid), so every name and number column lines up across the rows */
@supports (grid-template-columns:subgrid){
  .lbx-list{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;column-gap:10px}
  .lbx-list > .lbx-r{grid-column:1/-1;grid-template-columns:subgrid}
  .lbx-list > .lbx-gap{grid-column:1/-1}
  .tm-list{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;column-gap:10px}
  .tm-list > .tm-r{grid-column:1/-1;grid-template-columns:subgrid}
  .tm-list > .tm-x{grid-column:1/-1}
}
/* build 2.8: SM Targets list: initials on light blue (no dark icon), one line per name so every row is the same height */
.lrow.tgt .tg-av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#EAF1F8;color:#3D6E9F;font-size:12px;font-weight:800}
.lrow.tgt b,.lrow.tgt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow.tgt .pl{flex:none;font-variant-numeric:tabular-nums}

/* =====================================================================
   build 2.9
   ===================================================================== */
/* quiet refresh: a thin mid-blue line runs under the top bar while the saved figures are being updated (nothing on the page moves) */
.top:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;opacity:0;transition:opacity .3s ease;
  background:linear-gradient(90deg,rgba(61,110,159,0),#3D6E9F,rgba(61,110,159,0)) no-repeat;background-size:40% 100%;background-position:-40% 0}
body.refreshing .top:after{opacity:1;animation:refRun 1.1s linear infinite}
@keyframes refRun{to{background-position:140% 0}}
@media (prefers-reduced-motion:reduce){body.refreshing .top:after{animation:none;background-size:100% 100%;opacity:.5}}
/* A1: Install Orra Pulse (Home card) */
#instCard .sec{margin-top:10px}
.card.inst{display:flex;align-items:center;gap:12px;padding:12px 10px 12px 12px;border-radius:18px;transition:opacity .25s ease,transform .25s ease}
.card.inst.bye{opacity:0;transform:scale(.97)}
.inst-ic{flex:none;width:44px;height:44px;border-radius:13px;background:#EAF1F8;color:#3D6E9F;display:grid;place-items:center}
.inst-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.inst-t{flex:1;min-width:0}
.inst-t b{display:block;font-size:14px;line-height:1.25}
.inst-t small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.inst-go{flex:none;border:0;border-radius:999px;background:#3D6E9F;color:#fff;font-weight:800;font-size:13px;padding:9px 16px}
.inst-x{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:none;color:var(--muted);font-size:14px;display:grid;place-items:center}
.inst-go:active,.inst-x:active{transform:scale(.94)}
/* A1: the install steps sheet (picture steps) */
.ist{list-style:none;margin:16px 0 0;display:grid;gap:10px;counter-reset:ist}
.ist li{display:flex;align-items:center;gap:12px;background:var(--sunk);border-radius:14px;padding:10px 12px;counter-increment:ist;position:relative}
.ist li:before{content:counter(ist);flex:none;width:22px;height:22px;border-radius:50%;background:#fff;color:#3D6E9F;font-size:12px;font-weight:800;display:grid;place-items:center;box-shadow:0 0 0 1px #D6E2EE}
.ist-ig{flex:none;width:40px;height:40px;border-radius:12px;background:#EAF1F8;color:#3D6E9F;display:grid;place-items:center}
.ist-ig svg,.ist-bar svg,.ni-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ist-t{font-size:14px;line-height:1.35}
.ist-t b{font-weight:800}
.ist-bar{display:flex;justify-content:space-around;align-items:center;margin-top:14px;background:var(--sunk);border-radius:16px;padding:8px 6px;color:#9AA3AE}
.ist-bar i{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;font-style:normal}
.ist-bar i.on{background:#3D6E9F;color:#fff;box-shadow:0 0 0 4px rgba(61,110,159,.18);animation:istPulse 1.6s ease-in-out infinite}
@keyframes istPulse{50%{box-shadow:0 0 0 8px rgba(61,110,159,.06)}}
@media (prefers-reduced-motion:reduce){.ist-bar i.on{animation:none}}
.btn.inst-copy{background:#3D6E9F;color:#fff}
/* SN1: Profile › Sounds switch */
button.lrow.snd:after{content:none}
.tgl{flex:none;position:relative;width:46px;height:28px;border-radius:999px;background:#D5DAE0;transition:background-color .2s ease}
.tgl:after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform .25s cubic-bezier(.34,1.4,.64,1)}
.snd[aria-checked="true"] .tgl{background:#3D6E9F}
.snd[aria-checked="true"] .tgl:after{transform:translateX(18px)}
/* A1: Store manager › Team: Not Installed Yet (tap to open) */
.card.ni-card{padding:0;border-radius:18px;overflow:hidden}
.ni-h{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:12px 14px;text-align:left}
.ni-ic{flex:none;width:34px;height:34px;border-radius:50%;background:#EAF1F8;color:#3D6E9F;display:grid;place-items:center}
.ni-ic svg{width:19px;height:19px}
.ni-h b{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ni-n{flex:none;min-width:26px;height:24px;padding:0 8px;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:12.5px;font-weight:800;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.ni-chev{flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s ease;margin:0 4px 0 2px}
.ni-card.open .ni-chev{transform:rotate(225deg) translate(-2px,-2px)}
.ni-list{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.22,.9,.26,1)}
.ni-list > div{min-height:0;overflow:hidden}
.ni-card.open .ni-list{grid-template-rows:1fr}
.ni-r{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--line);overflow:hidden}
.ni-av{width:30px;height:30px;border-radius:50%;background:#EAF1F8;color:#3D6E9F;font-size:11px;font-weight:800;display:grid;place-items:center}
.ni-w{min-width:0}
.ni-r b{display:block;font-size:13.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ni-r small{display:block;font-size:11.5px;color:var(--muted);font-weight:700;white-space:nowrap;margin-top:1px}
.ni-r small.never{color:var(--bad)}
