
/*=============================================================
  Legion Registry — Complete Stylesheet
  npm-dark inspired, purple accent, full component library
=============================================================*/

/* ── Reset + Base ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg0:#0a0a0f;
  --bg1:#0f0f17;
  --bg2:#141420;
  --bg3:#1a1a2e;
  --bg4:#222235;
  --border:#2a2a40;
  --border2:#363650;
  --border3:#454560;
  --text:#e2e2f0;
  --text2:#a8a8c0;
  --text3:#6a6a88;
  --text4:#44445a;
  --accent:#7c3aed;
  --accent2:#9f67ff;
  --accent3:#c084fc;
  --accent-bg:rgba(124,58,237,.12);
  --accent-bg2:rgba(124,58,237,.2);
  --green:#10b981;
  --green-bg:rgba(16,185,129,.12);
  --red:#ef4444;
  --red-bg:rgba(239,68,68,.12);
  --yellow:#f59e0b;
  --blue:#3b82f6;
  --blue-bg:rgba(59,130,246,.12);
  --radius:8px;
  --radius2:12px;
  --radius3:16px;
  --shadow:0 2px 12px rgba(0,0,0,.35);
  --shadow2:0 4px 32px rgba(0,0,0,.5);
  --shadow3:0 8px 64px rgba(0,0,0,.6);
  --font:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono','Fira Code',ui-monospace,monospace;
  --nav-h:60px;
  --transition:0.14s ease;
}
html{font-size:16px;scroll-behavior:smooth;scrollbar-color:var(--border) var(--bg1)}
body{background:var(--bg0);color:var(--text);font-family:var(--font);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:var(--accent2);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--text)}
img{max-width:100%;height:auto}
button{cursor:pointer;font-family:var(--font)}
h1,h2,h3,h4{line-height:1.2;color:var(--text)}
code{font-family:var(--mono);font-size:.875em}
strong{font-weight:600}

/* ── Nav ────────────────────────────────────────────────────── */
.topnav{
  position:sticky;top:0;z-index:200;
  background:rgba(10,10,15,.85);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  height:var(--nav-h);
}
.nav-inner{
  max-width:1280px;margin:0 auto;padding:0 1.5rem;
  display:flex;align-items:center;gap:1rem;height:100%;
}
.nav-logo{display:flex;align-items:center;gap:.5rem;flex-shrink:0;color:var(--text);font-weight:700;font-size:1.05rem}
.nav-logo svg{flex-shrink:0}
.nav-logo:hover{color:var(--text)}
.nav-logo-text{color:var(--text)}
.nav-logo-accent{color:var(--accent2)}
.nav-search{
  flex:0 0 220px;display:flex;align-items:center;gap:.5rem;
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--radius);padding:.375rem .75rem;
  transition:border-color var(--transition);
}
.nav-search:focus-within{border-color:var(--accent)}
.nav-search svg{color:var(--text3);flex-shrink:0}
.nav-search-input{
  background:none;border:none;outline:none;color:var(--text);
  font-size:.875rem;width:100%;font-family:var(--font);
}
.nav-search-input::placeholder{color:var(--text3)}
.nav-links{display:flex;align-items:center;gap:.125rem;margin-left:.5rem}
.nav-links a{
  color:var(--text2);padding:.375rem .75rem;border-radius:6px;
  font-size:.875rem;font-weight:500;transition:all var(--transition);
}
.nav-links a:hover{color:var(--text);background:var(--bg3)}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.btn-nav-ghost{
  color:var(--text2);padding:.4rem .875rem;border-radius:6px;
  font-size:.875rem;font-weight:500;border:1px solid transparent;
  transition:all var(--transition);background:none;cursor:pointer;
}
.btn-nav-ghost:hover{color:var(--text);border-color:var(--border2)}
.btn-nav-primary{
  background:var(--accent);color:#fff;padding:.4rem .875rem;
  border-radius:6px;font-size:.875rem;font-weight:600;
  border:none;transition:all var(--transition);
}
.btn-nav-primary:hover{background:var(--accent2);color:#fff}

/* ── Buttons ────────────────────────────────────────────────── */
.btn-primary-lg{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--accent);color:#fff;padding:.75rem 1.75rem;
  border-radius:var(--radius);font-size:1rem;font-weight:600;
  border:none;transition:all var(--transition);cursor:pointer;
}
.btn-primary-lg:hover{background:var(--accent2);color:#fff;transform:translateY(-1px);box-shadow:0 4px 20px rgba(124,58,237,.4)}
.btn-outline-lg{
  display:inline-flex;align-items:center;gap:.5rem;
  background:transparent;color:var(--text);padding:.75rem 1.75rem;
  border-radius:var(--radius);font-size:1rem;font-weight:600;
  border:1px solid var(--border2);transition:all var(--transition);cursor:pointer;
}
.btn-outline-lg:hover{border-color:var(--accent);color:var(--accent2)}
.btn-primary-sm{
  display:inline-flex;align-items:center;gap:.375rem;
  background:var(--accent);color:#fff;padding:.45rem 1rem;
  border-radius:6px;font-size:.875rem;font-weight:600;
  border:none;transition:all var(--transition);cursor:pointer;
}
.btn-primary-sm:hover{background:var(--accent2);color:#fff}
.btn-primary-full{
  width:100%;display:flex;justify-content:center;align-items:center;
  background:var(--accent);color:#fff;padding:.7rem 1.5rem;
  border-radius:var(--radius);font-size:.95rem;font-weight:600;
  border:none;transition:all var(--transition);cursor:pointer;margin-top:.5rem;
}
.btn-primary-full:hover{background:var(--accent2)}
.btn-primary-full:disabled{opacity:.55;cursor:not-allowed}
.btn-sm{
  display:inline-flex;align-items:center;gap:.3rem;
  background:var(--bg4);color:var(--text2);padding:.375rem .75rem;
  border-radius:6px;font-size:.8rem;font-weight:500;
  border:1px solid var(--border2);transition:all var(--transition);cursor:pointer;
}
.btn-sm:hover{border-color:var(--accent);color:var(--accent2)}
.btn-danger-sm{
  display:inline-flex;align-items:center;
  background:transparent;color:var(--red);padding:.375rem .75rem;
  border-radius:6px;font-size:.8rem;font-weight:500;
  border:1px solid var(--red);transition:all var(--transition);cursor:pointer;
}
.btn-danger-sm:hover{background:var(--red);color:#fff}

/* ── Alerts ─────────────────────────────────────────────────── */
.alert{border-radius:var(--radius);padding:.875rem 1rem;font-size:.875rem;line-height:1.5;display:none}
.alert:not(:empty){display:block}
.alert-error{background:var(--red-bg);border:1px solid rgba(239,68,68,.3);color:#fca5a5}
.alert-success{background:var(--green-bg);border:1px solid rgba(16,185,129,.3);color:#6ee7b7}
.alert-info{background:var(--blue-bg);border:1px solid rgba(59,130,246,.3);color:#93c5fd}

/* ── Forms ──────────────────────────────────────────────────── */
.form-group{margin-bottom:1.125rem}
.form-label{display:block;font-size:.85rem;font-weight:500;color:var(--text2);margin-bottom:.4rem}
.form-input{
  width:100%;background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--radius);padding:.6rem .875rem;color:var(--text);
  font-size:.9rem;font-family:var(--font);outline:none;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.form-input::placeholder{color:var(--text4)}
.form-textarea{resize:vertical;min-height:120px;font-family:var(--mono);font-size:.85rem;line-height:1.5}
.form-hint{font-size:.775rem;color:var(--text3);margin-top:.325rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}

/* Password strength */
.pw-strength{height:3px;border-radius:2px;margin-top:.5rem;background:var(--border);overflow:hidden}
.pw-strength::after{content:'';display:block;height:100%;width:var(--pw-w,0%);background:var(--pw-c,var(--red));border-radius:2px;transition:all .3s ease}

/* ── Cards ──────────────────────────────────────────────────── */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius2);padding:1.25rem}

/* ── Hero ───────────────────────────────────────────────────── */
.hero{
  position:relative;overflow:hidden;
  padding:5.5rem 1.5rem 4rem;text-align:center;
  border-bottom:1px solid var(--border);
}
.hero-glow{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(124,58,237,.22) 0%,transparent 70%);
}
.hero-inner{position:relative;max-width:700px;margin:0 auto}
.hero-eyebrow{margin-bottom:1.25rem}
.hero-badge{
  display:inline-flex;align-items:center;gap:.4rem;
  background:var(--accent-bg);border:1px solid rgba(124,58,237,.35);
  border-radius:100px;padding:.3rem .875rem;font-size:.8rem;color:var(--accent3);font-weight:500;
}
.hero-title{font-size:clamp(2.2rem,6vw,3.5rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.1rem;color:var(--text)}
.hero-title-accent{
  background:linear-gradient(135deg,#c084fc,#7c3aed,#3b82f6);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-sub{font-size:1.1rem;color:var(--text2);margin-bottom:2rem;line-height:1.65}
.hero-search-form{max-width:560px;margin:0 auto 1.5rem}
.hero-search-wrap{
  display:flex;align-items:center;gap:0;
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:10px;overflow:hidden;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.hero-search-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.hero-search-icon{margin:0 .75rem;color:var(--text3);flex-shrink:0}
.hero-search-input{
  flex:1;background:none;border:none;outline:none;color:var(--text);
  font-size:1rem;padding:.875rem 0;font-family:var(--font);
}
.hero-search-input::placeholder{color:var(--text3)}
.hero-search-btn{
  background:var(--accent);color:#fff;padding:0 1.25rem;height:52px;
  border:none;font-size:.9rem;font-weight:600;font-family:var(--font);
  cursor:pointer;transition:background var(--transition);flex-shrink:0;
}
.hero-search-btn:hover{background:var(--accent2)}
.hero-install-row{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin-bottom:2.5rem;
}
.hero-install{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:6px;padding:.4rem .875rem;font-size:.875rem;color:var(--accent3);
  font-family:var(--mono);
}
.hero-copy-btn{
  background:var(--bg3);border:1px solid var(--border);border-radius:6px;
  padding:.4rem .5rem;color:var(--text3);transition:all var(--transition);
  display:flex;align-items:center;
}
.hero-copy-btn:hover{border-color:var(--accent);color:var(--accent2)}
.hero-stats{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap}
.hero-stat{text-align:center}
.hero-stat-num{display:block;font-size:1.75rem;font-weight:700;color:var(--text);line-height:1}
.hero-stat-label{font-size:.78rem;color:var(--text3);margin-top:.25rem;display:block}
.hero-stat-div{width:1px;height:36px;background:var(--border)}

/* ── Home content ───────────────────────────────────────────── */
.home-content{max-width:1280px;margin:0 auto;padding:0 1.5rem}
.home-section{padding:3rem 0 0}
.section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.section-title{font-size:1.25rem;font-weight:700}
.section-link{font-size:.875rem;color:var(--accent2)}
.section-link:hover{color:var(--text)}

/* ── Package grid ───────────────────────────────────────────── */
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:900px){.pkg-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pkg-grid{grid-template-columns:1fr}}
.pkg-card{
  display:flex;flex-direction:column;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius2);padding:1.125rem;
  text-decoration:none;color:inherit;
  transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);
  height:100%;
}
.pkg-card:hover{border-color:var(--border2);box-shadow:var(--shadow);transform:translateY(-2px);color:inherit}
.pkg-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.pkg-card-icon{font-size:1.5rem}
.pkg-card-ver{
  font-size:.72rem;font-weight:600;color:var(--accent2);
  background:var(--accent-bg);border:1px solid rgba(124,58,237,.25);
  border-radius:4px;padding:.1rem .4rem;font-family:var(--mono);
}
.pkg-card-name{font-size:.975rem;font-weight:700;color:var(--accent2);margin-bottom:.375rem}
.pkg-card-desc{font-size:.825rem;color:var(--text2);line-height:1.5;flex:1;margin-bottom:.875rem}
.pkg-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border)}
.pkg-card-author{font-size:.75rem;color:var(--text3)}
.pkg-card-dl{font-size:.75rem;color:var(--text3)}

/* ── CTA section ────────────────────────────────────────────── */
.cta-section{padding:3rem 0 4rem}
.cta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
@media(max-width:900px){.cta-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cta-grid{grid-template-columns:1fr}}
.cta-card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius2);padding:1.5rem;
}
.cta-card-icon{font-size:2rem;margin-bottom:.875rem}
.cta-card h3{font-size:.975rem;font-weight:700;margin-bottom:.5rem}
.cta-card p{font-size:.825rem;color:var(--text2);margin-bottom:.75rem}
.code-block{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--radius);padding:.6rem .875rem;font-size:.8rem;
  font-family:var(--mono);color:var(--accent3);overflow-x:auto;word-break:break-all;
}
.code-block code{color:inherit;font-size:inherit}

