/* CreditLab Portal — design tokens (match the intake form; do not invent a new look). */
:root{
  --bg-primary:#f8f9fc; --bg-card:#ffffff; --bg-input:#f4f6fa;
  --text-primary:#0f1a2e; --text-secondary:#4a5568; --text-muted:#8896ab;
  --accent:#1a3a5c; --accent-light:#2a5a8c; --accent-dim:rgba(26,58,92,.06);
  --border:rgba(26,58,92,.12); --gold:#c9a227; --success:#0d8a4a;
  --warn:#b4690e; --flag:#b42318;
  --radius:14px; --radius-sm:9px; --shadow:0 1px 3px rgba(15,26,46,.06),0 8px 24px rgba(15,26,46,.05);
  --font-display:'DM Serif Display',Georgia,serif;
  --font-body:'DM Sans',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent-light);text-decoration:none}
a:hover{text-decoration:underline}

/* Wordmark */
.wordmark{font-family:var(--font-display);font-size:1.5rem;letter-spacing:-.01em;display:inline-flex}
.wordmark .c{color:var(--accent)} .wordmark .l{color:var(--gold)}
.wordmark.sm{font-size:1.15rem}

/* Top bar */
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px}
.topbar .who{font-size:.82rem;color:var(--text-muted)}
.topbar .who b{color:var(--text-secondary);font-weight:600}

/* Layout */
.wrap{max-width:1080px;margin:0 auto;padding:28px}
.grid{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start}
@media(max-width:820px){.grid{grid-template-columns:1fr}}

/* Cards */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px}
.card h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);
  font-weight:700;margin-bottom:14px}
.card + .card{margin-top:20px}

/* Stage rail (sticky 5-step) */
.rail{position:sticky;top:86px}
.rail ol{list-style:none}
.rail li{display:flex;gap:12px;padding:10px 0;position:relative}
.rail li:not(:last-child)::before{content:"";position:absolute;left:13px;top:30px;bottom:-10px;
  width:2px;background:var(--border)}
.rail li.done:not(:last-child)::before{background:var(--accent)}
.dot{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;
  font-weight:700;border:2px solid var(--border);background:var(--bg-card);color:var(--text-muted)}
