/* Student card: the editorial ledger. One header line, a two-row contact ledger, one facts line, one quiet follow-up. */
/* Loads after ui/student-profile.css and is the single source of truth for the card face, the list-view ledger and the profile dialog ledger. */

/* State tokens: defined once per theme, consumed by cells, chips and the card accent. */
body.balanced-blue.minimal-calm{
  --card-red:#dc2626;--card-red-fill:#fef3f2;
  --card-amber:#854d0e;--card-amber-fill:#fef9c3;--card-amber-bar:#eab308;
  --card-green:#067647;--card-green-fill:#ecfdf3;
  --card-hair:var(--line);
}
body.balanced-blue.minimal-calm.theme-dark{
  --card-red:#f97066;--card-red-fill:#3b1a1a;
  --card-amber:#fdb022;--card-amber-fill:#3a2a12;--card-amber-bar:#f79009;
  --card-green:#75e0a7;--card-green-fill:#14342a;
}

/* Card shell: a flush row inside the column, hairline between rows, no tile framing. */
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple{position:relative;display:grid;gap:10px;width:100%;min-height:0;margin:0;padding:12px 14px 13px;box-sizing:border-box;border:0;border-bottom:1px solid var(--card-hair);border-radius:0;background:var(--surface);box-shadow:none;color:var(--ink);font-size:12px;line-height:1.45;text-align:left;cursor:pointer;user-select:none;transition:background-color 120ms ease}
body.balanced-blue.minimal-calm .ful-student-card-wrap:last-child .ful-student-card.ful-student-card-simple{border-bottom:0}
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple:hover{background:var(--soft)}
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:8px}
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple[draggable="true"]{cursor:grab}
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple[aria-busy="true"]{opacity:.55;cursor:progress}
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple[aria-busy="true"] :is(a,button){pointer-events:none}
body.balanced-blue.minimal-calm .ful-student-card-simple .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Card-level accent: a 3px inset bar on the left edge. It lives on the card, never on the cells. */
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple[data-card-accent="overdue"]{box-shadow:inset 3px 0 0 var(--card-red)}
body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple[data-card-accent="renewal"]{box-shadow:inset 3px 0 0 var(--card-amber-bar)}