/* ── Package list page ──────────────────────────────────────── */
.list-page{max-width:1000px;margin:0 auto;padding:2rem 1.5rem 4rem}
.list-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}
.list-title{font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.75rem}
.list-title em{font-style:normal;color:var(--text2)}
.list-count{
  font-size:.85rem;font-weight:600;color:var(--text3);
  background:var(--bg3);border:1px solid var(--border);
  border-radius:100px;padding:.15rem .6rem;
}
.list-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.list-search-form{display:flex;align-items:center;gap:.5rem}
.list-search-input{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:6px;padding:.4rem .75rem;color:var(--text);
  font-size:.875rem;font-family:var(--font);outline:none;width:200px;
  transition:border-color var(--transition);
}
.list-search-input:focus{border-color:var(--accent)}
.sort-pills{display:flex;gap:.25rem}
.sort-pill{
  padding:.35rem .75rem;border-radius:100px;font-size:.8rem;font-weight:500;
  color:var(--text3);background:var(--bg3);border:1px solid var(--border);
  transition:all var(--transition);
}
.sort-pill:hover{color:var(--text);border-color:var(--border2)}
.sort-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}
.pkg-list{display:flex;flex-direction:column;gap:.5rem}
.pkg-row{
  display:flex;align-items:flex-start;gap:1rem;
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);padding:1rem 1.125rem;
  text-decoration:none;color:inherit;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.pkg-row:hover{border-color:var(--border2);box-shadow:var(--shadow);color:inherit}
