/* Ross's desk: one stylesheet for the desk and the enrollment page.
   Mobile first (iPhone), 44px+ tap targets, 16px+ inputs (no iOS zoom). */
:root { --navy:#0a2342; --ink:#1b2733; --muted:#5b6b7b; --line:#e4e8ee; --bg:#f6f8fa; --red:#b00020; --blue:#0a4bd4; --green:#1a7f52; --amber:#92600a; --purple:#5b2a86; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; font-size:16px; color:var(--ink); background:var(--bg); }
.hidden { display:none !important; }

header { background:var(--navy); color:#fff; padding:calc(14px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) 14px calc(18px + env(safe-area-inset-left)); position:sticky; top:0; z-index:2; }
header h1 { font-size:22px; margin:0; font-weight:700; }
header .sub { font-size:13px; opacity:.85; margin-top:4px; }
header .hrow { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; max-width:720px; margin:0 auto; }
.hbtns { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
button.ticket { background:#fff; color:var(--navy); border:none; border-radius:999px; font-weight:700; font-size:15px; min-height:44px; padding:0 16px; white-space:nowrap; }
button.signout { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.45); border-radius:999px; font-size:13px; font-weight:600; min-height:36px; padding:0 12px; }

main { padding:16px calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left)); max-width:720px; margin:0 auto; }

/* by the numbers */
.stats { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:6px 0 18px; }
.stat { background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.stat .n { font-size:28px; font-weight:700; color:var(--navy); line-height:1; }
.stat .n.red { color:var(--red); }
button.stat { font:inherit; text-align:left; cursor:pointer; width:100%; -webkit-tap-highlight-color:transparent; }
button.stat.on { border:2px solid var(--navy); background:#eef2f8; }
.stat .l { font-size:13px; color:var(--muted); margin-top:4px; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }

/* cards */
.card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; margin:0 0 14px; box-shadow:0 1px 2px rgba(10,35,66,.04); }
.card.urgent { border-color:#f2c2c2; }
.tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:3px 9px; border-radius:999px; margin:0 6px 8px 0; }
.tag.reply { background:#e8f0ff; color:var(--blue); }
.tag.decision { background:#fff1dc; color:var(--amber); }
.tag.urgent { background:#fde7e9; color:var(--red); }
.tag.box-ross { background:#eef1f5; color:var(--navy); }
.tag.box-cvrs { background:#f1e9f8; color:var(--purple); }
.where { font-size:12px; color:var(--muted); margin-bottom:2px; }
.q { font-size:17px; font-weight:600; line-height:1.35; margin:0 0 8px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.why { font-size:15px; margin:0 0 6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.evidence { font-size:15px; margin:0 0 6px; padding-left:20px; }
.getit { margin:8px 0 6px; padding:10px 12px; border:1px solid #cfe3d4; background:#f3faf5; border-radius:10px; }
.getit-subject { font-size:14px; margin:0 0 4px; overflow-wrap:anywhere; }
.getit-total { font-size:17px; font-weight:600; margin:0 0 6px; }
.getit-from { font-size:13px; opacity:.75; }
.getit-group { font-size:14px; font-weight:600; margin:10px 0 4px; }
.getit-link { margin:0 0 8px; }
.getit-url { font-size:14px; overflow-wrap:anywhere; }
.getit-clicks { font-size:14px; opacity:.85; }
.evidence li { margin:0 0 4px; overflow-wrap:anywhere; }
.steps { font-size:15px; margin:0 0 6px; padding-left:4px; list-style:none; }
.steps li { margin:0 0 4px; overflow-wrap:anywhere; }
.step-left { font-weight:600; }
.checkline { font-size:15px; margin:0 0 6px; }
.to { font-size:14px; color:var(--muted); margin:6px 0 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.to2 { font-size:14px; color:var(--muted); margin:2px 0 4px; overflow-wrap:anywhere; }
.panel { display:none; margin-top:10px; border-top:1px solid var(--line); padding-top:10px; }
.panel.open { display:block; }
.draft { background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:12px; font-size:16px; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere; margin:8px 0; }
.draftlabel { font-size:13px; color:var(--muted); margin-top:8px; }
.warn { background:#fff5f5; border:1px solid #f2c2c2; border-radius:10px; padding:10px 12px; margin:8px 0; font-size:14px; color:var(--red); }
.warn .warnhead { font-weight:700; }
.warn ul { margin:6px 0 0; padding-left:18px; }
.row { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }

button { font:inherit; font-size:16px; font-weight:600; min-height:48px; padding:0 16px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; touch-action:manipulation; }
button.primary { background:var(--navy); color:#fff; border-color:var(--navy); }
button.danger { color:var(--red); }
button.wide { width:100%; margin-top:10px; }
button.linkbtn { background:none; border:none; color:var(--blue); padding:0; margin-top:14px; min-height:44px; }
button:disabled { opacity:.5; cursor:default; }

.sent { color:var(--green); font-weight:600; font-size:15px; margin-top:12px; }
.empty { text-align:center; color:var(--muted); padding:48px 16px; }
.err { color:var(--red); text-align:center; padding:16px; }
details.cleared { margin:8px 0 40px; }
details.cleared summary { color:var(--muted); font-size:15px; cursor:pointer; padding:12px 0; min-height:44px; }
.clItem { background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin:8px 0; }
.clQ { font-size:15px; }
.clReason { font-size:13px; color:var(--muted); margin:2px 0 8px; }

/* talk sheet */
.overlay { position:fixed; inset:0; background:rgba(10,35,66,.45); display:none; z-index:10; align-items:flex-end; }
.overlay.open { display:flex; }
.sheet { background:var(--bg); width:100%; max-width:720px; margin:0 auto; border-radius:16px 16px 0 0; padding:16px calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left)); max-height:88vh; display:flex; flex-direction:column; }
.sheethead { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.thread { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.msg { border-radius:12px; padding:10px 12px; margin:6px 0; font-size:16px; line-height:1.4; white-space:pre-wrap; overflow-wrap:anywhere; }
.msg.you { background:#e8f0ff; margin-left:24px; }
.msg.claude { background:#fff; border:1px solid var(--line); margin-right:24px; }
textarea { font:inherit; font-size:16px; width:100%; min-height:72px; border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:10px 0 0; resize:vertical; }

/* sign-in and enrollment */
.box { background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px; margin:8px 0 14px; }
.box h2 { font-size:20px; margin:0 0 6px; color:var(--navy); }
.box.done { opacity:.75; }
.box .stepnum { font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
label { display:block; font-size:14px; font-weight:600; color:var(--muted); margin:14px 0 6px; }
input { font:inherit; font-size:17px; width:100%; min-height:48px; border:1px solid #cfd6df; border-radius:10px; padding:10px 12px; background:#fff; color:var(--ink); }
input:focus, textarea:focus, button:focus-visible { outline:3px solid #8fb0ff; outline-offset:1px; }
input#code, input#totpCode { letter-spacing:.3em; font-size:22px; text-align:center; font-variant-numeric:tabular-nums; }
.hint { font-size:15px; color:var(--muted); line-height:1.45; margin:6px 0; }
.msg-line { min-height:24px; font-size:15px; text-align:center; color:var(--muted); padding:6px 4px; }
.msg-line.bad { color:var(--red); }
.ok { color:var(--green); font-weight:600; }
.qr { width:240px; max-width:80vw; margin:12px auto; background:#fff; padding:0; }
.qr svg { display:block; width:100%; height:auto; }
.secret { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:17px; background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:10px 12px; overflow-wrap:anywhere; text-align:center; letter-spacing:.06em; user-select:all; -webkit-user-select:all; }
a.btnlink { display:flex; align-items:center; justify-content:center; min-height:48px; margin-top:10px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--blue); font-weight:600; text-decoration:none; }
.note { font-size:14px; color:var(--amber); background:#fff8ec; border:1px solid #f3dfb8; border-radius:10px; padding:8px 10px; margin:8px 0 0; }
.from-box { font-size:14px; font-weight:600; border-radius:10px; padding:8px 10px; margin:8px 0 0; }
.from-box.from-ross { background:#eef1f5; color:var(--navy); }
.from-box.from-cvrs { background:#f1e9f8; color:var(--purple); }

/* tap-to-open card detail: a full-screen sheet over the list, under the talk sheet */
.card.tappable { cursor:pointer; }
button.q { display:-webkit-box; width:100%; text-align:left; background:none; border:none; border-radius:6px; padding:0; min-height:44px; color:var(--ink); font-size:17px; font-weight:600; }
.due { font-size:14px; color:var(--amber); font-weight:600; margin:2px 0 6px; }
.tag.waiting { background:#eef1f5; color:var(--muted); }
.tag.fyi { background:#eef1f5; color:var(--muted); }
body.noscroll { overflow:hidden; }
.detail { position:fixed; inset:0; background:var(--bg); z-index:5; display:flex; flex-direction:column; }
.detailhead { background:var(--navy); color:#fff; display:flex; align-items:center; gap:10px; padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left)); }
.detailhead .detailtitle { flex:1; font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
button.back { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.45); min-height:44px; min-width:88px; }
.detailbody { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; width:100%; max-width:720px; margin:0 auto; padding:16px calc(16px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left)); }
.detailbody h2 { font-size:20px; line-height:1.3; margin:4px 0 10px; color:var(--navy); }
.detailbody h3 { font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin:18px 0 6px; }
.meta { display:grid; grid-template-columns:auto 1fr; gap:4px 10px; font-size:15px; margin:0 0 6px; }
.meta dt { color:var(--muted); }
.meta dd { margin:0; overflow-wrap:anywhere; }
.mailtext { background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px; font-size:16px; line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere; }
.earlier { background:#fff; border:1px solid var(--line); border-radius:10px; margin:8px 0; }
.earlier summary { padding:12px; min-height:44px; cursor:pointer; font-size:15px; }
.earlier .mailtext { border:none; border-top:1px solid var(--line); border-radius:0 0 10px 10px; }
.projpanel { background:#fff; border:1px solid var(--line); border-left:4px solid var(--navy); border-radius:10px; padding:12px; margin:12px 0; font-size:15px; line-height:1.4; }
.projpanel .pname { font-weight:700; color:var(--navy); font-size:16px; }
.projpanel .pline { margin:4px 0; }
.projpanel .muted { color:var(--muted); font-size:13px; }
.projpanel ul { margin:6px 0 0; padding-left:18px; font-size:14px; }
details.pdetails { margin:6px 0 0; color:var(--muted); font-size:14px; }
details.pdetails summary { min-height:44px; padding:12px 0 4px; cursor:pointer; }
details.pdetails .pline { color:var(--ink); }
.stale { font-size:14px; font-weight:600; color:var(--amber); background:#fff8ec; border:1px solid #f3dfb8; border-radius:10px; padding:8px 10px; margin:8px 0 0; }
.projgroup { margin:0 0 6px; }
.projhead { margin:18px 0 8px; padding:0 2px; }
.projhead .pname { font-size:15px; font-weight:700; color:var(--navy); }
.projhead .pstate { font-size:14px; color:var(--muted); margin-top:2px; }
details.coverage { color:var(--muted); font-size:14px; margin:0 0 40px; }
details.coverage summary { min-height:44px; padding:12px 0; cursor:pointer; }

/* Agenda: people Ross will raise cards with in person */
.agenda { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-8px 0 16px; }
.agenda[hidden] { display:none; }
.agLabel { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#5b6474; }
.agChip { border-radius:999px; }
.agChip.on { background:#0c234b; color:#fff; border-color:#0c234b; }
