/* ============ SHELL ============ */
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.promo{
  background:var(--brand);color:var(--brand-ink);text-align:center;
  font-size:13px;padding:7px 16px;letter-spacing:.01em;
}
.promo strong{font-weight:650}
header.site{
  position:sticky;top:0;z-index:50;background:var(--bg);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;gap:20px;padding:14px 0;
}
.logo{display:flex;align-items:center;gap:9px;flex-shrink:0}
.logo svg{display:block}
.logo .word{font-family:'Bricolage';font-weight:750;font-size:22px;letter-spacing:-.02em}
.searchbar{
  flex:1;display:flex;align-items:center;gap:10px;max-width:520px;
  background:var(--surface);border:1px solid var(--line-strong);border-radius:99px;
  padding:9px 16px;color:var(--muted);
}
.searchbar input{border:none;background:none;outline:none;flex:1;color:var(--ink);min-width:0}
.searchbar input::placeholder{color:var(--faint)}
.navlinks{display:flex;align-items:center;gap:4px;margin-left:auto}
.navlinks button{
  padding:8px 13px;border-radius:8px;font-size:14px;font-weight:550;color:var(--muted);
  display:flex;align-items:center;gap:7px;white-space:nowrap;
}
.navlinks button:hover{background:var(--surface2);color:var(--ink)}
.navlinks .cartbtn{position:relative}
.cart-badge{
  position:absolute;top:1px;right:3px;background:var(--accent);color:#fff;
  font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;padding:0 4px;
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 20px;border-radius:8px;font-weight:600;font-size:14.5px;
  white-space:nowrap;
  transition:transform .12s var(--ease-out),box-shadow .2s var(--ease-out),
             background .16s var(--ease-out),border-color .16s var(--ease-out),filter .16s var(--ease-out);
}
.btn:active{transform:translateY(1px) scale(.985)}
/* The primary action should read as the one worth pressing. */
.btn-brand{background:var(--grad-brand);color:var(--brand-ink);box-shadow:var(--glow-brand)}
.btn-brand:hover{filter:brightness(1.09);box-shadow:var(--glow-brand),0 2px 6px rgba(0,0,0,.14);transform:translateY(-1px)}
.btn-brand:active{filter:brightness(.97);box-shadow:var(--glow-brand)}
.btn-brand[disabled]{background:var(--brand);box-shadow:none;filter:none;transform:none}
.btn-ghost{border:1px solid var(--line-strong);background:var(--surface)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.btn-quiet{color:var(--muted)}
.btn-quiet:hover{background:var(--surface2);color:var(--ink)}
.btn-lg{padding:13px 26px;font-size:15.5px;border-radius:10px}
.btn-sm{padding:6px 12px;font-size:13px}
.btn-danger{background:var(--bad-soft);color:var(--bad)}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* channel tabs */
.channels{display:flex;gap:2px;padding:0 0 0;overflow-x:auto}
.channels button{
  padding:10px 16px 12px;font-size:14px;font-weight:550;color:var(--muted);
  border-bottom:2px solid transparent;display:flex;gap:8px;align-items:center;
}
.channels button:hover{color:var(--ink)}
.channels button.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:650}

/* ============ VIEWS ============ */
.view{display:none}
.view.on{display:block;animation:fadein .25s ease}
@keyframes fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ---- account menu ---- */
.acct{position:relative;display:inline-flex}
.acct .acct-dot{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;background:var(--brand);color:var(--brand-ink);
  font-size:10.5px;font-weight:700;letter-spacing:.02em;margin-right:7px;
}
.acct .acct-name{font-weight:600}
.acct-menu{
  position:absolute;top:calc(100% + 10px);right:0;z-index:60;min-width:212px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:6px;
}
.acct-menu[hidden]{display:none}
.acct-menu .acct-head{padding:9px 11px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.acct-menu .acct-head b{display:block;font-size:13.5px}
.acct-menu .acct-head span{font-size:12px;color:var(--muted);word-break:break-all}
.acct-menu button{
  display:block;width:100%;text-align:left;padding:9px 11px;border-radius:7px;
  font-size:13.5px;color:var(--ink);
}
.acct-menu button:hover{background:var(--surface2)}
/* Sign out, and only sign out: a direct child, so the last line of a group
   inside the menu (What's new) doesn't turn red too. */
.acct-menu > button:last-child{color:var(--bad)}
.autherr{
  background:var(--bad-soft);color:var(--bad);border-radius:8px;
  padding:9px 12px;font-size:13px;margin-bottom:12px;
}
.autherr[hidden]{display:none}