.pkg-row-icon{font-size:1.5rem;flex-shrink:0;padding-top:.1rem}
.pkg-row-body{flex:1;min-width:0}
.pkg-row-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}
.pkg-row-name{font-size:.95rem;font-weight:700;color:var(--accent2)}
.pkg-row-version{
  font-size:.72rem;font-weight:600;color:var(--accent2);
  background:var(--accent-bg);border:1px solid rgba(124,58,237,.25);
  border-radius:4px;padding:.1rem .35rem;font-family:var(--mono);
}
.pkg-row-license{
  font-size:.72rem;color:var(--text3);
  background:var(--bg3);border:1px solid var(--border);
  border-radius:4px;padding:.1rem .35rem;
}
.pkg-row-desc{font-size:.85rem;color:var(--text2);line-height:1.45;margin-bottom:.5rem}
.pkg-row-kws{display:flex;flex-wrap:wrap;gap:.25rem}
.kw-tag{
  font-size:.72rem;color:var(--text3);
  background:var(--bg3);border:1px solid var(--border);
  border-radius:4px;padding:.1rem .4rem;
  transition:all var(--transition);
}
a.kw-tag:hover{border-color:var(--accent);color:var(--accent2)}
.pkg-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0;font-size:.78rem;color:var(--text3)}
.pkg-row-time{color:var(--text4)}

