/* ==========================================================================
   UI UPGRADE LAYER — loaded last.
   Purpose: polish + responsiveness only. It reuses the website's EXISTING
   dark + emerald + blue tokens (--bg, --panel, --panel2, --line, --txt,
   --mut, --acc, --acc2) and neutralises the conflicting orange styling that
   came from rocket.css so the site keeps ONE visual identity.
   No new brand palette is introduced.
   ========================================================================== */

/* ---------------------------------------------------------------- 1. colours
   Re-point every rocket variable at the site's own tokens. */
:root{
  --rk-bg:var(--bg);
  --rk-panel:var(--panel);
  --rk-panel2:var(--panel2);
  --rk-line:var(--line);
  --rk-txt:var(--txt);
  --rk-mut:var(--mut);
  --rk-orange:var(--acc);          /* emerald instead of orange */
  --rk-orange2:var(--acc2);        /* blue instead of orange-light */
  --rk-green:var(--acc);
  --ui-tint:color-mix(in srgb, var(--acc) 14%, transparent);
  --ui-tint2:color-mix(in srgb, var(--acc2) 14%, transparent);
  --ui-shadow:0 18px 40px -22px rgba(0,0,0,.9);
  --ui-tap:44px;
}

body{background-color:var(--bg);color:var(--txt)}
body::before{
  background:
    linear-gradient(color-mix(in srgb,var(--acc) 5%,transparent) 1px,transparent 1px) 0 0/64px 64px,
    linear-gradient(90deg,color-mix(in srgb,var(--acc) 5%,transparent) 1px,transparent 1px) 0 0/64px 64px;
}
body::after{background:radial-gradient(closest-side,var(--ui-tint2),transparent 70%)}

.btn{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#04121c;
  box-shadow:0 10px 26px -14px color-mix(in srgb,var(--acc) 70%,transparent)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--txt);box-shadow:none}
.btn.bad{background:var(--bad);color:#fff}
.rk-hero h1 em{color:var(--acc);text-shadow:0 0 42px var(--ui-tint)}
.rk-eyebrow{color:var(--acc)}
.rk-feat .card:hover{border-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.rk-feat .card .ico{color:var(--acc);background:var(--panel2)}
.rk-code b{color:var(--acc)}
.rk-toggle button.on{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#04121c}
.rk-flow span.on{border-color:var(--acc);color:var(--acc);box-shadow:0 0 22px var(--ui-tint)}
.rk-steps li.on i{background:var(--acc);border-color:var(--acc);box-shadow:0 0 12px var(--ui-tint)}
.rk-spark i{background:linear-gradient(180deg,var(--acc),color-mix(in srgb,var(--acc) 15%,transparent))}
.rk-bot .av{background:linear-gradient(135deg,var(--acc),var(--acc2))}
.price:hover{border-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.price.pop{border-color:color-mix(in srgb,var(--acc) 45%,transparent);
  box-shadow:0 20px 60px -30px color-mix(in srgb,var(--acc) 40%,transparent)}
.price .pop-tag{display:none}          /* no "Most popular" badge anywhere */
.rk-final{background:radial-gradient(600px 220px at 50% 0%,var(--ui-tint),transparent),var(--panel)}
.scroll-progress{background:linear-gradient(90deg,var(--acc),var(--acc2));
  box-shadow:0 0 14px var(--ui-tint)}

/* ------------------------------------------------------- 2. page structure
   Sticky footer that never overlaps content, at any zoom level. */
html{min-height:100%}
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
body>.foot{margin-top:auto}
body>main,body>.layout,body>section,body>.wrap,body>article,body>.auth{width:100%}
.foot{margin-top:auto;border-top:1px solid var(--line)}

/* ------------------------------------------------------------- 3. header */
.topbar{gap:16px;min-height:64px}
.brand-chip{margin-left:9px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;color:var(--acc);
  background:var(--ui-tint);border:1px solid color-mix(in srgb,var(--acc) 32%,transparent)}

/* hover: colour/weight only — never an underline */
.topbar nav a,.foot a,.side a{text-decoration:none!important}
.topbar nav a:not(.btn):after{content:none!important;display:none!important}
.topbar nav a:not(.btn){
  padding:8px 12px;border-radius:10px;line-height:1.2;
  transition:color .16s ease,background .16s ease,font-weight .16s ease;
}
.topbar nav a:not(.btn):hover{color:var(--txt);background:rgba(255,255,255,.05)}
.topbar nav a:not(.btn).is-active,
.topbar nav a:not(.btn)[aria-current="page"]{
  font-weight:800;color:var(--txt);background:var(--ui-tint);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acc) 26%,transparent);
}
.app-nav{display:flex;align-items:center;gap:10px;margin-left:auto}
.app-switch{padding:8px 14px;border-radius:10px;font-size:14px;color:var(--mut);border:1px solid var(--line)}
.app-switch:hover{color:var(--txt);background:rgba(255,255,255,.05)}
.app-switch.is-active{color:var(--txt);font-weight:700;background:var(--ui-tint);
  border-color:color-mix(in srgb,var(--acc) 30%,transparent)}
.topbar-app{justify-content:flex-start}
@media(min-width:821px){
  .topbar-app{justify-content:flex-start;gap:14px}
  .topbar-app .brand{position:static;transform:none}
}

/* hamburger */
.ui-burger{display:none;width:var(--ui-tap);height:var(--ui-tap);flex:0 0 auto;border-radius:12px;
  background:var(--panel);border:1px solid var(--line);cursor:pointer;padding:0;
  align-items:center;justify-content:center;flex-direction:column;gap:5px}
.ui-burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--txt);transition:.2s}
.ui-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.ui-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.ui-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.ui-scrim{position:fixed;inset:0;background:rgba(3,6,12,.62);backdrop-filter:blur(2px);z-index:38;border:0}
.ui-scrim[hidden]{display:none}

