/* Coaching Leads: private working page for the Program Director and Program Admin. */
:root{--bg:#F6F3EC;--card:#fff;--fg:#11161F;--muted:#5B6676;--line:rgba(11,30,60,.14);--navy:#0E2A47;--accent:#C75A24;--accent-soft:#F7D6BE;--ok:#2E8C5A;--warn:#B07F12;--bad:#C24A3E;--chip:#EEF2F7}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 "Segoe UI",system-ui,-apple-system,sans-serif}
[hidden]{display:none!important}
h1,h2,h3{line-height:1.2;margin:0 0 .4em;text-wrap:balance}
h1{font-size:26px}h2{font-size:18px}h3{font-size:15px}
a{color:var(--navy)}
.muted{color:var(--muted)}.small{font-size:13px}.err{color:var(--bad);font-weight:600}
.lh{background:var(--navy);color:#EAF2FF}
.lh-in,.lm{max-width:1280px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.lh-in{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:10px;flex-wrap:wrap}
.lh-brand{display:flex;align-items:center;gap:14px;font-weight:600;letter-spacing:.02em}
.lh-brand img{height:32px;width:auto}
.lh-me{display:flex;gap:14px;align-items:center;font-size:14px}.lh-me a{color:#9FC9FF}
.lm{padding-block:18px 60px}
.signin{max-width:460px;margin:10vh auto;text-align:center;background:var(--card);padding:32px;border-radius:12px;border:1px solid var(--line)}
.b{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--fg);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.b:hover{border-color:var(--navy)}
.b:disabled{opacity:.5;cursor:default}
.b-main{background:var(--navy);border-color:var(--navy);color:#fff}.b-main:hover{background:#1B3D63}
.b-warn{background:var(--accent);border-color:var(--accent);color:#fff}
.b-quiet{border-color:transparent;background:transparent;color:var(--muted)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}
.tabs button{border:0;background:none;font:inherit;font-weight:600;padding:10px 14px;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.tabs button[aria-current=page]{color:var(--fg);border-bottom-color:var(--accent)}
.tabs b{display:inline-block;min-width:22px;padding:0 6px;border-radius:11px;background:var(--chip);color:var(--fg);font-size:12px;line-height:20px;text-align:center}
.tabs b.hot{background:var(--accent);color:#fff}
.bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.bar input,.bar select{min-height:38px}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--fg);max-width:100%}
#search{flex:1 1 220px}
label{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:600;color:var(--muted)}
label input,label select,label textarea{font-weight:400;color:var(--fg)}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:10px}
.add{margin-bottom:14px;display:grid;gap:8px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:14px;align-items:start}
.split.solo{grid-template-columns:minmax(0,1fr)}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}}
.list{display:grid;gap:6px;min-width:0}
.lead{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1.6fr);gap:10px;align-items:center;text-align:left;width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;color:inherit;cursor:pointer}
.lead:hover,.lead[aria-current=true]{border-color:var(--navy)}
.lead[aria-current=true]{box-shadow:inset 3px 0 0 var(--accent)}
.lead .who b{display:block}.lead .who span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.lead .next{font-size:14px}.lead .next small{display:block;color:var(--muted)}
.late{color:var(--bad);font-weight:600}
@media (max-width:640px){.lead{grid-template-columns:minmax(0,1fr) auto}.lead .next{grid-column:1/-1}}
.stage{display:inline-block;padding:2px 9px;border-radius:12px;background:var(--chip);font-size:12.5px;font-weight:600;white-space:nowrap}
.st-yes,.st-signed,.st-paid{background:#E3F1E8;color:#1F6B42}.st-ready{background:var(--ok);color:#fff}
.st-not_yet,.st-hold{background:#FBEFD5;color:#7A5608}.st-no,.st-closed{background:#EEE;color:#666}
.st-strategy_call{background:#E8E4F6;color:#3D2F7A}
.story{border-left:3px solid var(--accent);background:#FDF4EC;padding:10px 14px;margin:12px 0;border-radius:0 8px 8px 0}
.story h3{margin:0 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.story p{margin:0;line-height:1.5}
.lead .origin{color:var(--muted, #5b6676);font-size:12.5px}
.st-interview_booked,.st-interviewed{background:#E3EEFB;color:#1B3D63}.st-new_inquiry,.st-applied{background:var(--accent-soft);color:#7A3410}
/* The 8 steps (stored stages stay the same underneath) */
.st-interested,.st-applied{background:var(--accent-soft);color:#7A3410}.st-interview{background:#E3EEFB;color:#1B3D63}
.st-said_yes{background:#E3F1E8;color:#1F6B42}.st-enrolled{background:var(--ok);color:#fff}
.stage .sub,.lead .stage .sub{display:block;margin:1px 0 0;font-weight:500;font-size:11px;opacity:.85;line-height:1.2}
.checklist{list-style:none;margin:10px 0 4px;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.checklist li{display:flex;align-items:center;gap:5px;color:#5b6676}
.checklist li.done{color:inherit}
.checklist .tick{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;border:1.5px solid #b9c0ca;font-size:11px;line-height:1}
.checklist li.done .tick{background:var(--ok);border-color:var(--ok);color:#fff}
.checklist small{margin-left:2px}
.toggle.keep{margin-top:8px;font-size:13.5px}
.next-line{display:grid;gap:8px}
.next-line .moved{color:#7A5608;font-weight:600}
.move-panel{display:grid;gap:8px;border-top:1px dashed var(--line);padding-top:8px}
.move-panel input[type=text]{flex:1;min-width:140px}
.toast-ask{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.today .later .todo-list,.later .todo-list{gap:2px}
.saved-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.saved-list li{border:1px solid var(--line,#e3e6ea);border-radius:10px;padding:10px 12px}
.saved-list pre{white-space:pre-wrap;font:inherit;font-size:13px;margin:6px 0;color:#3b4552}
.detail{position:sticky;top:12px;display:grid;gap:14px;min-width:0;max-height:calc(100vh - 24px);overflow:auto}
@media (max-width:900px){.detail{position:static;max-height:none}}
.detail .close{justify-self:end}
.facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;font-size:14px;margin:0}
.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}
.box{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:8px}
.box h3{margin:0}
.toggle{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:14px;color:var(--fg);font-weight:600}
.toggle input{width:18px;height:18px}
.history{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13.5px}
.history li{border-left:3px solid var(--line);padding-left:9px}
.history .meta{color:var(--muted);font-size:12px}
.history .k-note{border-left-color:var(--navy)}.history .k-send{border-left-color:var(--ok)}.history .k-problem{border-left-color:var(--bad)}.history .k-stage{border-left-color:var(--accent)}
.msg{display:grid;gap:8px;margin-bottom:10px}
.msg pre{white-space:pre-wrap;font:inherit;margin:0;background:#FAF8F3;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:14px;overflow-wrap:anywhere}
.msg .head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mode{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.measures{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:10px}
.measure{display:grid;gap:4px}
.measure .v{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums}
.measure .t{font-size:13px;color:var(--muted)}
.measure.ok{box-shadow:inset 0 4px 0 var(--ok)}.measure.off{box-shadow:inset 0 4px 0 var(--bad)}
.notice{background:#FBEFD5;border-radius:8px;padding:8px 10px;font-size:14px}
.empty{padding:24px;text-align:center;color:var(--muted)}
.sub{margin-top:22px}
#phone-setup{margin-top:16px}#phone-setup summary{font-weight:600;cursor:pointer}
.keybox{display:grid;gap:6px;margin-top:10px}.keybox code{display:block;padding:8px;border:1px solid var(--line);border-radius:8px;background:#FAF8F3;overflow-wrap:anywhere;font-size:13px}

/* Message previews (exactly what goes out) */
.preview{display:grid;gap:10px}
.preview-msg{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.preview-head{padding:8px 12px;background:var(--chip);font-size:13px;overflow-wrap:anywhere}
.preview-subject{padding:8px 12px;border-bottom:1px solid var(--line);font-size:14px}
.preview-email{padding:14px 12px;color:#11161f}
.preview-email a{color:#1a56c4}
.preview-text{padding:12px;white-space:pre-wrap;font-size:14px;overflow-wrap:anywhere}

/* Today: the first screen. What to do this week, closest to a signup first. */
.today-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.today-top h1{margin:0;font-size:30px}
.today-top .day{margin:0 0 2px}
.today-top .lede{margin:4px 0 0;font-size:17px}
.section-title{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:20px 0 8px}
.path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) minmax(0,1.1fr);gap:6px}
.path .step{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;color:inherit;cursor:pointer;position:relative}
.path .step:hover{border-color:var(--navy)}
.path .step .n{font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.path .step .lbl{font-size:13px;color:var(--muted);font-weight:600}
.path .step.goal{background:#E3F1E8;border-color:#BBDCC8}.path .step.goal .lbl{color:#1F6B42}
.path .step.side{background:#FBEFD5;border-color:#EBD7A6;margin-left:8px}.path .step.side .lbl{color:#7A5608}
@media (max-width:760px){.path{grid-template-columns:repeat(3,minmax(0,1fr))}.path .step.side{margin-left:0}}
.alert-card{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;border-color:var(--accent);background:#FDF4EC}
.alert-card h2,.alert-card p{margin:0}
.todos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;align-items:start}
.todo{display:grid;gap:8px}
.todo p{margin:0}
.todo.has-late{box-shadow:inset 0 4px 0 var(--bad)}
.todo-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.todo-head h2{margin:0}
.count{min-width:30px;height:30px;border-radius:15px;background:var(--navy);color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;font-variant-numeric:tabular-nums}
.todo-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.todo-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 10px;align-items:baseline;width:100%;text-align:left;background:#FAF8F3;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;color:inherit;cursor:pointer;min-height:44px}
.todo-row:hover{border-color:var(--navy);background:#fff}
.todo-row b{overflow-wrap:anywhere}
.todo-row small{font-size:12.5px;color:var(--muted);white-space:nowrap}
.todo-row small.late{color:var(--bad)}
.todo-row .todo-step{grid-column:1/-1;font-size:13px;color:var(--muted)}
.today-foot{margin-top:14px}
.focus{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--chip);border-radius:10px;padding:6px 6px 6px 12px;font-weight:600}

/* Calls: one card per person to phone, tap-to-call number, one-tap results. */
#calls{display:grid;gap:10px}
.call-row{display:grid;gap:8px}
.call-row.is-class{box-shadow:inset 3px 0 0 var(--navy)}
.call-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.call-who{display:grid;gap:2px;min-width:0}
.link-name{border:0;background:none;padding:0;font:inherit;font-size:17px;font-weight:700;color:var(--fg);text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.link-name:hover{text-decoration-color:var(--navy)}
.call-btn{min-height:44px;font-size:16px;padding:9px 18px}
.call-step{margin:0;font-weight:600}.call-step small{font-weight:400;color:var(--muted)}.call-step small.late{color:var(--bad);font-weight:600}
.call-note{margin:0;overflow-wrap:anywhere}
.call-results{display:grid;gap:6px}
.call-results .b{min-height:40px}
@media (max-width:640px){.call-btn{width:100%}.call-results .row .b{flex:1 1 auto}}
/* Editing a message before it goes out. */
.preview-msg.editing{border-color:var(--navy)}
.edit-subject{width:100%;margin-top:4px}
.preview-subject:has(.edit-subject){display:flex;flex-direction:column;gap:2px;font-size:13px}
.edit-email{min-height:120px;outline:none;border:1px dashed var(--navy);border-radius:8px;padding:10px;background:#fff;cursor:text}
.edit-email:focus{border-style:solid;box-shadow:0 0 0 3px rgba(14,42,71,.12)}
.edit-text{width:100%;min-height:96px;font:inherit;line-height:1.45}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;background:var(--accent-soft);color:#7A3410;font-size:12px;font-weight:700;margin-left:6px}
/* Undo after a call result: a note that pops up at the bottom, and a line on the card. */
.toast{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:calc(100vw - 32px);background:var(--navy);color:#fff;border-radius:12px;padding:10px 12px 10px 16px;box-shadow:0 8px 24px rgba(11,30,60,.25)}
.toast .b{min-height:40px}.toast .b-quiet{color:#cfe0f5}
.last-call{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.last-call .undo{min-height:32px;padding:4px 10px;text-decoration:underline;color:var(--navy)}
.history li.undone .what{text-decoration:line-through;color:var(--muted)}
/* New interest: first on Today. */
.fresh{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent);margin:14px 0;display:grid;gap:10px}
.fresh-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.fresh-row .b{min-height:42px}
@media (max-width:640px){.fresh-row .row{width:100%}.fresh-row .row .b{flex:1 1 auto}}
/* The drafted-message tally on Numbers. */
.tally{margin-top:14px;display:grid;gap:8px}
.tally-total{margin:0}
.table-wrap{overflow-x:auto}
.tally-table{border-collapse:collapse;width:100%;font-size:14px}
.tally-table th,.tally-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line)}
.tally-table td:not(:first-child),.tally-table th:not(:first-child){text-align:right;white-space:nowrap}
details.already summary{cursor:pointer;color:var(--navy);font-size:14px;margin-top:6px}
@media (min-width:901px){.path{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}
@media (max-width:640px){.call-top>.row{width:100%;flex-wrap:nowrap}.call-top>.row .call-btn{flex:1 1 0;width:auto}}

/* Up next: one person, one action, at the top of Today. */
.up-next{border:2px solid var(--navy);box-shadow:0 6px 22px rgba(14,42,71,.12);margin:12px 0 4px;display:grid;gap:8px;padding:18px}
.up-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.up-tag{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;background:var(--navy);border-radius:6px;padding:3px 9px}
.up-next.k-fresh{border-color:var(--accent)}.up-next.k-fresh .up-tag{background:var(--accent)}
.up-meter{height:6px;border-radius:3px;background:var(--chip);overflow:hidden}.up-meter span{display:block;height:100%;background:var(--ok);border-radius:3px;transition:width .3s}
.up-name{font-size:26px;line-height:1.15;margin:4px 0 0;justify-self:start}
.up-why{margin:0;font-size:17px}.up-ctx{margin:0}
.up-acts{margin-top:6px;align-items:center}.up-acts .b{min-height:46px;padding:9px 18px;font-size:16px}
.up-acts .up-later{margin-left:auto}
.up-after{margin:6px 0 0}.up-then{margin:4px 0 0;border-top:1px solid var(--line);padding-top:10px}
.up-next.done{border-color:var(--ok)}.up-next.done .up-tag{background:var(--ok)}
.up-next .preview-msg{margin-top:4px}
@media (max-width:640px){.up-name{font-size:23px}.up-acts .b{flex:1 1 auto}.up-acts .up-later{margin-left:0;flex:1 1 100%}}

/* Clear the deck streak on the Numbers tab. */
.streak{display:flex;gap:18px;align-items:center;margin-bottom:10px;border-left:6px solid var(--line)}
.streak.ok{border-left-color:var(--ok)}.streak.open{border-left-color:var(--accent)}
.streak-n{display:grid;justify-items:center;min-width:92px}.streak-n .v{font-size:56px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.streak-n .u{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.streak-t h2{margin:0 0 2px}.streak-t p{margin:2px 0}.streak-today{font-weight:600}.streak-today.waiting{color:var(--accent)}
@media (max-width:640px){.streak{align-items:flex-start;gap:12px}.streak-n{min-width:64px}.streak-n .v{font-size:44px}}

/* Today, in order: one ranked list with a button on every row. */
.rank-card{padding:6px 14px}.rank{list-style:none;margin:0;padding:0}
.rank-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.rank-row:first-child{border-top:0}
.rank-n{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.rank-who{display:grid;gap:2px;min-width:0}.rank-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.rank-tag{font-size:12px;font-weight:700;background:var(--chip);border-radius:999px;padding:2px 9px;white-space:nowrap}
.rank-row.k-fresh .rank-tag{background:var(--accent-soft);color:#7A3410}
.rank-row .b{min-width:84px;min-height:42px}
@media (max-width:640px){.rank-card{padding:4px 10px}.rank-row{grid-template-columns:22px minmax(0,1fr) auto;gap:8px}.rank-row .b{min-width:72px}}

/* Get ahead: the Up next card when today's list is clear (warmest people with nothing planned this week) */
.up-next.ahead{border-color:#8A6209}.up-next.ahead .up-tag{background:#8A6209}
.up-note{margin:0;background:#FBF6E6;border-left:4px solid #8A6209;border-radius:6px;padding:9px 12px;font-size:16px;overflow-wrap:anywhere}
.up-foot{display:flex;justify-content:space-between;align-items:center;gap:6px 12px;flex-wrap:wrap}
.up-foot p{margin:0;flex:1 1 260px}
.up-next.done .row{margin-top:2px}
.rank-row.k-warm .rank-tag{background:#F6E7C1;color:#5E4306}
.rank-row.k-warm .rank-who>.small{overflow-wrap:anywhere}
.rank-more{width:100%;margin:2px 0 6px}

/* One person, one contact (Nov 10, 2026): possible duplicates and merging. */
.lead .who .dup-tag{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:999px;background:#fff1d6;color:#7a4a00;font-size:11.5px;font-weight:700}
.dup-note{font-weight:600}
.dup-box{border-left:4px solid #c98a1b;padding-left:14px}
.dup-row+.dup-row{margin-top:10px;padding-top:10px;border-top:1px solid var(--line, #d9d2bf)}
.dup-row p{margin:0 0 8px}
.merged-list{list-style:none;margin:0 0 10px;padding:0}
.merged-list li{padding:6px 0;border-bottom:1px solid var(--line, #d9d2bf)}
.coach-ask{margin-top:10px}