/* 1. Header: avatar and name left, earnings right, one line. */
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-person{flex:1 1 auto;min-width:0;gap:8px;width:auto;padding:0}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-avatar{width:26px;height:26px;font-size:9px;border:1px solid var(--line);background:var(--soft);color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-identity{min-width:0}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-name-line{flex-wrap:nowrap;gap:6px;line-height:1.3;min-width:0}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-name-line strong{display:block;min-width:0;font-size:13px;font-weight:600;line-height:1.3;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head :is(.ful-username,.ful-channel,.ful-person-sub){display:none}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-student-chat{position:static;width:22px;height:22px;flex:0 0 auto}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-head .ful-student-chat svg{width:14px;height:14px}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-earnings{display:block;flex:0 0 auto;margin:0;padding:0;font-size:14px;font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
body.balanced-blue.minimal-calm .ful-student-card-simple .ful-card-earnings>small{margin-left:1px;font-size:11px;font-weight:400;letter-spacing:0;color:var(--secondary)}

/* 2. Ledger: table.student-contact-table, shared by the card, the list view and the profile dialog. */
body.balanced-blue.minimal-calm table.student-contact-table{width:100%;margin:0;table-layout:fixed;border-collapse:collapse;border-spacing:0;border:0;border-radius:0;overflow:visible;background:transparent;font-size:12px;line-height:1.4;color:var(--ink);font-variant-numeric:tabular-nums}
body.balanced-blue.minimal-calm table.student-contact-table :is(th,td){height:auto;min-height:0;padding:5px 0 5px 6px;border:0;background:transparent;font-size:12px;font-weight:400;line-height:1.4;letter-spacing:0;text-transform:none;text-align:right;vertical-align:baseline;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
body.balanced-blue.minimal-calm table.student-contact-table th:first-child{width:26%;padding-left:0;padding-right:8px;text-align:left;font-weight:500;color:var(--secondary)}
body.balanced-blue.minimal-calm table.student-contact-table thead th{padding-top:0;padding-bottom:4px;font-size:11px;font-weight:500;color:var(--secondary);box-shadow:none}
/* Hairlines are drawn with box-shadow so a global td border reset cannot erase them. */
body.balanced-blue.minimal-calm table.student-contact-table tbody :is(th,td){background:transparent;box-shadow:inset 0 1px 0 var(--card-hair)}
body.balanced-blue.minimal-calm table.student-contact-table tbody tr:hover :is(th,td){background:transparent}
/* Dark mode: balanced-blue paints every th with --soft at 0,4,0 specificity; the ledger stays flush with the card. */
body.balanced-blue.minimal-calm.theme-dark table.student-contact-table :is(th,td){background:transparent;color:var(--ink)}
body.balanced-blue.minimal-calm.theme-dark table.student-contact-table :is(thead th,th:first-child){color:var(--secondary)}
/* An unavailable cell needs room for its retry action: that one cell wraps instead of truncating. */
body.balanced-blue.minimal-calm table.student-contact-table td:has(.is-error){white-space:normal;overflow:visible}
body.balanced-blue.minimal-calm table.student-contact-table td:has(.is-error) :is(.ful-discord-contacts,.dc-cell,.ful-checkin-empty){display:inline;white-space:normal;overflow:visible;line-height:1.35}
body.balanced-blue.minimal-calm table.student-contact-table .ful-discord-contacts{display:block;margin:0;padding:0;border:0;border-radius:0;width:auto;font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;overflow:hidden;text-overflow:ellipsis}

/* Cell values: colour and weight carry the state. Two value contracts: .dc-cell.is-* (discord) and .ful-contact-cell[data-contact-state] (call cells and sample cells). */
body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty,.ful-contact-cell){display:inline-block;max-width:100%;margin:0;padding:0;vertical-align:baseline;font-size:12px;font-weight:500;line-height:1.4;letter-spacing:0;color:var(--ink);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;border-radius:4px;background:transparent;transition:color 120ms ease}
body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-checkin-date) :is(strong,time){font:inherit;color:inherit}
body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-checkin-date) time{display:none}
body.balanced-blue.minimal-calm table.student-contact-table .ful-checkin-empty{font-weight:400;color:var(--secondary)}
body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty,.ful-contact-cell):is([data-contact-state="unavailable"],[data-contact-state="loading"],.is-muted,.is-loading,.is-error,.ful-contact-muted){font-weight:400;color:var(--secondary)}
/* Overdue: bright red, weight 600, a light wash inset 6px into the data column so it sits flush and is never clipped. */
body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty,.ful-contact-cell):is([data-contact-state="overdue"],[data-contact-state="none"],.is-overdue,.ful-contact-overdue){margin-left:-6px;padding:0 6px;font-weight:600;color:var(--card-red);background:var(--card-red-fill)}
body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-contact-cell):is([data-contact-state="loading"],.is-loading){letter-spacing:.08em;opacity:.7}
@media (prefers-reduced-motion:no-preference){
  body.balanced-blue.minimal-calm table.student-contact-table :is(.dc-cell,.ful-contact-cell):is([data-contact-state="loading"],.is-loading){opacity:1;animation:ful-cell-pulse 1.4s ease-in-out infinite}
  @keyframes ful-cell-pulse{0%,100%{opacity:1}50%{opacity:.4}}
}
/* Links: quiet at rest, underline on hover, accent ring on keyboard focus. Overdue links stay red. */
body.balanced-blue.minimal-calm table.student-contact-table :is(a.dc-cell,a.ful-checkin-date,.dc-cell a){color:inherit;font:inherit;text-decoration:none;cursor:pointer}
body.balanced-blue.minimal-calm table.student-contact-table :is(a.dc-cell,a.ful-checkin-date,.dc-cell a):hover{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
body.balanced-blue.minimal-calm table.student-contact-table :is(a.dc-cell,a.ful-checkin-date,.dc-cell a):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
/* Retry: a tiny text button after 'unavailable'. */
body.balanced-blue.minimal-calm table.student-contact-table [data-contact-refresh]{margin:0 0 0 4px;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;font-size:11px;font-weight:400;color:var(--secondary);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body.balanced-blue.minimal-calm table.student-contact-table [data-contact-refresh]:hover{color:var(--ink)}
body.balanced-blue.minimal-calm table.student-contact-table [data-contact-refresh]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}

/* 3. Facts: payment and program as two tonal chips on one wrapping line. */
body.balanced-blue.minimal-calm .ful-card-facts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0;padding:0;border:0;background:transparent;font-size:11px;line-height:1.4;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-facts>.ful-fact{position:relative;display:inline-flex;align-items:center;max-width:100%;min-height:20px;margin:0;padding:1px 7px;border:0;border-radius:5px;background:var(--soft);color:var(--secondary);font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
body.balanced-blue.minimal-calm .ful-card-facts>.ful-fact>small{display:none}
body.balanced-blue.minimal-calm .ful-card-facts>.ful-fact[data-tone="green"]{color:var(--card-green);background:var(--card-green-fill)}
body.balanced-blue.minimal-calm .ful-card-facts>.ful-fact:is([data-tone="red"],[data-tone="ended"],.ful-program-ended){color:var(--card-red);background:var(--card-red-fill)}
body.balanced-blue.minimal-calm .ful-card-facts>.ful-fact:is([data-tone="amber"],[data-tone="renewal"],.ful-program-ending:not(.ful-program-ended)){color:var(--card-amber);background:var(--card-amber-fill)}

/* 4. Follow-up: quiet, two lines max, no label. */
body.balanced-blue.minimal-calm .ful-card-followup{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;padding:0;border:0;border-radius:0;background:transparent;font-size:12px;font-weight:400;line-height:1.45;color:var(--secondary);overflow:hidden;overflow-wrap:anywhere}
body.balanced-blue.minimal-calm .ful-card-followup[data-empty="true"]{opacity:.7}

/* List view: the same ledger and chips inside a data table cell. */
body.balanced-blue.minimal-calm .data-table td table.student-contact-table{min-width:220px;max-width:300px}
body.balanced-blue.minimal-calm .data-table td:has(>table.student-contact-table){padding-block:8px;vertical-align:middle}
body.balanced-blue.minimal-calm .data-table td .ful-card-facts{flex-direction:column;align-items:flex-start;gap:4px}

/* Profile dialog: same ledger, one size up, with a little more air. */
body.balanced-blue.minimal-calm .student-profile-contact table.student-contact-table{margin:0}
body.balanced-blue.minimal-calm .student-profile-contact table.student-contact-table :is(th,td){padding-top:7px;padding-bottom:7px;font-size:13px}
body.balanced-blue.minimal-calm .student-profile-contact table.student-contact-table thead th{padding-top:0;padding-bottom:6px;font-size:12px}
body.balanced-blue.minimal-calm .student-profile-contact table.student-contact-table :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty){font-size:13px}
body.balanced-blue.minimal-calm .student-profile-contact table.student-contact-table th:first-child{width:30%}
body.balanced-blue.minimal-calm .student-profile-contact .ful-discord-contacts{text-align:inherit}

/* Board columns for the two new stages read as quieter groups. */
body.balanced-blue.minimal-calm .ful-stage:is([data-pipeline-stage="program_paused"],[data-pipeline-stage="program_ended"])>header h3{color:var(--secondary);font-weight:500}
body.balanced-blue.minimal-calm .ful-stage[data-pipeline-stage="program_ended"]>header{background:var(--surface)}

/* Toolbar: the note pulses (aria-busy) while it reads 'checking discord for N students'. */
body.balanced-blue.minimal-calm .ful-pipeline-toolbar .ful-toolbar-note{font-size:12px;color:var(--secondary);font-variant-numeric:tabular-nums}
body.balanced-blue.minimal-calm .ful-pipeline-toolbar .ful-toolbar-note[aria-busy="true"]{color:var(--secondary)}
@media (prefers-reduced-motion:no-preference){
  body.balanced-blue.minimal-calm .ful-pipeline-toolbar .ful-toolbar-note[aria-busy="true"]{animation:ful-note-pulse 1.6s ease-in-out infinite}
  @keyframes ful-note-pulse{0%,100%{opacity:1}50%{opacity:.55}}
}

/* Toolbar message: '{name} removed from program' with an undo action. */
body.balanced-blue.minimal-calm .page-success .ful-notice{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 14px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--ink);font-size:13px;line-height:1.5}
body.balanced-blue.minimal-calm .page-success .ful-notice>span{min-width:0;overflow-wrap:anywhere}
body.balanced-blue.minimal-calm .page-success .ful-notice :is(.ful-link,button){margin:0;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;font-size:13px;font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body.balanced-blue.minimal-calm .page-success .ful-notice :is(.ful-link,button):hover{color:var(--accent)}
body.balanced-blue.minimal-calm .page-success .ful-notice :is(.ful-link,button):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}

