:root{
  --bg:#f7f3ec; --bg-2:#efe8dc; --card:#ffffff; --ink:#151a2b; --ink-2:#5b6072; --line:#e4dccd;
  --navy:#0b1020; --navy-2:#18213f; --gold:#c9962b; --gold-2:#e8bf5a; --gold-ink:#7a5a12;
  --ok:#2f8a57; --danger:#c2412d;
  --shadow:0 1px 2px rgba(20,20,40,.06),0 8px 24px rgba(20,20,40,.08);
  --r:18px; --tab-h:68px;
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#090d1a; --bg-2:#10162a; --card:#141b31; --ink:#f3efe6; --ink-2:#a3a8ba; --line:#232c48;
    --gold:#e3b04b; --gold-2:#f3cf78; --gold-ink:#f3cf78; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#090d1a; --bg-2:#10162a; --card:#141b31; --ink:#f3efe6; --ink-2:#a3a8ba; --line:#232c48;
  --gold:#e3b04b; --gold-2:#f3cf78; --gold-ink:#f3cf78; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35);
  color-scheme:dark;
}

[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font:500 15px/1.45 Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
input,select,textarea{font:inherit;color:var(--ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:10px}

.app{max-width:560px;margin:0 auto;min-height:100%;position:relative}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-t)) 16px 10px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.avatar-btn img{width:38px;height:38px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--gold)}
.brandmark{flex:1;display:flex;align-items:baseline;gap:6px}
.bm-1{font:700 20px/1 "Playfair Display",Georgia,serif;letter-spacing:.2px}
.bm-2{font-size:11px;font-weight:800;letter-spacing:2.5px;color:var(--gold-ink);background:color-mix(in srgb,var(--gold) 18%,transparent);padding:3px 6px;border-radius:6px}
.top-actions{display:flex;gap:4px}
.icon-btn{position:relative;width:40px;height:40px;border-radius:12px;display:grid;place-items:center}
.icon-btn:active{background:var(--bg-2)}
.badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg)}
svg.ic{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}

.offline{background:var(--navy);color:var(--gold-2);font-size:12.5px;text-align:center;padding:7px 16px}

main{padding:16px 16px calc(var(--tab-h) + var(--safe-b) + 28px);outline:none}
.view-enter{animation:viewIn .32s cubic-bezier(.2,.8,.2,1)}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* tab bar */
.tabbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:560px;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line)}
.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-2);font-size:10.5px}
.tabbar b{font-weight:600}
.tabbar button.on{color:var(--ink)}
.tabbar button.on svg{stroke:var(--gold)}
.tab-order .fab{position:relative;width:52px;height:52px;margin-top:-26px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--gold-2),var(--gold));color:var(--navy);box-shadow:0 6px 18px color-mix(in srgb,var(--gold) 45%,transparent),0 0 0 5px var(--bg)}
.tab-order .fab svg{stroke:var(--navy)!important}
.fab-count{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;border-radius:10px;background:var(--navy);color:var(--gold-2);font:700 11px/20px Montserrat,sans-serif;font-style:normal;text-align:center;padding:0 5px}

/* type */
h1,h2,h3{margin:0}
.h-xl{font:700 28px/1.15 "Playfair Display",Georgia,serif}
.h-lg{font:700 22px/1.2 "Playfair Display",Georgia,serif}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--gold-ink)}
.muted{color:var(--ink-2)}
.sec{margin:26px 0 10px;display:flex;align-items:end;justify-content:space-between;gap:10px}
.sec h2{font:700 13px/1 Montserrat,sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-2)}
.sec a,.sec button{font-size:13px;font-weight:700;color:var(--gold-ink)}

.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.pad{padding:16px}

