/* HighTechApe CRM — dark theme with yellow ape accent */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --neon:#f5c518; --neon-2:#ffd84d; --indigo:#f59e0b; --rust:#ff9d5c;
  --grad:linear-gradient(115deg,var(--neon-2) 0%,var(--neon) 55%,var(--indigo) 100%);
  --bg:#0b0e18; --bg-2:#11151f;
  --surface:rgba(245,197,24,.05); --surface-2:rgba(245,197,24,.09);
  --border:rgba(245,197,24,.16); --border-2:rgba(245,197,24,.32);
  --text:#f3f0e6; --muted:#b6b3a4; --faint:#7a7768;
  --radius:16px; --ease:cubic-bezier(.22,.61,.36,1);
  --font-display:'Space Grotesk',system-ui,sans-serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:#0a0d18 url('/hightechape-bg.svg') center/cover fixed no-repeat;color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* page background now lives in hightechape-bg.svg; hide the old gold fog overlay */
.fx{display:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:-.02em;margin:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.muted{color:var(--muted)} .sm{font-size:13px} .nowrap{white-space:nowrap}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

/* background fx */
.fx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fx .fog{position:absolute;width:60vw;height:60vw;border-radius:50%;filter:blur(120px);opacity:.34;mix-blend-mode:screen}
.fx .f1{top:-18vw;left:-8vw;background:radial-gradient(circle,var(--neon),transparent 64%)}
.fx .f2{top:20vw;right:-14vw;background:radial-gradient(circle,var(--indigo),transparent 64%)}
.fx .f3{bottom:-24vw;left:30vw;background:radial-gradient(circle,var(--neon-2),transparent 64%)}
.fx .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(245,197,24,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(245,197,24,.05) 1px,transparent 1px);background-size:62px 62px;mask-image:radial-gradient(ellipse 85% 65% at 50% 0%,#000,transparent 78%);-webkit-mask-image:radial-gradient(ellipse 85% 65% at 50% 0%,#000,transparent 78%)}

.wrap{position:relative;z-index:1;width:100%;max-width:1100px;margin:0 auto;padding:0 24px 80px}
.eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--neon-2)}

