/* ============================================================
   WBF Client Portal v3 — themeable design system
   Light-first (default) + Dark via [data-theme] on <html>.
   Sora / DM Sans / JetBrains Mono. Signal-orange accent.

   Structure:
     1. Design tokens (ported from .desing/portal-v2/tokens.css)
     2. Base + shared atoms + buttons
     3. App shell + components (ported from .desing/portal-v2/portal.css)
     4. Legacy compatibility layer (re-skins the v1/v2 class + token
        names the existing PHP views still use, mapped onto the new
        themeable palette so every page themes correctly).
   ============================================================ */

/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */
:root{
  /* product identity colors (constant across themes) */
  --wp:#3B82F6;          /* WordPress — blue */
  --ps:#EC4899;          /* PrestaShop — magenta */
  --hz:#22C55E;          /* Hetzner — green */
  --cp:#14B8A6;          /* cPanel — teal */

  --f-display:'Sora',system-ui,sans-serif;
  --f-body:'DM Sans',system-ui,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;

  --col:1180px;
  --r:14px;        /* card radius */
  --r-sm:8px;      /* button radius */
  --r-xs:6px;      /* chip radius */

  /* accent (themeable via account preference) */
  --accent:#F97316;
  --accent-ink:#1c0d00;
}

/* ---------- LIGHT (default — warm paper) ---------- */
[data-theme="light"]{
  --bg:#FAF8F4;
  --bg-2:#F1EDE5;
  --surface:#FFFFFF;
  --surface-2:#F6F2EA;
  --elevated:#FFFFFF;
  --fg-strong:#15181E;
  --fg:#3B4049;
  --fg-soft:#646B75;
  --fg-muted:#8A909A;
  --fg-dim:#AEB3BB;
  --line:rgba(20,24,31,0.085);
  --line-2:rgba(20,24,31,0.15);
  --green:#15A34A;
  --accent-text:#D55A07;
  --shadow:0 22px 48px -30px rgba(43,33,20,0.32);
  --shadow-sm:0 2px 12px -6px rgba(43,33,20,0.20);
  --field:rgba(20,24,31,0.022);
  --glow:radial-gradient(120% 70% at 50% -8%, rgba(249,115,22,0.08), transparent 62%);
  --grid-line:rgba(20,24,31,0.035);
  color-scheme:light;
}

/* ---------- DARK ---------- */
[data-theme="dark"]{
  --bg:#0A0E17;
  --bg-2:#070A11;
  --surface:#121826;
  --surface-2:#0F141F;
  --elevated:#161D2C;
  --fg-strong:#F8FAFC;
  --fg:#DCE3EC;
  --fg-soft:#94A3B8;
  --fg-muted:#64748B;
  --fg-dim:#475569;
  --line:rgba(148,163,184,0.12);
  --line-2:rgba(148,163,184,0.21);
  --green:#22C55E;
  --accent-text:var(--accent);
  --shadow:0 26px 60px -30px rgba(0,0,0,0.85);
  --shadow-sm:0 3px 14px -6px rgba(0,0,0,0.65);
  --field:rgba(255,255,255,0.035);
  --glow:radial-gradient(120% 70% at 50% -8%, rgba(249,115,22,0.11), transparent 60%);
  --grid-line:rgba(148,163,184,0.05);
  color-scheme:dark;
}

/* default when no theme attribute is present yet (matches light) */
:root:not([data-theme]){
  --bg:#FAF8F4;--bg-2:#F1EDE5;--surface:#FFFFFF;--surface-2:#F6F2EA;--elevated:#FFFFFF;
  --fg-strong:#15181E;--fg:#3B4049;--fg-soft:#646B75;--fg-muted:#8A909A;--fg-dim:#AEB3BB;
  --line:rgba(20,24,31,0.085);--line-2:rgba(20,24,31,0.15);--green:#15A34A;--accent-text:#D55A07;
  --shadow:0 22px 48px -30px rgba(43,33,20,0.32);--shadow-sm:0 2px 12px -6px rgba(43,33,20,0.20);
  --field:rgba(20,24,31,0.022);--glow:radial-gradient(120% 70% at 50% -8%, rgba(249,115,22,0.08), transparent 62%);
  --grid-line:rgba(20,24,31,0.035);color-scheme:light;
}

/* ============================================================
   2. BASE + ATOMS + BUTTONS
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--f-body);font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  transition:background .4s ease, color .4s ease;
}
::selection{background:var(--accent);color:var(--accent-ink);}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--f-display);color:var(--fg-strong);margin:0;font-weight:700;letter-spacing:-0.03em;line-height:1.05;}
button{font-family:inherit;}
input,textarea,select{font-family:inherit;}

::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px;}

/* ambient page background */
.bg-field{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--glow);}

/* shared atoms */
.kicker{font-family:var(--f-mono);font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-text);display:inline-flex;align-items:center;gap:10px;}
.kicker.neutral{color:var(--fg-muted);}
.kicker .rule{width:24px;height:1px;background:currentColor;display:inline-block;opacity:.8;}
.acc{color:var(--accent-text);}
.mono{font-family:var(--f-mono);}

.pulse{width:8px;height:8px;border-radius:50%;background:var(--green);position:relative;flex:none;}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:ping 2.2s cubic-bezier(0,0,0.2,1) infinite;}
@keyframes ping{0%{transform:scale(1);opacity:.7;}70%,100%{transform:scale(2.8);opacity:0;}}
@media (prefers-reduced-motion: reduce){.pulse::after{animation:none;}}

/* product chip/icon (initials) */
.pico{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;flex:none;font-family:var(--f-mono);font-size:12px;font-weight:700;letter-spacing:0.02em;border:1px solid color-mix(in srgb, var(--pc) 42%, transparent);background:color-mix(in srgb, var(--pc) 14%, transparent);color:var(--pc);}

.tag{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:11px;letter-spacing:0.04em;color:var(--fg-soft);border:1px solid var(--line-2);border-radius:999px;padding:4px 10px;background:var(--field);}
.tag.ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 32%,transparent);background:color-mix(in srgb,var(--green) 9%, transparent);}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;font-family:var(--f-display);font-weight:600;font-size:14.5px;letter-spacing:-0.01em;padding:12px 20px;border-radius:var(--r-sm);border:1px solid transparent;white-space:nowrap;transition:transform .2s, background .2s, border-color .2s, color .2s, box-shadow .2s, filter .2s;text-decoration:none;}
.btn svg{width:16px;height:16px;}
.btn-primary{background:var(--accent);color:#16110a;box-shadow:0 8px 22px -12px var(--accent);}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 14px 30px -14px var(--accent);}
.btn-primary:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none;filter:none;}
.btn-ghost{background:var(--field);color:var(--fg-strong);border-color:var(--line-2);}
.btn-ghost:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--fg-strong) 6%, transparent);color:var(--fg-strong);}
.btn-ghost:disabled{opacity:.5;cursor:default;transform:none;}
.btn-block,.btn-full{width:100%;}
.btn-sm{padding:9px 14px;font-size:13px;}