/* Remove from program: section.student-remove-program is emitted by both the live profile and the sample drawer, so every rule hangs off that wrapper. */
body.balanced-blue.minimal-calm .student-remove-program{margin:8px 0 0;padding:16px 0 0;border-top:1px solid var(--line);font-size:13px;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-profile .student-remove-program{margin-top:12px}
/* The trigger: a quiet underlined link that turns red on hover. */
body.balanced-blue.minimal-calm .student-remove-program .student-remove-link{display:inline-block;margin:0;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;font-size:13px;font-weight:400;color:var(--secondary);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-link:hover{color:var(--card-red)}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-link:disabled{opacity:.5;cursor:default;text-decoration:none}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-link[hidden]{display:none}
/* The inline confirm panel. */
body.balanced-blue.minimal-calm .student-remove-program .student-remove-confirm{display:grid;gap:10px;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--ink);font-size:13px;line-height:1.5}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-confirm[hidden]{display:none}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-confirm p{margin:0;color:var(--ink);overflow-wrap:anywhere}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-actions .btn{min-height:32px;padding:5px 12px;font-size:13px}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-actions .btn.btn-danger{color:var(--card-red);border-color:var(--card-red);background:var(--surface);box-shadow:none}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-actions .btn.btn-danger:hover:not(:disabled){color:#fff;background:var(--card-red);border-color:var(--card-red)}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-actions .btn.btn-danger:focus-visible{outline:2px solid var(--card-red);outline-offset:2px}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-actions .btn:disabled{opacity:.5;cursor:progress}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-error{margin:0;font-size:13px;color:var(--card-red)}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-error:is([hidden],:empty){display:none}
/* After a removal that could not close the dialog: one quiet status line replaces the link and the panel. */
body.balanced-blue.minimal-calm .student-remove-program .student-remove-status{margin:0;font-size:13px;color:var(--ink)}
body.balanced-blue.minimal-calm .student-remove-program .student-remove-status:is([hidden],:empty){display:none}
body.balanced-blue.minimal-calm.theme-dark .student-remove-program .student-remove-actions .btn.btn-danger:hover:not(:disabled){color:#1c1c20}

/* Narrow columns (260px stages under 640px): tighter gutters, same structure. */
@media (max-width:640px){
  body.balanced-blue.minimal-calm .ful-stage{flex-basis:260px}
  body.balanced-blue.minimal-calm .ful-student-card.ful-student-card-simple{padding:11px 12px 12px;gap:9px}
  body.balanced-blue.minimal-calm table.student-contact-table th:first-child{width:24%}
  body.balanced-blue.minimal-calm .student-profile-contact table.student-contact-table th:first-child{width:26%}
}

/* 5. Client-success record (2026-09-25): a "tapped in" line under the name, then fixed label/value rows
   (discord, calls, fathom check, next call, wins, deals, forms) so every card scans in the same order. */
body.balanced-blue.minimal-calm .ful-student-card.ful-card-crm{gap:8px}
body.balanced-blue.minimal-calm .ful-card-crm .ful-card-head{align-items:flex-start}
body.balanced-blue.minimal-calm .ful-card-touch{display:flex;align-items:baseline;gap:6px;min-width:0;min-height:0;margin:-6px 0 0 34px;font-size:12px;line-height:1.35;color:var(--secondary);white-space:nowrap}
body.balanced-blue.minimal-calm .ful-card-touch strong{flex:0 0 auto;font-weight:600;color:var(--ink)}
body.balanced-blue.minimal-calm .ful-card-touch span{min-width:0;overflow:hidden;text-overflow:ellipsis}
body.balanced-blue.minimal-calm .ful-card-touch[data-tone="amber"] strong{color:var(--card-amber)}
body.balanced-blue.minimal-calm .ful-card-touch[data-tone="red"] strong{color:var(--card-red)}
body.balanced-blue.minimal-calm .ful-card-touch[data-tone="muted"] strong{font-weight:400;color:var(--secondary)}

body.balanced-blue.minimal-calm .ful-card-fields{display:grid;margin:0;padding:0;font-variant-numeric:tabular-nums}
body.balanced-blue.minimal-calm .ful-card-field{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;column-gap:8px;min-height:23px;margin:0;padding:1px 0;box-shadow:inset 0 1px 0 var(--card-hair)}
body.balanced-blue.minimal-calm .ful-card-field dt{margin:0;font-size:11px;font-weight:500;line-height:1.3;color:var(--secondary);white-space:nowrap}
body.balanced-blue.minimal-calm .ful-card-field dd{display:flex;align-items:center;gap:5px;min-width:0;margin:0;font-size:12px;line-height:1.4;overflow:hidden}
body.balanced-blue.minimal-calm .ful-card-value{min-width:0;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.balanced-blue.minimal-calm .ful-card-value[data-tone="green"]{color:var(--card-green)}
body.balanced-blue.minimal-calm .ful-card-value[data-tone="amber"]{color:var(--card-amber);font-weight:600}
body.balanced-blue.minimal-calm .ful-card-value[data-tone="red"]{color:var(--card-red);font-weight:600}
body.balanced-blue.minimal-calm .ful-card-value[data-tone="muted"]{font-weight:400;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-sep{flex:0 0 auto;color:var(--secondary)}

/* Coach pairs: "sam 2d ago   olly 9d ago" on one line, each date keeps its own red state. */
body.balanced-blue.minimal-calm .ful-coach-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px;width:100%;min-width:0}
body.balanced-blue.minimal-calm .ful-coach{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap}
body.balanced-blue.minimal-calm .ful-coach-name{flex:0 0 auto;font-size:11px;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-coach .ful-discord-contacts{display:inline-flex;align-items:center;min-width:0;margin:0;padding:0;border:0;font-size:inherit;line-height:inherit;color:inherit;overflow:hidden;text-overflow:ellipsis}
body.balanced-blue.minimal-calm .ful-coach :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty,.ful-contact-cell){display:inline-block;max-width:100%;margin:0;padding:0;vertical-align:baseline;font-size:12px;font-weight:500;line-height:1.4;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px;background:transparent}
body.balanced-blue.minimal-calm .ful-coach :is(.dc-cell,.ful-checkin-date) :is(strong,time){font:inherit;color:inherit}
body.balanced-blue.minimal-calm .ful-coach :is(.dc-cell,.ful-checkin-date) time{display:none}
body.balanced-blue.minimal-calm .ful-coach :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty,.ful-contact-cell):is([data-contact-state="unavailable"],[data-contact-state="loading"],.is-muted,.is-loading,.is-error,.ful-contact-muted){font-weight:400;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-coach :is(.dc-cell,.ful-checkin-date,.ful-checkin-empty,.ful-contact-cell):is([data-contact-state="overdue"],[data-contact-state="none"],.is-overdue,.ful-contact-overdue){padding:0 5px;font-weight:600;color:var(--card-red);background:var(--card-red-fill)}
body.balanced-blue.minimal-calm .ful-coach :is(a.dc-cell,a.ful-checkin-date,.dc-cell a){color:inherit;font:inherit;text-decoration:none}
body.balanced-blue.minimal-calm .ful-coach :is(a.dc-cell,a.ful-checkin-date,.dc-cell a):hover{text-decoration:underline;text-underline-offset:3px}
body.balanced-blue.minimal-calm .ful-coach :is(a.dc-cell,a.ful-checkin-date,.dc-cell a):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
body.balanced-blue.minimal-calm .ful-coach [data-contact-refresh]{margin:0 0 0 4px;padding:0;min-height:0;border:0;background:none;font:inherit;font-size:11px;color:var(--secondary);text-decoration:underline;cursor:pointer}

/* Row actions: quiet outlined text buttons that float over the right edge of the row while the card is hovered
   or focused, so values keep the full width. Touch screens always show them. */
body.balanced-blue.minimal-calm .ful-card-action{position:absolute;top:50%;right:0;z-index:1;opacity:0;pointer-events:none;transform:translateY(-50%);box-shadow:-12px 0 8px -2px var(--soft)!important;display:inline-flex;align-items:center;justify-content:center;min-height:22px;margin:0;padding:0 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:none;font:inherit;font-size:11px;font-weight:500;line-height:1;color:var(--secondary);white-space:nowrap;cursor:pointer;transition:color 120ms ease,border-color 120ms ease,background-color 120ms ease}
body.balanced-blue.minimal-calm .ful-card-action:hover{color:var(--ink);border-color:var(--secondary);background:var(--soft)}
body.balanced-blue.minimal-calm .ful-card-action:active{transform:translateY(calc(-50% + 1px))}
body.balanced-blue.minimal-calm .ful-student-card:is(:hover,:focus-within) .ful-card-action,body.balanced-blue.minimal-calm .ful-card-action:focus-visible{opacity:1;pointer-events:auto}
@media (hover:none){
  body.balanced-blue.minimal-calm .ful-card-field{grid-template-columns:52px minmax(0,1fr) auto}
  body.balanced-blue.minimal-calm .ful-card-action{position:static;opacity:1;pointer-events:auto;transform:none;box-shadow:none!important}
  body.balanced-blue.minimal-calm .ful-card-action:active{transform:translateY(1px)}
}
body.balanced-blue.minimal-calm .ful-card-action:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
body.balanced-blue.minimal-calm .ful-card-field[data-field="next"][data-tone="red"] .ful-card-action{color:var(--card-red);border-color:var(--card-red)}

/* Deals: brand chips. Filled = posting now, outlined = placed but not posting yet. */
body.balanced-blue.minimal-calm .ful-card-deals{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden}
body.balanced-blue.minimal-calm .ful-card-deal{display:inline-flex;align-items:center;gap:4px;min-width:0;flex:0 1 auto;height:20px;padding:0 7px 0 2px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:500;color:var(--ink);white-space:nowrap}
body.balanced-blue.minimal-calm .ful-card-deal[data-deal-kind="placed"]{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-deal .ful-deal-logo{width:16px;height:16px;flex:0 0 16px;border-radius:999px;font-size:9px;font-weight:600;background:var(--surface)}
body.balanced-blue.minimal-calm .ful-card-deal .ful-deal-logo img{width:16px;height:16px}
body.balanced-blue.minimal-calm .ful-card-deal-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
body.balanced-blue.minimal-calm .ful-card-deal-more{flex:0 0 auto;font-size:11px;font-weight:500;color:var(--secondary)}

/* List view: the same record as table columns. */
body.balanced-blue.minimal-calm .ful-csm-table{max-width:100%;overflow-x:auto}
body.balanced-blue.minimal-calm .ful-csm-table .data-table td{vertical-align:middle}
body.balanced-blue.minimal-calm .ful-csm-table .ful-csm-earnings{display:block;margin-top:2px;font-size:12px;color:var(--secondary);font-variant-numeric:tabular-nums}
body.balanced-blue.minimal-calm .ful-csm-table .ful-card-touch{margin:0;flex-direction:column;gap:0;white-space:nowrap}
body.balanced-blue.minimal-calm .ful-csm-table .ful-card-value{display:inline-block;max-width:220px}
body.balanced-blue.minimal-calm .ful-csm-table .ful-card-deals{max-width:240px;flex-wrap:wrap}

/* Deal picker drawer. */
body.balanced-blue.minimal-calm .deal-picker{display:grid;gap:12px}
body.balanced-blue.minimal-calm .deal-picker-status{margin:0;font-size:13px;color:var(--secondary)}
body.balanced-blue.minimal-calm .deal-picker-status:empty{display:none}
body.balanced-blue.minimal-calm .deal-picker-status[data-state="error"]{color:var(--card-red)}
body.balanced-blue.minimal-calm .deal-picker-list{display:grid;margin:0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .deal-picker-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:52px;padding:8px 0;box-shadow:inset 0 -1px 0 var(--line)}
body.balanced-blue.minimal-calm .deal-picker-row .ful-deal-logo{width:28px;height:28px;flex-basis:28px;border-radius:7px}
body.balanced-blue.minimal-calm .deal-picker-row .ful-deal-logo img{width:28px;height:28px}
body.balanced-blue.minimal-calm .deal-picker-info{display:grid;gap:1px;min-width:0}
body.balanced-blue.minimal-calm .deal-picker-info strong{font-size:14px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.balanced-blue.minimal-calm .deal-picker-info span{font-size:12px;color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.balanced-blue.minimal-calm .deal-picker-count{font-size:12px;color:var(--secondary);font-variant-numeric:tabular-nums;white-space:nowrap}
body.balanced-blue.minimal-calm .deal-picker-row .btn{min-height:32px;padding:5px 14px;font-size:13px}
body.balanced-blue.minimal-calm .deal-picker-on{font-size:12px;font-weight:600;color:var(--card-green);white-space:nowrap}
body.balanced-blue.minimal-calm .deal-picker-retry{padding:8px 0}
@media (max-width:520px){
  body.balanced-blue.minimal-calm .deal-picker-row{grid-template-columns:28px minmax(0,1fr) auto}
  body.balanced-blue.minimal-calm .deal-picker-count{display:none}
}

/* Profile: client-success summary (tapped in, next call, wins, forms) and the calendly vs fathom check. */
body.balanced-blue.minimal-calm .student-profile .student-csm{display:grid;gap:18px;padding:18px 0;border-top:1px solid var(--line)}
body.balanced-blue.minimal-calm .student-csm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
body.balanced-blue.minimal-calm .student-csm-item{display:grid;align-content:start;gap:4px;min-width:0}
body.balanced-blue.minimal-calm .student-csm-label{font-size:12px;font-weight:500;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-csm-value{display:grid;gap:2px;min-width:0;font-size:14px;line-height:1.35}
body.balanced-blue.minimal-calm .student-csm-value .ful-card-value{font-size:15px;font-weight:600;white-space:normal}
body.balanced-blue.minimal-calm .student-csm-via{font-size:12px;color:var(--secondary);overflow-wrap:anywhere}
body.balanced-blue.minimal-calm .student-csm-item .btn{justify-self:start;min-height:30px;margin-top:4px;padding:4px 11px;font-size:12px}
body.balanced-blue.minimal-calm .student-csm-audit h3{margin:0 0 8px!important;font-size:13px;font-weight:600}
body.balanced-blue.minimal-calm .student-csm-checks{display:grid;margin:0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .student-csm-checks li{display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:34px;box-shadow:inset 0 -1px 0 var(--card-hair);font-size:13px}
body.balanced-blue.minimal-calm .student-csm-when{font-variant-numeric:tabular-nums;color:var(--ink)}
body.balanced-blue.minimal-calm .student-csm-event{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-csm-checks a{text-decoration:none}
body.balanced-blue.minimal-calm .student-csm-checks a:hover .ful-card-value{text-decoration:underline;text-underline-offset:3px}
@media (max-width:720px){
  body.balanced-blue.minimal-calm .student-csm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.balanced-blue.minimal-calm .student-csm-checks li{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:6px 0}
  body.balanced-blue.minimal-calm .student-csm-event{grid-column:1;grid-row:2}
}

/* Profile deals: heading with the place button; placed-but-not-posting brands carry a tag. */
body.balanced-blue.minimal-calm .student-profile .ful-current-deals-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
body.balanced-blue.minimal-calm .student-profile .ful-current-deals-head h3{margin:0!important}
body.balanced-blue.minimal-calm .student-profile .ful-current-deals-head .btn{min-height:30px;padding:4px 11px;font-size:12px}
body.balanced-blue.minimal-calm .student-profile .ful-current-deals li>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}
body.balanced-blue.minimal-calm .ful-current-deals li[data-deal-kind="placed"]>span:nth-child(2){color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-deal-tag{flex:0 0 auto;padding:1px 6px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);font-size:11px!important;font-weight:500;color:var(--secondary)!important}

/* Board notice: sam's fathom calls that match no student, and the drawer that lists them. */
body.balanced-blue.minimal-calm .ful-unlinked-notice{border-color:var(--card-amber-bar)!important;background:var(--card-amber-fill)!important}
body.balanced-blue.minimal-calm .ful-unlinked-list{display:grid;margin:12px 0 0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .ful-unlinked-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;box-shadow:inset 0 -1px 0 var(--line)}
body.balanced-blue.minimal-calm .ful-unlinked-list li>div{display:grid;gap:2px;min-width:0}
body.balanced-blue.minimal-calm .ful-unlinked-list strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.balanced-blue.minimal-calm .ful-unlinked-list span{font-size:12px;color:var(--secondary)}
/* Unanswered main chat questions: the question itself is the thing to read, so it wraps at body size. */
body.balanced-blue.minimal-calm .ful-questions-list li>div>span{font-size:13px;line-height:1.45;color:var(--ink);white-space:normal;overflow-wrap:anywhere}

/* Client-success eods: one row per day, the eod on the left, the records on the right, misses on top. */
body.balanced-blue.minimal-calm .eod-intro{margin:0 0 14px;font-size:13px;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-intro .ful-link{margin-left:4px}
body.balanced-blue.minimal-calm .eod-view{display:grid;gap:12px}
body.balanced-blue.minimal-calm .eod-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:6px}
body.balanced-blue.minimal-calm .eod-stat{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
body.balanced-blue.minimal-calm .eod-stat span{font-size:12px;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-stat strong{font-size:22px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}
body.balanced-blue.minimal-calm .eod-stat[data-tone="red"] strong{color:var(--card-red)}
body.balanced-blue.minimal-calm .eod-stat[data-tone="amber"] strong{color:var(--card-amber)}
body.balanced-blue.minimal-calm .eod-day{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
body.balanced-blue.minimal-calm .eod-day[data-state="missed"]{box-shadow:inset 3px 0 0 var(--card-red)}
body.balanced-blue.minimal-calm .eod-day-head{display:flex;align-items:center;gap:10px}
body.balanced-blue.minimal-calm .eod-day-head h3{margin:0;font-size:14px;font-weight:600}
body.balanced-blue.minimal-calm .eod-chip{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:600;color:var(--secondary);white-space:nowrap}
body.balanced-blue.minimal-calm .eod-chip[data-tone="green"]{color:var(--card-green);background:var(--card-green-fill)}
body.balanced-blue.minimal-calm .eod-chip[data-tone="blue"]{color:var(--accent);background:var(--soft)}
body.balanced-blue.minimal-calm .eod-chip[data-tone="red"]{color:var(--card-red);background:var(--card-red-fill)}
body.balanced-blue.minimal-calm .eod-chip[data-tone="amber"]{color:var(--card-amber);background:var(--card-amber-fill)}
body.balanced-blue.minimal-calm .eod-chip[data-tone="muted"]{font-weight:500}
body.balanced-blue.minimal-calm .eod-missed{display:grid;gap:4px;margin:0;padding:10px 12px;border-radius:8px;background:var(--card-red-fill);list-style:none}
body.balanced-blue.minimal-calm .eod-missed li{font-size:13px;font-weight:500;color:var(--card-red)}
body.balanced-blue.minimal-calm .eod-missed li::before{content:"· ";font-weight:700}
body.balanced-blue.minimal-calm .eod-day-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px}
body.balanced-blue.minimal-calm .eod-reports{display:grid;gap:12px;align-content:start}
body.balanced-blue.minimal-calm .eod-person header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
body.balanced-blue.minimal-calm .eod-person header strong{font-size:13px}
body.balanced-blue.minimal-calm .eod-fields{display:grid;gap:6px;margin:0}
body.balanced-blue.minimal-calm .eod-fields div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px}
body.balanced-blue.minimal-calm .eod-fields dt{font-size:12px;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-fields dd{margin:0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
body.balanced-blue.minimal-calm .eod-empty{margin:0;font-size:13px;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-legacy{margin:6px 0 0;font-size:13px;overflow-wrap:anywhere}
body.balanced-blue.minimal-calm .eod-actuals{display:grid;gap:4px;align-content:start;padding-left:20px;box-shadow:inset 1px 0 0 var(--line)}
body.balanced-blue.minimal-calm .eod-actuals h4{margin:0 0 2px;font-size:12px;font-weight:500;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-actuals p{margin:0;font-size:13px}
body.balanced-blue.minimal-calm .eod-calls{display:grid;margin:6px 0 0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .eod-calls li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:28px;box-shadow:inset 0 -1px 0 var(--card-hair);font-size:12px}
body.balanced-blue.minimal-calm .eod-call-time{font-variant-numeric:tabular-nums;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-call-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.balanced-blue.minimal-calm .eod-calls a{text-decoration:none}
@media (max-width:760px){
  body.balanced-blue.minimal-calm .eod-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.balanced-blue.minimal-calm .eod-day-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  body.balanced-blue.minimal-calm .eod-actuals{padding:12px 0 0;box-shadow:inset 0 1px 0 var(--line)}
}
/* Eod filing: a quiet link beside each teammate's status and the form in the drawer. */
body.balanced-blue.minimal-calm .eod-person header .eod-file{margin-left:auto;padding:0;min-height:0;border:0;background:none;font:inherit;font-size:12px;font-weight:500;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body.balanced-blue.minimal-calm .eod-person header .eod-file:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
/* Client success eod checklist, read back on the eods tab (the form itself is the #eod page, ui/eod-form.css). */
body.balanced-blue.minimal-calm .eod-checklist{display:grid;gap:6px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
body.balanced-blue.minimal-calm .eod-check-head{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}
body.balanced-blue.minimal-calm .eod-check-numbers{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:12px;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-check-numbers strong{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
body.balanced-blue.minimal-calm .eod-check-numbers [data-short] strong{color:var(--card-red)}
body.balanced-blue.minimal-calm .eod-check-missed{margin:0;font-size:13px;font-weight:500;color:var(--card-red)}
body.balanced-blue.minimal-calm .eod-check-all summary{width:max-content;font-size:12px;color:var(--accent);cursor:pointer}
body.balanced-blue.minimal-calm .eod-check-all ul{display:grid;gap:3px;margin:6px 0 0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .eod-check-all li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;font-size:12px;line-height:1.45}
body.balanced-blue.minimal-calm .eod-check-all li span{font-weight:600;color:var(--secondary)}
body.balanced-blue.minimal-calm .eod-check-all li[data-answer="done"] span{color:var(--card-green)}
body.balanced-blue.minimal-calm .eod-check-all li[data-answer="missed"] span{color:var(--card-red)}

/* 2026-09-25 lean card: three lines only. Name + earnings, when we last tapped in, the one next thing.
   Money shows only when it needs attention. Everything else lives in the profile. */
body.balanced-blue.minimal-calm .ful-student-card.ful-card-lean{gap:4px;padding:12px 14px}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-head{align-items:center}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch{margin:0 0 0 34px;min-height:0;font-size:12px;font-weight:500;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch[data-tone="amber"]{color:var(--card-amber)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch[data-tone="red"]{color:var(--card-red)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-next{margin:2px 0 0 34px;min-height:0;font-size:13px;font-weight:600;line-height:1.35;color:var(--ink)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-next[data-tone="red"]{color:var(--card-red)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-next[data-tone="amber"]{color:var(--card-amber)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-next[data-tone="muted"]{font-weight:500;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-money{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 0 34px;min-height:0}
body.balanced-blue.minimal-calm .ful-card-chip{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:5px;background:var(--soft);font-size:11px;font-weight:600;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-chip[data-tone="red"]{color:var(--card-red);background:var(--card-red-fill)}
body.balanced-blue.minimal-calm .ful-card-chip[data-tone="amber"]{color:var(--card-amber);background:var(--card-amber-fill)}
body.balanced-blue.minimal-calm .chat-context-actions{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 14px}
body.balanced-blue.minimal-calm .chat-context-actions .btn{min-height:30px;padding:4px 10px;font-size:12px}

/* Every lean card is the same height: one line each, the money line always reserved. */
body.balanced-blue.minimal-calm .ful-card-lean :is(.ful-card-touch,.ful-card-next){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-money{flex-wrap:nowrap;height:20px;min-height:20px;overflow:hidden}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-money .ful-card-chip{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Cleaner pipeline cards (2026-09-25): same three lines, calmer. Only the next step carries color; the
   tapped-in line is quiet gray with a small dot when it needs attention; money uses the shared tag shape. */
body.balanced-blue.minimal-calm .ful-student-card.ful-card-lean{gap:5px;padding:14px 16px}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-head .ful-avatar{width:28px;height:28px;font-size:10px}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-head .ful-name-line strong{font-size:13.5px;font-weight:600}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-earnings{font-size:13.5px;font-weight:600;color:var(--ink)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-earnings>small{font-size:11.5px;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-lean :is(.ful-card-touch,.ful-card-next,.ful-card-money){margin-left:36px}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch,body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch:is([data-tone="red"],[data-tone="amber"]){display:flex;align-items:center;gap:6px;margin-top:-2px;font-size:12px;font-weight:400;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch{position:relative;overflow:visible}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch:is([data-tone="red"],[data-tone="amber"])::before{content:"";position:absolute;left:-13px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--card-red)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch[data-tone="amber"]::before{background:var(--card-amber-bar,var(--card-amber))}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-next{margin-top:3px;font-size:13px;font-weight:500}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-money{gap:6px;margin-top:6px;height:22px;min-height:22px}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-chip{--tone:var(--secondary);min-height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:500;background:color-mix(in srgb,var(--tone) 11%,var(--surface));color:color-mix(in srgb,var(--tone) 82%,var(--ink))}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-chip[data-tone="red"]{--tone:var(--tone-red,#c2413b)}
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-chip[data-tone="amber"]{--tone:var(--tone-amber,#b7791f)}
body.balanced-blue.minimal-calm.theme-dark .ful-card-lean .ful-card-chip{background:color-mix(in srgb,var(--tone) 18%,var(--surface))}
/* The red tag beside "chatted": small enough that the line keeps its height. */
body.balanced-blue.minimal-calm .ful-card-lean .ful-card-touch .ful-card-chip{flex:0 0 auto;min-height:16px;height:16px;padding:0 6px;border-radius:4px;font-size:11px;line-height:16px}

/* Pipeline cards as real cards (2026-09-26): white, rounded, apart from each other on the gray lane. */
body.balanced-blue.minimal-calm .ful-stage-body{display:flex;flex-direction:column;gap:8px;padding:2px 8px 10px;background:transparent;border:0}
body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card-wrap{display:block;margin:0;padding:0;border:0}
body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card.ful-card-lean,body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card-wrap:last-child .ful-student-card.ful-card-lean{gap:6px;padding:14px 14px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 1px 2px rgb(0 0 0 / 4%);transition:border-color 120ms ease,box-shadow 120ms ease}
/* Red students (any in-the-clear check failing): the whole card is red so they stand out, same everywhere on the board. */
body.balanced-blue.minimal-calm .ful-student-card.ful-card-lean[data-red="true"],body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card.ful-card-lean[data-red="true"],body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card-wrap:last-child .ful-student-card.ful-card-lean[data-red="true"]{border-color:color-mix(in srgb,var(--card-red) 55%,var(--line));background:color-mix(in srgb,var(--card-red) 8%,var(--surface));box-shadow:inset 4px 0 0 var(--card-red),0 1px 2px rgb(0 0 0 / 4%)}
body.balanced-blue.minimal-calm.theme-dark .ful-stage-body .ful-student-card.ful-card-lean[data-red="true"]{background:color-mix(in srgb,var(--card-red) 16%,var(--surface))}
body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card.ful-card-lean:hover{background:var(--surface);border-color:color-mix(in srgb,var(--ink) 16%,var(--line));box-shadow:var(--cc-panel-shadow)}
body.balanced-blue.minimal-calm .ful-stage-body .ful-student-card.ful-card-lean:focus-visible{border-radius:12px}
body.balanced-blue.minimal-calm .ful-stage-body .ful-card-lean .ful-card-head .ful-avatar{width:30px;height:30px;font-size:10.5px}
body.balanced-blue.minimal-calm .ful-stage-body .ful-card-lean .ful-card-head .ful-name-line strong{font-size:14px}
body.balanced-blue.minimal-calm .ful-stage-body .ful-card-lean .ful-card-earnings{font-size:14px}
body.balanced-blue.minimal-calm .ful-stage-body .ful-card-lean :is(.ful-card-touch,.ful-card-next,.ful-card-money){margin-left:38px}
body.balanced-blue.minimal-calm .ful-stage-body .ful-card-lean .ful-card-next{font-size:13.5px}
body.balanced-blue.minimal-calm .ful-stage-empty{padding:14px 6px}

/* 2026-09-25 simple student pop-up: money on one line, four tabs, one panel at a time.
   Bigger and centered, and the same height on every tab so switching never makes the window jump. */
body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple){width:min(840px,calc(100vw - 48px));max-width:calc(100vw - 48px);height:min(800px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);margin:auto}
body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple) .drawer-head{padding:22px 32px 6px}
body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple) .drawer-head h2{font-size:22px}
body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple) .drawer-body{min-height:0;padding:0 32px 28px;overflow:auto;overscroll-behavior:contain}
body.balanced-blue.minimal-calm .student-profile-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0 0 16px;font-size:14px;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-profile-summary strong{font-size:26px;font-weight:600;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
body.balanced-blue.minimal-calm .student-profile-dot{margin:0 2px}
body.balanced-blue.minimal-calm .student-profile-tabs{margin:0 0 12px}
body.balanced-blue.minimal-calm .student-profile-count{margin-left:3px;font-size:11px;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-profile-panel[hidden]{display:none!important}
body.balanced-blue.minimal-calm .student-profile-panel{padding-top:4px}
/* One row per fact: label, value, then every button in one even column on the right. */
body.balanced-blue.minimal-calm .student-csm-list{display:grid;margin:0 0 24px;padding:0;list-style:none;box-shadow:inset 0 1px 0 var(--line)}
body.balanced-blue.minimal-calm .student-csm-list .student-csm-item{display:grid;grid-template-columns:120px minmax(0,1fr) 176px;align-items:center;align-content:center;gap:16px;min-height:54px;box-shadow:inset 0 -1px 0 var(--line)}
body.balanced-blue.minimal-calm .student-csm-list .student-csm-label{font-size:13px}
body.balanced-blue.minimal-calm .student-csm-list .student-csm-value{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
body.balanced-blue.minimal-calm .student-csm-list .student-csm-value .ful-card-value{font-size:15px;font-weight:600;white-space:nowrap}
body.balanced-blue.minimal-calm .student-csm-list .student-csm-via{font-size:13px;overflow-wrap:normal}
body.balanced-blue.minimal-calm .student-csm-list .student-csm-item .btn{grid-column:3;justify-self:stretch;justify-content:center;width:100%;margin:0;text-align:center}
body.balanced-blue.minimal-calm #drawer .student-profile-simple .student-action-area textarea.input{min-height:76px}
body.balanced-blue.minimal-calm .student-profile-simple [data-profile-panel="calls"] .student-profile-section+.student-profile-section{margin-top:22px}
body.balanced-blue.minimal-calm .student-profile-simple [data-profile-panel="deals"] .ful-current-deals{margin:0}
/* Narrow screens: label on top, then the value (wraps, never cut) beside an even button column; a row with no button uses the full width. */
@media(max-width:700px){
  body.balanced-blue.minimal-calm .student-csm-list .student-csm-item{grid-template-columns:minmax(0,1fr) 132px;gap:4px 12px;padding:10px 0}
  body.balanced-blue.minimal-calm .student-csm-list .student-csm-label{grid-column:1/-1}
  body.balanced-blue.minimal-calm .student-csm-list :is(.student-csm-value,.student-csm-value .ful-card-value){white-space:normal;overflow:visible;overflow-wrap:anywhere}
  body.balanced-blue.minimal-calm .student-csm-list .student-csm-item:not(:has(.btn)) .student-csm-value{grid-column:1/-1}
  body.balanced-blue.minimal-calm .student-csm-list .student-csm-item .btn{grid-column:2}
}
@media(max-width:560px){
  body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple){width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}
  body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple) .drawer-head{padding:16px 16px 4px}
  body.balanced-blue.minimal-calm #drawer:has(.student-profile.student-profile-simple) .drawer-body{padding:0 16px 20px}
}

/* Student pop-up › overview › last call (ui/student-call-recap.js). Same rows as the client-success list above it. */
body.balanced-blue.minimal-calm .student-call-recap{margin:0 0 24px}
body.balanced-blue.minimal-calm .student-call-recap>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}
body.balanced-blue.minimal-calm .student-call-recap>header h3{margin:0;font-size:13px;font-weight:600}
body.balanced-blue.minimal-calm .student-call-recap>header span{font-size:12px;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-call-recap>header a{color:inherit;text-decoration:underline;text-underline-offset:2px}
body.balanced-blue.minimal-calm .call-recap-summary{margin:0 0 12px;font-size:14px;line-height:1.45;color:var(--ink)}
body.balanced-blue.minimal-calm .student-csm-list.call-recap-list{margin-bottom:8px}
body.balanced-blue.minimal-calm .call-recap-list .student-csm-item{grid-template-columns:120px minmax(0,1fr);align-items:start;padding:12px 0;min-height:0}
body.balanced-blue.minimal-calm .call-recap-list .student-csm-value{font-size:14px;line-height:1.45}
body.balanced-blue.minimal-calm .call-recap-lines{display:grid;gap:6px;margin:0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .call-recap-lines li span{margin-left:8px;font-size:12px;color:var(--secondary);white-space:nowrap}
body.balanced-blue.minimal-calm .call-recap-muted{color:var(--secondary)}
body.balanced-blue.minimal-calm .call-recap-note{margin:0;font-size:12px;color:var(--secondary)}
@media (max-width:640px){body.balanced-blue.minimal-calm .call-recap-list .student-csm-item{grid-template-columns:minmax(0,1fr);gap:4px}}

/* Payments › retainer: a switch, then dollars a month and the start day. */
body.balanced-blue.minimal-calm .student-retainer{display:grid;gap:10px}
body.balanced-blue.minimal-calm .student-retainer-switch{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
body.balanced-blue.minimal-calm .student-retainer-switch input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
body.balanced-blue.minimal-calm .student-retainer-fields{display:flex;flex-wrap:wrap;gap:12px}
body.balanced-blue.minimal-calm .student-retainer-fields[hidden]{display:none}
body.balanced-blue.minimal-calm .student-retainer-fields>label{display:grid;gap:4px;font-size:12px;color:var(--secondary)}
body.balanced-blue.minimal-calm .student-retainer-money{display:flex;align-items:center;gap:4px;color:var(--ink)}
body.balanced-blue.minimal-calm .student-retainer-money .input{width:120px}
body.balanced-blue.minimal-calm .student-retainer-status{margin:0;min-height:16px;font-size:12px;color:var(--secondary)}
/* Why "ask for a win": the reason, then their wins. */
body.balanced-blue.minimal-calm .ful-wins{display:grid;gap:18px}
body.balanced-blue.minimal-calm .ful-wins-why{margin:0;font-size:14px;color:var(--ink)}
body.balanced-blue.minimal-calm .ful-wins-why[data-tone="red"]{color:var(--card-red)}
body.balanced-blue.minimal-calm .ful-wins h3{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-wins-list{display:grid;margin:0;padding:0;list-style:none}
body.balanced-blue.minimal-calm .ful-wins-list li{display:grid;gap:2px;padding:8px 0;box-shadow:inset 0 -1px 0 var(--line);font-size:13px;color:var(--ink)}
body.balanced-blue.minimal-calm .ful-wins-list strong{font-size:12px;font-weight:600;color:var(--secondary)}
body.balanced-blue.minimal-calm .ful-wins-actions{display:flex;gap:8px}
body.balanced-blue.minimal-calm .student-win-why{padding:0;border:0;background:none;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
