/* ============================================================
   Fund4 — Design System
   Minimalism · Blue / Black / White
   Display: Space Grotesk · Body: Inter
   ============================================================ */

:root{
  /* palette */
  --blue:        #1B3BFF;
  --blue-600:    #1730D6;
  --blue-700:    #1226A8;
  --blue-050:    #EEF1FF;
  --blue-100:    #DDE4FF;
  --ink:         #080B14;
  --ink-800:     #12172B;
  --ink-700:     #1C2333;
  --slate:       #565F73;
  --slate-400:   #868FA3;
  --line:        #E6EAF3;
  --line-2:      #EEF1F8;
  --bg:          #FFFFFF;
  --bg-soft:     #F5F7FC;
  --bg-soft-2:   #EDF0F7;
  --white:       #FFFFFF;
  --green:       #0E9B57;
  --green-050:   #E7F7EE;
  --amber:       #B96B00;
  --amber-050:   #FBF1E0;
  --red:         #D93636;

  /* signature gradients */
  --grad-blue:   linear-gradient(135deg,#3A57FF 0%,#1B3BFF 55%,#1226C8 100%);
  --grad-ink:    linear-gradient(160deg,#12172B 0%,#080B14 100%);
  --grad-surface:linear-gradient(180deg,#FFFFFF 0%,#FBFCFF 100%);
  --grad-soft:   linear-gradient(180deg,#F7F9FE 0%,#EFF2FA 100%);
  --sheen:       linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));

  /* type */
  --f-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  --f-body:    "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;

  /* radius / shadow */
  --r-sm: 10px;
  --r:    14px;
  --r-lg: 20px;
  --r-xl: 26px;
  /* layered, premium shadows with subtle blue tint */
  --sh-1: 0 1px 2px rgba(12,18,40,.05), 0 2px 6px rgba(12,18,40,.04);
  --sh-2: 0 2px 6px rgba(12,18,40,.05), 0 10px 24px rgba(20,30,70,.08), 0 24px 48px rgba(20,30,70,.05);
  --sh-3: 0 8px 24px rgba(12,18,40,.10), 0 24px 60px rgba(20,30,70,.16);
  --sh-blue: 0 8px 24px rgba(27,59,255,.28), 0 2px 6px rgba(27,59,255,.2);
  --ring: 0 0 0 1px rgba(12,18,40,.05);
  --hair: inset 0 0 0 1px rgba(255,255,255,.6);

  /* layout */
  --max: 1240px;
  --gap: 24px;
  --hh: 76px; /* header height */
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
body{
  margin:0;
  font-family:var(--f-body);
  color:var(--ink);
  background:
    radial-gradient(1200px 600px at 100% -10%, rgba(27,59,255,.05), transparent 60%),
    radial-gradient(900px 500px at -10% 10%, rgba(27,59,255,.035), transparent 55%),
    var(--bg);
  background-attachment:fixed;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;line-height:1.08;letter-spacing:-.02em;margin:0}
h1 svg,h2 svg,h3 svg,h4 svg{width:.9em;height:.9em;flex-shrink:0}
.num{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ---------- layout ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.section{padding:72px 0}
.section-sm{padding:44px 0}
.eyebrow{
  font-family:var(--f-display);font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--blue);
  display:inline-flex;align-items:center;gap:8px;
}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--grad-blue);border-radius:2px;display:inline-block}
.h-sec{font-size:clamp(28px,3.4vw,44px);letter-spacing:-.03em}
.sub{color:var(--slate);font-size:17px;max-width:60ch}
.center{text-align:center}
.center .sub{margin-left:auto;margin-right:auto}
.center .eyebrow{justify-content:center}

/* ---------- buttons ---------- */
.btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  height:48px;padding:0 22px;border-radius:var(--r);border:1px solid transparent;
  font-family:var(--f-display);font-weight:600;font-size:15px;letter-spacing:-.01em;
  transition:.18s cubic-bezier(.2,.8,.2,1);white-space:nowrap;
}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--grad-blue);color:#fff;box-shadow:var(--sh-blue);}
.btn-primary::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 45%);pointer-events:none}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(27,59,255,.36),0 3px 8px rgba(27,59,255,.24)}
.btn-primary:active{transform:translateY(0)}
.btn-dark{background:var(--grad-ink);color:#fff;box-shadow:var(--sh-2)}
.btn-dark::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 40%);pointer-events:none}
.btn-dark:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(8,11,20,.28)}
.btn-ghost{background:var(--grad-surface);color:var(--ink);border-color:var(--line);box-shadow:var(--sh-1)}
.btn-ghost:hover{border-color:#C7CFE4;background:#fff;transform:translateY(-1px);box-shadow:var(--sh-2)}
.btn-soft{background:var(--blue-050);color:var(--blue);box-shadow:inset 0 0 0 1px rgba(27,59,255,.08)}
.btn-soft:hover{background:var(--blue-100)}
.btn-sm{height:40px;padding:0 16px;font-size:14px}
.btn-lg{height:54px;padding:0 28px;font-size:16px}
.btn-block{width:100%}
.btn[disabled]{opacity:.45;pointer-events:none;box-shadow:none}

/* ---------- badges / chips ---------- */
.badge{
  display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;
  border-radius:999px;font-size:12px;font-weight:600;font-family:var(--f-display);
  letter-spacing:.01em;box-shadow:inset 0 0 0 1px rgba(12,18,40,.04);
}
.badge-verified{background:var(--green-050);color:var(--green);box-shadow:inset 0 0 0 1px rgba(14,155,87,.14)}
.badge-blue{background:var(--blue-050);color:var(--blue);box-shadow:inset 0 0 0 1px rgba(27,59,255,.14)}
.badge-ink{background:#EDEFF5;color:var(--ink-700)}
.badge-amber{background:var(--amber-050);color:var(--amber);box-shadow:inset 0 0 0 1px rgba(185,107,0,.16)}
.badge-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

.chip{
  display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;
  border:1px solid var(--line);border-radius:999px;background:var(--grad-surface);
  font-size:14px;font-weight:500;color:var(--ink);transition:.16s;user-select:none;box-shadow:var(--sh-1);
}
.chip:hover{border-color:#C7CFE4;transform:translateY(-1px);box-shadow:var(--sh-2)}
.chip.active{background:var(--grad-ink);color:#fff;border-color:transparent;box-shadow:var(--sh-2)}

/* ---------- cards ---------- */
.card{
  position:relative;
  background:var(--grad-surface);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;transition:.22s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;
  box-shadow:var(--sh-1);
}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);z-index:3;pointer-events:none}
.card:hover{box-shadow:var(--sh-2);transform:translateY(-4px);border-color:#D3DAEC}
.card-media{aspect-ratio:16/10;background:linear-gradient(135deg,#E9EDF7,#DCE2F0);position:relative;overflow:hidden}
.card-media::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.5),transparent 60%);pointer-events:none}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-body{padding:18px;display:flex;flex-direction:column;gap:12px;flex:1}
.card-title{font-family:var(--f-display);font-size:19px;font-weight:600;letter-spacing:-.015em}
.card-loc{font-size:13.5px;color:var(--slate);display:flex;align-items:center;gap:5px}
.card-loc svg{width:14px;height:14px;flex-shrink:0}
.badge svg{width:13px;height:13px;flex-shrink:0}
.arw svg,.link svg,.sec-head .link svg{width:16px;height:16px;flex-shrink:0}
.mrow svg{width:14px;height:14px}
.crumb svg{width:14px;height:14px}
.dash-nav a svg{width:18px;height:18px;flex-shrink:0}
/* safety-net: inline icons in body text never balloon */
.card-body svg:not(.ph svg),.crumb svg,.hero-stat svg,.mrow svg,.sub svg{max-width:18px;max-height:18px}
.card svg:not(.card-media svg):not(.ph svg):not(.btn svg):not(.icon-btn svg){max-width:20px;max-height:20px}
/* broad guard: any inline icon inside a text span/paragraph stays small */
span>svg:first-child:not(.icon-btn svg),p svg,li svg,.card-loc svg,td svg{max-width:20px;max-height:20px;flex-shrink:0}

/* metric rows in cards */
.mrow{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;padding:7px 0;border-top:1px solid var(--line-2)}
.mrow:first-of-type{border-top:none}
.mrow .k{color:var(--slate)}
.mrow .v{font-family:var(--f-display);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mrow .v.blue{color:var(--blue)}
.mrow .v.green{color:var(--green)}

/* big KPI */
.kpi{position:relative;background:var(--grad-soft);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--hair);overflow:hidden}
.kpi::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--blue),transparent 70%);opacity:.35}
.kpi .lbl{font-size:12px;color:var(--slate);letter-spacing:.03em;text-transform:uppercase;font-weight:600}
.kpi .val{font-family:var(--f-display);font-size:clamp(24px,2.4vw,32px);font-weight:600;letter-spacing:-.025em;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .val.blue{color:var(--blue)}

/* ---------- grid ---------- */
.grid{display:grid;gap:var(--gap)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.catalog{display:grid;grid-template-columns:280px 1fr;gap:36px;align-items:start}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid rgba(12,18,40,.07);box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
.hdr-in{max-width:var(--max);margin:0 auto;padding:0 24px;height:var(--hh);display:flex;align-items:center;gap:28px}
.brand{display:flex;flex-direction:column;line-height:1;gap:3px;flex-shrink:0}
.brand .logo{font-family:var(--f-display);font-weight:700;font-size:23px;letter-spacing:-.03em;color:var(--ink)}
.brand .logo b{color:var(--blue)}
.brand .tag{font-size:10px;letter-spacing:.04em;color:var(--slate-400);font-weight:500}
.nav{display:flex;align-items:center;gap:2px;margin-left:6px}
.nav a{font-size:14.5px;font-weight:500;color:var(--ink-700);padding:9px 12px;border-radius:8px;transition:.14s;white-space:nowrap}
.nav a:hover{background:var(--bg-soft);color:var(--ink)}
.nav a.on{color:var(--blue)}
.hdr-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}
.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--grad-surface);display:inline-flex;align-items:center;justify-content:center;position:relative;transition:.16s;box-shadow:var(--sh-1)}
.icon-btn:hover{border-color:#C7CFE4;transform:translateY(-1px);box-shadow:var(--sh-2)}
.icon-btn-accent{background:var(--grad-blue);border-color:transparent;box-shadow:var(--sh-blue)}
.icon-btn-accent svg{stroke:#fff}
.add-prjct-btn svg{stroke:#fff !important}
.icon-btn-accent:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(27,59,255,.34)}
.show-tablet{display:none}
.icon-btn svg{width:20px;height:20px;stroke:var(--ink)}
.badge-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--blue);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:var(--f-display)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;align-items:center;justify-content:center}
.burger svg{width:22px;height:22px}
.more-wrap{position:relative}
.more-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-2);padding:6px;min-width:190px;display:none;flex-direction:column}
.more-menu.open{display:flex}
.more-menu a{padding:10px 12px;border-radius:8px;font-size:14.5px;color:var(--ink-700)}
.more-menu a:hover{background:var(--bg-soft)}

