/* ============================================================
   AURELE KIT · Components
   Plain CSS classes (no Tailwind / no icon lib needed).
   Requires tokens.css to be loaded first.
   Every accent comes from the --brand* ramp → fully whitelabel.
   ============================================================ */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:var(--font-body);
  background:var(--bg); color:var(--ink);
  -webkit-font-smoothing:antialiased; line-height:1.55;
  transition:background .25s,color .25s;
}
a{color:inherit;text-decoration:none}

/* helpers */
.serif{font-family:var(--font-display)}
.accent{color:var(--brand)}
em{font-style:italic;color:var(--brand)}
.wrap{max-width:1120px;margin:0 auto;padding:0 30px}
.center{text-align:center}
.center .lede{margin-left:auto;margin-right:auto}
section{padding:18px 0}
.sec-pad{padding:64px 0}

/* ---- nav ---- */
.kit-nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0;flex-wrap:wrap;gap:12px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;font-size:23px;letter-spacing:-.01em}
.logo .mk{color:var(--brand);font-size:18px}
.menu{display:flex;gap:26px;font-size:14.5px;color:var(--ink2);font-weight:500}
.menu a:hover{color:var(--brand)}
.navr{display:flex;align-items:center;gap:12px}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r-sm);
     font-weight:600;font-size:14px;cursor:pointer;border:1px solid transparent;
     font-family:inherit;transition:transform .12s}
.btn:hover{transform:translateY(-1px)}
.btn-line{border-color:var(--line);color:var(--ink);background:var(--paper)}
.btn-brand{background:linear-gradient(135deg,var(--brand-soft),var(--brand));color:var(--brand-on);font-weight:700}
.themer{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);
        border:1px solid var(--line);background:var(--paper);color:var(--brand);cursor:pointer;font-size:17px}

/* ---- hero & section typography ---- */
.eyebrow{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-muted);font-weight:600}
.kicker{display:inline-flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--brand-muted);font-weight:600}
.kicker .lr{color:var(--brand)}
h1.disp{font-family:var(--font-display);font-weight:var(--display-weight);font-size:64px;line-height:1.03;letter-spacing:-.02em;margin:0}
h2.disp{font-family:var(--font-display);font-weight:var(--display-weight);font-size:38px;line-height:1.1;letter-spacing:-.01em;margin:0}
.lede{font-size:19px;color:var(--ink2);max-width:60ch}

.quote{font-family:var(--font-display);font-style:italic;font-size:17px;color:var(--ink2);padding-left:18px;border-left:3px solid var(--brand);max-width:52ch}
.quote span{display:block;font-style:normal;font-family:var(--font-body);font-size:13px;color:var(--muted);margin-top:8px}

/* ---- inline form (waitlist / email capture) ---- */
.wl{display:flex;gap:10px;max-width:440px;margin-top:8px}
.center .wl{margin-left:auto;margin-right:auto}
.wl input{flex:1;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 15px;font-size:15px;background:var(--paper);color:var(--ink);font-family:inherit}
.wl input::placeholder{color:var(--muted)}
.wl-msg{font-size:13.5px;margin-top:10px;min-height:18px;color:var(--muted)}