/* nav */
.topnav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;padding:14px 24px;background:rgba(10,16,36,.82);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:18px}
.brand img{height:30px;width:auto;filter:drop-shadow(0 0 12px rgba(245,197,24,.55))}
.brand b{color:var(--neon-2);font-weight:700}
.navlinks{display:flex;gap:6px;margin-left:8px}
.navlinks a{padding:8px 14px;border-radius:10px;color:var(--muted);font-weight:600;font-size:14px}
.navlinks a:hover{color:var(--text);background:var(--surface)}
.navlinks a.on{color:var(--text);background:var(--surface-2)}
.navright{margin-left:auto;display:flex;align-items:center;gap:14px}
.who{font-size:13px;color:var(--muted)} .who em{color:var(--neon-2);font-style:normal;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;margin-left:4px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:11px;font-family:var(--font-body);font-weight:700;font-size:14.5px;cursor:pointer;border:1px solid transparent;white-space:nowrap;transition:transform .18s var(--ease),box-shadow .25s,background .25s;background:none;color:var(--text)}
.btn.sm{height:36px;padding:0 14px;font-size:13px;border-radius:9px}
.btn.primary{color:#04122e;background:var(--grad);box-shadow:0 8px 26px -8px rgba(245,197,24,.5)}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px -10px rgba(245,197,24,.7)}
.btn.ghost{background:var(--surface-2);border-color:var(--border-2);color:var(--text)}
.btn.ghost:hover{border-color:var(--neon);background:rgba(245,197,24,.12)}
.btn.danger{background:rgba(255,90,110,.12);border-color:rgba(255,90,110,.4);color:#ff9aa8}
.btn.danger:hover{background:rgba(255,90,110,.2)}

/* cards + layout */
.card{position:relative;z-index:1;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius);padding:24px;backdrop-filter:blur(8px)}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:36px 0 22px}
.pagehead h1{font-size:30px}
.back{display:inline-block;color:var(--muted);font-size:13px;margin-bottom:6px}
.back:hover{color:var(--neon-2)}
.flash{margin:22px 0 0;padding:12px 16px;border-radius:11px;background:rgba(245,197,24,.12);border:1px solid var(--border-2);color:var(--text);font-size:14px}
.flash.err{background:rgba(255,90,110,.12);border-color:rgba(255,90,110,.4);color:#ffb3bd}

/* search */
.searchbar{display:flex;gap:10px;margin-bottom:18px}
.searchbar input{flex:1}

/* filter chips */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.fgrp{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-right:2px;min-width:54px}
.chip.reset{border-style:dashed;color:var(--faint)}
.sub.pair{color:var(--muted);margin-top:4px}
.chip{padding:7px 14px;border-radius:999px;border:1px solid var(--border-2);background:var(--surface);color:var(--muted);font-size:13px;font-weight:600}
.chip:hover{color:var(--text);border-color:var(--neon)}
.chip.on{background:var(--grad);color:#04122e;border-color:transparent}

/* expiry tags */
.exp{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;font-family:var(--font-mono)}
.exp.ok{color:#6ee7a8;background:rgba(110,231,168,.12)}
.exp.warn{color:#ffd66b;background:rgba(255,214,107,.14)}
.exp.soon{color:#ffb86b;background:rgba(255,184,107,.16)}
.exp.over{color:#ff9aa8;background:rgba(255,90,110,.16)}

/* hint link under a field */
.hintlink{font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--neon-2);margin-top:2px}
.hintlink:hover{text-decoration:underline}

/* forms */
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}
input,select,textarea{font-family:var(--font-body);font-size:15px;color:var(--text);background:rgba(8,12,28,.6);border:1px solid var(--border);border-radius:10px;padding:11px 13px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--neon);box-shadow:0 0 0 3px rgba(245,197,24,.18)}
textarea{resize:vertical}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 13px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
fieldset{border:1px solid var(--border);border-radius:12px;padding:18px;margin:0;display:flex;flex-direction:column;gap:14px}
legend{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--neon-2);padding:0 8px}
.form.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form.grid2 .full{grid-column:1/-1}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.actions{display:flex;gap:12px;align-items:center;margin-top:4px}
.danger-form{margin-left:auto}
fieldset.internal{border-color:rgba(255,90,110,.35);background:rgba(255,90,110,.05)}
fieldset.internal legend{color:#ff9aa8}
fieldset.internal textarea{font-family:var(--font-mono);font-size:13px}

/* table */
.tablewrap{padding:6px}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:500;padding:14px 16px;border-bottom:1px solid var(--border)}
td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:top;font-size:14.5px}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--surface)}
.cname{font-weight:700;color:var(--text)} .cname:hover{color:var(--neon-2)}
td .sub{color:var(--faint);font-size:12.5px;margin-top:3px}
.disc{color:var(--rust);font-weight:700}
.empty{text-align:center;padding:54px;display:flex;flex-direction:column;gap:16px;align-items:center}