/* ── Pagination ─────────────────────────────────────────────── */
.pager{display:flex;align-items:center;justify-content:center;gap:.375rem;margin-top:2rem;flex-wrap:wrap}
.pager-btn{
  padding:.4rem .75rem;border-radius:6px;font-size:.875rem;
  color:var(--text2);background:var(--bg2);border:1px solid var(--border);
  transition:all var(--transition);
}
.pager-btn:hover{border-color:var(--accent);color:var(--accent2)}

/* ── Package detail ─────────────────────────────────────────── */
.pkg-detail{
  display:grid;grid-template-columns:1fr 300px;gap:2rem;
  max-width:1280px;margin:0 auto;padding:2rem 1.5rem 4rem;align-items:start;
}
@media(max-width:900px){.pkg-detail{grid-template-columns:1fr}}
.pkg-detail-main{min-width:0}
.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text3);margin-bottom:1.5rem}
.breadcrumb a{color:var(--text3)}
.breadcrumb a:hover{color:var(--text2)}
.breadcrumb svg{color:var(--text4)}
.pkg-hero{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.pkg-hero-icon{font-size:3rem;flex-shrink:0}
.pkg-hero-info{flex:1;min-width:0}
.pkg-hero-name{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.375rem}
.pkg-hero-desc{font-size:1rem;color:var(--text2);margin-bottom:.75rem}
.pkg-hero-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}
.version-badge{
  font-size:.8rem;font-weight:700;color:var(--accent2);
  background:var(--accent-bg);border:1px solid rgba(124,58,237,.3);
  border-radius:100px;padding:.2rem .6rem;font-family:var(--mono);
}
.license-badge{
  font-size:.8rem;color:var(--text3);
  background:var(--bg3);border:1px solid var(--border);
  border-radius:100px;padding:.2rem .6rem;
}
.author-link{font-size:.85rem;color:var(--accent2)}
.time-badge{font-size:.8rem;color:var(--text3)}
.pkg-kws{display:flex;flex-wrap:wrap;gap:.25rem}

