:root { --purple:#831F80; --ink:#021A20; --teal:#0A6D86; --paper:#F8FAFC; --line:#dce5e8; --muted:#557078; --success:#176b47; --danger:#b33a31; --shadow:0 18px 50px rgba(2,26,32,.08); }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; font-size:16px; line-height:1.5; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:var(--purple); }
.topbar { min-height:72px; padding:0 clamp(20px,5vw,72px); display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font-size:19px; letter-spacing:-.04em; }.brand img { width:32px; height:32px; }.brand strong { color:var(--purple); }
.topbar nav { display:flex; align-items:center; gap:20px; }.topbar nav a { color:var(--muted); font-size:14px; text-decoration:none; }.text-button { appearance:none; border:0; background:none; padding:5px 0; color:var(--ink); cursor:pointer; font-weight:600; }
.shell { max-width:1240px; margin:0 auto; padding:58px 28px 90px; }.hero { display:grid; grid-template-columns:minmax(0,1fr) 280px; align-items:end; gap:44px; margin-bottom:42px; }.eyebrow { margin:0 0 9px; color:var(--teal); text-transform:uppercase; font:500 11px/1.2 'JetBrains Mono',monospace; letter-spacing:.09em; }.hero h1 { margin:0; max-width:760px; letter-spacing:-.055em; font-size:clamp(38px,5.3vw,68px); line-height:.98; }.lede { max-width:620px; margin:20px 0 0; color:var(--muted); font-size:18px; }.entitlement { padding:20px; border:1px solid #c5dce1; border-radius:14px; background:#eff9fb; }.entitlement strong,.entitlement small { display:block; }.entitlement small { margin-top:4px; color:var(--muted); font-size:13px; }
.notice { margin:0 0 22px; padding:14px 16px; border-radius:10px; background:#fff0ee; color:#86271f; border:1px solid #f5c7c2; }.notice.success { color:#145335; background:#ebf8f0; border-color:#bce0ca; }.notice.info { color:#09546a; background:#e9f7fa; border-color:#b8e1e9; }.hidden { display:none !important; }
.workspace-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(270px,.75fr); gap:20px; }.card,.report { background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }.card { padding:30px; }.card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:24px; }.card-heading h2,.report h2 { margin:0; font-size:25px; letter-spacing:-.035em; }.card-heading > p { max-width:160px; margin:1px 0 0; color:var(--muted); font-size:13px; text-align:right; }.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } label { display:flex; flex-direction:column; gap:7px; font-size:14px; font-weight:600; } input,textarea,select { width:100%; border:1px solid #b9cbd1; border-radius:8px; padding:11px 12px; color:var(--ink); background:#fff; outline:none; transition:border-color .15s,box-shadow .15s; } textarea { resize:vertical; font-weight:400; line-height:1.48; } input:focus,textarea:focus,select:focus { border-color:var(--purple); box-shadow:0 0 0 3px rgba(131,31,128,.11); }.full { margin-top:16px; }.upload-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin:14px 0 22px; color:var(--muted); font-size:13px; }.file-input { display:inline-flex; flex-direction:row; align-items:center; gap:8px; color:var(--ink); cursor:pointer; }.file-input input { width:auto; padding:0; border:0; }.button { min-height:43px; border:1px solid transparent; border-radius:8px; padding:10px 16px; cursor:pointer; text-decoration:none; font-weight:700; font-size:14px; text-align:center; transition:transform .15s,background .15s; }.button:hover { transform:translateY(-1px); }.button:disabled { cursor:not-allowed; opacity:.55; transform:none; }.primary { color:#fff; background:var(--purple); }.secondary { color:var(--ink); background:#fff; border-color:#b7c8ce; }
.search-history { min-height:420px; }.report-list { display:grid; gap:8px; }.report-row { width:100%; display:flex; justify-content:space-between; align-items:center; gap:8px; border:1px solid transparent; border-radius:10px; padding:12px; color:var(--ink); background:transparent; cursor:pointer; text-align:left; }.report-row:hover,.report-row.selected { border-color:#c2d8de; background:#f2fafb; }.report-row span { min-width:0; }.report-row strong,.report-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.report-row small { color:var(--muted); font-size:12px; }.empty { margin:20px 0; color:var(--muted); font-size:14px; }.state { display:inline-block; border-radius:999px; padding:4px 7px; color:#415f68; background:#eef3f4; font:500 10px/1.2 'JetBrains Mono',monospace; text-transform:uppercase; font-style:normal; white-space:nowrap; }.state.completed { background:#e6f6ed; color:var(--success); }.state.failed { background:#fff0ee; color:var(--danger); }
.scorecard,.scope,.report { margin-top:20px; }.subtle { color:var(--muted); }.criteria-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:18px; }.criteria-grid small { color:var(--muted); font-weight:400; font-size:12px; line-height:1.35; }.scorecard-actions,.scope-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:24px; }.scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.check { flex-direction:row; align-items:flex-start; gap:11px; padding:15px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }.check input { width:17px; height:17px; margin-top:2px; accent-color:var(--purple); }.check span { display:grid; gap:3px; }.check small { color:var(--muted); font-size:12px; font-weight:400; }.scope-actions p { margin:0; max-width:600px; font-size:14px; }
.report { padding:32px; }.report-header { display:flex; justify-content:space-between; gap:20px; }.report-actions { display:flex; align-items:flex-start; gap:8px; }.progress { height:5px; overflow:hidden; margin:25px 0; border-radius:99px; background:#e4edf0; }.progress span { display:block; width:48%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--purple),#60B1E3); animation:load 1.4s ease-in-out infinite alternate; }.progress.complete span { width:100%; background:var(--success); animation:none; }.progress.failed span { width:100%; background:var(--danger); animation:none; }@keyframes load{from{transform:translateX(-35%)}to{transform:translateX(110%)}}.limitations { margin:16px 0; padding:12px 14px; border-left:3px solid var(--teal); background:#edf8fa; color:#174f5d; font-size:14px; }.limitations p { margin:3px 0; }.candidate-summary { margin:18px 0 10px; font-weight:700; }.candidate-list { display:grid; gap:8px; }.candidate { display:grid; grid-template-columns:34px minmax(0,1fr) 115px; align-items:center; gap:13px; padding:16px 0; border-top:1px solid var(--line); }.rank { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; color:var(--purple); background:#f8eaf7; font:500 12px 'JetBrains Mono',monospace; }.candidate h3 { margin:0; font-size:16px; }.candidate p { margin:2px 0; color:var(--muted); font-size:14px; }.candidate .evidence { font-size:12px; }.scores { text-align:right; }.scores strong,.scores small,.scores span { display:block; }.scores strong { font-size:22px; line-height:1; }.scores small,.scores span { color:var(--muted); font-size:11px; }.scores span { margin-top:4px; }
.privacy-tools { display:flex; justify-content:center; gap:18px; margin:30px 0 0; color:var(--muted); font-size:13px; }.privacy-tools button { border:0; padding:0; color:var(--muted); background:transparent; cursor:pointer; text-decoration:underline; font-size:inherit; }
dialog { width:min(480px,calc(100% - 32px)); border:0; border-radius:16px; padding:32px; color:var(--ink); box-shadow:0 24px 90px rgba(2,26,32,.28); }dialog::backdrop { background:rgba(2,26,32,.52); }dialog h2 { margin:0; letter-spacing:-.04em; font-size:30px; }.close { position:absolute; top:12px; right:15px; border:0; background:transparent; font-size:28px; cursor:pointer; }.plan-details { display:flex; justify-content:space-between; align-items:center; margin:22px 0; padding:15px; border-radius:10px; background:#f1fafb; }.plan-details strong,.plan-details span { display:block; }.plan-details span { color:var(--muted); font-size:13px; }.tiny { color:var(--muted); font-size:12px; }
@media (max-width:850px) { .shell{padding:38px 18px 68px}.hero,.workspace-grid{grid-template-columns:1fr}.hero{gap:20px}.entitlement{max-width:400px}.criteria-grid{grid-template-columns:1fr}.scope-grid{grid-template-columns:1fr}.card,.report{padding:22px}.card-heading>p{display:none} }
@media (max-width:580px) { .topbar{padding:0 18px}.topbar nav a{display:none}.hero h1{font-size:40px}.form-grid{grid-template-columns:1fr}.scorecard-actions,.scope-actions,.report-header{align-items:stretch; flex-direction:column}.report-actions{align-items:stretch}.candidate{grid-template-columns:30px minmax(0,1fr)}.scores{grid-column:2;text-align:left}.report-row{padding-left:0;padding-right:0}.brand{font-size:17px} }
