/* STEPS Admin dense craft - Build 12.70 */
:root{
  --cream:#f4f2ec;--paper:#fffdf8;--green:#2f4a32;--green2:#456044;--gold:#c4a35a;
  --ink:#1a221a;--muted:#6b7568;--line:#d0d6ce;--white:#fff;--soft:#e8efe6;
  --danger:#a04d43;--ok:#5a7753;--pending:#fff8e7;--unpaid:#fce8e6;--lead:#f5ede3;--msg:#eaf1f7;
  --shadow:0 8px 22px rgba(28,36,28,.05);--tap:40px;--radius:12px;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --font:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --row-h:34px;--gap:8px;
}
html.density-comfortable:root, .density-comfortable{
  --row-h:42px;--gap:12px;--tap:44px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);font-size:13px;letter-spacing:-.005em}
button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}
.mono,.qrow .meta,.qhead,.amt,.idchip,.pulse-val,.spark text{font-family:var(--mono);font-variant-numeric:tabular-nums}
#gate{min-height:100vh;display:grid;place-items:center;padding:24px}
#gateCard{width:min(520px,96vw);background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:28px}
#app{display:none;min-height:100vh}
.preview-banner{
  background:linear-gradient(90deg,#fff8e7,#f7efe0);border-bottom:2px solid var(--gold);color:#5a4a20;
  padding:8px 16px;font-size:12.5px;font-weight:650;text-align:center;line-height:1.4;z-index:100;position:sticky;top:0;
}
.preview-banner code{font-size:11px;background:rgba(0,0,0,.06);padding:1px 6px;border-radius:4px;font-family:var(--mono)}

.shell{display:grid;grid-template-columns:188px 1fr;min-height:100vh}
.preview-banner ~ #app .shell,.shell.has-banner{min-height:calc(100vh - 40px)}
.side{background:linear-gradient(180deg,#314f34 0%,var(--green) 55%,#274028 100%);color:#fff;padding:18px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}
.preview-banner ~ #app .side{top:40px;height:calc(100vh - 40px)}
.brand{font:700 26px Georgia,serif;letter-spacing:.06em}.brand span{color:var(--gold)}
.brand small{display:block;font:700 9px var(--font);letter-spacing:.18em;margin-top:5px;color:#cdd6c9}
.layouts{display:grid;gap:3px;margin-top:22px}
.layouts button{border:0;background:transparent;color:rgba(255,255,255,.88);text-align:left;padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:650;min-height:var(--tap);font-size:13px;transition:background .15s,transform .12s}
.layouts button.active,.layouts button:hover{background:rgba(255,255,255,.14);color:#fff}
.layouts button.active{box-shadow:inset 3px 0 0 var(--gold)}
.side-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);font-size:11px;color:#cdd6c9;line-height:1.5}
.main{padding:12px 16px 72px;min-width:0}
.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.top h1{margin:0;font:700 22px Georgia,serif;color:var(--green);display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.build-tag{font-size:10px;font-weight:700;color:#6a7a6a;margin-left:4px;font-family:var(--mono);background:#e8ebe6;padding:2px 7px;border-radius:999px;letter-spacing:.04em}
.top-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.btn{border:1px solid var(--green);background:var(--green);color:#fff;padding:8px 14px;min-height:var(--tap);border-radius:999px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .12s,box-shadow .12s,background .12s}
.btn:hover{box-shadow:0 4px 12px rgba(47,74,50,.18)}.btn:active{transform:translateY(1px)}
.btn.secondary{background:transparent;color:var(--green)}.btn.small{font-size:11.5px;padding:6px 10px;min-height:32px}
.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn.ghost{border-color:transparent;background:var(--soft);color:var(--green)}
/* .chrome-create retired in 12.43 — top Create uses standard .btn green */
.density-tog{font-size:11px;font-weight:700;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--green);cursor:pointer;min-height:32px}
.density-tog.on{background:var(--soft);border-color:var(--green)}

/* Today pulse */
.pulse{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:8px 10px;background:linear-gradient(180deg,#fff,#f7f9f5);border:1px solid var(--line);border-radius:10px;align-items:center}
.pulse-item{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:#fff;border:1px solid #e4e9e2;font-size:11px;color:var(--muted);cursor:pointer;transition:border-color .12s,background .12s}
.pulse-item:hover,.pulse-item.active{border-color:var(--green);background:var(--soft);color:var(--ink)}
.pulse-item .pulse-val{font-weight:800;color:var(--green);font-size:13px}
.pulse-item.warn .pulse-val{color:var(--danger)}
.pulse-item.gold .pulse-val{color:#8a6a20}
.pulse-sep{width:1px;height:18px;background:var(--line);margin:0 2px}
.pulse-label{text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:800}

.ops-stack{display:flex;flex-direction:column;gap:var(--gap)}
.ops-chrome{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;background:#e6eae3;border:1px solid #c5ccc0;border-radius:8px}
.ops-chrome-left,.ops-chrome-right{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.desk-search{min-width:180px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px}
.desk-search:focus{outline:2px solid rgba(47,74,50,.25);border-color:var(--green)}

.steps{display:flex;flex-wrap:wrap;gap:5px}
.step{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px;min-width:70px;min-height:46px;border-radius:9px;border:1px solid var(--line);background:#fff;cursor:pointer;font:inherit;text-align:left;transition:transform .12s,box-shadow .12s,border-color .12s}
.step:hover{border-color:rgba(47,74,50,.35);transform:translateY(-1px)}
.step strong{font-size:15px;color:var(--green);line-height:1.05;font-family:var(--mono)}
.step span{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.step .spark{display:block;height:14px;width:100%;margin-top:2px;opacity:.85}
.step.active{border-color:rgba(47,74,50,.55);background:var(--soft);box-shadow:0 0 0 2px rgba(47,74,50,.12)}

.toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.toolbar label{font-size:10px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.05em}
.toolbar select,.toolbar input{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:12.5px}
.banner-inline{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;background:var(--soft);border-radius:8px;font-size:11.5px}

.buckets{display:flex;flex-wrap:wrap;gap:5px;position:sticky;top:0;z-index:20;background:var(--cream);padding:4px 0;align-items:center}
.preview-banner ~ #app .buckets{top:0}
.bucket{padding:6px 11px;border-radius:6px;font-size:10.5px;font-weight:800;border:1px solid var(--line);background:#fff;color:var(--green);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .12s,border-color .12s,transform .1s}
.bucket:hover{border-color:var(--green);transform:translateY(-1px)}.bucket.drop{background:#d8f0e0;outline:2px solid var(--green)}
.bulk-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;position:sticky;top:0;z-index:25;background:#2f4a32;color:#fff;padding:7px 11px;border-radius:9px}
.bulk-bar .btn{border-color:rgba(255,255,255,.35)}
.bulk-bar .btn.secondary{color:#fff;border-color:rgba(255,255,255,.45)}

.desk-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:10px;align-items:start}
.desk-grid.with-feed{grid-template-columns:minmax(0,1fr) minmax(280px,320px) minmax(220px,260px)}
.week-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:10px;align-items:start}
.money-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:10px;align-items:start}
.fam-grid{display:grid;gap:10px}
.fam-grid-3{grid-template-columns:minmax(190px,.8fr) minmax(190px,.8fr) minmax(300px,1.4fr);display:grid;gap:10px}
.crm-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.9fr);gap:10px;align-items:start}
.crm-side{display:flex;flex-direction:column;gap:10px}
.crm-pipeline{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:7px;margin-bottom:2px}
.crm-col{padding:8px;min-height:110px}
.crm-col-list{display:grid;gap:5px;max-height:200px;overflow:auto}
.crm-col .fam-card{padding:7px;border-radius:7px}
.crm-view-tog{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.crm-view-tog button{border:0;background:#fff;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer;color:var(--muted)}
.crm-view-tog button.on{background:var(--green);color:#fff}

.card{background:var(--white);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:9px 11px}
.card h3{margin:0 0 7px;font:700 11px var(--font);color:var(--green);text-transform:uppercase;letter-spacing:.07em}
.desk-queue-card{min-height:180px}
.q-toolbar{padding:7px 10px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;background:#eef2ec}
.queue{display:block;max-height:min(66vh,760px);overflow:auto}
.qhead,.qrow{display:grid;gap:0;align-items:center;width:100%;text-align:left;font-size:11.5px}
.qhead{position:sticky;top:0;z-index:5;background:#e4ebe1;border-bottom:1px solid var(--line);font-size:9.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.qhead span{padding:7px 5px;border-right:1px solid var(--line)}
.qhead span:last-child{border-right:0}
.qrow{border:0;border-bottom:1px solid #e8ece6;background:#fff;cursor:pointer;border-radius:0;padding:0;min-height:var(--row-h);transition:background .1s}
.qrow:nth-child(even){background:#fafbf8}
.qrow:hover{background:#f1f6f0}
.qrow.selected,.qrow.checked{background:#e4efe1;box-shadow:inset 0 0 0 1px rgba(47,74,50,.12)}
.qrow.selected{animation:rowFlash .35s ease}
@keyframes rowFlash{from{background:#d4e8cf}to{background:#e4efe1}}
.qrow > *{padding:5px 5px;border-right:1px solid #eef1ee;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qrow > *:last-child{border-right:0}
.qrow .who{font-weight:700;color:var(--ink)}
.qrow .meta{font-size:11px;color:var(--muted)}
.qrow .cell-center{text-align:center}
.qrow.band-req{box-shadow:inset 3px 0 0 #c4a35a}
.qrow.band-unpaid{box-shadow:inset 3px 0 0 var(--danger)}
.qrow.band-msg{box-shadow:inset 3px 0 0 #4a7a9b}
.qrow.band-lead{box-shadow:inset 3px 0 0 #8a6a40}
.qrow.band-open{box-shadow:inset 3px 0 0 var(--ok)}
.qrow.band-conf{box-shadow:inset 3px 0 0 var(--green)}
.sel-dot{font-size:9px;color:var(--green)}
.action-cell{font-weight:750;color:var(--green);font-size:11px}
.badge{display:inline-flex;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;align-items:center}
.badge.req{background:var(--pending);color:#7a5b12}.badge.conf{background:var(--soft);color:var(--green)}
.badge.unpaid{background:var(--unpaid);color:var(--danger)}.badge.paid{background:#e8f2ea;color:var(--ok)}
.badge.msg{background:var(--msg);color:#2a4a5e}.badge.lead{background:var(--lead);color:#6a4a28}
.badge.open{background:#e8f0e9;color:var(--green)}
.badge.warn{background:#fff0e8;color:#8a4020}.badge.sla{background:#fce8e6;color:var(--danger)}
.pay-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;font-family:var(--mono)}
.pay-chip.unpaid{background:var(--unpaid);color:var(--danger)}.pay-chip.paid{background:#e8f2ea;color:var(--ok)}
.acct-badge{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:800;background:#eef2ec;color:var(--green)}
.acct-badge.no{background:#f5ede3;color:#6a4a28}

/* Focus panel craft */
.focus dt{font-size:9.5px;color:var(--muted);margin-top:7px;text-transform:uppercase;letter-spacing:.05em;font-weight:750}
.focus dd{margin:2px 0 0;font-weight:650;font-size:12.5px}
/* Sticky detail panels scroll themselves — opaque so page content does not scroll through */
.card.focus,.crm-side,.fam-grid-3 > .fam-detail{
  position:sticky;top:52px;max-height:calc(100vh - 64px);overflow:auto;overflow-y:auto;overscroll-behavior:contain;
  background:var(--cream);isolation:isolate;z-index:6;align-self:start;-webkit-overflow-scrolling:touch
}
.crm-side{
  display:flex;flex-direction:column;gap:10px;
  position:sticky;top:52px;max-height:calc(100vh - 64px);overflow:auto;
  background:var(--cream);isolation:isolate;z-index:6;align-self:start
}
.crm-side .card.focus{position:static;max-height:none;overflow:visible;background:var(--paper,#fffdf8);isolation:auto;z-index:auto}
.card.focus{background:var(--paper,#fffdf8)}
.bulk-bar{z-index:25} /* keep bulk above sticky detail */
.focus-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
.focus-head h3{margin:0}
.focus-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.focus-timeline{margin-top:12px;border-top:1px solid #eef1ee;padding-top:10px}
.focus-timeline h4{margin:0 0 8px;font:700 10px var(--font);color:var(--green);text-transform:uppercase;letter-spacing:.06em}
.tl-item{display:grid;grid-template-columns:14px 1fr;gap:8px;padding:0 0 10px;position:relative}
.tl-item:before{content:"";position:absolute;left:5px;top:10px;bottom:0;width:1px;background:#dde3d9}
.tl-item:last-child:before{display:none}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--green);margin-top:3px;box-shadow:0 0 0 3px rgba(47,74,50,.12)}
.tl-dot.gold{background:var(--gold)}.tl-dot.danger{background:var(--danger)}.tl-dot.msg{background:#4a7a9b}
.tl-body{font-size:12px;line-height:1.35}.tl-body .meta{font-size:10px}
.cap-gauge{height:8px;border-radius:999px;background:#e8ebe6;overflow:hidden;margin:6px 0 2px}
.cap-gauge > i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),var(--gold));border-radius:999px}
.sibling-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;background:var(--soft);font-size:11px;font-weight:650;margin:2px 4px 2px 0}
.empty{padding:22px;text-align:center;color:var(--muted);font-size:12.5px}
.meta{font-size:11.5px;color:var(--muted)}
.infant-note{color:#6a5a40;background:#fff8e7;border:1px solid #ead9a8;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.4}
.week-pressure{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}
.week-pressure .metric{padding:10px;border-radius:10px}
.day-drawer{border-left:3px solid var(--green);padding-left:10px}

.ctx-menu{position:fixed;z-index:90;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.14);padding:4px;min-width:168px}
.ctx-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:9px 12px;border-radius:6px;font:inherit;cursor:pointer;color:var(--ink);font-size:13px}
.ctx-menu button:hover{background:#f3faf5}

.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal .dow{text-align:center;font-size:9.5px;font-weight:800;color:#9b8669;padding:5px}
.cal .day{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 3px;text-align:center;cursor:pointer;min-height:58px;font-size:11.5px;transition:transform .1s,outline .1s;position:relative;overflow:hidden}
.cal .day:hover{transform:translateY(-1px);border-color:rgba(47,74,50,.35)}
.cal .day small{display:block;font-size:9.5px;color:var(--muted);margin-top:3px;line-height:1.2;font-family:var(--mono)}
.cal .day .heat{position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}
.cal .day.heat-1 .heat{background:#d8e8d4}.cal .day.heat-2 .heat{background:#a8c9a0}
.cal .day.heat-3 .heat{background:#c4a35a}.cal .day.heat-4 .heat{background:var(--danger)}
.cal .day.has{background:var(--pending)}.cal .day.ok{background:#e8f2ea}
.cal .day.tint-unpaid{background:var(--unpaid)}
.cal .day.selected{outline:2px solid var(--green);outline-offset:0}
.cal .day.muted{opacity:.4;pointer-events:none}
.banner{padding:8px 11px;background:var(--soft);border-radius:9px;font-size:12.5px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.roster-row{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #eef1ee;align-items:baseline}
.roster-row .who{font-weight:700;font-size:12.5px}
.fam-list{display:grid;gap:6px;max-height:62vh;overflow:auto}
.fam-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;cursor:pointer;text-align:left;font:inherit;transition:border-color .12s,background .12s,transform .1s}
.fam-card:hover{transform:translateY(-1px);border-color:rgba(47,74,50,.35)}
.fam-card.selected{border-color:var(--green);background:var(--soft);box-shadow:0 0 0 2px rgba(47,74,50,.1)}
.prio-bars{display:grid;gap:5px;margin:8px 0}
.prio-row{display:grid;grid-template-columns:72px 1fr 28px;gap:6px;align-items:center;font-size:11px}
.prio-row .bar{height:6px;background:#e8ebe6;border-radius:999px;overflow:hidden}
.prio-row .bar > i{display:block;height:100%;background:var(--green);border-radius:999px}
.thread-list{max-height:200px;overflow:auto;display:grid;gap:6px;margin-bottom:8px}
.thread-msg{padding:7px 9px;border-radius:9px;background:#f4f6f2;font-size:12.5px;line-height:1.4;border-left:3px solid transparent}
.thread-msg.out{background:#e8f0fe}.thread-msg.in{background:#fff8e7}
.thread-msg.ch-sms{background:#e8f0e6;border-left-color:var(--green)}
.thread-msg.ch-email{background:#eaf1f7;border-left-color:#4a6a8a}
.thread-msg.ch-internal{background:#f5ede3;border-left-color:var(--gold)}
.thread-msg.ch-web{background:#fff8e7;border-left-color:#8a6a40}
.ch-pill{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin-left:6px}
.ch-pill-sms{background:var(--green);color:#fff}
.ch-pill-email{background:#4a6a8a;color:#fff}
.ch-pill-internal{background:var(--gold);color:#1c241c}
.ch-pill-web{background:#8a6a40;color:#fff}
.reply-confirm{margin-top:10px;padding:10px 12px;background:var(--soft);border:1px solid var(--line);border-radius:10px}
.reply-confirm-text{margin:0 0 8px;font-weight:650}
button.linkish{border:0;background:transparent;padding:0;color:var(--green);font:inherit;font-weight:700;cursor:pointer;text-align:left}
button.linkish:hover{text-decoration:underline}
.desk-thread{display:grid;gap:6px}
.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;text-align:left;cursor:pointer;font:inherit;transition:border-color .12s,background .12s}
.metric strong{display:block;font:700 20px Georgia,serif;color:var(--green)}.metric span{font-size:11px;color:var(--muted)}
.metric.active{border-color:var(--green);background:var(--soft);box-shadow:0 0 0 2px rgba(47,74,50,.1)}
.aging-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.aging-cell{padding:8px;border-radius:8px;background:#f7f9f5;border:1px solid #e4e9e2;text-align:center}
.aging-cell strong{display:block;font-family:var(--mono);font-size:14px;color:var(--green)}.aging-cell span{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}
.aging-cell.hot strong{color:var(--danger)}
.chase-list{display:grid;gap:6px}
.chase-item{display:flex;justify-content:space-between;gap:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;align-items:center}
.sparkline{display:inline-block;vertical-align:middle}
.month-spark{height:28px;width:120px}

.modal-back{position:fixed;inset:0;background:rgba(28,36,28,.4);display:none;place-items:center;z-index:80;padding:16px;backdrop-filter:blur(2px)}
.modal-back.open{display:grid}
.modal{width:min(560px,96vw);max-height:90vh;overflow:auto;background:var(--paper);border-radius:16px;padding:18px;border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.18)}
.modal h2{margin:0 0 10px;font:700 20px Georgia,serif;color:var(--green)}
.field{margin:9px 0}label{display:block;font-size:11px;font-weight:800;color:var(--green);margin-bottom:4px}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.child-pills{display:flex;flex-wrap:wrap;gap:7px}
.child-pill{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer;font-size:12px}
.child-pill.on{background:var(--green);color:#fff;border-color:var(--green)}
.paint-toggle{display:flex;gap:7px}.paint-toggle button{flex:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px;font-weight:800;cursor:pointer}
.paint-toggle button.on-full{background:#dceaf5;border-color:#4a7a9b}
.paint-toggle button.on-half{background:#e8f0e3;border-color:#5a7753}
.sum{padding:10px;background:var(--soft);border-radius:10px;margin-top:8px;line-height:1.45;font-size:12.5px}
.create-pick{display:grid;gap:8px;margin:10px 0}
.create-pick button{text-align:left;padding:11px 13px;border:1px solid #c5ccc0;border-radius:8px;background:#fff;cursor:pointer;font:inherit}
.create-pick button:hover{border-color:var(--green);background:#f3faf5}
.create-pick strong{display:block;font-size:13.5px}
.create-pick span{font-size:11.5px;color:var(--muted)}

/* Activity feed */
.activity-feed{max-height:min(66vh,760px);overflow:auto}
.act-item{padding:8px 0;border-bottom:1px solid #eef1ee;font-size:12px;line-height:1.35}
.act-item .meta{font-size:10px;font-family:var(--mono)}

/* Command palette */
.cmdk-back{position:fixed;inset:0;background:rgba(20,28,20,.45);display:none;place-items:start center;padding:12vh 16px 16px;z-index:100;backdrop-filter:blur(3px)}
.cmdk-back.open{display:grid}
.cmdk{width:min(560px,96vw);background:#fff;border-radius:14px;border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.22);overflow:hidden}
.cmdk input{width:100%;border:0;border-bottom:1px solid var(--line);padding:14px 16px;font-size:15px;outline:none;font-family:var(--font)}
.cmdk-list{max-height:360px;overflow:auto;padding:6px}
.cmdk-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:13px;border:0;background:transparent;width:100%;text-align:left;font:inherit}
.cmdk-item:hover,.cmdk-item.active{background:var(--soft)}
.cmdk-item kbd{font-family:var(--mono);font-size:10px;color:var(--muted);background:#f0f2ee;padding:2px 6px;border-radius:4px}
.cmdk-hint{padding:8px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);background:#fafbf8}

/* Keyboard footer */
.kb-footer{position:fixed;left:188px;right:0;bottom:0;z-index:40;background:rgba(244,242,236,.92);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:5px 14px;font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.kb-footer kbd{font-family:var(--mono);font-size:10px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--ink)}
.mobile-nav{display:none}

@media(max-width:1100px){
  .desk-grid.with-feed{grid-template-columns:minmax(0,1fr) minmax(280px,320px)}
  .desk-grid.with-feed .activity-card{display:none}
}
@media(max-width:960px){
  .shell{grid-template-columns:1fr}.side{display:none}
  .desk-grid,.week-grid,.money-grid,.fam-grid,.fam-grid-3,.metric-row,.crm-grid,.aging-row,.week-pressure{grid-template-columns:1fr}
  .main{padding:12px 12px 108px}
  .kb-footer{left:0;bottom:58px;font-size:10px}
  .mobile-nav{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;bottom:0;left:0;right:0;background:var(--green);z-index:50;padding:4px 2px calc(4px + env(safe-area-inset-bottom,0px))}
  .mobile-nav button{border:0;background:transparent;color:rgba(255,255,255,.85);padding:8px 2px;font-size:10px;font-weight:700;min-height:54px}
  .mobile-nav button.active{color:#fff;background:rgba(255,255,255,.14);border-radius:12px}
  .queue{max-height:46vh}
  .crm-pipeline{grid-template-columns:repeat(2,1fr)}
  .card.focus,.crm-side,.money-side,.fam-grid-3 > .fam-detail,.focus{position:static;max-height:none;overflow:visible}
}


/* ——— Build 12.40 craft ——— */
:focus-visible{outline:2px solid rgba(47,74,50,.45);outline-offset:2px}
button:focus-visible,.step:focus-visible,.qrow:focus-visible,.pulse-item:focus-visible,.fam-card:focus-visible,.bucket:focus-visible,.btn:focus-visible,.cmdk-item:focus-visible{
  outline:2px solid rgba(47,74,50,.5);outline-offset:2px
}
.qrow:focus-visible{outline-offset:-2px}
.empty-rich{padding:28px 18px;text-align:center;color:var(--muted)}
.empty-rich .empty-ico{font-size:22px;line-height:1;margin-bottom:8px;opacity:.55}
.empty-rich strong{display:block;color:var(--ink);font-size:13.5px;margin-bottom:4px}
.empty-rich p{margin:0 auto;max-width:280px;font-size:12px;line-height:1.45}
.empty-rich .empty-acts{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:12px}

/* Morning Run */
.morning-run{margin-bottom:10px;padding:12px 14px;background:linear-gradient(135deg,#fffdf8 0%,#eef5ea 55%,#f7f3e8 100%);border:1px solid #c5d0c0;border-radius:12px;box-shadow:0 6px 18px rgba(47,74,50,.06)}
.morning-run.hidden{display:none}
.mr-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.mr-head h2{margin:0;font:700 15px Georgia,serif;color:var(--green);display:flex;align-items:center;gap:8px}
.mr-head .mr-sub{font-size:11.5px;color:var(--muted);font-weight:500;font-family:var(--font)}
.mr-list{display:grid;gap:6px}
.mr-item{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:9px 11px;background:#fff;border:1px solid var(--line);border-radius:9px;text-align:left;cursor:pointer;font:inherit;transition:border-color .12s,transform .1s,box-shadow .12s}
.mr-item:hover{border-color:var(--green);transform:translateY(-1px);box-shadow:0 4px 12px rgba(47,74,50,.08)}
.mr-item .mr-n{width:22px;height:22px;border-radius:50%;background:var(--soft);color:var(--green);font:800 11px var(--mono);display:grid;place-items:center}
.mr-item .mr-body strong{display:block;font-size:12.5px;color:var(--ink)}
.mr-item .mr-body span{font-size:11px;color:var(--muted)}
.mr-item .mr-go{font-size:10.5px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.04em}
.mr-item.warn{border-color:#ead0c8;background:#fffaf8}
.mr-item.warn .mr-n{background:var(--unpaid);color:var(--danger)}
.mr-item.gold{border-color:#ead9a8;background:#fffdf6}
.mr-item.gold .mr-n{background:var(--pending);color:#7a5b12}
.mr-item.done{opacity:.55}
.mr-item.done .mr-n{background:#e8f2ea;color:var(--ok)}
.pulse-item.mr-tog.on{background:var(--green);color:#fff;border-color:var(--green)}
.pulse-item.mr-tog.on .pulse-val,.pulse-item.mr-tog.on .pulse-label{color:#fff}

/* Saved desk views */
.saved-views{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:2px 0 4px}
.saved-views .sv-label{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:2px}
.sv-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:11px;font-weight:700;color:var(--green);cursor:pointer;font:inherit;transition:background .12s,border-color .12s}
.sv-chip:hover,.sv-chip.active{background:var(--soft);border-color:var(--green)}
.sv-chip .sv-x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:0 2px;line-height:1}
.sv-chip .sv-x:hover{color:var(--danger)}
.sv-pin{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px dashed var(--line);background:transparent;color:var(--muted);cursor:pointer}
.sv-pin:hover{border-color:var(--green);color:var(--green)}

/* Conflict badges */
.badge.conflict{background:#fce8e6;color:var(--danger)}
.badge.infant{background:#fff8e7;color:#6a5a20}
.badge.overbook{background:#f5e0dc;color:#8a3020}
.badge.unpaid-svc{background:#fce8e6;color:var(--danger)}
.qrow.has-conflict{background:#fff8f6}
.conflict-strip{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.conflict-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:700;background:#fff5f2;border:1px solid #ead0c8;color:var(--danger)}
.conflict-pill.infant{background:#fff8e7;border-color:#ead9a8;color:#6a5a20}
.conflict-pill.over{background:#f5e0dc;border-color:#e0b8b0;color:#8a3020}

/* Day sheet */
.day-sheet{border-left:3px solid var(--gold)}
.day-sheet .ds-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;align-items:center}
.day-sheet table{width:100%;border-collapse:collapse;font-size:12px}
.day-sheet th,.day-sheet td{text-align:left;padding:6px 7px;border-bottom:1px solid #eef1ee}
.day-sheet th{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800;background:#f7f9f5}
.day-sheet .ds-sec{margin-top:12px;font:700 10px var(--font);color:var(--green);text-transform:uppercase;letter-spacing:.06em}
.day-sheet .allergy{color:var(--danger);font-weight:700}
.no-print{}.print-only{display:none}

/* Undo toast */
.toast{position:fixed;right:16px;bottom:56px;z-index:120;background:var(--green);color:#fff;padding:10px 14px;border-radius:10px;font-size:12.5px;font-weight:650;box-shadow:0 10px 28px rgba(0,0,0,.2);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none;display:flex;align-items:center;gap:10px;max-width:min(420px,92vw)}
.toast.show{opacity:1;transform:none;pointer-events:auto}
.toast .undo-btn{border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800;cursor:pointer;font:inherit;color:#fff}
.toast .undo-btn:hover{background:rgba(255,255,255,.28)}
.toast .toast-msg{flex:1;line-height:1.35}
.toast.warn{background:#6a4038}

/* Message dock */
.msg-dock-back{position:fixed;inset:0;background:rgba(20,28,20,.35);z-index:95;display:none;backdrop-filter:blur(2px)}
.msg-dock-back.open{display:block}
.msg-dock{position:fixed;right:0;top:0;bottom:0;width:min(400px,96vw);background:var(--paper);border-left:1px solid var(--line);z-index:96;box-shadow:-12px 0 40px rgba(0,0,0,.14);display:flex;flex-direction:column;transform:translateX(104%);transition:transform .22s ease}
.msg-dock.open{transform:none}
.msg-dock-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}
.msg-dock-head h3{margin:0;font:700 14px Georgia,serif;color:var(--green)}
.msg-dock-body{flex:1;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}
.msg-dock-foot{padding:12px 16px;border-top:1px solid var(--line);background:#fff}
.msg-dock-foot textarea{min-height:72px;resize:vertical;margin-bottom:8px}
.msg-dock .thread-msg{max-width:92%}

@media print{
  body *{visibility:hidden}
  .day-sheet, .day-sheet *{visibility:visible}
  .day-sheet{position:absolute;left:0;top:0;width:100%;border:0;box-shadow:none;padding:0}
  .no-print,.preview-banner,.side,.kb-footer,.mobile-nav,.pulse,.ops-chrome,.buckets,.toast,.msg-dock,.msg-dock-back,.cmdk-back,.modal-back,.morning-run{display:none!important}
  .print-only{display:block!important}
  .main{padding:0}
  .shell{display:block}
}
@media(max-width:960px){
  .msg-dock{width:100%}
  .toast{bottom:120px;right:10px;left:10px;max-width:none}
}


/* —— Build 12.42 clip / density polish —— */
.trunc,.meta.trunc,dd.trunc,.fam-card .trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block}
.fam-card .fam-card-stats{margin-top:4px;line-height:1.35;white-space:normal}
.prio-chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.prio-chip{display:inline-flex;padding:3px 8px;border-radius:999px;background:#eef2ec;border:1px solid #d5ddd2;font-size:11px;font-weight:700;color:var(--green);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prio-dd{min-width:0}
.focus-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}
.focus-actions .btn{padding:6px 9px;font-size:11px;line-height:1.2}
.desk-grid{grid-template-columns:minmax(0,1fr) minmax(320px,400px)}
.desk-grid.with-feed{grid-template-columns:minmax(0,1.05fr) minmax(300px,360px) minmax(200px,240px)}
.money-grid{grid-template-columns:minmax(0,1fr) minmax(300px,360px);min-width:0}
.money-grid .desk-queue-card,.money-grid .queue{min-width:0;overflow-x:auto}
.day-sheet{overflow-x:auto;-webkit-overflow-scrolling:touch}
.day-sheet table{table-layout:fixed;min-width:640px}
.day-sheet th:nth-child(7),.day-sheet td:nth-child(7){width:24%;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-grid .qhead span:nth-child(5),.crm-grid .qhead span:nth-child(6),
.crm-grid .qrow > *:nth-child(5),.crm-grid .qrow > *:nth-child(6){min-width:0}
.occ-line{margin:0 0 8px;font-size:12px}
.fam-list .empty,.fam-card{min-width:0}
.buckets.hidden-by-bulk{display:none}


/* —— Build 12.61 CRM inquiry + scroll containment —— */
.inquiry-block{margin:8px 0 8px;padding:8px 10px;background:#f3f7f2;border:1px solid #d5ddd2;border-radius:10px}
.inquiry-msg,.interest-children{margin-top:0}
.inquiry-msg-label{font-size:9.5px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.inquiry-kids-label,.inquiry-prio-label{font-size:9.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 4px}
.inquiry-msg-body{font-size:13px;font-weight:550;line-height:1.45;color:var(--ink);white-space:pre-wrap;word-break:break-word}
.inquiry-block .prio-chips,.inquiry-block .prio-bars{margin:2px 0 0}
.interest-child{font-size:12.5px;font-weight:650;margin-top:4px;line-height:1.35}
.interest-child .meta{margin-right:4px}
.crm-grid{align-items:start}
.crm-side .card{background:var(--paper,#fffdf8)}


/* —— Build 12.46 Inquiry groups priorities; 12.45 CRM FU picker, book steps, marketing labels —— */
.crm-view-tog{display:none!important}
.crm-pipeline{display:none!important}
.crm-focus{padding:10px 12px}
.crm-focus-head{margin-bottom:8px}
.crm-focus-head h3{margin:0 0 4px;font:750 16px/1.2 var(--font);color:var(--ink);text-transform:none;letter-spacing:0}
.crm-meta-row{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12px;font-weight:600;color:var(--ink)}
.crm-meta-row .meta{font-weight:550}
.consent-chip{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:#eef2ec;color:var(--muted)}
.consent-chip.in{background:#e8f2ea;color:var(--ok)}
.consent-chip.out{background:#fce8e6;color:var(--danger)}
.crm-sec{margin-top:8px}
.crm-sec-label{font-size:9.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.stage-chips,.fu-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.stage-chip,.fu-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;cursor:pointer;color:var(--muted);line-height:1.2}
.stage-chip:hover,.fu-chip:hover{border-color:rgba(47,74,50,.35);color:var(--ink)}
.stage-chip.on{background:var(--green);border-color:var(--green);color:#fff}
.fu-date{border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:12px;max-width:138px;background:#fff}
.crm-action-row{margin-top:8px;margin-bottom:2px}
.crm-compose{margin-top:10px;padding-top:10px;border-top:1px solid #eef1ee}
.seg-tog{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:6px}
.seg-tog button{border:0;background:#fff;padding:5px 11px;font-size:11px;font-weight:750;cursor:pointer;color:var(--muted)}
.seg-tog button.on{background:var(--green);color:#fff}
.crm-compose textarea{width:100%;min-height:56px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;background:#fff}
.crm-compose-actions{margin-top:6px;display:flex;justify-content:flex-end}
.crm-tl-peek{display:flex;gap:6px;align-items:center;margin:8px 0 4px;padding:6px 8px;background:#f3f7f2;border-radius:8px;font-size:12px;min-width:0}
.crm-tl-peek .trunc{flex:1;min-width:0}
.crm-disclosure{margin-top:8px;border:1px solid #e8ece6;border-radius:10px;background:#fff;padding:0}
.crm-disclosure > summary{cursor:pointer;list-style:none;padding:8px 10px;font-size:11px;font-weight:800;color:var(--green);text-transform:uppercase;letter-spacing:.05em;user-select:none}
.crm-disclosure > summary::-webkit-details-marker{display:none}
.crm-disclosure > summary::before{content:"▸ ";font-size:10px;opacity:.7}
.crm-disclosure[open] > summary::before{content:"▾ "}
.crm-disclosure .thread-list{padding:0 10px 10px;max-height:220px;overflow:auto}
.crm-mkt.card{padding:0}
.crm-mkt-body{padding:0 12px 12px}
.crm-focus .inquiry-block{margin:8px 0;padding:8px 10px}
.crm-focus .inquiry-kids-label{margin:6px 0 2px}
.crm-focus .prio-chips{margin:2px 0}
.crm-lead-list .queue{max-height:min(70vh,820px)}
@media(max-width:960px){
  .crm-grid{grid-template-columns:1fr}
  .crm-side{position:static;max-height:none}
}

/* Follow-up custom month popover (no native date chrome) */
.fu-pick-wrap{position:relative;display:inline-flex;align-items:center}
.fu-pick-btn{border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;background:#fff;color:var(--green);cursor:pointer;min-height:28px;line-height:1.2}
.fu-pick-btn:hover{border-color:rgba(47,74,50,.4);background:var(--soft)}
.fu-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:240px;background:var(--paper,#fffdf8);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 28px rgba(28,36,28,.16);padding:10px;color:var(--ink)}
.fu-pop-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}
.fu-pop-head strong{font-size:12.5px;color:var(--green);font-weight:800}
.fu-nav{border:1px solid var(--line);background:#fff;border-radius:8px;width:28px;height:28px;cursor:pointer;color:var(--green);font-size:16px;line-height:1;font-weight:700}
.fu-nav:hover{background:var(--soft)}
.fu-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.fu-dow{text-align:center;font-size:9px;font-weight:800;color:var(--muted);padding:4px 0;text-transform:uppercase}
.fu-day{border:1px solid transparent;background:#fff;border-radius:8px;padding:6px 0;font-size:12px;font-weight:650;cursor:pointer;color:var(--ink);min-height:30px}
.fu-day:hover{border-color:rgba(47,74,50,.35);background:var(--soft)}
.fu-day.on{background:var(--green);border-color:var(--green);color:#fff}
.fu-day.today{box-shadow:inset 0 0 0 1px var(--gold)}
.fu-day.muted{pointer-events:none;opacity:0;cursor:default}
.fu-date{display:none!important} /* legacy native date gone */

/* Book modal steps + $ summary */
.book-steps{display:grid;gap:12px;margin:4px 0 12px}
.book-step{padding:10px 12px;border:1px solid #e8ece6;border-radius:12px;background:#fff}
.book-sum-step .sum{margin:0;padding:10px 12px;background:var(--soft);border:1px solid #d7e2d4;border-radius:10px;font-size:14px;color:var(--green)}
.book-sum-step .sum strong{font-size:15px;color:var(--ink)}
.modal .paint-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.modal .paint-toggle button{border:0;background:#fff;padding:7px 12px;font-size:12px;font-weight:750;cursor:pointer;color:var(--muted)}
.modal .paint-toggle button.on-full{background:var(--green);color:#fff}
.modal .paint-toggle button.on-half{background:var(--gold,#c4a35a);color:#fff}

/* 12.47 — interest ↔ family email link */
.badge.from-inquiry{background:#e7f0e4;color:#2f4f2a;border:1px solid #c5d7bf;font-weight:600;font-size:10px;padding:1px 6px;border-radius:999px;vertical-align:middle}
.linked-fam-banner{margin:8px 0 0;padding:8px 10px;background:#f3f7f2;border:1px solid #d5ddd2;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.linked-fam-banner.orphan{background:#faf8f4;border-color:#e6dfd2;color:#6a6458}
.linked-inq-banner{margin:10px 0 4px}

/* 12.50 - Book Care: deepen Full/Half calendar shades; lock full-capacity; per-child chip+summary colors */
.book-cal{
  background:var(--paper,#fffdf8);border:1px solid var(--line);border-radius:12px;
  padding:10px;color:var(--ink);margin-bottom:8px;
}
.book-cal .book-cal-head strong{font-size:12.5px;color:var(--green);font-weight:800}
.book-cal .fu-grid{gap:4px}
.book-cal .fu-day.book-day{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;min-height:36px;padding:4px 0;line-height:1.1;position:relative;
  background:#fff;border:1px solid var(--line);
}
.book-cal .fu-day.book-day small{font-size:9px;font-weight:700;opacity:.9}
.book-cal .fu-day.book-day.open{background:#fff;border-color:var(--line)}
.book-cal .fu-day.book-day.full{
  background:#efeae3;color:#7a6c5c;cursor:default;pointer-events:none;
  opacity:.72;
}
.book-cal .fu-day.book-day.nodata{background:#fff}
/* Past days stay visible (muted) — never use .muted here (that hides leading pads). */
.book-cal .fu-day.book-day.past{
  opacity:.42;cursor:default;pointer-events:none;background:#f3f1ea;color:#8a8a80;border-color:#e8e4da;
}
/* Calendar = Full/Half only (darker green / richer gold) — not per-child hues */
.book-cal .fu-day.book-day.on-full{
  background:#2f4a2a;border-color:#243a20;color:#fff;
}
.book-cal .fu-day.book-day.on-half{
  background:#b8892f;border-color:#9a7120;color:#fff;
}
.book-cal .fu-day.book-day.on-mixed{
  background:linear-gradient(135deg,#2f4a2a 50%,#b8892f 50%);
  border-color:#2f4a2a;color:#fff;
}
.book-cal .fu-day.book-day.on-full small,
.book-cal .fu-day.book-day.on-half small,
.book-cal .fu-day.book-day.on-mixed small{color:rgba(255,255,255,.95)}
.book-cal .fu-day.book-day.today:not(.on-full):not(.on-half):not(.on-mixed){
  box-shadow:inset 0 0 0 1px var(--gold,#c4a35a);
}
.book-cal .mix-dots{display:flex;gap:3px;margin-top:1px}
.book-cal .mix-dots i{
  width:6px;height:6px;border-radius:50%;display:inline-block;
}
.book-cal .mix-dots .dot-full{background:#fff}
.book-cal .mix-dots .dot-half{background:#fff8e0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.book-cal-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;align-items:center}
.book-cal-legend .leg::before{
  content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle;
  border:1px solid var(--line);
}
.book-cal-legend .leg-full::before{background:#2f4a2a;border-color:#243a20}
.book-cal-legend .leg-half::before{background:#b8892f;border-color:#9a7120}
.book-cal-legend .leg-hint::before{display:none}
.book-cal-legend .leg-hint{opacity:.75;font-size:11px}
.modal .child-pills .child-pill{
  display:inline-flex;align-items:center;gap:6px;
  transition:background .12s ease,border-color .12s ease,color .12s ease;
}
.modal .child-pills .child-pill .child-swatch{
  width:9px;height:9px;border-radius:2px;border:1px solid transparent;flex:0 0 auto;
  opacity:.55;
}
.modal .child-pills .child-pill.on .child-swatch{opacity:1}
.modal .child-pills .child-pill.on{
  font-weight:800;
}
.book-sum-step .sum-line{
  margin:2px 0;line-height:1.45;font-size:13px;color:var(--ink);
  display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
}
.book-sum-step .sum-line .sum-swatch{
  width:9px;height:9px;border-radius:2px;border:1px solid transparent;
  display:inline-block;flex:0 0 auto;position:relative;top:1px;
}
.book-sum-step .sum-total{margin-top:8px;padding-top:8px;border-top:1px solid #d7e2d4}
.book-sum-step .crm-sec-label .btn.small{padding:4px 10px;min-height:26px;font-size:11px}
.modal .book-cal{width:100%}

/* ——— 12.51 pattern polish ——— */
.stage-chip.muted{opacity:.45;cursor:default}
.stage-chip.pay-unpaid.on{background:var(--danger);border-color:var(--danger);color:#fff}
.stage-chip.pay-paid.on{background:var(--ok);border-color:var(--ok);color:#fff}
.focus-dl-compact{margin:6px 0 0}
.focus-dl-compact dt{margin-top:4px}
.cal .day.occ-full{background:#e4efe3;border-color:#2f4a2a}
.cal .day.occ-full small{color:#2f4a2a;font-weight:800}
.cal .day.occ-tight{background:#f7f0e2;border-color:#b8892f}
.cal .day.occ-open{background:#fff}
.week-cal-legend{margin-top:8px}
.money-filter-chips{gap:6px}
.money-side{
  display:flex;flex-direction:column;gap:10px;min-width:0;width:100%;
  /* same sticky column craft as .crm-side — Focus + Chase + By family share width */
  position:sticky;top:52px;max-height:calc(100vh - 64px);overflow:auto;
  background:var(--cream);isolation:isolate;z-index:6;align-self:start
}
.money-side .card.focus{
  position:static;max-height:none;overflow:visible;
  background:var(--paper,#fffdf8);isolation:auto;z-index:auto;width:100%;box-sizing:border-box
}
.money-side > .card{width:100%;box-sizing:border-box;margin-top:0}
.activity-card.crm-disclosure{padding:0}
.activity-card.crm-disclosure > summary{padding:8px 10px}
.activity-card .activity-feed{padding:0 10px 10px;max-height:280px;overflow:auto}
.activity-card .crm-tl-peek{padding:0 10px 8px}
.msg-dock-thread{margin:0;border:0;background:transparent}
.msg-dock-thread > summary{padding:6px 0;font-size:11px}
.msg-dock-thread-list{max-height:220px;overflow:auto;padding-bottom:6px}
.fam-detail.crm-focus{padding:10px 12px}
.day-drawer.crm-focus h3{text-transform:none;letter-spacing:0;font:750 16px/1.2 var(--font);color:var(--ink);margin:0}
.card.crm-disclosure{padding:0}
.card.crm-disclosure > summary{padding:8px 10px}
.card.crm-disclosure .chase-list,
.card.crm-disclosure .qhead,
.card.crm-disclosure .qrow,
.card.crm-disclosure .aging-row{margin:0 10px 10px}

/* ——— 12.52 Desk chrome consolidate ——— */
.pulse.pulse-hidden{display:none!important}
.morning-run.morning-clear{padding:10px 12px}
.mr-clear-line{margin:0;font-size:12.5px;color:var(--muted)}
.mr-item .mr-count{display:inline-block;margin-left:8px;font:800 12px var(--mono);color:var(--green);min-width:1.5em}
.mr-item.warn .mr-count{color:var(--danger)}
.mr-item.gold .mr-count{color:#8a6a20}
/* ——— 12.53 Day tools strip (persistent under Steps) ——— */
.ops-toolbar.day-tools{
  padding:6px 10px;
  background:#e6eae3;
  border:1px solid #c5ccc0;
  border-bottom:3px solid var(--green);
  border-radius:8px;
  gap:8px;
}
.ops-toolbar.day-tools .day-slot{background:#dfe6db;border:1px solid #c5d0c0}
.ops-toolbar.day-tools .banner-inline{gap:8px}
.ops-toolbar.slim-day{padding:4px 0;background:transparent;border:0}

/* 12.56 — Reply popup modal thread peek */
.reply-modal-thread{margin:8px 0 0;border:0;background:transparent}
.reply-modal-thread > summary{padding:6px 0;font-size:12px}
.reply-modal-thread-list{max-height:min(52vh,440px);overflow:auto;padding-bottom:6px;display:flex;flex-direction:column;gap:6px}
.family-thread-list{min-height:180px}
.modal.family-thread-sheet{width:min(560px,96vw);max-height:92vh;display:flex;flex-direction:column}
.thread-filters{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}
.thread-filters button{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;min-height:36px;cursor:pointer}
.thread-filters button.on{background:var(--green);border-color:var(--green);color:#fff}
.thread-body{white-space:pre-wrap;word-break:break-word}
.thread-msg.ch-web .thread-body{font-size:12.5px}
.send-confirm-pop{position:fixed;inset:0;background:rgba(28,36,28,.35);display:flex;align-items:center;justify-content:center;z-index:80}
.send-confirm-pop[hidden]{display:none}
.send-confirm-card{width:min(420px,92vw);background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px 18px;box-shadow:var(--shadow)}
.send-confirm-card .reply-confirm-text{margin:0 0 14px;font-size:16px;font-weight:650;color:var(--ink)}


.reply-modal-compose textarea{min-height:88px}
/* --- 12.63 Families Focus - child rows full-width in Focus card --- */
.fam-kids-box{margin-top:8px;padding:0 4px}
.fam-kids-box > summary{padding-left:2px}
.fam-kids-list{
  display:grid;gap:6px;margin-top:8px;
  width:100%;max-width:none;
  padding:0 2px 2px;
  box-sizing:border-box;
}
.fam-kid-row{
  display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;
  width:100%;box-sizing:border-box;
  padding:8px 12px 8px 10px;border-radius:10px;
  background:var(--kid-bg,#f3f7f2);
  border:1px solid var(--kid-border,#d5ddd2);
  box-shadow:inset 3px 0 0 var(--kid-swatch,var(--kid-border,#3d6b4f));
}
button.fam-kid-row{
  font:inherit;color:inherit;text-align:left;cursor:pointer;
}
button.fam-kid-row:hover{filter:brightness(0.97)}
button.fam-kid-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.fam-kid-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}
.fam-kid-swatch{
  width:10px;height:10px;border-radius:3px;border:1px solid transparent;
  flex:0 0 auto;display:inline-block;
}
.fam-kid-row .who{font-weight:800;font-size:13px}
.fam-kid-band{
  font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;
  color:var(--kid-ink,#1e3326);opacity:.85;
  padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
}
.fam-kid-age{font-size:12px;font-weight:700;color:var(--kid-ink,#1e3326)}
.fam-kid-dob{font-size:11px;white-space:nowrap}
.fam-kids-actions{margin-top:8px}


/* 12.65 Open days month calendar (Create → Open days) */
.od-cal-wrap{margin:4px 0 0}
.od-cal .day.open{background:#e8f2ea;border-color:rgba(47,74,50,.28)}
.od-cal .day.closed{background:#f3ece6;border-color:rgba(160,77,67,.28)}
.od-cal .day.nodata{background:#fff}
.od-cal .day.today:not(.selected){box-shadow:inset 0 0 0 1px rgba(47,74,50,.45)}
.od-cal .day.selected{outline:2px solid var(--green);outline-offset:0;background:#d8e8d4}
.od-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.book-cal-legend .leg-open::before{background:#e8f2ea;border-color:#2f4a2a}
.book-cal-legend .leg-closed::before{background:#f3ece6;border-color:#a04d43}
.od-bulk summary{cursor:pointer;font:700 12px Inter,sans-serif;color:var(--green);text-transform:uppercase;letter-spacing:.06em}

.guide-wrap{height:calc(100vh - 108px);min-height:420px;margin:0}
.guide-frame{display:block;width:100%;height:100%;border:0;background:#f4f2ec;border-radius:12px}
@media(max-width:960px){
  .guide-wrap{height:calc(100vh - 128px)}
  .mobile-nav button{font-size:9px;padding:8px 1px}
}
