:root{
  --bg:#f6f8fc; --card:#ffffff; --line:#e3e9f2; --line2:#eef2f8;
  --text:#0f1a2b; --muted:#5a6b86; --accent:#0ea671; --accent2:#4f46e5;
  --thead:#f3f6fb; --input:#fbfcfe; --soft:#f0f7f4; --drop:#f9fbfe;
  --shadow:0 10px 30px rgba(20,40,80,.06); --radius:14px;
}
html[data-theme="dark"]{
  --bg:#0f1420; --card:#1a2334; --line:#27324a; --line2:#222c41;
  --text:#e8edf6; --muted:#9fb0c9; --accent:#3ddc97; --accent2:#5b8cff;
  --thead:#101727; --input:#0d1322; --soft:#11261d; --drop:#121a2a;
  --shadow:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px 60px}
header{display:flex;align-items:center;justify-content:space-between;padding:22px 0}
.logo{font-weight:800;font-size:20px}
.logo span{color:var(--accent)}
.logo small{display:block;font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.4px}
.toggle{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;font-size:18px}
.toggle:hover{box-shadow:var(--shadow)}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}
.step h2{font-size:16px;margin-bottom:4px}
.step .hint{font-size:13px;color:var(--muted);margin-bottom:14px}
.badge{display:inline-block;font-size:12px;font-weight:700;color:var(--accent2);background:rgba(79,70,229,.12);border-radius:8px;padding:3px 9px;margin-right:8px}
.drop{border:2px dashed var(--line);border-radius:12px;background:var(--drop);padding:26px;text-align:center;cursor:pointer;color:var(--muted);transition:.15s}
.drop:hover,.drop.over{border-color:var(--accent);color:var(--text)}
.drop b{color:var(--text)}
.loaded{font-size:13px;color:var(--accent);font-weight:700;margin-top:10px}
.map{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}
.map label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:600}
select{width:100%;background:var(--input);border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:10px;font-size:14px;font-family:inherit}
.btn{background:var(--accent);color:#fff;font-weight:700;padding:13px 22px;border:none;border-radius:11px;cursor:pointer;font-size:15px}
.btn:hover{box-shadow:0 8px 22px rgba(14,166,113,.28)}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn.alt{background:var(--card);color:var(--text);border:1px solid var(--line)}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:6px 0 20px}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.kpi .v{font-size:22px;font-weight:800}
.kpi .l{font-size:12px;color:var(--muted)}
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;background:var(--card)}
th,td{padding:11px 13px;text-align:right;border-bottom:1px solid var(--line2);font-size:13px;white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{background:var(--thead);font-weight:700;position:sticky;top:0}
tr:last-child td{border-bottom:none}
.neg{color:#d65a5a}
.pos{color:var(--accent);font-weight:700}
.note{font-size:12px;color:var(--muted);margin-top:8px}
.err{color:#d65a5a;font-size:13px;margin-top:8px;font-weight:600}
.foot{text-align:center;color:var(--muted);font-size:12px;margin-top:30px}
.onboard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;box-shadow:var(--shadow);overflow:hidden}
.onboard>summary{cursor:pointer;font-weight:700;padding:16px 20px;list-style:none}
.onboard>summary::-webkit-details-marker{display:none}
.onboard>summary::before{content:'\25B6';display:inline-block;margin-right:10px;color:var(--accent);font-size:11px;transition:transform .15s}
.onboard[open]>summary::before{transform:rotate(90deg)}
.ob-body{padding:0 20px 18px}
.ob-card{border:1px solid var(--line2);border-radius:10px;padding:12px 14px;margin-top:12px}
.ob-card h4{font-size:14px;margin-bottom:6px}
.ob-card ol{margin:0 0 6px 18px;font-size:13px;color:var(--muted)}
.ob-card li{margin:2px 0}
.ob-card b{color:var(--text)}
.ob-map{font-size:12px;color:var(--accent2);margin-top:4px}
.ob-warn{font-size:12px;color:var(--muted);margin-top:12px}
.adsflag{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);margin-top:4px;grid-column:1/-1;cursor:pointer}
.adsflag input{flex:none;width:16px;height:16px;accent-color:var(--accent)}
.adsflag .auto{color:var(--muted);font-size:12px}
.banner{background:var(--soft);border:1px solid var(--accent);color:var(--text);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px}
/* Post-export feedback ask. Shown once, only after a journal actually downloaded. */
.askback{background:var(--soft);border:1px solid var(--accent);border-radius:12px;padding:16px 18px;margin:18px 0 0;font-size:13px;color:var(--text)}
.askback strong{display:block;font-size:15px;margin-bottom:6px}
.askback p{margin:0 0 14px;color:var(--muted);line-height:1.5}
.askback-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.askback-row .btn{padding:10px 18px;font-size:14px}
.askback-skip{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:6px 4px;text-decoration:underline}
.askback-skip:hover{color:var(--text)}
.progress-warn{background:#fff7ed;border:1px solid #d6a15a;color:#4a2a00;border-radius:12px;padding:11px 14px;margin:0 0 16px;font-size:13px;font-weight:600}
html[data-theme="dark"] .progress-warn{background:#2a1d0e;color:#ffd9a3}
.progress-warn[hidden]{display:none}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(15,26,43,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.modal-backdrop[hidden]{display:none}
.modal{width:min(460px,100%);background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:24px;text-align:left}
.modal h3{font-size:20px;line-height:1.25;margin-bottom:8px;color:var(--text)}
.modal p{font-size:14px;color:var(--muted);margin-bottom:18px}
.modal .btn{width:100%}
/* --- UX polish + batch drop --- */
.onboard>summary{font-size:16px}
.step h2{font-size:20px}
.step .hint{font-size:13.5px}
.map>div{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.map label{color:var(--text);font-weight:600;font-size:12px}
select{background:var(--card);border:1.5px solid var(--line)}
select:focus{outline:none;border-color:var(--accent)}
.batch{border:2px dashed var(--accent);border-radius:14px;background:var(--soft);padding:22px;text-align:center;cursor:pointer;margin-bottom:8px;color:var(--text);font-weight:700;font-size:15px;transition:.15s}
.batch:hover,.batch.over{box-shadow:var(--shadow)}
.batch small{display:block;color:var(--muted);font-weight:400;font-size:12px;margin-top:6px}
.batch-result{font-size:13px;color:var(--text);margin:0 0 16px 2px;line-height:1.7}
.demo-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px 2px}
.demo-hint{font-size:12px;color:var(--muted)}
.btn.alt.demo{border-color:var(--accent);color:var(--accent);font-weight:700;padding:10px 18px;font-size:14px}
.btn.alt.demo:hover{background:var(--soft)}
.map input[type="text"]{width:100%;background:var(--input);border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:10px;font-size:14px;font-family:inherit;box-sizing:border-box}
.map input[type="text"]:focus{outline:none;border-color:var(--accent)}

/* trust-layer status strip: go/no-go summary pinned above results */
.strip{position:sticky;top:8px;z-index:5;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:12px;box-shadow:var(--shadow)}
.strip .pill{display:inline-block;font-weight:800;font-size:13px;border-radius:99px;padding:4px 12px;margin-right:10px}
.strip .pill.blocked{background:rgba(214,90,90,.15);color:#d65a5a;border:1px solid #d65a5a}
.strip .pill.review{background:rgba(214,161,90,.15);color:#b97f34;border:1px solid #d6a15a}
.strip .pill.clean{background:rgba(14,166,113,.12);color:var(--accent);border:1px solid var(--accent)}
.strip .facts{font-size:13px;color:var(--muted);margin-top:6px}
.strip details{margin-top:8px}
.strip summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--text)}
.strip ul{margin:8px 0 0 18px;padding:0}
.strip li{font-size:13px;color:var(--muted);margin-bottom:6px}
.strip .sev{font-weight:700}
.strip .sevHigh{color:#d65a5a}
.strip .sevMedium{color:#b97f34}
.strip .sevLow{color:var(--muted)}