/* ---- bands (dark callout) ---- */
.band{background:var(--band);color:var(--band-ink);border-radius:var(--r-xl);margin:34px 0;padding:48px 42px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
body.night .band{border:1px solid var(--line)}
.band .eyebrow{color:var(--brand-soft)}
.band h2{font-family:var(--font-display);font-weight:600;font-size:36px;line-height:1.08;margin:14px 0}
.band h2 em{color:var(--brand-soft)}
.band p{color:#c2bdb2;font-size:16px;max-width:42ch}

.feature{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:60px 0}
.feature h2{margin:12px 0}
.feature .lede{font-size:16.5px}

.crest{text-align:center;padding:60px 0}
.pillname{display:inline-block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-muted);border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 12px;margin-bottom:8px}

/* ---- cards / grids ---- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow)}
.card .ico{font-size:22px;color:var(--brand)}
.card h3{font-family:var(--font-display);font-size:19px;font-weight:600;margin:10px 0 6px}
.card p{font-size:14.5px;color:var(--ink2);margin:0}

.steps{counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.step{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;position:relative}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-display);font-size:30px;color:var(--brand);display:block;margin-bottom:10px}
.step h3{font-family:var(--font-display);font-size:19px;font-weight:600;margin-bottom:6px}
.step p{font-size:14.5px;color:var(--ink2);margin:0}

/* ---- pricing ---- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.plan{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;flex-direction:column}
.plan.featured{border-color:var(--brand);box-shadow:var(--shadow)}
.plan .pname{font-family:var(--font-display);font-size:22px;font-weight:600}
.plan .price{font-family:var(--font-display);font-size:40px;font-weight:600;margin:8px 0 2px}
.plan .price small{font-size:14px;color:var(--muted);font-family:var(--font-body)}
.plan ul{list-style:none;margin:16px 0 22px;padding:0;display:grid;gap:9px}
.plan li{font-size:14px;color:var(--ink2);padding-left:22px;position:relative}
.plan li::before{content:"✦";position:absolute;left:0;color:var(--brand)}
.plan .btn{margin-top:auto;justify-content:center}

/* ---- prose ---- */
.prose{max-width:720px;margin:0 auto}
.prose h2{font-family:var(--font-display);font-size:28px;font-weight:600;margin:34px 0 12px}
.prose h3{font-family:var(--font-display);font-size:20px;font-weight:600;margin:24px 0 8px}
.prose p{font-size:16.5px;color:var(--ink2);margin:12px 0}
.prose ul{margin:12px 0 12px 22px;color:var(--ink2)}
.prose li{margin:6px 0}
.prose .callout,.callout{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:12px;padding:18px 20px;margin:20px 0;color:var(--ink2)}

/* ---- radar / star charts ---- */
.star-svg{width:100%;height:auto;display:block}
.ax-grid{fill:none;stroke:var(--grid);stroke-width:1}
.ax-spoke{stroke:var(--spoke);stroke-width:1}
.ax-label{fill:var(--axis);font-family:var(--font-body);font-weight:600}
.cmp-poly{fill:none;stroke:var(--cmp);stroke-width:1.6;stroke-dasharray:5 4}
.data-poly{fill:var(--brand-fill);stroke:var(--brand);stroke-width:2.4}
.data-dot{fill:var(--brand)}
.const-poly{fill:color-mix(in srgb,var(--brand) 8%,transparent);stroke:var(--brand-soft);stroke-width:1.3;stroke-opacity:.5}
.const-label{fill:#cfc8ba;font-family:var(--font-body);font-weight:600}

/* ---- persona / metrics panel ---- */
.ppanel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.pphead{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pphead b{font-family:var(--font-display);font-size:19px}
.pphead .s{font-size:12.5px;color:var(--muted)}
.seg{display:inline-flex;background:var(--track);border:1px solid var(--line);border-radius:12px;padding:4px;gap:3px}
.seg button{font-family:inherit;border:0;background:transparent;cursor:pointer;border-radius:9px;padding:8px 14px;font-size:13.5px;font-weight:600;color:var(--brand-deep);display:flex;flex-direction:column;align-items:center;line-height:1.15}
.seg button .sub{font-size:10px;font-weight:500;color:var(--muted);text-transform:none}
.seg button.active{background:linear-gradient(135deg,var(--brand-soft),var(--brand));color:var(--brand-on)}
.seg button.active .sub{color:var(--brand-on);opacity:.72}
.pbody{display:grid;grid-template-columns:1.3fr .7fr;gap:0}
.stage{padding:16px;display:grid;place-items:center;border-right:1px solid var(--line)}
.pside{padding:20px;max-height:560px;overflow:auto}
.pside h3{font-family:var(--font-display);font-size:16px;margin-bottom:12px}
.crit{margin-bottom:10px}
.crit .top{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:4px}
.crit .top b{font-weight:600}
.crit .top .v{color:var(--brand);font-weight:700}
.track{height:6px;background:var(--track);border-radius:5px;overflow:hidden}
.fill{height:100%;background:linear-gradient(90deg,var(--brand-soft),var(--brand))}
.psum{font-family:var(--font-display);font-style:italic;font-size:14px;color:var(--ink2);border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}

/* ---- data table (sources / lists) ---- */
.ppanel table{width:100%;border-collapse:collapse;font-size:14px}
.ppanel thead th{text-align:left;padding:13px 22px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line)}
.ppanel tbody td{padding:14px 22px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ink)}
.ppanel tbody tr:last-child td{border-bottom:0}
.ppanel th:first-child,.ppanel td:first-child{width:30px;text-align:center;color:var(--brand);padding-right:0}

/* ---- status badges (semantic, NOT brand-tinted) ---- */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:4px 11px;border-radius:var(--r-pill);border:1px solid transparent;white-space:nowrap}
.badge.b-ok{color:#3f8a52;background:rgba(63,138,82,.12);border-color:rgba(63,138,82,.28)}
.badge.b-idx{color:#4a6fa5;background:rgba(74,111,165,.14);border-color:rgba(74,111,165,.30)}
.badge.b-con{color:#c0453b;background:rgba(192,69,59,.12);border-color:rgba(192,69,59,.28)}
.badge.b-ign{color:var(--muted);background:var(--track);border-color:var(--line)}

/* ---- footer ---- */
.kit-footer{border-top:1px solid var(--line);margin-top:40px;padding:40px 0}
.foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:13.5px}
.foot a:hover{color:var(--brand)}
.foot .logo{font-size:18px}
.foot-cols{display:flex;gap:46px;flex-wrap:wrap}
.foot-cols div{display:grid;gap:8px}
.foot-cols b{color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.06em}

/* ---- dashboard shell ---- */
.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.side{border-right:1px solid var(--line);padding:20px 16px;background:var(--paper)}
.side a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;font-size:14px;color:var(--ink2);font-weight:500}
.side a.on,.side a:hover{background:var(--track);color:var(--ink)}
.side .sec{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 8px 6px}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;border-bottom:1px solid var(--line)}
.main-pad{padding:26px}

/* ---- KPI stat card ---- */
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.kpi .k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.kpi .n{font-family:var(--font-display);font-size:34px;font-weight:600;margin-top:6px;line-height:1}
.kpi .d{font-size:13px;color:var(--ink2);margin-top:6px}
.kpi .d .up{color:#3f8a52;font-weight:600}
.kpi .d .down{color:#c0453b;font-weight:600}

/* ---- responsive ---- */
@media(max-width:900px){
  h1.disp{font-size:42px}h2.disp{font-size:30px}
  .menu{display:none}
  .band,.feature{grid-template-columns:1fr;gap:26px;padding:30px 22px}
  .grid-3,.steps,.plans{grid-template-columns:1fr}
  .grid-2,.pbody{grid-template-columns:1fr}
  .app-shell{grid-template-columns:1fr}.side{display:none}
}