/* ---------- footer ---------- */
.ftr{background:var(--grad-ink);color:#fff;padding:64px 0 32px;margin-top:80px;position:relative;overflow:hidden}
.ftr::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(27,59,255,.6),transparent)}
.ftr::after{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(27,59,255,.12),transparent 70%);top:-280px;right:-100px;pointer-events:none}
.ftr .cols{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:32px}
.ftr h4{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-400);margin-bottom:16px;font-weight:600}
.ftr a{display:block;color:#C6CCDA;font-size:14.5px;padding:6px 0;transition:.14s}
.ftr a:hover{color:#fff}
.ftr .logo{font-family:var(--f-display);font-weight:700;font-size:26px;letter-spacing:-.03em}
.ftr .logo b{color:var(--blue)}
.ftr .fdesc{color:#9AA3B7;font-size:14px;margin-top:12px;max-width:30ch}
.ftr-bot{border-top:1px solid #1E2536;margin-top:44px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;color:#8891A6;font-size:13.5px}
.ftr-bot a{display:inline;color:#8891A6}

/* ---------- filters sidebar ---------- */
.filters{background:var(--grad-surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;position:sticky;top:calc(var(--hh) + 20px);box-shadow:var(--sh-1)}
.filters h3{font-size:16px;margin-bottom:4px}
.fgroup{padding:16px 0;border-top:1px solid var(--line)}
.fgroup:first-of-type{border-top:none;padding-top:8px}
.fgroup .flabel{font-size:13px;font-weight:600;color:var(--ink-700);margin-bottom:10px;display:block}
.fopts{display:flex;flex-direction:column;gap:8px}
.fopt{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--slate);cursor:pointer}
.fopt input{width:16px;height:16px;accent-color:var(--blue)}
select,input[type=text],input[type=email],input[type=number],input[type=tel],input[type=password],textarea{
  width:100%;height:46px;border:1px solid var(--line);border-radius:11px;padding:0 14px;
  font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--grad-surface);transition:.16s;box-shadow:var(--hair);
}
textarea{height:auto;padding:12px 14px;resize:vertical;min-height:110px;line-height:1.5}
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-050),var(--hair);background:#fff}
.range{width:100%;accent-color:var(--blue);margin:8px 0}

.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.toolbar .count{color:var(--slate);font-size:14.5px}
.toolbar .count b{color:var(--ink);font-family:var(--f-display)}
.searchbar{display:flex;align-items:center;gap:10px;flex:1;min-width:0;max-width:420px;height:48px;border:1px solid var(--line);border-radius:13px;padding:0 15px;background:var(--grad-surface);box-shadow:var(--sh-1);transition:.16s}
.searchbar:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-050),var(--sh-1)}
.searchbar input{border:none;height:auto;padding:0;flex:1;min-width:0;background:none;box-shadow:none}
.searchbar input:focus{box-shadow:none;background:none}
.searchbar svg{width:18px;height:18px;stroke:var(--slate-400)}

/* ---------- toast ---------- */
.toast-host{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--grad-ink);color:#fff;padding:14px 18px;border-radius:13px;box-shadow:var(--sh-3);display:flex;align-items:center;gap:12px;font-size:14.5px;font-weight:500;min-width:260px;animation:toastIn .3s cubic-bezier(.2,.8,.2,1);border:1px solid rgba(255,255,255,.08)}
.toast svg{width:20px;height:20px;flex-shrink:0}
.toast.ok svg{stroke:#4ADE80}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}

/* ---------- modal ---------- */
.modal-host{position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;padding:20px}
.modal-host.open{display:flex}
.modal-bg{position:absolute;inset:0;background:rgba(8,11,20,.5);backdrop-filter:blur(5px);animation:fade .2s}
.modal{position:relative;background:var(--grad-surface);border-radius:var(--r-xl);max-width:480px;width:100%;padding:32px;box-shadow:var(--sh-3);animation:modalIn .28s cubic-bezier(.2,.8,.2,1);border:1px solid var(--line)}
.modal::before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent)}
.modal-lg{max-width:640px}
.modal .x{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--grad-surface);display:flex;align-items:center;justify-content:center;transition:.14s}
.modal .x:hover{background:#fff;border-color:#C7CFE4}
.modal .ok-ico{width:64px;height:64px;border-radius:50%;background:var(--green-050);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;box-shadow:inset 0 0 0 1px rgba(14,155,87,.16)}
.modal .ok-ico svg{width:32px;height:32px;stroke:var(--green)}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- hero ---------- */
.hero{position:relative;padding:76px 0 68px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(38px,5.2vw,66px);letter-spacing:-.04em;line-height:1.02}
.hero h1 .accent{background:var(--grad-blue);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--blue)}
.hero .lead{font-size:19px;color:var(--slate);margin:22px 0 32px;max-width:46ch}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-stats{display:flex;gap:34px;margin-top:44px;padding-top:28px;border-top:1px solid var(--line)}
.hero-stat .n{font-family:var(--f-display);font-size:32px;font-weight:600;letter-spacing:-.025em;background:var(--grad-ink);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-stat .l{font-size:13px;color:var(--slate);margin-top:2px}
.hero-visual{position:relative}
.hero-visual::before{content:"";position:absolute;inset:-40px -20px;background:radial-gradient(60% 60% at 60% 30%,rgba(27,59,255,.12),transparent 70%);filter:blur(10px);z-index:-1;pointer-events:none}

/* dotted bg accent */
.dots{position:absolute;inset:0;background-image:radial-gradient(rgba(27,59,255,.14) 1px,transparent 1px);background-size:24px 24px;opacity:.5;z-index:-1;-webkit-mask-image:radial-gradient(80% 60% at 30% 20%,#000,transparent 75%);mask-image:radial-gradient(80% 60% at 30% 20%,#000,transparent 75%)}

/* quick pick cards */
.qp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.qp{position:relative;background:var(--grad-surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;transition:.22s cubic-bezier(.2,.8,.2,1);cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:10px;box-shadow:var(--sh-1);overflow:hidden}
.qp::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(180deg,rgba(27,59,255,.25),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:.22s;pointer-events:none}
.qp:hover{border-color:transparent;box-shadow:var(--sh-2);transform:translateY(-4px)}
.qp:hover::before{opacity:1}
.qp .ico{width:52px;height:52px;border-radius:14px;background:var(--grad-blue);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:var(--sh-blue)}
.qp h3{font-size:18px}
.qp p{font-size:14px;color:var(--slate);margin:0}
.qp .arw{margin-top:auto;color:var(--blue);font-weight:600;font-size:14px;font-family:var(--f-display);display:flex;align-items:center;gap:6px}

/* wizard */
.wizard{position:relative;background:var(--grad-soft);border-radius:var(--r-xl);padding:40px;border:1px solid var(--line);box-shadow:var(--sh-2),var(--hair);overflow:hidden}
.wizard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-blue);opacity:.8}
.wz-steps{display:flex;gap:8px;margin-bottom:28px}
.wz-dot{flex:1;height:5px;border-radius:999px;background:var(--bg-soft-2);overflow:hidden}
.wz-dot.done{background:var(--blue)}
.wz-dot.cur{background:var(--blue);opacity:.5}
.wz-q{font-family:var(--f-display);font-size:24px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}
.wz-hint{color:var(--slate);margin-bottom:24px}
.wz-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.wz-opt{border:1px solid var(--line);background:var(--grad-surface);border-radius:12px;padding:16px;text-align:center;font-weight:500;font-size:15px;transition:.16s;box-shadow:var(--sh-1)}
.wz-opt:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:var(--sh-2)}
.wz-opt:hover{border-color:var(--blue)}
.wz-opt.sel{border-color:var(--blue);background:var(--blue-050);color:var(--blue);font-weight:600}
.wz-amount{font-family:var(--f-display);font-size:44px;font-weight:600;background:var(--grad-blue);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--blue);text-align:center;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.wz-nav{display:flex;justify-content:space-between;margin-top:28px;gap:12px}
.wz-result{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

/* breadcrumb */
.crumb{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--slate);padding:20px 0}
.crumb a:hover{color:var(--blue)}
.crumb span{color:var(--slate-400)}

/* section headers with link */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px;gap:20px;flex-wrap:wrap}
.sec-head .link{font-family:var(--f-display);font-weight:600;font-size:14.5px;color:var(--blue);display:flex;align-items:center;gap:6px}