/* --------------------------------------------------- 4. panel side nav */
.layout{align-items:start}
.panel-nav .panel-nav-inner{position:sticky;top:86px;display:grid;gap:18px;
  background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 12px;
  box-shadow:var(--ui-shadow)}
.panel-nav-head{display:none;align-items:center;justify-content:space-between;
  font-weight:700;font-size:14px;padding:2px 4px 10px;border-bottom:1px solid var(--line)}
.panel-nav-close{background:transparent;border:0;color:var(--mut);font-size:26px;line-height:1;cursor:pointer;width:auto}
.nav-group{display:grid;gap:2px}
.nav-group-title{margin:0 0 6px;padding:0 10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.panel-nav ul{list-style:none;margin:0;padding:0;position:static;display:grid;gap:2px}
.panel-nav li a{display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 11px;border-radius:10px;
  color:var(--mut);font-size:14px;border:1px solid transparent;transition:background .16s,color .16s,border-color .16s}
.panel-nav li a .nav-ico{width:20px;text-align:center;font-size:13px;opacity:.85;flex:0 0 20px}
.panel-nav li a:hover{background:rgba(255,255,255,.05);color:var(--txt)}
.panel-nav li a.on{color:var(--txt);font-weight:700;
  background:linear-gradient(135deg,var(--ui-tint),var(--ui-tint2));
  border-color:color-mix(in srgb,var(--acc) 26%,transparent)}

/* ------------------------------------------------ 5. content components */
main h2{letter-spacing:-.2px}
.card{border-radius:16px}
.card h3{font-weight:700}
.stat{line-height:1.15}
.tag{border:1px solid color-mix(in srgb,currentColor 26%,transparent);letter-spacing:.02em}
table{border-collapse:separate;border-spacing:0}
.panel-switch{display:none}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--line);border-radius:14px}
tbody tr:hover td{background:rgba(255,255,255,.03)}
.btn,button,.side li a,nav a{-webkit-tap-highlight-color:transparent}
.empty-state{border:1px dashed var(--line);border-radius:14px;color:var(--mut);background:rgba(255,255,255,.02)}

/* user dashboard quick actions */
.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:0 0 20px}
.qa-card{display:flex;align-items:center;gap:12px;min-height:var(--ui-tap);padding:16px;
  border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--panel2),var(--panel));
  color:var(--txt);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.qa-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--acc) 40%,transparent);
  box-shadow:var(--ui-shadow)}
.qa-ico{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;font-size:17px;
  background:linear-gradient(135deg,var(--ui-tint),var(--ui-tint2));color:var(--acc);
  border:1px solid color-mix(in srgb,var(--acc) 24%,transparent)}
.qa-card b{display:block;font-size:14.5px}
.qa-card span{display:block;color:var(--mut);font-size:12.5px}

