
/* ══ CSS RESET + VARS ══════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:15px;}
body{
  font-family:'DM Sans',system-ui,sans-serif;
  background:var(--bg);color:var(--ink);
  min-height:100vh;
  transition:background .25s,color .25s;
}

/* ── Light palette ── */
html{
  --bg:#f5f2ec;
  --bg2:#ede9e1;
  --surface:#ffffff;
  --surface2:#f7f4ef;
  --border:#e0dcd4;
  --border2:#ccc7bd;
  --ink:#0f0f0f;
  --ink2:#3a3a3a;
  --muted:#888;
  --accent:#c8401a;
  --accent-dim:rgba(200,64,26,.1);
  --green:#2a7a4b;
  --green-dim:rgba(42,122,75,.08);
  --gold:#b8860b;
  --blue:#2a4a8b;
  --radius-sm:8px;
  --radius:12px;
  --radius-lg:16px;
  --radius-xl:20px;
}
html[data-theme="dark"]{
  --bg:#111;
  --bg2:#161614;
  --surface:#1c1a18;
  --surface2:#222220;
  --border:#2c2826;
  --border2:#3a3632;
  --ink:#f0ede8;
  --ink2:#a8a098;
  --muted:#555;
  --accent:#e05020;
  --accent-dim:rgba(224,80,32,.12);
  --green:#38c068;
  --green-dim:rgba(56,192,104,.08);
  --gold:#f5c518;
  --blue:#4a8adf;
}

/* ══ NAV ══════════════════════════════════════════════════════════════ */
nav{
  position:sticky;top:0;z-index:200;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  padding:0 24px;
  height:56px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 1px 0 var(--border);
}
.nav-left{display:flex;align-items:center;gap:16px;}
.nav-logo{
  display:flex;align-items:center;gap:8px;
  text-decoration:none;color:var(--ink);font-weight:800;font-size:17px;letter-spacing:-.4px;
}
.logo-mark{
  width:28px;height:28px;background:var(--accent);color:#fff;
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:900;flex-shrink:0;
}
.nav-logo span{color:var(--accent);}
.nav-back{
  display:flex;align-items:center;gap:6px;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:100px;padding:6px 14px;
  font-size:12px;font-weight:600;color:var(--ink2);
  text-decoration:none;transition:all .15s;cursor:pointer;
}
.nav-back:hover{border-color:var(--border2);color:var(--ink);}
.nav-right{display:flex;align-items:center;gap:8px;}
.nav-dark-btn{
  background:none;border:1px solid var(--border);border-radius:100px;
  width:34px;height:34px;cursor:pointer;color:var(--ink2);
  display:flex;align-items:center;justify-content:center;font-size:15px;
  transition:all .15s;
}
.nav-dark-btn:hover{border-color:var(--border2);}