/* pill tabs */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px}

/* generic media placeholder gradients (business photos = r"fish") */
.ph{background:linear-gradient(135deg,var(--bg-soft-2),#DFE4F0);display:flex;align-items:center;justify-content:center;color:var(--slate-400)}
.ph svg{width:38px!important;height:38px!important;opacity:.45;flex-shrink:0}

/* dark band CTA */
.band{background:var(--grad-ink);color:#fff;border-radius:var(--r-xl);padding:52px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--sh-3)}
.band::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(70% 70% at 80% 20%,#000,transparent 70%);mask-image:radial-gradient(70% 70% at 80% 20%,#000,transparent 70%);pointer-events:none}
.band h2{font-size:clamp(26px,3vw,38px);color:#fff;position:relative}
.band p{position:relative}
.band .glow{position:absolute;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(27,59,255,.55),transparent 68%);top:-180px;right:-90px;pointer-events:none;filter:blur(6px)}
.band .glow::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(58,87,255,.35),transparent 70%);bottom:-380px;left:-260px}
.band{contain:paint}
.band p{color:#B8C0D4;margin:12px auto 26px;max-width:52ch;position:relative}

/* article */
.prose{max-width:720px;margin:0 auto}
.prose p{font-size:17px;line-height:1.75;color:var(--ink-700);margin:0 0 20px}
.prose h2{font-size:26px;margin:38px 0 14px}
.prose h3{font-size:20px;margin:28px 0 10px}
.prose ul{padding-left:20px;color:var(--ink-700);line-height:1.8}
.prose blockquote{border-left:3px solid var(--blue);padding:4px 0 4px 20px;margin:24px 0;color:var(--ink);font-size:18px}

/* dashboard */
.dash{display:grid;grid-template-columns:240px 1fr;gap:32px;align-items:start}
.dash-nav{background:var(--grad-surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;position:sticky;top:calc(var(--hh) + 20px);box-shadow:var(--sh-1)}
.dash-nav a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;font-size:14.5px;font-weight:500;color:var(--ink-700);transition:.16s}
.dash-nav a:hover{background:var(--bg-soft)}
.dash-nav a.on{background:var(--grad-ink);color:#fff;box-shadow:var(--sh-2)}
.dash-nav a svg{width:18px;height:18px}
.stat-card{position:relative;background:var(--grad-soft);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-1),var(--hair);overflow:hidden}
.stat-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--blue),transparent 70%);opacity:.4}
.stat-card .n{font-family:var(--f-display);font-size:32px;font-weight:600;letter-spacing:-.02em}

