/* ---- self-hosted display font (Hanken Grotesk, variable 500–800) ---- */
@font-face{
  font-family:'Hanken Grotesk';font-style:normal;font-weight:500 800;font-display:swap;
  src:url('../fonts/hanken-grotesk-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Hanken Grotesk';font-style:normal;font-weight:500 800;font-display:swap;
  src:url('../fonts/hanken-grotesk-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* =========================================================================
   GrowthMarket theme system
   - surfaces switch via [data-theme="dark|light"]
   - accent switches via [data-palette="..."] (works in both modes)
   - accent glows/shadows derive from --brand via color-mix (no extra vars)
   ========================================================================= */
:root{
  /* accent palette — violet (default) */
  --brand:#7c5cff; --brand-2:#22d3ee;
  --grad:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);
  --brand-ink:#0a0f1c;          /* text sitting on the gradient */

  /* dark surfaces (default) */
  --bg:#0b0f1a; --bg-2:#121829; --card:#161d31; --card-2:#1c2540;
  --line:#243154; --text:#e7ecf7; --muted:#94a3c4; --muted-2:#6c7aa3;
  --good:#22c55e; --warn:#f59e0b; --bad:#ef4444;

  --radius:16px; --radius-sm:10px;
  --shadow:0 18px 50px -20px rgba(0,0,0,.7);
  --ring:0 0 0 3px color-mix(in srgb,var(--brand) 28%,transparent);
  --glow:0 12px 34px -12px color-mix(in srgb,var(--brand) 60%,transparent);
  --font:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Hanken Grotesk',system-ui,sans-serif;
  color-scheme:dark;
}

/* ---- light mode surfaces ---- */
[data-theme="light"]{
  --bg:#f5f7fc; --bg-2:#ffffff; --card:#ffffff; --card-2:#f1f4fb;
  --line:#e4e9f4; --text:#101a2e; --muted:#566187; --muted-2:#8b95b1;
  --shadow:0 18px 44px -24px rgba(24,36,70,.28);
  color-scheme:light;
}

/* ---- accent palettes ---- */
[data-palette="emerald"]{--brand:#10b981;--brand-2:#34d399;}
[data-palette="sunset"] {--brand:#fb7185;--brand-2:#fbbf24;}
[data-palette="ocean"]  {--brand:#3b82f6;--brand-2:#06b6d4;}
[data-palette="magenta"]{--brand:#ec4899;--brand-2:#8b5cf6;}
[data-palette="lime"]   {--brand:#84cc16;--brand-2:#22d3ee;}
[data-palette="gold"]   {--brand:#f59e0b;--brand-2:#ef4444;}
[data-palette="cyber"]  {--brand:#22d3ee;--brand-2:#a855f7;}
[data-palette="crimson"]{--brand:#ef4444;--brand-2:#f97316;}
[data-palette="yellowgold"]{--brand:#eab308;--brand-2:#facc15;}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--text);font-family:var(--font);line-height:1.55;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(900px 520px at 85% -12%, color-mix(in srgb,var(--brand) 22%,transparent), transparent 60%),
    radial-gradient(740px 420px at -5% 0%, color-mix(in srgb,var(--brand-2) 16%,transparent), transparent 55%),
    var(--bg);
  transition:background-color .25s ease,color .25s ease;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.muted{color:var(--muted)}
.main{min-height:60vh}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 78%,transparent);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-wrap{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:18px}
.brand{font-family:var(--font-display);font-weight:800;font-size:19px;letter-spacing:-.03em;display:inline-flex;align-items:center;gap:8px}
.brand-mark{filter:saturate(1.3)}
.nav-links{display:flex;gap:20px;margin-left:8px}
.nav-links a{color:var(--muted);font-size:14px;font-weight:500}
.nav-links a:hover{color:var(--text)}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.cur-switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--bg-2)}
.cur-switch button{background:none;border:0;color:var(--muted);padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}
.cur-switch button.on{background:var(--grad);color:var(--brand-ink)}
.wallet-pill{background:var(--card-2);border:1px solid var(--line);border-radius:999px;padding:7px 14px;
  font-weight:700;font-size:13px;color:var(--brand)}
.theme-toggle{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--bg-2);
  color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.theme-toggle:hover{border-color:var(--brand);color:var(--brand)}
/* show the icon for the mode you'd switch TO */
[data-theme="dark"] .theme-toggle .ico-moon{display:none}
[data-theme="light"] .theme-toggle .ico-sun{display:none}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--grad);color:var(--brand-ink);
  border:0;border-radius:12px;padding:12px 20px;font-weight:700;font-size:14px;cursor:pointer;transition:.15s;font-family:inherit}
.btn:hover{transform:translateY(-1px);box-shadow:var(--glow)}
.btn-sm{padding:8px 14px;font-size:13px;border-radius:10px}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--brand);box-shadow:none}
.btn-block{width:100%}
.btn-danger{background:var(--bad);color:#fff}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* ---- layout helpers ---- */
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px}
.section{padding-block:64px}
.grid{display:grid;gap:18px}
.grid>*{min-width:0}                       /* let grid cells shrink — prevents table-blowout overflow */
.referral-tables table{min-width:0}        /* small referral tables fit their cell, no scroll */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card-2{background:var(--card-2)}
h1,h2,h3{font-family:var(--font-display);letter-spacing:-.025em;line-height:1.12;margin:0 0 .4em;text-wrap:balance}
h1{font-size:clamp(34px,5vw,56px)}
h2{font-size:clamp(28px,3.6vw,40px)}
.grad-text{color:var(--brand)}

/* ---- icons ---- */
.ico{display:inline-block;vertical-align:middle;flex-shrink:0}
.brand-ico{display:inline-block;vertical-align:middle;object-fit:contain}
.chip .brand-ico,.chip .ico{width:16px;height:16px}
.platform-tile .pico .brand-ico,.platform-tile .pico .ico{width:26px;height:26px}
.brand .ico{color:var(--brand)}
.side a .ico,.nav-links .ico{opacity:.9}
.feature .ico-wrap{width:42px;height:42px;border-radius:12px;background:var(--card-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--brand)}

/* ===== aurora hero (ported from hero-1 Tailwind UI) ===== */
.hero-aurora{position:relative;isolation:isolate;overflow:hidden;
  min-height:clamp(540px,76vh,820px);display:flex;flex-direction:column;justify-content:center;
  text-align:center;padding:96px 20px 72px;
  /* stock photo backdrop + theme-aware scrim (auto-darkens via --bg) */
  background-image:
    linear-gradient(180deg, color-mix(in srgb,var(--bg) 42%,transparent) 0%, color-mix(in srgb,var(--bg) 58%,transparent) 50%, color-mix(in srgb,var(--bg) 78%,transparent) 100%),
    url('../img/hero.jpg');
  background-size:cover;background-position:center 22%;background-repeat:no-repeat}
[data-theme="light"] .hero-aurora{background-image:
    linear-gradient(180deg, color-mix(in srgb,var(--bg) 70%,transparent) 0%, color-mix(in srgb,var(--bg) 88%,transparent) 100%),
    url('../img/hero.jpg')}
.hero-aurora .inner h1,.hero-aurora .inner .lead{text-shadow:0 2px 18px color-mix(in srgb,var(--bg) 70%,transparent)}
/* photo backdrop replaces the abstract blobs */
.hero-aurora .aurora{display:none}
.hero-aurora .aurora-unused{position:absolute;left:50%;z-index:-1;filter:blur(64px);pointer-events:none;
  aspect-ratio:1155/678;width:72rem;max-width:none;opacity:.32;
  background:linear-gradient(to top right,var(--brand),var(--brand-2));
  clip-path:polygon(74.1% 44.1%,100% 61.6%,97.5% 26.9%,85.5% .1%,80.7% 2%,72.5% 32.5%,60.2% 62.4%,52.4% 68.1%,47.5% 58.3%,45.2% 34.5%,27.5% 76.7%,.1% 64.9%,17.9% 100%,27.6% 76.8%,76.1% 97.7%,74.1% 44.1%);
  animation:auroraDrift 18s ease-in-out infinite alternate}
.hero-aurora .aurora.top{top:-14rem;transform:translateX(-52%) rotate(30deg)}
.hero-aurora .aurora.bottom{top:auto;bottom:-18rem;transform:translateX(-32%)}
[data-theme="light"] .hero-aurora .aurora{opacity:.28}
@keyframes auroraDrift{from{translate:0 0}to{translate:0 -24px}}
@media(prefers-reduced-motion:reduce){.hero-aurora .aurora{animation:none}}
.hero-aurora .inner{max-width:860px;margin:0 auto}
.announce{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:7px 16px;font-size:14px;
  color:var(--muted);background:color-mix(in srgb,var(--text) 4%,transparent);border:1px solid var(--line);
  margin-bottom:26px;transition:.15s}
.announce:hover{border-color:var(--brand)}
.announce a{color:var(--brand);font-weight:700}
.announce .dot{width:8px;height:8px;border-radius:999px;background:var(--brand-2);box-shadow:0 0 12px var(--brand-2)}
.hero-aurora h1{font-size:clamp(40px,7.5vw,82px);font-weight:800;letter-spacing:-.03em;line-height:1.02;
  margin:0 0 22px;text-wrap:balance}
.hero-aurora h1 .l2{color:var(--brand)}
.hero-aurora p.lead{font-size:clamp(16px,2vw,21px);color:var(--muted);max-width:58ch;margin:0 auto 32px;text-wrap:pretty}
.hero-aurora .hero-cta{justify-content:center;margin-top:0}
.geo-stats{display:flex;gap:34px;justify-content:center;flex-wrap:wrap;margin-top:44px}
/* slim stats band under the hero */
.stat-band{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 45%,transparent)}
.stat-band .wrap{display:flex;gap:clamp(28px,6vw,72px);justify-content:center;flex-wrap:wrap;padding:22px 24px}
.stat-band .stat{text-align:center}
.stat-band .stat b{font-size:24px;line-height:1}
.stat-band .stat span{display:block;margin-top:2px}

/* ---- (legacy split hero, kept for reference) ---- */
.hero{padding:72px 0 48px}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--card-2);border:1px solid var(--line);
  color:var(--brand);padding:6px 14px;border-radius:999px;font-size:12px;font-weight:700;margin-bottom:18px}
.hero p.lead{font-size:18px;color:var(--muted);max-width:48ch}
.hero-cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.stat-row{display:flex;gap:28px;margin-top:34px;flex-wrap:wrap}
.stat b{display:block;font-size:26px;color:var(--brand)}
.stat span{color:var(--muted-2);font-size:13px}
.hero-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}
.hero-card h4{margin:0 0 14px;font-size:14px;color:var(--muted)}

