/* ═══════════════════════════════════════════════════════════════
   TABLEMIND V2 — DESIGN SYSTEM
   Diner: quiet-luxury liquid glass · Console: precision HUD ·
   Owner: boardroom warm. Clarity above all.
   ═══════════════════════════════════════════════════════════════ */

:root{
  /* Diner — deep espresso luxe */
  --bg:#0D0A08; --bg-2:#120E0B; --bg-3:#171210;
  --glass:rgba(30,23,18,.55); --glass-2:rgba(38,29,22,.62); --glass-hi:rgba(255,244,228,.045);
  --line:rgba(240,231,216,.07); --line-2:rgba(240,231,216,.14); --line-3:rgba(240,231,216,.24);
  --ink:#F4EDE1; --ink-2:#CDC2B1; --ink-3:#93897A; --ink-4:#6B6255;
  --gold:#D8B573; --gold-2:#EACB8B; --ember:#E06A3C; --ember-2:#F2814F;
  --sage:#8CB088; --berry:#C65D72; --violet:#A98BE8;
  --veg:#4EA254; --egg:#D9A53C; --nonveg:#B5503A;

  /* Console — HUD */
  --c-bg:#05070C; --c-bg-2:#080B12;
  --c-glass:rgba(14,20,32,.6); --c-line:rgba(120,160,220,.09); --c-line-2:rgba(120,160,220,.2); --c-line-3:rgba(140,180,240,.35);
  --c-ink:#D9E4F5; --c-ink-2:#8FA1BC; --c-ink-3:#5A6A84;
  --cy:#54D0FF; --mint:#3FE0A0; --amber:#F5B34D; --rose:#F55D7E; --vio:#9E7FFF; --blu:#5C8BF5;

  /* Owner — boardroom */
  --o-bg:#0C0B09; --o-glass:rgba(28,24,19,.6); --o-line:rgba(235,225,205,.08); --o-line-2:rgba(235,225,205,.16);

  --f-disp:'Fraunces', Georgia, serif;
  --f-ui:'Inter', -apple-system, 'Segoe UI', sans-serif;
  --f-mono:'JetBrains Mono','SF Mono',Consolas,monospace;

  --r1:10px; --r2:14px; --r3:18px; --r4:24px; --r5:32px; --pill:999px;
  --sh1:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35);
  --sh2:0 2px 8px rgba(0,0,0,.45),0 16px 44px rgba(0,0,0,.5);
  --sh3:0 8px 24px rgba(0,0,0,.55),0 32px 80px rgba(0,0,0,.6);
  --glow-gold:0 0 0 1px rgba(216,181,115,.28), 0 8px 34px rgba(216,181,115,.16);
  --glow-ember:0 0 0 1px rgba(224,106,60,.3), 0 8px 30px rgba(224,106,60,.22);
  --spring:cubic-bezier(.32,1.4,.45,1); --out:cubic-bezier(.2,.85,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}
img{display:block;max-width:100%}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,textarea{font:inherit;color:inherit}
::selection{background:rgba(216,181,115,.32)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(240,231,216,.12);border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
strong,b{font-weight:650}

/* grain + ambient light for the diner */
.diner-canvas::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 55% at 50% -8%,rgba(216,181,115,.075),transparent 60%),
             radial-gradient(90% 40% at 100% 100%,rgba(224,106,60,.05),transparent 60%)}
.diner-canvas::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}