.section{padding:clamp(40px,6vw,84px) 0;position:relative;}
.eyebrow{display:flex;flex-direction:column;gap:14px;margin-bottom:32px;}
.eyebrow h2{font-size:clamp(26px,3.6vw,40px);font-weight:700;letter-spacing:-0.02em;}
.eyebrow .lead{font-size:clamp(15px,1.6vw,18px);color:var(--fg-soft);line-height:1.55;max-width:60ch;}

/* reveal */
.reveal{opacity:1;transform:none;animation:revealIn .45s cubic-bezier(.2,.7,.2,1);}
@keyframes revealIn{from{transform:translateY(12px);}to{transform:none;}}
.reveal[data-d="1"]{animation-delay:.05s;}
.reveal[data-d="2"]{animation-delay:.1s;}
.reveal[data-d="3"]{animation-delay:.15s;}
@media (prefers-reduced-motion: reduce){.reveal{animation:none;}}

/* ============================================================
   3. APP SHELL + COMPONENTS  (ported from portal.css)
   ============================================================ */
.portal{position:relative;z-index:1;display:grid;grid-template-columns:264px 1fr;min-height:100vh;}
.portal-main{min-width:0;display:flex;flex-direction:column;min-height:100vh;}
.portal .main{flex:1;overflow-y:auto;padding:clamp(20px,3vw,40px) clamp(18px,3.5vw,48px) 0;margin:0;}
.page-inner{max-width:1080px;margin:0 auto;width:100%;padding-bottom:48px;}

/* ===== SIDEBAR ===== */
.side{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 16px;position:sticky;top:0;height:100vh;z-index:40;}
.side-brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:800;font-size:19px;color:var(--fg-strong);letter-spacing:-0.02em;padding:6px 8px 22px;cursor:pointer;}
.side-brand .mark{width:30px;height:30px;border-radius:8px;background:transparent;box-shadow:none;display:grid;place-items:center;flex:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1.5' y='1.5' width='41' height='41' rx='11' fill='none' stroke='%23F97316' stroke-width='3'/%3E%3Crect x='9' y='9' width='26' height='26' rx='6' fill='none' stroke='%23F97316' stroke-width='2' opacity='0.4'/%3E%3Ccircle cx='22' cy='22' r='4' fill='%23F97316'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;}
.side-brand .mark .mk-dot{display:none;}
.side-brand .dot{width:6px;height:6px;border-radius:1px;background:var(--accent);display:inline-block;margin:0 1px;transform:translateY(1px);}
.side-brand .s{font-weight:600;color:var(--fg-soft);}
.side-nav{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto;}
.side-group-label{font-family:var(--f-mono);font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--fg-dim);padding:18px 10px 8px;}
.side-group-label:first-child{padding-top:4px;}
.side-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;font-family:var(--f-display);font-weight:500;font-size:14.5px;color:var(--fg-soft);background:transparent;border:0;text-align:left;width:100%;transition:background .18s, color .18s;letter-spacing:-0.01em;text-decoration:none;}
.side-item svg{flex:none;color:var(--fg-muted);transition:color .18s;}
.side-item:hover{background:var(--field);color:var(--fg-strong);}
.side-item:hover svg{color:var(--fg-soft);}
.side-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent-text);}
.side-item.active svg{color:var(--accent-text);}
.side-badge{margin-left:auto;font-family:var(--f-mono);font-size:10px;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:1px 7px;font-weight:600;}
.side-sub{margin-left:14px;padding-left:10px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px;}
.side-sub .side-item{font-size:13px;padding:8px 10px;}
.side-cta{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;padding:12px;border-radius:10px;background:var(--accent);color:var(--accent-ink);border:0;cursor:pointer;font-family:var(--f-display);font-weight:600;font-size:14px;letter-spacing:-0.01em;box-shadow:0 8px 22px -12px var(--accent);transition:transform .2s, filter .2s;text-decoration:none;}
.side-cta:hover{transform:translateY(-2px);filter:brightness(1.05);}
.side-backdrop{display:none;}
.hidden{display:none;}

@media(max-width:920px){
  .portal{grid-template-columns:1fr;}
  .side{position:fixed;left:0;top:0;width:270px;transform:translateX(-100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow);}
  .side.open{transform:none;}
  .side-backdrop{display:block;position:fixed;inset:0;z-index:39;background:rgba(8,10,16,.5);backdrop-filter:blur(2px);}
}

/* ===== TOPBAR ===== */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:12px clamp(18px,3.5vw,48px);background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.burger{display:none;width:38px;height:38px;border-radius:9px;border:1px solid var(--line-2);background:var(--field);color:var(--fg-strong);cursor:pointer;place-items:center;flex:none;}
@media(max-width:920px){.burger{display:grid;}}
.topsearch{flex:1;max-width:440px;display:flex;align-items:center;gap:10px;background:var(--field);border:1px solid var(--line-2);border-radius:10px;padding:9px 14px;color:var(--fg-muted);transition:border-color .2s;}
.topsearch:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,transparent);}
.topsearch input{flex:1;background:transparent;border:0;outline:none;color:var(--fg-strong);font-size:14px;}
.topsearch input::placeholder{color:var(--fg-muted);}
.top-tools{display:flex;align-items:center;gap:10px;margin-left:auto;}
.lang-switch{display:inline-flex;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;background:var(--field);}
.lang-switch a,.lang-switch button{font-family:var(--f-mono);font-size:11.5px;font-weight:500;letter-spacing:0.04em;color:var(--fg-soft);background:transparent;border:0;padding:7px 11px;cursor:pointer;transition:.2s;text-decoration:none;display:inline-flex;align-items:center;}
.lang-switch a.on,.lang-switch button.on{background:var(--accent);color:var(--accent-ink);}
.theme-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--line-2);background:var(--field);color:var(--fg-soft);cursor:pointer;transition:.2s;flex:none;}
.theme-btn:hover{color:var(--fg-strong);}
@media(max-width:680px){.topsearch{display:none;}}