/* ---- platform tiles / chips ---- */
.platform-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.platform-tile{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:16px;border-radius:16px;
  background:var(--card);border:1px solid var(--line);transition:.15s;position:relative;overflow:hidden}
.platform-tile:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow)}
.platform-tile .pico{font-size:26px;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--pcolor,var(--brand)) 18%,var(--card-2))}
.platform-tile .pname{font-weight:700;font-size:15px}
.platform-tile .pcount{color:var(--muted);font-size:12px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:var(--card);
  border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:.12s}
.chip:hover{color:var(--text);border-color:var(--brand)}
.chip.on{background:var(--grad);color:var(--brand-ink);border-color:transparent}
.chip .emo{font-size:15px}

/* ---- "how it works": a real numbered sequence (not a card grid) ---- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.step{position:relative}
.step-n{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--brand);
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid color-mix(in srgb,var(--brand) 45%,var(--line));border-radius:999px;background:var(--bg)}
.step-ico{display:inline-flex;color:var(--brand);margin:16px 0 10px}
.step h3{font-size:18px;margin:0 0 6px}
.step p{color:var(--muted);font-size:14px;margin:0;max-width:30ch}
/* connector line linking the steps */
.step:not(:last-child)::after{content:"";position:absolute;top:17px;left:42px;right:-30px;height:1.5px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--brand) 38%,transparent),transparent)}
@media(max-width:760px){.steps{grid-template-columns:1fr 1fr;gap:26px}.step:not(:last-child)::after{display:none}}
@media(max-width:430px){.steps{grid-template-columns:1fr}}