@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{0%{opacity:0;transform:scale(.9)}100%{opacity:1;transform:scale(1)}}
@keyframes shimmer{0%{background-position:-500px 0}100%{background-position:500px 0}}
@keyframes breathe{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes sheetup{from{transform:translateY(102%)}to{transform:none}}
@keyframes nudgein{0%{opacity:0;transform:translateY(30px) scale(.93)}100%{opacity:1;transform:none}}
@keyframes tick{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes glowpulse{0%,100%{box-shadow:0 0 0 0 rgba(224,106,60,.4)}50%{box-shadow:0 0 0 10px rgba(224,106,60,0)}}
@keyframes scan{0%{transform:translateY(-100%)}100%{transform:translateY(2400%)}}
@keyframes dash{to{stroke-dashoffset:0}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes countup{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}

/* ═══════════════ DINER ═══════════════ */
.diner{max-width:520px;margin:0 auto;min-height:100dvh;position:relative;z-index:1}
@media(min-width:560px){.diner{border-left:1px solid var(--line);border-right:1px solid var(--line)}}

/* top bar — glass */
.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:10px;padding:13px 18px;
  background:linear-gradient(180deg,rgba(13,10,8,.92),rgba(13,10,8,.78));
  backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);
  border-bottom:1px solid var(--line)}
.topbar::after{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(216,181,115,.35),transparent)}
.brandmark{display:flex;align-items:center;gap:11px;min-width:0}
.brandmark .logo{width:40px;height:40px;border-radius:13px;flex:none;position:relative;
  background:linear-gradient(145deg,#33261A,#1A130D);border:1px solid var(--line-2);
  display:grid;place-items:center;font-family:var(--f-disp);font-weight:600;font-size:19px;color:var(--gold);
  box-shadow:inset 0 1px 0 rgba(255,244,228,.09)}
.brandmark .cafe{font-family:var(--f-disp);font-size:17.5px;font-weight:560;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brandmark .meta{font-size:10.5px;color:var(--ink-3);letter-spacing:1.2px;text-transform:uppercase;font-weight:600}
.topbar .spacer{flex:1}
.tablechip{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:650;color:var(--ink-2);
  background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line-2);padding:8px 13px;border-radius:var(--pill);
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.tablechip .dot{width:6px;height:6px;border-radius:50%;background:var(--sage);animation:breathe 2.6s infinite}

/* search */
.searchwrap{padding:14px 18px 2px}
.searchbox{display:flex;align-items:center;gap:11px;background:var(--glass);backdrop-filter:blur(14px);
  border:1px solid var(--line);border-radius:var(--r3);padding:13px 16px;transition:border-color .2s;
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.searchbox:focus-within{border-color:rgba(216,181,115,.45)}
.searchbox svg{width:17px;height:17px;color:var(--ink-3);flex:none}
.searchbox input{flex:1;background:none;border:0;outline:0;font-size:14.5px;color:var(--ink)}
.searchbox input::placeholder{color:var(--ink-4)}
.searchbox .clear{color:var(--ink-3);font-size:11.5px;font-weight:650;padding:5px 10px;border-radius:9px;background:var(--glass-2);display:none}
.searchbox.hasq .clear{display:block}

/* hero */
.hero{position:relative;margin:14px 18px 0;border-radius:var(--r4);overflow:hidden;box-shadow:var(--sh2);border:1px solid var(--line-2)}
.hero .hmedia{height:196px;background:linear-gradient(140deg,#231A12,#120D09)}
.hero img{width:100%;height:196px;object-fit:cover}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,6,4,.06) 25%,rgba(8,6,4,.86))}
.hero .content{position:absolute;left:20px;right:20px;bottom:16px}
.hero h1{font-family:var(--f-disp);font-size:29px;font-weight:580;letter-spacing:.2px;line-height:1.08;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.hero p{font-size:12px;color:var(--ink-2);margin-top:5px;letter-spacing:.3px}
.hero .badges{position:absolute;top:13px;left:13px;display:flex;gap:8px}
.badge{font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;padding:7px 11px;border-radius:var(--pill);
  background:rgba(10,8,6,.55);backdrop-filter:blur(12px);border:1px solid rgba(240,231,216,.16);color:var(--ink);
  display:flex;align-items:center;gap:5px;box-shadow:inset 0 1px 0 var(--glass-hi)}
.badge .star{color:var(--gold)}

/* party + diet filter row */
.controlrow{display:flex;align-items:center;gap:10px;padding:16px 18px 0;flex-wrap:wrap}
.crlabel{font-size:11px;color:var(--ink-3);font-weight:650;letter-spacing:.8px;text-transform:uppercase}
.party{display:flex;gap:6px}
.party button{width:34px;height:38px;border-radius:12px;background:var(--glass);border:1px solid var(--line);
  font-size:13.5px;font-weight:700;color:var(--ink-2);transition:all .22s var(--spring);box-shadow:inset 0 1px 0 var(--glass-hi)}
.party button.on{background:linear-gradient(145deg,var(--gold),#B08D52);border-color:transparent;color:#1C130A;box-shadow:var(--glow-gold)}
.dietseg{display:flex;background:var(--glass);border:1px solid var(--line);border-radius:var(--pill);padding:4px;gap:2px;margin-left:auto;
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.dietseg button{padding:7px 12px;border-radius:var(--pill);font-size:11.5px;font-weight:700;color:var(--ink-3);display:flex;align-items:center;gap:6px;transition:all .2s}
.dietseg button.on{background:var(--glass-2);color:var(--ink);border:1px solid var(--line-2)}
.dietseg .sq{width:11px;height:11px;border-radius:3.5px;border:1.5px solid;display:inline-grid;place-items:center;flex:none}
.dietseg .sq::after{content:'';width:5px;height:5px;border-radius:50%}
.dietseg .sq.v{border-color:var(--veg)}.dietseg .sq.v::after{background:var(--veg)}
.dietseg .sq.n{border-color:var(--nonveg)}.dietseg .sq.n::after{background:var(--nonveg);border-radius:1.5px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.dietseg .sq.e{border-color:var(--egg)}.dietseg .sq.e::after{background:var(--egg)}

/* chips */
.chiprow{display:flex;gap:9px;overflow-x:auto;padding:14px 18px 4px;scrollbar-width:none}
.chiprow::-webkit-scrollbar{display:none}
.chip{flex:none;display:flex;align-items:center;gap:7px;padding:10px 15px;border-radius:var(--pill);
  background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);font-size:12.5px;font-weight:650;color:var(--ink-2);
  transition:all .25s var(--spring);box-shadow:inset 0 1px 0 var(--glass-hi)}
.chip:hover{border-color:var(--line-2);transform:translateY(-1px)}
.chip.on{background:linear-gradient(145deg,rgba(216,181,115,.2),rgba(224,106,60,.12));border-color:rgba(216,181,115,.5);color:var(--ink)}
.chipnote{margin:10px 18px 0;padding:12px 15px;border-radius:var(--r3);
  background:linear-gradient(145deg,rgba(216,181,115,.09),rgba(224,106,60,.05));
  border:1px solid rgba(216,181,115,.24);font-size:12.5px;color:var(--ink-2);display:flex;gap:9px;align-items:flex-start;animation:rise .3s var(--out)}
.chipnote b{color:var(--ink)}

/* In-view recommendation rail. It lives above the navigation island, so a
   recommendation triggered halfway down the menu is never rendered off-screen. */
#liveAssist{position:fixed;left:50%;bottom:calc(102px + env(safe-area-inset-bottom));z-index:79;width:min(520px,calc(100% - 24px));
  transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 22px 32px rgba(0,0,0,.42))}
#liveAssist:empty{display:none}
#liveAssist .contextdeck{pointer-events:auto;margin:0}
.menuadapt{margin:10px 18px 0;padding:10px 13px;border-radius:15px;display:flex;align-items:center;gap:10px;
  background:linear-gradient(105deg,rgba(111,217,222,.065),rgba(216,181,115,.055));border:1px solid rgba(111,217,222,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);animation:rise .32s var(--out)}
.menuadapt .mapulse{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;position:relative;flex:none;border:1px solid rgba(111,217,222,.3)}
.menuadapt .mapulse::before,.menuadapt .mapulse::after{content:'';position:absolute;border-radius:50%;border:1px solid rgba(111,217,222,.18);inset:4px;animation:breathe 2.2s infinite}
.menuadapt .mapulse::after{inset:-4px;opacity:.45;animation-delay:.45s}.menuadapt .mapulse i{width:5px;height:5px;border-radius:50%;background:#76E4E7;box-shadow:0 0 12px #76E4E7}
.menuadapt div{display:flex;flex-direction:column;min-width:0}.menuadapt b{font-size:10px;text-transform:uppercase;letter-spacing:1.35px;color:#9DEDEF}
.menuadapt span:not(.mapulse){font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contextdeck{margin:11px 18px 3px;border-radius:22px;overflow:hidden;position:relative;
  background:radial-gradient(100% 120% at 0 0,rgba(111,217,222,.11),transparent 45%),linear-gradient(145deg,rgba(41,31,22,.96),rgba(18,14,11,.97));
  border:1px solid rgba(216,181,115,.31);box-shadow:0 18px 48px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,244,228,.075);animation:nudgein .48s var(--spring)}
.contextdeck::before{content:'';position:absolute;top:0;bottom:0;width:80px;left:-110px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(111,217,222,.09),transparent);transform:skewX(-18deg);animation:contextscan 5.5s ease-in-out infinite}
@keyframes contextscan{0%,58%{left:-110px}85%,100%{left:calc(100% + 110px)}}
.cdtrace{height:29px;padding:0 13px;display:flex;align-items:center;gap:9px;border-bottom:1px solid rgba(240,231,216,.08);font:700 8.5px/1 var(--f-mono);letter-spacing:1.05px;color:var(--ink-4);text-transform:uppercase}
.cdtrace span:first-child{max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--gold)}.cdtrace i{height:1px;flex:1;background:linear-gradient(90deg,rgba(216,181,115,.35),rgba(111,217,222,.12))}
.cdmain{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:13px}.cdimg{width:72px;height:72px;border-radius:16px;overflow:hidden;background:var(--bg-3);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.cdimg img{width:100%;height:100%;object-fit:cover}.cdbody{min-width:0}.cdlabel{font-size:8.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#80DFE4;margin-bottom:2px}
.cdbody h3{font-family:var(--f-disp);font-size:17px;font-weight:580;line-height:1.15}.cdbody p{font-size:11.5px;line-height:1.46;color:var(--ink-3);margin-top:4px;max-height:108px;overflow:auto;padding-right:5px;scrollbar-width:thin;scrollbar-color:rgba(216,181,115,.28) transparent}
.cdmeta{display:flex;align-items:center;gap:9px;margin-top:5px;font-size:10.5px;color:var(--ink-4)}.cdmeta b{font-size:12px;color:var(--ink-2)}
.cdacts{display:flex;flex-direction:column;gap:6px}.cdadd{padding:10px 14px;border-radius:11px;background:linear-gradient(145deg,var(--ember),#B84A26);color:#fff;font-size:11.5px;font-weight:800;box-shadow:0 7px 20px rgba(224,106,60,.23)}
.cdskip{padding:4px;color:var(--ink-4);font-size:10px;font-weight:700}.cdskip:hover{color:var(--ink-2)}

/* category nav */
.catnav{position:sticky;top:66px;z-index:50;display:flex;gap:3px;overflow-x:auto;padding:10px 18px;
  background:linear-gradient(180deg,rgba(13,10,8,.94),rgba(13,10,8,.82));backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);scrollbar-width:none}
.catnav::-webkit-scrollbar{display:none}
.catnav a{flex:none;padding:8px 13px;border-radius:var(--pill);font-size:12.5px;font-weight:650;color:var(--ink-3);text-decoration:none;transition:all .18s;border:1px solid transparent}
.catnav a.on{color:var(--gold-2);background:rgba(216,181,115,.09);border-color:rgba(216,181,115,.25)}

/* sections + cards */
.section{padding:24px 18px 2px}
.shead{display:flex;align-items:baseline;gap:11px;margin-bottom:14px}
.shead .kicker{font-size:9.5px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gold)}
.shead h2{font-family:var(--f-disp);font-size:21px;font-weight:560;letter-spacing:.2px}
.shead .count{font-size:11px;color:var(--ink-4);font-weight:650}
.shead .rule{flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent)}
.card{display:grid;grid-template-columns:1fr 122px;gap:15px;padding:15px;margin-bottom:13px;position:relative;overflow:hidden;
  background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--r4);
  box-shadow:inset 0 1px 0 var(--glass-hi);transition:transform .3s var(--out),border-color .2s,box-shadow .3s;animation:rise .45s var(--out) both}
.card:hover{transform:translateY(-2px);border-color:var(--line-2);box-shadow:var(--sh1),inset 0 1px 0 var(--glass-hi)}
.card.adapted{border-color:rgba(111,217,222,.2);background:linear-gradient(135deg,rgba(111,217,222,.045),var(--glass) 44%)}
.card.adapted::before{content:'';position:absolute;left:0;top:18px;bottom:18px;width:2px;border-radius:2px;background:linear-gradient(#78E1E5,rgba(216,181,115,.55));box-shadow:0 0 12px rgba(111,217,222,.45)}
.card .info{min-width:0;display:flex;flex-direction:column}
.card .diet{display:flex;align-items:center;gap:7px;margin-bottom:7px;flex-wrap:wrap}
.dietdot{width:14px;height:14px;border-radius:4.5px;border:1.5px solid;display:grid;place-items:center;flex:none}
.dietdot::after{content:'';width:6px;height:6px;border-radius:50%}
.dietdot.veg{border-color:var(--veg)}.dietdot.veg::after{background:var(--veg)}
.dietdot.egg{border-color:var(--egg)}.dietdot.egg::after{background:var(--egg)}
.dietdot.nonveg{border-color:var(--nonveg)}.dietdot.nonveg::after{background:var(--nonveg);border-radius:2px;clip-path:polygon(50% 0,100% 100%,0 100%)}
.tag{font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:4px 9px;border-radius:var(--pill)}
.tag.adapt{color:#9DEDEF;background:rgba(111,217,222,.08);border:1px solid rgba(111,217,222,.22)}
.adaptwhy{font-size:10.5px;line-height:1.35;color:#83C9CB;margin-top:7px;padding-top:7px;border-top:1px solid rgba(111,217,222,.1);display:flex;gap:5px}.adaptwhy span{color:var(--gold)}
@media(max-width:410px){.cdmain{grid-template-columns:58px 1fr;gap:10px}.cdimg{width:58px;height:58px}.cdacts{grid-column:1/-1;flex-direction:row}.cdacts button{flex:1}.cdtrace span:last-child{display:none}}
.tag.pick{background:rgba(216,181,115,.13);color:var(--gold-2);border:1px solid rgba(216,181,115,.3)}
.tag.pop{background:rgba(198,93,114,.13);color:#E795A6;border:1px solid rgba(198,93,114,.3)}
.card h3{font-family:var(--f-disp);font-size:16.5px;font-weight:580;line-height:1.24}
.card .desc{font-size:12.5px;color:var(--ink-3);line-height:1.5;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .foot{display:flex;align-items:center;gap:11px;margin-top:auto;padding-top:11px}
.card .price{font-size:15.5px;font-weight:700;letter-spacing:.2px;font-variant-numeric:tabular-nums}
.card .prep,.metaline .prep{font-size:11px;color:var(--ink-4);display:flex;align-items:center;gap:4px;font-weight:600}
.card .media{position:relative;width:122px;height:122px;border-radius:var(--r3);overflow:hidden;flex:none;align-self:center;background:var(--bg-3);box-shadow:var(--sh1)}
.card .media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--out)}
.card:hover .media img{transform:scale(1.07)}
.card .media::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(240,231,216,.08),inset 0 -26px 30px -18px rgba(0,0,0,.55);border-radius:inherit;pointer-events:none}
.addbtn{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:2;min-width:78px;padding:9px 15px;border-radius:12px;
  background:linear-gradient(160deg,#FBF4E8,#E8DCC6);color:#241A10;font-size:12px;font-weight:800;letter-spacing:.6px;
  box-shadow:0 6px 18px rgba(0,0,0,.5),inset 0 1px 0 #fff;transition:all .25s var(--spring)}
.addbtn:hover{transform:translateX(-50%) translateY(-2px)}
.addbtn:active{transform:translateX(-50%) scale(.94)}
.qty{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:2;display:flex;align-items:center;border-radius:12px;overflow:hidden;
  background:linear-gradient(145deg,var(--ember),#BC5028);box-shadow:var(--glow-ember)}
.qty button{width:31px;height:33px;color:#fff;font-size:16px;font-weight:800;display:grid;place-items:center}
.qty span{min-width:24px;text-align:center;color:#fff;font-size:13px;font-weight:800}
.ph{width:100%;height:100%;background:linear-gradient(100deg,#1B1510 30%,#241C14 50%,#1B1510 70%);background-size:500px 100%;animation:shimmer 1.5s infinite linear}
.imgfall{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:radial-gradient(130% 130% at 25% 15%,#33261A,#191009);font-size:30px}
.imgfall small{font-size:8.5px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-4);padding:0 8px;text-align:center}

/* overlays + sheets */
.overlay{position:fixed;inset:0;z-index:90;background:rgba(6,4,3,.7);backdrop-filter:blur(8px);animation:fade .28s both}
.sheet{position:fixed;left:0;right:0;margin:0 auto;bottom:0;width:100%;max-width:520px;max-height:94dvh;z-index:95;
  background:linear-gradient(180deg,#161009,var(--bg-2));border-radius:30px 30px 0 0;border:1px solid var(--line-2);border-bottom:0;
  overflow:hidden auto;overscroll-behavior:contain;animation:sheetup .5s var(--out) both;box-shadow:var(--sh3)}
.sheet .grab{position:sticky;top:0;z-index:6;display:grid;place-items:center;padding:11px 0 3px;background:linear-gradient(180deg,#161009 55%,transparent)}
.sheet .grab i{width:42px;height:4.5px;border-radius:99px;background:var(--line-3)}
.sheet .close{position:absolute;top:15px;right:15px;z-index:7;width:36px;height:36px;border-radius:50%;
  background:rgba(10,8,6,.6);backdrop-filter:blur(10px);border:1px solid var(--line-2);color:var(--ink);display:grid;place-items:center;font-size:15px}
.sheet .photo{position:relative;margin:6px 16px 0;height:256px;border-radius:var(--r4);overflow:hidden;background:var(--bg-3);box-shadow:var(--sh1)}
.sheet .photo img{width:100%;height:100%;object-fit:cover}
.sheet .photo .pscrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(8,6,4,.6));pointer-events:none}
.sheet .body{padding:18px 22px 150px}
.sheet .row1{display:flex;align-items:flex-start;gap:12px}
.sheet h2{font-family:var(--f-disp);font-size:24px;font-weight:580;line-height:1.14;flex:1}
.sheet .bigprice{font-size:20px;font-weight:750;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--gold-2)}
.metaline{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:11px}
.sheet .fulldesc{font-size:14.5px;color:var(--ink-2);line-height:1.7;margin-top:15px}
.sense{margin-top:15px;padding:14px 16px;border-radius:var(--r3);position:relative;
  background:linear-gradient(150deg,rgba(216,181,115,.09),rgba(224,106,60,.05));border:1px solid rgba(216,181,115,.22);
  font-family:var(--f-disp);font-style:italic;font-size:14.5px;color:#EEDCB8;line-height:1.6}
.sense::before{content:'❝';position:absolute;top:6px;right:14px;font-size:26px;color:rgba(216,181,115,.3);font-style:normal}

/* flavor composition — vertical ingredient nodes */
.sechead{display:flex;align-items:center;gap:9px;margin:24px 0 13px}
.sechead .t{font-size:10px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-3)}
.sechead .rule{flex:1;height:1px;background:var(--line)}
.flavnodes{position:relative;padding-left:6px}
.flavnodes::before{content:'';position:absolute;left:27px;top:22px;bottom:22px;width:1.5px;
  background:linear-gradient(180deg,rgba(216,181,115,.5),rgba(216,181,115,.06))}
.fnode{display:flex;gap:14px;align-items:flex-start;padding:9px 0;position:relative;animation:rise .4s var(--out) both}
.fnode .fico{width:44px;height:44px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:19px;position:relative;z-index:1;
  background:radial-gradient(120% 120% at 30% 20%,#2E2318,#191009);border:1px solid rgba(216,181,115,.35);
  box-shadow:0 4px 14px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,244,228,.1)}
.fnode .ft{padding-top:3px}
.fnode .fn{font-size:13.5px;font-weight:650;color:var(--ink)}
.fnode .fd{font-size:12px;color:var(--ink-3);line-height:1.5;margin-top:2px}

/* sommelier's note — glassmorphic, violet accent */
.somm{margin-top:8px;padding:17px 18px;border-radius:var(--r4);position:relative;overflow:hidden;
  background:linear-gradient(150deg,rgba(120,90,220,.13),rgba(169,139,232,.05) 55%,rgba(30,23,18,.4));
  border:1px solid rgba(169,139,232,.3);backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(200,180,255,.12),0 10px 30px rgba(90,60,180,.12)}
.somm::before{content:'';position:absolute;top:-42px;right:-42px;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(169,139,232,.22),transparent 70%)}
.somm .sk{font-size:9.5px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--violet);display:flex;align-items:center;gap:7px;margin-bottom:9px}
.somm .st{font-family:var(--f-disp);font-size:15.5px;font-weight:580;color:#E7DEF8;margin-bottom:7px;line-height:1.3}
.somm .sb{font-size:13px;color:#C4BAD8;line-height:1.65}

/* ask-waiter buttons + question chips */
.qchips{display:flex;flex-wrap:wrap;gap:8px}
.qchip{padding:10px 14px;border-radius:var(--pill);background:var(--glass);border:1px solid var(--line-2);
  font-size:12.5px;font-weight:650;color:var(--ink-2);transition:all .18s;box-shadow:inset 0 1px 0 var(--glass-hi)}
.qchip:hover{color:var(--ink);border-color:rgba(216,181,115,.4)}
.qanswer{margin-top:10px;padding:13px 15px;border-radius:var(--r2);background:var(--glass-2);border-left:3px solid var(--gold);
  font-size:13px;color:var(--ink-2);line-height:1.6;animation:rise .3s both}
.askwaiter{display:flex;align-items:center;gap:12px;width:100%;margin-top:14px;padding:14px 16px;border-radius:var(--r3);text-align:left;
  background:linear-gradient(150deg,rgba(224,106,60,.13),rgba(216,181,115,.07));border:1px solid rgba(224,106,60,.32);
  transition:all .22s var(--spring);box-shadow:inset 0 1px 0 var(--glass-hi)}
.askwaiter:hover{transform:translateY(-1px);border-color:rgba(224,106,60,.5)}
.askwaiter .wico{width:38px;height:38px;border-radius:12px;flex:none;display:grid;place-items:center;font-size:18px;
  background:linear-gradient(145deg,var(--ember),#B94E27);box-shadow:var(--glow-ember)}
.askwaiter .wt b{display:block;font-size:13.5px;color:var(--ink)}
.askwaiter .wt span{font-size:11.5px;color:var(--ink-3)}
.allergy{margin-top:16px;display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-4)}
.alldot{width:8px;height:8px;border-radius:50%;flex:none}
.alldot.ok{background:var(--sage)}.alldot.ask{background:var(--ink-4)}
.sheetbar{position:sticky;bottom:0;display:flex;gap:12px;align-items:center;padding:14px 22px calc(16px + env(safe-area-inset-bottom));
  background:linear-gradient(0deg,#14100A 62%,transparent)}
.bigadd{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;border-radius:var(--r3);
  background:linear-gradient(150deg,var(--ember),#BC5028);font-size:15px;font-weight:800;letter-spacing:.3px;color:#fff;
  box-shadow:var(--glow-ember);transition:transform .22s var(--spring)}
.bigadd:active{transform:scale(.97)}
.sheetqty{display:flex;align-items:center;gap:2px;background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r2);padding:4px}
.sheetqty button{width:40px;height:40px;border-radius:10px;font-size:18px;font-weight:800}
.sheetqty button:hover{background:rgba(240,231,216,.06)}
.sheetqty span{min-width:26px;text-align:center;font-weight:800;font-size:15px}

/* ═══ floating island (Menu · Alfred · Cart) ═══ */
.island{position:fixed;left:0;right:0;margin:0 auto;width:max-content;bottom:calc(16px + env(safe-area-inset-bottom));z-index:75;
  display:flex;align-items:center;gap:4px;padding:7px;border-radius:26px;
  background:rgba(22,17,12,.72);backdrop-filter:blur(26px) saturate(1.5);-webkit-backdrop-filter:blur(26px) saturate(1.5);
  border:1px solid rgba(240,231,216,.14);box-shadow:0 18px 50px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,244,228,.09);
  animation:nudgein .5s var(--spring) both}
.island .isbtn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:78px;padding:9px 14px;border-radius:20px;
  font-size:10px;font-weight:750;letter-spacing:.4px;color:var(--ink-3);transition:all .25s var(--spring)}
.island .isbtn .iico{font-size:19px;line-height:1;filter:grayscale(.4);transition:all .25s}
.island .isbtn.on{color:#241A10;background:linear-gradient(150deg,#F4E8D2,#DCC9A4);box-shadow:0 6px 20px rgba(216,181,115,.25),inset 0 1px 0 #fff}
.island .isbtn.on .iico{filter:none}
.island .isbtn:not(.on):hover{color:var(--ink)}
.island .cartn{position:absolute;top:4px;right:10px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;display:grid;place-items:center;
  background:var(--ember);color:#fff;font-size:10px;font-weight:800;box-shadow:0 2px 8px rgba(224,106,60,.5)}
.island .totalpill{margin-left:2px;margin-right:6px;font-size:12px;font-weight:800;color:var(--gold-2);font-variant-numeric:tabular-nums;display:none}
.island .totalpill.show{display:block}

/* nudge */
.nudge{position:fixed;left:0;right:0;margin:0 auto;bottom:calc(96px + env(safe-area-inset-bottom));z-index:80;
  width:min(478px,calc(100% - 26px));padding:14px;display:flex;gap:14px;align-items:center;border-radius:22px;
  background:linear-gradient(155deg,rgba(46,34,22,.92),rgba(26,18,11,.94));backdrop-filter:blur(20px);
  border:1px solid rgba(216,181,115,.42);
  box-shadow:0 16px 50px rgba(0,0,0,.65),0 0 40px rgba(216,181,115,.1),inset 0 1px 0 rgba(255,244,228,.1);
  animation:nudgein .55s var(--spring) both}
.nudge .nimg{width:76px;height:76px;border-radius:16px;overflow:hidden;flex:none;background:var(--bg-3);box-shadow:var(--sh1)}
.nudge .nimg img{width:100%;height:100%;object-fit:cover}
.nudge .nbody{flex:1;min-width:0}
.nudge .nkicker{font-size:9px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:6px;margin-bottom:4px}
.nudge .nkicker .spark{animation:floaty 2.4s infinite}
.nudge .nline{font-size:13.5px;line-height:1.45;color:var(--ink)}
.nudge .nline b{color:#F7E9CB}
.nudge .nprice{font-size:11.5px;color:var(--ink-3);margin-top:4px;font-weight:650;font-variant-numeric:tabular-nums}
.nudge .nacts{display:flex;flex-direction:column;gap:8px;flex:none}
.nudge .yes{padding:11px 17px;border-radius:13px;background:linear-gradient(150deg,var(--ember),#BC5028);color:#fff;font-size:13px;font-weight:800;white-space:nowrap;box-shadow:var(--glow-ember);transition:transform .2s var(--spring)}
.nudge .yes:active{transform:scale(.93)}
.nudge .no{font-size:11px;color:var(--ink-4);font-weight:650;padding:3px}
.nudge .no:hover{color:var(--ink-2)}

/* A cart-review suggestion is part of the decision surface, not another popup. */
.cartnudge{display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;margin:14px 0 4px;padding:12px;
  border-radius:18px;background:linear-gradient(145deg,rgba(216,181,115,.09),rgba(224,106,60,.045));
  border:1px solid rgba(216,181,115,.28);box-shadow:inset 0 1px 0 rgba(255,244,228,.05)}
.cartnudge .cnimg{width:58px;height:58px;border-radius:13px;overflow:hidden;background:var(--bg-3)}
.cartnudge .cnimg img{width:100%;height:100%;object-fit:cover}
.cartnudge .cnbody{min-width:0}.cartnudge .nkicker{font-size:8.5px;font-weight:800;letter-spacing:1.35px;text-transform:uppercase;color:var(--gold);display:flex;gap:5px;align-items:center;margin-bottom:3px}
.cartnudge .nkicker em{margin-left:auto;font-style:normal;color:var(--ink-4);letter-spacing:.7px;font-size:7.5px}
.cartnudge .cnline{font-size:12.5px;line-height:1.38;color:var(--ink-2)}.cartnudge .cnline b{color:var(--ink)}
.cnsignals{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.cnsignals span{font-size:8px;line-height:1.2;color:var(--ink-3);border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:99px;padding:4px 7px}
.cartclear{display:flex;gap:10px;align-items:center;margin:14px 0 4px;padding:13px;border:1px solid rgba(98,201,146,.25);background:rgba(98,201,146,.06);border-radius:15px;color:#8BE0B2}.cartclear>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(98,201,146,.35)}.cartclear b{display:block;color:var(--ink);font-size:12px}.cartclear small{display:block;color:var(--ink-3);font-size:9.5px;line-height:1.45;margin-top:2px}
.cartclear.open{border-color:rgba(216,181,115,.25);background:rgba(216,181,115,.055);color:var(--gold)}.cartclear.open>span{border-color:rgba(216,181,115,.34)}
.cartgaps{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.cartgaps em{font-style:normal;padding:4px 7px;border-radius:999px;border:1px solid rgba(216,181,115,.18);font-size:8px;color:var(--ink-3);background:rgba(216,181,115,.035)}
.cartnudge .cnprice{font-size:11px;color:var(--ink-4);margin-top:3px;font-weight:700}.cartnudge .cnacts{display:flex;flex-direction:column;gap:5px;align-items:stretch}
.cartnudge .yes{padding:9px 13px;border-radius:11px;background:linear-gradient(150deg,var(--ember),#BC5028);color:#fff;font-size:11.5px;font-weight:800;box-shadow:0 6px 18px rgba(224,106,60,.2)}
.cartnudge .no{padding:4px;color:var(--ink-4);font-size:10.5px;font-weight:700}.cartnudge .no:hover{color:var(--ink-2)}

/* cart sheet + confirm */
.cartsheet .item{display:flex;gap:13px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.cartsheet .item:last-child{border-bottom:0}
.cartsheet .ci{width:54px;height:54px;border-radius:14px;overflow:hidden;flex:none;background:var(--bg-3)}
.cartsheet .ci img{width:100%;height:100%;object-fit:cover}
.cartsheet .cinfo{flex:1;min-width:0}
.cartsheet .nm{font-size:14px;font-weight:650}
.cartsheet .pr{font-size:12px;color:var(--ink-3);margin-top:2px;font-variant-numeric:tabular-nums}
.fromtm{font-size:8.5px;font-weight:800;letter-spacing:1px;color:var(--gold);text-transform:uppercase}
.totals{margin-top:16px;padding-top:15px;border-top:1px dashed var(--line-2)}
.trow{display:flex;justify-content:space-between;font-size:13.5px;color:var(--ink-2);padding:4px 0;font-variant-numeric:tabular-nums}
.trow.grand{font-size:17.5px;font-weight:800;color:var(--ink);padding-top:9px}
.placebtn{width:100%;margin-top:16px;padding:17px;border-radius:var(--r3);background:linear-gradient(150deg,var(--ember),#BC5028);
  color:#fff;font-size:15.5px;font-weight:800;letter-spacing:.3px;box-shadow:var(--glow-ember);transition:transform .2s var(--spring)}
.placebtn:active{transform:scale(.98)}
.servicebtns{display:flex;gap:10px;margin-top:12px}
.servicebtns button{flex:1;padding:12px;border-radius:var(--r2);font-size:12.5px;font-weight:700;background:var(--glass);border:1px solid var(--line-2);color:var(--ink-2)}
@media(max-width:430px){.cartnudge{grid-template-columns:50px 1fr;gap:10px}.cartnudge .cnimg{width:50px;height:50px}.cartnudge .cnacts{grid-column:1/-1;flex-direction:row}.cartnudge .cnacts button{flex:1}}
@media(max-width:560px){.cdmain{grid-template-columns:58px 1fr}.cdimg{width:58px;height:58px}.cdacts{grid-column:1/-1;flex-direction:row}.cdacts button{flex:1}.cdbody p{max-height:132px}.contextdeck{max-height:46vh;overflow:auto}}
.confirm{position:fixed;inset:0;z-index:120;overflow:auto;background:radial-gradient(130% 80% at 50% 0%,#221910,var(--bg) 62%);
  animation:fade .5s both;display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 26px 46px}
.bigcheck{width:90px;height:90px;border-radius:50%;background:linear-gradient(145deg,var(--sage),#5E8A5A);display:grid;place-items:center;
  font-size:40px;color:#fff;box-shadow:0 14px 48px rgba(140,176,136,.35);animation:pop .6s var(--spring) both}
.confirm h2{font-family:var(--f-disp);font-size:27px;margin-top:22px;font-weight:580}
.confirm .sub{color:var(--ink-2);font-size:14px;margin-top:8px;max-width:330px;line-height:1.65}
.osum{width:100%;max-width:370px;margin-top:24px;text-align:left;background:var(--glass);backdrop-filter:blur(12px);
  border:1px solid var(--line-2);border-radius:var(--r4);padding:17px 19px;box-shadow:inset 0 1px 0 var(--glass-hi)}
.osum .orow{display:flex;justify-content:space-between;font-size:13.5px;padding:5px 0;color:var(--ink-2);font-variant-numeric:tabular-nums}
.osum .orow b{color:var(--ink);font-weight:650}
.confirm .after{margin-top:26px;width:100%;max-width:370px;display:flex;flex-direction:column;gap:11px}
.confirm .opt{display:flex;align-items:center;gap:13px;text-align:left;padding:15px 17px;border-radius:var(--r3);
  background:var(--glass);border:1px solid var(--line-2);font-size:13.5px;font-weight:650;color:var(--ink-2);width:100%;box-shadow:inset 0 1px 0 var(--glass-hi)}
.confirm .opt .ic{font-size:20px}
.newsession{margin-top:28px;font-size:13px;color:var(--ink-3);text-decoration:underline;text-underline-offset:4px}

/* identity gate — the consented phone ask */
.partygate{position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 18px;background:radial-gradient(circle at 50% 38%,rgba(216,181,115,.14),transparent 32%),linear-gradient(155deg,#0e0b08,#17110c 55%,#090807);backdrop-filter:blur(30px);overflow:hidden}
.partygate::before{content:'';position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(216,181,115,.13);box-shadow:0 0 0 70px rgba(216,181,115,.025),0 0 0 140px rgba(216,181,115,.018),inset 0 0 80px rgba(216,181,115,.04);animation:pgorbit 12s linear infinite}
.partygate::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 50%,rgba(255,255,255,.012) 50%);background-size:100% 4px;mix-blend-mode:screen}
.pgscan{position:absolute;left:0;right:0;height:100px;background:linear-gradient(transparent,rgba(216,181,115,.055),transparent);animation:pgscan 4.4s ease-in-out infinite}.pgmark{position:relative;width:58px;height:58px;border-radius:20px;display:grid;place-items:center;font-family:var(--f-disp);font-size:28px;color:#1a120b;background:linear-gradient(145deg,#f4d89c,#a6773e);box-shadow:0 0 70px rgba(216,181,115,.3),inset 0 1px 0 #fff4da;margin-bottom:20px}.pgeye{position:relative;font-family:var(--f-mono);font-size:9px;letter-spacing:2.2px;color:var(--gold);text-transform:uppercase;margin-bottom:11px}.partygate h2{position:relative;font-family:var(--f-disp);font-size:31px;font-weight:500;letter-spacing:-.5px}.partygate>p{position:relative;max-width:380px;color:var(--ink-3);font-size:12.5px;line-height:1.65;margin:8px 0 24px}.pgnumbers{position:relative;display:grid;grid-template-columns:repeat(4,70px);gap:10px}.pgnumbers button{height:76px;border-radius:20px;background:linear-gradient(150deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border:1px solid rgba(216,181,115,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 35px rgba(0,0,0,.2);transition:.25s var(--spring)}.pgnumbers button:hover,.pgnumbers button:focus{transform:translateY(-5px) scale(1.04);border-color:rgba(216,181,115,.65);box-shadow:0 0 30px rgba(216,181,115,.12),inset 0 1px 0 rgba(255,255,255,.14)}.pgnumbers b{display:block;font-family:var(--f-disp);font-size:25px;color:var(--ink);font-weight:500}.pgnumbers span{display:block;font-size:8px;letter-spacing:1px;color:var(--ink-4);text-transform:uppercase;margin-top:3px}.partygate>small{position:relative;color:var(--ink-4);font-size:9.5px;margin-top:19px}.devicechip{color:var(--gold-2);border-color:rgba(216,181,115,.22)!important}
@keyframes pgorbit{to{transform:rotate(360deg)}}@keyframes pgscan{0%,100%{transform:translateY(-46vh)}50%{transform:translateY(46vh)}}
@media(max-width:380px){.pgnumbers{grid-template-columns:repeat(4,62px);gap:8px}.pgnumbers button{height:68px}.partygate h2{font-size:27px}}
.idgate{position:fixed;left:0;right:0;margin:0 auto;bottom:calc(96px + env(safe-area-inset-bottom));z-index:82;
  width:min(478px,calc(100% - 20px));max-width:calc(100vw - 20px);box-sizing:border-box;padding:17px;border-radius:22px;
  background:linear-gradient(155deg,rgba(46,34,22,.95),rgba(26,18,11,.96));backdrop-filter:blur(20px);
  border:1px solid rgba(216,181,115,.4);
  box-shadow:0 16px 50px rgba(0,0,0,.65),0 0 40px rgba(216,181,115,.08),inset 0 1px 0 rgba(255,244,228,.1);
  animation:nudgein .55s var(--spring) both}
.idgate .ik2{font-size:9px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--gold);margin-bottom:6px;display:flex;gap:6px;align-items:center}
.idgate h4{font-family:var(--f-disp);font-size:16.5px;font-weight:600;line-height:1.3}
.idgate p{font-size:11.5px;color:var(--ink-3);margin-top:5px;line-height:1.55}
.idgate .idrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px}
.idgate input{min-width:0;width:100%;box-sizing:border-box;background:var(--glass);border:1px solid var(--line-2);border-radius:13px;padding:12px 14px;font-size:14px;outline:0;color:var(--ink);letter-spacing:.5px}
.idgate input:focus{border-color:rgba(216,181,115,.45)}
.idgate .go2{padding:12px 16px;border-radius:13px;background:linear-gradient(150deg,var(--gold),#B08D52);color:#1C130A;font-weight:800;font-size:12.5px;white-space:nowrap}
.idgate .skip2{width:100%;margin-top:9px;font-size:11px;color:var(--ink-4);font-weight:650}
.idgate .fine{font-size:9.5px;color:var(--ink-4);margin-top:9px;line-height:1.5}
@media(max-width:370px){.idgate{padding:14px}.idgate .idrow{grid-template-columns:1fr}.idgate .go2{width:100%;white-space:normal}.idgate .fine{font-size:9px}}

/* toast + modebanner + fab */
.toast{position:fixed;left:0;right:0;margin:0 auto;width:max-content;top:calc(76px + env(safe-area-inset-top));z-index:130;
  background:rgba(20,15,10,.92);backdrop-filter:blur(16px);border:1px solid var(--line-2);border-radius:15px;padding:12px 18px;
  font-size:13px;font-weight:650;color:var(--ink);box-shadow:var(--sh2);animation:rise .3s var(--out) both;display:flex;gap:9px;align-items:center;max-width:calc(100% - 40px)}
.modebanner{margin:12px 18px 0;padding:11px 14px;border-radius:var(--r3);background:var(--glass);border:1px dashed var(--line-2);
  font-size:12px;color:var(--ink-3);display:flex;gap:9px;align-items:flex-start;line-height:1.5}
body.plain .chiprow,body.plain #chipnoteWrap{display:none}
.demofab{position:fixed;right:14px;top:calc(84px + env(safe-area-inset-top));z-index:65;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.demofab .fabmain{width:42px;height:42px;border-radius:50%;background:var(--glass-2);backdrop-filter:blur(12px);border:1px solid var(--line-2);
  color:var(--ink-3);display:grid;place-items:center;font-size:16px;box-shadow:var(--sh1)}
.demofab .fabmenu{display:none;flex-direction:column;gap:5px;background:rgba(18,14,10,.97);backdrop-filter:blur(20px);
  border:1px solid var(--line-2);border-radius:18px;padding:10px;box-shadow:var(--sh3);min-width:216px}
.demofab.open .fabmenu{display:flex;animation:rise .25s both}
.fabmenu .fitem{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:11px;font-size:12.5px;font-weight:650;color:var(--ink-2);text-align:left}
.fabmenu .fitem:hover{background:var(--glass-2);color:var(--ink)}
.fabmenu .fitem.on{color:var(--gold-2)}
.fabmenu .fsep{height:1px;background:var(--line);margin:4px 0}
.fabmenu .flabel{font-size:9px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-4);padding:4px 11px 1px}
.noresults{padding:50px 20px;text-align:center;color:var(--ink-3)}
.noresults .big{font-size:38px;margin-bottom:12px}

/* ═══ ALFRED — full-screen chat ═══ */
.waiter{position:fixed;top:0;left:0;right:0;height:100%;height:100dvh;z-index:85;display:flex;flex-direction:column;max-width:520px;margin:0 auto;
  background:linear-gradient(180deg,#100C08,#0D0A08);animation:fade .3s both}
@media(min-width:560px){.waiter{border-left:1px solid var(--line);border-right:1px solid var(--line)}}
.whead{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(16,12,8,.95),rgba(16,12,8,.85));backdrop-filter:blur(20px)}
.whead .wavatar{width:42px;height:42px;border-radius:14px;flex:none;display:grid;place-items:center;font-size:20px;position:relative;
  background:linear-gradient(145deg,var(--ember),#A8461F);box-shadow:var(--glow-ember)}
.whead .wavatar::after{content:'';position:absolute;bottom:-1px;right:-1px;width:11px;height:11px;border-radius:50%;background:var(--sage);border:2px solid #100C08}
.whead .wn{min-width:0}.whead .wn b{display:block;font-family:var(--f-disp);font-size:16px;font-weight:600}
.whead .wn span{font-size:11px;color:var(--ink-3)}
.wtools{margin-left:auto;display:flex;align-items:center;gap:6px}.wtool,.whead .wback{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--glass);border:1px solid var(--line-2);font-size:15px;color:var(--ink-2);transition:background .2s,border-color .2s,color .2s,transform .2s}.wtool:hover,.whead .wback:hover{background:var(--glass-2);border-color:rgba(216,181,115,.32);color:var(--ink)}.wtool:active,.whead .wback:active{transform:scale(.94)}.wtool svg{width:18px;height:18px}
.whistory{position:absolute;z-index:8;inset:71px 0 0;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(16,12,8,.985),rgba(13,10,8,.99));backdrop-filter:blur(24px);animation:fade .2s both}.whistory-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 20px 14px;border-bottom:1px solid var(--line)}.whistory-head b{display:block;font-family:var(--f-disp);font-size:20px;font-weight:600}.whistory-head span{display:block;margin-top:3px;font-size:11px;color:var(--ink-3)}.whistory-close{width:34px;height:34px;border-radius:11px;background:var(--glass);border:1px solid var(--line-2);color:var(--ink-2)}.whistory-list{overflow:auto;display:flex;flex-direction:column;gap:9px;padding:14px 16px calc(24px + env(safe-area-inset-bottom))}.wthread{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:15px 16px;text-align:left;border-radius:17px;background:rgba(255,255,255,.025);border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.wthread:hover{background:rgba(216,181,115,.065);border-color:rgba(216,181,115,.24)}.wthread b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink)}.wthread time{font:600 9px/1.4 var(--f-mono);letter-spacing:.4px;color:var(--ink-4)}.wthread span{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--ink-3)}.wthread.current::after{content:'CURRENT';position:absolute}.wthread.current{border-color:rgba(216,181,115,.3)}.whistory-empty{padding:54px 22px;text-align:center;color:var(--ink-3);font-size:12px;line-height:1.6}.whistory-empty b{display:block;margin-bottom:6px;font-family:var(--f-disp);font-size:18px;color:var(--ink)}
.wbody{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:13px;overflow-anchor:none;overscroll-behavior:contain;scroll-behavior:auto}
.wthread.current::after{content:none}
.wmsg{max-width:86%;padding:13px 16px;border-radius:20px;font-size:14px;line-height:1.6;animation:rise .32s var(--out) both;white-space:pre-line}
.wmsg.ai{align-self:flex-start;background:var(--glass-2);border:1px solid var(--line);border-bottom-left-radius:8px;color:var(--ink-2);
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.wmsg.ai b{color:var(--ink)}
.wmsg.ai .money{color:var(--gold-2);font-weight:700}
.wmsg.me{align-self:flex-end;background:linear-gradient(150deg,#3A2C1C,#2A1F13);border:1px solid rgba(216,181,115,.25);
  border-bottom-right-radius:8px;color:var(--ink)}
.wdish{align-self:flex-start;display:flex;gap:12px;align-items:center;width:86%;padding:11px;border-radius:18px;
  background:var(--glass);border:1px solid rgba(216,181,115,.28);animation:rise .32s both;box-shadow:inset 0 1px 0 var(--glass-hi)}
.wdish .wdimg{width:56px;height:56px;border-radius:13px;overflow:hidden;flex:none;background:var(--bg-3)}
.wdish .wdimg img{width:100%;height:100%;object-fit:cover}
.wdish .wdi{flex:1;min-width:0}
.wdish .wdn{font-size:13.5px;font-weight:650}
.wdish .wdp{font-size:11.5px;color:var(--ink-3);margin-top:1px;font-variant-numeric:tabular-nums}
.wdish .wdn em{font-style:normal;color:var(--gold-2);font-size:11px;margin-left:4px}.wdreason{font-size:11px;line-height:1.42;color:var(--ink-3);margin-top:3px}.alfreddish{width:100%;align-self:stretch}.wplan{align-self:stretch;width:100%;display:flex;flex-direction:column;gap:9px;padding:11px;border-radius:20px;background:linear-gradient(155deg,rgba(216,181,115,.08),rgba(255,255,255,.018));border:1px solid rgba(216,181,115,.24);animation:rise .34s both}.wplanhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 3px 5px}.wplanhead b{display:block;font-family:var(--f-disp);font-size:15px;color:var(--ink)}.wplanhead span{display:block;margin-top:2px;font-size:10px;color:var(--ink-3)}.waddall{padding:8px 11px;border-radius:10px;background:rgba(216,181,115,.12);border:1px solid rgba(216,181,115,.32);color:var(--gold-2);font-size:11px;font-weight:800}.waddall:disabled,.wdadd:disabled{cursor:default}
.wdish .wdadd{padding:9px 14px;border-radius:11px;background:linear-gradient(150deg,var(--ember),#BC5028);color:#fff;font-size:12px;font-weight:800;box-shadow:var(--glow-ember)}
.wchainplan{gap:13px;padding:15px;border-radius:24px;background:linear-gradient(160deg,rgba(216,181,115,.115),rgba(255,255,255,.018) 34%,rgba(111,217,222,.035));border:1px solid rgba(216,181,115,.25);box-shadow:0 18px 40px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04);overflow:visible}
.wchainplan .wplanhead{position:relative;min-height:39px}.wchainplan.is-forming .wplanhead::after{content:'';position:absolute;left:3px;right:3px;bottom:-6px;height:1px;background:linear-gradient(90deg,transparent,rgba(216,181,115,.78),transparent);transform:translateX(-110%);animation:alfredThinkingSweep 1.7s ease-in-out infinite}
.wchainplan .waddall{opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .55s ease,transform .7s cubic-bezier(.22,.78,.22,1)}.wchainplan .waddall.is-ready,.wchainplan.is-complete .waddall{opacity:1;transform:none;pointer-events:auto}
.wprogress{height:2px;border-radius:999px;background:rgba(240,231,216,.07);overflow:hidden;margin:0 2px}.wprogress i{display:block;width:100%;height:100%;transform-origin:left;transform:scaleX(var(--progress,0));background:linear-gradient(90deg,var(--gold),#8de8eb);box-shadow:0 0 14px rgba(216,181,115,.28);transition:transform .6s cubic-bezier(.16,1,.3,1)}
.worderfinish{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 1px;padding:13px 14px;border-radius:17px;background:linear-gradient(150deg,rgba(216,181,115,.11),rgba(255,255,255,.025));border:1px solid rgba(216,181,115,.22);opacity:0;transform:translateY(12px);pointer-events:none}.worderfinish.is-ready{opacity:1;transform:none;pointer-events:auto}.worderfinish>span{font-size:11px;color:var(--ink-3);letter-spacing:.2px}.worderfinish .waddall{flex:none;padding:10px 15px}
.wchain{display:flex;flex-direction:column;gap:12px;min-height:1px}
.wstep{display:grid;grid-template-columns:21px minmax(0,1fr);gap:10px;align-items:stretch;width:100%;opacity:1;transform:none;filter:none;overflow-anchor:none}
.wstep.is-entering{opacity:0;transform:translate3d(46px,8px,0) scale(.97);filter:blur(12px)}.wstep.is-visible{opacity:1;transform:none;filter:none}.wstep.is-current .wstepcard{border-color:rgba(216,181,115,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 18px 38px rgba(0,0,0,.22),0 0 0 1px rgba(216,181,115,.08),0 0 34px rgba(216,181,115,.08)}.wstep.is-settled .wstepcard{transition:border-color .5s ease,box-shadow .5s ease}
.wstepline{display:flex;flex-direction:column;align-items:center;padding-top:9px}.wstepdot{width:13px;height:13px;border-radius:999px;background:radial-gradient(circle at 35% 35%,#fff7ea 0 18%,var(--gold) 19% 56%,rgba(216,181,115,.18) 57% 100%);box-shadow:0 0 0 4px rgba(216,181,115,.11),0 0 18px rgba(216,181,115,.22)}.wstepline i{width:2px;flex:1;min-height:42px;margin-top:9px;border-radius:999px;background:linear-gradient(180deg,rgba(216,181,115,.72),rgba(216,181,115,.08));transform-origin:top}
.wstepcard{min-width:0;position:relative;overflow:hidden;border-radius:21px;padding:14px;background:linear-gradient(155deg,rgba(255,255,255,.04),rgba(24,18,13,.62));border:1px solid rgba(240,231,216,.09);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 14px 30px rgba(0,0,0,.17)}
.wstepcard::after{content:'';position:absolute;inset:-35% auto -35% -45%;width:36%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,245,224,.12),transparent);transform:skewX(-17deg);opacity:.6;animation:alfredCardSweep 1s .15s ease both}
.wstep.shared .wstepcard{background:linear-gradient(155deg,rgba(216,181,115,.12),rgba(24,18,13,.61));border-color:rgba(216,181,115,.22)}
.wstephead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.wstepmini{font:800 10px/1 var(--f-mono);letter-spacing:1.1px;text-transform:uppercase;color:#8de8eb}.wstepnum{font:700 11px/1 var(--f-mono);letter-spacing:1px;color:var(--gold-2);padding:6px 8px;border-radius:999px;background:rgba(216,181,115,.12);border:1px solid rgba(216,181,115,.2)}
.wstephero{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:13px;align-items:center}.wstephero .wdimg{width:72px;height:72px;border-radius:16px;overflow:hidden;background:var(--bg-3);box-shadow:0 12px 24px rgba(0,0,0,.24)}.wstephero .wdimg img{width:100%;height:100%;object-fit:cover}.wstepbody{min-width:0}.wstepname{font-size:15px;font-weight:750;color:var(--ink);line-height:1.28}.wstepname em{font-style:normal;color:var(--gold-2);font-size:11px;margin-left:4px}.wstepcopy{margin-top:5px;font-size:12.5px;line-height:1.58;color:var(--ink-2)}.wstepmeta{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;font-size:10.5px;color:var(--ink-4)}.wstepmeta span{padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.03);border:1px solid rgba(240,231,216,.065)}.wstepbadges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.wstepbadges span{padding:5px 8px;border-radius:999px;background:rgba(216,181,115,.12);border:1px solid rgba(216,181,115,.2);color:var(--gold-2);font-size:10px;font-weight:750;letter-spacing:.2px}.wchainplan .wdadd{align-self:center;white-space:nowrap}
.wcoursecorrect{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:1px 2px 3px;animation:rise .32s both}.wadjust{padding:9px 12px;border-radius:999px;background:transparent;border:1px solid rgba(216,181,115,.2);color:var(--ink-3);font-size:11px;font-weight:700}.wcourseoptions{display:flex;flex-wrap:wrap;gap:7px}.wcourseoptions[hidden]{display:none}
@media(max-width:560px){.wchainplan{padding:13px}.worderfinish{align-items:stretch;flex-direction:column}.worderfinish .waddall{width:100%}.wstephero{grid-template-columns:64px minmax(0,1fr);align-items:start}.wstephero .wdimg{width:64px;height:64px}.wchainplan .wdadd{grid-column:1/-1;justify-self:stretch;width:100%;margin-top:10px}.wstepcard{padding:13px}.wstepcopy{font-size:12px}.wstepmeta{gap:6px}.wbody{scroll-padding-bottom:96px}}
@media(prefers-reduced-motion:reduce){.wstep,.wstepcard,.wstepdot,.wstepline i,.wchainplan .waddall,.wprogress i,.worderfinish{transition:none!important;animation:none!important}.wstep.is-entering{opacity:1;transform:none;filter:none}}
.wtyping{align-self:flex-start;display:flex;gap:5px;padding:15px 18px;background:var(--glass-2);border:1px solid var(--line);border-radius:20px;border-bottom-left-radius:8px}
.wtyping i{width:7px;height:7px;border-radius:50%;background:var(--ink-3);animation:typing 1.1s infinite}
.wtyping i:nth-child(2){animation-delay:.15s}.wtyping i:nth-child(3){animation-delay:.3s}
.wchips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 2px;animation:rise .35s both}
.wchip{padding:10px 15px;border-radius:var(--pill);background:var(--glass);border:1px solid rgba(216,181,115,.3);
  font-size:12.5px;font-weight:650;color:var(--gold-2);transition:all .2s;box-shadow:inset 0 1px 0 var(--glass-hi)}
.wchip:hover{background:rgba(216,181,115,.1)}
.winput{display:flex;gap:10px;padding:13px 16px calc(15px + env(safe-area-inset-bottom));border-top:1px solid var(--line);
  background:rgba(13,10,8,.9);backdrop-filter:blur(20px)}
.winput input{flex:1;min-width:0;background:var(--glass);border:1px solid var(--line-2);border-radius:var(--r3);padding:14px 17px;font-size:14px;outline:0;color:var(--ink)}
.winput input:focus{border-color:rgba(216,181,115,.4)}
.winput input::placeholder{color:var(--ink-4)}
.winput .send{width:50px;height:50px;border-radius:16px;flex:none;display:grid;place-items:center;font-size:18px;
  background:linear-gradient(150deg,var(--ember),#BC5028);color:#fff;box-shadow:var(--glow-ember);transition:transform .2s var(--spring)}
.winput .send:active{transform:scale(.92)}
.winput .wmic{width:50px;height:50px;border-radius:16px;flex:none;display:grid;place-items:center;color:var(--gold-2);background:rgba(216,181,115,.08);border:1px solid rgba(216,181,115,.22);transition:transform .22s var(--spring),background .22s,border-color .22s,box-shadow .22s}
.winput .wmic svg{width:20px;height:20px}.winput .wmic:hover{background:rgba(216,181,115,.14);border-color:rgba(216,181,115,.4)}.winput .wmic:active{transform:scale(.92)}
.winput .wmic.listening{color:#16100b;background:linear-gradient(145deg,#f4e6cc,#cdb173);border-color:rgba(255,240,207,.65);box-shadow:0 0 0 5px rgba(216,181,115,.09),0 0 30px rgba(216,181,115,.24);animation:wmiclisten 1.45s ease-in-out infinite}
.winput .wmic.thinking{color:#8de8eb;background:rgba(111,217,222,.09);border-color:rgba(111,217,222,.28);animation:wmicthink 1s ease-in-out infinite}.winput .wmic:disabled{cursor:default;opacity:.72}
@keyframes wmiclisten{0%,100%{transform:scale(.98)}50%{transform:scale(1.05)}}@keyframes wmicthink{0%,100%{opacity:.55}50%{opacity:1}}
@media(max-width:390px){.winput{gap:7px;padding-left:10px;padding-right:10px}.winput .wmic,.winput .send{width:46px;height:46px;border-radius:14px}.winput input{padding-left:13px;padding-right:13px}}
.wintro{text-align:center;padding:26px 20px 8px;animation:rise .4s both}
.wintro .wbig{width:66px;height:66px;margin:0 auto 14px;border-radius:22px;display:grid;place-items:center;font-size:30px;
  background:linear-gradient(145deg,var(--ember),#A8461F);box-shadow:var(--glow-ember)}
.wintro h3{font-family:var(--f-disp);font-size:21px;font-weight:580}
.wintro p{font-size:13px;color:var(--ink-3);margin-top:6px;line-height:1.6;max-width:300px;margin-inline:auto}

/* Alfred · practical dish comparison */
.wcompare{width:100%;max-width:96%;padding:16px;white-space:normal;background:linear-gradient(150deg,rgba(255,255,255,.052),rgba(216,181,115,.035))!important;border-color:rgba(216,181,115,.2)!important}
.wcompare-lead{margin:0 0 11px;font-family:var(--f-disp);font-size:17px;line-height:1.25;font-weight:600;color:var(--ink)}
.wcompare-list{display:flex;flex-direction:column;border-top:1px solid rgba(240,231,216,.1)}
.wcompare-list>div{display:grid;grid-template-columns:minmax(104px,.72fr) minmax(0,1.28fr);gap:13px;padding:11px 0;border-bottom:1px solid rgba(240,231,216,.08)}
.wcompare-list b{font-size:11.5px;line-height:1.4;color:var(--ink)!important}.wcompare-list span{font-size:11.5px;line-height:1.5;color:var(--ink-3)}
.wcompare-call{display:block;margin-top:13px;padding:12px 13px;border-radius:13px;font-family:var(--f-disp);font-size:15px;line-height:1.45;font-weight:570;color:var(--ink);background:rgba(216,181,115,.08);border-left:2px solid var(--gold)}
.wcompare-offer{margin:11px 2px 0;font-size:11px;color:var(--ink-4)}
.wcompare-actions{align-self:stretch;padding-top:0}.wcompare-actions .wchip[data-add]{color:var(--gold-2);border-color:rgba(216,181,115,.34)}
.wcompare-personal{margin:12px 2px 0;font-size:12px;line-height:1.55;color:var(--gold-2)}.wcompare-thinking{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:10px;font-weight:750;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-4)}.wcompare-thinking i{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(216,181,115,.08);animation:choicePulse 1.1s ease-in-out infinite}.wcompare.is-ready .wcompare-thinking{display:none}.wcompare-word{display:inline-block;opacity:0;transform:translateY(5px);filter:blur(3px);animation:choiceWord .34s cubic-bezier(.22,.78,.22,1) forwards}.wcompare-caret::after{content:'';display:inline-block;width:1px;height:1em;margin-left:3px;vertical-align:-.13em;background:var(--gold);animation:choiceCaret .8s steps(1) infinite}.wcompare-list>div.is-entering{opacity:0;transform:translateY(8px)}.wcompare-list>div.is-visible{opacity:1;transform:none;transition:opacity .35s ease,transform .45s cubic-bezier(.22,.78,.22,1)}
.wchoice-prompt,.wchoice-tiebreak{display:flex;flex-direction:column;gap:9px;white-space:normal}.wchoice-prompt{width:100%;max-width:96%;padding:15px!important;background:radial-gradient(120% 100% at 0 0,rgba(111,217,222,.08),transparent 48%),linear-gradient(150deg,rgba(255,255,255,.05),rgba(216,181,115,.035))!important;border-color:rgba(216,181,115,.22)!important}.wchoice-prompt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wchoice-prompt-head>div{display:flex;flex-direction:column;gap:3px}.wchoice-prompt-head small{font:800 8px/1 var(--f-mono);letter-spacing:1.35px;color:#87dfe3}.wchoice-prompt-head b,.wchoice-tiebreak b{font-size:14px;color:var(--ink)!important}.wchoice-prompt-head>span{flex:none;padding:5px 8px;border-radius:999px;font:800 9px/1 var(--f-mono);color:var(--gold-2);background:rgba(216,181,115,.08);border:1px solid rgba(216,181,115,.18)}.wchoice-prompt>p,.wchoice-tiebreak span{font-size:11.5px;line-height:1.55;color:var(--ink-3)}.wchoice-search{height:44px;display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:13px;background:rgba(6,8,11,.54);border:1px solid rgba(135,223,227,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.035);transition:border-color .18s,box-shadow .18s,background .18s}.wchoice-search:focus-within{background:rgba(6,8,11,.7);border-color:rgba(135,223,227,.46);box-shadow:0 0 0 4px rgba(111,217,222,.055),inset 0 1px 0 rgba(255,255,255,.04)}.wchoice-search svg{width:17px;height:17px;flex:none;fill:none;stroke:#87dfe3;stroke-width:1.7;stroke-linecap:round}.wchoice-search input{min-width:0;flex:1;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:600 12px/1.2 var(--f-ui)}.wchoice-search input::placeholder{color:var(--ink-4)}.wchoice-search input::-webkit-search-cancel-button{filter:invert(1);opacity:.42}.wchoice-selected{display:flex;flex-wrap:wrap;gap:6px;min-height:30px}.wchoice-selected-dish{display:flex;align-items:center;gap:7px;max-width:100%;padding:7px 8px 7px 10px;border-radius:10px;color:var(--ink-2);background:rgba(216,181,115,.075);border:1px solid rgba(216,181,115,.2);font-size:10px;font-weight:750}.wchoice-selected-dish span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wchoice-selected-dish i{width:16px;height:16px;display:grid;place-items:center;border-radius:50%;font-style:normal;color:var(--ink-4);background:rgba(255,255,255,.05)}.wchoice-empty{display:flex;align-items:center;font-size:10.5px;color:var(--ink-4)}.wchoice-matches{min-height:28px;max-height:252px;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px;padding-right:2px}.wchoice-results-label{position:sticky;top:0;z-index:1;padding:4px 2px 5px;background:linear-gradient(180deg,rgba(20,18,16,.98) 70%,transparent);font:750 8px/1 var(--f-mono);letter-spacing:.75px;text-transform:uppercase;color:var(--ink-4)}.wchoice-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;text-align:left;border-radius:12px;background:rgba(255,255,255,.034);border:1px solid rgba(240,231,216,.09);transition:background .18s,border-color .18s,transform .18s}.wchoice-result:hover{background:rgba(111,217,222,.065);border-color:rgba(111,217,222,.22);transform:translateY(-1px)}.wchoice-result:active{transform:scale(.985);background:rgba(111,217,222,.09)}.wchoice-result>span{min-width:0;display:flex;flex-direction:column;gap:2px}.wchoice-result b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px!important;color:var(--ink)!important}.wchoice-result small{font-size:9px;color:var(--ink-4)}.wchoice-result>i{width:24px;height:24px;flex:none;display:grid;place-items:center;border-radius:8px;font:500 17px/1 var(--f-ui);font-style:normal;color:#96e5e8;background:rgba(111,217,222,.08);border:1px solid rgba(111,217,222,.15)}.wchoice-match-hint{padding:7px 1px;font-size:10px!important;line-height:1.45;color:var(--ink-4)!important}.wchoice-compare{width:100%;padding:12px 13px;border-radius:12px;font-size:11px;font-weight:800;color:#1b140c;background:linear-gradient(145deg,#ead7b2,#caa463);box-shadow:0 8px 22px rgba(216,181,115,.12);transition:opacity .18s,transform .18s}.wchoice-compare:not(:disabled):active{transform:scale(.98)}.wchoice-compare:disabled{opacity:.34;box-shadow:none;cursor:default}.wchoice-tiebreak{max-width:94%;background:linear-gradient(150deg,rgba(216,181,115,.09),rgba(255,255,255,.035))!important;border-color:rgba(216,181,115,.22)!important}.wchoice-tiebreak small{margin-top:3px;font-size:10.5px;line-height:1.45;color:var(--ink-4)}.wcompare-actions [data-choice-reset]{color:var(--ink-3)}
@keyframes choiceWord{to{opacity:1;transform:none;filter:none}}@keyframes choiceCaret{0%,48%{opacity:1}49%,100%{opacity:0}}@keyframes choicePulse{0%,100%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.12)}}
@media(max-width:390px){.wcompare-list>div{grid-template-columns:1fr;gap:4px}.wcompare{max-width:100%}}
@media(prefers-reduced-motion:reduce){.wcompare-word{opacity:1;transform:none;filter:none;animation:none}.wcompare-thinking i,.wcompare-caret::after{animation:none}.wcompare-list>div.is-entering{opacity:1;transform:none}}
/* ═══════════════ CONSOLE — precision HUD ═══════════════ */
.console{min-height:100dvh;font-family:var(--f-ui);color:var(--c-ink);position:relative;background:var(--c-bg)}
.console::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(85% 50% at 75% -5%,rgba(84,208,255,.07),transparent 60%),
             radial-gradient(60% 45% at 0% 105%,rgba(158,127,255,.06),transparent 60%),
             repeating-linear-gradient(0deg,transparent 0 39px,rgba(120,160,220,.025) 39px 40px),
             repeating-linear-gradient(90deg,transparent 0 39px,rgba(120,160,220,.025) 39px 40px)}
.console>*{position:relative;z-index:1}
.chead{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:13px 22px;
  background:rgba(5,7,12,.88);backdrop-filter:blur(20px);border-bottom:1px solid var(--c-line-2)}
.chead::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(84,208,255,.5),transparent)}
.chead .cmark{width:36px;height:36px;border-radius:11px;flex:none;background:linear-gradient(145deg,#13223C,#0A1322);
  border:1px solid var(--c-line-3);display:grid;place-items:center;color:var(--cy);font-weight:800;font-size:14px;font-family:var(--f-mono);
  box-shadow:0 0 18px rgba(84,208,255,.15),inset 0 1px 0 rgba(160,220,255,.15)}
.chead h1{font-size:15px;font-weight:750;letter-spacing:.3px}
.chead .sub{font-size:10.5px;color:var(--c-ink-3);font-family:var(--f-mono);letter-spacing:.4px}
.chead .spacer{flex:1}
.livepill{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:750;letter-spacing:1.4px;font-family:var(--f-mono);
  color:var(--mint);background:rgba(63,224,160,.07);border:1px solid rgba(63,224,160,.35);border-radius:var(--pill);padding:7px 14px;
  box-shadow:0 0 16px rgba(63,224,160,.12)}
.livepill .d{width:7px;height:7px;border-radius:50%;background:var(--mint);animation:breathe 1.5s infinite;box-shadow:0 0 8px var(--mint)}
.livepill.off{color:var(--c-ink-3);border-color:var(--c-line-2);background:transparent;box-shadow:none}
.livepill.off .d{background:var(--c-ink-3);animation:none;box-shadow:none}
.cbtn{font-size:11.5px;font-weight:700;color:var(--c-ink-2);border:1px solid var(--c-line-2);border-radius:10px;padding:8px 14px;transition:all .18s;font-family:var(--f-mono)}
.cbtn:hover{color:var(--c-ink);border-color:var(--c-line-3);box-shadow:0 0 14px rgba(84,208,255,.12)}

.cgrid{display:grid;gap:14px;padding:16px 22px 30px;grid-template-columns:296px 1fr 336px;
  grid-template-areas:"signals decision model" "signals thoughts model" "outcomes thoughts model";max-width:1600px;margin:0 auto}
@media(max-width:1180px){.cgrid{grid-template-columns:1fr 1fr;grid-template-areas:"decision model" "thoughts model" "signals outcomes"}}
@media(max-width:760px){.cgrid{grid-template-columns:1fr;grid-template-areas:"decision" "model" "thoughts" "signals" "outcomes";padding:12px}}

/* HUD panel with corner ticks */
.panel{position:relative;background:var(--c-glass);backdrop-filter:blur(14px);border:1px solid var(--c-line);border-radius:14px;
  display:flex;flex-direction:column;min-height:0;overflow:hidden;box-shadow:inset 0 1px 0 rgba(160,200,255,.05)}
.panel::before,.panel::after{content:'';position:absolute;width:14px;height:14px;border:1.5px solid var(--c-line-3);z-index:2;pointer-events:none}
.panel::before{top:-1px;left:-1px;border-right:0;border-bottom:0;border-radius:14px 0 0 0}
.panel::after{bottom:-1px;right:-1px;border-left:0;border-top:0;border-radius:0 0 14px 0}
.panel .phead{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--c-line);position:relative;overflow:hidden}
.panel .phead::after{content:'';position:absolute;left:0;bottom:0;width:52px;height:1.5px;background:linear-gradient(90deg,var(--cy),transparent)}
.panel .phead .pic{font-size:12px;opacity:.9}
.panel .phead h2{font-size:10.5px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--c-ink-2)}
.panel .phead .pcount{margin-left:auto;font-family:var(--f-mono);font-size:10px;color:var(--c-ink-3)}
.panel .pbody{padding:14px 16px;overflow-y:auto;flex:1;min-height:0}
.panel .scanline{position:absolute;left:0;right:0;top:0;height:5%;pointer-events:none;opacity:.35;z-index:1;
  background:linear-gradient(180deg,transparent,rgba(84,208,255,.06),transparent);animation:scan 9s linear infinite}

/* signal stream */
.p-signals{grid-area:signals;max-height:600px}
.sigrow{display:flex;gap:9px;align-items:flex-start;padding:6.5px 0;border-bottom:1px solid rgba(120,160,220,.05);font-size:12px;animation:tick .3s var(--out) both}
.sigrow .st{flex:none;font-family:var(--f-mono);font-size:8.5px;font-weight:750;letter-spacing:.8px;padding:3.5px 7px;border-radius:6px;text-transform:uppercase;margin-top:1px}
.sigrow .sd{color:var(--c-ink-2);line-height:1.45;flex:1}
.sigrow .sd b{color:var(--c-ink);font-weight:650}
.sigrow .stime{font-family:var(--f-mono);font-size:9px;color:var(--c-ink-3);flex:none;margin-top:2px}
.st.view{background:rgba(92,139,245,.14);color:#93B3FF}
.st.open{background:rgba(84,208,255,.13);color:var(--cy)}
.st.read{background:rgba(158,127,255,.16);color:#B9A3FF}
.st.intent{background:rgba(245,179,77,.15);color:var(--amber)}
.st.cart{background:rgba(63,224,160,.13);color:var(--mint)}
.st.warn{background:rgba(245,93,126,.15);color:var(--rose)}
.st.sys{background:rgba(120,160,220,.1);color:var(--c-ink-2)}
.st.waiter{background:rgba(224,106,60,.16);color:#FF9A6B}

/* model panel */
.p-model{grid-area:model;max-height:calc(100dvh - 96px);position:sticky;top:76px}
.segcard{padding:15px 16px;border-radius:13px;margin-bottom:14px;position:relative;overflow:hidden;
  background:linear-gradient(150deg,rgba(92,139,245,.13),rgba(158,127,255,.07));border:1px solid rgba(92,139,245,.32);
  box-shadow:inset 0 1px 0 rgba(160,200,255,.1)}
.segcard::after{content:'';position:absolute;top:-30px;right:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(84,208,255,.15),transparent 70%)}
.segcard .sk{font-size:9px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#93B3FF;margin-bottom:6px;font-family:var(--f-mono)}
.segcard .sv{font-family:var(--f-disp);font-size:18.5px;font-weight:580;line-height:1.25}
.segcard .sn{font-size:11.5px;color:var(--c-ink-2);margin-top:6px;line-height:1.55}
.mlabel{font-size:9px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--c-ink-3);margin:17px 0 10px;font-family:var(--f-mono)}
.mlabel:first-child{margin-top:0}
.gauge{margin-bottom:11px}
.gauge .gt{display:flex;justify-content:space-between;font-size:11.5px;margin-bottom:5px}
.gauge .gn{color:var(--c-ink-2);font-weight:600}
.gauge .gv{font-family:var(--f-mono);font-size:10px;color:var(--c-ink)}
.gauge .gbar{height:5px;border-radius:99px;background:rgba(120,160,220,.09);overflow:hidden;position:relative}
.gauge .gfill{height:100%;border-radius:99px;transition:width .8s var(--out);background:linear-gradient(90deg,var(--blu),var(--cy));box-shadow:0 0 8px rgba(84,208,255,.4)}
.gauge.warm .gfill{background:linear-gradient(90deg,var(--amber),var(--rose));box-shadow:0 0 8px rgba(245,140,90,.35)}
.gauge.mint .gfill{background:linear-gradient(90deg,#26A87A,var(--mint));box-shadow:0 0 8px rgba(63,224,160,.35)}
.intents{display:flex;flex-wrap:wrap;gap:7px}
.intent{font-size:10px;font-weight:700;padding:5px 10px;border-radius:var(--pill);border:1px solid var(--c-line-2);color:var(--c-ink-3);font-family:var(--f-mono);transition:all .3s}
.intent.hot{border-color:rgba(245,179,77,.55);color:var(--amber);background:rgba(245,179,77,.08);box-shadow:0 0 10px rgba(245,179,77,.15)}
.radarwrap{display:grid;place-items:center;padding:4px 0 2px}
.aff{display:flex;align-items:center;gap:9px;padding:5.5px 0;font-size:12px}
.aff .an{flex:1;color:var(--c-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aff .abar{width:84px;height:4px;border-radius:99px;background:rgba(120,160,220,.09);overflow:hidden;flex:none}
.aff .afill{height:100%;background:linear-gradient(90deg,var(--vio),var(--cy));border-radius:99px;transition:width .6s;box-shadow:0 0 6px rgba(158,127,255,.4)}
.aff .av{font-family:var(--f-mono);font-size:9.5px;color:var(--c-ink-3);width:30px;text-align:right}
.pricecomfort{font-family:var(--f-mono);font-size:10.5px;color:var(--c-ink-2);padding:10px 13px;background:rgba(10,15,26,.6);border-radius:10px;border:1px solid var(--c-line);line-height:1.6}
.pricecomfort b{color:var(--amber)}

/* decision */
.p-decision{grid-area:decision}
.modestrip{display:none;align-items:center;gap:8px;padding:9px 16px;border-bottom:1px solid var(--c-line);
  background:rgba(245,179,77,.05);font-family:var(--f-mono);font-size:9.5px;letter-spacing:.6px;color:var(--c-ink-3)}
.modestrip.on{display:flex;flex-wrap:wrap}
.modestrip .mpill{padding:4px 10px;border-radius:99px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
  border:1px solid rgba(245,179,77,.5);color:var(--amber);background:rgba(245,179,77,.1)}
.modestrip .mpill.stock{border-color:rgba(240,148,106,.5);color:#F0946A;background:rgba(240,148,106,.09)}
.modestrip.flash{animation:stripflash 1.2s var(--out)}
@keyframes stripflash{0%{background:rgba(245,179,77,.28)}100%{background:rgba(245,179,77,.05)}}
.verdict{display:flex;align-items:center;gap:13px;padding:15px 17px;border-radius:13px;margin-bottom:14px;border:1px solid;transition:all .3s;position:relative;overflow:hidden}
.verdict .vicon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:18px;flex:none}
.verdict .vt{flex:1}
.verdict .v1{font-size:13px;font-weight:800;letter-spacing:1px;font-family:var(--f-mono)}
.verdict .v2{font-size:11.5px;margin-top:3px;line-height:1.5;opacity:.85}
.verdict.fire{background:rgba(63,224,160,.07);border-color:rgba(63,224,160,.4);box-shadow:0 0 24px rgba(63,224,160,.08)}
.verdict.fire .vicon{background:rgba(63,224,160,.14);color:var(--mint);animation:breathe 1.8s infinite}
.verdict.fire .v1{color:var(--mint)}
.verdict.hold{background:rgba(245,179,77,.06);border-color:rgba(245,179,77,.35)}
.verdict.hold .vicon{background:rgba(245,179,77,.13);color:var(--amber)}
.verdict.hold .v1{color:var(--amber)}
.verdict.off{background:rgba(120,160,220,.05);border-color:var(--c-line-2)}
.verdict.off .vicon{background:rgba(120,160,220,.09);color:var(--c-ink-3)}
.verdict.off .v1{color:var(--c-ink-2)}
.candtable{width:100%;border-collapse:collapse;font-size:11.5px}
.candtable th{text-align:left;font-size:8.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--c-ink-3);
  padding:7px 8px;border-bottom:1px solid var(--c-line-2);font-family:var(--f-mono)}
.candtable td{padding:9px 8px;border-bottom:1px solid rgba(120,160,220,.05);vertical-align:middle}
.candtable tr.win td{background:linear-gradient(90deg,rgba(63,224,160,.1),transparent)}
.candtable tr.win td:first-child{border-left:2px solid var(--mint)}
.candtable .cn{font-weight:650;color:var(--c-ink)}
.candtable .cs{font-family:var(--f-mono);font-size:8.5px;color:var(--c-ink-3);display:block;margin-top:2px;letter-spacing:.5px;text-transform:uppercase}
.candtable .num{font-family:var(--f-mono);font-size:11px;color:var(--c-ink-2);text-align:right}
.candtable .num.hot{color:var(--mint);font-weight:700;text-shadow:0 0 12px rgba(63,224,160,.4)}
.evmini{display:block;height:3px;border-radius:99px;background:rgba(120,160,220,.12);margin-top:5px;overflow:hidden}
.evmini i{display:block;height:100%;background:linear-gradient(90deg,var(--blu),var(--mint));border-radius:99px}
.pbadge{display:inline-block;min-width:44px;text-align:center;font-family:var(--f-mono);font-size:10.5px;font-weight:750;padding:4px 7px;border-radius:7px}
.pbadge.hi{background:rgba(63,224,160,.14);color:var(--mint)}
.pbadge.md{background:rgba(245,179,77,.14);color:var(--amber)}
.pbadge.lo{background:rgba(245,93,126,.12);color:var(--rose)}
.whywrap{margin-top:14px}
.whyhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.whyhead .wt{font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-ink-3);font-family:var(--f-mono)}
.whyhead .wsub{font-family:var(--f-mono);font-size:10px;color:var(--cy)}
.contrib{display:flex;align-items:center;gap:9px;padding:4px 0;font-size:11px}
.contrib .cl{width:106px;flex:none;color:var(--c-ink-2);text-align:right}
.contrib .cbarwrap{flex:1;height:13px;position:relative;background:rgba(120,160,220,.05);border-radius:4px;overflow:hidden}
.contrib .cbarwrap::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--c-line-2)}
.contrib .cbar{position:absolute;top:2px;bottom:2px;border-radius:3px;transition:all .5s var(--out)}
.contrib .cbar.pos{left:50%;background:linear-gradient(90deg,rgba(63,224,160,.5),var(--mint));box-shadow:0 0 8px rgba(63,224,160,.3)}
.contrib .cbar.neg{right:50%;background:linear-gradient(270deg,rgba(245,93,126,.5),var(--rose));box-shadow:0 0 8px rgba(245,93,126,.3)}
.contrib .cv{width:44px;flex:none;font-family:var(--f-mono);font-size:9.5px;color:var(--c-ink-3)}
.frameline{margin-top:13px;padding:13px 15px;border-radius:11px;background:rgba(158,127,255,.06);border:1px solid rgba(158,127,255,.28);
  font-size:12px;line-height:1.6;color:var(--c-ink-2);box-shadow:inset 0 1px 0 rgba(200,180,255,.08)}
.frameline .fk{font-family:var(--f-mono);font-size:8.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--vio);display:block;margin-bottom:5px}
.frameline .fq{color:var(--c-ink);font-style:italic}

/* thoughts + outcomes */
.p-thoughts{grid-area:thoughts;max-height:460px}
.thought{display:flex;gap:10px;padding:8.5px 0;border-bottom:1px solid rgba(120,160,220,.05);font-size:12.5px;line-height:1.6;color:var(--c-ink-2);animation:tick .35s both}
.thought .tico{flex:none;font-size:11px;margin-top:3px}
.thought b{color:var(--c-ink);font-weight:650}
.thought .em{color:var(--cy)}
.thought .money{color:var(--mint);font-family:var(--f-mono);font-weight:700;font-size:11.5px}
.thought.decision-t{color:var(--c-ink)}
.p-outcomes{grid-area:outcomes}
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:13px}
.stat{background:rgba(10,15,26,.55);border:1px solid var(--c-line);border-radius:12px;padding:12px 14px;position:relative;overflow:hidden}
.stat::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--blu),transparent)}
.stat .sv{font-family:var(--f-mono);font-size:19px;font-weight:700;letter-spacing:-.5px}
.stat .sk{font-size:9px;font-weight:750;letter-spacing:1px;text-transform:uppercase;color:var(--c-ink-3);margin-top:4px}
.stat.money .sv{color:var(--mint);text-shadow:0 0 16px rgba(63,224,160,.3)}
.stat.money::after{background:linear-gradient(180deg,var(--mint),transparent)}
.stat.rate .sv{color:var(--cy)}
.evtline{display:flex;gap:9px;align-items:center;padding:6.5px 0;font-size:11.5px;border-bottom:1px solid rgba(120,160,220,.05)}
.evtline .ei{flex:none;width:23px;height:23px;border-radius:7px;display:grid;place-items:center;font-size:10.5px}
.evtline .ei.shown{background:rgba(245,179,77,.13)}.evtline .ei.acc{background:rgba(63,224,160,.13)}
.evtline .ei.dec{background:rgba(245,93,126,.12)}.evtline .ei.ord{background:rgba(92,139,245,.13)}
.evtline .et{flex:1;color:var(--c-ink-2)}.evtline .et b{color:var(--c-ink)}
.evtline .ev{font-family:var(--f-mono);font-size:9.5px;color:var(--c-ink-3)}
.emptystate{padding:36px 18px;text-align:center;color:var(--c-ink-3);font-size:12.5px;line-height:1.75}
.emptystate .big{font-size:30px;margin-bottom:10px;opacity:.6}
.pulsewrap{margin-bottom:13px;padding:10px 13px;background:rgba(10,15,26,.55);border:1px solid var(--c-line);border-radius:12px}
.pulsewrap .pt{display:flex;justify-content:space-between;font-size:9px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--c-ink-3);font-family:var(--f-mono);margin-bottom:6px}
.pulsewrap svg{display:block;width:100%}

/* ═══════════════ OWNER PANEL ═══════════════ */
.owner{min-height:100dvh;background:var(--o-bg);color:var(--ink);position:relative}
.owner::before{content:'';position:fixed;inset:0;pointer-events:none;
  background:radial-gradient(110% 50% at 50% -10%,rgba(216,181,115,.08),transparent 55%),
             radial-gradient(70% 40% at 100% 110%,rgba(140,176,136,.05),transparent 60%)}
.owner>*{position:relative;z-index:1}
.ohead{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:13px;padding:14px 24px;
  background:rgba(12,11,9,.9);backdrop-filter:blur(22px);border-bottom:1px solid var(--o-line)}
.ohead .omark{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#33261A,#1A130D);border:1px solid var(--line-2);
  display:grid;place-items:center;font-family:var(--f-disp);font-weight:600;color:var(--gold);font-size:17px}
.ohead h1{font-size:15.5px;font-weight:750}
.ohead .osub{font-size:11px;color:var(--ink-3)}
.ohead .spacer{flex:1}
.odate{font-size:11.5px;color:var(--ink-3);font-weight:650;font-family:var(--f-mono)}
.ogrid{max-width:1240px;margin:0 auto;padding:18px 24px 60px;display:grid;gap:16px;grid-template-columns:repeat(12,1fr)}
.ocard{background:var(--o-glass);backdrop-filter:blur(14px);border:1px solid var(--o-line);border-radius:20px;padding:19px 21px;
  box-shadow:inset 0 1px 0 rgba(255,244,228,.05);min-width:0}
.ocard .ohd{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.ocard .ohd .oic{font-size:13px}
.ocard .ohd h2{font-size:10.5px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-3)}
.ocard .ohd .oside{margin-left:auto;font-size:10.5px;color:var(--ink-4);font-family:var(--f-mono)}
.span12{grid-column:span 12}.span8{grid-column:span 8}.span6{grid-column:span 6}.span4{grid-column:span 4}
@media(max-width:960px){.span8,.span6,.span4{grid-column:span 12}}
@media(min-width:961px) and (max-width:1180px){.span4{grid-column:span 6}}

/* hero money */
.heromoney{grid-column:span 12;position:relative;overflow:hidden;border-radius:26px;padding:30px 30px 26px;
  background:linear-gradient(150deg,rgba(216,181,115,.13),rgba(224,106,60,.06) 50%,rgba(28,24,19,.5));
  border:1px solid rgba(216,181,115,.3);backdrop-filter:blur(16px);box-shadow:var(--glow-gold)}
.heromoney::after{content:'';position:absolute;top:-70px;right:-40px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(216,181,115,.16),transparent 70%)}
.heromoney .hk{font-size:10.5px;font-weight:800;letter-spacing:2.2px;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:8px}
.heromoney .hnum{font-family:var(--f-disp);font-size:clamp(44px,7vw,66px);font-weight:590;letter-spacing:-1px;line-height:1.05;margin-top:10px;
  color:#F7ECD4;text-shadow:0 4px 30px rgba(216,181,115,.25);font-variant-numeric:tabular-nums;animation:countup .8s var(--out) both}
.heromoney .hsub{font-size:13.5px;color:var(--ink-2);margin-top:8px;line-height:1.6;max-width:640px}
.heromoney .hsub b{color:var(--ink)}
.heromoney .hstats{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}
.hstat{padding:11px 16px;border-radius:14px;background:rgba(13,10,8,.45);border:1px solid var(--o-line-2);backdrop-filter:blur(8px)}
.hstat .v{font-family:var(--f-mono);font-size:16px;font-weight:700;color:var(--gold-2)}
.hstat .k{font-size:9.5px;font-weight:750;letter-spacing:1px;text-transform:uppercase;color:var(--ink-4);margin-top:2px}

/* revenue moments owner command */
.revenueCommand{grid-column:span 12;position:relative;overflow:hidden;padding:22px 23px 20px;border-radius:22px;background:linear-gradient(145deg,rgba(20,17,12,.92),rgba(14,13,12,.78));border:1px solid rgba(216,181,115,.25);box-shadow:inset 0 1px 0 rgba(255,244,228,.05),0 22px 70px rgba(0,0,0,.2)}
.revenueCommand::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 0,rgba(216,181,115,.11),transparent 34%),linear-gradient(90deg,transparent 49.8%,rgba(216,181,115,.03) 50%,transparent 50.2%);background-size:auto,44px 44px;opacity:.8}
.rmOwnerHead{position:relative;display:flex;align-items:flex-start;gap:14px}.rmOwnerHead .rmSigil{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-family:var(--f-mono);font-weight:800;color:var(--gold-2);border:1px solid rgba(216,181,115,.28);background:rgba(216,181,115,.08)}.rmOwnerHead h2{font-family:var(--f-disp);font-size:23px;font-weight:540;letter-spacing:-.3px}.rmOwnerHead p{margin-top:4px;font-size:12px;line-height:1.55;color:var(--ink-3);max-width:680px}.rmLivePill{margin-left:auto;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;border:1px solid rgba(140,176,136,.28);background:rgba(140,176,136,.07);font:700 8px var(--f-mono);letter-spacing:.8px;text-transform:uppercase;color:var(--sage)}.rmLivePill i{width:6px;height:6px;border-radius:50%;background:var(--sage);box-shadow:0 0 12px var(--sage)}
.rmOwnerGrid{position:relative;display:grid;grid-template-columns:1.2fr .9fr 1.2fr;gap:14px;margin-top:18px}.rmPanel{border:1px solid var(--o-line-2);border-radius:17px;background:rgba(10,8,6,.36);padding:15px;min-width:0}.rmPanelK{font-size:9px;font-weight:800;letter-spacing:1.25px;text-transform:uppercase;color:var(--ink-4)}.rmBig{margin-top:7px;font-family:var(--f-disp);font-size:34px;color:#F7ECD4;line-height:1}.rmBig small{font:600 10px var(--f-mono);color:var(--ink-4);margin-left:4px}.rmPanel p{font-size:11.5px;line-height:1.55;color:var(--ink-3);margin-top:8px}.rmMiniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.rmMiniStats div{padding:8px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid var(--o-line)}.rmMiniStats b{display:block;font:750 13px var(--f-mono);color:var(--gold-2)}.rmMiniStats span{display:block;margin-top:3px;font-size:8.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-4)}
.rmFunnel{display:grid;gap:8px;margin-top:12px}.rmFunnelRow{display:grid;grid-template-columns:76px 1fr auto;gap:8px;align-items:center;font-size:10px;color:var(--ink-3)}.rmTrack{height:7px;border-radius:999px;background:rgba(255,255,255,.04);overflow:hidden}.rmTrack i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7b633e,var(--gold));transition:width .8s var(--out)}.rmFunnelRow b{font:700 10px var(--f-mono);color:var(--ink-2)}
.rmMomentList{display:grid;gap:7px;margin-top:12px}.rmMoment{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 9px;border-left:2px solid rgba(216,181,115,.35);background:rgba(216,181,115,.035)}.rmMoment b{font-size:11.5px}.rmMoment span{font:700 10px var(--f-mono);color:var(--gold-2)}.rmMoment small{grid-column:1/-1;font-size:9.5px;color:var(--ink-4)}
.rmNow{margin-top:12px;padding:12px;border-radius:13px;background:linear-gradient(135deg,rgba(140,176,136,.09),rgba(216,181,115,.035));border:1px solid rgba(140,176,136,.19)}.rmNow label{font-size:8.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--sage)}.rmNow b{display:block;margin-top:5px;font-size:13px}.rmNow p{margin-top:5px;font-size:10.5px}.rmGuard{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.rmGuard span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.025);border:1px solid var(--o-line);font-size:8.5px;color:var(--ink-3)}
@media(max-width:900px){.rmOwnerGrid{grid-template-columns:1fr}.rmLivePill{display:none}}

/* holdout duel */
.duel{display:flex;gap:18px;align-items:flex-end;padding:8px 4px 2px}
.duel .dcol{flex:1;text-align:center}
.duel .dbarwrap{height:150px;display:flex;align-items:flex-end;justify-content:center}
.duel .dbar{width:74%;border-radius:12px 12px 4px 4px;position:relative;transition:height 1s var(--out)}
.duel .dbar.eng{background:linear-gradient(180deg,var(--gold),#8A6F3E);box-shadow:0 0 30px rgba(216,181,115,.25)}
.duel .dbar.pln{background:linear-gradient(180deg,#5A5248,#3A342C)}
.duel .dv{font-family:var(--f-mono);font-size:16px;font-weight:750;margin-top:9px}
.duel .dk{font-size:10px;font-weight:750;letter-spacing:1px;text-transform:uppercase;color:var(--ink-4);margin-top:3px}
.liftpill{margin-top:14px;text-align:center;padding:11px;border-radius:13px;background:rgba(140,176,136,.1);border:1px solid rgba(140,176,136,.35);
  font-size:13px;color:#C3DBC0;line-height:1.5}
.liftpill b{font-family:var(--f-mono);font-size:16px;color:var(--sage)}

/* wins + feeds + lists */
.winrow{display:flex;gap:11px;align-items:center;padding:10px 0;border-bottom:1px solid var(--o-line)}
.winrow:last-child{border-bottom:0}
.winrow .wi{width:40px;height:40px;border-radius:12px;overflow:hidden;flex:none;background:var(--bg-3)}
.winrow .wi img{width:100%;height:100%;object-fit:cover}
.winrow .wt2{flex:1;min-width:0}
.winrow .wn2{font-size:13px;font-weight:650}
.winrow .wd2{font-size:11px;color:var(--ink-3);margin-top:1px}
.winrow .wv{text-align:right;font-variant-numeric:tabular-nums}
.winrow .wv .a{font-family:var(--f-mono);font-size:13.5px;font-weight:750;color:var(--gold-2)}
.winrow .wv .m{font-size:10px;color:var(--ink-4)}
.feedrow{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--o-line);font-size:12.5px;animation:tick .3s both}
.feedrow:last-child{border-bottom:0}
.feedrow .ftag{flex:none;font-family:var(--f-mono);font-size:8.5px;font-weight:800;letter-spacing:.8px;padding:4px 8px;border-radius:7px;text-transform:uppercase}
.feedrow .ftag.eng{background:rgba(216,181,115,.14);color:var(--gold-2)}
.feedrow .ftag.pln{background:rgba(150,140,125,.14);color:var(--ink-3)}
.feedrow .fx{flex:1;color:var(--ink-2)}.feedrow .fx b{color:var(--ink)}
.feedrow .fv{font-family:var(--f-mono);font-size:12px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.qrow{padding:9px 0;border-bottom:1px solid var(--o-line);font-size:12.5px;color:var(--ink-2);display:flex;gap:10px;align-items:baseline}
.qrow:last-child{border-bottom:0}
.qrow .qn{font-family:var(--f-mono);font-size:11px;font-weight:750;color:var(--gold-2);flex:none;min-width:30px}
.qrow .qs{color:var(--ink-4);font-size:11px;margin-left:auto;flex:none}
.stuckrow{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--o-line);font-size:12.5px}
.stuckrow:last-child{border-bottom:0}
.stuckrow .sn2{flex:1;font-weight:650}
.stuckrow .sr{font-family:var(--f-mono);font-size:11px;color:var(--ink-3)}
.stuckrow .sa{font-size:10px;font-weight:750;letter-spacing:.6px;text-transform:uppercase;padding:5px 10px;border-radius:var(--pill);
  background:rgba(224,106,60,.12);color:#F0946A;border:1px solid rgba(224,106,60,.3)}

/* intel (Alfred intelligence) */
.intel{padding:12px 14px;border-radius:14px;margin-bottom:10px;background:rgba(13,10,8,.4);border:1px solid var(--o-line-2);animation:tick .35s both}
.intel .ik{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:6px}
.intel .ik.miss{color:#F0946A}.intel .ik.trend{color:#93C4EF}.intel .ik.win2{color:var(--sage)}
.intel .ib{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.intel .ib b{color:var(--ink)}
.intel .isugg{margin-top:7px;font-size:11.5px;color:var(--gold-2);display:flex;gap:6px;align-items:flex-start}

/* price lab */
.lab{padding:13px 15px;border-radius:14px;margin-bottom:10px;background:rgba(13,10,8,.4);border:1px solid var(--o-line-2)}
.lab .lt{font-size:13px;font-weight:650}
.lab .lb{font-size:12px;color:var(--ink-3);line-height:1.55;margin-top:4px}
.lab .lb b{color:var(--gold-2)}
.lab .lacts{display:flex;gap:8px;margin-top:10px}
.lab .lapply{padding:8px 15px;border-radius:10px;background:linear-gradient(150deg,var(--gold),#B08D52);color:#1C130A;font-size:11.5px;font-weight:800}
.lab .lskip{padding:8px 13px;border-radius:10px;border:1px solid var(--o-line-2);color:var(--ink-3);font-size:11.5px;font-weight:700}

/* whatsapp preview */
.waprev{background:#0B141A;border-radius:18px;border:1px solid rgba(255,255,255,.07);overflow:hidden}
.waprev .wahd{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#1F2C33}
.waprev .waav{width:32px;height:32px;border-radius:50%;background:linear-gradient(145deg,var(--gold),#8A6F3E);display:grid;place-items:center;font-size:14px}
.waprev .wanm{font-size:12.5px;font-weight:700;color:#E9EDEF}
.waprev .wast{font-size:10px;color:#8696A0}
.waprev .wabody{padding:14px}
.wabubble{background:#202C33;border-radius:4px 12px 12px 12px;padding:11px 13px;color:#E9EDEF;font-size:12px;line-height:1.65;white-space:pre-line}
.wabubble b{color:#F7E9CB}
.wabubble .watime{display:block;text-align:right;font-size:9.5px;color:#8696A0;margin-top:6px}

/* controls */
.ctrlrow{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--o-line)}
.ctrlrow:last-child{border-bottom:0}
.ctrlrow .ci2{width:38px;height:38px;border-radius:12px;flex:none;display:grid;place-items:center;font-size:17px;background:rgba(13,10,8,.5);border:1px solid var(--o-line-2)}
.ctrlrow .ct2{flex:1}
.ctrlrow .cn2{font-size:13.5px;font-weight:650}
.ctrlrow .cd2{font-size:11.5px;color:var(--ink-3);margin-top:2px;line-height:1.45}
.switch{position:relative;width:48px;height:28px;flex:none;border-radius:99px;background:rgba(240,231,216,.1);border:1px solid var(--o-line-2);transition:all .25s;cursor:pointer}
.switch::after{content:'';position:absolute;top:2.5px;left:3px;width:21px;height:21px;border-radius:50%;background:#CFC2AC;transition:all .25s var(--spring)}
.switch.on{background:linear-gradient(150deg,var(--gold),#A8854B);border-color:transparent}
.switch.on::after{left:22px;background:#231A0F}
.stockwrap{margin-top:10px}
.stockin{display:flex;gap:8px}
.stockin input{flex:1;background:rgba(13,10,8,.5);border:1px solid var(--o-line-2);border-radius:12px;padding:11px 14px;font-size:13px;outline:0;color:var(--ink)}
.stockin input::placeholder{color:var(--ink-4)}
.stockin button{padding:11px 16px;border-radius:12px;background:linear-gradient(150deg,var(--gold),#B08D52);color:#1C130A;font-weight:800;font-size:12px}
.stocklist{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.stocktag{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:var(--pill);font-size:12px;font-weight:650;
  background:rgba(224,106,60,.1);border:1px solid rgba(224,106,60,.35);color:#F0A47E}
.stocktag button{font-size:13px;color:#F0A47E;opacity:.7}
.actionrow{display:flex;gap:11px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--o-line);font-size:13px;color:var(--ink-2);line-height:1.55}
.actionrow:last-child{border-bottom:0}
.actionrow .an2{flex:none;width:22px;height:22px;border-radius:7px;background:rgba(216,181,115,.13);border:1px solid rgba(216,181,115,.3);
  display:grid;place-items:center;font-family:var(--f-mono);font-size:10.5px;font-weight:800;color:var(--gold-2);margin-top:1px}
.actionrow b{color:var(--ink)}

/* ═══ COCKPIT ═══ */
.cockpit{height:100dvh;display:flex;flex-direction:column;background:#04060A;color:var(--c-ink);font-family:var(--f-ui)}
.ckhead{display:flex;align-items:center;gap:14px;padding:12px 22px;background:rgba(5,7,12,.96);border-bottom:1px solid var(--c-line-2);flex-wrap:wrap}
.ckhead .ckbrand{display:flex;align-items:center;gap:11px}
.ckhead .lg{width:36px;height:36px;border-radius:11px;background:linear-gradient(140deg,#2A1D12,#171009);border:1px solid rgba(216,181,115,.4);
  display:grid;place-items:center;font-family:var(--f-disp);font-weight:650;color:var(--gold);font-size:17px}
.ckhead h1{font-size:15.5px;font-weight:750}
.ckhead .tagline{font-size:10.5px;color:var(--c-ink-3)}
.ckhead .spacer{flex:1}
.persona{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--c-ink-2);border:1px solid var(--c-line-2);
  border-radius:11px;padding:8px 12px;transition:all .18s;white-space:nowrap}
.persona:hover{color:var(--c-ink);border-color:var(--c-line-3);transform:translateY(-1px)}
.persona.running{border-color:rgba(63,224,160,.5);color:var(--mint);background:rgba(63,224,160,.06)}
.ckpresets{display:grid;grid-template-columns:minmax(150px,.8fr) repeat(5,minmax(155px,1fr));gap:8px;align-items:stretch;padding:9px 14px;background:linear-gradient(180deg,rgba(10,14,22,.98),rgba(5,8,13,.96));border-bottom:1px solid var(--c-line-2);overflow-x:auto;scrollbar-width:thin}.ckpreset-title{display:flex;flex-direction:column;justify-content:center;padding:0 8px}.ckpreset-title small{font:800 8px/1 var(--f-mono);letter-spacing:1.5px;color:var(--cy)}.ckpreset-title b{margin-top:5px;font-size:11px;color:var(--c-ink-2)}.ckpresets .persona{min-width:155px;padding:9px 10px;border-radius:12px;background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(84,208,255,.018));white-space:normal}.ckpresets .persona>.pic{width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:9px;font-size:15px;color:var(--cy);background:rgba(84,208,255,.07);border:1px solid rgba(84,208,255,.12)}.ckpresets .persona>span:last-child{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:2px}.ckpresets .persona b{font-size:10.5px;color:var(--c-ink)}.ckpresets .persona small{font-size:8.5px;font-weight:550;color:var(--c-ink-3)}
.ckbody{flex:1;display:grid;grid-template-columns:minmax(310px,370px) minmax(310px,370px) minmax(820px,1fr);min-height:0;overflow-x:auto}
.ckpane{position:relative;min-height:0;overflow:hidden}
.ckpane iframe{width:100%;height:100%;border:0}
.ckpane.phone{border-right:1px solid var(--c-line-2);background:var(--bg)}
.ckpane.phoneb{box-shadow:12px 0 40px rgba(0,0,0,.28);z-index:1}
.cklabel{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:10;font-size:8.5px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--c-ink-3);background:rgba(5,7,12,.85);backdrop-filter:blur(8px);padding:6px 13px;border-radius:99px;border:1px solid var(--c-line);pointer-events:none}
.ckpane.brain>.cklabel{display:none}
body.atlas-mode .ckpane.brain{position:fixed;inset:0;z-index:9999;display:block;background:#020304;animation:atlasTakeover .28s cubic-bezier(.2,.8,.2,1)}
body.atlas-mode .ckpane.brain iframe{display:block;width:100vw;height:100dvh}
@keyframes atlasTakeover{from{opacity:.4;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@media(max-width:900px){.ckbody{grid-template-columns:1fr}.ckpane.phoneb,.ckpane.brain{display:none}.ckhead .tagline{display:none}.ckpresets{grid-template-columns:repeat(5,minmax(155px,1fr))}.ckpreset-title{display:none}}

.wcoursecorrect{align-self:stretch;display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:2px 2px 0;color:var(--ink-4);font-size:10px;animation:rise .3s both}.wcoursecorrect>span{margin-right:2px;font-weight:700;letter-spacing:.2px}.wcoursecorrect .wchip{padding:7px 10px;font-size:10.5px;background:rgba(255,255,255,.025);border-color:rgba(240,231,216,.09);color:var(--ink-3)}.wcoursecorrect .wchip:first-of-type{border-color:rgba(216,181,115,.2);color:var(--gold-2)}

.ckpane.waiter-open>.cklabel{opacity:0;transform:translate(-50%,-10px);pointer-events:none}.cklabel{transition:opacity .25s ease,transform .3s cubic-bezier(.16,1,.3,1);pointer-events:none}

/* ═══ RETURNING GUEST MEMORY LAYER ═══ */
.memorydot{width:7px;height:7px;border-radius:50%;background:#7ce4d7;box-shadow:0 0 0 4px rgba(124,228,215,.11),0 0 18px rgba(124,228,215,.5);display:inline-block;margin-right:5px;animation:memorybreath 2.4s ease-in-out infinite}
#memoryRibbon{margin:0 18px}.memoryribbon{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border:1px solid rgba(124,228,215,.18);border-radius:24px;background:radial-gradient(circle at 16% 18%,rgba(124,228,215,.12),transparent 34%),linear-gradient(145deg,rgba(10,22,24,.94),rgba(18,15,12,.9));box-shadow:0 18px 50px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04);animation:memoryarrive .58s cubic-bezier(.2,.8,.2,1) both}
.memoryribbon::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 12%,rgba(255,255,255,.045) 42%,transparent 66%);transform:translateX(-120%);animation:memoryscan 7s ease-in-out infinite 1.2s}
.memorypulse{width:56px;height:56px;border-radius:20px;position:relative;display:grid;place-items:center;border:1px solid rgba(124,228,215,.22);background:rgba(124,228,215,.06);box-shadow:inset 0 0 24px rgba(124,228,215,.04)}
.memorypulse i{width:14px;height:14px;border-radius:50%;background:#7ce4d7;box-shadow:0 0 0 7px rgba(124,228,215,.08),0 0 28px rgba(124,228,215,.45);animation:memorybreath 2.2s ease-in-out infinite}.memorypulse span{position:absolute;bottom:5px;font:700 6px/1 var(--f-mono);letter-spacing:.9px;color:#9ee9df;white-space:nowrap}
.memorycopy{min-width:0}.memoryeyebrow{font:800 9px/1 var(--f-mono);letter-spacing:1.2px;text-transform:uppercase;color:#8fe5da}.memorycopy h3{margin:5px 0 4px;font-family:var(--f-disp);font-size:18px;color:var(--ink)}.memorycopy p{margin:0;color:var(--ink-3);font-size:12px;line-height:1.52}.memorycopy p b{color:var(--ink)}.memoryfacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.memoryfacts span{padding:5px 8px;border-radius:999px;border:1px solid rgba(124,228,215,.12);background:rgba(124,228,215,.045);font-size:9.5px;color:#b9d9d5}
.memoryactions{display:flex;gap:8px;align-items:stretch}.memoryactions button{min-width:132px;padding:10px 12px;border-radius:15px;border:1px solid rgba(216,181,115,.22);background:linear-gradient(155deg,rgba(216,181,115,.11),rgba(255,255,255,.025));text-align:left;color:var(--ink);transition:.22s;position:relative;overflow:hidden}.memoryactions button:hover{transform:translateY(-1px);border-color:rgba(216,181,115,.42)}.memoryactions button small,.memoryactions button span{display:block;font-size:9px;color:var(--ink-4)}.memoryactions button b{display:block;margin:3px 0;font-size:11.5px}.memoryactions .memoryAlfred{border-color:rgba(124,228,215,.18);background:linear-gradient(155deg,rgba(124,228,215,.08),rgba(255,255,255,.02))}
.tag.memory{background:rgba(124,228,215,.09)!important;border-color:rgba(124,228,215,.24)!important;color:#9ce9df!important}.tag.memory.soft{background:rgba(216,181,115,.08)!important;border-color:rgba(216,181,115,.18)!important;color:var(--gold-2)!important}.card.memorySuppressed{opacity:.72}.card.memorySuppressed:not(:hover){filter:saturate(.78)}
@keyframes memoryarrive{from{opacity:0;transform:translateY(12px) scale(.985);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes memoryscan{0%,70%{transform:translateX(-120%)}88%,100%{transform:translateX(120%)}}@keyframes memorybreath{50%{transform:scale(.82);opacity:.65}}
@media(max-width:760px){#memoryRibbon{margin:0 12px}.memoryribbon{grid-template-columns:42px 1fr;padding:13px;gap:10px}.memorypulse{width:42px;height:42px;border-radius:15px}.memorypulse span{display:none}.memoryactions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.memoryactions button{min-width:0}.memorycopy h3{font-size:16px}.memoryfacts span:nth-child(n+4){display:none}}

/* ═══════════════════════════════════════════════════════════════════════════
   TALK TO THE MENU · voice navigation, discovery and menu control
   ═══════════════════════════════════════════════════════════════════════════ */
.searchbox .voicequick{width:36px;height:36px;display:grid;place-items:center;flex:none;border-radius:12px;color:var(--gold-2);background:rgba(216,181,115,.08);border:1px solid rgba(216,181,115,.18);transition:transform .22s var(--spring),background .2s,border-color .2s}
.searchbox .voicequick:hover{background:rgba(216,181,115,.14);border-color:rgba(216,181,115,.34);transform:translateY(-1px)}
.searchbox .voicequick:active{transform:scale(.95)}
.searchbox .voicequick svg{width:18px;height:18px}
.island .voiceico{display:grid;place-items:center}.island .voiceico svg{width:20px;height:20px}

.voiceveil{position:fixed;inset:0;z-index:108;background:linear-gradient(180deg,transparent 0,transparent 56%,rgba(7,5,4,.06) 72%,rgba(7,5,4,.58) 100%);animation:voiceveil .28s ease both}
.voiceconsole{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));z-index:109;transform:translateX(-50%);width:min(760px,calc(100% - 20px));padding:0;background:transparent;border:0;text-align:left;filter:drop-shadow(0 26px 38px rgba(0,0,0,.5));animation:voicehorizonin .52s var(--spring) both}
.voiceaurora{position:absolute;left:2%;right:2%;bottom:-7px;height:104px;overflow:hidden;border-radius:999px;filter:blur(18px);opacity:.66;pointer-events:none;transform:translateZ(0)}
.voiceaurora::before{content:'';position:absolute;inset:37% -8% -44%;background:linear-gradient(92deg,#52e5ea 0%,#7c8fff 19%,#d393f5 39%,#ff84b4 58%,#e9bd72 77%,#58dfd2 100%);background-size:180% 100%;animation:voiceauroraflow 7s ease-in-out infinite}
.voiceaurora i{position:absolute;border-radius:50%;mix-blend-mode:screen;opacity:.55}.voiceaurora i:nth-child(1){width:30%;height:80%;left:5%;bottom:-26%;background:#68e2e8}.voiceaurora i:nth-child(2){width:34%;height:90%;left:34%;bottom:-35%;background:#bd81ee}.voiceaurora i:nth-child(3){width:30%;height:78%;right:4%;bottom:-28%;background:#e6ad68}
.voicecore{position:relative;isolation:isolate;min-height:96px;display:grid;grid-template-columns:58px minmax(0,1fr) auto 38px;gap:12px;align-items:center;padding:13px 14px 18px;border:1px solid rgba(255,255,255,.105);border-top-color:rgba(255,255,255,.2);border-radius:32px;background:linear-gradient(112deg,rgba(14,16,17,.88),rgba(22,18,20,.86) 51%,rgba(15,14,12,.9));box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 -16px 42px rgba(0,0,0,.2),0 18px 44px rgba(0,0,0,.35);backdrop-filter:blur(32px) saturate(1.32);-webkit-backdrop-filter:blur(32px) saturate(1.32);overflow:hidden}
.voicecore::before{content:'';position:absolute;z-index:1;inset:auto 4% 0;height:1px;background:linear-gradient(90deg,transparent,#67e8e8 15%,#a895ff 36%,#f38ebc 59%,#e8c276 80%,transparent);box-shadow:0 0 15px rgba(140,204,221,.7)}
.voicecore::after{content:'';position:absolute;z-index:0;inset:-65% 18% 22%;background:radial-gradient(ellipse,rgba(255,255,255,.07),transparent 67%);pointer-events:none}
.voicecopy{position:relative;z-index:2;min-width:0;align-self:center;padding-bottom:6px}
.voiceclose{position:relative;z-index:4;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:rgba(240,231,216,.64);background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);font:300 21px/1 var(--f-ui);transition:transform .2s var(--spring),color .2s,background .2s,border-color .2s}.voiceclose:hover{color:var(--ink);background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.17)}.voiceclose:active{transform:scale(.9)}
.voicekicker{display:flex;align-items:center;gap:7px;margin:0 0 5px;font:780 8px/1 var(--f-mono);letter-spacing:1.65px;text-transform:uppercase;color:rgba(240,231,216,.58)}
.voicekicker>span{width:5px;height:5px;border-radius:50%;background:#d6b878;box-shadow:0 0 0 4px rgba(214,184,120,.08),0 0 12px rgba(214,184,120,.5);transition:background .2s,box-shadow .2s}
.voiceconsole.listening .voicekicker>span{background:#72e5e4;box-shadow:0 0 0 4px rgba(114,229,228,.09),0 0 15px rgba(114,229,228,.75);animation:voicestatus 1.5s ease-in-out infinite}.voiceconsole.thinking .voicekicker>span{background:#b696ff;box-shadow:0 0 14px rgba(182,150,255,.72)}.voiceconsole.done .voicekicker>span{background:#7ce4d7;box-shadow:0 0 14px rgba(124,228,215,.65)}
.voiceconsole h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--f-disp);font-size:18px;font-weight:570;line-height:1.2;color:var(--ink);letter-spacing:-.12px}
.voicetranscript{min-height:16px;margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:1.4;color:var(--ink-3)}
.voiceorb{position:relative;z-index:3;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 37% 31%,#fff7e8 0,#d6b878 23%,#785a47 49%,#17181a 73%);box-shadow:0 0 0 1px rgba(238,209,153,.42),0 0 28px rgba(208,169,101,.22),inset 0 0 18px rgba(255,255,255,.2)}
.voiceorb span{position:relative;width:14px;height:21px;border:1.8px solid #1d1916;border-radius:9px}.voiceorb span::after{content:'';position:absolute;left:50%;bottom:-7px;width:11px;height:7px;border:1.8px solid #1d1916;border-top:0;border-radius:0 0 8px 8px;transform:translateX(-50%)}
.voiceorb i{position:absolute;inset:-5px;border-radius:inherit;border:1px solid rgba(123,230,231,.28);opacity:0}.voiceorb i:nth-of-type(2){inset:-11px}.voiceorb i:nth-of-type(3){inset:-18px}
.voiceconsole.listening .voiceorb{background:radial-gradient(circle at 37% 31%,#f7ffff 0,#7fe8e8 24%,#8165d6 51%,#17181b 74%);box-shadow:0 0 0 1px rgba(118,231,233,.45),0 0 34px rgba(120,170,238,.3),inset 0 0 20px rgba(255,255,255,.22);animation:voicebreath 1.7s ease-in-out infinite}.voiceconsole.listening .voiceorb i{animation:voiceecho 2s ease-out infinite}.voiceconsole.listening .voiceorb i:nth-of-type(2){animation-delay:.35s}.voiceconsole.listening .voiceorb i:nth-of-type(3){animation-delay:.7s}
.voiceconsole.thinking .voiceorb{background:radial-gradient(circle at 37% 31%,#fff 0,#c0a2ff 24%,#8d5f86 50%,#17181b 73%);animation:voicethink 1.3s ease-in-out infinite}.voiceconsole.done .voiceorb{background:radial-gradient(circle at 38% 34%,#f5fbf8,#7ce4d7 38%,#255b55 71%,#14221f);box-shadow:0 0 0 1px rgba(124,228,215,.38),0 0 30px rgba(124,228,215,.23)}.voiceconsole.done .voiceorb span{width:18px;height:10px;border:0;border-left:2.5px solid #13211f;border-bottom:2.5px solid #13211f;border-radius:1px;transform:rotate(-45deg);margin-top:-5px}.voiceconsole.done .voiceorb span::after{display:none}.voiceconsole.error .voiceorb{filter:saturate(.42)}
.voicewave{position:absolute;z-index:1;left:83px;right:101px;bottom:8px;height:14px;display:flex;justify-content:flex-start;align-items:flex-end;gap:2.5px;opacity:.25;overflow:hidden;mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.75) 65%,transparent);-webkit-mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.75) 65%,transparent);transition:opacity .2s}.voicewave i{display:block;width:2px;height:3px;flex:none;border-radius:3px;background:linear-gradient(180deg,#6be4e5 0%,#a98cf1 52%,#e9bc79 100%)}.voiceconsole.listening .voicewave{opacity:.92}.voiceconsole.listening .voicewave i{animation:voicebar .72s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-37ms)}.voiceconsole.thinking .voicewave{opacity:.7}.voiceconsole.thinking .voicewave i{animation:voicebar 1s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-52ms)}
.voicemic{position:relative;z-index:4;height:34px;min-width:68px;padding:0 12px;border-radius:999px;color:#e9d4ae;background:rgba(216,181,115,.08);border:1px solid rgba(216,181,115,.2);font:780 9px/1 var(--f-mono);letter-spacing:.3px;text-transform:uppercase;transition:transform .2s var(--spring),background .2s,border-color .2s,color .2s}.voicemic:hover{background:rgba(216,181,115,.15);border-color:rgba(216,181,115,.36)}.voicemic:active{transform:scale(.94)}.voiceconsole.listening .voicemic{color:#b9ffff;background:rgba(103,226,228,.09);border-color:rgba(103,226,228,.27)}.voiceconsole.thinking .voicemic,.voiceconsole.done .voicemic{opacity:.45}.voicemic.unsupported{color:var(--ink-3)}
.voiceaux{position:relative;z-index:5;display:flex;align-items:center;justify-content:center;gap:8px;max-width:calc(100% - 26px);margin:8px auto 0;transition:opacity .2s,transform .28s var(--out),max-height .28s var(--out),margin .28s;max-height:48px}
.voiceexamples{min-width:0;display:flex;justify-content:flex-start;gap:6px;overflow-x:auto;scrollbar-width:none}.voiceexamples::-webkit-scrollbar{display:none}.voiceexamples button{flex:none;max-width:240px;padding:9px 12px;border-radius:999px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.2;color:var(--ink-3);background:rgba(14,13,12,.78);border:1px solid rgba(240,231,216,.1);box-shadow:0 8px 22px rgba(0,0,0,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:color .2s,border-color .2s,background .2s}.voiceexamples button:hover{color:var(--ink);border-color:rgba(216,181,115,.27);background:rgba(35,29,22,.9)}
.voicecommand{flex:none;display:grid;grid-template-columns:minmax(150px,210px) auto;gap:6px}.voicecommand input{min-width:0;height:36px;padding:0 12px;border-radius:999px;color:var(--ink);background:rgba(14,13,12,.82);border:1px solid rgba(240,231,216,.12);font-size:11px;outline:none;box-shadow:0 8px 22px rgba(0,0,0,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.voicecommand input:focus{border-color:rgba(119,226,227,.42);box-shadow:0 0 0 3px rgba(119,226,227,.07),0 8px 22px rgba(0,0,0,.2)}.voicecommand button{height:36px;padding:0 14px;border-radius:999px;background:linear-gradient(145deg,#f0e2c8,#cfb77f);color:#261a0f;font-size:10px;font-weight:850;box-shadow:0 8px 20px rgba(0,0,0,.22)}
.voiceconsole.supported.ready .voicecommand{display:none}.voiceconsole.listening .voiceaux,.voiceconsole.thinking .voiceaux,.voiceconsole.done .voiceaux{max-height:0;margin-top:0;opacity:0;transform:translateY(8px);overflow:hidden;pointer-events:none}.voiceconsole.error .voiceexamples{display:none}

.voice-collection{margin:12px 18px 4px;padding:0;border-radius:25px;background:linear-gradient(150deg,rgba(216,181,115,.08),rgba(111,217,222,.025));border:1px solid rgba(216,181,115,.22);overflow:hidden;box-shadow:0 20px 48px rgba(0,0,0,.18)}
.voice-collection-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 18px 15px;border-bottom:1px solid rgba(240,231,216,.08)}.voice-collection-head>div{min-width:0}.voice-collection-head span{display:block;font:750 8.5px/1 var(--f-mono);letter-spacing:1.65px;text-transform:uppercase;color:#80dfe4}.voice-collection-head h2{margin-top:7px;font-family:var(--f-disp);font-size:23px;font-weight:570}.voice-collection-head p{margin-top:5px;font-size:11.5px;line-height:1.5;color:var(--ink-3)}.voice-collection-head button,.voice-section-guide button{flex:none;padding:8px 11px;border-radius:999px;color:var(--ink-3);border:1px solid var(--line);font-size:10px;font-weight:750}.voice-grid{padding:14px}.voice-grid .card{margin-bottom:10px}.voice-grid .card:last-child{margin-bottom:0}
.voice-section-guide{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 0 15px;padding:12px 13px;border-radius:17px;background:linear-gradient(140deg,rgba(216,181,115,.09),rgba(111,217,222,.035));border:1px solid rgba(216,181,115,.21);animation:voiceguidein .45s var(--out) both}.voice-section-guide>div{min-width:0}.voice-section-guide span{display:block;font:750 8px/1 var(--f-mono);text-transform:uppercase;letter-spacing:1.5px;color:#80dfe4}.voice-section-guide b{display:block;margin-top:5px;font-family:var(--f-disp);font-size:16px;font-weight:570}.voice-section-guide small{display:block;margin-top:3px;font-size:10.5px;line-height:1.4;color:var(--ink-3)}
.card.voice-match{border-color:rgba(216,181,115,.52);background:linear-gradient(135deg,rgba(216,181,115,.1),rgba(111,217,222,.035) 52%,var(--glass));box-shadow:0 18px 42px rgba(0,0,0,.25),0 0 0 1px rgba(216,181,115,.08),inset 0 1px 0 rgba(255,255,255,.05);transform:translateY(-1px)}.card.voice-match::after{content:'VOICE MATCH';position:absolute;top:11px;right:11px;z-index:5;padding:5px 7px;border-radius:999px;font:750 7.5px/1 var(--f-mono);letter-spacing:1px;color:#1f1710;background:linear-gradient(145deg,#f1e2c4,#c9ad72);box-shadow:0 5px 15px rgba(0,0,0,.22)}.card.voice-dim{opacity:.36;filter:saturate(.55);transform:scale(.985)}.card.voice-dim:hover{opacity:.75;filter:none}.card.voice-pulse{animation:voicecardpulse 1.15s var(--out) both}.card.voice-first{scroll-margin-top:145px}

@keyframes voiceveil{from{opacity:0}to{opacity:1}}@keyframes voicehorizonin{from{opacity:0;transform:translate(-50%,28px) scale(.975);filter:blur(10px) drop-shadow(0 26px 38px rgba(0,0,0,.5))}to{opacity:1;transform:translate(-50%,0) scale(1);filter:blur(0) drop-shadow(0 26px 38px rgba(0,0,0,.5))}}
@keyframes voiceauroraflow{0%,100%{background-position:0 50%;transform:scaleX(.94)}50%{background-position:100% 50%;transform:scaleX(1.04)}}@keyframes voicestatus{0%,100%{opacity:.62;transform:scale(.82)}50%{opacity:1;transform:scale(1.18)}}
@keyframes voicebreath{0%,100%{transform:scale(.97)}50%{transform:scale(1.045)}}
@keyframes voiceecho{0%{opacity:.58;transform:scale(.76)}100%{opacity:0;transform:scale(1.16)}}@keyframes voicethink{0%,100%{transform:rotate(-2deg) scale(.98)}50%{transform:rotate(2deg) scale(1.03)}}
@keyframes voicebar{from{height:3px;opacity:.35}to{height:13px;opacity:1}}@keyframes voiceguidein{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes voicecardpulse{0%{box-shadow:0 0 0 0 rgba(216,181,115,.45)}45%{box-shadow:0 0 0 8px rgba(216,181,115,.04),0 18px 46px rgba(0,0,0,.3)}100%{box-shadow:0 18px 42px rgba(0,0,0,.25),0 0 0 1px rgba(216,181,115,.08)}}

@media(max-width:520px){.island{max-width:calc(100% - 16px);padding:5px;gap:2px}.island .isbtn{min-width:63px;padding:8px 9px;font-size:9px}.island .totalpill{font-size:10px;margin-right:3px}.voiceconsole{bottom:calc(82px + env(safe-area-inset-bottom));width:calc(100% - 10px)}.voiceaurora{left:0;right:0;height:88px;bottom:-5px}.voicecore{min-height:84px;grid-template-columns:48px minmax(0,1fr) 58px 32px;gap:7px;padding:10px 9px 15px;border-radius:27px}.voicecopy{padding-bottom:5px}.voiceconsole h2{font-size:15.5px}.voicetranscript{font-size:10.5px}.voicekicker{margin-bottom:4px;font-size:7.2px;letter-spacing:1.25px}.voiceorb{width:46px;height:46px}.voiceorb span{width:12px;height:18px}.voicewave{left:65px;right:90px;bottom:7px;height:12px;gap:2px}.voicemic{height:32px;min-width:58px;padding:0 7px;font-size:8px}.voiceclose{width:31px;height:31px;font-size:19px}.voiceaux{max-width:calc(100% - 12px);justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.voiceaux::-webkit-scrollbar{display:none}.voiceexamples{overflow:visible}.voiceexamples button{max-width:190px;padding:8px 10px}.voicecommand{grid-template-columns:190px auto}.voice-collection{margin-left:12px;margin-right:12px}.voice-collection-head{align-items:flex-start}.voice-section-guide{align-items:flex-start}.card.voice-match::after{font-size:6.8px;top:8px;right:8px}}
@media(prefers-reduced-motion:reduce){.voiceconsole,.voiceveil,.voiceaurora::before,.voicekicker>span,.voice-section-guide,.card.voice-pulse,.voiceorb,.voiceorb i,.voicewave i{animation:none!important}.card.voice-match{transform:none}}

/* v7.5.3: deterministic bundled food imagery */
[data-food-image]{width:100%;height:100%;object-fit:cover;display:block;background:var(--bg-3)}
.hmedia>[data-food-image]{object-fit:cover}
.card .media,[data-ci],.cdimg,.wdimg,.nimg,.cnimg{background:var(--bg-3)}
.hmedia,.card .media,.sheet .photo,.cdimg,.ci,.nimg,.cnimg,.wdimg{position:relative;overflow:hidden}
.hmedia>[data-food-image],.card .media>[data-food-image],.sheet .photo>[data-food-image],.cdimg>[data-food-image],.ci>[data-food-image],.nimg>[data-food-image],.cnimg>[data-food-image],.wdimg>[data-food-image]{position:absolute;inset:0;z-index:1}
.hmedia>.ph,.card .media>.ph,.sheet .photo>.ph,.cdimg>.ph,.ci>.ph,.nimg>.ph,.cnimg>.ph,.wdimg>.ph{position:absolute;inset:0;z-index:0}