.rail li.done .dot{background:var(--accent);border-color:var(--accent);color:#fff}
.rail li.current .dot{border-color:var(--gold);color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(201,162,39,.18)}
.rail .lbl{font-size:.88rem;font-weight:600;color:var(--text-secondary);padding-top:4px}
.rail li.current .lbl{color:var(--text-primary)}
.rail li.todo .lbl{color:var(--text-muted);font-weight:500}
.rail .soon{font-size:.66rem;color:var(--text-muted);background:var(--accent-dim);
  border-radius:6px;padding:1px 6px;margin-left:6px}

/* Estimate hero (navy) */
.hero{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;
  border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.hero .k{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.7);font-weight:700}
.hero .est{font-family:var(--font-display);font-size:2.9rem;line-height:1.05;margin:8px 0 4px}
.hero .range{font-family:var(--font-mono);font-size:.9rem;color:rgba(255,255,255,.82)}
.hero .meta{display:flex;gap:22px;margin-top:18px;flex-wrap:wrap}
.hero .meta div{font-size:.8rem;color:rgba(255,255,255,.72)}
.hero .meta b{display:block;font-size:.98rem;color:#fff;font-weight:600;font-family:var(--font-mono)}
.hero .pending{font-family:var(--font-display);font-size:1.4rem;opacity:.85}

/* Action card */
.action{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.action .txt b{display:block;font-size:1rem}
.action .txt span{font-size:.85rem;color:var(--text-secondary)}

/* Buttons */
.btn{font-family:var(--font-body);font-weight:600;font-size:.9rem;border:none;border-radius:var(--radius-sm);
  padding:11px 18px;cursor:pointer;transition:.15s;display:inline-flex;gap:8px;align-items:center}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-light)}
.btn.gold{background:var(--gold);color:#fff}
.btn.ghost{background:var(--bg-input);color:var(--text-secondary)}
.btn.ghost:hover{background:var(--accent-dim)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.sm{padding:7px 12px;font-size:.8rem}

/* Team table */
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);
  font-weight:700;padding:8px 10px;border-bottom:1px solid var(--border)}
td{padding:11px 10px;border-bottom:1px solid var(--border);color:var(--text-secondary)}
td.name{color:var(--text-primary);font-weight:600}
td.pct{font-family:var(--font-mono);color:var(--text-primary)}
tr:last-child td{border-bottom:none}
.pill{font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}
.pill.confirmed{background:rgba(13,138,74,.12);color:var(--success)}
.pill.review{background:rgba(180,105,14,.12);color:var(--warn)}
.pill.flagged{background:rgba(180,35,24,.12);color:var(--flag)}

/* Activity feed */
.feed{list-style:none}
.feed li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.feed li:last-child{border-bottom:none}
.feed .fdot{flex:0 0 8px;height:8px;border-radius:50%;background:var(--accent);margin-top:7px}
.feed .ftxt{font-size:.86rem;color:var(--text-secondary)}
.feed .ftxt b{color:var(--text-primary);font-weight:600;display:block}
.feed time{font-size:.72rem;color:var(--text-muted)}

/* Documents list */
.docs{list-style:none}
.docs li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.docs li:last-child{border-bottom:none}
.docs .ic{flex:0 0 22px;color:var(--accent)}
.docs .dname{font-size:.88rem;color:var(--text-primary);font-weight:500;flex:1}
.docs .dmeta{font-size:.74rem;color:var(--text-muted)}

/* Upload / terms */
.dropzone{border:2px dashed var(--border);border-radius:var(--radius-sm);padding:26px;text-align:center;
  color:var(--text-muted);background:var(--bg-input);cursor:pointer;transition:.15s}
.dropzone.over{border-color:var(--gold);background:#fff;color:var(--text-secondary)}
.dropzone.disabled{opacity:.5;pointer-events:none}
.terms{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--text-secondary);margin-bottom:14px}
.terms input{margin-top:3px}

/* Inputs */
label.fld{display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin:12px 0 5px}
input[type=text],input[type=email],input[type=password],input[type=number],select{
  width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:11px 13px;font-family:var(--font-body);font-size:.92rem;color:var(--text-primary)}
input:focus,select:focus{outline:none;border-color:var(--accent-light);background:#fff}

/* Auth */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth .panel{width:100%;max-width:380px}
.auth .panel .card{padding:30px}
.tabs{display:flex;gap:6px;margin-bottom:18px}
.tabs button{flex:1;background:var(--bg-input);border:none;border-radius:var(--radius-sm);padding:9px;
  font-weight:600;font-size:.85rem;color:var(--text-secondary);cursor:pointer}
.tabs button.active{background:var(--accent);color:#fff}

/* Misc */
.muted{color:var(--text-muted)}
.note{font-size:.8rem;color:var(--text-muted);margin-top:10px}
.msg{font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-top:12px;display:none}
.msg.show{display:block}
.msg.ok{background:rgba(13,138,74,.1);color:var(--success)}
.msg.err{background:rgba(180,35,24,.1);color:var(--flag)}
.foot{text-align:center;color:var(--text-muted);font-size:.78rem;padding:28px}
.foot .lock{color:var(--accent)}
.hidden{display:none!important}
.row-actions{display:flex;gap:6px}
.eng-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer}
.eng-row:hover{background:var(--accent-dim)}
.badge{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}

/* Founder signature block (upload disclaimer) */
.sig{display:flex;align-items:center;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.sig .mark{font-family:var(--font-display);font-size:1.5rem;color:var(--accent);font-style:italic;line-height:1}
.sig .meta b{display:block;font-size:.86rem;color:var(--text-primary)}
.sig .meta span{font-size:.76rem;color:var(--text-muted)}
.disclaimer{font-size:.85rem;color:var(--text-secondary);line-height:1.55;background:var(--bg-input);
  border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px}

/* Modal (engagement agreement) */
.modal-bg{position:fixed;inset:0;background:rgba(15,26,46,.55);display:none;align-items:center;
  justify-content:center;z-index:50;padding:24px}
.modal-bg.show{display:flex}
.modal{background:var(--bg-card);border-radius:var(--radius);max-width:620px;width:100%;max-height:88vh;
  display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(15,26,46,.3)}
.modal header{padding:22px 24px;border-bottom:1px solid var(--border)}
.modal header h3{font-family:var(--font-display);font-size:1.4rem;color:var(--accent)}
.modal .body{padding:20px 24px;overflow-y:auto}
.modal .agreement{font-size:.84rem;color:var(--text-secondary);line-height:1.6}
.modal .agreement h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin:16px 0 6px}
.modal .draft-tag{display:inline-block;font-size:.68rem;font-weight:700;color:var(--warn);background:rgba(180,105,14,.12);padding:2px 8px;border-radius:6px;margin-bottom:10px}
.modal footer{padding:18px 24px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}
.modal footer .row{display:flex;gap:12px;justify-content:flex-end}