.acctwrap{position:relative;}
.acctbtn{display:flex;align-items:center;gap:10px;background:var(--field);border:1px solid var(--line-2);border-radius:10px;padding:6px 10px 6px 6px;cursor:pointer;transition:.2s;}
.acctbtn:hover{background:color-mix(in srgb,var(--fg-strong) 5%,transparent);}
.avatar{width:32px;height:32px;border-radius:8px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:13px;flex:none;}
.avatar-lg{width:52px;height:52px;border-radius:13px;font-size:20px;}
.acct-meta{display:flex;flex-direction:column;line-height:1.2;text-align:left;}
.acct-meta b{font-family:var(--f-display);font-size:13px;color:var(--fg-strong);font-weight:600;}
.acct-meta span{font-family:var(--f-mono);font-size:10.5px;color:var(--fg-muted);}
.acctbtn svg{color:var(--fg-muted);}
@media(max-width:560px){.acct-meta{display:none;}}
.acctmenu{position:absolute;right:0;top:calc(100% + 8px);width:220px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow);padding:6px;z-index:50;animation:popIn .18s ease;}
@keyframes popIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
.acctmenu a,.acctmenu button{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border-radius:8px;background:transparent;border:0;cursor:pointer;font-family:var(--f-display);font-size:13.5px;color:var(--fg);text-align:left;transition:.15s;text-decoration:none;}
.acctmenu a:hover,.acctmenu button:hover{background:var(--field);color:var(--fg-strong);}
.acctmenu a svg,.acctmenu button svg{color:var(--fg-muted);}
.acctmenu .danger{color:#E5484D;}
.acctmenu .danger svg{color:#E5484D;}
.acctmenu-sep{height:1px;background:var(--line);margin:6px 4px;}

/* ===== PAGE HEAD ===== */
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap;}
.pagehead h1{font-size:clamp(23px,2.4vw,30px);font-weight:800;letter-spacing:-0.025em;line-height:1.1;margin-top:6px;}
.pagehead-sub{color:var(--fg-soft);font-size:15.5px;margin:8px 0 0;max-width:56ch;line-height:1.55;}
.pagehead .kicker{margin-bottom:2px;}

/* ===== CARD ===== */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:clamp(18px,2.2vw,24px);}
.card-flush{padding:0;}
.card-pad{padding:clamp(18px,2.2vw,24px);}
.card-click{cursor:pointer;transition:transform .2s, border-color .2s, box-shadow .2s;}
.card-click:hover{transform:translateY(-2px);border-color:var(--line-2);box-shadow:var(--shadow);}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);}
.card-head h3{font-size:16px;font-weight:600;letter-spacing:-0.02em;display:flex;align-items:center;gap:8px;margin:0;}
.link-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;cursor:pointer;font-family:var(--f-display);font-size:13px;font-weight:500;color:var(--accent-text);transition:gap .2s;text-decoration:none;}
.link-btn:hover{gap:9px;}
.muted-p{color:var(--fg-soft);font-size:14px;margin:0 0 16px;}

/* ===== PILLS / STATUS ===== */
.pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:0.03em;padding:4px 10px;border-radius:999px;border:1px solid var(--line-2);background:var(--field);color:var(--fg-soft);white-space:nowrap;}
.pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.pill-ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,transparent);background:color-mix(in srgb,var(--green) 9%,transparent);}
.pill-warn{color:#D98315;border-color:color-mix(in srgb,#E5A53B 38%,transparent);background:color-mix(in srgb,#E5A53B 12%,transparent);}
.pill-danger{color:#E5484D;border-color:color-mix(in srgb,#E5484D 34%,transparent);background:color-mix(in srgb,#E5484D 10%,transparent);}
.pill-info{color:var(--wp);border-color:color-mix(in srgb,var(--wp) 34%,transparent);background:color-mix(in srgb,var(--wp) 10%,transparent);}
.pill-muted{color:var(--fg-muted);}

/* ===== HELP TIP ===== */
.helptip{position:relative;display:inline-flex;align-items:center;color:var(--fg-muted);cursor:help;outline:none;}
.helptip:hover,.helptip:focus{color:var(--accent-text);}
.helptip-pop{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);width:230px;background:var(--elevated);border:1px solid var(--line-2);border-radius:10px;padding:11px 13px;font-family:var(--f-body);font-size:12.5px;line-height:1.5;color:var(--fg);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;z-index:60;letter-spacing:0;text-transform:none;font-weight:400;}
.helptip:hover .helptip-pop,.helptip:focus .helptip-pop{opacity:1;transform:translateX(-50%);}

/* ===== COPY FIELD ===== */
.copyfield{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:6px 6px 6px 14px;overflow:hidden;}
.copyfield code{flex:1;font-size:13px;color:var(--fg-strong);overflow-x:auto;white-space:nowrap;scrollbar-width:none;font-family:var(--f-mono);}
.copyfield code::-webkit-scrollbar{display:none;}
.copybtn{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-display);font-size:12.5px;font-weight:600;flex:none;background:var(--accent);color:var(--accent-ink);border:0;border-radius:7px;padding:8px 13px;cursor:pointer;transition:.2s;}
.copybtn:hover{filter:brightness(1.05);}
.copybtn.done{background:var(--green);}

/* buttons (extra) */
.btn-danger{background:color-mix(in srgb,#E5484D 12%,transparent);color:#E5484D;border:1px solid color-mix(in srgb,#E5484D 34%,transparent);}
.btn-danger:hover{background:#E5484D;color:#fff;transform:translateY(-2px);}
.iconbtn{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-2);background:var(--field);color:var(--fg-soft);cursor:pointer;display:grid;place-items:center;transition:.2s;}
.iconbtn:hover{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 40%,transparent);}
.spin{width:15px;height:15px;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent-ink) 35%,transparent);border-top-color:var(--accent-ink);animation:gspin .7s linear infinite;display:inline-block;}
@keyframes gspin{to{transform:rotate(360deg);}}

/* ===== HOME ===== */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;}
@media(max-width:860px){.stat-grid{grid-template-columns:repeat(2,1fr);}}
.stat{display:flex;flex-direction:column;gap:3px;position:relative;overflow:hidden;}
.stat-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;margin-bottom:10px;color:var(--pc,var(--accent));background:color-mix(in srgb,var(--pc,var(--accent)) 13%,transparent);border:1px solid color-mix(in srgb,var(--pc,var(--accent)) 26%,transparent);}
.stat-val{font-family:var(--f-display);font-weight:800;font-size:30px;letter-spacing:-0.03em;color:var(--fg-strong);line-height:1;}
.stat-val.accent{color:var(--accent-text);}
.stat-lab{font-size:13px;color:var(--fg-soft);margin-top:4px;}
.stat-sub{font-family:var(--f-mono);font-size:10.5px;color:var(--fg-muted);margin-top:3px;}

.home-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;}
@media(max-width:900px){.home-cols{grid-template-columns:1fr;}}

