
:root{
  --bg:#07111f;
  --bg-soft:#0d1a2b;
  --panel:#0f1e31;
  --panel-2:#13263c;
  --line:#223750;
  --text:#e5eefb;
  --muted:#8ba3c3;
  --primary:#60a5fa;
  --primary-2:#3b82f6;
  --success:#22c55e;
  --danger:#ef4444;
  --warning:#f59e0b;
  --shadow:0 20px 60px rgba(0,0,0,.35);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html,body,#root{margin:0;min-height:100%;background:radial-gradient(circle at top,#10233b 0%,#07111f 45%,#050b14 100%);color:var(--text)}
body{line-height:1.45}
button,input,textarea,select{font:inherit}
a{color:inherit;text-decoration:none}
pre{white-space:pre-wrap;word-break:break-word}

.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{border-right:1px solid var(--line);background:rgba(5,12,20,.82);backdrop-filter:blur(14px);padding:24px 18px;display:flex;flex-direction:column;gap:18px}
.brand{display:flex;gap:14px;align-items:center}
.brand-logo,.login-logo{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(96,165,250,.3))}
.brand-title{font-size:1.2rem;font-weight:700}
.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.nav{display:flex;flex-direction:column;gap:8px}
.nav-btn{border:1px solid transparent;background:transparent;color:var(--muted);padding:12px 14px;border-radius:14px;text-align:left;cursor:pointer;transition:.18s}
.nav-btn:hover,.nav-btn.active{background:rgba(96,165,250,.09);border-color:rgba(96,165,250,.18);color:var(--text)}
.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:18px}
.sidebar-user{font-weight:600;margin:4px 0 12px}

.main{padding:22px 24px 34px;display:flex;flex-direction:column;gap:18px}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center}
.topbar-title{font-size:1.35rem;font-weight:700}
.topbar-subtitle{color:var(--muted)}
.topbar-actions{display:flex;gap:10px;align-items:center}

.hero-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat-card{background:linear-gradient(180deg,rgba(19,38,60,.95),rgba(15,30,49,.95));border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}
.stat-label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.stat-value{font-size:2rem;font-weight:800;margin-top:8px}
.stat-meta{font-size:.92rem;color:var(--muted);margin-top:8px}

.view-grid{display:flex;flex-direction:column;gap:16px}
.columns{display:grid;gap:16px}
.columns.two{grid-template-columns:1fr 1fr}
.columns.three{grid-template-columns:repeat(3,1fr)}
.columns.compact{gap:12px}
.graph-layout{grid-template-columns:330px minmax(0,1fr) 370px;align-items:start}

.panel{background:linear-gradient(180deg,rgba(15,30,49,.97),rgba(10,20,34,.97));border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow)}
.inner-panel{padding:14px;border-radius:18px;background:rgba(8,18,31,.65)}
.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.panel-head h3{margin:0;font-size:1.02rem}
.panel-actions,.toolbar,.topbar-actions,.row-actions{display:flex;gap:10px;align-items:center}
.toolbar.wrap{flex-wrap:wrap}
.form-grid{display:grid;gap:12px}
.form-grid.two{grid-template-columns:1fr 1fr}
.field{display:flex;flex-direction:column;gap:8px}
.field-label{font-size:.86rem;color:var(--muted)}

.input,.textarea,.select{
  width:100%;
  border:1px solid #29415f;
  background:#091626;
  color:var(--text);
  border-radius:14px;
  padding:12px 14px;
  outline:none;
}
.textarea{resize:vertical;min-height:120px}
.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.15)}