/* ── Profile dropdown ─────────────────────────────────────────────── */
.nav-profile-wrap{position:relative;}
.nav-profile-btn{
  background:var(--surface);border:1px solid var(--border);
  border-radius:100px;cursor:pointer;padding:3px 12px 3px 3px;
  display:flex;align-items:center;gap:8px;transition:all .2s;color:var(--ink);
}
.nav-profile-btn:hover{border-color:var(--border2);background:var(--surface2);}
.avatar-circle{
  width:28px;height:28px;border-radius:50%;background:var(--accent);
  color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;
  font-weight:700;transition:background .2s;flex-shrink:0;
}
.nav-profile-name{font-size:12px;font-weight:600;color:var(--ink2);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media(max-width:480px){.nav-profile-name{display:none;}}
.nav-dropdown{
  position:absolute;top:calc(100% + 8px);right:0;z-index:300;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.5);
  min-width:220px;opacity:0;pointer-events:none;
  transform:translateY(-8px) scale(.97);transition:opacity .18s,transform .18s;
}
.nav-dropdown.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);}
.nd-header{padding:16px 14px 12px;border-bottom:1px solid var(--border);}
.nd-avatar-row{display:flex;align-items:center;gap:10px;}
.nd-avatar-lg{
  width:40px;height:40px;border-radius:50%;background:var(--accent);
  color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;
  font-weight:700;flex-shrink:0;
}
.nd-avatar-lg.emoji-mode{background:var(--surface2);border:1px solid var(--border2);font-size:22px;color:var(--ink);}
.nd-name{font-size:13px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nd-tier{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:100px;margin-top:3px;}
.nd-tier.free{background:var(--surface2);color:var(--muted);border:1px solid var(--border2);}
.nd-tier.pro{background:rgba(0,196,140,.15);color:var(--green);border:1px solid rgba(0,196,140,.3);}
.nd-section{padding:4px 6px;}
.nd-section+.nd-section{border-top:1px solid var(--border);}
.nd-item{
  display:flex;align-items:center;gap:10px;width:100%;
  background:none;border:none;border-radius:var(--radius-sm);padding:9px 10px;
  cursor:pointer;font-family:inherit;font-size:13px;
  color:var(--ink2);transition:background .12s,color .12s;text-align:left;text-decoration:none;
}
.nd-item:hover{background:var(--surface2);color:var(--ink);}
.nd-item.danger:hover{background:var(--red-dim);color:var(--red);}
.nd-icon{font-size:14px;width:18px;text-align:center;flex-shrink:0;}
.nd-lang-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;}
.nd-lang-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2);}
.lang-switcher{display:flex;gap:4px;}
.lang-btn{
  padding:4px 10px;border-radius:6px;border:1px solid var(--border);
  background:var(--surface2);font-family:inherit;font-size:11px;
  font-weight:700;cursor:pointer;color:var(--ink2);transition:all .15s;
}
.lang-btn:hover,.lang-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}




.app-footer-brand{display:flex;flex-direction:column;align-items:center;gap:6px;}

.app-footer-logo-mark{width:24px;height:24px;border-radius:6px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;}
.app-footer-logo span{color:var(--accent);}
.app-footer-tagline{font-size:11px;color:var(--muted);line-height:1.5;}


.app-footer-links a:hover{color:var(--ink);}


/* ══ PAGE LAYOUT ═══════════════════════════════════════════════════════ */
.page{
  max-width:900px;
  margin:0 auto;
  padding:32px 20px 64px;
;flex:1;}

/* ══ PAGE HEADER ═══════════════════════════════════════════════════════ */
.page-header{
  margin-bottom:36px;
}
.page-title{
  font-size:28px;font-weight:900;letter-spacing:-.6px;
  color:var(--ink);line-height:1;margin-bottom:6px;
}
.page-title span{color:var(--accent);}
.page-sub{font-size:14px;color:var(--muted);line-height:1.5;}

/* ── Overall progress bar ── */
.overall-progress{
  margin-top:20px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:18px 20px;
}
.op-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.op-label{font-size:13px;font-weight:700;color:var(--ink);}
.op-count{font-size:13px;font-weight:800;color:var(--accent);}
.op-track{
  background:var(--surface2);border:1px solid var(--border);
  height:10px;border-radius:100px;overflow:hidden;
}
.op-fill{
  height:100%;border-radius:100px;
  background:linear-gradient(90deg,var(--accent),#e87a4a);
  transition:width .8s cubic-bezier(.4,0,.2,1);
}
.op-tier-pips{
  display:flex;gap:4px;margin-top:8px;
}
.op-pip{
  flex:1;height:4px;border-radius:100px;
  background:var(--border);transition:background .4s;
}
.op-pip.done{background:var(--accent);}

/* ══ TIER SECTION ══════════════════════════════════════════════════════ */
.tier-section{
  margin-bottom:28px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  overflow:hidden;
  transition:border-color .2s;
}
.tier-section.locked{
  opacity:.6;
  filter:grayscale(.25);
}
.tier-section.locked .tier-header{cursor:not-allowed;}

/* ── Tier header ── */
.tier-header{
  display:flex;align-items:center;gap:14px;
  padding:18px 20px;
  border-bottom:1px solid var(--border);
  cursor:pointer;
  user-select:none;
  transition:background .12s;
  position:relative;
}
.tier-header:hover:not([data-locked="true"]){background:var(--surface2);}
.tier-color-bar{
  position:absolute;left:0;top:0;bottom:0;
  width:4px;border-radius:0;
}
.tier-icon{font-size:24px;flex-shrink:0;}
.tier-info{flex:1;}
.tier-name-row{display:flex;align-items:center;gap:8px;margin-bottom:3px;}
.tier-name{font-size:16px;font-weight:800;letter-spacing:-.2px;}
.tier-num{
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);
}
.tier-progress-row{display:flex;align-items:center;gap:10px;}
.tier-mini-track{
  flex:1;height:5px;background:var(--surface2);
  border:1px solid var(--border);
  border-radius:100px;overflow:hidden;max-width:200px;
}
.tier-mini-fill{height:100%;border-radius:100px;transition:width .6s cubic-bezier(.4,0,.2,1);}
.tier-prog-text{font-size:11px;font-weight:700;color:var(--muted);}
.tier-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.tier-status-pill{
  font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 10px;border-radius:100px;
}
.tier-status-pill.complete{background:rgba(42,122,75,.12);color:var(--green);}
.tier-status-pill.locked{background:var(--surface2);color:var(--muted);border:1px solid var(--border);}
.tier-status-pill.active{background:var(--accent-dim);color:var(--accent);}
.tier-chevron{
  font-size:11px;color:var(--muted);transition:transform .22s;
}
.tier-section.expanded .tier-chevron{transform:rotate(180deg);}