/* ---- feature/how grids ---- */
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-2{grid-template-columns:repeat(2,1fr)}
.feature h3{font-size:18px}
.feature p{color:var(--muted);font-size:14px;margin:0}

/* ---- services ---- */
.svc-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.search-box{position:relative}
.search-box .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search-box .input{padding-left:42px}
.input,select,textarea{width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  border-radius:var(--radius-sm);padding:12px 14px;font-size:14px;font-family:inherit}
.input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}
table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:640px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
th{background:var(--bg-2);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--card-2)}
.cat-head td{background:var(--card-2);font-weight:700;color:var(--brand)}
.price{font-weight:700;color:var(--brand);white-space:nowrap}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--card-2);border:1px solid var(--line);color:var(--muted)}
.tag.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}

/* ---- status badges ---- */
.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:capitalize;white-space:nowrap}
.badge.completed,.badge.success,.badge.active{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}
.badge.in-progress,.badge.processing,.badge.pending{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.badge.partial{background:color-mix(in srgb,var(--brand-2) 16%,transparent);color:var(--brand-2)}
.badge.canceled,.badge.failed,.badge.suspended{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}
.badge.open{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.badge.answered{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}
.badge.closed{background:color-mix(in srgb,var(--muted) 20%,transparent);color:var(--muted)}

/* ---- flash ---- */
.flash{max-width:1180px;margin:14px auto 0;padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;
  background:var(--card-2);border:1px solid var(--line)}
.flash-success{background:color-mix(in srgb,var(--good) 14%,var(--card));border:1px solid color-mix(in srgb,var(--good) 40%,transparent);color:var(--good)}
.flash-error{background:color-mix(in srgb,var(--bad) 14%,var(--card));border:1px solid color-mix(in srgb,var(--bad) 40%,transparent);color:var(--bad)}

/* ---- auth ---- */
.auth-wrap{max-width:420px;margin:48px auto;padding:0 20px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:var(--shadow)}
.auth-card h1{font-size:26px;margin-bottom:6px}
.auth-alt{text-align:center;color:var(--muted);font-size:14px;margin-top:18px}
.auth-alt a{color:var(--brand);font-weight:600}

/* ---- dashboard ---- */
.dash{display:grid;grid-template-columns:240px 1fr;gap:28px;max-width:1340px;margin:28px auto;padding:0 24px}
/* admin gets extra breathing room */
.dash-admin{max-width:1500px}
/* settings: two-up field grid so inputs use the width instead of one narrow column */
.settings-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.settings-fields .field-full{grid-column:1/-1}
@media(max-width:680px){.settings-fields{grid-template-columns:1fr}}
.side{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;height:max-content;position:sticky;top:88px}
.side a{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:10px;color:var(--muted);font-weight:600;font-size:14px}
.side a:hover{background:var(--card-2);color:var(--text)}
.side a.on{background:var(--grad);color:var(--brand-ink)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:22px}
.kpis-fin{grid-template-columns:repeat(3,1fr)}            /* balanced 3×2 finance grid */
@media(max-width:900px){.kpis-fin{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.kpis-fin{grid-template-columns:1fr}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;transition:border-color .15s,transform .15s}
.kpi:hover{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
.kpi .v{font-size:26px;font-weight:800}
.kpi .l{color:var(--muted);font-size:13px}
.kpi .v.grad{color:var(--brand)}

/* ---- order form layout ---- */
.order-grid{display:grid;grid-template-columns:1fr 320px;gap:22px}
.summary .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.summary .row:last-child{border-bottom:0;font-size:18px;font-weight:800}

/* ---- faq ---- */
.faq details{border:1px solid var(--line);border-radius:12px;padding:4px 18px;margin-bottom:10px;background:var(--card)}
.faq summary{cursor:pointer;padding:14px 0;font-weight:600;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq p{color:var(--muted);margin-top:0}

/* ---- legal / info pages ---- */
.legal{line-height:1.75;color:var(--text)}
.legal h3{font-size:18px;margin:26px 0 8px}
.legal p,.legal li{color:var(--muted)}
.legal ul{padding-left:20px;margin:8px 0}
.legal a{color:var(--brand);font-weight:600}
.legal>p:first-child{color:var(--muted-2);font-size:13px}

/* ---- footer ---- */
.site-footer{border-top:1px solid var(--line);margin-top:60px;background:var(--bg-2)}
.footer-wrap{max-width:1180px;margin:0 auto;padding:42px 20px;display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{color:var(--muted);font-size:14px}
.footer-bottom{border-top:1px solid var(--line);padding:18px 20px;max-width:1180px;margin:0 auto;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--muted-2);font-size:13px}
.footer-bottom a{color:var(--brand)}
.footer-disclaimer{max-width:900px;margin:0 auto;padding:6px 20px 0;color:var(--muted-2);font-size:11.5px;line-height:1.6;text-align:center;text-wrap:pretty}

/* ---- announcement bar ---- */
.announce-bar{background:var(--grad);color:var(--brand-ink);text-align:center;font-weight:600;font-size:13.5px;
  padding:9px 44px;position:relative}
.announce-bar a{color:var(--brand-ink);text-decoration:underline;font-weight:700}
.announce-bar .x{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:0;
  color:var(--brand-ink);cursor:pointer;line-height:1;opacity:.75;padding:6px}
.announce-bar .x:hover{opacity:1}

/* ---- cookie consent ---- */
.cookie-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:580px;margin:0 auto;
  display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:var(--shadow)}
.cookie-consent[hidden]{display:none}
.cookie-consent p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.cookie-consent a{color:var(--brand);font-weight:600}

/* ---- tidy service cell + row actions ---- */
.svc-cell{max-width:240px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;line-height:1.35;font-weight:500}
td .svc-cell + small{display:block;margin-top:2px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;
  border:1px solid var(--line);background:var(--bg-2);color:var(--muted);cursor:pointer;transition:.12s}
.icon-btn:hover{color:var(--text);border-color:var(--brand)}
.icon-btn.danger:hover{color:#fff;background:var(--bad);border-color:var(--bad)}
.order-del{display:flex;align-items:center;gap:8px}
.del-refund{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted-2);white-space:nowrap;cursor:pointer}
.del-refund input{accent-color:var(--brand)}

/* ---- DataTables theming (match our tokens, dark + light) ---- */
.dt-container{font-size:12.5px}
.dt-container .dt-layout-row{margin-bottom:12px;align-items:center}
.dt-container .dt-search,.dt-container .dt-length,.dt-container .dt-info{color:var(--muted)}
.dt-container .dt-input,.dt-container select.dt-input{background:var(--bg-2);border:1px solid var(--line);
  color:var(--text);border-radius:9px;padding:7px 11px;font-size:13px;font-family:inherit}
.dt-container .dt-input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
.dt-container .dt-search .dt-input{min-width:200px}
.dt-container .dt-info{font-size:12px;color:var(--muted-2);padding-top:8px}
table.dataTable{border-collapse:collapse !important;min-width:0}
.dt-container{overflow-x:auto}
table.dataTable thead th{background:var(--bg-2);color:var(--muted);border-bottom:1px solid var(--line);
  font-size:11px;text-transform:uppercase;letter-spacing:.04em}
table.dataTable tbody td{border-bottom:1px solid var(--line)}
table.dataTable tbody tr{background:transparent}
table.dataTable.stripe tbody tr.odd,table.dataTable>tbody>tr.odd>*{box-shadow:none}
table.dataTable tbody tr:hover>*{background:var(--card-2)}
/* sort arrows */
table.dataTable thead th.dt-orderable-asc:hover,table.dataTable thead th.dt-orderable-desc:hover{color:var(--text);background:var(--card-2)}
table.dataTable thead .dt-column-order::before,table.dataTable thead .dt-column-order::after{opacity:.4}
/* pagination */
.dt-container .dt-paging{padding-top:10px}
.dt-container .dt-paging .dt-paging-button{color:var(--muted) !important;border:1px solid var(--line) !important;
  border-radius:8px;padding:5px 11px !important;margin-left:5px;background:var(--bg-2);min-width:34px}
.dt-container .dt-paging .dt-paging-button:hover:not(.current):not(.disabled){border-color:var(--brand) !important;color:var(--text) !important;background:var(--card-2) !important}
.dt-container .dt-paging .dt-paging-button.current{background:var(--grad) !important;color:var(--brand-ink) !important;border-color:transparent !important}
.dt-container .dt-paging .dt-paging-button.disabled{opacity:.4}
/* horizontal-scroll (scrollX) panes */
.dt-scroll-head,.dt-scroll-body{border:0}
.dt-scroll-body{border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius)}

/* ---- admin dashboard: finance + analytics ---- */
.sec-title{display:flex;align-items:center;gap:8px;font-size:15px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);margin:26px 0 14px}
.sec-title .ico{color:var(--brand)}
.kpi-top{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:8px}
.kpi-top .ico{color:var(--brand)}
.kpi-top .l{font-size:13px;font-weight:600}
.kpi .kpi-sub{font-size:12px;margin-top:4px;color:var(--muted-2)}
.kpi-hero{background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 14%,var(--card)),var(--card));
  border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
.kpi-hero .v{font-size:32px}
.period-card .period-row{display:flex;justify-content:space-between;gap:10px;margin-top:10px}
.period-card .pv{font-size:22px;font-weight:800}
.period-card .pv.grad{color:var(--brand)}

/* bar chart */
.chart{display:flex;align-items:flex-end;gap:8px;height:200px;padding-top:8px}
.chart .bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}
.chart .bar-stack{width:70%;max-width:34px;min-height:2px;display:flex;flex-direction:column;border-radius:6px 6px 0 0;
  overflow:hidden;background:var(--bg-2);transition:.2s}