.btn{border:1px solid transparent;border-radius:14px;padding:10px 14px;cursor:pointer;transition:.18s;font-weight:600}
.btn-primary{background:linear-gradient(180deg,var(--primary),var(--primary-2));color:white}
.btn-primary:hover{filter:brightness(1.08)}
.btn-secondary{background:rgba(96,165,250,.1);border-color:rgba(96,165,250,.16);color:#dbeafe}
.btn-secondary:hover,.btn-ghost:hover{background:rgba(96,165,250,.15)}
.btn-ghost{background:transparent;border-color:#29415f;color:var(--text)}

.badge,.pill{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;
  border:1px solid #2b4361;background:rgba(96,165,250,.1);font-size:.78rem
}
.badge-ok{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.22)}
.pill-row{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.chip-wrap{display:flex;flex-wrap:wrap;gap:8px}
.sev-critical,.pill.sev-critical{background:rgba(239,68,68,.18)!important;border-color:rgba(239,68,68,.3)!important}
.sev-high,.pill.sev-high{background:rgba(249,115,22,.16)!important;border-color:rgba(249,115,22,.28)!important}
.sev-medium,.pill.sev-medium{background:rgba(245,158,11,.16)!important;border-color:rgba(245,158,11,.28)!important}
.sev-low,.pill.sev-low{background:rgba(59,130,246,.16)!important;border-color:rgba(59,130,246,.28)!important}
.sev-info,.pill.sev-info{background:rgba(148,163,184,.14)!important;border-color:rgba(148,163,184,.22)!important}

.stack-list{display:flex;flex-direction:column;gap:10px}
.list-row,.artifact-item,.result-item,.finding-item{
  border:1px solid var(--line);background:rgba(8,18,31,.82);border-radius:18px;padding:14px;transition:.18s
}
.list-row.active,.artifact-item:hover,.result-item:hover,.finding-item:hover{border-color:rgba(96,165,250,.32);background:rgba(17,31,49,.96)}
.list-row-main{display:flex;flex-direction:column;gap:8px}
.list-row-title,.artifact-title,.finding-title,.detail-title{font-weight:700}
.list-row-meta,.artifact-meta,.finding-meta,.muted{color:var(--muted)}
.small-gap{margin-top:4px}
.result-item,.finding-item{cursor:pointer;text-align:left}
.findings-list{max-height:70vh;overflow:auto}
.search-results{max-height:320px;overflow:auto}

.progress{height:8px;border-radius:999px;background:#0b1524;overflow:hidden;border:1px solid #223650}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),#22d3ee)}

.graph-wrapper{min-height:720px;border:1px dashed #244260;border-radius:22px;background:radial-gradient(circle at center,rgba(15,30,49,.98),rgba(6,14,24,.96));overflow:hidden;position:relative}
.graph-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.graph-svg{width:100%;height:720px;display:block}
.graph-edge{stroke:#36506c;stroke-width:1.8}
.graph-edge-tainted{stroke:#ef4444;stroke-width:2.2}
.graph-edge-label,.graph-node-kind,.graph-node-title{
  fill:#dbeafe;font-size:12px;text-anchor:middle;paint-order:stroke;stroke:#07111f;stroke-width:4px;stroke-linejoin:round
}
.graph-node-title{font-size:13px;font-weight:700}
.graph-node-kind{font-size:11px;fill:#cbd5e1}
.graph-node{cursor:pointer}
.graph-node circle{transition:.18s}
.graph-node:hover circle,.graph-node-selected{filter:drop-shadow(0 0 14px rgba(96,165,250,.45))}

.code-block{
  border:1px solid #213652;background:#071321;color:#dbeafe;border-radius:18px;padding:14px;max-height:380px;overflow:auto
}
.detail-text{color:#dbeafe}
.empty-state{border:1px dashed #27415d;border-radius:18px;padding:16px;color:var(--muted);text-align:center}
.artifact-list{display:flex;flex-direction:column;gap:10px}

.login-shell,.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{
  width:min(520px,100%);
  background:linear-gradient(180deg,rgba(15,30,49,.98),rgba(8,18,31,.97));
  border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow);text-align:center
}
.login-form{display:flex;flex-direction:column;gap:14px;text-align:left;margin-top:20px}

.check{display:flex;align-items:center;gap:10px;color:var(--text)}
.checkbox-row{display:flex;flex-wrap:wrap;gap:12px;padding-top:4px}

.busy-overlay{
  position:fixed;inset:0;background:rgba(3,8,14,.6);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;z-index:60
}
.busy-card{background:rgba(7,17,31,.96);border:1px solid var(--line);border-radius:22px;padding:24px 28px;display:flex;align-items:center;gap:14px}
.spinner{width:22px;height:22px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:var(--primary);animation:spin 1s linear infinite}
.toast{
  position:fixed;right:18px;bottom:18px;z-index:80;
  padding:14px 18px;border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow);max-width:460px
}
.toast-ok{background:rgba(15,34,28,.97)}
.toast-error{background:rgba(45,16,18,.97);border-color:rgba(239,68,68,.35)}

@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width: 1400px){
  .graph-layout{grid-template-columns:300px minmax(0,1fr)}
  .right-column{grid-column:1/-1}
}
@media (max-width: 1120px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{border-right:none;border-bottom:1px solid var(--line)}
  .columns.two,.columns.three,.hero-grid,.graph-layout,.form-grid.two{grid-template-columns:1fr}
}


/* Static marketing shell and S3-ready public navigation */
:root{--line:rgba(255,255,255,.10);--line-strong:rgba(103,232,249,.22);--text:#f8fbff;--muted:rgba(226,232,240,.72);--muted-2:rgba(226,232,240,.52);--cyan:#67e8f9}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top, rgba(34,211,238,.10), transparent 30%), radial-gradient(circle at 80% 20%, rgba(232,121,249,.10), transparent 24%), linear-gradient(180deg, #050816 0%, #07111f 100%)}.mobile-only{display:none}.desktop-only{display:flex}.public-shell{position:relative;min-height:100vh;overflow:hidden;background:transparent;color:var(--text)}.public-main{position:relative;z-index:2}.public-glow{pointer-events:none;position:fixed;border-radius:999px;filter:blur(90px);opacity:.28;z-index:0}.glow-a{width:420px;height:420px;left:-60px;top:120px;background:rgba(34,211,238,.22)}.glow-b{width:360px;height:360px;right:-40px;top:180px;background:rgba(232,121,249,.18)}.glow-c{width:420px;height:420px;left:38%;bottom:-140px;background:rgba(16,185,129,.10)}.marketing-container{width:min(1180px, calc(100% - 48px));margin:0 auto}.marketing-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:rgba(5,8,22,.72);backdrop-filter:blur(18px)}.marketing-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0}.brand-hero{background:none;border:0;padding:0;cursor:pointer}.brand-logo-static{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 8px 20px rgba(96,165,250,.25))}.brand-tagline{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:rgba(103,232,249,.82)}.brand-subtitle-public{font-size:12px;color:rgba(255,255,255,.55);margin-top:4px}.marketing-nav{align-items:center;gap:10px;padding:8px;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:999px}.marketing-nav-link{border:0;background:transparent;color:rgba(255,255,255,.72);padding:10px 16px;border-radius:999px;font-size:14px;cursor:pointer;transition:.18s ease}.marketing-nav-link:hover,.marketing-nav-link.active{background:#fff;color:#08101f}.marketing-actions{display:flex;align-items:center;gap:12px}.menu-toggle{width:44px;height:44px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;font-size:20px}.marketing-mobile-menu{padding:0 24px 18px;display:grid;gap:10px;border-top:1px solid var(--line);background:rgba(5,8,22,.94);position:relative;z-index:3}.marketing-mobile-link{border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;padding:14px 16px;border-radius:18px;text-align:left;cursor:pointer}.marketing-mobile-link.accent{border-color:var(--line-strong);background:rgba(34,211,238,.08);color:#c4fbff}.hero-section{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr .98fr;gap:42px;align-items:center;padding:72px 0 36px}.hero-eyebrow{display:inline-flex;padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);margin-bottom:18px}.hero-title{font-size:clamp(42px,6vw,74px);line-height:.98;letter-spacing:-.04em;margin:0;max-width:14ch}.hero-subtitle,.marketing-copy{font-size:16px;line-height:1.85;color:var(--muted);max-width:760px}.hero-subtitle{font-size:20px;max-width:620px;margin-top:20px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:32px}.marketing-metric{border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:26px;padding:20px;box-shadow:0 20px 50px rgba(0,0,0,.18)}.marketing-metric-value{font-size:34px;font-weight:700;color:#fff}.marketing-metric-label{font-size:14px;color:var(--muted);line-height:1.6;margin-top:8px}.hero-visual{position:relative}.visual-panel{position:relative;border:1px solid var(--line);background:rgba(255,255,255,.05);backdrop-filter:blur(20px);border-radius:34px;padding:18px;box-shadow:0 30px 120px rgba(0,0,0,.28)}.visual-topline{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.visual-title{font-size:16px;font-weight:600;color:#fff}.visual-subtitle{font-size:12px;color:var(--muted-2)}.graph-stage{position:relative;height:360px;border-radius:26px;border:1px solid var(--line);background:radial-gradient(circle at center, rgba(34,211,238,.10), transparent 40%), linear-gradient(135deg, rgba(255,255,255,.02), rgba(255,255,255,.03));overflow:hidden}.graph-node{position:absolute;padding:10px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(10,15,31,.88);font-size:12px;color:rgba(255,255,255,.84);box-shadow:0 12px 32px rgba(0,0,0,.28)}.graph-node::before{content:"";position:absolute;width:10px;height:10px;border-radius:999px;left:50%;top:-16px;transform:translateX(-50%);background:var(--cyan);box-shadow:0 0 25px rgba(34,211,238,.9)}.graph-node.n1{left:8%;top:22%}.graph-node.n2{left:27%;top:8%}.graph-node.n3{left:30%;top:56%}.graph-node.n4{left:54%;top:16%}.graph-node.n5{left:58%;top:58%}.graph-node.n6{left:79%;top:34%}.graph-line{position:absolute;height:1px;background:linear-gradient(90deg, rgba(34,211,238,.88), rgba(255,255,255,.54), rgba(232,121,249,.74));transform-origin:left center;opacity:.68}.graph-line.l1{left:14%;top:30%;width:128px;transform:rotate(-18deg)}.graph-line.l2{left:16%;top:32%;width:152px;transform:rotate(29deg)}.graph-line.l3{left:38%;top:17%;width:150px;transform:rotate(16deg)}.graph-line.l4{left:38%;top:61%;width:164px;transform:rotate(3deg)}.graph-line.l5{left:62%;top:29%;width:138px;transform:rotate(11deg)}.graph-line.l6{left:68%;top:60%;width:112px;transform:rotate(-18deg)}.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.mini-stat{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:20px;padding:14px;font-size:13px;color:#fff}.section-block{padding:88px 0 20px;position:relative;z-index:2}.strip-section{padding:18px 0 20px;position:relative;z-index:2}.strip-grid,.section-split,.dual-panels,.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px}.benefit-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}.benefit-list.compact{grid-template-columns:1fr}.benefit-item{border:1px solid var(--line);background:rgba(13,18,36,.72);border-radius:24px;padding:18px;color:rgba(255,255,255,.80);line-height:1.7}.marketing-card{border:1px solid var(--line);background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));border-radius:30px;padding:28px;box-shadow:0 25px 60px rgba(0,0,0,.18)}.marketing-kicker,.eyebrow{font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:rgba(103,232,249,.86);margin-bottom:12px}.marketing-card-title,.section-heading h2,.section-split h2,.cta-copy h2,.page-title{font-size:clamp(28px,4vw,52px);line-height:1.08;letter-spacing:-.03em;margin:0;color:#fff}.section-heading{max-width:820px;margin-bottom:28px}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.codeflow-shell{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:32px;padding:18px}.codeflow-pane,.flow-pane{border:1px solid var(--line);border-radius:22px;padding:18px;background:rgba(7,12,24,.78)}.flow-pane{background:linear-gradient(135deg, rgba(34,211,238,.10), rgba(232,121,249,.10))}.pane-title{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.54);margin-bottom:14px}.code-line{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:14px;padding:10px 12px;margin-bottom:10px;color:rgba(255,255,255,.74);font-size:14px}.flow-step{display:flex;gap:12px;align-items:flex-start;border:1px solid rgba(255,255,255,.10);background:rgba(7,12,24,.52);border-radius:18px;padding:12px 14px;margin-bottom:10px;color:rgba(255,255,255,.78);font-size:14px;line-height:1.7}.flow-badge{width:26px;height:26px;border-radius:999px;background:rgba(255,255,255,.10);display:inline-flex;align-items:center;justify-content:center;color:#c8fbff;font-size:12px;font-weight:700;flex:0 0 auto}.product-card-grid,.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}.product-card{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:28px;padding:20px}.product-visual{height:118px;border-radius:22px;border:1px solid rgba(103,232,249,.14);background:linear-gradient(135deg, rgba(34,211,238,.12), rgba(232,121,249,.10));margin-bottom:18px}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chip{display:inline-flex;padding:8px 12px;border-radius:999px;border:1px solid rgba(103,232,249,.22);background:rgba(34,211,238,.10);font-size:12px;color:#bdf6ff}.pricing-card{border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:30px;padding:24px}.pricing-card.featured{border-color:rgba(103,232,249,.28);background:linear-gradient(180deg, rgba(34,211,238,.12), rgba(255,255,255,.04));box-shadow:0 0 70px rgba(34,211,238,.08)}.pricing-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pricing-name{font-size:22px;font-weight:700;color:#fff}.pricing-tag{font-size:14px;color:var(--muted)}.pricing-price{font-size:38px;font-weight:700;color:#fff;margin-top:28px}.pricing-note{font-size:14px;color:var(--muted);margin-left:6px}.pricing-items{display:grid;gap:10px;margin-top:22px}.pricing-item{font-size:14px;color:rgba(255,255,255,.80);line-height:1.7}.cta-block{padding-bottom:100px}.wider{max-width:780px}.standalone-page{padding:78px 0 100px;position:relative;z-index:2}.faq-list{display:grid;gap:16px;margin-top:26px}.faq-item{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:24px;padding:22px}.faq-item h3{margin:0 0 12px;font-size:20px}.contact-copy-card,.contact-form-card,.login-marketing,.login-form-card{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:30px;padding:28px;box-shadow:0 25px 60px rgba(0,0,0,.18)}.public-form{display:grid;gap:16px}.success-card{border:1px solid rgba(16,185,129,.20);background:rgba(16,185,129,.10);border-radius:24px;padding:26px}.success-card h3{margin:0 0 10px;font-size:28px}.contact-points{display:grid;gap:12px;margin-top:20px}.inline-toast{position:static;transform:none;width:100%}.marketing-footer{position:relative;z-index:2;border-top:1px solid var(--line);background:rgba(5,8,22,.72);backdrop-filter:blur(14px);padding:26px 0 34px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-actions{display:flex;flex-wrap:wrap;gap:10px}.brand{display:flex;align-items:center;gap:12px;text-align:left}@media (max-width:1100px){.hero-section,.strip-grid,.section-split,.dual-panels,.contact-layout,.codeflow-shell{grid-template-columns:1fr}.feature-grid,.product-card-grid,.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.desktop-only{display:none}.mobile-only{display:block}.marketing-container{width:min(100% - 28px,1180px)}.hero-section{padding-top:46px}.hero-title{max-width:none}.feature-grid,.product-card-grid,.pricing-grid,.benefit-list,.metrics-grid,.mini-stats{grid-template-columns:1fr}.footer-inner{flex-direction:column;align-items:flex-start}.btn{width:auto}}