/* hero */
.hero{position:relative;overflow:hidden;border-radius:24px;background:radial-gradient(120% 90% at 85% 0%,#2a3566 0%,var(--navy) 55%);color:#fff;padding:20px;min-height:200px;box-shadow:0 14px 40px rgba(11,16,32,.35)}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(232,191,90,.45),transparent 65%)}
.hero-top{display:flex;gap:14px;align-items:center;position:relative;z-index:1}
.hero-top img{width:64px;height:64px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--gold-2)}
.hero .greet{font-size:13px;color:#cfd3e4}
.hero .h-xl{color:#fff}
.hero .eyebrow{color:var(--gold-2)}
.count{position:relative;z-index:1;margin-top:18px;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px 14px}
.count-num{font:800 30px/1 Montserrat,sans-serif;color:var(--gold-2);min-width:52px;text-align:center}
.count small{display:block;color:#cfd3e4;font-size:12px}
.count b{font-size:14.5px}
.progress{height:6px;border-radius:3px;background:rgba(255,255,255,.12);margin-top:8px;overflow:hidden}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2));border-radius:3px}

.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.qa{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 4px 12px;font-size:12px;font-weight:600;text-align:center}
.qa .qi{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold-ink)}
.qa:active{transform:scale(.96)}

.feature{display:flex;gap:14px;align-items:stretch;overflow:hidden}
.feature img{width:110px;object-fit:cover;flex:none}
.feature .fb{padding:14px 14px 14px 0;display:flex;flex-direction:column;gap:6px;justify-content:center}

