.se-app-root { min-height: 100dvh; background: var(--se-bg); }
.se-app-shell { min-height: 100dvh; display: flex; flex-direction: column; }
.se-main { width: 100%; max-width: var(--se-page-max); margin: 0 auto; padding: 18px 14px calc(var(--se-footer-height) + 24px); flex: 1; }
.se-page { animation: se-fade-in 140ms ease-out; }
.se-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 10px 0 18px; }
.se-page-title { margin: 0; font-family: var(--se-title); font-size: clamp(30px, 7vw, 44px); line-height: .95; letter-spacing: -.03em; }
.se-page-subtitle { margin: 8px 0 0; color: var(--se-muted); font-size: 14px; }
.se-section { margin: 26px 0 34px; }
.se-kicker { color: var(--se-gold); text-transform: uppercase; letter-spacing: .18em; font-size: 13px; font-weight: 1000; margin: 0 0 2px; }
.se-section-title { margin: 0; font-size: clamp(26px, 6vw, 44px); line-height: 1; letter-spacing: -.045em; }
.se-section-subtitle { color: var(--se-muted); margin: 8px 0 18px; font-size: clamp(15px, 4vw, 22px); }
.se-footer { position: fixed; z-index: 100; left: 0; right: 0; bottom: 0; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(5,5,5,.88); backdrop-filter: blur(18px); border-top: 1px solid var(--se-border-soft); }
.se-footer-nav { width: min(var(--se-page-max), calc(100vw - 20px)); margin: 0 auto; min-height: 54px; border: 1px solid var(--se-border-soft); background: #0b0b0b; border-radius: 22px; display: grid; grid-template-columns: repeat(5, 1fr); overflow: hidden; }
.se-tab { border: 0; background: transparent; color: var(--se-muted-2); min-width: 0; display: grid; place-items: center; gap: 3px; padding: 8px 4px; text-transform: uppercase; font-size: 9px; font-weight: 1000; letter-spacing: .08em; }
.se-tab svg { width: 19px; height: 19px; stroke-width: 2.2; }
.se-tab[aria-current="page"] { color: var(--se-orange); }
.se-tab[aria-current="page"] span { color: var(--se-text); }
.se-toast { position: fixed; left: 50%; bottom: calc(var(--se-footer-height) + 18px); transform: translateX(-50%); z-index: 140; background: #161616; border: 1px solid var(--se-border); border-radius: 999px; padding: 11px 16px; box-shadow: var(--se-shadow); font-size: 13px; font-weight: 900; opacity: 0; pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
.se-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(-5px); }
@keyframes se-fade-in { from { opacity: .55; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (min-width: 760px) { .se-main { padding-inline: 34px; } .se-tab { font-size: 10px; } }

/* v9.5 boot recovery: visible fallback instead of a black screen if old local state breaks rendering. */
.se-boot-recovery {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px;
  color: var(--se-text, #fff);
  background: var(--se-bg, #050505);
}
.se-boot-recovery .se-page {
  width: min(440px, 100%);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 28px;
  background: rgba(255,255,255,.06);
  padding: 24px;
}


/* v9.5 no-black-screen fallback visible before JS boot. */
.se-boot-fallback { min-height: 100dvh; }
.se-boot-fallback-active .se-boot-fallback { outline: 1px solid rgba(255,122,26,.45); }
