*{box-sizing:border-box} :root{--bg:#f4f7fb;--card:#fff;--ink:#132238;--muted:#65758b;--line:#dce4ef;--accent:#0f5fff;--accent2:#eaf1ff;--good:#0f7b55;--warn:#a35a00;--bad:#b42318}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:12px}.logo-mark{width:38px;height:38px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:21px}.brand-name{font-weight:800;font-size:20px}.tagline{font-size:12px;color:var(--muted)}
.demo-badge{font-size:12px;font-weight:800;letter-spacing:.08em;background:#fff4dd;color:#8a5400;padding:8px 10px;border-radius:999px}
.shell{width:min(1180px,92vw);margin:0 auto}.hero{display:grid;grid-template-columns:1.5fr .7fr;gap:28px;padding:54px 0 30px;align-items:end}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--accent);margin:0 0 8px}.hero h1{font-size:48px;line-height:1.03;margin:0;max-width:820px;letter-spacing:-.04em}.hero-copy{font-size:18px;line-height:1.55;color:var(--muted);max-width:760px}.hero-card{background:#132238;color:#fff;padding:22px;border-radius:18px;display:flex;flex-direction:column;gap:8px}.hero-card span{font-size:13px;line-height:1.5;opacity:.8}
.layout{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:start;padding-bottom:60px}.steps{display:flex;flex-direction:column;gap:8px;position:sticky;top:96px}.step{border:0;background:transparent;text-align:left;padding:12px;border-radius:12px;color:var(--muted);display:flex;gap:10px;align-items:center;cursor:pointer}.step span{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800}.step.active{background:var(--accent2);color:var(--accent);font-weight:700}.step.active span{background:var(--accent);color:#fff;border-color:var(--accent)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 35px rgba(22,42,76,.06);overflow:hidden}.screen{display:none;padding:30px}.screen.active{display:block}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.section-head h2{font-size:30px;letter-spacing:-.03em;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:14px}.form-grid label.wide{grid-column:1/-1}
input,select,textarea{border:1px solid #cfd9e7;border-radius:11px;padding:12px 13px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,95,255,.1)}
.actions{display:flex;justify-content:flex-end;margin-top:28px}.actions.split{justify-content:space-between}.primary,.secondary{border-radius:11px;padding:12px 17px;font-weight:800;cursor:pointer}.primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.small{padding:9px 12px;font-size:13px}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 26px}.metric{border:1px solid var(--line);border-radius:14px;padding:16px}.metric span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.metric strong{font-size:18px}
.alert{padding:14px 16px;border-radius:12px;margin:0 0 12px;font-size:14px;line-height:1.5}.alert.warn{background:#fff7e8;color:#754200;border:1px solid #f1d6a3}.alert.bad{background:#fff0ef;color:#8f1b13;border:1px solid #f4c1bd}.alert.good{background:#edf9f4;color:#0c6546;border:1px solid #bce6d5}
.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.route-card{border:1px solid var(--line);border-radius:15px;padding:17px;position:relative}.route-card.recommended{border:2px solid var(--accent);background:#f9fbff}.route-card h4{margin:0 0 8px;font-size:17px}.route-card p{color:var(--muted);font-size:13px;line-height:1.45}.score{font-size:12px;font-weight:800}.pill{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:5px 8px;background:var(--accent2);color:var(--accent);margin-bottom:10px}
.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-top:28px}.timeline,.evidence-list{border:1px solid var(--line);border-radius:15px;overflow:hidden}.timeline-item,.evidence-item{padding:14px 16px;border-bottom:1px solid var(--line)}.timeline-item:last-child,.evidence-item:last-child{border-bottom:0}.timeline-item strong,.evidence-item strong{display:block;margin-bottom:4px}.timeline-item span,.evidence-item p{font-size:13px;color:var(--muted);margin:0;line-height:1.45}.evidence-item a{display:inline-block;margin-top:8px;color:var(--accent);text-decoration:none;font-size:12px;font-weight:800}
.report{border:1px solid var(--line);border-radius:15px;padding:24px}.report h3{margin-top:26px}.report .report-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report .meta{background:#f7f9fc;padding:12px;border-radius:10px}.report .meta span{font-size:11px;color:var(--muted);display:block}.report ul{line-height:1.55}.report table{width:100%;border-collapse:collapse;font-size:13px}.report th,.report td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}footer{text-align:center;color:var(--muted);font-size:12px;padding:0 20px 40px}
@media(max-width:850px){.hero{grid-template-columns:1fr}.hero h1{font-size:38px}.layout{grid-template-columns:1fr}.steps{position:static;display:grid;grid-template-columns:repeat(4,1fr)}.step{justify-content:center;font-size:0}.form-grid,.summary-grid,.route-grid,.two-col{grid-template-columns:1fr}.form-grid label.wide{grid-column:auto}.screen{padding:22px}.report .report-meta{grid-template-columns:1fr}}
@media print{.topbar,.hero,.steps,.no-print,footer,.section-head button{display:none!important}.shell{width:100%}.layout{display:block}.panel{border:0;box-shadow:none}.screen{display:none!important}.screen#screen-4{display:block!important;padding:0}.report{border:0;padding:0}}

/* Enhanced RAG / Traffic Light System */
.rag-legend{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 20px}
.rag-key{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);font-weight:700}
.rag-dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.rag-dot.green{background:#16885f}.rag-dot.amber{background:#d98200}.rag-dot.red{background:#c4372c}
.rag-dashboard{display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:12px;margin:18px 0 26px}
.rag-overall,.rag-tile{border:1px solid var(--line);border-radius:15px;padding:16px;background:#fff}
.rag-overall{display:flex;align-items:center;gap:14px}
.rag-light{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:inset 0 -5px 12px rgba(0,0,0,.12)}
.rag-light.green{background:#16885f}.rag-light.amber{background:#d98200}.rag-light.red{background:#c4372c}
.rag-overall strong{font-size:18px;display:block}.rag-overall span{font-size:12px;color:var(--muted)}
.rag-tile .rag-mini{width:13px;height:13px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:-1px}
.rag-mini.green{background:#16885f}.rag-mini.amber{background:#d98200}.rag-mini.red{background:#c4372c}
.rag-tile span{font-size:11px;color:var(--muted);display:block;margin-bottom:7px}.rag-tile strong{font-size:14px}
.rag-reason{margin-top:8px;font-size:12px;line-height:1.4;color:var(--muted)}
.status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}
.status-badge.green{background:#e7f6ef;color:#0b6c4a}.status-badge.amber{background:#fff3df;color:#915800}.status-badge.red{background:#fdeceb;color:#9f271f}
.report-status-row{display:grid;grid-template-columns:1.1fr .8fr 2fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}
.report-status-row:last-child{border-bottom:0}
.report-status-row .reason{font-size:12px;color:var(--muted)}
@media(max-width:900px){.rag-dashboard{grid-template-columns:1fr 1fr}.rag-overall{grid-column:1/-1}}
@media(max-width:600px){.rag-dashboard{grid-template-columns:1fr}.rag-overall{grid-column:auto}.report-status-row{grid-template-columns:1fr}}