/* ── Lock banner ── */
.tier-lock-banner{
  display:none;
  align-items:center;gap:10px;
  padding:12px 20px;
  background:var(--surface2);
  border-bottom:1px solid var(--border);
  font-size:13px;color:var(--muted);
}
.tier-section.locked .tier-lock-banner{display:flex;}

/* ── Reward strip — ALWAYS VISIBLE below header ── */
.tier-reward-strip{
  display:flex;align-items:stretch;
  border-bottom:1px solid var(--border);
  background:var(--surface);
}
.trs-accent-bar{
  width:4px;flex-shrink:0;
}
.trs-label-col{
  padding:13px 16px;
  background:var(--surface2);
  border-right:1px solid var(--border);
  flex-shrink:0;
  min-width:110px;
  display:flex;flex-direction:column;justify-content:center;
}
.trs-label{
  font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:3px;
}
.trs-tier-name{font-size:12px;font-weight:800;}
.trs-body{
  display:flex;align-items:center;gap:12px;
  padding:13px 16px;flex:1;
}
.trs-icon{font-size:22px;flex-shrink:0;line-height:1;}
.trs-text{flex:1;}
.trs-reward{font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-.2px;line-height:1.2;}
.trs-desc{font-size:11px;color:var(--muted);margin-top:2px;}
.trs-status{
  flex-shrink:0;
  font-size:11px;font-weight:700;
  padding:5px 12px;border-radius:100px;
  letter-spacing:.03em;white-space:nowrap;
}
.trs-status.earned{
  background:rgba(42,122,75,.1);
  color:var(--green);
  border:1px solid rgba(42,122,75,.2);
}
.trs-status.pending{
  background:var(--surface2);
  color:var(--muted);
  border:1px solid var(--border);
}
.trs-status.locked-status{
  background:var(--surface2);
  color:var(--muted);
  border:1px solid var(--border);
  opacity:.5;
}

/* ── Tier body ── */
.tier-body{
  display:none;
  padding:0 20px 20px;
}
.tier-section.expanded .tier-body{display:flex;flex-direction:column;}

/* ── Badge grid ── */
.badge-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  margin-top:4px;
}
@media(max-width:700px){.badge-grid{grid-template-columns:repeat(4,1fr);}}
@media(max-width:480px){.badge-grid{grid-template-columns:repeat(3,1fr);}}