.connmini-list{display:flex;flex-direction:column;}
.connmini{display:flex;align-items:center;gap:13px;padding:14px 20px;border-top:1px solid var(--line);background:transparent;border-left:0;border-right:0;border-bottom:0;cursor:pointer;text-align:left;width:100%;transition:background .15s;text-decoration:none;}
.connmini:first-child{border-top:0;}
.connmini:hover{background:var(--field);}
.connmini-main{flex:1;min-width:0;}
.connmini-main b{display:block;font-family:var(--f-display);font-size:14px;font-weight:600;color:var(--fg-strong);letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.connmini-main span{font-size:11px;color:var(--fg-muted);}
.connmini-go{color:var(--fg-dim);flex:none;}
.connmini:hover .connmini-go{color:var(--accent-text);}

.actlist{display:flex;flex-direction:column;}
.actrow{display:flex;align-items:flex-start;gap:12px;padding:13px 20px;border-top:1px solid var(--line);}
.actrow:first-child{border-top:0;}
.act-ic{width:30px;height:30px;border-radius:8px;flex:none;display:grid;place-items:center;color:var(--pc,var(--accent));background:color-mix(in srgb,var(--pc,var(--accent)) 13%,transparent);}
.act-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.act-main > span:first-child{font-size:13.5px;color:var(--fg);line-height:1.45;}
.act-main b{color:var(--fg-strong);font-weight:600;}
.act-time{font-size:10.5px;color:var(--fg-muted);}

.attention-banner{display:flex;align-items:center;gap:14px;padding:16px 20px;margin-bottom:20px;cursor:pointer;border-color:color-mix(in srgb,#E5A53B 36%,transparent);background:color-mix(in srgb,#E5A53B 8%,transparent);text-decoration:none;}
.ab-ic{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;color:#D98315;background:color-mix(in srgb,#E5A53B 16%,transparent);}
.ab-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ab-main b{font-family:var(--f-display);font-size:14.5px;color:var(--fg-strong);font-weight:600;}
.ab-main span{font-size:13px;color:var(--fg-soft);}

.getstarted{text-align:center;padding:clamp(36px,6vw,64px) 28px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;margin-bottom:16px;}
.getstarted::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 60% at 50% 0%, color-mix(in srgb,var(--accent) 9%,transparent), transparent 65%);}
.getstarted > *{position:relative;}
.gs-spark{width:64px;height:64px;border-radius:18px;margin:0 auto 20px;display:grid;place-items:center;color:var(--accent-text);background:color-mix(in srgb,var(--accent) 13%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);}
.getstarted h2{font-size:clamp(22px,3vw,28px);letter-spacing:-0.03em;}
.getstarted p{color:var(--fg-soft);font-size:15.5px;max-width:44ch;margin:12px auto 24px;line-height:1.55;}
.gs-products{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;margin-top:30px;padding-top:26px;border-top:1px solid var(--line);}
.gs-prod{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-display);font-size:13.5px;font-weight:500;color:var(--fg-soft);}
.helpcard{display:flex;align-items:center;gap:16px;cursor:pointer;text-decoration:none;}
.hc-ic{width:44px;height:44px;border-radius:11px;flex:none;display:grid;place-items:center;color:var(--accent-text);background:color-mix(in srgb,var(--accent) 12%,transparent);}
.helpcard b{font-family:var(--f-display);font-size:15px;color:var(--fg-strong);}
.helpcard p{margin:3px 0 0;font-size:13.5px;color:var(--fg-soft);}
.hc-go{color:var(--fg-dim);flex:none;}
.helpcard:hover .hc-go{color:var(--accent-text);}

/* ===== TABS ===== */
.tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-display);font-size:14px;font-weight:500;color:var(--fg-soft);background:transparent;border:0;border-bottom:2px solid transparent;padding:11px 14px;cursor:pointer;transition:.2s;white-space:nowrap;margin-bottom:-1px;letter-spacing:-0.01em;text-decoration:none;}
.tab:hover{color:var(--fg-strong);}
.tab.on{color:var(--accent-text);border-bottom-color:var(--accent);}
.tab-count{font-family:var(--f-mono);font-size:10.5px;color:var(--fg-muted);background:var(--field);border:1px solid var(--line-2);border-radius:999px;padding:1px 7px;}
.tab.on .tab-count{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 34%,transparent);}

/* ===== CONNECTIONS TABLE ===== */
.connrow{display:grid;grid-template-columns:2.4fr 1.4fr 1.1fr 1.3fr 28px;align-items:center;gap:16px;padding:15px 22px;border-top:1px solid var(--line);background:transparent;width:100%;text-align:left;transition:background .15s;text-decoration:none;}
.connrow:hover{background:var(--field);}
.connrow-head{cursor:default;border-top:0;}
.connrow-head span{font-family:var(--f-mono);font-size:9.5px;letter-spacing:0.13em;text-transform:uppercase;color:var(--fg-dim);}
.connrow-head:hover{background:transparent;}
.connrow-list{display:flex;flex-direction:column;}
.cr-name{display:flex;align-items:center;gap:13px;min-width:0;}
.cr-name b{display:block;font-family:var(--f-display);font-size:14.5px;font-weight:600;color:var(--fg-strong);letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cr-name span{font-size:11px;color:var(--fg-muted);}
.cr-type{font-size:12px;color:var(--fg-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cr-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.cr-go{color:var(--fg-dim);}
.connrow:hover .cr-go{color:var(--accent-text);}
@media(max-width:860px){
  .connrow{grid-template-columns:1fr;gap:10px;}
  .connrow-head,.cr-type{display:none;}
}

/* ===== EMPTY STATE ===== */
.empty-state{text-align:center;padding:clamp(40px,7vw,72px) 28px;}
.empty-ic{width:66px;height:66px;border-radius:18px;margin:0 auto 22px;display:grid;place-items:center;color:var(--fg-muted);background:var(--field);border:1px solid var(--line-2);}
.empty-state h2{font-size:clamp(20px,3vw,26px);letter-spacing:-0.03em;}
.empty-state p{color:var(--fg-soft);font-size:15px;max-width:40ch;margin:12px auto 24px;line-height:1.55;}

/* ===== FIELDS ===== */
.field{margin-bottom:18px;}
.field label,.field-label{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:8px;}
.field input,.field select,.field textarea{width:100%;background:var(--field);border:1px solid var(--line-2);border-radius:10px;color:var(--fg-strong);font-size:15px;padding:12px 14px;outline:none;transition:.2s;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);}
.field input::placeholder,.field textarea::placeholder{color:var(--fg-muted);}
/* Neutralize the browser autofill yellow/olive wash so fields keep the theme look */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,
textarea:-webkit-autofill,select:-webkit-autofill{
  -webkit-text-fill-color:var(--fg-strong);
  -webkit-box-shadow:0 0 0 1000px var(--surface) inset;
  box-shadow:0 0 0 1000px var(--surface) inset;
  caret-color:var(--fg-strong);
  border-color:var(--line-2);
  transition:background-color 600000s 0s, color 600000s 0s;
}
input:-webkit-autofill{border-radius:10px;}
.field-row{display:flex;gap:16px;flex-wrap:wrap;}
.field-row > .field{flex:1;min-width:140px;}
.toggle{width:42px;height:24px;border-radius:999px;background:var(--line-2);position:relative;cursor:pointer;transition:.2s;flex:none;border:0;}
.toggle span{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.toggle.on{background:var(--green);}
.toggle.on span{left:21px;}

.setrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line);}
.setrow:first-child{border-top:0;padding-top:0;}
.setrow > div b{display:block;font-family:var(--f-display);font-size:14.5px;font-weight:600;color:var(--fg-strong);}
.setrow > div span{font-size:13px;color:var(--fg-soft);margin-top:2px;display:block;}

/* ===== LICENSES ===== */
.lic-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px;}
@media(max-width:760px){.lic-grid{grid-template-columns:1fr;}}
.lic-card{padding:20px;position:relative;overflow:hidden;}
.lic-card::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--pc,var(--accent));}
.lic-top{display:flex;align-items:center;gap:13px;margin-bottom:16px;}
.lic-titles{flex:1;min-width:0;}
.lic-titles b{display:block;font-family:var(--f-display);font-size:16px;font-weight:600;color:var(--fg-strong);letter-spacing:-0.02em;}
.lic-titles span{font-size:12px;color:var(--fg-muted);}
.lic-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--line);}
.lic-renew{font-size:11.5px;color:var(--fg-soft);display:inline-flex;align-items:center;gap:7px;}
.lic-free{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow-sm);}
.lic-free .card-head{padding:0 0 8px;border:0;}
.free-row{display:flex;flex-direction:column;gap:12px;margin-top:8px;}
.free-prod{display:flex;align-items:center;gap:11px;font-family:var(--f-display);font-size:14.5px;font-weight:500;color:var(--fg);}
.free-prod .pill{margin-left:auto;}
.lic-badges{display:flex;align-items:center;gap:8px;margin-top:5px;flex-wrap:wrap;}
.lic-sku{font-family:var(--f-mono);font-size:10px;color:var(--fg-dim);letter-spacing:0.02em;}
.lic-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;}
.lic-stat-lab{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:5px;}
.lic-stat b{font-family:var(--f-display);font-size:16px;font-weight:700;color:var(--fg-strong);}
.lic-keywrap{margin-bottom:16px;}