/* ------------------------------------------------- 6. homepage video */
.ui-video-head{text-align:center;margin-bottom:22px}
.ui-video-head .lead{max-width:640px;margin:0 auto}
.ui-video-frame{position:relative;width:100%;max-width:960px;margin:0 auto;aspect-ratio:16/9;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#000;
  box-shadow:0 30px 70px -40px #000, 0 0 0 1px color-mix(in srgb,var(--acc) 12%,transparent)}
.ui-video-frame iframe,.ui-video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* --------------------------------------------------- 7. extension page */
.ext-hero{text-align:center;padding:56px 0 10px}
.ext-hero h1{font-size:clamp(28px,4.6vw,46px);margin:0 0 12px}
.ext-hero p{color:var(--mut);max-width:660px;margin:0 auto 22px}
.ext-steps{counter-reset:step;display:grid;gap:12px}
.ext-steps li{list-style:none;display:flex;gap:14px;align-items:flex-start;padding:16px;
  border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.ext-steps li:before{counter-increment:step;content:counter(step);
  width:28px;height:28px;flex:0 0 28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;
  background:var(--ui-tint);color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 30%,transparent)}

/* ------------------------------------------------------- 8. footer grid */
.foot{padding:34px 0 26px}
.foot .foot-grid{display:grid;grid-template-columns:1.1fr 2fr;gap:30px;align-items:start}
.foot-name{font-weight:800;color:var(--txt);font-size:16px;margin:0 0 6px}
/* Exactly three clean link columns on desktop; the brand block sits beside them. */
.foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.foot-col h4{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--txt)}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-col a{color:var(--mut);display:inline-block;padding:2px 0}
.foot-col a:hover{color:var(--acc)}

/* --------------------------------------------------------- 9. responsive */
@media(max-width:980px){
  .foot .foot-grid{grid-template-columns:1fr}
  /* tablet: two balanced link columns, no overlap */
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  /* mobile: everything stacks in a clean order */
  .foot-cols{grid-template-columns:1fr}
}
@media(max-width:820px){
  .ui-burger{display:inline-flex}
  .topbar{position:sticky;top:0;align-items:center;padding:10px 14px;flex-wrap:nowrap}
  .topbar .brand{position:static!important;transform:none!important;flex:1 1 auto;min-width:0;font-size:16px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* public nav becomes a slide-in drawer — never wraps into rows */
  .topbar nav#siteNav{
    position:fixed;top:0;right:0;bottom:0;width:min(84vw,320px);z-index:40;
    display:flex;flex-direction:column;align-items:stretch;gap:6px;
    background:var(--panel);border-left:1px solid var(--line);padding:74px 16px 26px;
    overflow-y:auto;transform:translateX(100%);opacity:0;visibility:hidden;
    transition:transform .26s ease,opacity .2s ease,visibility .26s;
  }
  body.drawer-nav .topbar nav#siteNav{transform:none;opacity:1;visibility:visible}
  .topbar nav#siteNav a{min-height:var(--ui-tap);display:flex;align-items:center;font-size:15px}
  .topbar nav#siteNav .btn{justify-content:center;text-align:center;width:100%}
  .topbar nav#siteNav .tg-btn{width:100%;justify-content:flex-start;padding:10px 12px}
  .topbar nav#siteNav .tg-btn span{display:inline}

  .app-nav{gap:6px;flex-wrap:nowrap;margin-left:auto}
  .app-nav .app-switch{display:none}
  .app-nav .tg-btn span{display:none}
  .app-nav .tg-btn{padding:8px 10px}
  .app-nav .btn.ghost.sm{padding:8px 10px;font-size:13px}
  .panel-switch{display:flex;gap:6px;margin:0 0 12px}
  .panel-switch .app-switch{flex:1 1 0;justify-content:center;text-align:center;font-size:13px;padding:9px 8px}

  /* panel sidebars become drawers */
  .layout{grid-template-columns:1fr;padding:16px 14px}
  .panel-nav{position:fixed;top:0;left:0;bottom:0;width:min(86vw,300px);z-index:40;overflow-y:auto;
    background:var(--panel);border-right:1px solid var(--line);
    transform:translateX(-100%);opacity:0;visibility:hidden;
    transition:transform .26s ease,opacity .2s ease,visibility .26s}
  body.drawer-panel .panel-nav{transform:none;opacity:1;visibility:visible}
  .panel-nav .panel-nav-inner{position:static;border:0;border-radius:0;box-shadow:none;
    background:transparent;padding:16px 14px 26px}
  .panel-nav-head{display:flex}

  .quick-actions{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .ui-video-frame{border-radius:14px}
  .grid.g3{grid-template-columns:minmax(0,1fr)}
  .grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .foot-cols{grid-template-columns:1fr 1fr}
  .grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-actions{grid-template-columns:1fr 1fr}
  .qa-card{flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
  .card{padding:16px}
  .rk-hero{padding:44px 0 20px}
  th,td{padding:10px 8px}
  /* full-screen dialogs on phones */
  dialog,.modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}
}

/* touch targets */
@media(pointer:coarse){
  .btn,button,input[type=submit],.side li a,.topbar nav a,.foot-col a{min-height:var(--ui-tap)}
  .btn,button{display:inline-flex;align-items:center;justify-content:center}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}


/* Inline icon defaults (nav + quick actions). */
.ui-ico{display:block;flex:0 0 auto}
.nav-ico .ui-ico,.qa-ico .ui-ico{opacity:.95}