/* Install panel */
.install-panel{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;
}
.install-panel-label{font-size:.75rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}
.install-panel-cmd{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.install-panel-cmd code{font-size:.9rem;color:var(--accent3);font-family:var(--mono);flex:1}
.copy-btn{
  display:inline-flex;align-items:center;gap:.375rem;
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:6px;padding:.35rem .625rem;font-size:.8rem;color:var(--text2);
  transition:all var(--transition);flex-shrink:0;white-space:nowrap;
}
.copy-btn:hover{border-color:var(--accent);color:var(--accent2)}

/* Tabs */
.pkg-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:1.5rem}
.pkg-tab{
  padding:.625rem 1.125rem;font-size:.875rem;font-weight:500;
  color:var(--text3);background:none;border:none;border-bottom:2px solid transparent;
  margin-bottom:-1px;cursor:pointer;transition:all var(--transition);
}
.pkg-tab:hover{color:var(--text)}
.pkg-tab.active{color:var(--accent2);border-bottom-color:var(--accent)}

/* README */
.readme-body{color:var(--text2);line-height:1.7;font-size:.925rem}
.readme-body h1{font-size:1.5rem;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:.5rem;margin:1.5rem 0 .875rem}
.readme-body h2{font-size:1.2rem;color:var(--text);margin:1.5rem 0 .75rem}
.readme-body h3{font-size:1rem;color:var(--text);margin:1.25rem 0 .625rem}
.readme-body p{margin-bottom:1rem}
.readme-body ul,.readme-body ol{padding-left:1.5rem;margin-bottom:1rem}
.readme-body li{margin-bottom:.3rem}
.readme-body .readme-code{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--radius);padding:.875rem 1rem;overflow-x:auto;
  font-size:.84rem;line-height:1.6;margin:1rem 0;color:var(--text);
}
.readme-body .readme-inline{
  background:var(--bg3);border:1px solid var(--border);
  border-radius:4px;padding:.1em .35em;color:var(--accent3);
}
.readme-body .readme-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.875rem}
.readme-body .readme-table th{background:var(--bg3);color:var(--text);padding:.5rem .875rem;border:1px solid var(--border);font-weight:600;text-align:left}
.readme-body .readme-table td{padding:.5rem .875rem;border:1px solid var(--border);color:var(--text2)}
.readme-body .readme-table tr:hover td{background:var(--bg3)}
.readme-body a{color:var(--accent2)}
.readme-body strong{color:var(--text);font-weight:600}

/* Versions */
.version-list{display:flex;flex-direction:column;gap:.375rem}
.version-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 1rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
}
.version-row.latest{border-color:rgba(124,58,237,.35)}
.ver-left{display:flex;align-items:center;gap:.5rem}
.ver-num{font-family:var(--mono);font-size:.875rem;font-weight:600;color:var(--text)}
.ver-badge-latest{
  font-size:.7rem;font-weight:700;color:var(--accent2);
  background:var(--accent-bg);border:1px solid rgba(124,58,237,.3);
  border-radius:100px;padding:.1rem .4rem;
}
.ver-right{display:flex;align-items:center;gap:1rem}
.ver-date{font-size:.78rem;color:var(--text3)}
.ver-install-cmd{font-size:.78rem;color:var(--text3);font-family:var(--mono)}

