Files
instantadpay/public/assets/site.css
T

371 lines
27 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* InstantAdPay visual system v4 — built to Marty's picked reference
(Behance 243562211 "ChainLock"): near-black ground, ONE neon-mint accent,
sweeping light-trail hero, glowing icon plates, mockup-anchored sections,
ghost wordmark footer. Discipline over decoration. */
:root{
--ground:#040807; --ground2:#071009;
--panel:rgba(16,28,24,.55); --panel-solid:#0b1512;
--line:rgba(84,150,128,.16); --line-strong:rgba(84,150,128,.36);
--ink:#eef7f3; --muted:#8ba69c;
--mint:#43e8c3; --mint-hi:#8ffbe3; --mint-ink:#03211a;
--mint-soft:rgba(67,232,195,.09); --bad:#ff8f7d;
--cyan:#54ccff; --violet:#9d7dff; --amber:#ffb238;
--mono:"Consolas","JetBrains Mono",monospace;
--disp:"Sora","Segoe UI",system-ui,sans-serif;
--radius:18px;
}
*{box-sizing:border-box}
[hidden]{display:none!important} /* beats any display: set by a class (chat panel bug) */
html{scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.65 "Segoe UI",system-ui,sans-serif;overflow-x:hidden}
/* topo-contour ground texture, very faint */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='560' viewBox='0 0 560 560'%3E%3Cg fill='none' stroke='%2343e8c3' stroke-opacity='.05'%3E%3Cpath d='M60 280c40-90 160-130 220-90s60 150 160 150 120-90 120-90'/%3E%3Cpath d='M40 340c60-110 190-160 260-110s60 170 180 170'/%3E%3Cpath d='M20 400c80-130 220-190 300-130s60 190 200 190'/%3E%3Cpath d='M80 220c30-70 130-100 180-70s50 120 130 120 100-70 100-70'/%3E%3C/g%3E%3C/svg%3E")}
a{color:var(--mint);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1100px;margin:0 auto;padding:0 22px}
h1,h2,h3{font-family:var(--disp);letter-spacing:-.015em}
/* ── nav: capsule pill ─────────────────────────────── */
nav{position:sticky;top:0;z-index:10;background:rgba(4,8,7,.7);backdrop-filter:blur(16px);
-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;gap:20px;min-height:66px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.logo{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink)}
.logo b{color:var(--mint)}
nav .links{display:flex;gap:4px;flex:1;flex-wrap:wrap;background:rgba(16,28,24,.7);border:1px solid var(--line);
border-radius:999px;padding:5px 8px;width:fit-content;flex:0 1 auto;margin:0 auto}
nav .links a{color:var(--muted);font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:999px}
nav .links a:hover{color:var(--ink);text-decoration:none}
nav .links a.active{color:var(--mint);background:rgba(67,232,195,.1)}
#navWallet{font-size:13px;margin-left:auto}
.rehearsal{background:rgba(67,232,195,.07);border-bottom:1px solid var(--line);color:var(--muted);
text-align:center;font-size:12.5px;padding:7px 12px}
.rehearsal b{color:var(--mint)}
/* ── buttons ───────────────────────────────────────── */
.btn{display:inline-block;background:var(--mint);color:var(--mint-ink);border:0;border-radius:999px;
padding:13px 26px;font-weight:700;font-size:15px;cursor:pointer;font-family:var(--disp);
box-shadow:0 4px 30px rgba(67,232,195,.35);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.btn:hover{transform:translateY(-2px);background:var(--mint-hi);box-shadow:0 8px 44px rgba(67,232,195,.5);text-decoration:none}
.btn.sec{background:transparent;color:var(--mint);border:1px solid rgba(67,232,195,.6);box-shadow:none}
.btn.sec:hover{background:rgba(67,232,195,.08);box-shadow:0 4px 26px rgba(67,232,195,.2)}
.btn.small{padding:8px 17px;font-size:13px}
.btn:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}
/* ── hero: centered, light-trail set-piece ─────────── */
.hero{position:relative;text-align:center;padding:120px 0 84px;overflow:visible}
.hero h1{font-size:clamp(36px,5.4vw,62px);font-weight:700;line-height:1.08;margin:0 auto 18px;max-width:820px;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--mint)}
.hero p.lead{color:var(--muted);font-size:17.5px;max-width:600px;margin:0 auto 32px}
.hero p.lead b{color:var(--ink)}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* neon arcs behind the hero text */
.arcs{position:absolute;inset:-40px 0 0 0;z-index:-1;pointer-events:none}
.arcs svg{width:100%;height:100%;overflow:visible}
.arc{fill:none;stroke:url(#arcGrad);stroke-width:5;stroke-linecap:round;filter:url(#arcGlow)}
.arc2{fill:none;stroke:url(#arcGrad);stroke-width:3;stroke-linecap:round;filter:url(#arcGlow);opacity:.8}
/* falling glow streaks */
.streak{position:absolute;top:-140px;width:1.5px;height:110px;pointer-events:none;
background:linear-gradient(180deg,transparent,rgba(143,251,227,.8));border-radius:2px;opacity:0}
@media(prefers-reduced-motion:no-preference){
.streak{animation:fall 7s linear infinite}
@keyframes fall{0%{transform:translateY(0);opacity:0}12%{opacity:.7}55%{opacity:.5}75%{transform:translateY(72vh);opacity:0}100%{transform:translateY(72vh);opacity:0}}
}
/* ── counters ──────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:60px auto 0;max-width:900px}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 12px;text-align:center}
.stat .n{font-family:var(--disp);font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--mint)}
.stat .l{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:3px}
/* ── sections ──────────────────────────────────────── */
section{padding:64px 0 8px}
.sectionhead{text-align:center;max-width:640px;margin:0 auto 40px}
h2{font-size:clamp(26px,3.2vw,36px);font-weight:700;margin:0 0 12px;text-wrap:balance}
.sectionhead p{color:var(--muted);font-size:15.5px;margin:0}
h3{font-size:16.5px;margin:0 0 8px;font-weight:700}
.muted{color:var(--muted)}
.small{font-size:13.5px}
.mono{font-family:var(--mono)}
/* icon-plate feature cards */
.plates{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:760px){.plates{grid-template-columns:1fr 1fr 1fr}}
.platecard{background:linear-gradient(170deg,rgba(22,38,32,.6),rgba(10,18,15,.7));border:1px solid var(--line);
border-radius:var(--radius);padding:26px 22px;text-align:center;transition:border-color .2s ease,transform .2s ease}
.platecard:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.plate{width:88px;height:88px;margin:0 auto 18px;border-radius:22px;display:grid;place-items:center;
background:linear-gradient(160deg,#12241e,#0a1411);border:1px solid var(--line-strong);
box-shadow:0 0 34px rgba(67,232,195,.15),inset 0 1px 0 rgba(143,251,227,.15)}
.plate svg{width:38px;height:38px;stroke:var(--mint);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.platecard p{color:var(--muted);font-size:14px;margin:0}
/* two-col flank layout (icons around a central mockup) */
.flank{display:grid;gap:26px;align-items:center;grid-template-columns:1fr}
@media(min-width:920px){.flank{grid-template-columns:1fr 1.15fr 1fr}}
.flankitem{margin:0 0 26px}
.flankitem .plate{width:52px;height:52px;border-radius:14px;margin:0 0 12px}
.flankitem .plate svg{width:24px;height:24px}
.flankitem p{color:var(--muted);font-size:13.5px;margin:0}
/* ledger mockup frame */
.mockup{background:linear-gradient(170deg,#0e1c17,#080f0c);border:1px solid var(--line-strong);border-radius:20px;
box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 60px rgba(67,232,195,.08);overflow:hidden}
.mockup .bar{display:flex;gap:6px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}
.mockup .bar i{width:9px;height:9px;border-radius:50%;background:#1e3a31;display:inline-block}
.mockup .bar .addr{font-family:var(--mono);font-size:11px;color:var(--muted);margin-left:8px;background:rgba(4,8,7,.6);
border-radius:999px;padding:3px 12px}
.mockup .body{padding:6px 0}
.mockup .mrow{display:flex;justify-content:space-between;gap:10px;padding:9px 16px;font-family:var(--mono);
font-size:12px;border-bottom:1px solid rgba(84,150,128,.08)}
.mockup .mrow span:last-child{color:var(--mint)}
.mockup .mrow.dim span:last-child{color:var(--muted)}
/* 2-col story block: iso illustration + checklist */
.story{display:grid;gap:36px;align-items:center;grid-template-columns:1fr}
@media(min-width:880px){.story{grid-template-columns:1fr 1fr}}
.checks{list-style:none;padding:0;margin:14px 0 0}
.checks li{padding:7px 0 7px 30px;position:relative;color:var(--muted);font-size:14.5px}
.checks li::before{content:"✓";position:absolute;left:0;top:6px;width:20px;height:20px;border-radius:50%;
background:var(--mint-soft);color:var(--mint);font-size:12px;font-weight:700;display:grid;place-items:center;
border:1px solid rgba(67,232,195,.35)}
.chips{display:flex;gap:8px;margin:14px 0 4px;flex-wrap:wrap}
.chip-t{border:1px solid var(--line-strong);border-radius:999px;padding:5px 16px;font-size:12.5px;color:var(--muted);font-family:var(--disp);font-weight:600}
.chip-t.on{background:var(--mint);color:var(--mint-ink);border-color:var(--mint)}
.iso{filter:drop-shadow(0 24px 50px rgba(0,0,0,.5))}
/* level cycler: light the paying generation */
#genViz .edge path{stroke:#22523f;transition:stroke .5s ease}
#genViz .node-o{fill:#122e25;stroke:#2f6b55;stroke-width:1.3;transition:stroke .5s ease,fill .5s ease}
#genViz .node-d{fill:#3f8f74;transition:fill .5s ease}
#genViz[data-lvl="1"] .e1 path,#genViz[data-lvl="2"] .e2 path,#genViz[data-lvl="3"] .e3 path{stroke:#43e8c3}
#genViz[data-lvl="1"] .g1 .node-o,#genViz[data-lvl="2"] .g2 .node-o,#genViz[data-lvl="3"] .g3 .node-o{stroke:#43e8c3;fill:#11362b}
#genViz[data-lvl="1"] .g1 .node-d,#genViz[data-lvl="2"] .g2 .node-d,#genViz[data-lvl="3"] .g3 .node-d{fill:#43e8c3}
.chips button{cursor:pointer;background:transparent;font:inherit}
.chips button.chip-t{border:1px solid var(--line-strong);color:var(--muted)}
.chips button.chip-t.on{background:var(--mint);color:var(--mint-ink);border-color:var(--mint)}
/* pricing tiles: mint discipline */
.tiles{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));align-items:stretch}
.tile{position:relative;background:linear-gradient(170deg,rgba(22,38,32,.55),rgba(10,18,15,.65));border:1px solid var(--line);
border-radius:var(--radius);padding:26px 18px;text-align:center;display:flex;flex-direction:column;gap:6px;
transition:transform .2s ease,border-color .2s ease}
.tile:hover{transform:translateY(-5px);border-color:var(--line-strong)}
.tile .name{font-family:var(--disp);font-weight:700;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}
.tile .price{font-family:var(--disp);font-size:36px;font-weight:700}
.tile .cr{color:var(--mint);font-weight:700;font-size:14.5px}
.tile .bonus{font-size:12px;color:var(--mint-hi)}
.tile .pol{font-family:var(--mono);font-size:12px;color:var(--muted);flex:1}
.tile.hot{border:1px solid rgba(67,232,195,.65);box-shadow:0 0 44px rgba(67,232,195,.14)}
.tile.hot::before{content:"MOST POPULAR";position:absolute;top:-11px;left:50%;transform:translateX(-50%);
background:var(--mint);color:var(--mint-ink);font-family:var(--disp);font-size:10px;font-weight:800;
letter-spacing:.12em;border-radius:999px;padding:4px 14px}
/* split strip: mint opacities */
.split{display:flex;gap:8px;margin:18px 0}
.split div{border-radius:12px;padding:16px 6px;text-align:center;font-size:13px;font-weight:700;font-family:var(--disp);
border:1px solid var(--line-strong);color:var(--mint)}
.split .s50{flex:5;background:rgba(67,232,195,.16);box-shadow:0 0 30px rgba(67,232,195,.12)}
.split .s20{flex:2;background:rgba(67,232,195,.09)}
.split .s10{flex:1;background:rgba(67,232,195,.05)}
.split .sa{flex:2;background:rgba(139,166,156,.08);color:var(--muted)}
/* ticker */
.ticker{overflow:hidden;contain:layout paint;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
background:rgba(67,232,195,.04);white-space:nowrap;padding:10px 0;
-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker .inner{display:inline-block;font-family:var(--mono);font-size:12.5px;padding-left:100%;animation:tick 42s linear infinite}
.ticker .inner span{margin-right:48px;color:var(--muted)}
.ticker .inner span b{color:var(--mint);font-weight:600}
@keyframes tick{to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){.ticker .inner{animation:none;padding-left:0}}
/* cards / tables / feed (inner pages) */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:0 0 16px}
.card:hover{border-color:var(--line-strong)}
.grid{display:grid;gap:16px}
.grid>*,.flank>*,.story>*{min-width:0} /* let grid children shrink so inner tablewraps scroll instead of widening the page */
@media(min-width:760px){.grid.c3{grid-template-columns:1fr 1fr 1fr}.grid.c2{grid-template-columns:1fr 1fr}}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;font-family:var(--disp)}
td.num,th.num{font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}
.tablewrap{overflow-x:auto}
.feed{font-family:var(--mono);font-size:13.5px;line-height:1.7}
.feed .row{padding:9px 14px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.feed .row:first-child{background:var(--mint-soft)}
.feed .t-Purchase,.feed .t-AwardPaid{color:var(--mint-hi)}
.feed .t-TierPaid{color:var(--mint)}
.feed .t-AdminPaid{color:var(--muted)}
.feed .tx a{color:var(--muted);font-size:12px}
.badge{display:inline-block;background:var(--mint-soft);color:var(--mint);border:1px solid rgba(67,232,195,.35);
border-radius:999px;padding:3px 13px;font-size:12px;font-weight:700}
.badge.amber{background:rgba(139,166,156,.1);border-color:rgba(139,166,156,.4);color:var(--muted)}
/* faq */
details{border:1px solid var(--line);border-radius:14px;margin:0 0 10px;background:var(--panel)}
details[open]{border-color:rgba(67,232,195,.45)}
summary{cursor:pointer;padding:16px 20px;font-weight:700;font-family:var(--disp);font-size:15px;list-style:none}
summary::before{content:"+";color:var(--mint);font-weight:800;margin-right:12px}
details[open] summary::before{content:"−"}
details p{margin:0;padding:0 20px 18px 42px;color:var(--muted);font-size:14.5px}
/* closing cta card */
.closer{position:relative;display:grid;gap:26px;align-items:center;grid-template-columns:1fr;
padding:44px 36px;border-radius:24px;overflow:hidden;margin:80px 0 0;
background:linear-gradient(160deg,#0d1d17,#060c0a);border:1px solid var(--line-strong)}
@media(min-width:880px){.closer{grid-template-columns:1.2fr .8fr}}
.closer::before{content:"";position:absolute;width:460px;height:460px;right:-140px;top:-260px;border-radius:50%;
background:radial-gradient(circle,rgba(67,232,195,.2),transparent 65%);pointer-events:none}
.closer h2{margin:0 0 12px}
/* footer + ghost wordmark */
footer{border-top:1px solid var(--line);margin-top:90px;padding:34px 0 0;color:var(--muted);font-size:13.5px;overflow:hidden}
.ghost{font-family:var(--disp);font-weight:800;font-size:clamp(64px,13vw,170px);line-height:.9;text-align:center;
margin:34px 0 -20px;letter-spacing:-.02em;user-select:none;
background:linear-gradient(180deg,rgba(67,232,195,.14),transparent 78%);
-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
/* misc */
#status{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;background:var(--panel-solid);
border:1px solid var(--line-strong);border-radius:14px;padding:13px 22px;font-size:14px;max-width:90vw;z-index:30;
box-shadow:0 12px 40px rgba(0,0,0,.55)}
#status.ok{border-color:var(--mint)}
#status.bad{border-color:var(--bad)}
input,select{background:rgba(4,8,7,.65);border:1px solid var(--line-strong);color:var(--ink);border-radius:11px;
padding:11px 14px;font-size:14.5px;font-family:inherit}
input[type=range]{padding:0;border:0;background:transparent;accent-color:var(--mint);height:28px;vertical-align:middle}
input:focus,select:focus{border-color:var(--mint)}
:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.hero-note{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:26px}
/* ── member back-office shell ─────────────────────────── */
.bo-body{background:var(--ground)}
.bo{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.bo-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;
padding:22px 16px;background:rgba(10,18,15,.92);border-right:1px solid var(--line)}
.bo-side .logo{font-size:19px;padding:0 8px}
.bo-menu{display:flex;flex-direction:column;gap:4px}
.bo-menu button{display:flex;align-items:center;gap:11px;background:transparent;border:0;color:var(--muted);
font:600 14px var(--disp);padding:11px 12px;border-radius:11px;cursor:pointer;text-align:left;
border-left:3px solid transparent}
.bo-menu button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.bo-menu button:hover{color:var(--ink);background:rgba(67,232,195,.05)}
.bo-menu button.on{color:var(--mint);background:rgba(67,232,195,.09);border-left-color:var(--mint)}
.bo-links{display:flex;flex-direction:column;gap:2px;padding:14px 12px;border-top:1px solid var(--line)}
.bo-cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.bo-links a{color:var(--muted);font-size:13.5px;padding:5px 0}
.bo-links a:hover{color:var(--ink);text-decoration:none}
.bo-foot{margin-top:auto;padding:14px 12px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}
.bo-main{min-width:0;display:flex;flex-direction:column}
.bo-top{display:flex;align-items:center;gap:16px;padding:16px 26px;border-bottom:1px solid var(--line);
background:rgba(6,10,8,.75);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:0;z-index:5}
.bo-top h2{font-size:20px}
#boBurger{display:none;background:transparent;border:1px solid var(--line-strong);color:var(--ink);
border-radius:9px;font-size:17px;padding:5px 11px;cursor:pointer}
.bo-rehearsal{margin-left:auto;color:var(--muted)}
.bo-rehearsal b{color:var(--mint)}
.bo-content{padding:26px;max-width:1060px;width:100%}
@media(max-width:959px){
.bo{grid-template-columns:1fr}
.bo-side{position:fixed;left:0;top:0;bottom:0;width:250px;z-index:20;transform:translateX(-100%);
transition:transform .22s ease;height:100dvh}
.bo.side-open .bo-side{transform:none;box-shadow:0 0 60px rgba(0,0,0,.6)}
#boBurger{display:block}
.bo-content{padding:18px}
}
/* ── overview v3: stat cards w/ plates+chips, hand-rolled charts ── */
.statx{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);
border-radius:var(--radius);padding:18px;position:relative;overflow:hidden}
.statx .pl{flex:0 0 auto;width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
background:rgba(67,232,195,.1);border:1px solid rgba(67,232,195,.3)}
.statx .pl svg{width:22px;height:22px;stroke:var(--mint);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.statx.c-cyan .pl{background:rgba(84,204,255,.1);border-color:rgba(84,204,255,.3)}
.statx.c-cyan .pl svg{stroke:var(--cyan)}
.statx.c-violet .pl{background:rgba(157,125,255,.12);border-color:rgba(157,125,255,.32)}
.statx.c-violet .pl svg{stroke:var(--violet)}
.statx.c-amber .pl{background:rgba(255,178,56,.1);border-color:rgba(255,178,56,.3)}
.statx.c-amber .pl svg{stroke:var(--amber)}
.statx .nv{font-family:var(--disp);font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.statx .lb{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.chip{display:inline-block;margin-top:7px;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 10px;
background:rgba(67,232,195,.1);color:var(--mint)}
.chip.flat{background:rgba(139,166,156,.12);color:var(--muted)}
.chip.warm{background:rgba(255,178,56,.12);color:var(--amber)}
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.card-head .sub{font-size:12px;color:var(--muted)}
/* bar chart (divs, real data) */
.barchart{display:flex;align-items:flex-end;gap:6px;height:120px;margin-top:14px}
.barchart .bar{flex:1;min-width:6px;background:linear-gradient(180deg,var(--mint),rgba(67,232,195,.25));
border-radius:5px 5px 2px 2px;position:relative;transition:height .5s ease}
.barchart .bar.alt{background:linear-gradient(180deg,var(--violet),rgba(157,125,255,.25))}
.barchart .bar:hover::after{content:attr(data-v);position:absolute;bottom:calc(100% + 4px);left:50%;
transform:translateX(-50%);background:var(--panel-solid);border:1px solid var(--line-strong);border-radius:7px;
padding:2px 8px;font-family:var(--mono);font-size:11px;white-space:nowrap;z-index:3}
.barchart .bar.empty{background:rgba(139,166,156,.15);height:4px!important}
.chart-x{display:flex;gap:6px;margin-top:6px}
.chart-x span{flex:1;text-align:center;font-family:var(--mono);font-size:10px;color:var(--muted);overflow:hidden;white-space:nowrap}
/* donut + ring (SVG) */
.donut-wrap{display:flex;gap:22px;align-items:center;margin-top:10px;flex-wrap:wrap}
.donut-legend{display:flex;flex-direction:column;gap:8px;font-size:13px}
.donut-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px}
.donut-center{font-family:var(--disp);font-weight:800}
/* ── back-office accent family: green leads, cyan/violet/amber season the cards ── */
.bo .stats .stat:nth-child(2) .n{color:var(--cyan)}
.bo .stats .stat:nth-child(2)::before{background:linear-gradient(90deg,transparent,var(--cyan),transparent)}
.bo .stats .stat:nth-child(3) .n{color:var(--violet)}
.bo .stats .stat:nth-child(3)::before{background:linear-gradient(90deg,transparent,var(--violet),transparent)}
.bo .stats .stat:nth-child(4) .n{color:var(--amber)}
.bo .stats .stat:nth-child(4)::before{background:linear-gradient(90deg,transparent,var(--amber),transparent)}
.bo .card h3::before{content:"";display:inline-block;width:9px;height:9px;border-radius:2.5px;
background:var(--mint);margin-right:10px;transform:rotate(45deg);vertical-align:1px}
#pane-line .card h3::before{background:var(--cyan)}
#pane-buy .card h3::before,#pane-campaigns .card h3::before{background:var(--amber)}
#pane-earn .card h3::before,#pane-earnings .card h3::before{background:var(--violet)}
#pane-promo .card h3::before{background:var(--cyan)}
#pane-wallet .card h3::before,#pane-profile .card h3::before{background:var(--mint)}
.bo .card{background:linear-gradient(165deg,rgba(24,36,31,.6),rgba(13,19,17,.66))}
#pane-line .qualbar,#nextCard{border-left:3px solid rgba(67,232,195,.4)}
.promo-block{background:rgba(4,8,7,.55);border:1px solid var(--line);border-radius:12px;
padding:14px 16px;margin:0 0 12px;font-size:13.5px;line-height:1.6;white-space:pre-wrap}
.promo-block .btn{margin-top:10px}
/* back-office polish: pane transitions, quick actions */
@media(prefers-reduced-motion:no-preference){
.pane:not([hidden]){animation:panein .25s ease}
@keyframes panein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
}
.qa{display:flex;flex-direction:column;gap:8px}
.qa button{display:flex;align-items:center;gap:10px;background:rgba(67,232,195,.05);border:1px solid var(--line);
color:var(--ink);font:600 14px var(--disp);padding:11px 14px;border-radius:11px;cursor:pointer;text-align:left;
transition:border-color .15s ease,background .15s ease}
.qa button:hover{border-color:var(--mint);background:rgba(67,232,195,.1)}
/* member sub-navigation */
.subnav{display:flex;gap:6px;flex-wrap:wrap;background:rgba(16,28,24,.7);border:1px solid var(--line);
border-radius:999px;padding:6px 8px;width:fit-content;margin:0 0 22px}
.subnav button{background:transparent;border:0;color:var(--muted);font:600 13.5px var(--disp);
padding:8px 16px;border-radius:999px;cursor:pointer}
.subnav button:hover{color:var(--ink)}
.subnav button.on{color:var(--mint-ink);background:var(--mint)}
/* member dashboard: qualification progress + roster */
.qualbar{position:relative;height:12px;border-radius:999px;background:rgba(4,8,7,.7);border:1px solid var(--line-strong);
margin:26px 0 30px;max-width:520px}
.qualbar #qualFill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--mint),var(--mint-hi));
box-shadow:0 0 18px rgba(67,232,195,.4);width:0;transition:width .6s ease}
.qb-mark{position:absolute;top:16px;transform:translateX(-50%);font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.qb-mark.end{left:auto!important;right:0;transform:none} /* keeps the last label inside the card on mobile */
#inviteLine,#pitchPreview{overflow-wrap:anywhere}
img{max-width:100%}
.roster{width:100%;border-collapse:collapse;font-size:13.5px}
.roster td{padding:8px 10px;border-bottom:1px solid var(--line)}
.roster td:first-child{font-family:var(--mono)}
.roster tr:last-child td{border-bottom:0}
/* chat widget */
#iapChatBtn{position:fixed;right:20px;bottom:20px;z-index:40;width:56px;height:56px;border-radius:50%;
border:0;background:var(--mint);color:var(--mint-ink);font-size:24px;cursor:pointer;
box-shadow:0 8px 30px rgba(67,232,195,.4)}
#iapChatBtn:hover{transform:scale(1.06)}
#iapChatPanel{position:fixed;right:20px;bottom:88px;z-index:40;width:min(360px,calc(100vw - 40px));
background:var(--panel-solid);border:1px solid var(--line-strong);border-radius:18px;overflow:hidden;
box-shadow:0 24px 70px rgba(0,0,0,.65);display:flex;flex-direction:column}
.ch-head{padding:14px 16px;border-bottom:1px solid var(--line);font-family:var(--disp);position:relative}
.ch-head .ch-sub{display:block;font-size:12px;color:var(--muted);font-family:"Segoe UI",system-ui,sans-serif}
#iapChatClose{position:absolute;right:10px;top:10px;background:transparent;border:0;color:var(--muted);
font-size:22px;cursor:pointer;line-height:1}
.ch-msgs{padding:14px;overflow-y:auto;max-height:340px;display:flex;flex-direction:column;gap:10px}
.ch-m{border-radius:12px;padding:9px 13px;font-size:13.5px;line-height:1.5;max-width:86%}
.ch-m.bot{background:rgba(67,232,195,.08);border:1px solid rgba(67,232,195,.2);align-self:flex-start}
.ch-m.me{background:rgba(130,148,196,.12);border:1px solid var(--line);align-self:flex-end}
.ch-m a{word-break:break-all}
.ch-input{display:flex;gap:8px;padding:11px;border-top:1px solid var(--line)}
.ch-input input{flex:1;min-width:0}
.ch-input button{background:var(--mint);color:var(--mint-ink);border:0;border-radius:10px;padding:0 16px;
font-weight:700;cursor:pointer;font-family:var(--disp)}
@media(prefers-reduced-motion:no-preference){
.feed .row:first-child{animation:landed .9s ease}
@keyframes landed{from{background:rgba(67,232,195,.3)}to{background:var(--mint-soft)}}
}