:root{
  --navy:#1b2a41; --navy-2:#33455e;
  --olive:#79bd43; --olive-d:#5aa23a; --olive-hi:#9bd35e;
  --cream:#f5f1e8; --cream-2:#efe9dc;
  --ink:#222a35; --muted:#5f6b78; --faint:#8b95a1;
  --line:#e2ddd0; --line-2:#cfc8b8;
  --white:#ffffff;
  --warn-bg:#fdf1de; --warn-line:#e8941a; --warn-ink:#8a560d;
  --ok:#1f9b72;
  --serif:Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --radius:8px;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.55}
h1,h2,h3,.serif{font-family:var(--serif)}
button{font-family:var(--sans);cursor:pointer}
a{color:var(--navy)}

/* ---------------- login ---------------- */
.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 0%, #ffffff 0%, var(--cream) 60%);padding:24px}
.login-card{background:var(--white);border:1px solid var(--line);border-radius:16px;
  padding:40px 36px;max-width:440px;width:100%;text-align:center;box-shadow:0 8px 40px rgba(27,42,65,.08)}
.login-logo{width:280px;max-width:100%;height:auto;margin:0 auto 6px}
.login-tag{color:var(--navy-2);font-family:var(--serif);font-style:italic;font-size:15px;margin:0 0 28px}
.login-form{display:flex;flex-direction:column;gap:10px;text-align:left}
.login-label{font-size:13px;color:var(--muted);font-weight:500}
.login-form input{height:44px;border:1px solid var(--line-2);border-radius:var(--radius);
  padding:0 12px;font-size:15px;background:var(--cream)}
.login-form input:focus{outline:none;border-color:var(--navy)}
.btn-primary{height:46px;border:none;border-radius:var(--radius);background:var(--navy);color:#fff;
  font-size:15px;font-weight:600;margin-top:4px}
.btn-primary:hover{background:#24364f}
.login-error{color:#b3261e;font-size:13px;margin:4px 0 0}
.login-foot{color:var(--faint);font-size:12px;margin:26px 0 0}

/* ---------------- topbar ---------------- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:var(--white);border-bottom:1px solid var(--line);padding:10px 20px;position:sticky;top:0;z-index:30}
.topbar-logo{height:34px;width:auto}
.topbar-right{display:flex;align-items:center;gap:14px}
.progress{width:160px;height:6px;background:var(--cream-2);border-radius:6px;overflow:hidden}
.progress span{display:block;height:100%;width:0;background:var(--olive);transition:width .3s}
.progress-text{font-size:12px;color:var(--muted);min-width:74px}
.link-muted{color:var(--muted);font-size:13px;text-decoration:none}
.link-muted:hover{color:var(--navy)}

/* ---------------- two-panel ---------------- */
.two-panel{display:grid;grid-template-columns:1fr 380px;gap:0;min-height:calc(100vh - 56px)}
.panel{padding:28px 30px}
.panel-left{background:var(--cream)}
.panel-right{background:var(--white);border-left:1px solid var(--line)}

/* ---------------- left: questions ---------------- */
#question-area{max-width:640px;margin:0 auto}
.q-section{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--olive-d);font-weight:600;margin:0 0 10px}
.q-prompt{font-family:var(--serif);font-size:24px;color:var(--navy);margin:0 0 10px;line-height:1.3}
.q-note{font-size:14px;color:var(--muted);margin:0 0 16px}
.q-teach{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--olive);
  border-radius:0 var(--radius) var(--radius) 0;padding:12px 14px;font-size:13.5px;color:var(--navy-2);margin:0 0 18px}
