/* FlawStrike console theme: layered on top of application.css. */
body { min-height:100vh; display:flex; flex-direction:column; background:radial-gradient(900px 520px at 88% -12%,#d3142c38,transparent 68%),radial-gradient(760px 460px at -8% 6%,#7a0f2a2e,transparent 70%),var(--paper); background-attachment:fixed; }
main { flex:1; width:100%; }
h1,h2,h3 { color:#fcf4f5; }
a { transition:color .15s; }
:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
.site-header { position:sticky; top:0; z-index:20; gap:16px; backdrop-filter:blur(14px); }
.brand { letter-spacing:-.02em; }
.brand-mark { background:linear-gradient(135deg,#3d1215,#551b1f); color:var(--mint); border:1px solid #5e2f32; box-shadow:0 0 18px #dc354026; }
.site-nav { display:flex; align-items:center; gap:4px; flex-wrap:wrap; justify-content:flex-end; }
.site-nav > a:not(.nav-cta) { padding:8px 11px; border-radius:8px; color:var(--muted); text-decoration:none; font-size:13px; font-weight:600; }
.site-nav > a:not(.nav-cta):hover,.site-nav > a.active { color:var(--ink); background:var(--surface-2); }
.nav-count { display:inline-block; min-width:18px; padding:1px 5px; border-radius:9px; background:var(--amber); color:#241703; font:500 10px "DM Mono"; text-align:center; }
.panel,.stats,.catalog-card,.step,.quota-pill,.auth-card { background:linear-gradient(180deg,#2e1416,#250f10); border-color:var(--line); box-shadow:0 1px 0 #ffffff08 inset,0 18px 40px #0000002e; }
.catalog-card,.step { transition:transform .18s,border-color .18s; }
.catalog-card:hover,.step:hover { transform:translateY(-2px); border-color:#703a3e; }
.coverage-card { background:linear-gradient(150deg,#3a1316,#3c1417); border:1px solid #602c2f; }
.landing-hero h1 span,.hero h1 span { background:linear-gradient(90deg,var(--green),#ff7a83); -webkit-background-clip:text; background-clip:text; color:transparent; }
.engine-strip { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 16px; }
.coverage-card .engine-strip span { display:inline-block; padding:4px 8px; border:1px solid #6e393d; border-radius:6px; color:var(--mint); font:500 10px "DM Mono"; }
.btn-primary,input[type=submit].btn-primary { background:linear-gradient(135deg,#8c0d15,#7f0b13); color:#fff; border-color:transparent; box-shadow:0 8px 22px #8c0d1533; }
.btn-primary:hover { filter:brightness(1.12); }
input,select,textarea { color:var(--ink); background:var(--surface-2); border-color:#5c3437; }
input::placeholder,textarea::placeholder { color:#a47c7f; }
.badge.pending,.badge.contacted { color:#f7d98b; background:#3a2d0d; }
.badge.granted { color:var(--mint); background:#3a0e11; }
.badge.declined { color:var(--red); background:#3d1a18; }
.site-footer { display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; padding:22px max(24px,calc((100vw - 1180px)/2)); border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.site-footer a { color:var(--ink); text-decoration:none; }
.credit-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; align-items:start; }
.credit-grid .panel { margin:0; }
.credit-form { display:grid; gap:16px; }
.credit-form label { display:grid; gap:7px; font-size:13px; font-weight:600; }
.credit-form small { color:var(--muted); font-weight:400; }
.credit-form input:not([type=submit]),.credit-form textarea { width:100%; padding:12px 14px; border:1px solid #5c3437; border-radius:9px; font:14px Manrope,sans-serif; }
.credit-form input[type=submit] { justify-self:start; cursor:pointer; }
.contact-card ol { margin:0 0 24px; padding-left:18px; color:var(--muted); font-size:14px; line-height:1.9; }
.contact-card p:last-child { margin:0; line-height:1.7; }
.contact-card a { color:var(--green); text-decoration:none; font:500 15px "DM Mono"; }
.request-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.request-actions form { margin:0; }
.grant-form { display:flex; gap:6px; }
.grant-form input[type=number] { width:68px; padding:6px 8px; border:1px solid #5c3437; border-radius:7px; }
.request-message { max-width:260px; color:var(--muted); white-space:pre-line; }
@media (max-width:820px) {
  .site-header { height:auto; padding-top:12px; padding-bottom:12px; flex-direction:column; align-items:flex-start; }
  .site-nav { justify-content:flex-start; }
  .credit-grid { grid-template-columns:1fr; }
}
.mini-link,button.mini-link { background:none; border:0; color:var(--muted); font:600 12px Manrope,sans-serif; text-decoration:underline; cursor:pointer; }
.mini-link:hover { color:var(--red); }
th,td { border-bottom-color:var(--line); }
.platform-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:24px; }
.platform-grid article { padding:24px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,#2e1416,#250f10); transition:transform .18s,border-color .18s; }
.platform-grid article:hover { transform:translateY(-3px); border-color:#703a3e; }
.platform-grid h3 { margin:0 0 8px; font-size:16px; }
.platform-grid p { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.steps:has(> .step:nth-child(3):last-child) { grid-template-columns:repeat(3,1fr); }
.cta-band { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; padding:36px; border:1px solid #602c2f; border-radius:18px; background:linear-gradient(135deg,#3a1316,#3c1417); }
.cta-band h2 { margin:0 0 8px; }
.cta-contact { margin:12px 0 0; color:var(--muted); font-size:14px; }
.cta-contact a { color:var(--mint); text-decoration:none; font-family:"DM Mono",monospace; }
main { position:relative; }
.hero-canvas { position:absolute; top:0; left:50%; transform:translateX(-50%); width:100vw; height:640px; z-index:-1; -webkit-mask-image:linear-gradient(#000 60%,transparent); mask-image:linear-gradient(#000 60%,transparent); }
.landing-hero { position:relative; }
.live-dot { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:var(--green); animation:live-pulse 1.8s infinite; }
@keyframes live-pulse { 0% { box-shadow:0 0 0 0 #dc354080; } 100% { box-shadow:0 0 0 10px #dc354000; } }
.live-console { position:relative; overflow:hidden; border:1px solid #602c2f; border-radius:16px; background:#200b0cf2; box-shadow:0 24px 70px #00000066,0 0 50px #dc354018; font-size:12px; }
.live-console::after { content:""; position:absolute; left:0; right:0; top:0; height:70px; background:linear-gradient(#dc354000,#dc354014); border-bottom:1px solid #dc354040; animation:console-sweep 4.5s linear infinite; pointer-events:none; }
@keyframes console-sweep { from { transform:translateY(-70px); } to { transform:translateY(460px); } }
.console-bar { display:flex; align-items:center; gap:6px; padding:11px 14px; border-bottom:1px solid var(--line); color:var(--muted); font:500 11px "DM Mono",monospace; }
.console-bar i { width:9px; height:9px; border-radius:50%; background:#552f32; }
.console-bar span { margin-left:6px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.console-bar em { margin-left:auto; flex:none; color:var(--amber); font-style:normal; }
.console-bar em.done { color:var(--green); }
.console-engines { display:grid; gap:9px; padding:15px 16px; border-bottom:1px solid var(--line); }
.engine-row { display:grid; grid-template-columns:96px 1fr; align-items:center; gap:10px; color:var(--muted); font:500 10.5px "DM Mono",monospace; }
.engine-track { height:5px; overflow:hidden; border-radius:4px; background:#391b1d; }
.engine-track b { display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,#8c0d15,var(--green)); }
.console-feed { min-height:128px; padding:12px 16px 4px; }
.console-feed p { display:flex; align-items:center; gap:9px; margin:0 0 9px; animation:feed-in .35s ease-out; }
@keyframes feed-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.console-foot { padding:10px 16px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.console-foot strong { color:var(--ink); font-family:"DM Mono",monospace; }
.check-ticker { overflow:hidden; margin:0 0 28px; padding:12px 0; border-block:1px solid var(--line); -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.check-ticker > div { display:flex; gap:34px; width:max-content; animation:ticker 42s linear infinite; }
.check-ticker span { color:var(--muted); font:500 11px "DM Mono",monospace; white-space:nowrap; }
.check-ticker span::before { content:"◆"; margin-right:10px; color:var(--green); font-size:8px; }
@keyframes ticker { to { transform:translateX(-50%); } }
.will-reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease-out,transform .6s ease-out; }
.will-reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) {
  .live-dot,.live-console::after,.check-ticker > div,.console-feed p { animation:none; }
  .check-ticker > div { flex-wrap:wrap; width:auto; }
}
@media (max-width:820px) { .platform-grid,.steps:has(> .step:nth-child(3):last-child) { grid-template-columns:1fr; } }
.landing-hero h1 { font-size:clamp(38px,4.9vw,60px); }
.page-hero { max-width:820px; margin-bottom:40px; }
.page-hero h1 { margin:0; font-size:clamp(34px,4.6vw,54px); line-height:1.05; letter-spacing:-.04em; }
.shot,.code-window { margin:0; overflow:hidden; border:1px solid #602c2f; border-radius:14px; background:#200b0c; box-shadow:0 24px 70px #00000055; }
.shot img { display:block; width:100%; height:auto; }
.shot-bar { display:flex; align-items:center; gap:6px; padding:10px 14px; border-bottom:1px solid var(--line); color:var(--muted); font:500 11px "DM Mono",monospace; }
.shot-bar i { width:9px; height:9px; border-radius:50%; background:#552f32; }
.shot-bar span { margin-left:6px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.report-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:40px; align-items:center; }
.report-row h2 { margin:0 0 10px; }
.pdf-pages { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.pdf-pages img { display:block; width:100%; height:auto; border-radius:6px; box-shadow:0 18px 40px #00000066; }
.code-window pre { margin:0; max-height:380px; overflow:auto; padding:16px; color:#e6cfd1; font:12px/1.55 "DM Mono",monospace; white-space:pre; }
.check-list { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:20px; }
.check-list span { padding:13px 16px; border:1px solid var(--line); border-radius:10px; background:#261011; font-size:14px; }
.faq-list { display:grid; gap:10px; max-width:820px; }
.faq-item { padding:16px 20px; border:1px solid var(--line); border-radius:12px; background:#261011; }
.faq-item summary { cursor:pointer; font-weight:700; }
.faq-item p { margin:12px 0 0; color:var(--muted); line-height:1.7; }
.contact-trap { position:absolute; left:-9999px; }
.contact-gap { margin-top:24px; }
.contact-card a { color:var(--green); }
.credit-form select { width:100%; padding:12px 14px; border:1px solid #5c3437; border-radius:9px; font:14px Manrope,sans-serif; }
.footer-links { display:flex; flex-wrap:wrap; gap:6px 14px; }
.footer-links a { color:var(--muted); }
.footer-links a:hover { color:var(--ink); }
@media (max-width:820px) {
  .report-row,.check-list { grid-template-columns:1fr; }
  .report-row > * { min-width:0; }
}
/* Black and red brand layer. Green is kept for success states, so red can mean brand or risk. */
.site-header { border-top:2px solid var(--fill); }
.brand { font-weight:800; }
.brand-mark { background:linear-gradient(135deg,#ff3b4d,#a30d24); color:#fff; border-color:#ff5c6a; box-shadow:0 0 22px #ff3b4d55; }
.btn-primary,input[type=submit].btn-primary,.nav-cta { background:linear-gradient(135deg,#ee1c35,#a80e25); color:#fff; border-color:transparent; box-shadow:0 8px 26px #ee1c3540; }
.btn-primary:hover,.nav-cta:hover { filter:brightness(1.14); box-shadow:0 10px 34px #ee1c3566; }
.btn:not(.btn-primary):hover { border-color:#ff3b4d; }
.landing-hero h1,.page-hero h1 { letter-spacing:-.05em; font-weight:800; }
.panel,.stats,.catalog-card,.step,.quota-pill,.auth-card,.platform-grid article,.faq-item,.check-list span { background:linear-gradient(180deg,#16161b,#0e0e12); border-color:#2a2a33; }
.catalog-card:hover,.step:hover,.platform-grid article:hover { border-color:#ff3b4d; box-shadow:0 14px 40px #ff3b4d1f; }
.live-console { background:#0b0b0ff2; border-color:#4a2028; box-shadow:0 24px 70px #00000080,0 0 60px #ff3b4d22; }
.check-ticker { border-color:#2a2a33; }
.cta-band,.coverage-card { background:linear-gradient(135deg,#2a0b12,#120a12); border-color:#5a1a26; }
.engine-track { background:#23232b; }
.engine-track b { background:linear-gradient(90deg,#a80e25,#ff3b4d); }
.nav-count { background:var(--green); color:#fff; }
.live-dot { background:var(--green); }
/* Success states stay green. */
.badge.complete,.badge.granted,.status-dot,.pill-on { color:var(--ok); background:#0f2e1c; }
.console-bar em.done { color:var(--ok); }
.declarations { display:grid; gap:12px; margin:6px 0; padding:14px; border:1px solid var(--line); border-radius:10px; }
.declarations legend { padding:0 6px; color:var(--muted); font:500 10px "DM Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.declarations label { display:flex; gap:9px; align-items:flex-start; font-size:12.5px; font-weight:500; line-height:1.5; }
.declarations input { flex:none; width:auto; margin:3px 0 0; }
.declarations a { color:var(--green); }
.form-note { margin:0; color:var(--muted); font-size:12px; }
.form-note a { color:var(--green); }
.record-title { overflow-wrap:anywhere; }
.legal-page { max-width:820px; }
.legal-page h1 { margin:0; font-size:clamp(34px,4.6vw,50px); letter-spacing:-.04em; }
.legal-page h2 { margin:34px 0 10px; font-size:20px; }
.legal-page p,.legal-page li,.legal-page td { color:#c9c9d2; font-size:15px; line-height:1.75; }
.legal-page a { color:var(--green); }
.legal-date { color:var(--muted) !important; font-size:13px !important; }
/* Spacing and alignment pass. */
h1,.landing-hero h1,.page-hero h1,.legal-page h1 { letter-spacing:-.028em; line-height:1.1; text-wrap:balance; }
h2 { letter-spacing:-.02em; }
.page-hero .eyebrow { margin-bottom:14px; }
.page-hero h1 { margin-bottom:18px; }
.page-hero .lede { margin:0; line-height:1.6; }
.catalog-card { display:flex; flex-direction:column; }
.catalog-card header { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.catalog-owasp { margin-top:auto; padding-top:14px; }
.faq-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.faq-list { max-width:none; }
.faq-item { padding:0; }
.faq-item summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:17px 20px; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:""; flex:none; width:8px; height:8px; margin-right:3px; border-right:2px solid var(--green); border-bottom:2px solid var(--green); transform:rotate(45deg) translateY(-2px); transition:transform .18s; }
.faq-item[open] { border-color:#5a2a33; }
.faq-item[open] summary::after { transform:rotate(-135deg) translateY(-2px); }
.faq-item summary:hover { color:var(--mint); }
.faq-item p { margin:0; padding:0 20px 18px; }
.faq-aside { position:sticky; top:96px; margin:0; }
.faq-aside h2 { margin:0 0 8px; font-size:19px; }
.faq-aside p { margin:0 0 16px; color:var(--muted); font-size:14px; line-height:1.6; }
@media (max-width:820px) { .faq-layout { grid-template-columns:1fr; } .faq-aside { position:static; } }
.auth-form .declarations label { display:flex; flex-direction:row; gap:10px; align-items:flex-start; color:#c9c9d2; font:500 13px/1.55 Manrope,sans-serif; letter-spacing:0; text-transform:none; }
.auth-form .declarations input { flex:none; width:16px; height:16px; margin:2px 0 0; padding:0; accent-color:#ee1c35; }
.faq-layout { margin-bottom:48px; }
.flash.notice { color:var(--ok); }
.flash.alert { color:var(--red); }
/* Phone header: logo and menu button, with links in a dropdown. Hidden on larger screens. */
.nav-toggle,.nav-burger { display:none; }
@media (max-width:820px) {
  .site-header { position:sticky; height:auto; min-height:64px; padding:12px 16px; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0; }
  .nav-toggle { display:block; position:absolute; top:12px; right:16px; width:44px; height:40px; margin:0; opacity:0; cursor:pointer; z-index:2; }
  .nav-burger { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:44px; height:40px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
  .nav-toggle:focus-visible + .nav-burger { outline:2px solid var(--green); outline-offset:2px; }
  .nav-burger span { display:block; width:18px; height:2px; border-radius:2px; background:var(--ink); transition:transform .18s,opacity .18s; }
  .nav-toggle:checked + .nav-burger span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .nav-toggle:checked + .nav-burger span:nth-child(2) { opacity:0; }
  .nav-toggle:checked + .nav-burger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .site-nav { display:none; flex-basis:100%; flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:2px; max-height:calc(100vh - 80px); overflow-y:auto; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
  .nav-toggle:checked ~ .site-nav { display:flex; }
  .site-nav > a:not(.nav-cta) { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 12px; font-size:15px; }
  .site-nav .nav-cta { display:block; margin-top:8px; padding:13px; text-align:center; font-size:15px; }
  .site-nav .scan-quota { align-self:flex-start; margin:8px 12px; }
  .site-nav form { margin:0; }
  .site-nav .nav-signout { width:100%; min-height:44px; padding:10px 12px; text-align:left; font-size:15px; }
}