/* ===== BILLING ===== */
.bill-top{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
@media(max-width:760px){.bill-top{grid-template-columns:1fr;}}
.bill-stat-lab{font-family:var(--f-mono);font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:10px;}
.bill-plan-name{font-family:var(--f-display);font-size:24px;font-weight:800;letter-spacing:-0.03em;color:var(--fg-strong);margin-bottom:12px;}
.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
.plan{padding:24px;display:flex;flex-direction:column;position:relative;}
.plan.popular{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent), var(--shadow-sm);}
.plan.current{background:var(--surface-2);}
.plan-badge{position:absolute;top:-10px;left:24px;font-family:var(--f-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:3px 10px;font-weight:600;}
.plan-name{font-family:var(--f-display);font-size:17px;font-weight:700;color:var(--fg-strong);letter-spacing:-0.02em;}
.plan-price{font-family:var(--f-display);font-size:34px;font-weight:800;letter-spacing:-0.03em;color:var(--fg-strong);margin:10px 0 18px;line-height:1;}
.plan-price span{font-family:var(--f-mono);font-size:12px;font-weight:400;color:var(--fg-muted);letter-spacing:0;margin-left:6px;}
.plan-feats{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:11px;flex:1;}
.plan-feats li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--fg);line-height:1.4;}
.plan-feats li svg{color:var(--green);flex:none;margin-top:3px;}
.inv-table{width:100%;border-collapse:collapse;}
.inv-table th{font-family:var(--f-mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg-dim);text-align:left;padding:12px 16px;font-weight:500;border-bottom:1px solid var(--line);}
.inv-table td{font-size:13.5px;color:var(--fg);padding:13px 16px;border-top:1px solid var(--line);}

/* ===== ACCOUNT ===== */
.acct-card{padding:24px;margin-bottom:16px;}
.acct-card .card-head{padding:0 0 18px;border:0;}
.acct-id{display:flex;align-items:center;gap:16px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line);}
.acct-id b{display:block;font-family:var(--f-display);font-size:18px;font-weight:700;color:var(--fg-strong);letter-spacing:-0.02em;}
.acct-id span{font-size:13px;color:var(--fg-muted);}
.acct-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px;}
@media(max-width:600px){.acct-fields{grid-template-columns:1fr;}}
.acct-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
@media(max-width:820px){.acct-cols{grid-template-columns:1fr;}}

/* ===== HELP ===== */
.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media(max-width:820px){.help-grid{grid-template-columns:1fr;}}
.help-card{display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:transform .2s, border-color .2s, box-shadow .2s;text-decoration:none;}
.help-card:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:var(--shadow);}
.help-ic{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;color:var(--accent-text);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);margin-bottom:4px;}
.help-card b{font-family:var(--f-display);font-size:16px;font-weight:600;color:var(--fg-strong);letter-spacing:-0.02em;}
.help-card p{font-size:13.5px;color:var(--fg-soft);margin:0;flex:1;line-height:1.5;}
.help-link{font-family:var(--f-mono);font-size:11px;letter-spacing:0.04em;color:var(--accent-text);margin-top:4px;}
.help-card:hover .help-link{text-decoration:underline;}
.help-contact{display:flex;gap:40px;flex-wrap:wrap;margin-top:4px;}
.help-contact .field-label{margin-bottom:6px;}
.help-contact b,.help-contact a{font-family:var(--f-display);font-size:14px;color:var(--fg-strong);}
.help-go{font-family:var(--f-mono);font-size:12px;color:var(--accent-text);display:inline-flex;align-items:center;gap:7px;margin-top:6px;}

/* ===== FOOTER ===== */
.portal-foot{padding:32px 0 24px;margin-top:24px;border-top:1px solid var(--line);text-align:center;}
.portal-foot .foot-links{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin-bottom:10px;}
.portal-foot .foot-links a,.portal-foot .foot-links span{font-family:var(--f-mono);font-size:11.5px;letter-spacing:0.04em;color:var(--fg-muted);cursor:pointer;text-decoration:none;}
.portal-foot .foot-links a:hover,.portal-foot .foot-links span:hover{color:var(--fg-strong);}
.portal-foot .foot-legal{font-family:var(--f-mono);font-size:11px;color:var(--fg-dim);margin:0;line-height:1.7;}
.portal-foot .foot-legal a{color:var(--fg-muted);}

/* ===== PLAN TAG BADGES ===== */
.plan-tag{font-family:var(--f-mono);font-size:9.5px;font-weight:600;letter-spacing:0.06em;padding:2px 8px;border-radius:6px;border:1px solid;display:inline-flex;align-items:center;}
.tag-free{color:var(--green);border-color:color-mix(in srgb,var(--green) 36%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent);}
.tag-pro{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 11%,transparent);}
.tag-agency{color:var(--wp);border-color:color-mix(in srgb,var(--wp) 40%,transparent);background:color-mix(in srgb,var(--wp) 11%,transparent);}

/* ===== STORE (products) ===== */
.store-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media(max-width:760px){.store-grid{grid-template-columns:1fr;}}
.store-card{display:flex;flex-direction:column;gap:11px;position:relative;overflow:hidden;}
.store-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--pc,var(--accent));transform:scaleX(0);transform-origin:left;transition:transform .35s;}
.store-card:hover::before{transform:scaleX(1);}
.sc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.store-card h3{font-size:18px;letter-spacing:-0.02em;}
.sc-blurb{font-size:14px;color:var(--fg-soft);line-height:1.5;flex:1;margin:0;}
.sc-meta{font-size:11px;color:var(--fg-muted);}
.sc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;padding-top:14px;border-top:1px solid var(--line);}
.sc-price{display:flex;align-items:baseline;gap:5px;}
.sc-price b{font-family:var(--f-display);font-size:22px;font-weight:800;letter-spacing:-0.03em;color:var(--fg-strong);}
.sc-from{font-family:var(--f-mono);font-size:10px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:0.08em;}
.sc-mo{font-family:var(--f-mono);font-size:12px;color:var(--fg-muted);}

