:root{--navy:#1A2D5A;--orange:#E7882F;--red:#D64545;--ink:#1f2430;--muted:#6B7B8D;--line:#e7e9f0;--bg:#f4f6fb}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:760px;margin:0 auto;padding:14px}
.topbar{display:flex;align-items:center;gap:14px;background:var(--navy);color:#fff;padding:12px 16px;position:sticky;top:0;z-index:5}
.topbar .brand{font-weight:800;letter-spacing:.3px}
.topbar nav a{color:#c9d3e8;font-weight:600;padding:4px 6px}
.topbar nav a.on{color:#fff}
.topbar .logout{margin-left:auto}
.topbar .logout button{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:6px 12px}
h1{font-size:22px;margin:6px 0 12px}
h2.sec{font-size:15px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:22px 0 8px}
h2.sec.red{color:var(--red)} h2.sec.money{color:var(--orange)} h2.sec.hot{color:#0D8F8F} h2.sec.warm{color:#c46a1e}
.muted{color:var(--muted);font-weight:500;font-size:13px}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}
.tile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 8px;text-align:center}
.tile b{display:block;font-size:24px;color:var(--navy)} .tile span{font-size:11px;color:var(--muted)}
.tile.red b{color:var(--red)} .tile.money b{color:var(--orange)} .tile.hot b{color:#0D8F8F} .tile.warm b{color:#c46a1e}
.lead{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.lead-main{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lead .name{font-weight:700;font-size:16px}
.chip{font-size:11px;background:#eef1f8;color:var(--navy);border-radius:999px;padding:3px 9px;font-weight:700}
.lead-sub{color:var(--muted);font-size:12px;margin-top:3px}
.empty{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:28px;text-align:center;color:var(--muted)}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:0 0 14px}
.card h1{margin:0 0 4px} .card h2{font-size:16px;margin:0 0 12px}
.meta{color:var(--muted);font-size:13px;margin-bottom:12px}
.callbtn{display:block;background:var(--orange);color:#fff;text-align:center;font-weight:800;font-size:18px;padding:14px;border-radius:12px;margin:8px 0}
.mira{background:#f0f7f7;border-left:3px solid #0D8F8F;padding:8px 10px;border-radius:6px;font-size:14px}
.warn{color:var(--red);font-weight:600}
label{display:block;font-size:13px;color:var(--muted);font-weight:600;margin:10px 0 0}
input,select,textarea{width:100%;margin-top:5px;padding:11px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff;font-family:inherit}
button.primary{margin-top:14px;width:100%;background:var(--navy);color:#fff;border:0;border-radius:10px;padding:13px;font-size:16px;font-weight:700}
.back{display:inline-block;color:var(--muted);margin-bottom:10px;font-weight:600}
.ok{background:#e8f5e9;color:#2e7d32;padding:8px 12px;border-radius:8px;font-weight:600}
.err{background:#fdecea;color:var(--red);padding:8px 12px;border-radius:8px;font-weight:600}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{border-top:1px solid var(--line);padding:9px 0}
.t-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px}
.t-when{color:var(--muted)} .t-chan{font-weight:700;color:var(--navy)} .t-out{background:#eef1f8;border-radius:6px;padding:1px 7px;font-weight:700}
.t-src{color:var(--muted);margin-left:auto} .t-sum{font-size:14px;margin-top:3px}
.login{max-width:360px;margin:14px auto 48px}
.login-brand{text-align:center;font-size:34px;font-weight:800;letter-spacing:.3px;margin:54px 0 6px}
.login-tag{text-align:center;color:var(--muted);font-size:14px;max-width:340px;margin:0 auto 18px;line-height:1.4}

/* ---- LabONE wordmark (navy Lab / orange ONE) ---- */
.brand .lab{color:#fff} .brand .one{color:var(--orange)} .brand .desk{color:#c9d3e8;font-weight:700}
.login-brand .lab{color:var(--navy)} .login-brand .one{color:var(--orange)} .login-brand .desk{color:var(--muted);font-weight:700}
.day-sub{margin:-6px 0 14px}

/* ---- lead head ---- */
.lead-head .goal{margin:8px 0 0;font-size:15px}
.nextline{margin:8px 0 0;font-size:14px}
.badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;border-radius:6px;padding:2px 6px;margin-left:6px}
.badge.red{background:#fdecea;color:var(--red)}

/* ---- MIRA context panel ---- */
.mira-panel{border-left:5px solid #0D8F8F}
.mira-panel.heat-hot{border-left-color:var(--orange);background:#fff8f0}
.mira-panel.heat-warm{border-left-color:#0D8F8F;background:#f0f7f7}
.mira-panel.heat-cold{border-left-color:#8a94a6;background:#f7f8fa}
.mira-panel.heat-won{border-left-color:#2e9e5b;background:#eefaf1}
.mira-panel.heat-none,.mira-panel.heat-new{border-left-color:#c3cad6;background:#f7f8fa}
.mira-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.mira-tag{font-weight:800;font-size:11px;letter-spacing:1px;background:var(--navy);color:#fff;border-radius:6px;padding:3px 8px}
.heat-pill{font-size:11px;font-weight:800;border-radius:999px;padding:3px 10px;text-transform:uppercase;letter-spacing:.3px}
.heat-pill.heat-hot{background:var(--orange);color:#fff}
.heat-pill.heat-warm{background:#0D8F8F;color:#fff}
.heat-pill.heat-cold{background:#8a94a6;color:#fff}
.heat-pill.heat-won{background:#2e9e5b;color:#fff}
.mira-when{color:var(--muted);font-size:12px;margin-left:auto}
.mira-head{font-size:16px;font-weight:700;margin:4px 0}
.mira-next{background:#fff;border:1px dashed var(--line);border-radius:8px;padding:8px 10px;font-size:14px;margin:8px 0}
.mira-line{font-size:14px;margin:6px 0;line-height:1.45}
.mira-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
.mira-chips .chip{background:#fff;border:1px solid var(--line)}
.mira-chips .chip.good{background:#eefaf1;color:#2e7d32;border-color:#cdeccf}
.mira-chips .chip.warnchip{background:#fff4e5;color:#b86a13;border-color:#f3dcb8}
.mira-foot{font-size:12px;color:var(--muted);margin:10px 0 0;font-style:italic}

/* ---- timeline: human vs MIRA ---- */
.timeline li.human{border-left:3px solid var(--orange);padding-left:10px}
.timeline li.auto{border-left:3px solid #0D8F8F;padding-left:10px}

/* ---- CO-PILOT card ---- */
.copilot{border:2px solid var(--navy);background:linear-gradient(180deg,#fbfcff,#fff)}
.cp-top{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.cp-score{flex:0 0 auto;width:62px;height:62px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.cp-score b{font-size:26px;line-height:1} .cp-score span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;opacity:.9}
.cp-score.sc-hot{background:var(--orange)} .cp-score.sc-warm{background:#0D8F8F} .cp-score.sc-cool{background:#5b8fb0} .cp-score.sc-cold{background:#8a94a6}
.cp-verdict{flex:1}
.cp-label{font-size:16px;font-weight:800}
.cp-label.sc-hot{color:#c46a1e} .cp-label.sc-warm{color:#0D8F8F} .cp-label.sc-cool{color:#3d6f90} .cp-label.sc-cold{color:#6B7B8D}
.cp-why{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4}
.cp-watch{background:#fdecea;color:var(--red);font-weight:700;border-radius:8px;padding:8px 10px;margin:8px 0;font-size:13px}
.cp-block{margin:11px 0 0}
.cp-h{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--navy);background:#eef1f8;border-radius:5px;padding:2px 7px;margin-bottom:5px}
.cp-open{font-size:16px;font-weight:600;color:var(--ink);margin:4px 0;line-height:1.45}
.cp-list{margin:4px 0 0;padding-left:18px} .cp-list li{font-size:14px;margin:3px 0;line-height:1.4}
.cp-share{font-size:14px;margin:4px 0;background:#fff8f0;border:1px solid #f3dcb8;border-radius:8px;padding:8px 10px}
.cp-obj{font-size:14px;margin:4px 0;color:#444}
.cp-standing{font-size:12px;color:var(--muted);font-style:italic;margin:12px 0 0;border-top:1px solid var(--line);padding-top:8px}

/* ---- leak banner + hero ---- */
.leakbanner{display:block;background:#fdecea;color:var(--red);border-radius:10px;padding:10px 14px;font-weight:700;margin-bottom:12px;font-size:14px}
.leakbanner.ok{background:#e8f5e9;color:#2e7d32}
.leakbanner b{font-size:18px}
.leakhero{display:flex;align-items:center;gap:14px;border-radius:14px;padding:18px;margin-bottom:12px}
.leakhero.bad{background:#fdecea} .leakhero.good{background:#e8f5e9}
.leakhero b{font-size:44px;line-height:1} .leakhero.bad b{color:var(--red)} .leakhero.good b{color:#2e7d32}
.leakhero span{font-size:14px;font-weight:600}

/* ---- kanban ---- */
.kanban{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.kcol{flex:0 0 200px;background:#f0f2f8;border-radius:12px;padding:8px}
.khead{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:13px;color:var(--navy);padding:4px 6px 8px}
.khead b{background:#fff;border-radius:999px;padding:1px 9px;font-size:12px}
.kcard{display:block;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-bottom:6px}
.kname{display:block;font-weight:700;font-size:14px} .ksub{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.kmore{font-size:12px;color:var(--muted);text-align:center;padding:4px} .kempty{color:#c3cad6;text-align:center;padding:14px}
.kcol.stage-member{background:#eefaf1} .kcol.stage-tested{background:#eef7f7} .kcol.stage-new{background:#f4f6fb}