/* level + status badges */
.lvl{display:inline-block;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;font-family:var(--font-mono);letter-spacing:.04em;border:1px solid}
.lvl.bronze{color:#e7a977;border-color:rgba(231,169,119,.4);background:rgba(231,169,119,.1)}
.lvl.silver{color:#cdd7ea;border-color:rgba(205,215,234,.4);background:rgba(205,215,234,.1)}
.lvl.gold{color:#ffd66b;border-color:rgba(255,214,107,.45);background:rgba(255,214,107,.12)}
.lvl.platinum{color:#7af2ff;border-color:rgba(122,242,255,.5);background:rgba(122,242,255,.12)}
.status{display:inline-block;font-weight:700;font-size:13px;margin:4px 0}
.status.active{color:#6ee7a8} .status.trial{color:var(--neon-2)} .status.past-due{color:#ffb86b}
.status.cancelled,.status.none{color:var(--faint)}

/* share card */
.sharecard{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px;flex-wrap:wrap}
.sharecard .nowrap{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sharelink{font-family:var(--font-mono);font-size:14px;color:var(--neon-2);margin:6px 0;word-break:break-all}

/* auth box */
.authbox{max-width:440px;margin:7vh auto 0;text-align:center}
.authbanner{height:150px;border-radius:18px;border:1px solid var(--border);background:#0a0e1a url('/hightechape-bg.svg') center/cover no-repeat;box-shadow:0 18px 50px -18px rgba(245,197,24,.35);margin-bottom:26px}
.authbox .brand.big{justify-content:center;margin-bottom:24px;margin-top:-44px}
.authbox .brand.big img{filter:drop-shadow(0 6px 18px rgba(0,0,0,.6))}
.authbox .brand.big img{height:54px}
.authbox h1{font-size:28px;margin-bottom:6px}
.authbox .form{margin-top:22px;text-align:left;display:flex;flex-direction:column;gap:16px}
.authbox .btn{width:100%;margin-top:4px}

/* ===== public portal ===== */
.portal-wrap{max-width:860px;padding-bottom:60px}
.portal-head{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 0 30px;text-align:center}
.portal-head .logo{height:46px;filter:drop-shadow(0 0 16px rgba(245,197,24,.5))}
.hero-card{margin-bottom:20px}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.hero-top h1{font-size:32px}
.big-badge{text-align:right;border:1px solid var(--border-2);border-radius:14px;padding:12px 18px;background:var(--surface)}
.big-badge .lbl{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.big-badge strong{font-family:var(--font-display);font-size:22px}
.big-badge.bronze strong{color:#e7a977} .big-badge.silver strong{color:#cdd7ea}
.big-badge.gold strong{color:#ffd66b} .big-badge.platinum strong{color:#7af2ff}
.notes{margin-top:16px;color:var(--text);padding-top:16px;border-top:1px solid var(--border)}
.contact{display:flex;gap:32px;margin:18px 0 0;flex-wrap:wrap}
.contact dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.contact dd{margin:2px 0 0;font-weight:600}
.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.portal-grid h2{font-size:24px;margin:10px 0 6px}
.card.highlight{border-color:var(--border-2);box-shadow:0 0 40px -12px rgba(245,197,24,.4)}

/* remaining-day count on the portal */
.dcount{display:inline-flex;align-items:baseline;gap:8px;margin-top:14px;padding:10px 16px;border-radius:12px;border:1px solid var(--border-2);background:var(--surface)}
.dcount strong{font-family:var(--font-display);font-size:30px;line-height:1}
.dcount span{font-size:13px;color:var(--muted)}
.dcount.ok strong{color:#6ee7a8} .dcount.warn strong{color:#ffd66b}
.dcount.soon strong{color:#ffb86b} .dcount.over strong{color:#ff9aa8}
.dcount.over{border-color:rgba(255,90,110,.4)}

/* Messenger / Telegram contact buttons */
.contact-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.cbtn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:13px;font-weight:700;font-size:15px;color:#fff;transition:transform .18s var(--ease),box-shadow .25s}
.cbtn svg{width:24px;height:24px;display:block}
.cbtn:hover{transform:translateY(-2px)}
.cbtn.messenger{background:linear-gradient(135deg,#0099ff,#a033ff 55%,#ff5280);box-shadow:0 10px 28px -10px rgba(160,51,255,.6)}
.cbtn.telegram{background:#29a9eb;box-shadow:0 10px 28px -10px rgba(41,169,235,.6)}

.portal-foot{margin-top:30px;text-align:center;color:var(--faint);font-size:13px}

@media (max-width:760px){
  .form.grid2,.row3,.portal-grid{grid-template-columns:1fr}
  .navlinks{margin-left:0} .who{display:none}
  .pagehead{flex-direction:column;align-items:flex-start}
}