/* Deps */
.deps-list{display:flex;flex-direction:column;gap:.375rem}
.dep-row{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius)}
.dep-name{color:var(--accent2);font-size:.875rem;font-weight:600}
.dep-version{font-family:var(--mono);font-size:.8rem;color:var(--text3)}

/* Sidebar */
.pkg-sidebar{position:sticky;top:calc(var(--nav-h) + 1.5rem);display:flex;flex-direction:column;gap:1rem}
.sidebar-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius2);padding:1.125rem}
.sidebar-card-title{font-size:.75rem;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.875rem}
.sidebar-dl{display:flex;flex-direction:column;gap:0}
.sidebar-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;font-size:.85rem;border-bottom:1px solid var(--border)}
.sidebar-row:last-child{border-bottom:none}
.sidebar-row dt{color:var(--text3)}
.sidebar-row dd{font-weight:500;color:var(--text)}
.sidebar-row a{color:var(--accent2)}
.cli-cmds{display:flex;flex-direction:column;gap:.375rem}
.cli-cmd{background:var(--bg3);border:1px solid var(--border);border-radius:5px;padding:.45rem .75rem;font-size:.78rem;color:var(--accent3);font-family:var(--mono);overflow-x:auto}
.sidebar-versions{display:flex;flex-direction:column;gap:.375rem}
.sidebar-version-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem}
.sidebar-ver{font-family:var(--mono);color:var(--text2)}
.sidebar-version-more{font-size:.78rem;color:var(--text3);margin-top:.25rem}

/* ── Developer landing ──────────────────────────────────────── */
.dev-landing{}
.dev-hero{
  position:relative;overflow:hidden;
  padding:5rem 1.5rem 4rem;text-align:center;
  border-bottom:1px solid var(--border);
}
.dev-hero-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(124,58,237,.2) 0%,transparent 70%)}
.dev-hero-inner{position:relative;max-width:600px;margin:0 auto}
.dev-hero-title{font-size:clamp(2rem,5vw,3.25rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1rem}
.dev-hero-accent{background:linear-gradient(135deg,#c084fc,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.dev-hero-sub{font-size:1.05rem;color:var(--text2);margin-bottom:2rem;line-height:1.65}
.dev-hero-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.dev-content{max-width:1100px;margin:0 auto;padding:0 1.5rem}
.dev-features{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;padding:3.5rem 0}
@media(max-width:768px){.dev-features{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.dev-features{grid-template-columns:1fr}}
.dev-feat{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius2);padding:1.5rem}
.dev-feat-icon{font-size:2rem;margin-bottom:.875rem}
.dev-feat h3{font-size:.975rem;font-weight:700;margin-bottom:.5rem}
.dev-feat p{font-size:.85rem;color:var(--text2);line-height:1.55}
.dev-feat code{font-size:.82rem;color:var(--accent3);background:var(--bg3);border:1px solid var(--border);border-radius:4px;padding:.1rem .35rem}

/* Steps */
.steps{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3rem}
.step{display:flex;gap:1.25rem;align-items:flex-start}
.step-num{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:.875rem;font-weight:700;
}
.step-body{flex:1;padding-top:.35rem}
.step-body h4{font-size:.95rem;font-weight:700;margin-bottom:.5rem}
.step-body p{font-size:.875rem;color:var(--text2);margin-bottom:.5rem}
.step-body .code-block{margin-top:.5rem}
.quickstart{padding-bottom:3rem}

/* ── Auth pages ─────────────────────────────────────────────── */
.auth-page{min-height:calc(100vh - var(--nav-h));display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(124,58,237,.1) 0%,transparent 70%)}
.auth-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius3);padding:2.5rem;width:100%;max-width:420px}
.auth-logo{display:flex;justify-content:center;margin-bottom:1.75rem}
.auth-title{font-size:1.5rem;font-weight:800;text-align:center;margin-bottom:.375rem}
.auth-sub{text-align:center;font-size:.9rem;color:var(--text3);margin-bottom:1.75rem}
.auth-footer{text-align:center;font-size:.875rem;color:var(--text3);margin-top:1.5rem}

