:root{
  --bg:#f7f3ff;
  --card:#ffffff;
  --text:#1f1733;
  --muted:#6b5f7d;
  --line:#ded3f4;
  --purple:#6d28d9;
  --purple-dark:#4c1d95;
  --purple-soft:#ede9fe;
  --green:#15803d;
  --yellow:#b7791f;
  --red:#b42318;
  --dark:#3b2f4a;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.45}
header{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:2rem clamp(1rem,3vw,3rem);background:linear-gradient(135deg,var(--purple-dark),#7c3aed);color:#fff}
h1{font-size:clamp(2rem,4vw,3.2rem);margin:.1rem 0;line-height:1.05}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;opacity:.85;margin:0}.version{display:inline-block;font-weight:950;font-size:1.35rem;margin:.35rem 0 0;padding:.22rem .65rem;border-radius:999px;background:rgba(255,255,255,.16);color:#fff}.lead{margin:.25rem 0 0;max-width:78ch;opacity:.95}
.badge{min-width:230px;text-align:center;border-radius:999px;padding:.9rem 1.1rem;font-weight:850;background:#fff;color:var(--dark);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.badge.green{background:var(--green);color:#fff}.badge.yellow{background:var(--yellow);color:#fff}.badge.red{background:var(--red);color:#fff}.badge.locked{background:var(--dark);color:#fff}
.tabs{display:flex;gap:.45rem;overflow:auto;padding:.75rem clamp(1rem,3vw,3rem);background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.tabs.hidden{display:none!important}
.tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.58rem .95rem;font-weight:820;cursor:pointer;color:var(--text)}.tabs button.active{background:var(--purple);border-color:var(--purple);color:#fff}.tabs button:hover{border-color:var(--purple)}
main{padding:1.25rem clamp(1rem,3vw,3rem) 2rem;max-width:1180px;margin:auto}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 8px 26px rgba(76,29,149,.08)}
.step{display:none}.step.active{display:block}.hidden{display:none!important}.hint{color:var(--muted)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:block;font-weight:720;margin:.75rem 0 .35rem}input,textarea,select{width:100%;padding:.72rem .8rem;border:1px solid var(--line);border-radius:12px;font:inherit;background:#fff}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:3px solid var(--purple-soft);border-color:var(--purple)}
button,.fileBtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:.72rem 1rem;font:inherit;font-weight:830;cursor:pointer;margin:.35rem .35rem .35rem 0;color:var(--text)}button.primary{background:var(--purple);border-color:var(--purple);color:#fff}button.danger{background:var(--red);border-color:var(--red);color:#fff}.fileBtn input{display:none}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.25rem .9rem}.check{display:flex;gap:.55rem;align-items:flex-start;font-weight:520;margin:.38rem 0}.check input{width:auto;margin-top:.25rem}
.block{border:1px solid var(--line);border-radius:14px;padding:.9rem;margin:.75rem 0;background:#fcfaff}.findingHead{display:grid;grid-template-columns:230px 180px 1fr;gap:.75rem;align-items:center}.result{border:1px solid var(--line);border-radius:14px;padding:1rem;margin-top:1rem;background:#fcfaff}.result.green{background:#effaf4;border-color:#a7e1c2}.result.yellow{background:#fff8e8;border-color:#f6d18b}.result.red{background:#fff4f2;border-color:#f2b8b5}.result.locked{background:#f3f0f7;border-color:#cfc4db}
.answer details{border:1px solid var(--line);border-radius:14px;padding:.8rem;background:#fff}.answer summary{font-weight:850;cursor:pointer}.answer summary::marker{color:var(--purple)}
.stepActions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.dangerBox{border:1px solid #f2b8b5;background:#fff4f2;border-radius:14px;padding:1rem;margin-top:1rem}
pre{white-space:pre-wrap;word-break:break-word;background:#f3f0f7;border:1px solid var(--line);border-radius:12px;padding:1rem}
@media(max-width:850px){header{flex-direction:column;align-items:flex-start}.grid,.findingHead{grid-template-columns:1fr}.badge{min-width:auto}.checks{grid-template-columns:1fr}}
@media print{.tabs,.stepActions,#loginCard,.fileBtn,button{display:none!important}.step{display:block}.card{box-shadow:none;border:0}header{background:#fff;color:#000}.badge{border:1px solid #000;color:#000;background:#fff}}

.version{display:inline-block;font-weight:950;font-size:1.35rem;margin:.35rem 0 0;padding:.22rem .65rem;border-radius:999px;background:rgba(255,255,255,.16);color:#fff}

#researchLog.hidden{display:none!important}

.aiReview{margin-top:.8rem;padding:1rem;border:1px solid #c4b5fd;border-radius:12px;background:#faf5ff}
.reviewActions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}
.decision{margin-top:.75rem;padding:.8rem;border-radius:10px;font-weight:650}
.decision.accepted{background:#ecfdf3;border:1px solid #abefc6}
.decision.overridden{background:#fff7ed;border:1px solid #fed7aa}
.decisionTag{float:right;font-size:.8rem;color:#6d28d9}
.overrideBox{margin-top:.9rem;padding:1rem;border:1px dashed #7c3aed;border-radius:12px;background:#faf5ff}
.overrideReport{border-left:4px solid #7c3aed;padding:.7rem 1rem;margin:.75rem 0;background:#faf5ff;border-radius:8px}
.warningText{color:#9a3412}
.errorText{color:#b42318}

.fileStatus{margin:.45rem 0}.fileStatus p{margin:.35rem 0;padding:.55rem .75rem;border-radius:9px;background:#f5f3ff;border:1px solid #ddd6fe}