.q-teach .q-teach-lab{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--olive-d);font-weight:600;margin-bottom:4px}
.options{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.opt{display:flex;align-items:flex-start;gap:10px;background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);padding:13px 15px;font-size:15px;text-align:left;color:var(--ink);transition:border-color .12s,background .12s;width:100%}
.opt:hover{border-color:var(--navy);background:#fcfbf7}
.opt.selected{border-color:var(--navy);background:#f1f5fb}
.opt .tick{width:18px;height:18px;border:1px solid var(--line-2);border-radius:50%;flex:0 0 auto;margin-top:1px;margin-right:2px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}
.opt.selected .tick{background:var(--navy);border-color:var(--navy)}
.opt.multi .tick{border-radius:4px}
textarea.q-text{width:100%;min-height:120px;border:1px solid var(--line-2);border-radius:var(--radius);
  padding:12px;font-size:15px;font-family:var(--sans);background:var(--white);line-height:1.55;resize:vertical}
textarea.q-text:focus,input.q-input:focus,select.q-select:focus{outline:none;border-color:var(--navy)}
input.q-input,select.q-select{width:100%;height:44px;border:1px solid var(--line-2);border-radius:var(--radius);
  padding:0 12px;font-size:15px;font-family:var(--sans);background:var(--white)}
.q-actions{display:flex;gap:10px;margin-top:18px;align-items:center;flex-wrap:wrap}
.btn-next{height:44px;padding:0 22px;border:none;border-radius:var(--radius);background:var(--navy);color:#fff;font-size:15px;font-weight:600}
.btn-next:hover{background:#24364f}
.btn-next:disabled{background:var(--line-2);cursor:default}
.btn-ghost{height:40px;padding:0 16px;border:1px solid var(--line-2);border-radius:var(--radius);background:transparent;color:var(--muted);font-size:14px}
.btn-ghost:hover{border-color:var(--navy);color:var(--navy)}
.gate-badge{display:inline-block;background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line);
  border-radius:var(--radius);font-size:12px;padding:3px 9px;margin-bottom:14px}
.loading{color:var(--muted);padding:40px 0}

/* ---------------- right: AI follower ---------------- */
.panel-h{font-family:var(--serif);font-size:19px;color:var(--navy);margin:0 0 6px}
.panel-sub{font-size:13px;color:var(--muted);margin:0 0 20px}
.right-block{margin-bottom:24px}
.right-h{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:600;margin:0 0 10px}
.ai-stream{display:flex;flex-direction:column;gap:10px}
.ai-empty,.flags-empty{color:var(--faint);font-size:13px;font-style:italic}
.ai-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px;font-size:13.5px;color:var(--ink)}
.ai-card .ai-q{font-size:11px;color:var(--olive-d);font-weight:600;margin:0 0 4px;text-transform:uppercase;letter-spacing:.04em}
.ai-watching{margin:7px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:5px}
.ai-watching li{font-size:11.5px;background:var(--white);border:1px solid var(--line);border-radius:20px;padding:2px 9px;color:var(--navy-2)}
.flags-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.flags-list li{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--olive);
  border-radius:0 var(--radius) var(--radius) 0;padding:9px 12px;font-size:13px;color:var(--navy)}
.flags-list li .flag-why{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.kb-coverage{font-size:12px;color:var(--muted);background:var(--cream);border-radius:var(--radius);padding:9px 11px;margin:0}

/* ---------------- mobile ---------------- */
.mobile-toggle{display:none}
@media (max-width:880px){
  .two-panel{grid-template-columns:1fr}
  .panel-right{border-left:none;border-top:1px solid var(--line)}
  .mobile-toggle{display:flex;gap:0;background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:56px;z-index:20}
  .mt-btn{flex:1;height:44px;border:none;background:transparent;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}
  .mt-btn.active{color:var(--navy);border-bottom-color:var(--olive)}
  .panel-left,.panel-right{display:none}
  .panel-left.show,.panel-right.show{display:block}
  .progress{width:90px}
  .topbar-logo{height:28px}
}

/* ---------------- stages (timeline / findings) ---------------- */
.stage{max-width:780px;margin:0 auto;padding:30px 24px}
.stage.hidden,.hidden{display:none}

/* ---------------- documents panel ---------------- */
.docs-panel{max-width:640px;margin:0 auto 20px}
.docs-panel details{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:4px 14px}
.docs-panel summary{cursor:pointer;padding:10px 0;font-size:14px;color:var(--navy);list-style:none}
.docs-panel summary::-webkit-details-marker{display:none}
.docs-hint{color:var(--faint);font-weight:400;font-size:12.5px}
.docs-body{padding:6px 0 12px}
.docs-list{margin-bottom:12px}
.docs-empty{color:var(--faint);font-size:13px;font-style:italic;margin:4px 0}
.doc-item{display:flex;justify-content:space-between;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin-bottom:6px;font-size:13.5px}
.doc-meta{color:var(--muted);font-size:12px}
.doc-del{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline}
.docs-form{display:flex;flex-direction:column;gap:8px}
.docs-row{display:flex;gap:8px}
.docs-row .q-select{flex:1}
.docs-form .q-text{min-height:80px}

/* ---------------- review & edit ---------------- */
.review-row{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:start;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:8px}
.review-q{font-size:13px;color:var(--muted);grid-column:1}
.review-a{font-size:15px;color:var(--navy);grid-column:1;font-weight:500}
.review-edit{grid-column:2;grid-row:1 / span 2;align-self:center;height:34px;font-size:13px}

/* ---------------- iOS / mobile fixes ---------------- */
/* iOS Safari zooms in when focusing any input under 16px. Force 16px on touch. */
@media (max-width:880px){
  input, textarea, select,
  .q-input, .q-text, .q-select, .login-form input, .tk-date, .docs-form input, .docs-form textarea, .docs-form select {
    font-size:16px !important;
  }
  /* comfortable tap targets and spacing on small screens */
  .opt{padding:15px 16px;font-size:16px}
  .btn-next{height:48px;width:100%}
  .q-prompt{font-size:21px}
  .panel{padding:20px 16px}
  .stage{padding:22px 16px}
  .review-row{grid-template-columns:1fr}
  .review-edit{grid-column:1;grid-row:auto;justify-self:start;margin-top:6px}
  .topbar{padding:8px 14px}
  .login-card{padding:30px 22px}
  /* prevent any accidental horizontal scroll */
  html, body{max-width:100%;overflow-x:hidden}
}
/* smooth momentum scrolling and no tap-highlight flash on iOS */
*{-webkit-tap-highlight-color:rgba(0,0,0,0.06)}
body{-webkit-text-size-adjust:100%;text-size-adjust:100%}
input, textarea{-webkit-appearance:none;appearance:none;border-radius:8px}

/* ============ documents: upload dropzone + coloured cards ============ */
.docs-dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 16px;
  border:2px dashed var(--olive,#79bd43);border-radius:12px;background:#fbfdf8;cursor:pointer;
  text-align:center;transition:background .15s,border-color .15s;margin-bottom:8px}
.docs-dropzone:hover,.docs-dropzone.dz-over{background:#f1f8e9;border-color:#5a9e2e}
.dz-icon{font-size:22px;color:var(--olive,#79bd43)}
.dz-main{font-weight:600;color:var(--navy,#1b2a41);font-size:15px}
.dz-sub{font-size:12px;color:var(--muted,#6b7280)}
.doc-upload-status{min-height:18px;font-size:13px;margin-bottom:8px}
.uploading{color:var(--muted)}
.upload-ok{color:#3d7a1f}
.upload-err{color:#b3261e}
.docs-paste{margin-top:6px}
.docs-paste>summary{cursor:pointer;font-size:13px;color:var(--muted);padding:6px 0}

.doc-item{display:flex;align-items:center;gap:10px;background:var(--white,#fff);
  border:1px solid var(--line,#e7e3d8);border-left-width:4px;border-radius:8px;
  padding:9px 12px;margin-bottom:7px}
.doc-item.doc-in{border-left-color:#5b8def}   /* received = blue */
.doc-item.doc-out{border-left-color:#79bd43}  /* sent = green */
.doc-ic{font-size:18px;flex:0 0 auto}
.doc-main{flex:1;min-width:0;font-size:14px}
.doc-meta{color:var(--muted);font-size:12px}
.doc-pill{display:inline-block;font-size:11px;border-radius:20px;padding:1px 8px;margin-left:4px}
.doc-pill.ok{background:#e8f5e0;color:#3d7a1f}
.doc-pill.warn{background:#fdf3e3;color:#9a6a14}
.doc-del{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline;flex:0 0 auto}
.doc-titlerow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.doc-edit{background:none;border:none;color:var(--olive-d,#5a7d2a);font-size:12px;cursor:pointer;text-decoration:underline;padding:0}
.doc-summary{color:var(--muted);font-size:12.5px;line-height:1.45;margin-top:3px}
.doc-rename{display:flex;flex-direction:column;gap:8px}
.doc-rename-input{height:38px}
.doc-rename-actions{display:flex;gap:8px}
.doc-rename-actions .btn-ghost{padding:4px 14px;font-size:13px;width:auto}

/* ============ get answer from document ============ */
.q-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn-doc{height:44px;padding:0 16px;border:1px solid var(--olive,#79bd43);border-radius:var(--radius,10px);
  background:#fbfdf8;color:#3d7a1f;font-size:14px;font-weight:600;cursor:pointer}
.btn-doc:hover{background:#eef7e4}
.doc-answer{margin-top:12px}
.doc-answer-load{color:var(--muted);font-size:13px}
.doc-answer-none{color:var(--muted);font-size:13px;font-style:italic}
.doc-answer-box{background:#f1f8e9;border:1px solid #cfe8b8;border-radius:10px;padding:13px 15px}
.da-title{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#3d7a1f;font-weight:700}
.da-suggestion{margin:0 0 6px;font-size:15px;color:var(--ink,#222)}
.da-snippet{margin:0 0 10px;font-size:13px;color:var(--muted);font-style:italic;border-left:2px solid #cfe8b8;padding-left:10px}
.da-actions{display:flex;gap:8px;flex-wrap:wrap}
.da-conf,.doc-conf{font-size:11px;color:#6b8f4e;font-weight:400}
.da-caution{margin:8px 0 0;font-size:11.5px;color:var(--muted)}

/* ============ AI notes: newest at top, older greyed ============ */
.ai-card.ai-new{border-left:3px solid var(--olive,#79bd43)}
.ai-card.ai-old{opacity:.55}
.ai-card.ai-old:hover{opacity:.9}

/* ============ Legal issues noted: collapsible with count ============ */
.issues-block{border:1px solid var(--line,#e7e3d8);border-radius:10px;background:var(--white,#fff);padding:4px 12px}
.issues-summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;padding:10px 0;margin:0}
.issues-summary::-webkit-details-marker{display:none}
.issues-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  border-radius:11px;background:var(--cream-2,#eee);color:var(--muted);font-size:12px;font-weight:700;padding:0 6px}
.issues-count.has-some{background:#fde7e3;color:#b3261e}

/* ============ mobile sizing for the new bits ============ */
@media (max-width:880px){
  .btn-doc{width:100%;height:46px}
  .q-actions{flex-direction:column;align-items:stretch}
  .docs-dropzone{padding:22px 16px}
  .dz-main{font-size:16px}
  .da-actions{flex-direction:column}
  .da-actions .btn-next,.da-actions .btn-ghost{width:100%}
}

/* ============ document component checkboxes (the 'what's inside' chips) ============ */
.docs-sub-label{font-size:13px;font-weight:600;color:var(--navy,#1b2a41);margin:14px 0 6px}
.doc-components{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.doc-comp{display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  border:1px solid var(--line-2,#d8d2c4);border-radius:20px;padding:7px 13px;background:var(--white,#fff);
  font-size:13.5px;color:var(--ink,#222);transition:background .12s,border-color .12s;user-select:none}
.doc-comp:hover{background:#f1f8e9;border-color:var(--olive,#79bd43)}
.doc-comp input[type="checkbox"]{width:17px;height:17px;margin:0;flex:0 0 auto;accent-color:var(--olive,#79bd43);cursor:pointer}
/* when checked, highlight the whole chip */
.doc-comp:has(input:checked){background:#e8f5e0;border-color:var(--olive,#79bd43);font-weight:600;color:#2f6a1a}
@media (max-width:880px){
  .doc-comp{padding:9px 14px;font-size:14.5px}
  .doc-comp input[type="checkbox"]{width:19px;height:19px}
}

/* ============ scenario planner (results page) ============ */
.scenario-box{margin-top:34px;border:1px solid var(--line,#e7e3d8);border-radius:12px;background:var(--cream-2,#faf8f2);padding:18px 20px}
.scenario-box h2{font-family:var(--serif);color:var(--navy);font-size:20px;margin:0 0 6px}
.scenario-sub{color:var(--muted);font-size:13.5px;line-height:1.5;margin:0 0 12px}
.scenario-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.scenario-chip{background:#fff;border:1px solid var(--line-2,#ddd);border-radius:20px;padding:6px 12px;font-size:12.5px;color:var(--navy);cursor:pointer}
.scenario-chip:hover{border-color:var(--olive,#79bd43)}
#scenario-input{width:100%;min-height:80px;border:1px solid var(--line-2,#ddd);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;line-height:1.5;resize:vertical;box-sizing:border-box}
#scenario-input:focus{outline:none;border-color:var(--navy)}
.scenario-actions{display:flex;gap:12px;align-items:center;margin-top:10px}
#scenario-run[disabled]{opacity:.6;cursor:default}
.scenario-status{color:var(--muted);font-size:13px;margin-top:10px}
.scenario-result{margin-top:16px}
.scenario-read{font-size:15px;color:var(--ink);line-height:1.55;margin:0 0 14px}
.sc-card{background:#fff;border:1px solid var(--line,#e7e3d8);border-left:3px solid var(--line-2,#ddd);border-radius:0 8px 8px 0;padding:13px 16px;margin-bottom:10px}
.sc-card.rel-high{border-left-color:var(--warn-line,#e0a32e)}
.sc-card.rel-medium{border-left-color:var(--olive,#79bd43)}
.sc-card.rel-low{border-left-color:var(--line-2,#ddd)}
.sc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 5px}
.sc-title{font-size:15.5px;font-weight:600;color:var(--ink)}
.sc-pill{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;border-radius:20px;padding:1px 8px;font-weight:700}
.sc-pill.rel-high{background:#fdf0db;color:#9a6a14}
.sc-pill.rel-medium{background:#e8f5e0;color:#3d7a1f}
.sc-pill.rel-low{background:#eee;color:#666}
.sc-area{font-size:11px;color:var(--faint,#999)}
.sc-detail{font-size:14px;color:var(--ink);line-height:1.5;margin:0}
.sc-evidence{margin:7px 0 0;font-size:12.5px;color:var(--muted);font-style:italic;border-left:2px solid var(--line,#e7e3d8);padding-left:9px}
.scenario-listblock{margin-top:14px}
.scenario-listblock h4{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--olive-d,#5a7d2a);font-weight:700;margin:0 0 6px}
.scenario-listblock ul{margin:0;padding-left:18px}
.scenario-listblock li{font-size:13.5px;color:var(--ink);line-height:1.5;margin:0 0 4px}

/* ============ documents panel: visible collapse affordance ============ */
.docs-details > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}
.docs-details > summary::-webkit-details-marker{display:none}
.docs-caret{display:inline-block;transition:transform .15s ease;color:var(--olive-d,#5a7d2a);font-size:12px;transform:rotate(-90deg)}
.docs-details[open] > summary .docs-caret{transform:rotate(0deg)}
.docs-details > summary:hover .docs-caret{color:var(--olive,#79bd43)}

/* ============ documents that would help (right panel checklist) ============ */
.docs-need-list{list-style:none;margin:0;padding:0}
.docs-need-list li.docneed{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--line,#e8e4d8);font-size:13px;line-height:1.4}
.docs-need-list li.docneed:last-child{border-bottom:none}
.docs-need-list li.docneed.provided{color:var(--muted,#6b6b6b)}
.docneed-mark{flex:0 0 auto;width:16px;text-align:center;font-weight:700}
.docneed-mark.done{color:var(--ok,#3f8f3f)}
.docneed-mark.todo{color:var(--olive-d,#5a7d2a)}
.docneed-mark.ref{color:var(--faint,#9a9a8f)}
.docs-need-list .flag-why{display:block;font-size:11px;color:var(--faint,#9a9a8f);margin-top:2px;font-weight:400}

/* where-to-find links in the documents checklist (panel) */
.docs-need-list .docneed-links{display:block;font-size:11px;margin-top:3px;line-height:1.5}
.docs-need-list .docneed-links a{color:var(--navy,#1f3a5f);text-decoration:underline}

/* brief highlight when jumping to the uploader from the checklist */
.docs-flash{animation:docsFlash 1.4s ease}
@keyframes docsFlash{0%{box-shadow:0 0 0 3px var(--olive,#79bd43)}60%{box-shadow:0 0 0 3px var(--olive,#79bd43)}100%{box-shadow:0 0 0 0 transparent}}

/* thinking spinner (scenario planner + anywhere) */
.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--line,#ddd);border-top-color:var(--navy,#1f3a5f);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:4px}
@keyframes spin{to{transform:rotate(360deg)}}

/* top-bar icon buttons (resume / start over) */
.topbar-icon{background:#fff;border:1px solid var(--line,#ddd);border-radius:8px;width:32px;height:32px;font-size:17px;line-height:1;cursor:pointer;color:var(--navy,#1f3a5f);display:inline-flex;align-items:center;justify-content:center;padding:0;margin-right:6px}
.topbar-icon:hover{background:var(--cream-2,#f3efe6)}
.topbar-icon-danger{color:#9a3b3b;border-color:#e0c3c3}
.topbar-icon-danger:hover{background:#f8eded}

/* explain-in-detail panel on the results page */
.explain-out{display:none;margin-top:10px}
.explain-loading{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}
.explain-detail{background:#f7f9f3;border:1px solid #e2e9d6;border-radius:8px;padding:12px 14px}
.explain-detail p{margin:0 0 9px;font-size:14px;line-height:1.55;color:var(--ink)}
.explain-detail p:last-child{margin-bottom:0}
.explain-btn{color:var(--olive-d)}

/* ---------- landing / onboarding (free-site entry) ---------- */
.landing{max-width:720px;margin:0 auto}
.landing-hero{text-align:center;margin:6px 0 22px}
.landing-title{font-family:var(--serif);color:var(--navy);font-size:32px;line-height:1.15;margin:0 0 10px}
.landing-sub{color:var(--muted);font-size:16px;margin:0}
.landing-body p{color:var(--ink);font-size:15px;line-height:1.55;margin:0 0 12px}
.landing-note{border-radius:10px;padding:12px 14px;margin:12px 0;font-size:13.5px;line-height:1.5;background:var(--cream-2);border:1px solid var(--line);color:var(--ink)}
.landing-note-legal{background:#fbf6ec;border-color:#ecdcbe}
.landing-note-safety{background:#fbeef0;border-color:#eccdd3;color:#7a2a34}
.landing-gate{margin:22px 0 0;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:0 6px 26px rgba(27,42,65,.06)}
.landing-gate-title{font-family:var(--serif);color:var(--navy);font-size:20px;margin:0 0 12px}
.landing-label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin:0 0 5px}
.landing-input{width:100%;box-sizing:border-box;height:46px;padding:0 14px;font-size:16px;border:1px solid var(--line-2);border-radius:10px;background:var(--cream)}
.landing-input:focus{outline:none;border-color:var(--olive);background:#fff}
.landing-hint{color:var(--muted);font-size:12.5px;line-height:1.45;margin:5px 0 10px}
.landing-upload{width:100%;box-sizing:border-box;min-height:52px;padding:14px;border:1.5px dashed var(--olive);border-radius:10px;background:#f4f7ef;color:var(--olive-d);font-size:15px;font-weight:600;cursor:pointer}
.landing-upload:hover{background:#eef3e5}
.landing-status{margin:12px 0 0}
.landing-status .uploading{color:var(--muted);font-size:14px}
.landing-status .upload-ok{background:#eef6ea;border:1px solid #cfe4c4;color:#2f6d2f;border-radius:9px;padding:10px 12px;font-size:14px;font-weight:600}
.landing-status .upload-warn{background:#fbf3e6;border:1px solid #ecd9b6;color:#8a5a1a;border-radius:9px;padding:10px 12px;font-size:13.5px;line-height:1.5}
.landing-status .upload-err{background:#fbeef0;border:1px solid #eccdd3;color:#7a2a34;border-radius:9px;padding:10px 12px;font-size:13.5px;display:block}
.landing-ai{margin-top:10px;padding:11px 13px;background:var(--cream-2);border:1px solid var(--line);border-radius:9px;font-size:13.5px;line-height:1.5;color:var(--ink)}
.landing-ai-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--olive-d);font-weight:700;margin-bottom:4px}
.landing-override{margin-top:10px}
.landing-start{width:100%;margin-top:16px;height:50px;font-size:16px}
.landing-resume{color:var(--faint);font-size:12px;margin:14px 0 0;text-align:center}
@media (max-width:640px){
  .stage{padding:22px 16px}
  .landing-title{font-size:25px}
  .landing-sub{font-size:15px}
  .landing-gate{padding:16px}
}

/* ============================================================================
   2026 refresh: reading-pulse, exciting start button, findings & timeline
   classes (moved out of inline styles), jump-nav, saved-note, print styles.
   ============================================================================ */

/* ---- #1: the "reading your document" state pulses so it's visibly working ---- */
.reading-pulse{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;font-weight:600;
  color:var(--olive-d);animation:readingPulse 1.15s ease-in-out infinite}
@keyframes readingPulse{0%,100%{opacity:1}50%{opacity:.45}}
.reading-pulse .spinner{border-top-color:var(--olive-d)}
.reading-box{background:#f1f8e9;border:1.5px solid var(--olive);border-radius:10px;
  padding:12px 14px;animation:readingGlow 1.4s ease-in-out infinite}
@keyframes readingGlow{0%,100%{box-shadow:0 0 0 0 rgba(121,189,67,0)}50%{box-shadow:0 0 0 5px rgba(121,189,67,.22)}}

/* ---- #2: the Start button, made worth pressing ---- */
.landing-start{width:100%;margin-top:16px;height:54px;font-size:17px;font-weight:700;
  letter-spacing:.01em;border:none;border-radius:12px;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,var(--olive) 0%,#4f9a2e 100%);
  box-shadow:0 4px 16px rgba(90,162,58,.35);transition:transform .15s,box-shadow .15s,filter .15s}
.landing-start:not(:disabled){animation:startGlow 2.1s ease-in-out infinite}
.landing-start:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.05);
  box-shadow:0 8px 24px rgba(90,162,58,.45)}
.landing-start:not(:disabled):active{transform:translateY(0)}
.landing-start:disabled{background:var(--line-2);box-shadow:none;color:#fff;cursor:default;animation:none}
@keyframes startGlow{0%,100%{box-shadow:0 4px 16px rgba(90,162,58,.35)}50%{box-shadow:0 4px 26px rgba(121,189,67,.6)}}

/* ---- I: quiet reassurance that progress is saved ---- */
.saved-note{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--faint);
  margin:22px auto 4px;max-width:640px;justify-content:center;text-align:center}
.saved-note::before{content:"✓";color:var(--ok);font-weight:700}

/* ---- #7: the upload prompt banner above the first question ---- */
.q-upload-banner{max-width:640px;margin:0 auto 16px;background:#eef6ea;border:1px solid #cfe4c4;
  border-left:3px solid var(--olive);border-radius:0 10px 10px 0;padding:12px 15px;
  font-size:14px;line-height:1.5;color:#2f5e24;font-weight:500}

/* ---- honest progress note (#5) ---- */
.progress-prefilled{font-size:11.5px;color:var(--olive-d);white-space:nowrap}
@media (max-width:880px){.progress-prefilled{display:none}}

/* ---- E: answer save error + retry ---- */
.answer-error{margin-top:12px;background:#fbeef0;border:1px solid #eccdd3;border-radius:9px;
  padding:11px 13px;font-size:13.5px;color:#7a2a34;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.answer-error .btn-ghost{height:32px;padding:0 14px;font-size:13px;color:#7a2a34;border-color:#dcb2ba}

/* ============ findings page (classes replacing the inline styles) ============ */
.fnd-toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin:0 0 10px}
.fnd-toolbar .btn-ghost{font-size:13px}
.fnd-intro{background:var(--cream-2);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:0 0 18px}
.fnd-intro-label{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--olive-d);font-weight:600}
.fnd-intro p{margin:0 0 8px;font-size:15px;color:var(--ink)}
.fnd-download{background:#f4f7ef;border:1px solid #d7e3c8;border-radius:12px;padding:16px 18px;margin:0 0 22px}
.fnd-download h2{font-family:var(--serif);color:var(--navy);font-size:20px;margin:0 0 6px}
.fnd-download p{margin:0 0 12px;color:var(--ink);font-size:14px}
.fnd-download .fnd-dl-note{margin:10px 0 0;color:var(--muted);font-size:12.5px}
.fnd-dl-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fnd-dl-btn{background:var(--olive);color:#173b16}
.fnd-h1{font-family:var(--serif);color:var(--navy);font-size:30px;margin:0 0 10px}
.fnd-h2{font-family:var(--serif);color:var(--navy);font-size:21px;margin:30px 0 12px;padding-top:6px;border-top:1px solid var(--line)}
.fnd-sub{color:var(--muted);font-size:13.5px;margin:0 0 12px}
.fnd-para{color:var(--ink);font-size:15px;margin:0 0 14px}
.fnd-intro-para{color:var(--muted);font-size:14.5px;margin:0 0 8px}
.fnd-card{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line-2);
  border-radius:0 8px 8px 0;padding:15px 18px;margin-bottom:10px}
.fnd-card .fnd-fact{margin:0;color:var(--ink);font-size:16.5px;line-height:1.5;font-weight:500}
.fnd-card .fnd-standard{margin:9px 0 0;color:var(--navy-2);font-size:14px}
.fnd-card .fnd-note{margin:10px 0 0;color:var(--olive-d);font-size:14.5px;line-height:1.5;font-weight:500}
.fnd-enrich{margin:10px 0 0;padding:9px 12px;background:#eef5fb;border:1px solid #cfe0f0;border-radius:8px}
.fnd-enrich-label{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#2f6aa8;font-weight:700}
.fnd-enrich p{margin:4px 0 0;font-size:14px;color:var(--ink)}
.fnd-enrich .fnd-snippet{margin:4px 0 0;font-size:12.5px;color:var(--muted);font-style:italic;border-left:2px solid #cfe0f0;padding-left:8px}
.fnd-sources{margin:11px 0 0;padding-top:8px;border-top:1px dashed var(--line)}
.fnd-src-line{margin:0 0 2px;font-size:11px;color:var(--faint)}
.fnd-src-quote{margin:2px 0 6px;font-size:13px;color:var(--ink);font-style:italic;border-left:2px solid var(--ok);padding-left:9px}
.fnd-src-standard{margin:2px 0 1px;font-size:13.5px;color:var(--ink);border-left:2px solid var(--olive);padding-left:9px}
.fnd-src-standard-note{margin:0 0 6px 11px;font-size:10.5px;color:var(--faint)}
.fnd-pending{margin:7px 0 0;color:var(--faint);font-size:11px}
.fnd-fold{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
.fnd-fold>summary{cursor:pointer;color:var(--navy);font-size:15px;font-weight:500}
.fnd-fold-body{padding-top:12px}
.fnd-async-note{font-size:12.5px;color:var(--muted);background:var(--cream-2);border:1px solid var(--line);
  border-radius:8px;padding:8px 12px;margin:0 0 14px;display:flex;align-items:center;gap:8px}
.fnd-async{border:1px solid var(--line);border-radius:10px;background:#fff;padding:4px 14px;margin-top:14px}
.fnd-async>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:10px 0;
  font-size:15px;font-weight:600;color:var(--navy)}
.fnd-async>summary::-webkit-details-marker{display:none}
.fnd-async .fnd-async-status{font-size:11.5px;font-weight:600;color:var(--faint)}
.fnd-async .fnd-async-status.ready{color:var(--olive-d)}
.fnd-danger-zone{margin-top:34px;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:flex-end}
.fnd-danger-zone .btn-ghost{font-size:13px;color:#9a3b3b;border-color:#e0c3c3}
.fnd-teaser{background:#eaf1f6;border:1px solid #cdddec;border-left:3px solid #3f6f9f;border-radius:0 10px 10px 0;
  padding:12px 15px;margin:0 0 18px;font-size:14px;color:var(--ink)}
.fnd-teaser a{color:#2f5e8c;font-weight:600}

/* jump nav (#F2) */
.fnd-nav{position:sticky;top:56px;z-index:15;background:var(--cream);padding:8px 0 10px;margin:0 0 8px;
  display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--line)}
.fnd-nav a{flex:0 0 auto;font-size:12px;color:var(--navy);text-decoration:none;background:#fff;
  border:1px solid var(--line-2);border-radius:20px;padding:5px 12px;white-space:nowrap}
.fnd-nav a:hover{border-color:var(--olive);color:var(--olive-d)}

/* ============ timeline (classes replacing the inline styles) ============ */
.tl-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.tl-avatar{width:40px;height:40px;border-radius:50%;background:#dceaf8;color:#185fa5;display:flex;
  align-items:center;justify-content:center;font-weight:600;flex:0 0 auto}
.tl-title{font-family:var(--serif);color:var(--navy);font-size:24px;margin:0;border:none;background:transparent;width:100%;padding:0}
.tl-hint{color:var(--muted);font-size:13px;margin:0}
.tl-legend{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0 18px;font-size:12px;color:var(--muted)}
.tl-overview{margin:0 0 16px;padding:12px 14px;background:var(--cream-2);border-left:3px solid var(--olive);
  border-radius:8px;color:var(--ink);font-size:13.5px;line-height:1.5}
.tl-suggest{margin:0 0 16px;padding:12px 14px;background:#eef5fb;border:1px solid #cfe0f0;border-radius:10px;
  font-size:13.5px;color:var(--ink);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tl-item{position:relative;padding-left:34px}
.tl-line{position:absolute;left:11px;top:6px;bottom:-14px;width:2px;background:var(--line-2)}
.tl-dot{position:absolute;left:4px;top:14px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--line-2);z-index:2}
.tl-arrow{position:absolute;left:7px;bottom:-2px;font-size:14px}
.tl-card{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line-2);
  border-radius:0 11px 11px 0;padding:11px 13px;margin-bottom:14px;display:flex;gap:10px}
.tl-card.tl-absent{background:var(--cream);border-left-style:dashed}
.tl-card.tl-gap{background:var(--warn-bg)}
.tl-move-col{display:flex;flex-direction:column;gap:5px;padding-top:1px;align-items:center}
.tl-move{height:34px;width:40px;padding:0;font-size:20px;line-height:1;border:1px solid var(--line-2);
  border-radius:7px;background:#fff;cursor:pointer;color:var(--navy);font-weight:700}
.tl-grab{cursor:grab;color:var(--faint);font-size:13px;text-align:center;margin-top:1px}
@media (hover:none){.tl-grab{display:none}}  /* HTML5 drag is dead on touch; ↑/↓ do the job */
.tl-main{flex:1;min-width:0}
.tl-ev-title{font-size:15px;font-weight:600;border:none;background:transparent;color:var(--navy);width:100%;font-family:var(--sans);padding:0}
.tl-ev-desc{font-size:13px;color:var(--muted);margin:2px 0 0}
.tl-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:9px}
.tl-date{width:150px;height:32px;border:1px solid var(--line-2);border-radius:6px;padding:4px 8px;font-size:13px;font-family:var(--sans)}
.tl-needs{font-size:12px;padding:3px 9px;border-radius:6px;background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}
.tl-smbtn{height:28px;padding:5px 10px;font-size:12px}
.tl-delbtn{height:28px;width:30px;padding:0;font-size:14px}
.tl-pre{display:none;font-size:12.5px;color:var(--navy-2);background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:9px 11px;margin-top:9px}
.tl-nlab{display:none;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--olive-d);margin:8px 0 0}
.tl-note{display:none;width:100%;margin-top:4px;font-size:13px;min-height:48px;background:#fff6ec;border:1px solid var(--olive-d);border-radius:6px;padding:8px;font-family:var(--sans)}
.tl-confirm{width:100%;margin-top:8px;height:48px;border:none;border-radius:12px;background:var(--olive);color:#173b16;font-weight:600;font-size:15px;cursor:pointer}
.tl-confirm:hover{filter:brightness(1.04)}
@media (max-width:640px){
  .tl-item{padding-left:26px}
  .tl-card{padding:10px 10px;gap:8px}
  .tl-move{height:38px;width:38px}
  .tl-date{width:130px;font-size:16px !important;height:38px}
  .tl-title{font-size:20px}
}

/* topbar fits on small phones: two icons + bar + text + exit */
@media (max-width:480px){
  .topbar{gap:8px}
  .topbar-right{gap:8px}
  .progress{width:56px}
  .progress-text{min-width:0;font-size:11px}
  .topbar-icon{width:30px;height:30px;font-size:15px;margin-right:0}
}

/* ---- F6: print / save-as-PDF ---- */
@media print{
  .topbar,.mobile-toggle,.fnd-toolbar,.fnd-nav,.scenario-box,.fnd-danger-zone,
  .explain-btn,.saved-note,#findings-upload,.fnd-dl-row{display:none !important}
  body{background:#fff}
  .stage{max-width:100%;padding:0}
  .fnd-card,.fnd-download,.fnd-intro{break-inside:avoid;border-left-width:3px}
  a{color:inherit;text-decoration:none}
}