.sel-head{display:flex;align-items:center;gap:16px;margin-bottom:24px;}
.sel-head h1{font-size:clamp(24px,3.2vw,32px);letter-spacing:-0.03em;line-height:1.05;}
.sel-head p{color:var(--fg-soft);font-size:15px;margin:6px 0 0;}
.cycle-toggle{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.cycle-lab{font-family:var(--f-mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg-muted);}
.backlink{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:0.04em;color:var(--fg-soft);background:none;border:0;cursor:pointer;margin-bottom:18px;text-decoration:none;}
.backlink:hover{color:var(--accent-text);}
.plan-sku{font-family:var(--f-mono);font-size:11px;color:var(--fg-muted);margin:0 0 16px;}
.plan-feats{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:9px;}
.plan-feats li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--fg-soft);line-height:1.45;}
.plan-feats li svg{color:var(--green);flex:none;margin-top:2px;}
.plan{display:flex;flex-direction:column;position:relative;}
.waitlist-note{font-size:12.5px;color:var(--fg-muted);line-height:1.5;margin:0 0 14px;}
.seg{display:inline-flex;background:var(--field);border:1px solid var(--line-2);border-radius:10px;padding:3px;gap:3px;}
.seg button{font-family:var(--f-display);font-size:13px;font-weight:500;color:var(--fg-soft);background:transparent;border:0;border-radius:7px;padding:8px 14px;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:8px;}
.seg button.on{background:var(--accent);color:#16110a;}
.seg-save{font-family:var(--f-mono);font-size:9px;background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green);border-radius:5px;padding:1px 5px;letter-spacing:0.02em;}
.seg button.on .seg-save{background:rgba(0,0,0,0.18);color:#16110a;}

/* ===== REDEEM ===== */
.redeem-box{margin-bottom:28px;}
.redeem-card{padding:22px;}
.redeem-body{font-size:14px;color:var(--fg-soft);margin:0 0 16px;}
.redeem-format{font-size:11.5px;color:var(--fg-muted);display:block;margin-top:4px;}
.redeem-form{display:flex;gap:12px;}
@media(max-width:560px){.redeem-form{flex-direction:column;}}
.redeem-input{flex:1;background:var(--field);border:1px solid var(--line-2);border-radius:10px;color:var(--fg-strong);font-size:15px;padding:13px 16px;outline:none;transition:.2s;letter-spacing:0.04em;font-family:var(--f-mono);}
.redeem-input:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);}

/* ===== AUTH ===== */
.auth-wrap{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:40px 20px;}
.auth-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(80% 60% at 50% 32%, color-mix(in srgb,var(--accent) 10%,transparent), transparent 70%);}
.auth-card{width:min(460px,100%);background:var(--surface);border:1px solid var(--line-2);border-radius:20px;padding:clamp(28px,4vw,42px);box-shadow:var(--shadow);text-align:center;position:relative;overflow:hidden;}
.auth-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 45% at 50% 0%, color-mix(in srgb,var(--accent) 7%,transparent), transparent 60%);}
.auth-card > *{position:relative;}
.auth-brand{display:flex;justify-content:center;align-items:center;gap:10px;font-family:var(--f-display);font-weight:800;font-size:20px;color:var(--fg-strong);letter-spacing:-0.02em;margin-bottom:22px;}
.auth-brand .mark{width:34px;height:34px;border-radius:10px;background:transparent;display:grid;place-items:center;box-shadow:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1.5' y='1.5' width='41' height='41' rx='11' fill='none' stroke='%23F97316' stroke-width='3'/%3E%3Crect x='9' y='9' width='26' height='26' rx='6' fill='none' stroke='%23F97316' stroke-width='2' opacity='0.4'/%3E%3Ccircle cx='22' cy='22' r='4' fill='%23F97316'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;background-position:center;}
.auth-brand .mark .mk-dot{display:none;}
.auth-brand .wm-text{display:inline-flex;align-items:center;}
.auth-brand .dot{width:6px;height:6px;border-radius:1px;background:var(--accent);display:inline-block;margin:0 1px;transform:translateY(1px);}
.auth-brand .s{font-weight:600;color:var(--fg-soft);}
.auth-card h1{font-size:clamp(23px,3vw,29px);letter-spacing:-0.03em;}
.auth-sub{color:var(--fg-soft);font-size:14.5px;line-height:1.55;max-width:36ch;margin:10px auto 26px;}
.auth-card form{text-align:left;}
.auth-card .field{margin-bottom:14px;}
.auth-card form .btn{margin-top:6px;}
.auth-footer{margin-top:22px;font-size:13px;color:var(--fg-soft);}
.auth-footer a{color:var(--accent-text);font-weight:600;}
.auth-footer a:hover{text-decoration:underline;}
.auth-divider{margin:18px 0;border:0;border-top:1px solid var(--line);}
.auth-note{font-size:12px;color:var(--fg-muted);line-height:1.5;}
.pw-meter{height:5px;border-radius:3px;background:var(--field);overflow:hidden;margin-top:8px;}
.pw-meter span{display:block;height:100%;width:0;background:var(--accent);transition:width .25s, background .25s;}
.pw-hint{font-size:11px;color:var(--fg-muted);margin-top:6px;display:block;}
.auth-switch{margin-top:20px;font-size:12.5px;color:var(--fg-muted);}
.auth-switch a{color:var(--accent-text);cursor:pointer;font-weight:500;}
.auth-switch a:hover{text-decoration:underline;}
.auth-terms{font-size:11px;color:var(--fg-muted);margin:18px auto 0;max-width:34ch;line-height:1.5;}
.auth-secure{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:10.5px;color:var(--fg-dim);display:flex;align-items:center;justify-content:center;gap:7px;letter-spacing:0.03em;}
.auth-secure svg{color:var(--green);}
.auth-or{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--fg-muted);font-family:var(--f-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line);}

/* product chip squares used across pages (color via .orange/.blue/.green/.teal or --pc) */
.product-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:14px;font-weight:800;flex-shrink:0;border:1px solid;}
.product-icon.sm{width:32px;height:32px;font-size:11px;border-radius:8px;}
.product-icon.orange{color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);}
.product-icon.blue{color:var(--wp);background:color-mix(in srgb,var(--wp) 13%,transparent);border-color:color-mix(in srgb,var(--wp) 30%,transparent);}
.product-icon.green{color:var(--hz);background:color-mix(in srgb,var(--hz) 13%,transparent);border-color:color-mix(in srgb,var(--hz) 30%,transparent);}
.product-icon.teal{color:var(--cp);background:color-mix(in srgb,var(--cp) 13%,transparent);border-color:color-mix(in srgb,var(--cp) 30%,transparent);}