.chart .bar:hover .bar-stack{filter:brightness(1.15)}
.chart .seg.profit{background:var(--grad)}
.chart .seg.cost{background:color-mix(in srgb,var(--muted) 45%,transparent)}
.chart .bar-x{font-size:11px;color:var(--muted-2)}
.chart-legend{display:flex;gap:18px;align-items:center;margin-top:14px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.chart-legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.chart-legend .dot.profit{background:var(--grad)}
.chart-legend .dot.cost{background:color-mix(in srgb,var(--muted) 45%,transparent)}

/* platform revenue bars */
.plat-row{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:12px;padding:7px 0}
.plat-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plat-label .brand-ico,.plat-label .ico{width:16px;height:16px}
.plat-bar{height:10px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.plat-bar div{height:100%;background:var(--grad);border-radius:999px}
.plat-val{font-size:13px;font-weight:700;white-space:nowrap}
@media(max-width:560px){.plat-row{grid-template-columns:110px 1fr}.plat-val{grid-column:2;justify-self:end}}

/* ---- admin ---- */
.admin-top{background:var(--bg-2);border-bottom:1px solid var(--line)}
.pagination{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}
.pagination a,.pagination span{padding:7px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--muted)}
.pagination .on{background:var(--grad);color:var(--brand-ink);border:0}

/* ---- theme/palette picker (admin) ---- */
.swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.swatch{cursor:pointer;border:2px solid var(--line);border-radius:14px;padding:12px;background:var(--card);transition:.12s;display:block}
.swatch:hover{border-color:var(--brand)}
.swatch input{display:none}
.swatch.sel{border-color:var(--brand);box-shadow:var(--ring)}
.swatch .bar{height:34px;border-radius:8px;margin-bottom:10px}
.swatch .lbl{font-size:13px;font-weight:700}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:380px}
.mode-card{cursor:pointer;border:2px solid var(--line);border-radius:14px;padding:18px;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:8px}
.mode-card input{display:none}
.mode-card.sel{border-color:var(--brand);box-shadow:var(--ring)}

