:root {
  --bg: #0f172a;
  --panel: #111827;
  --card: #ffffff;
  --muted: #64748b;
  --text: #0f172a;
  --line: #e5e7eb;
  --brand: #2563eb;
  --brand2: #14b8a6;
  --danger: #dc2626;
  --warn: #d97706;
  --ok: #059669;
  --soft: #f8fafc;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f1f5f9; color: var(--text); }
a { color: var(--brand); text-decoration: none; }
.hero { min-height: 100vh; background: radial-gradient(circle at top left, rgba(37,99,235,.4), transparent 35%), linear-gradient(135deg,#0f172a,#111827 60%,#042f2e); color: white; display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; padding: 54px max(24px, 7vw); }
.hero h1 { font-size: clamp(42px,6vw,74px); line-height: .95; letter-spacing: -0.06em; margin: 0 0 20px; }
.hero p { font-size: 20px; color: #cbd5e1; max-width: 720px; line-height: 1.55; }
.badge { display:inline-flex; gap:8px; align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16); padding:8px 12px; border-radius:999px; color:#e2e8f0; font-weight:700; margin-bottom:18px; }
.hero-card { background: rgba(255,255,255,.98); color: var(--text); border-radius: 28px; padding: 28px; box-shadow: 0 28px 80px rgba(0,0,0,.35); }
.hero-card h2 { margin: 0 0 8px; font-size: 26px; }
.input, input, textarea, select { width: 100%; border: 1px solid var(--line); background: white; border-radius: 12px; padding: 13px 14px; font-size: 15px; outline: none; }
textarea { min-height: 90px; resize: vertical; }
label { display:block; font-weight: 700; font-size: 13px; margin: 14px 0 7px; color: #334155; }
.btn { appearance: none; border: 0; border-radius: 12px; background: var(--brand); color: white; padding: 13px 16px; font-weight: 800; cursor: pointer; box-shadow: 0 10px 24px rgba(37,99,235,.25); display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.btn:hover { filter: brightness(.96); }
.btn.secondary { background: #0f172a; }
.btn.ghost { background: #e2e8f0; color: #0f172a; box-shadow:none; }
.btn.small { padding: 9px 12px; border-radius: 10px; font-size: 13px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.notice { padding: 12px 14px; background: #eff6ff; color: #1e3a8a; border: 1px solid #bfdbfe; border-radius: 12px; margin: 14px 0; font-size: 14px; }
.error { background:#fef2f2; color:#991b1b; border-color:#fecaca; }
.shell { min-height:100vh; display:grid; grid-template-columns: 260px 1fr; }
.sidebar { background:#0f172a; color:white; padding:24px; position:sticky; top:0; height:100vh; }
.logo { display:flex; align-items:center; gap:10px; font-size:20px; font-weight:900; margin-bottom: 28px; }
.logo-mark { width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg,var(--brand),var(--brand2)); display:grid; place-items:center; color:white; }
.nav a, .nav button { display:flex; align-items:center; width:100%; gap:10px; color:#cbd5e1; padding:12px; border-radius:12px; background:transparent; border:0; cursor:pointer; text-align:left; font-weight:700; margin:4px 0; }
.nav a.active, .nav button.active, .nav a:hover, .nav button:hover { background:rgba(255,255,255,.1); color:white; }
.main { padding: 28px; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:22px; }
.topbar h1 { margin:0; letter-spacing:-.04em; font-size:32px; }
.user-pill { display:flex; align-items:center; gap:10px; background:white; border:1px solid var(--line); padding:8px 10px; border-radius:999px; font-weight:700; color:#334155; }
.cards { display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap:14px; margin:20px 0; }
.card { background:white; border:1px solid var(--line); border-radius:20px; padding:18px; box-shadow:0 8px 30px rgba(15,23,42,.04); }
.card h3 { margin:0 0 12px; font-size:18px; }
.metric { font-size:32px; line-height:1; font-weight:900; letter-spacing:-.05em; }
.metric-label { color:var(--muted); margin-top:6px; font-size:13px; font-weight:700; }
.scan-box { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:end; }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:16px; background:white; }
table { border-collapse:collapse; width:100%; min-width:900px; }
th, td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:top; font-size:14px; }
th { background:#f8fafc; color:#475569; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
tr:last-child td { border-bottom:0; }
.tag { display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:800; background:#e2e8f0; color:#334155; white-space:nowrap; }
.tag.ok { background:#dcfce7; color:#166534; }
.tag.warn { background:#fef3c7; color:#92400e; }
.tag.danger { background:#fee2e2; color:#991b1b; }
.tag.pro { background:#dbeafe; color:#1e40af; }
.section { display:none; }
.section.active { display:block; }
.loading { opacity:.6; pointer-events:none; }
.kicker { color:var(--muted); font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px; }
.report-list { margin:0; padding-left:20px; line-height:1.7; }
.pick-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pick-card { border:1px solid var(--line); border-radius:18px; padding:16px; background:white; }
.pick-card h4 { margin:0 0 8px; }
.codebox { background:#0f172a; color:#e2e8f0; border-radius:14px; padding:14px; overflow:auto; font-family:ui-monospace, Menlo, monospace; font-size:12px; white-space:pre-wrap; }
.footer-note { color:#94a3b8; font-size:12px; margin-top:18px; line-height:1.5; }
@media (max-width: 900px) {
  .hero, .shell { grid-template-columns:1fr; }
  .sidebar { position:relative; height:auto; }
  .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .scan-box, .grid2, .pick-grid { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .cards { grid-template-columns:1fr; }
  .main { padding:18px; }
  .hero { padding:30px 18px; }
}
.btn.danger-btn { background:#fee2e2; color:#991b1b; }
.btn.danger-btn:hover { background:#fecaca; filter:none; }