/* ===== ONBOARDING WIZARD ===== */
.wizard{max-width:680px;margin:0 auto;}
.wiz-top{display:flex;align-items:center;gap:16px;margin-bottom:34px;flex-wrap:wrap;}
.wiz-count{font-family:var(--f-mono);font-size:11px;color:var(--fg-muted);margin-left:auto;}
.stepper{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;min-width:180px;}
.step-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--fg-muted);background:var(--field);border:1px solid var(--line-2);flex:none;transition:.25s;}
.step-dot.on{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);}
.step-dot.done{color:#fff;background:var(--accent);border-color:var(--accent);}
.step-bar{flex:1;max-width:60px;height:2px;border-radius:2px;background:var(--line-2);transition:.25s;}
.step-bar.done{background:var(--accent);}
.wiz-step h1{font-size:clamp(22px,2.4vw,28px);font-weight:800;letter-spacing:-0.025em;line-height:1.1;text-align:center;}
.wiz-sub{color:var(--fg-soft);font-size:14.5px;text-align:center;margin:8px 0 26px;line-height:1.55;}
.wiz-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.wizprod{display:flex;align-items:center;gap:14px;text-align:left;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);text-decoration:none;cursor:pointer;transition:.18s;}
.wizprod:hover{border-color:color-mix(in srgb,var(--pc,var(--accent)) 45%,transparent);transform:translateY(-2px);box-shadow:var(--shadow);}
.wizprod .wp-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.wizprod .wp-meta b{font-family:var(--f-display);font-size:15px;color:var(--fg-strong);}
.wizprod .wp-meta span{font-size:12.5px;color:var(--fg-soft);line-height:1.4;}
.wizprod .wp-foot{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none;}
.wiz-card{max-width:520px;margin:0 auto;text-align:left;}
.wiz-card .btn-block,.btn-block{width:100%;justify-content:center;}
.wiz-hint{display:block;font-size:11.5px;color:var(--fg-muted);margin-top:6px;line-height:1.45;}
.wiz-install{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);}
.wiz-install:first-child{padding-top:0;}
.wiz-install .wi-num{width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent-text);display:grid;place-items:center;font-family:var(--f-mono);font-size:12px;font-weight:600;flex:none;}
.wiz-install b{display:block;font-size:14px;color:var(--fg-strong);margin-bottom:3px;}
.wiz-install p{font-size:12.5px;color:var(--fg-soft);margin:0 0 10px;line-height:1.5;}
.wiz-clients{display:flex;flex-wrap:wrap;gap:8px;}
.wizclient{padding:8px 14px;border-radius:9px;border:1px solid var(--line-2);background:var(--field);color:var(--fg-soft);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.15s;}
.wizclient:hover{color:var(--fg-strong);border-color:var(--line);}
.wizclient.sel{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);}
.wiz-foot{display:flex;align-items:center;gap:12px;margin-top:22px;}
.wiz-done{text-align:center;}
.done-ring{width:84px;height:84px;border-radius:50%;margin:0 auto 20px;display:grid;place-items:center;color:#fff;background:var(--accent);box-shadow:0 12px 32px -12px var(--accent);}
.done-card{display:flex;align-items:center;gap:14px;max-width:420px;margin:22px auto 0;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);text-align:left;}
.done-card .done-meta{flex:1;display:flex;flex-direction:column;gap:2px;}
.done-card .done-meta b{font-family:var(--f-display);font-size:15px;color:var(--fg-strong);}
.done-card .done-meta span{font-size:12px;color:var(--fg-muted);}

/* ============================================================
   4. LEGACY COMPATIBILITY LAYER
   Re-skins the v1/v2 class names + token names the existing PHP
   views still reference, mapped onto the themeable palette.
   Token aliases resolve per-theme because the referenced tokens
   (--fg-strong, --surface, …) are set on [data-theme].
   ============================================================ */
:root{
  /* legacy color tokens -> themed tokens */
  --void:var(--bg-2);
  --black:var(--bg);
  --dark:var(--surface);
  --slate:var(--surface-2);
  --steel:var(--line-2);
  --muted:var(--fg-muted);
  --light:var(--fg-soft);
  --off-white:var(--fg);
  --off:var(--fg);
  --white:var(--fg-strong);
  --accent-hover:var(--accent);
  --accent-deep:var(--accent);
  --success:var(--green);
  --warning:#E5A53B;
  --error:#E5484D;
  --danger:#E5484D;
  --info:var(--wp);
  /* inline-style token family used in views */
  --text-primary:var(--fg-strong);
  --text-secondary:var(--fg);
  --text:var(--fg);
  --text-muted:var(--fg-muted);
  --bg-secondary:var(--surface);
  --bg-tertiary:var(--surface-2);
  --border:var(--line);
  --border-subtle:var(--line);
  /* fonts */
  --fd:var(--f-display);
  --fb:var(--f-body);
  --fm:var(--f-mono);
  --font-display:var(--f-display);
  --font-body:var(--f-body);
  --font-mono:var(--f-mono);
  --sidebar:264px;
  --topnav:60px;
}

/* page header (legacy) */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap;}
.page-title{font-family:var(--f-display);font-size:clamp(24px,3.2vw,32px);font-weight:800;color:var(--fg-strong);letter-spacing:-0.03em;margin:0 0 6px;}
.page-desc{font-size:15px;color:var(--fg-soft);margin:0;}
.section-label{font-family:var(--f-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-text);margin:28px 0 14px;display:flex;align-items:center;gap:10px;}
.section-label::before{content:'';width:20px;height:1px;background:var(--accent);display:block;}

/* card variants (legacy) */
.card-compact{padding:18px;}
.card-featured{border-color:color-mix(in srgb,var(--accent) 30%,transparent) !important;}
.card h3{font-family:var(--f-display);font-size:16px;font-weight:600;color:var(--fg-strong);}

/* legacy buttons */
.btn-secondary{background:var(--field);color:var(--fg-strong);border:1px solid var(--line-2);font-weight:600;}
.btn-secondary:hover{border-color:color-mix(in srgb,var(--fg-strong) 18%,transparent);background:color-mix(in srgb,var(--fg-strong) 5%,transparent);transform:translateY(-2px);}
.btn-icon{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-2);background:var(--field);color:var(--fg-soft);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;}
.btn-icon:hover{color:var(--fg-strong);background:color-mix(in srgb,var(--fg-strong) 5%,transparent);}
.btn-icon.danger:hover{color:#E5484D;background:color-mix(in srgb,#E5484D 10%,transparent);}
.btn-copy{display:inline-flex;align-items:center;gap:5px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--fg-soft);background:var(--field);border:1px solid var(--line-2);padding:5px 11px;border-radius:7px;cursor:pointer;transition:.2s;}
.btn-copy:hover{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 38%,transparent);}