/* simple table */
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--line)}
.tbl td{padding:14px;border-bottom:1px solid var(--line);font-size:14.5px}
.tbl tr:last-child td{border-bottom:none}

/* qty stepper */
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.qty button{width:34px;height:34px;border:none;background:#fff;font-size:17px;color:var(--ink)}
.qty button:hover{background:var(--bg-soft)}
.qty span{width:38px;text-align:center;font-family:var(--f-display);font-weight:600;font-variant-numeric:tabular-nums}

/* empty state */
.empty{text-align:center;padding:60px 20px;color:var(--slate)}
.empty svg{width:52px;height:52px;stroke:var(--slate-400);margin:0 auto 16px}

/* price */
.price{font-family:var(--f-display);font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.price .cur{font-size:16px;color:var(--slate);font-weight:500}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:120;display:none}
.drawer.open{display:block}
.drawer-bg{position:absolute;inset:0;background:rgba(10,14,26,.5)}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);background:#fff;padding:22px;overflow-y:auto;animation:slideIn .25s ease}
.drawer-panel a{display:block;padding:14px 12px;border-radius:10px;font-size:16px;font-weight:500;color:var(--ink-700)}
.drawer-panel a:hover{background:var(--bg-soft)}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:none}}

/* sticky mobile CTA */
.sticky-cta{display:none}