.row{display:flex;align-items:center;gap:14px;padding:14px 16px}
.row + .row{border-top:1px solid var(--line)}
.row .ri{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--bg-2);color:var(--gold-ink);flex:none}
.row .rt{flex:1;min-width:0}
.row .rt b{display:block;font-weight:700}
.row .rt span{display:block;font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .chev{color:var(--ink-2)}
.row:active{background:var(--bg-2)}

.news-item{padding:16px}
.news-item + .news-item{border-top:1px solid var(--line)}
.news-item .nd{font-size:12px;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.news-item h3{font-size:16px;margin:4px 0 6px}
.news-item p{margin:0;color:var(--ink-2);font-size:14px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--danger);display:inline-block}

/* brands */
.search{display:flex;align-items:center;gap:10px;padding:0 14px;height:48px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.search input{flex:1;border:0;background:none;outline:none;height:100%;font-size:15px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 4px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;height:34px;padding:0 14px;border-radius:17px;background:var(--card);border:1px solid var(--line);font-size:13px;font-weight:600;white-space:nowrap}
.chip.on{background:var(--navy);color:var(--gold-2);border-color:var(--navy)}
:root[data-theme="dark"] .chip.on{background:var(--gold);color:var(--navy);border-color:var(--gold)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip.on{background:var(--gold);color:var(--navy);border-color:var(--gold)}}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}
.brand{position:relative;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:128px;text-align:left}
.brand:active{transform:scale(.98)}
.mono{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font:700 17px/1 "Playfair Display",serif;color:#fff}
.brand b{font-size:14.5px;line-height:1.25}
.brand small{font-size:11.5px;color:var(--ink-2);font-weight:600}
.fav{position:absolute;top:8px;right:8px;width:36px;height:36px;display:grid;place-items:center;color:var(--ink-2)}
.fav.on{color:var(--gold)}
.fav.on svg{fill:var(--gold)}
.pill{display:inline-block;font-size:10px;font-weight:800;letter-spacing:1px;padding:3px 7px;border-radius:6px;background:var(--danger);color:#fff}
.pill.gold{background:linear-gradient(145deg,var(--gold-2),var(--gold));color:var(--navy)}
.empty{text-align:center;padding:40px 20px;color:var(--ink-2)}

/* buttons */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;height:50px;border-radius:14px;font-weight:700;font-size:15px;padding:0 18px;width:100%}
.btn-gold{background:linear-gradient(145deg,var(--gold-2),var(--gold));color:var(--navy);box-shadow:0 6px 16px color-mix(in srgb,var(--gold) 35%,transparent)}
.btn-navy{background:var(--navy);color:#fff}
:root[data-theme="dark"] .btn-navy{background:#232d52}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-navy{background:#232d52}}
.btn-ghost{background:var(--bg-2);color:var(--ink)}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.45}
.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stack{display:grid;gap:10px}

/* order */
.field{display:grid;gap:6px}
.field label{font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:.4px}
.input{height:48px;border-radius:12px;border:1px solid var(--line);background:var(--card);padding:0 14px;outline:none;width:100%}
textarea.input{height:auto;min-height:96px;padding:12px 14px;resize:vertical}
.input:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%,transparent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.line{display:flex;align-items:center;gap:10px;padding:12px 14px}
.line + .line{border-top:1px solid var(--line)}
.line .lt{flex:1;min-width:0}
.line .lt b{display:block;font-size:14.5px}
.line .lt span{font-size:12.5px;color:var(--ink-2)}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.stepper button{width:34px;height:34px;display:grid;place-items:center;font-size:18px;font-weight:700}
.stepper span{min-width:26px;text-align:center;font-weight:700}
.rm{width:34px;height:34px;display:grid;place-items:center;color:var(--ink-2)}
.hist{display:flex;align-items:center;gap:10px;padding:12px 14px}
.hist + .hist{border-top:1px solid var(--line)}
.hist .lt{flex:1}
.hist button{font-size:13px;font-weight:700;color:var(--gold-ink);padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--gold) 14%,transparent)}
.note{font-size:12.5px;color:var(--ink-2);text-align:center;margin-top:10px}

/* TV */
.tv{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#000;box-shadow:var(--shadow)}
.tv iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tv-poster{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#25305c,#05070f);color:#fff;text-align:center}
.tv-poster .play{width:64px;height:64px;border-radius:50%;background:var(--gold);display:grid;place-items:center;margin:0 auto 10px;color:var(--navy)}
.live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:1.5px;color:#ff6b57}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:#ff4a33;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.3}}

/* connect */
.profile{text-align:center;padding:24px 16px}
.profile img{width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 auto 12px;box-shadow:0 0 0 4px var(--gold),0 10px 30px rgba(0,0,0,.2)}
.social{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.soc{display:flex;align-items:center;gap:10px;padding:12px}
.soc .si{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#fff;flex:none}
.soc b{display:block;font-size:13.5px}
.soc span{display:block;font-size:11.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.soc > div{min-width:0}

/* sheet */
.sheet-backdrop{position:fixed;inset:0;background:rgba(5,8,18,.5);z-index:50;animation:fade .2s}
@keyframes fade{from{opacity:0}}
.sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:560px;max-height:88vh;overflow:auto;z-index:51;background:var(--card);border-radius:24px 24px 0 0;padding:8px 18px calc(22px + var(--safe-b));animation:up .3s cubic-bezier(.2,.8,.2,1);box-shadow:0 -10px 40px rgba(0,0,0,.25)}
@keyframes up{from{transform:translate(-50%,100%)}}
.sheet-grip{width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 14px}
.sheet-head{display:flex;gap:14px;align-items:center;margin-bottom:14px}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + var(--safe-b) + 18px);transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:12px 18px;border-radius:14px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:60;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* install banner */
.install{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-top:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--gold) 20%,var(--card)),var(--card))}
.install img{width:44px;height:44px;border-radius:12px}
.install .lt{flex:1}
.install .lt b{display:block;font-size:14px}
.install .lt span{font-size:12.5px;color:var(--ink-2)}
.install .go{font-size:13px;font-weight:700;padding:9px 14px;border-radius:10px;background:var(--navy);color:var(--gold-2)}
.x{width:30px;height:30px;display:grid;place-items:center;color:var(--ink-2)}

@media (min-width:420px){.grid{grid-template-columns:repeat(2,1fr)}}