/* badges (legacy) */
.badge{font-family:var(--f-mono);font-size:10px;letter-spacing:0.04em;text-transform:uppercase;padding:3px 10px;border-radius:20px;display:inline-flex;align-items:center;border:1px solid var(--line-2);background:var(--field);color:var(--fg-soft);}
.badge-orange{background:color-mix(in srgb,var(--accent) 11%,transparent);color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 30%,transparent);}
.badge-green{background:color-mix(in srgb,var(--green) 11%,transparent);color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,transparent);}
.badge-blue{background:color-mix(in srgb,var(--wp) 11%,transparent);color:var(--wp);border-color:color-mix(in srgb,var(--wp) 30%,transparent);}
.badge-steel{background:var(--field);color:var(--fg-muted);border-color:var(--line-2);}
.badge-red{background:color-mix(in srgb,#E5484D 11%,transparent);color:#E5484D;border-color:color-mix(in srgb,#E5484D 30%,transparent);}
.badge-yellow{background:color-mix(in srgb,#E5A53B 14%,transparent);color:#D98315;border-color:color-mix(in srgb,#E5A53B 32%,transparent);}
.badge-muted{background:var(--field);color:var(--fg-muted);border-color:var(--line-2);}
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;}
.status-ok{background:var(--green);box-shadow:0 0 6px color-mix(in srgb,var(--green) 50%,transparent);}
.status-bad,.status-error{background:#E5484D;}
.status-warn{background:#E5A53B;}

/* stats (legacy) */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media(max-width:860px){.stats-grid{grid-template-columns:repeat(2,1fr);}}
.stat-label{font-family:var(--f-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:6px;}
.stat-value{font-family:var(--f-display);font-size:26px;font-weight:800;color:var(--fg-strong);letter-spacing:-0.03em;}
.stat-value.accent{color:var(--accent-text);}
.stat-meta{font-size:12px;color:var(--fg-muted);margin-top:5px;display:flex;align-items:center;gap:6px;}
.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow-sm);}

/* forms (legacy) */
.form-group{margin-bottom:16px;}
.form-label{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:7px;}
.form-input{width:100%;padding:11px 14px;background:var(--field);border:1px solid var(--line-2);border-radius:9px;color:var(--fg-strong);font-family:var(--f-body);font-size:14px;outline:none;transition:border-color .2s, box-shadow .2s;}
.form-input:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);}
.form-input:disabled{opacity:0.55;cursor:not-allowed;}
.form-input.mono{font-family:var(--f-mono);font-size:13px;}
.form-input::placeholder{color:var(--fg-muted);}
select.form-input{appearance:none;}
.form-hint{font-size:11px;color:var(--fg-muted);margin-top:5px;display:block;}
.form-link{font-size:12px;color:var(--accent-text);}
.form-link:hover{text-decoration:underline;}
.form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.form-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-soft);cursor:pointer;}
.form-checkbox input{accent-color:var(--accent);}
.input-icon{position:relative;}
.input-icon .form-input{padding-right:40px;}
.input-icon-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--fg-muted);cursor:pointer;padding:4px;}
.billing-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:640px){.billing-grid{grid-template-columns:1fr;}.billing-grid .form-group[style*="grid-column:span 2"]{grid-column:span 1 !important;}}
.input-sm{font-family:var(--f-body);font-size:13px;padding:7px 11px;background:var(--field);border:1px solid var(--line-2);border-radius:8px;color:var(--fg-strong);outline:none;}
.input-sm:focus{border-color:color-mix(in srgb,var(--accent) 50%,transparent);}

/* alerts (legacy) */
.alert{padding:12px 16px;border-radius:10px;font-size:13.5px;margin-bottom:16px;display:flex;align-items:center;gap:10px;border:1px solid var(--line-2);}
.alert-success{background:color-mix(in srgb,var(--green) 9%,transparent);border-color:color-mix(in srgb,var(--green) 30%,transparent);color:var(--green);}
.alert-error{background:color-mix(in srgb,#E5484D 9%,transparent);border-color:color-mix(in srgb,#E5484D 30%,transparent);color:#E5484D;}
.alert-info{background:color-mix(in srgb,var(--wp) 9%,transparent);border-color:color-mix(in srgb,var(--wp) 30%,transparent);color:var(--wp);}
.sso-notice{display:block;text-align:left;line-height:1.5;}
.sso-notice strong{display:block;margin-bottom:4px;}

/* key row + connector row (legacy) */
.key-row{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:9px;padding:10px 14px;}
.key-row code{font-family:var(--f-mono);font-size:12px;color:var(--accent-text);flex:1;overflow:hidden;text-overflow:ellipsis;word-break:break-all;}
.connector-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 18px;margin-bottom:8px;}
.connector-name{font-size:13px;font-weight:600;color:var(--fg-strong);display:block;margin-bottom:4px;}
.connector-url{font-family:var(--f-mono);font-size:12px;color:var(--accent-text);}

/* grids + utilities (legacy) */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media(max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr;}.grid-4{grid-template-columns:1fr 1fr;}}
.flex{display:flex;}.items-center{align-items:center;}.justify-between{justify-content:space-between;}
.gap-2{gap:8px;}.gap-3{gap:12px;}.gap-4{gap:16px;}.flex-1{flex:1;}
.mt-3{margin-top:12px;}.mt-4{margin-top:16px;}.mb-4{margin-bottom:16px;}
.text-accent{color:var(--accent-text);}.text-muted{color:var(--fg-muted);}.text-white{color:var(--fg-strong);}

/* tables (legacy) */
.table-wrap{border-radius:12px;border:1px solid var(--line);overflow:hidden;}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.data-table{width:100%;border-collapse:collapse;}
.data-table th{font-family:var(--f-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--fg-muted);text-align:left;padding:12px 16px;background:var(--surface-2);font-weight:500;}
.data-table td{font-size:13px;color:var(--fg-soft);padding:14px 16px;border-top:1px solid var(--line);}
.data-table tbody tr:hover{background:var(--field);}

/* modal (legacy) */
.modal-overlay{position:fixed;inset:0;background:rgba(8,10,16,0.6);backdrop-filter:blur(4px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.active{display:flex;}
.modal-card{background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow);}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.modal-title{font-family:var(--f-display);font-size:20px;font-weight:700;color:var(--fg-strong);}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);}
.radio-group{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.radio-card{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;border:1px solid var(--line-2);cursor:pointer;font-size:13px;color:var(--fg-soft);transition:all 0.2s;}
.radio-card:hover{border-color:color-mix(in srgb,var(--fg-strong) 18%,transparent);}
.radio-card.active{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--fg-strong);}
.radio-card input[type="radio"]{display:none;}

/* WP connect callout (legacy) */
.wp-connect-callout{display:block;margin:4px 0 14px;padding:14px;border:1px solid color-mix(in srgb,var(--wp) 26%,transparent);border-radius:10px;background:color-mix(in srgb,var(--wp) 8%,transparent);color:var(--fg);}
.wp-connect-kicker{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--wp);margin-bottom:4px;}
.wp-connect-copy strong{display:block;color:var(--fg-strong);font-size:13px;margin-bottom:4px;}
.wp-connect-copy p{font-size:12px;line-height:1.55;color:var(--fg-soft);margin:0;}
.wp-connect-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}

/* store icon (legacy small) */
.store-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-size:12px;font-weight:800;flex-shrink:0;border:1px solid;}
.store-icon.ps,.store-icon.orange{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 26%,transparent);}
.store-icon.wp,.store-icon.blue{color:var(--wp);background:color-mix(in srgb,var(--wp) 12%,transparent);border-color:color-mix(in srgb,var(--wp) 26%,transparent);}
.store-icon.hz,.store-icon.green{color:var(--hz);background:color-mix(in srgb,var(--hz) 12%,transparent);border-color:color-mix(in srgb,var(--hz) 26%,transparent);}

/* uptime bar (legacy, used on some cards) */
.uptime-track{flex:1;height:6px;background:var(--field);border-radius:3px;overflow:hidden;}
.uptime-fill{height:100%;border-radius:3px;background:var(--green);}
.uptime-pct{font-family:var(--f-mono);font-size:11px;min-width:48px;text-align:right;color:var(--fg-soft);}