/* fade-up on load */
.fu{opacity:0;transform:translateY(14px);animation:fu .6s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes fu{to{opacity:1;transform:none}}
.fu.d1{animation-delay:.06s}.fu.d2{animation-delay:.12s}.fu.d3{animation-delay:.18s}.fu.d4{animation-delay:.24s}

/* logos row */
.logos{display:flex;gap:40px;align-items:center;flex-wrap:wrap;justify-content:center;opacity:.7}
.logo-item{font-family:var(--f-display);font-weight:700;font-size:20px;color:var(--slate);letter-spacing:-.02em}

/* ============================================================
   AI elements
   ============================================================ */
.ai-mark{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;font-family:var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.ai-mark svg{width:13px;height:13px}
.ai-spark{width:14px;height:14px}
/* hard caps: no AI-component icon ever balloons */
.ai-panel svg,.ai-assist svg,.ai-score svg,.badge-ai svg{flex-shrink:0}
.badge-ai svg{width:14px!important;height:14px!important}
.ai-panel-head .badge-ai svg{width:14px!important;height:14px!important}

/* score chip on catalog cards */
.ai-score{
  position:absolute;top:12px;left:12px;z-index:2;
  display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px 0 8px;
  border-radius:999px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  box-shadow:var(--sh-1),inset 0 0 0 1px rgba(255,255,255,.8);border:1px solid var(--line);
}
.ai-score .ring{position:relative;width:20px;height:20px;flex-shrink:0}
.ai-score .ring svg{width:20px;height:20px;transform:rotate(-90deg)}
.ai-score .num{font-family:var(--f-display);font-weight:700;font-size:13.5px;font-variant-numeric:tabular-nums;line-height:1}
.ai-score .lbl{font-size:10px;color:var(--slate);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.ai-a .num,.ai-a .g{color:var(--green)}
.ai-b .num,.ai-b .g{color:var(--blue)}
.ai-c .num,.ai-c .g{color:var(--amber)}
.ai-d .num,.ai-d .g{color:var(--red)}
.ai-a .ring circle.fg{stroke:var(--green)}
.ai-b .ring circle.fg{stroke:var(--blue)}
.ai-c .ring circle.fg{stroke:var(--amber)}
.ai-d .ring circle.fg{stroke:var(--red)}

/* AI panel (detail page) */
.ai-panel{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(180deg,#F4F7FF,#fff);box-shadow:var(--sh-2),var(--hair);position:relative}
.ai-panel::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-blue);opacity:.85;z-index:2}
.ai-panel-head{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid var(--line)}
.ai-panel-head .badge-ai{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border-radius:999px;background:var(--grad-ink);color:#fff;font-family:var(--f-display);font-weight:600;font-size:12.5px;letter-spacing:.04em;box-shadow:var(--sh-1)}
.ai-panel-head .badge-ai svg{width:14px;height:14px}
.ai-big-score{margin-left:auto;display:flex;align-items:center;gap:12px}
.ai-big-score .ring{width:56px;height:56px;position:relative}
.ai-big-score .ring svg{width:56px;height:56px;transform:rotate(-90deg)}
.ai-big-score .ring .c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ai-big-score .ring .c b{font-family:var(--f-display);font-size:17px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.ai-big-score .ring .c span{font-size:9px;color:var(--slate);font-weight:600}
.ai-big-score .meta .g{font-family:var(--f-display);font-weight:700;font-size:20px;line-height:1}
.ai-big-score .meta .l{font-size:12.5px;color:var(--slate);font-weight:500}
.ai-summary{padding:18px 22px;color:var(--ink-700);font-size:15px;border-bottom:1px solid var(--line)}
.ai-cols{display:grid;grid-template-columns:1fr 1fr;gap:0}
.ai-col{padding:20px 22px}
.ai-col+.ai-col{border-left:1px solid var(--line)}
.ai-col h4{font-family:var(--f-display);font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:14px}
.ai-col.pros h4{color:var(--green)}
.ai-col.cons h4{color:var(--red)}
.ai-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.ai-col li{display:flex;gap:9px;font-size:14px;color:var(--ink-700);line-height:1.4}
.ai-col li .i{flex-shrink:0;margin-top:1px}
.ai-col.pros li .i{color:var(--green)}
.ai-col.cons li .i{color:var(--red)}
.ai-col li .i svg{width:16px;height:16px}
.ai-disclaimer{padding:12px 22px;font-size:12px;color:var(--slate-400);background:var(--bg-soft);display:flex;align-items:center;gap:7px}
.ai-disclaimer svg{width:14px;height:14px;flex-shrink:0}

/* AI assistant panel (post form) */
.ai-assist{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,#F4F7FF,#fff);padding:20px;position:sticky;top:calc(var(--hh) + 20px);box-shadow:var(--sh-2),var(--hair)}
.ai-assist-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.ai-assist-head .av{width:38px;height:38px;border-radius:11px;background:var(--grad-ink);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--sh-1)}
.ai-assist-head .av svg{width:18px;height:18px}
.ai-assist-head .t{font-family:var(--f-display);font-weight:600;font-size:15px}
.ai-assist-head .s{font-size:11.5px;color:var(--green);display:flex;align-items:center;gap:5px}
.ai-assist-head .s::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}
.ai-bubble{background:#fff;border:1px solid var(--line);border-radius:12px;border-top-left-radius:3px;padding:12px 14px;font-size:13.5px;color:var(--ink-700);line-height:1.5;margin-bottom:12px;animation:fu .4s ease}
.ai-meter{margin:14px 0}
.ai-meter .bar{height:8px;border-radius:999px;background:var(--bg-soft-2);overflow:hidden}
.ai-meter .fill{height:100%;background:linear-gradient(90deg,var(--blue),#5B7BFF);border-radius:999px;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.ai-meter .row{display:flex;justify-content:space-between;font-size:12px;color:var(--slate);margin-bottom:6px;font-weight:500}
.ai-meter .row b{font-family:var(--f-display);color:var(--ink)}
.ai-assist .act{width:100%;margin-top:6px}
.ai-field-hint{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--blue);background:var(--blue-050);border-radius:9px;padding:9px 11px;margin-top:8px;line-height:1.4}
.ai-field-hint svg{width:14px;height:14px;flex-shrink:0;margin-top:1px}

@media(max-width:820px){ .ai-cols{grid-template-columns:1fr} .ai-col+.ai-col{border-left:none;border-top:1px solid var(--line)} .ai-assist{position:static} }

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
.hide-mobile,.hide-tablet{}

/* ---- ≤1100: tablet landscape ---- */
@media(max-width:1100px){
  .nav{display:none}
  .burger{display:flex}
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .ftr .cols{grid-template-columns:1fr 1fr 1fr}
  .g-4{grid-template-columns:repeat(3,1fr)}
  .qp-grid{grid-template-columns:repeat(2,1fr)}
  .hide-tablet{display:none!important}
  .show-tablet{display:inline-flex!important}
}

/* ---- ≤820: tablet portrait ---- */
@media(max-width:820px){
  .wrap{padding:0 20px}
  .catalog{grid-template-columns:1fr;gap:24px}
  .catalog>*{min-width:0}
  .toolbar{gap:12px}
  .toolbar>div{min-width:0}
  .filters{position:static;display:none}
  .filters.open{display:block}
  .dash{grid-template-columns:1fr}
  .dash-nav{position:static;display:flex;overflow-x:auto;gap:6px;padding:8px}
  .dash-nav a{white-space:nowrap;flex-shrink:0}
  .g-3,.g-4{grid-template-columns:repeat(2,1fr)}
  .ftr .cols{grid-template-columns:1fr 1fr}
  .wz-opts{grid-template-columns:1fr 1fr}
  .wz-result{grid-template-columns:1fr}
  .band{padding:36px 24px}
  .section{padding:56px 0}
  /* detail-page two-column layouts stack */
  .proj-top,.biz-top,.grant-top,.inv-top,.cart-grid{grid-template-columns:1fr!important}
  .proj-top>*,.biz-top>*,.grant-top>*,.inv-top>*,.cart-grid>*{min-width:0}
  .proj-top aside,.biz-top aside,.grant-top aside,.inv-top aside,.cart-grid aside{position:static!important;top:auto!important}
  .post-grid{grid-template-columns:1fr!important}
  .post-grid>*{min-width:0}
  .ai-cols{grid-template-columns:1fr}
  .ai-col+.ai-col{border-left:none;border-top:1px solid var(--line)}
  .ai-assist{position:static}
}

/* ---- ≤820: stacked toolbar (search full width, controls below) ---- */
@media(max-width:820px){
  .toolbar{flex-direction:column;align-items:stretch;gap:12px}
  .toolbar .searchbar{max-width:none;width:100%}
  .toolbar>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;width:100%}
  .toolbar select{flex:1;min-width:0}
  .toolbar .count{white-space:nowrap}
  #mFilter{flex-shrink:0}
}

/* ---- ≤560: phone ---- */
@media(max-width:560px){
  .wrap{padding:0 16px}
  .section{padding:44px 0}
  .section-sm{padding:32px 0}
  .hero{padding:32px 0 40px}
  .h-sec{font-size:clamp(24px,7vw,32px)}
  .g-2,.g-3,.g-4,.qp-grid{grid-template-columns:1fr}
  .hero-stats{gap:24px;flex-wrap:wrap}
  .hero-stat .n{font-size:26px}
  .ftr{padding:48px 0 28px;margin-top:56px}
  .ftr .cols{grid-template-columns:1fr 1fr;gap:24px}
  .ftr .cols>div:first-child{grid-column:1/-1}
  .hero-cta{flex-direction:column}
  .hero-cta .btn{width:100%}
  .wz-opts{grid-template-columns:1fr}
  .wizard{padding:22px}
  .wz-q{font-size:20px}
  .wz-amount{font-size:36px}
  .modal{padding:24px}
  .band{padding:28px 20px}
  .band h2{font-size:24px}
  .band .glow{width:260px;height:260px;right:-120px;top:-120px}
  .hide-mobile{display:none!important}
  .brand .tag{display:none}
  .hdr-in{gap:12px}
  .icon-btn{width:42px;height:42px}
  /* sticky CTA on detail pages */
  .sticky-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:70;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:12px 16px;gap:10px;box-shadow:0 -4px 20px rgba(12,18,40,.08)}
  .sticky-cta .btn{flex:1}
  /* leave room for sticky CTA */
  body:has(.sticky-cta){padding-bottom:76px}
  .toast-host{left:16px;right:16px;bottom:16px}
  .toast{min-width:0}
  .crumb{padding:14px 0;font-size:12.5px;flex-wrap:wrap}
  .kpi .val{font-size:22px}
  .tbl{font-size:13px}
  .tbl th,.tbl td{padding:10px 8px}
  /* stat cards & table scroll */
  .dash .grid.g-3{grid-template-columns:1fr 1fr}
  .dash-proj-row{flex-wrap:wrap;gap:12px!important}
  .dash-proj-row>div[style*="text-align:center"]{flex:1}
}

/* ---- ≤380: small phone ---- */
@media(max-width:380px){
  .dash .grid.g-3{grid-template-columns:1fr}
  .hero h1{font-size:clamp(30px,10vw,40px)}
}

