:root {
    --bg: #0b1020;
    --panel: #121a2b;
    --panel2: #182237;
    --text: #edf2f7;
    --muted: #9ca9bc;
    --line: #27334a;
    --accent: #72e0a7;
    --danger: #ff6b6b;
    --warning: #ffbd66;
    --info: #72a8ff;
    --radius: 16px;
}
* { box-sizing: border-box; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
}
.container { width: min(1100px, calc(100% - 32px)); margin: 0 auto; }
.narrow { width: min(680px, calc(100% - 32px)); padding-top: 80px; }
.site-header { border-bottom: 1px solid var(--line); background: rgba(11,16,32,.9); }
.nav { min-height: 68px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.brand { color: var(--text); text-decoration:none; font-weight:800; letter-spacing:-.02em; }
.badge, .eyebrow { color: var(--accent); font-size:.76rem; font-weight:800; letter-spacing:.13em; }
.hero { padding: 72px 0 34px; max-width: 780px; }
.hero.compact { padding-bottom: 25px; }
.hero h1 { margin: 8px 0 14px; font-size: clamp(2.2rem, 6vw, 4.5rem); line-height: 1.03; letter-spacing:-.05em; }
.lead { color: var(--muted); font-size:1.12rem; max-width:720px; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:24px; margin-bottom:24px; }
.tabs { display:flex; gap:8px; border-bottom:1px solid var(--line); margin:-24px -24px 24px; padding:12px 24px 0; }
.tab { border:0; background:transparent; color:var(--muted); padding:12px 14px; cursor:pointer; font:inherit; border-bottom:2px solid transparent; }
.tab.active { color:var(--text); border-color:var(--accent); }
.tab-panel { display:none; }
.tab-panel.active { display:block; }
label { display:block; font-weight:700; margin-bottom:9px; }
textarea { width:100%; min-height:390px; resize:vertical; background:#0a0f1c; color:#dce7f5; border:1px solid var(--line); border-radius:12px; padding:17px; font: 13px/1.6 "SFMono-Regular", Consolas, monospace; outline:none; }
textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(114,224,167,.1); }
.hint, .file-name, small { color:var(--muted); font-size:.87rem; }
.dropzone { min-height:300px; border:1.5px dashed #40506d; border-radius:14px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; text-align:center; position:relative; background:#0d1423; cursor:pointer; }
.dropzone:hover, .dropzone.drag { border-color:var(--accent); }
.dropzone input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.upload-icon { font-size:2.2rem; color:var(--accent); }
.options { display:flex; gap:18px; flex-wrap:wrap; margin:20px 0; }
.check { font-weight:500; color:var(--muted); margin:0; }
.check input { accent-color:var(--accent); margin-right:7px; }
.btn { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); background:var(--panel2); color:var(--text); text-decoration:none; padding:11px 17px; border-radius:10px; font-weight:750; cursor:pointer; }
.btn.primary { background:var(--accent); color:#07130d; border-color:var(--accent); min-width:170px; }
.btn:disabled { opacity:.6; cursor:wait; }
.features { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:34px 0 70px; }
.features article { border:1px solid var(--line); background:var(--panel); border-radius:14px; padding:20px; }
.features span { font-size:1.6rem; }
.features h2 { font-size:1.1rem; margin:12px 0 4px; }
.features p { color:var(--muted); margin:0; font-size:.92rem; }
.footer { color:var(--muted); border-top:1px solid var(--line); padding:25px 0; font-size:.84rem; }
.back { color:var(--muted); text-decoration:none; }
.score-grid { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:14px; margin-bottom:24px; }
.score-card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:20px; min-height:130px; }
.score-card span { display:block; color:var(--muted); font-size:.9rem; }
.score-card strong { display:block; font-size:2.25rem; margin-top:10px; }
.main-score strong { font-size:2.7rem; }
.meter { height:7px; background:#252f43; border-radius:10px; overflow:hidden; margin:12px 0 7px; }
.meter i { display:block; height:100%; background:var(--accent); }
.section-head { display:flex; justify-content:space-between; }
.section-head h2, .panel > h2 { margin-top:0; }
.section-head p { color:var(--muted); margin-top:-6px; }
.findings { display:grid; gap:12px; }
.finding { border:1px solid var(--line); border-left:4px solid var(--info); border-radius:11px; padding:16px; background:#101827; }
.finding.critical, .finding.high { border-left-color:var(--danger); }
.finding.medium { border-left-color:var(--warning); }
.finding.low { border-left-color:#9aa8bd; }
.finding-top { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; }
.severity { font-size:.7rem; font-weight:900; letter-spacing:.1em; }
.rule { color:var(--muted); font:12px monospace; }
.finding h3 { margin:0 0 5px; font-size:1rem; }
.finding p { margin:0 0 10px; color:var(--muted); }
.finding-meta { color:var(--muted); font-size:.8rem; }
.finding pre { overflow:auto; background:#080d17; padding:10px; border-radius:8px; margin:12px 0 0; }
.file-list { list-style:none; padding:0; margin:0; display:grid; gap:7px; }
.file-list li { display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-family:monospace; font-size:.86rem; }
.file-list span { font-family:inherit; font-size:.68rem; color:var(--accent); border:1px solid var(--line); padding:2px 5px; border-radius:4px; }
.empty { text-align:center; padding:45px 10px; color:var(--muted); }
.empty span { color:var(--accent); font-size:2rem; }
.error { margin-top:80px; }
code { font-family: "SFMono-Regular", Consolas, monospace; }
@media (max-width: 800px) {
    .features, .score-grid { grid-template-columns:1fr; }
    .hero { padding-top:48px; }
    .panel { padding:18px; }
    .tabs { margin:-18px -18px 18px; padding-left:18px; padding-right:18px; }
    textarea { min-height:300px; }
}