.badge-cell{
  background:var(--surface2);
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  padding:14px 8px 12px;
  text-align:center;
  cursor:default;
  transition:all .18s;
  display:flex;flex-direction:column;align-items:center;
  position:relative;
}
.badge-cell.unlocked{
  background:var(--accent-dim);
  border-color:rgba(200,64,26,.3);
}
.badge-cell.unlocked:hover{
  transform:translateY(-3px);
  border-color:var(--accent);
  box-shadow:0 6px 20px rgba(200,64,26,.15);
}
.badge-cell.locked-badge{
  opacity:.35;
  filter:grayscale(.6);
}
/* Locked by tier – dimmer still */
.tier-section.locked .badge-cell{
  opacity:.2;filter:grayscale(1);pointer-events:none;
}
.badge-icon{font-size:28px;line-height:1;margin-bottom:7px;}
.badge-name{font-size:11px;font-weight:700;letter-spacing:-.1px;line-height:1.2;color:var(--ink);}
.badge-req{font-size:10px;color:var(--muted);line-height:1.3;margin-top:3px;}
.badge-check{
  position:absolute;top:6px;right:6px;
  width:16px;height:16px;border-radius:50%;
  background:var(--green);color:#fff;
  font-size:8px;font-weight:800;
  display:none;align-items:center;justify-content:center;
}
.badge-cell.unlocked .badge-check{display:flex;}