/* ── Dashboard ──────────────────────────────────────────────── */
.dash-layout{
  display:grid;grid-template-columns:200px 1fr;gap:2rem;
  max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem;align-items:start;
}
@media(max-width:768px){.dash-layout{grid-template-columns:1fr}}
.dash-nav{display:flex;flex-direction:column;gap:.125rem;position:sticky;top:calc(var(--nav-h) + 1.5rem)}
.dash-nav-link{
  display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;
  border-radius:8px;font-size:.9rem;color:var(--text2);
  transition:all var(--transition);
}
.dash-nav-link:hover{background:var(--bg3);color:var(--text)}
.dash-nav-link.active{background:var(--bg3);color:var(--accent2);font-weight:500}
.dash-main{min-width:0}
.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.dash-title{font-size:1.4rem;font-weight:700}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
@media(max-width:600px){.stats-row{grid-template-columns:1fr 1fr}}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1.125rem}
.stat-num{font-size:2rem;font-weight:800;color:var(--text);line-height:1;margin-bottom:.25rem}
.stat-label{font-size:.78rem;color:var(--text3)}
.dash-section{margin-bottom:2rem}
.dash-section-title{font-size:1rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}
.loading-row{padding:2rem;text-align:center;color:var(--text3);font-size:.875rem}

/* Token rows */
.token-row{
  display:flex;align-items:center;gap:1rem;
  padding:.875rem 1rem;background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius);margin-bottom:.5rem;
}
.token-row-info{flex:1;min-width:0}
.token-row-name{font-size:.9rem;font-weight:600;margin-bottom:.2rem}
.token-row-meta{font-size:.78rem;color:var(--text3);font-family:var(--mono)}
.token-reveal{
  display:block;font-family:var(--mono);font-size:.8rem;
  color:var(--accent2);word-break:break-all;margin-top:.375rem;
}

/* Publish layout */
.publish-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
@media(max-width:768px){.publish-layout{grid-template-columns:1fr}}
.publish-cli{}
.publish-web{}

/* ── Docs page ──────────────────────────────────────────────── */
.docs-page{
  display:grid;grid-template-columns:220px 1fr;gap:0;
  max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem;align-items:start;
}
@media(max-width:768px){.docs-page{grid-template-columns:1fr}}
.docs-sidebar{position:sticky;top:calc(var(--nav-h) + 1.5rem);padding-right:2rem}
.docs-sidebar-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:.75rem}
.docs-nav-link{display:block;font-size:.875rem;color:var(--text2);padding:.375rem .5rem;border-radius:6px;margin-bottom:.125rem;transition:all var(--transition)}
.docs-nav-link:hover{color:var(--text);background:var(--bg3)}
.docs-main h1{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.docs-main h2{font-size:1.25rem;font-weight:700;margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}
.docs-main section{margin-bottom:2rem}
.docs-intro{font-size:.9rem;color:var(--text2);margin-bottom:2rem;line-height:1.7;padding:1rem 1.25rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius)}
.api-endpoint{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0 .5rem;flex-wrap:wrap}
.api-path{font-size:.9rem;color:var(--text);font-family:var(--mono)}
.api-auth-badge{font-size:.75rem;color:var(--yellow);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.25);border-radius:4px;padding:.15rem .4rem}
.api-method{font-size:.72rem;font-weight:700;font-family:var(--mono);border-radius:4px;padding:.2rem .5rem}
.api-method.get{background:rgba(16,185,129,.15);color:var(--green)}
.api-method.post{background:rgba(59,130,246,.15);color:var(--blue)}
.api-method.delete{background:rgba(239,68,68,.15);color:var(--red)}
.api-response{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.8rem;font-family:var(--mono);color:var(--text2);margin:.75rem 0;overflow-x:auto}
.docs-main .code-block{margin:.75rem 0}
.docs-main p{font-size:.9rem;color:var(--text2);margin:.5rem 0;line-height:1.65}
.docs-main code{font-size:.85rem;color:var(--accent3);background:var(--bg3);border:1px solid var(--border);border-radius:4px;padding:.1rem .35rem}
.cli-ref-table{display:flex;flex-direction:column;gap:.375rem}
.cli-ref-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem 1rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}
.cli-ref-cmd{font-size:.8rem;color:var(--accent3);font-family:var(--mono)}
.cli-ref-row span{font-size:.85rem;color:var(--text2)}
.error-table{width:100%;border-collapse:collapse;font-size:.875rem;margin-top:.5rem}
.error-table th{background:var(--bg3);color:var(--text2);padding:.5rem .875rem;border:1px solid var(--border);font-weight:600;text-align:left}
.error-table td{padding:.5rem .875rem;border:1px solid var(--border);color:var(--text2)}
.error-table tr:hover td{background:var(--bg3)}