/* ---- responsive ---- */
/* ---- mobile nav (hamburger + drawer) ---- */
.nav-burger{display:none;align-items:center;justify-content:center;background:var(--bg-2);
  border:1px solid var(--line);border-radius:10px;color:var(--text);width:38px;height:38px;cursor:pointer;flex:none}
.nav-drawer{display:none;flex-direction:column;gap:4px;max-width:1180px;margin:0 auto;padding:8px 20px 16px}
.nav-drawer a{color:var(--text);font-size:15px;font-weight:500;padding:11px 4px;border-bottom:1px solid var(--line)}
.nav-drawer a.btn{border-bottom:0;justify-content:center;margin-top:6px}
.nav-drawer.open{display:flex}

@media(max-width:900px){
  .hero-grid,.order-grid{grid-template-columns:1fr}
  .cols-3{grid-template-columns:1fr 1fr}
  .dash{grid-template-columns:1fr}
  .side{position:static;display:flex;flex-wrap:wrap}
  .nav-links{display:none}
  .nav-desk{display:none}            /* desktop-only actions move into the drawer */
  .nav-burger{display:inline-flex}
  .brand{min-width:0;white-space:nowrap}
}
@media(max-width:560px){
  .cols-3,.cols-2{grid-template-columns:1fr}
  .nav-wrap{gap:10px;padding:12px 16px}
  .nav-actions{gap:8px}
  .nav-drawer{padding-inline:16px}
}