/* ══ LEGEND SECTION ═════════════════════════════════════════════════ */
.legend-section{
  margin-bottom:28px;
  background:linear-gradient(135deg,var(--surface),var(--surface2));
  border:2px solid var(--gold);
  border-radius:var(--radius-xl);
  padding:24px;
  position:relative;
  overflow:hidden;
}
.legend-section::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at top right, rgba(184,134,11,.1), transparent 60%);
  pointer-events:none;
}
.legend-header{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.legend-icon{font-size:36px;}
.legend-title{font-size:20px;font-weight:900;letter-spacing:-.4px;color:var(--gold);}
.legend-sub{font-size:13px;color:var(--ink2);margin-top:3px;}
.legend-reward{
  display:flex;align-items:center;gap:12px;
  background:rgba(184,134,11,.08);
  border:1px solid rgba(184,134,11,.25);
  border-radius:var(--radius);
  padding:14px 16px;
}
.legend-reward-items{display:flex;flex-wrap:wrap;gap:8px;flex:1;}
.legend-badge-item{
  display:flex;align-items:center;gap:5px;
  background:rgba(184,134,11,.12);
  border:1px solid rgba(184,134,11,.2);
  border-radius:100px;
  padding:4px 10px;
  font-size:12px;font-weight:700;color:var(--gold);
}
.legend-progress{
  margin-top:14px;
}
.legend-prog-text{
  font-size:12px;color:var(--muted);margin-bottom:6px;
  display:flex;justify-content:space-between;
}
.legend-track{
  background:var(--surface2);border:1px solid var(--border);
  height:8px;border-radius:100px;overflow:hidden;
}
.legend-fill{
  height:100%;border-radius:100px;
  background:linear-gradient(90deg,var(--gold),#f5c518);
  transition:width .8s cubic-bezier(.4,0,.2,1);
}
.legend-status{
  margin-top:10px;font-size:12px;font-weight:700;
  display:flex;align-items:center;gap:6px;
}
.legend-status.earned{color:var(--gold);}
.legend-status.pending{color:var(--muted);}

/* ══ GUEST BANNER ═══════════════════════════════════════════════════ */
.guest-banner{
  display:none;
  align-items:center;gap:14px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:18px 20px;
  margin-bottom:28px;
}
.guest-banner.show{display:flex;}
.gb-icon{font-size:28px;flex-shrink:0;}
.gb-body{flex:1;}
.gb-title{font-size:14px;font-weight:700;margin-bottom:2px;}
.gb-sub{font-size:12px;color:var(--muted);}
.gb-btn{
  background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);
  padding:9px 18px;font-size:13px;font-weight:700;cursor:pointer;
  white-space:nowrap;flex-shrink:0;transition:all .15s;
  text-decoration:none;display:inline-block;
}
.gb-btn:hover{background:#a8320f;}

/* ══ TOAST ══════════════════════════════════════════════════════════ */
.toast-wrap{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:6px;z-index:1000;pointer-events:none;}
.toast{
  background:var(--surface);color:var(--ink);
  border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--radius);
  padding:12px 16px;font-size:13px;font-weight:600;
  animation:toastIn .28s cubic-bezier(.34,1.4,.64,1) both;
  max-width:300px;box-shadow:0 8px 32px rgba(0,0,0,.4);
  pointer-events:none;
}
.toast.green{border-left-color:var(--green);}
.toast.gold{border-left-color:var(--gold);}
@keyframes toastIn{from{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes toastOut{from{opacity:1}to{transform:translateX(60px);opacity:0}}

/* ━━ APP SHELL + SIDEBAR (shared layout) ━━━━━━━━━━━━━━━━━━━━━━━━━ */


.sidebar-logo{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;letter-spacing:-.5px;color:var(--ink);text-decoration:none;padding:6px 8px 18px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.sidebar-logo img{width:28px;height:28px;border-radius:8px;object-fit:cover;flex-shrink:0;}
.sidebar-logo span{color:var(--accent);}
.sidebar-nav-links{display:flex;flex-direction:column;gap:2px;flex:1;}
.sidebar-sec{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:6px 10px 4px;display:flex;flex-direction:column;}
.sl{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:600;color:var(--ink2);background:none;border:none;cursor:pointer;text-decoration:none;transition:background .14s,color .14s;text-align:left;}
.sl:hover{background:var(--surface2);color:var(--ink);}
.sl.active{background:var(--accent-dim);color:var(--accent);}
.sl-i{font-size:15px;width:20px;text-align:center;flex-shrink:0;}
.sidebar-foot{border-top:1px solid var(--border);padding-top:12px;margin-top:8px;}
.sb-user-name{font-size:12px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sb-user-tier{font-size:10px;color:var(--muted);}
.sb-dark{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);width:28px;height:28px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .2s;color:var(--ink2);margin-left:auto;}
.app-main{flex:1;min-width:0;overflow-y:auto;height:100vh;background:var(--bg);;display:flex;flex-direction:column;}
@media(max-width:768px){.app-sidebar{display:none;}}
/* Mobile nav */
#top-nav{background:var(--bg);border-bottom:1px solid var(--border);padding:0 16px;height:52px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;backdrop-filter:blur(12px);  isolation:isolate;
}
#top-nav .nav-logo{font-size:16px;font-weight:800;letter-spacing:-.5px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px;}
#top-nav .nav-logo span{color:var(--accent);}
#top-nav .nav-dark-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;}
@media(min-width:769px){#top-nav{display:none!important;}}
/* Mobile bottom tabs */
.bottom-tabs{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--surface);border-top:1px solid var(--border);backdrop-filter:blur(12px);}
@media(max-width:768px){.bottom-tabs{display:flex;}}
@media(min-width:769px){.bottom-tabs{display:none!important;}}
.bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;font-family:inherit;font-size:9.5px;font-weight:700;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:none;transition:color .15s;}
.bottom-tab.active{color:var(--accent);}
.bt-icon{font-size:18px;line-height:1;}


/* ━━ APP FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */



.app-footer-logo span{color:var(--accent);}


.app-footer-links a:hover{color:var(--ink);}


/* ━━ AD PLACEHOLDER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.ad-placeholder {
  width: 100%;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  border: 2px dashed var(--border2, #c8c0b4);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: var(--muted, #9a928c);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-sizing: border-box;
}
.ad-placeholder-icon { font-size: 18px; opacity: .4; }

/* ━━ AD SLOT WRAPPER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.ad-slot-wrap { width: 100%; }
.ad-slot-wrap .adsbygoogle { display: none !important; height: 0 !important;
  min-height: 0 !important; margin: 0 !important; padding: 0 !important; }
.ad-slot-wrap .ad-placeholder { display: flex; }
.ad-slot-wrap.live .adsbygoogle { display: block !important; height: auto !important;
  min-height: 90px !important; }
.ad-slot-wrap.live .ad-placeholder { display: none !important; }

/* ════════════════════════════════════════════════════════════════
   SIDEBAR — collapsible icon rail with Material Icons
   ════════════════════════════════════════════════════════════════ */
.app-shell{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:row;overflow:hidden;}
.app-sidebar{width:56px;flex-shrink:0;height:100vh;position:relative;z-index: 100;overflow:visible;}
.app-sidebar-inner{
  position:absolute;top:0;left:0;bottom:0;width:56px;
  background:var(--surface);border-right:1px solid var(--border);
  display:flex;flex-direction:column;padding:12px 8px;overflow:hidden;
  transition:width .22s cubic-bezier(.4,0,.2,1);z-index: 100;pointer-events:auto;
}
.app-content{flex:1;min-width:0;overflow-y:auto;height:100vh;background:var(--bg);transition:filter .22s;}
.sidebar-logo{
  display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;
  letter-spacing:-.5px;color:var(--ink);text-decoration:none;
  padding:4px 4px 14px;border-bottom:1px solid var(--border);
  margin-bottom:8px;overflow:hidden;white-space:nowrap;
}
.sidebar-logo img{flex-shrink:0;width:28px;height:28px;border-radius:6px;}
.sidebar-logo-text{opacity:0;width:0;overflow:hidden;white-space:nowrap;transition:opacity .15s,width .15s;pointer-events:none;}
.app-sidebar.sb-open .sidebar-logo-text{opacity:1;width:auto;pointer-events:auto;}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;}
.sidebar-section-label{
  font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);padding:10px 10px 4px;opacity:0;width:0;overflow:hidden;
  white-space:nowrap;transition:opacity .15s,width .15s;pointer-events:none;
}
.app-sidebar.sb-open .sidebar-section-label{opacity:1;width:auto;pointer-events:auto;}
.sidebar-link{
  display:flex;align-items:center;gap:10px;padding:8px;
  border-radius:var(--radius-sm,6px);font-family:inherit;font-size:13px;font-weight:500;
  color:var(--ink2);background:none;border:none;cursor:pointer;
  text-decoration:none;transition:background .14s,color .14s;
  text-align:left;white-space:nowrap;overflow:hidden;
}
.sidebar-link:hover{background:var(--surface2);color:var(--ink);}
.sidebar-link.active{background:var(--accent-dim,rgba(200,64,26,.1));color:var(--accent);}
.sl-icon{width:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.sl-icon .material-icons-round{font-size:20px;color:inherit;}
.sl-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:100px;min-width:18px;text-align:center;}
.sb-label{opacity:0;width:0;overflow:hidden;white-space:nowrap;transition:opacity .15s,width .15s;pointer-events:none;}
.app-sidebar.sb-open .sb-label{opacity:1;width:auto;pointer-events:auto;}
.sidebar-bottom{padding-top:8px;border-top:1px solid var(--border);margin-top:auto;}
.sidebar-user-info{flex:1;min-width:0;overflow:hidden;}
.sidebar-user-name{font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sidebar-user-tier{font-size:10px;color:var(--muted);text-transform:capitalize;}
.sidebar-dark-btn{background:none;border:none;cursor:pointer;font-size:16px;flex-shrink:0;padding:2px;}
.avatar-circle{border-radius:50%;background:var(--accent-dim,rgba(200,64,26,.1));color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0;}


@media(max-width:680px){
  .app-sidebar{display:none;}
  
}















.app-footer {
  background: var(--surface);
  border-top: 1px solid var(--border);
  padding: 32px 28px 28px;
  margin-top: 40px;
  width: 100%;
  box-sizing: border-box;
  flex-shrink: 0;
}
.app-footer-inner {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}
.app-footer-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  text-decoration: none;
}
.app-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  justify-content: center;
}
.app-footer-links a {
  font-size: 12px;
  color: var(--muted);
  text-decoration: none;
}
.app-footer-links a:hover { color: var(--ink2); }
.app-footer-copy {
  font-size: 11px;
  color: var(--muted);
}




.app-footer-logo img{width:18px;height:18px;border-radius:4px;}


.app-footer-links a:hover{color:var(--ink2);}


.app-footer{margin-top:0;
  background:var(--surface);
  border-top:1px solid var(--border);
  padding:28px 28px 24px;
  margin-top:40px;
  width:100%;
}
.app-footer-inner{
  max-width:900px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;
}
.app-footer-logo{
  display:flex;align-items:center;gap:6px;
  font-size:13px;font-weight:800;color:var(--ink);text-decoration:none;
}
.app-footer-logo img{width:18px;height:18px;border-radius:4px;}
.app-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;}
.app-footer-links a{font-size:11px;color:var(--muted);text-decoration:none;}
.app-footer-links a:hover{color:var(--ink2);}
.app-footer-copy{font-size:11px;color:var(--muted);}