/* ── User profile ───────────────────────────────────────────── */
.user-page{max-width:900px;margin:0 auto;padding:2.5rem 1.5rem 4rem}
.user-header{display:flex;gap:1.5rem;align-items:flex-start;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.user-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;color:#fff;flex-shrink:0}
.user-name{font-size:1.75rem;font-weight:800;margin-bottom:.375rem}
.user-bio{color:var(--text2);margin-bottom:.375rem}
.user-website{font-size:.875rem;color:var(--accent2)}
.user-since{font-size:.8rem;color:var(--text3);margin-top:.375rem}
.user-stats{display:flex;gap:2rem;margin-bottom:1.5rem}
.user-stat{display:flex;flex-direction:column;align-items:center;gap:.2rem}
.user-stat-n{font-size:1.5rem;font-weight:700;color:var(--text)}

/* ── Empty states ───────────────────────────────────────────── */
.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text3)}
.empty-icon{font-size:3rem;margin-bottom:.875rem}
.empty-state p{font-size:.9rem;margin-bottom:1rem}

/* ── Footer ─────────────────────────────────────────────────── */
.site-footer{border-top:1px solid var(--border);margin-top:4rem;padding:3rem 0 1.5rem}
.footer-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem;display:grid;grid-template-columns:auto 1fr;gap:3rem;align-items:start}
@media(max-width:768px){.footer-inner{grid-template-columns:1fr}}
.footer-brand{display:flex;gap:1rem;align-items:flex-start;max-width:260px}
.footer-brand svg{flex-shrink:0;margin-top:.15rem}
.footer-brand-name{font-weight:700;font-size:1rem;margin-bottom:.25rem}
.footer-brand-desc{font-size:.8rem;color:var(--text3);line-height:1.5}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
@media(max-width:600px){.footer-links{grid-template-columns:1fr 1fr}}
.footer-col{display:flex;flex-direction:column;gap:.5rem}
.footer-col-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:.25rem}
.footer-col a{font-size:.875rem;color:var(--text3);transition:color var(--transition)}
.footer-col a:hover{color:var(--text2)}
.footer-bottom{max-width:1280px;margin:.875rem auto 0;padding:.875rem 1.5rem 0;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:.8rem;color:var(--text4)}

/* ── Responsive nav ─────────────────────────────────────────── */
@media(max-width:768px){
  .nav-links,.nav-search{display:none}
  .hero{padding:3.5rem 1.25rem 3rem}
  .pkg-detail,.docs-page{padding:1.5rem 1rem 3rem}
  .dash-layout{padding:1.5rem 1rem 3rem}
}

/* ── Scrollbar ──────────────────────────────────────────────── */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:var(--bg1)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--border3)}

/* ── Selection ──────────────────────────────────────────────── */
::selection{background:var(--accent-bg2);color:var(--text)}

/* ── Focus visible ──────────────────────────────────────────── */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── Download page ──────────────────────────────────────────── */
.download-page{}
.download-hero{position:relative;overflow:hidden;padding:4rem 1.5rem 2rem;text-align:center;border-bottom:1px solid var(--border)}
.download-card{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem}
.download-os-icon{font-size:2.5rem;margin-bottom:.25rem}
.download-os-name{font-size:1.125rem;font-weight:700;color:var(--text)}
.download-arch{font-size:.8rem;color:var(--text3)}
.download-size{font-size:.875rem;color:var(--text2);margin-bottom:.5rem}
