:root {
  --bg: #0a0712;
  --panel: #151020;
  --panel-2: #1b1428;
  --line: rgba(255,255,255,.08);
  --text: #f7f4ff;
  --muted: #9b93ad;
  --accent: #7b4dff;
  --accent-2: #4e9cff;
  --good: #65e5a5;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,sans-serif;background:radial-gradient(circle at top right,#1c0f33 0,#0a0712 42%);color:var(--text);min-height:100vh}
button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{padding:28px 20px;border-right:1px solid var(--line);background:rgba(10,7,18,.88);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:34px}.logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:22px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 10px 30px rgba(123,77,255,.25)}.brand h1{font-size:18px;margin:0}.brand p{font-size:12px;margin:3px 0 0;color:var(--muted)}nav{display:grid;gap:8px}.nav-btn{border:0;background:transparent;color:var(--muted);padding:13px 14px;text-align:left;border-radius:12px;cursor:pointer}.nav-btn:hover,.nav-btn.active{background:linear-gradient(90deg,rgba(123,77,255,.18),rgba(78,156,255,.08));color:#fff}.sidebar-card{margin-top:auto;padding:16px;border-radius:16px;background:var(--panel);border:1px solid var(--line);display:grid;gap:5px}.sidebar-card span{font-size:12px;color:var(--muted);line-height:1.5}.main-content{padding:30px;max-width:1500px;width:100%}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h2{margin:2px 0 0;font-size:30px}.eyebrow{font-size:11px;letter-spacing:.14em;color:#a88fff;font-weight:700;margin:0 0 6px}.ghost-btn,.primary-btn{border:0;border-radius:12px;cursor:pointer}.ghost-btn{background:transparent;color:var(--muted);border:1px solid var(--line);padding:10px 14px}.primary-btn{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:white;font-weight:700;padding:12px 18px;box-shadow:0 10px 24px rgba(92,90,255,.22)}.view{display:none}.active-view{display:block}.hero-card{padding:28px;border-radius:24px;background:linear-gradient(135deg,rgba(123,77,255,.26),rgba(78,156,255,.12));border:1px solid rgba(143,110,255,.25);display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.hero-card h3{font-size:28px;margin:0 0 8px}.hero-card p{color:var(--muted);max-width:650px}.score-ring{width:120px;height:120px;border-radius:50%;border:9px solid rgba(255,255,255,.08);border-top-color:#9a79ff;display:grid;place-content:center;text-align:center}.score-ring span{font-size:25px;font-weight:800}.score-ring small{color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.stat-card,.panel{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:20px;padding:20px}.stat-card{display:grid;gap:7px}.stat-card span,.stat-card small,.muted{color:var(--muted)}.stat-card strong{font-size:26px}.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.panel h3{margin:0 0 18px;font-size:20px}.macro-bars{display:grid;gap:18px}.macro-bars>div{display:grid;grid-template-columns:80px 1fr 55px;gap:12px;align-items:center}.bar{height:10px;background:#2a2039;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px}.focus-list{display:grid;gap:14px}.focus-list label{display:flex;gap:10px;align-items:center;color:#dcd6e8}.focus-list input{accent-color:var(--accent)}.form-layout{align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid label{display:grid;gap:7px;color:var(--muted);font-size:13px}.form-grid input,.form-grid select,.chat-form input{width:100%;background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:white;outline:none}.form-grid input:focus,.form-grid select:focus,.chat-form input:focus{border-color:#7f5cff}.full{grid-column:1/-1}.results-card{min-height:100%}.result-main{display:flex;align-items:baseline;gap:10px;padding:22px 0}.result-main strong{font-size:46px}.result-main span{color:var(--muted)}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.result-grid div{padding:14px;border-radius:13px;background:#0f0a18;display:grid;gap:5px}.result-grid span{color:var(--muted);font-size:12px}.meal-result{margin-top:16px}.meal-card{background:linear-gradient(135deg,rgba(123,77,255,.18),rgba(78,156,255,.08));border:1px solid rgba(123,77,255,.25);border-radius:20px;padding:22px}.meal-card h3{margin:0 0 8px}.meal-meta{display:flex;gap:14px;flex-wrap:wrap;color:#c9c1d7;font-size:13px;margin:12px 0 18px}.meal-card ul{line-height:1.9;color:#ded8e9}.hidden{display:none}.coach-layout{display:grid;grid-template-columns:1fr 300px;gap:16px}.chat-panel{min-height:610px;display:flex;flex-direction:column}.chat-header{display:flex;justify-content:space-between}.online-dot{color:var(--good);font-size:13px}.chat-messages{display:flex;flex-direction:column;gap:12px;flex:1;padding:12px 0;overflow:auto}.message{max-width:75%;padding:13px 15px;border-radius:16px;line-height:1.5}.message.ai{background:#221a31;color:#e8e2f4;align-self:flex-start}.message.user{background:linear-gradient(135deg,var(--accent),var(--accent-2));align-self:flex-end}.chat-form{display:grid;grid-template-columns:1fr auto;gap:10px}.prompt-panel{height:max-content}.prompt-chip{display:block;width:100%;text-align:left;margin-bottom:10px;padding:11px;border-radius:10px;border:1px solid var(--line);background:#100b19;color:#cfc6dd;cursor:pointer}.progress-list{display:grid;gap:10px}.progress-item{display:grid;grid-template-columns:1fr repeat(3,auto);gap:14px;align-items:center;padding:14px;border-radius:13px;background:#0f0a18}.progress-item small{color:var(--muted)}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-card{display:none}.main-content{padding:20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.two-col,.coach-layout{grid-template-columns:1fr}.hero-card{align-items:flex-start}.score-ring{width:90px;height:90px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr}.hero-card{flex-direction:column;gap:18px}.topbar{align-items:flex-start}.ghost-btn{font-size:12px}.sidebar nav{grid-template-columns:1fr 1fr}.macro-bars>div{grid-template-columns:70px 1fr 48px}}
.section-tools{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.standalone-input,.block-label select,.swap-controls select{background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff;outline:none}.standalone-input{min-width:280px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.filter-chip{border:1px solid var(--line);background:#100b19;color:var(--muted);padding:8px 12px;border-radius:999px;cursor:pointer}.filter-chip.active{background:rgba(123,77,255,.22);color:#fff;border-color:rgba(123,77,255,.5)}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.food-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:#0f0a18}.food-card h4{margin:0 0 4px}.food-card p{margin:0 0 12px;color:var(--muted);font-size:12px}.nutrition-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.nutrition-row span{background:#171021;border-radius:9px;padding:8px 4px;text-align:center;font-size:11px;color:var(--muted)}.nutrition-row strong{display:block;color:#fff;font-size:13px;margin-bottom:2px}.stack-form{display:grid;gap:10px}.sample-codes{margin-top:14px}.empty-state{padding:24px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center}.product-result{display:grid;gap:16px}.block-label{display:grid;gap:8px;color:var(--muted);font-size:13px}.builder-list{display:grid;gap:9px;margin-top:16px}.builder-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px;border-radius:12px;background:#0f0a18}.builder-item input{accent-color:var(--accent)}.builder-item small{color:var(--muted)}.sticky-panel{position:sticky;top:20px}.coach-tip{margin-top:16px;padding:14px;border-radius:13px;background:rgba(101,229,165,.08);color:#baf4d6;line-height:1.5}.grocery-aisle{margin-bottom:16px}.grocery-aisle h4{margin:0 0 8px;color:#bba8ff}.grocery-item{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.grocery-item span:last-child{color:var(--muted)}.swap-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.swap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.swap-card{padding:18px;border-radius:16px;border:1px solid var(--line);background:#0f0a18}.swap-card.best{background:linear-gradient(135deg,rgba(123,77,255,.18),rgba(78,156,255,.08));border-color:rgba(123,77,255,.35)}.swap-card h4{margin:0 0 6px}.swap-card p{color:var(--muted);font-size:13px;line-height:1.5}.savings{color:var(--good);font-weight:700}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:rgba(123,77,255,.2);color:#c9baff;font-size:10px;font-weight:700;margin-bottom:10px}@media(max-width:1100px){.food-grid,.swap-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.food-grid,.swap-grid,.swap-controls{grid-template-columns:1fr}.section-tools{align-items:stretch;flex-direction:column}.standalone-input{min-width:0;width:100%}.sticky-panel{position:static}.nutrition-row{grid-template-columns:repeat(2,1fr)}}


/* Phase 3 */
textarea{font:inherit;background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff;resize:vertical;outline:none}.client-list,.checkin-list,.activity-feed,.conversation-list{display:grid;gap:10px}.client-row,.checkin-card,.activity-item,.conversation-item{padding:14px;border:1px solid var(--line);border-radius:14px;background:#0f0a18}.client-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.client-row h4,.checkin-card h4,.conversation-item h4{margin:0 0 5px}.client-row p,.checkin-card p,.conversation-item p,.activity-item{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.client-metrics{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.metric-pill{font-size:11px;padding:6px 8px;border-radius:999px;background:#1a1325;color:#cfc5df}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--good);margin-right:6px}.status-dot.warn{background:#ffbd59}.danger-btn{border:1px solid rgba(255,100,120,.25);background:rgba(255,100,120,.08);color:#ff9aaa;padding:8px 10px;border-radius:10px;cursor:pointer}.checkin-card.unreviewed{border-color:rgba(123,77,255,.45);background:linear-gradient(135deg,rgba(123,77,255,.12),#0f0a18)}.checkin-top{display:flex;justify-content:space-between;gap:10px}.checkin-score{font-weight:800;color:var(--good)}.activity-item strong{color:#fff}.messaging-layout{display:grid;grid-template-columns:310px 1fr;gap:16px}.conversation-sidebar{height:680px;overflow:auto}.conversation-item{cursor:pointer}.conversation-item.active{border-color:rgba(123,77,255,.55);background:rgba(123,77,255,.14)}.conversation-item .unread{float:right;background:var(--accent);color:#fff;min-width:20px;height:20px;border-radius:999px;text-align:center;line-height:20px;font-size:11px}.workout-day{margin-bottom:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.workout-day h4{margin:0;padding:12px 14px;background:#171021}.exercise-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:11px 14px;border-top:1px solid var(--line);font-size:13px}.exercise-row span:nth-child(2),.exercise-row span:nth-child(3){color:var(--muted)}@media(max-width:900px){.messaging-layout{grid-template-columns:1fr}.conversation-sidebar{height:auto}.client-row{grid-template-columns:1fr}.exercise-row{grid-template-columns:1fr auto}.exercise-row span:nth-child(3){display:none}}

/* Phase 4 */
.top-actions{display:flex;align-items:center;gap:10px}.account-badge{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:#100b19;color:#fff;border-radius:13px;padding:7px 10px;cursor:pointer}.account-badge>span:first-child{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.account-badge>span:last-child{display:grid;text-align:left}.account-badge small{color:var(--muted)}.smart-meals{display:grid;gap:9px;margin-top:12px}.smart-meal{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#0f0a18}.photo-drop{min-height:180px;border:1px dashed rgba(154,121,255,.55);border-radius:18px;background:rgba(123,77,255,.07);display:grid;place-content:center;text-align:center;gap:7px;cursor:pointer;padding:20px}.photo-drop input{display:none}.photo-drop span{font-size:38px;color:#bba8ff}.photo-drop small{color:var(--muted)}.photo-preview{margin-top:14px}.photo-preview img{width:100%;max-height:420px;object-fit:contain;border-radius:16px;background:#09060e}.photo-history{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.photo-history-item{padding:12px;border-radius:12px;background:#0f0a18;border:1px solid var(--line);font-size:12px}.community-guideline{margin-top:12px;color:var(--muted);font-size:12px}.community-feed{display:grid;gap:12px}.community-post{padding:16px;border:1px solid var(--line);border-radius:16px;background:#0f0a18}.community-post-head{display:flex;justify-content:space-between;gap:12px}.community-post h4{margin:0}.community-post p{line-height:1.6;color:#ddd6e8}.post-actions{display:flex;gap:8px}.post-actions button{border:0;background:#1a1325;color:#cfc5df;border-radius:999px;padding:7px 10px;cursor:pointer}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.price-card{position:relative;padding:24px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,var(--panel-2),var(--panel))}.price-card.featured{border-color:rgba(123,77,255,.65);transform:translateY(-8px);box-shadow:0 18px 50px rgba(90,46,180,.18)}.price-card h3{font-size:36px;margin:6px 0}.price-card>span{color:var(--muted)}.price-card ul{padding-left:18px;min-height:135px;line-height:2;color:#ddd6e8}.price-card button{width:100%}.plan-status{padding:9px 13px;border-radius:999px;background:rgba(101,229,165,.12);color:#95edbd;font-weight:800}.billing-notice{margin-top:18px}.security-list{display:grid;gap:0;margin-bottom:18px}.security-list div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.good-text{color:var(--good)}.warn-text{color:#ffbd59;font-size:12px}.security-list+button{margin-right:8px}@media(max-width:900px){.pricing-grid{grid-template-columns:1fr}.price-card.featured{transform:none}.top-actions{align-items:flex-end;flex-direction:column}.account-badge{display:none}}@media(max-width:560px){.photo-history{grid-template-columns:1fr}.security-list div{align-items:flex-start;flex-direction:column}.pricing-grid{gap:12px}}

/* Phase 5 */
.button-row{display:flex;gap:10px;flex-wrap:wrap}.launch-checklist{display:grid;gap:12px;margin-top:18px}.launch-checklist label{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025)}.launch-checklist code{font-size:.82em}.stat-card strong{overflow-wrap:anywhere}

/* ===================== PHASE 6 ===================== */
.onboarding-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}.onboarding-step{border:1px solid var(--border);background:rgba(255,255,255,.035);color:var(--muted);padding:10px;border-radius:12px;font-weight:700}.onboarding-step.active{color:#fff;border-color:rgba(133,92,255,.75);background:rgba(111,67,255,.16)}.review-card{padding:18px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.035);line-height:1.8}.consent-row{display:flex!important;flex-direction:row!important;align-items:center;gap:10px}.consent-row input{width:auto}.role-switch{width:auto;min-width:150px}.ops-list,.notification-list{display:grid;gap:10px}.ops-item,.notification-item{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.ops-item.done{opacity:.55}.ops-item-main,.notification-main{display:flex;gap:12px;align-items:flex-start}.task-check{width:20px;height:20px}.priority-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;background:#9d7cff}.priority-dot.high{background:#ff8a8a}.priority-dot.medium{background:#ffd166}.pipeline-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pipeline-column{border:1px solid var(--border);border-radius:14px;padding:10px;background:rgba(255,255,255,.025);min-height:170px}.pipeline-column h4{font-size:12px;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.pipeline-card{padding:10px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;background:rgba(255,255,255,.04)}.pipeline-card strong,.pipeline-card span{display:block}.pipeline-card span{font-size:11px;color:var(--muted);margin-top:3px}.bar-chart{height:260px;display:flex;align-items:flex-end;gap:14px;padding-top:30px}.bar-column{flex:1;text-align:center}.bar{min-height:14px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#9e7bff,#5c35d7);position:relative}.bar span{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:700}.bar-column small{display:block;margin-top:8px;color:var(--muted)}.funnel-chart{display:grid;gap:10px;padding-top:15px}.funnel-stage{margin:auto;padding:12px;text-align:center;border-radius:12px;background:rgba(126,89,255,.13);border:1px solid rgba(148,112,255,.25)}.usage-list{display:grid;gap:14px}.usage-row{display:grid;grid-template-columns:130px 1fr 45px;gap:10px;align-items:center}.usage-track{height:9px;background:rgba(255,255,255,.07);border-radius:20px;overflow:hidden}.usage-fill{height:100%;background:linear-gradient(90deg,#7048ef,#a986ff);border-radius:20px}.notification-item.unread{border-color:rgba(128,92,255,.65);background:rgba(103,64,225,.09)}.notification-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(128,92,255,.15)}.notification-item small{color:var(--muted)}.toggle-row{display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:center;padding:14px;border:1px solid var(--border);border-radius:14px}.toggle-row span{display:grid;gap:4px}.toggle-row small{color:var(--muted)}.toggle-row input{width:20px;height:20px}@media(max-width:900px){.pipeline-board{grid-template-columns:1fr 1fr}.onboarding-steps{grid-template-columns:1fr 1fr}.usage-row{grid-template-columns:100px 1fr 40px}}@media(max-width:600px){.pipeline-board{grid-template-columns:1fr}.bar-chart{gap:7px}.bar span{font-size:9px}}


/* Phase 9 personalized dashboard */
.dashboard-setup{display:flex;align-items:center;gap:16px;margin:0 0 14px;flex-wrap:wrap}
.dashboard-setup span{flex:1;min-width:240px;color:var(--muted)}
.dashboard-setup .primary-btn{width:auto;margin-left:auto}
.cloud-status{margin:0 0 14px;font-size:.88rem}

/* Phase 10 onboarding */
.onboarding-steps.five{grid-template-columns:repeat(5,1fr)}
.unit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.unit-fields label:last-child:nth-child(odd){grid-column:1/-1}
#onboardingForm textarea{width:100%;resize:vertical;min-height:72px}
@media(max-width:1000px){.onboarding-steps.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.onboarding-steps.five,.unit-fields{grid-template-columns:1fr}}


/* Phase 11 cloud client management */
.compact-hero{margin-bottom:16px}.cloud-client-row{align-items:flex-start}.client-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.client-title-line h4{margin:0}.status-chip{font-size:.68rem;text-transform:uppercase;font-weight:800;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--muted)}.status-chip.active{background:rgba(72,211,153,.14);color:#8ff0c2}.status-chip.attention{background:rgba(255,138,138,.14);color:#ffadad}.status-chip.lead{background:rgba(255,209,102,.13);color:#ffe19a}.status-chip.paused{background:rgba(160,160,190,.13);color:#c8c8df}.status-chip.completed{background:rgba(115,185,255,.13);color:#9bd0ff}.client-note{margin-top:10px!important;padding:9px 11px;border-left:3px solid rgba(142,105,255,.55);background:rgba(255,255,255,.025);border-radius:6px;color:var(--muted)!important}


/* Phase 12 client detail dashboard */
.detail-back{margin-bottom:14px}.client-detail-hero{align-items:flex-end}.client-detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.client-detail-layout{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.detail-side-stack{display:grid;gap:16px}.client-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hub-card{text-align:left;border:1px solid var(--line);border-radius:14px;background:#0f0a18;color:#fff;padding:15px;cursor:pointer}.hub-card:hover{border-color:rgba(123,77,255,.7);transform:translateY(-1px)}.hub-card strong,.hub-card span{display:block}.hub-card span{font-size:.78rem;line-height:1.45;color:var(--muted);margin-top:6px}.detail-summary{display:grid;gap:0}.detail-summary div{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-summary span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.detail-summary strong{overflow-wrap:anywhere}.client-row-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.clickable-client{cursor:pointer}.clickable-client:hover{border-color:rgba(123,77,255,.55);background:rgba(123,77,255,.06)}#clientDetailForm textarea{width:100%;resize:vertical;background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff}@media(max-width:1050px){.client-detail-stats{grid-template-columns:repeat(2,1fr)}.client-detail-layout{grid-template-columns:1fr}}@media(max-width:600px){.client-detail-stats,.client-hub-grid{grid-template-columns:1fr}.client-row-actions{width:100%}.client-row-actions button{flex:1}}


/* Phase 13 weekly cloud check-ins */
.checkin-hero{margin-bottom:18px}.checkin-layout{align-items:start}.checkin-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.checkin-tools select{min-width:150px}.mini-metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.mini-metric-grid>div{padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.035)}.mini-metric-grid span{display:block;color:var(--muted);font-size:.78rem}.mini-metric-grid strong{font-size:1.45rem}.checkin-card{padding:18px;margin-bottom:14px}.checkin-score-wrap{text-align:center}.checkin-score-wrap small{display:block;margin-top:4px;color:var(--muted)}.checkin-notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.checkin-notes-grid>div{padding:12px;border-radius:12px;background:rgba(255,255,255,.035)}.checkin-notes-grid p{margin:6px 0 0;color:var(--muted);white-space:pre-wrap}.checkin-review-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:14px;align-items:end}.checkin-review-row textarea{min-height:70px}.cloud-notice{margin-bottom:16px}@media(max-width:900px){.checkin-notes-grid{grid-template-columns:1fr}.checkin-review-row{grid-template-columns:1fr}.mini-metric-grid{grid-template-columns:1fr 1fr 1fr}}

/* Phase 14 meal planner */
.phase-heading{margin-bottom:18px}.cloud-notice{padding:14px 16px;border-radius:14px;background:rgba(101,229,165,.08);color:#baf4d6;margin-bottom:16px}.meal-planner-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.planner-targets,.meal-total-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.planner-targets span,.meal-total-grid div{padding:11px;border-radius:12px;background:#0f0a18;color:var(--muted);font-size:12px;text-align:center}.planner-targets strong,.meal-total-grid strong{display:block;color:#fff;font-size:17px;margin-top:4px}.food-picker-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.food-picker-row select{background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff}.compact-grid{margin-bottom:12px}.full-width{width:100%;margin-top:10px}.custom-food-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.meal-plan-workspace{align-items:start;margin-bottom:16px}.meal-draft-list,.saved-meal-plans{display:grid;gap:12px}.meal-group{border:1px solid var(--line);border-radius:14px;overflow:hidden}.meal-group h4{margin:0;padding:11px 13px;background:#171021}.meal-draft-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 13px;border-top:1px solid var(--line)}.meal-draft-item small{display:block;color:var(--muted);margin-top:4px}.saved-plans-panel{margin-top:16px}.saved-plan-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:#0f0a18}.saved-plan-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.saved-plan-head h4{margin:0 0 5px}.saved-plan-meals{display:grid;gap:8px;margin:12px 0}.saved-plan-meals div{padding:10px;border-radius:10px;background:#171021}.saved-plan-meals p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}@media(max-width:900px){.meal-planner-grid{grid-template-columns:1fr}.food-picker-row{grid-template-columns:1fr}.planner-targets,.meal-total-grid{grid-template-columns:repeat(2,1fr)}}

/* Phase 15.1 nutrition engine */
.selected-food-details{margin:10px 0 14px;padding:12px;border:1px solid rgba(124,139,255,.2);border-radius:14px;background:rgba(18,24,48,.55);display:grid;gap:8px}.selected-food-details>div:first-child{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.selected-food-details span{color:var(--muted)}.food-detail-pills{display:flex;gap:7px;flex-wrap:wrap}.food-detail-pills span{padding:5px 8px;border-radius:999px;background:rgba(104,92,255,.14);border:1px solid rgba(104,92,255,.25);font-size:.76rem}.checkbox-label{display:flex!important;align-items:center;gap:10px}.checkbox-label input{width:auto}.custom-food-form{max-height:620px;overflow:auto;padding-right:6px}

/* Phase 15.2 unified food search */
.food-search-heading{display:flex;align-items:center;gap:12px;margin-bottom:10px}.food-search-heading .standalone-input{flex:1;min-width:0}.search-result-count{white-space:nowrap;color:var(--muted);font-size:.78rem}.compact-food-filters{margin-bottom:10px}.unified-food-select{width:100%;min-height:48px;background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff}.food-detail-heading{display:flex!important;justify-content:space-between;align-items:center!important;gap:12px}.favorite-food-btn{border:1px solid rgba(255,202,87,.35);background:rgba(255,202,87,.08);color:#f6d78d;border-radius:999px;padding:7px 10px;cursor:pointer;font-weight:700}.favorite-food-btn.active{background:rgba(255,202,87,.2);border-color:rgba(255,202,87,.65)}.selected-food-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.selected-food-macros span{padding:8px 6px!important;border-radius:10px!important;background:#0f0a18!important;text-align:center;font-size:.72rem!important}.selected-food-macros strong{display:block;color:#fff;font-size:.9rem}@media(max-width:700px){.food-search-heading{align-items:stretch;flex-direction:column}.selected-food-macros{grid-template-columns:repeat(2,1fr)}.food-detail-heading{align-items:flex-start!important}.favorite-food-btn{flex-shrink:0}}


/* Phase 16.1 — Smart Food Swap Engine */
.saved-meal-section{padding:10px;border-radius:10px;background:#171021}.saved-meal-section>strong{display:block;margin-bottom:7px}.saved-meal-item-list{display:grid;gap:7px}.saved-meal-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}.saved-meal-item:first-child{border-top:0}.saved-meal-item small{color:var(--muted)}.smart-swap-btn{padding:7px 11px;white-space:nowrap}.food-swap-modal{position:fixed;inset:0;z-index:1000;background:rgba(2,1,7,.78);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px}.food-swap-modal.hidden{display:none}.food-swap-dialog{width:min(900px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:22px;background:#0d0915;box-shadow:0 30px 90px rgba(0,0,0,.5);padding:22px}.food-swap-header{display:flex;justify-content:space-between;gap:16px;align-items:start}.food-swap-header h3{margin:0 0 5px}.swap-mode-row{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:16px;align-items:end;margin:20px 0}.swap-mode-row label{display:grid;gap:7px;color:var(--muted);font-size:13px}.swap-mode-row select{background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff}.food-swap-results{display:grid;gap:12px}.food-swap-option{padding:16px;border:1px solid var(--line);border-radius:16px;background:#100b19}.food-swap-option.best{border-color:rgba(101,229,165,.42);background:linear-gradient(135deg,rgba(101,229,165,.08),rgba(123,77,255,.08))}.food-swap-option-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.food-swap-option-head h4{margin:0 0 5px}.food-swap-option-head p{margin:0;color:var(--muted);font-size:12px}.swap-difference-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.swap-difference-row span{padding:6px 9px;border-radius:999px;background:#171021;color:var(--muted);font-size:11px}@media(max-width:700px){.food-swap-modal{padding:10px}.food-swap-dialog{padding:16px}.food-swap-header,.food-swap-option-head{align-items:stretch;flex-direction:column}.swap-mode-row{grid-template-columns:1fr}.food-swap-option-head .primary-btn{width:100%}}

/* ===================== PHASE 16.2: SWAP INTELLIGENCE ===================== */
.swap-controls{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:16px;margin:20px 0}.swap-controls label{display:grid;gap:7px;color:var(--muted);font-size:13px}.swap-controls select,.swap-controls input{background:#0e0a16;border:1px solid var(--line);border-radius:11px;padding:12px;color:#fff}.swap-filter-panel{margin:0 0 18px;border:1px solid var(--line);border-radius:14px;background:#100b19}.swap-filter-panel summary{cursor:pointer;padding:13px 15px;font-weight:700}.swap-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;padding:0 15px 12px}.swap-filter-grid label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.swap-filter-note{margin:0;padding:0 15px 14px;color:var(--muted);font-size:11px}.swap-quality{display:inline-block;margin-bottom:7px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em}.swap-quality.perfect{background:rgba(101,229,165,.14);color:#8af0bd}.swap-quality.excellent{background:rgba(79,195,247,.14);color:#78d8ff}.swap-quality.good{background:rgba(255,204,102,.13);color:#ffd77f}.swap-quality.fair{background:rgba(255,146,95,.12);color:#ffad84}.food-swap-option.perfect{border-color:rgba(101,229,165,.42)}.food-swap-option.excellent{border-color:rgba(79,195,247,.3)}.food-swap-option.good{border-color:rgba(255,204,102,.25)}.swap-diff-pill{padding:6px 9px;border-radius:999px;font-size:11px}.swap-diff-pill.match{background:rgba(101,229,165,.12);color:#8af0bd}.swap-diff-pill.close{background:rgba(255,204,102,.12);color:#ffd77f}.swap-diff-pill.far{background:rgba(255,112,137,.12);color:#ff8ea4}.swap-why{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.06)}.swap-why strong{font-size:11px;color:#fff}.swap-why span{font-size:11px;color:var(--muted)}
@media(max-width:800px){.swap-controls{grid-template-columns:1fr}.swap-filter-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}}


/* Phase 16.3 — Meal Timeline Workspace */
.timeline-meal-card,.timeline-saved-meal{border:1px solid rgba(135,110,255,.22);border-radius:16px;background:rgba(20,20,35,.56);overflow:hidden;margin-bottom:14px}.timeline-meal-head{display:flex;align-items:center;gap:12px;padding:14px 16px}.timeline-meal-head>div:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.timeline-meal-head h4,.timeline-meal-head strong{margin:0}.timeline-meal-head span{font-size:.82rem;color:var(--muted)}.meal-collapse-btn{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--text);cursor:pointer}.meal-card-actions{display:flex;gap:8px;flex-wrap:wrap}.meal-macro-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 16px 12px}.meal-macro-strip span{padding:8px 10px;border-radius:10px;background:rgba(105,75,255,.12);text-align:center;font-size:.8rem;font-weight:700}.timeline-meal-body,.saved-meal-item-list{padding:0 16px 10px}.running-total-row{display:flex;justify-content:space-between;gap:15px;padding:10px 16px;background:rgba(84,211,163,.08);border-top:1px solid rgba(84,211,163,.16);font-size:.82rem}.running-total-row strong{text-align:right}.timeline-saved-meal{background:rgba(255,255,255,.025)}@media(max-width:700px){.timeline-meal-head{align-items:flex-start}.meal-card-actions{flex-direction:column}.meal-macro-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.running-total-row{flex-direction:column}.running-total-row strong{text-align:left}}

/* Phase 16.3 collapse fix: override component display rules when collapsed */
.timeline-meal-body.hidden,
.saved-meal-item-list.hidden {
  display: none !important;
}


/* Phase 16.4 — Recipe Builder */
.recipe-workspace-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);gap:20px;align-items:start}
.recipe-builder-divider{height:1px;background:rgba(255,255,255,.1);margin:22px 0}
.recipe-ingredient-controls{display:grid;grid-template-columns:1fr 1.35fr .55fr auto;gap:12px;align-items:end}
.recipe-ingredient-controls label{display:flex;flex-direction:column;gap:7px;font-size:.86rem;color:var(--muted)}
.recipe-ingredient-draft{display:grid;gap:10px;margin-top:16px}
.recipe-draft-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border:1px solid rgba(255,255,255,.09);background:rgba(10,12,25,.32);border-radius:14px}
.recipe-draft-row div{display:flex;flex-direction:column;gap:4px}.recipe-draft-row span{font-size:.82rem;color:var(--muted)}
.recipe-total-card{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.recipe-total-card>div{padding:13px;text-align:center;border-radius:13px;background:rgba(7,9,20,.48);border:1px solid rgba(255,255,255,.07)}.recipe-total-card span{display:block;color:var(--muted);font-size:.75rem}.recipe-total-card strong{display:block;margin-top:4px}
.recipe-per-serving{text-align:center;color:#cfd4ff;padding:10px;font-weight:700}.recipe-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
.recipe-library-controls{display:grid;grid-template-columns:1fr 180px;gap:10px;margin-bottom:14px}.recipe-library{display:grid;gap:14px;max-height:1050px;overflow:auto;padding-right:4px}
.recipe-card{padding:17px;border-radius:17px;background:rgba(18,20,40,.58);border:1px solid rgba(255,255,255,.1)}.recipe-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.recipe-card-head h4{margin:2px 0 4px}.recipe-card-head span{font-size:.82rem;color:var(--muted)}
.recipe-macro-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.recipe-macro-strip span{text-align:center;padding:9px;border-radius:10px;background:linear-gradient(90deg,rgba(108,82,255,.82),rgba(69,120,255,.72));font-size:.82rem;font-weight:800}
.recipe-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.recipe-tags span{font-size:.72rem;padding:5px 8px;border-radius:999px;background:rgba(76,201,240,.12);border:1px solid rgba(76,201,240,.24)}
.recipe-card details{border-top:1px solid rgba(255,255,255,.08);padding-top:11px}.recipe-card summary{cursor:pointer;font-weight:700}.recipe-ingredient-list{display:grid;gap:7px;margin:11px 0}.recipe-ingredient-list>div{display:flex;justify-content:space-between;padding:8px 10px;background:rgba(0,0,0,.16);border-radius:9px}.recipe-ingredient-list small{color:var(--muted)}.recipe-instructions{color:var(--muted);line-height:1.55}.recipe-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:1100px){.recipe-workspace-grid{grid-template-columns:1fr}.recipe-ingredient-controls{grid-template-columns:1fr 1fr}.recipe-ingredient-controls .primary-btn{grid-column:1/-1}.recipe-library{max-height:none}}
@media(max-width:650px){.recipe-ingredient-controls,.recipe-total-card,.recipe-macro-strip,.recipe-library-controls{grid-template-columns:1fr 1fr}.recipe-card-head{flex-direction:column}.recipe-card-actions{justify-content:stretch}.recipe-card-actions button{flex:1}}

/* Phase 17.1 — USDA FoodData Central */
.external-food-search-row{display:flex;align-items:center;gap:12px;margin:-2px 0 12px}.external-food-search-row .ghost-btn{white-space:nowrap}.external-food-search-row .muted{font-size:.78rem}.usda-source-badge{color:#9ed8ff!important;border-color:rgba(91,184,255,.35)!important;background:rgba(91,184,255,.08)!important}.save-usda-food-btn{margin-top:10px;width:100%}@media(max-width:700px){.external-food-search-row{align-items:stretch;flex-direction:column}}


/* Phase 17.2 — live packaged-food barcode lookup */
.barcode-live-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start}
.barcode-product-image{width:112px;height:112px;object-fit:contain;border-radius:16px;background:rgba(255,255,255,.06);padding:8px}
.barcode-product-main{min-width:0}
.barcode-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.barcode-source-note{margin-top:12px}
.error-text{color:#ff9aa9!important}
@media(max-width:720px){.barcode-live-result{grid-template-columns:1fr}.barcode-product-image{width:96px;height:96px}}

/* Phase 17.3 — unified food search quality */
.food-quality-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:-2px 0 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}.food-quality-controls label{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:700;cursor:pointer}.food-quality-controls input{accent-color:#745cff}.food-quality-controls .muted{margin-left:auto;font-size:.76rem}@media(max-width:700px){.food-quality-controls{align-items:flex-start;flex-direction:column}.food-quality-controls .muted{margin-left:0}}

/* Phase 17.4 — Food Library Control Center */
.food-library-stats{margin-bottom:20px}.food-library-tools{gap:20px;align-items:end}.food-library-tools .standalone-input{min-width:min(430px,100%)}.food-library-filter-row{flex-wrap:wrap}.food-control-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.food-control-card{display:flex;flex-direction:column;gap:12px}.food-control-card.verified-food-card{border-color:rgba(85,231,163,.35)}.food-control-card.review-food-card{border-color:rgba(255,189,89,.35)}.food-control-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.food-control-head h4{margin:0}.food-brand{margin:4px 0 0;color:var(--muted)}.food-review-badge{border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:800;white-space:nowrap}.food-review-badge.verified{background:rgba(85,231,163,.13);color:#83f1bd}.food-review-badge.review{background:rgba(255,189,89,.13);color:#ffd18a}.food-control-actions{display:flex;gap:10px;margin-top:auto}.food-control-actions button{flex:1}.danger-btn{border:1px solid rgba(255,102,139,.55);background:rgba(255,102,139,.08);color:#ff8eaa;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer}.inline-status{margin:14px 0;color:var(--muted)}


/* Phase 17.5 — private food editor */
.modal-overlay{position:fixed;inset:0;background:rgba(5,8,18,.72);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000;backdrop-filter:blur(5px)}
.modal-overlay.hidden{display:none!important}
.modal-card{width:min(920px,100%);max-height:92vh;overflow:auto;background:var(--panel,#111827);border:1px solid rgba(148,163,184,.22);border-radius:22px;box-shadow:0 24px 80px rgba(0,0,0,.45);padding:24px}
.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}
.icon-btn{border:1px solid rgba(148,163,184,.25);background:transparent;color:inherit;border-radius:12px;font-size:28px;line-height:1;width:42px;height:42px;cursor:pointer}
.food-editor-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:18px}
.food-control-actions{flex-wrap:wrap}
@media(max-width:720px){.modal-overlay{padding:10px}.modal-card{padding:18px;border-radius:16px}.food-editor-form .form-grid{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}


/* Phase 18.1 Smart Meal Builder */
.smart-meal-builder-panel{margin:18px 0}.builder-safety-badge{font-size:.78rem;padding:7px 10px;border-radius:999px;background:rgba(116,98,255,.12);color:var(--accent);font-weight:700}.smart-builder-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;margin-top:16px}.smart-builder-targets,.smart-builder-foods{padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--panel-soft)}.smart-builder-targets h4,.smart-builder-foods h4{margin:0 0 12px}.smart-meal-count{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.smart-meal-count input{max-width:100px}.smart-food-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.smart-food-selects label{display:grid;gap:7px}.smart-builder-actions{display:flex;gap:10px;margin-top:14px}.smart-meal-result{margin-top:14px}.smart-meal-result:not(.empty-state){padding:16px;border:1px solid rgba(116,98,255,.35);border-radius:16px;background:linear-gradient(135deg,rgba(116,98,255,.1),rgba(57,210,192,.06))}.smart-meal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.smart-meal-summary div{padding:11px;border-radius:12px;background:var(--panel);border:1px solid var(--border);display:grid;gap:3px}.smart-meal-summary span{font-size:.76rem;color:var(--muted)}.smart-meal-summary strong{font-size:1rem}.smart-portion-list{display:grid;gap:9px}.smart-portion-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--border)}.smart-portion-row small{display:block;color:var(--muted);margin-top:3px}.smart-match-note{margin:12px 0 0;font-size:.85rem}.smart-result-actions{display:flex;justify-content:flex-end;margin-top:14px}@media(max-width:850px){.smart-builder-grid{grid-template-columns:1fr}.smart-food-selects{grid-template-columns:1fr}.smart-meal-summary{grid-template-columns:repeat(2,1fr)}}


/* Phase 18.2 — Meal Plan Templates */
.meal-template-panel{margin-top:22px}
.template-create-grid{display:grid;grid-template-columns:1.35fr 1fr auto;gap:14px;align-items:end;margin-top:16px}
.template-create-grid label{display:grid;gap:7px}
.template-library-tools{display:grid;grid-template-columns:1fr 220px;gap:12px;margin:18px 0 12px}
.meal-template-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.meal-template-card{border:1px solid var(--border);border-radius:18px;padding:16px;background:var(--panel-soft,#11162a)}
.meal-template-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.meal-template-card h4{margin:3px 0 5px}
.meal-template-card small{color:var(--muted)}
.template-macro-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:13px 0}
.template-macro-strip span{padding:8px 6px;border-radius:10px;background:rgba(117,90,255,.12);text-align:center;font-size:.82rem;font-weight:700}
.template-meal-preview{display:grid;gap:7px;margin:10px 0 14px}
.template-meal-preview div{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.035)}
.template-card-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:850px){.template-create-grid{grid-template-columns:1fr}.template-library-tools{grid-template-columns:1fr}.template-macro-strip{grid-template-columns:repeat(2,1fr)}}


/* Phase 18.3 — Automatic Draft Scaling */
.draft-scaler-panel{margin-top:22px}
.draft-scaler-grid{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(0,1.25fr);gap:16px;margin-top:16px}
.draft-scaler-controls{display:grid;gap:11px;padding:16px;border:1px solid var(--border);border-radius:16px;background:var(--panel-soft)}
.draft-scaler-controls label{display:grid;gap:7px}
.draft-scale-preview{padding:16px;border:1px solid rgba(116,98,255,.35);border-radius:16px;background:linear-gradient(135deg,rgba(116,98,255,.1),rgba(57,210,192,.06))}
.scale-preview-head{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;text-align:center}
.scale-preview-head>div:not(.scale-factor){display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.scale-preview-head span,.scale-macro-comparison span{font-size:.76rem;color:var(--muted)}
.scale-factor{font-weight:800;color:var(--accent);white-space:nowrap}
.scale-macro-comparison{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}
.scale-macro-comparison div{display:grid;gap:3px;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--panel)}
.draft-scale-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.draft-scale-actions button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:820px){.draft-scaler-grid{grid-template-columns:1fr}.scale-preview-head{grid-template-columns:1fr}.scale-factor{padding:2px}.scale-macro-comparison{grid-template-columns:1fr}.draft-scale-actions{flex-direction:column}.draft-scale-actions button{width:100%}}

/* Phase 18.3.1 — intelligent portion scaling */
.scale-control-group{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.025)}
.scale-control-group>strong{font-size:.84rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.scale-control-group label{display:flex;align-items:center;gap:8px;font-size:.9rem}
.scale-control-group input[type="checkbox"]{width:auto;margin:0}
.scale-minimum-panel{margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--panel-soft)}
.section-tools.compact{margin-bottom:10px}
.scale-minimum-list{display:grid;gap:8px;max-height:310px;overflow:auto}
.scale-minimum-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025)}
.scale-minimum-row>span:first-child{display:grid;gap:2px;min-width:0}
.scale-minimum-row small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scale-minimum-input{display:flex;align-items:center;gap:7px;flex:0 0 150px}
.scale-minimum-input input{min-width:0;width:100%}
.scale-minimum-input em{font-style:normal;color:var(--muted);font-size:.85rem}
.scale-summary-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.scale-summary-chips span{padding:5px 9px;border-radius:999px;background:rgba(116,98,255,.13);border:1px solid rgba(116,98,255,.28);font-size:.78rem}
.scale-change-list{display:grid;gap:7px;margin-top:12px;max-height:280px;overflow:auto}
.scale-change-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 10px;border-radius:11px;border:1px solid var(--border);background:rgba(255,255,255,.025)}
.scale-change-row>span:first-child{display:grid;gap:2px;min-width:0}
.scale-change-row small{color:var(--muted)}
.scale-change-row.changed{border-color:rgba(57,210,192,.35);background:rgba(57,210,192,.055)}
.scale-change-row.locked{opacity:.78}
.scale-preview-head small{display:block;color:var(--muted);margin-top:2px}
@media(max-width:620px){.scale-minimum-row,.scale-change-row{align-items:flex-start;flex-direction:column}.scale-minimum-input{width:100%;flex-basis:auto}.scale-change-row>span:last-child{width:100%}}


/* Phase 19.1 — Weekly Progress Trends */
.optional-label{font-size:.72rem;color:var(--muted);font-weight:500}
.checkin-progress-overview{margin:16px 0;padding:16px;border:1px solid rgba(116,98,255,.32);border-radius:18px;background:linear-gradient(135deg,rgba(116,98,255,.09),rgba(57,210,192,.05))}
.checkin-progress-overview.empty-state{border-color:var(--border);background:var(--panel-soft)}
.progress-overview-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.progress-overview-head h4{margin:2px 0 4px;font-size:1.1rem}.progress-overview-head span{color:var(--muted);font-size:.82rem}
.progress-delta-grid{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:8px}
.progress-delta-grid div{padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel);display:grid;gap:3px}
.progress-delta-grid span{font-size:.72rem;color:var(--muted)}.progress-delta-grid strong{font-size:.95rem}
.progress-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px}
.progress-chart{padding:11px;border:1px solid var(--border);border-radius:13px;background:var(--panel)}
.progress-chart-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:6px}.progress-chart-head span{font-size:.76rem;color:var(--muted)}
.progress-chart svg{display:block;width:100%;height:90px;overflow:visible}.progress-chart polyline{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.progress-chart circle{fill:var(--panel);stroke:var(--accent);stroke-width:3}
@media(max-width:760px){.progress-overview-head{flex-direction:column}.progress-delta-grid{width:100%;grid-template-columns:1fr}.progress-chart-grid{grid-template-columns:1fr}}

/* Phase 19.1 flexible optional check-ins */
.checkin-photo-fields{border:1px solid var(--border);border-radius:16px;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.checkin-photo-fields legend{padding:0 8px;font-weight:700}.checkin-photo-fields small{grid-column:1/-1;color:var(--muted)}
.checkin-photo-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft)}
.checkin-photo-link{display:inline-flex;padding:6px 10px;border-radius:999px;border:1px solid rgba(116,98,255,.35);text-decoration:none;font-size:.8rem}
@media(max-width:760px){.checkin-photo-fields{grid-template-columns:1fr}}

/* Phase 19.2 — private progress photo comparison */
.photo-comparison-panel{margin:18px 0 20px;padding:18px;border:1px solid rgba(116,98,255,.35);border-radius:20px;background:linear-gradient(135deg,rgba(116,98,255,.09),rgba(57,210,192,.04))}
.photo-comparison-controls{display:grid;grid-template-columns:1fr 1fr .8fr;gap:12px;margin:14px 0}.photo-comparison-controls label{display:grid;gap:7px;font-size:.82rem;color:var(--muted)}
.photo-comparison-viewer{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.photo-compare-card{overflow:hidden;border:1px solid var(--border);border-radius:18px;background:var(--panel-soft)}
.photo-compare-heading{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}.photo-compare-heading span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.photo-frame{aspect-ratio:3/4;background:#08060d;display:flex;align-items:center;justify-content:center;overflow:hidden}.photo-frame img{width:100%;height:100%;object-fit:contain}
.photo-compare-metrics{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px}.photo-compare-metrics span{padding:6px 9px;border-radius:999px;background:rgba(116,98,255,.12);font-size:.78rem;color:#ddd5ef}
.photo-comparison-delta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.photo-comparison-delta div{padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--panel-soft)}.photo-comparison-delta span{display:block;color:var(--muted);font-size:.76rem}.photo-comparison-delta strong{display:block;margin-top:5px}
@media(max-width:760px){.photo-comparison-controls,.photo-comparison-viewer,.photo-comparison-delta{grid-template-columns:1fr}}


/* Phase 20.1: Coach Command Center */
.command-center-hero{margin-bottom:20px}.command-center-stats{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:20px}.command-center-tools{gap:18px;align-items:end}.command-center-tools .standalone-input{max-width:360px}.command-center-filters{margin:18px 0 14px}.command-center-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.command-client-card{border:1px solid var(--border);border-radius:18px;padding:18px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));box-shadow:0 10px 30px rgba(0,0,0,.14)}.command-client-card.attention{border-color:rgba(255,99,99,.45)}.command-client-card.review{border-color:rgba(255,193,7,.38)}.command-client-card.on-track{border-color:rgba(84,214,164,.32)}.command-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.command-card-head h4{font-size:1.12rem;margin:9px 0 4px}.command-card-head p{margin:0;color:var(--muted)}.command-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.74rem;font-weight:800;letter-spacing:.02em}.command-status.on-track{color:#83ecc5;background:rgba(49,190,137,.14)}.command-status.review{color:#ffd66b;background:rgba(255,193,7,.13)}.command-status.attention{color:#ff9d9d;background:rgba(255,83,83,.14)}.command-adherence{text-align:right}.command-adherence strong{display:block;font-size:1.35rem}.command-adherence span{color:var(--muted);font-size:.76rem}.command-reason{margin:14px 0;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);color:var(--muted);font-size:.88rem}.command-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.command-metrics div{padding:10px;border-radius:12px;background:rgba(0,0,0,.13)}.command-metrics span{display:block;color:var(--muted);font-size:.72rem;margin-bottom:4px}.command-metrics strong{font-size:.88rem;line-height:1.3}.command-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.command-card-actions .ghost-btn{padding:8px 10px;font-size:.78rem}.command-center-bottom{margin-top:20px}.status-rule-list{display:grid;gap:14px}.status-rule-list>div{display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:start}.status-rule-list p{margin:3px 0 0;color:var(--muted);font-size:.88rem}.activity-reviewed,.activity-pending{display:inline-flex;margin-left:6px;padding:3px 7px;border-radius:999px;font-size:.7rem;font-weight:700}.activity-reviewed{color:#83ecc5;background:rgba(49,190,137,.14)}.activity-pending{color:#ffd66b;background:rgba(255,193,7,.13)}
@media(max-width:1200px){.command-center-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.command-center-grid{grid-template-columns:1fr}}
@media(max-width:720px){.command-center-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.command-center-tools{align-items:stretch}.command-center-tools .standalone-input{max-width:none}.command-card-head{flex-direction:column}.command-adherence{text-align:left}.command-metrics{grid-template-columns:1fr}.status-rule-list>div{grid-template-columns:1fr}}


/* Phase 20.2 — Coach Review Inbox */
.review-inbox-panel{margin-top:20px}.review-inbox-tools{align-items:flex-start}.review-inbox-counter{display:grid;justify-items:center;min-width:90px;padding:12px 16px;border:1px solid rgba(255,193,7,.35);border-radius:16px;background:rgba(255,193,7,.08)}.review-inbox-counter strong{font-size:1.7rem}.review-inbox-counter span{color:var(--muted);font-size:.75rem}.review-inbox-workspace{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.7fr);gap:16px;margin-top:16px}.review-inbox-list{display:grid;align-content:start;gap:8px;max-height:650px;overflow:auto;padding-right:4px}.review-inbox-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--panel-soft);color:inherit;cursor:pointer}.review-inbox-item:hover,.review-inbox-item.active{border-color:rgba(116,98,255,.55);background:rgba(116,98,255,.1)}.review-inbox-item span{display:grid;gap:3px;min-width:0}.review-inbox-item strong,.review-inbox-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-inbox-item small{color:var(--muted)}.review-inbox-item em{font-style:normal;font-weight:800}.review-inbox-detail{display:grid;gap:14px;padding:16px;border:1px solid var(--border);border-radius:17px;background:rgba(255,255,255,.018)}.review-inbox-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.review-inbox-header h4{margin:3px 0;font-size:1.2rem}.review-inbox-header p{margin:0;color:var(--muted)}.review-inbox-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.review-inbox-metrics div{padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft)}.review-inbox-metrics span{display:block;color:var(--muted);font-size:.72rem}.review-inbox-metrics strong{display:block;margin-top:4px}.review-inbox-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.review-inbox-notes>div{padding:11px;border-radius:12px;background:rgba(0,0,0,.13)}.review-inbox-notes p{margin:6px 0 0;color:var(--muted);white-space:pre-wrap}.review-inbox-detail label{display:grid;gap:7px;font-size:.82rem;color:var(--muted)}.review-inbox-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.review-inbox-workspace{grid-template-columns:1fr}.review-inbox-list{max-height:240px}.review-inbox-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.review-inbox-notes{grid-template-columns:1fr}}
@media(max-width:560px){.review-inbox-tools,.review-inbox-header{flex-direction:column}.review-inbox-metrics{grid-template-columns:1fr}.review-inbox-actions{flex-direction:column}.review-inbox-actions button{width:100%}}


/* Phase 20.3 — Coach Follow-Up Board */
.follow-up-panel{margin-top:20px}.follow-up-tools{align-items:flex-start}.follow-up-counter{display:grid;justify-items:center;min-width:100px;padding:12px 16px;border:1px solid rgba(116,98,255,.35);border-radius:16px;background:rgba(116,98,255,.08)}.follow-up-counter strong{font-size:1.7rem}.follow-up-counter span{color:var(--muted);font-size:.75rem}.follow-up-form{display:grid;grid-template-columns:1.1fr 1fr .8fr .7fr 2fr auto;gap:10px;align-items:end;margin:18px 0}.follow-up-form label{display:grid;gap:7px;font-size:.8rem;color:var(--muted)}.follow-up-form input,.follow-up-form select{min-width:0}.follow-up-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.follow-up-list{display:grid;gap:10px;margin-top:14px}.follow-up-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--panel-soft)}.follow-up-item.overdue{border-color:rgba(255,83,83,.42)}.follow-up-item.completed{opacity:.7}.follow-up-item.completed h4{text-decoration:line-through}.follow-up-item h4{margin:7px 0 4px}.follow-up-item p{margin:0;color:var(--muted);font-size:.84rem}.follow-up-badges{display:flex;flex-wrap:wrap;gap:6px}.follow-up-badges span{padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.06);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.follow-up-priority.high{color:#ffd66b;background:rgba(255,193,7,.13)}.follow-up-priority.urgent,.follow-up-overdue{color:#ff9d9d!important;background:rgba(255,83,83,.14)!important}.follow-up-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.follow-up-actions button{font-size:.76rem;padding:8px 10px}.danger-btn{border-color:rgba(255,83,83,.3)!important}
@media(max-width:1200px){.follow-up-form{grid-template-columns:repeat(2,minmax(0,1fr))}.follow-up-task-label{grid-column:1/-1}.follow-up-form .primary-btn{width:100%}}
@media(max-width:720px){.follow-up-tools,.follow-up-item{flex-direction:column;align-items:stretch}.follow-up-form{grid-template-columns:1fr}.follow-up-task-label{grid-column:auto}.follow-up-actions{justify-content:stretch}.follow-up-actions button{flex:1}}


/* Phase 20.4 — Weekly Coach Planner */
.weekly-planner-panel{margin-top:20px}.weekly-planner-tools{align-items:flex-start}.weekly-planner-nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.weekly-planner-summary{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px;margin:18px 0}.weekly-planner-summary>div{padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--panel-soft)}.weekly-planner-summary span{display:block;color:var(--muted);font-size:.72rem}.weekly-planner-summary strong{display:block;margin-top:5px;font-size:1rem}.weekly-planner-grid{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:10px;overflow-x:auto;padding-bottom:5px}.planner-day{min-height:260px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.018);overflow:hidden}.planner-day.today{border-color:rgba(57,210,192,.55);box-shadow:0 0 0 1px rgba(57,210,192,.12)}.planner-day>header{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.025)}.planner-day>header span{font-size:.8rem;font-weight:700}.planner-day>header strong{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:rgba(116,98,255,.13);font-size:.74rem}.planner-day-tasks{display:grid;gap:8px;padding:9px}.planner-task{padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft)}.planner-task.high{border-color:rgba(255,193,7,.34)}.planner-task.urgent,.planner-task.overdue{border-color:rgba(255,83,83,.45)}.planner-task-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px}.planner-task-top span{text-transform:uppercase;font-size:.64rem;font-weight:800;letter-spacing:.04em}.planner-task-top small{color:var(--muted);font-size:.66rem}.planner-task>strong{display:block;font-size:.82rem;line-height:1.35}.planner-task>p{margin:5px 0 0;color:var(--muted);font-size:.72rem}.planner-task-actions{display:flex;gap:5px;margin-top:9px}.planner-task-actions button{flex:1;padding:6px 7px;font-size:.68rem}.planner-empty{display:grid;place-items:center;min-height:170px;color:var(--muted);font-size:.78rem}.planner-overdue-strip{margin:0 0 14px;padding:13px;border:1px solid rgba(255,83,83,.36);border-radius:15px;background:rgba(255,83,83,.055)}.planner-overdue-strip>div:first-child{display:flex;gap:10px;align-items:baseline;margin-bottom:10px}.planner-overdue-strip span{color:var(--muted);font-size:.8rem}.planner-overdue-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media(max-width:1100px){.weekly-planner-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-overdue-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.weekly-planner-tools{flex-direction:column}.weekly-planner-nav{justify-content:stretch}.weekly-planner-nav button{flex:1}.weekly-planner-summary{grid-template-columns:1fr}.planner-overdue-cards{grid-template-columns:1fr}}


/* PHASE 20.5: DUE-TODAY CENTER */
.due-today-panel{margin-top:20px}.due-today-tools{align-items:flex-start}.due-today-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.due-today-summary>div{padding:13px 14px;border:1px solid var(--border);border-radius:14px;background:var(--panel-soft)}.due-today-summary span{display:block;color:var(--muted);font-size:.72rem}.due-today-summary strong{display:block;margin-top:5px;font-size:1.15rem}.due-today-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.due-today-card{padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.018)}.due-today-card.attention{border-color:rgba(255,83,83,.38)}.due-today-card.review{border-color:rgba(255,193,7,.35)}.due-today-card-head{display:flex;justify-content:space-between;margin-bottom:8px}.due-today-card-head span{text-transform:uppercase;font-size:.65rem;font-weight:800;letter-spacing:.05em;color:var(--muted)}.due-today-card h4{margin:0 0 6px;font-size:.92rem}.due-today-card p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.due-today-actions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.due-today-actions button{padding:7px 10px;font-size:.72rem}
@media(max-width:850px){.due-today-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.due-today-grid{grid-template-columns:1fr}}
@media(max-width:520px){.due-today-summary{grid-template-columns:1fr}.due-today-tools{flex-direction:column}.due-today-tools button{width:100%}}


/* ===================== PHASE 21.1: CLIENT PORTAL FOUNDATION ===================== */
.client-nav{display:none}
.client-portal-view{display:none}
body.client-portal-mode .sidebar nav .nav-btn:not(.client-nav){display:none!important}
body.client-portal-mode .sidebar nav .client-nav{display:block}
body.client-portal-mode .sidebar-card{display:none}
body.client-portal-mode #resetData{display:none}
body.client-portal-mode .client-portal-view.active-view{display:block}
.client-portal-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px;border:1px solid rgba(126,108,255,.36);border-radius:22px;background:linear-gradient(135deg,rgba(91,70,255,.18),rgba(28,194,255,.08));margin-bottom:20px}
.client-portal-hero h3{font-size:clamp(1.7rem,3vw,2.5rem);margin:.25rem 0}
.client-readonly-badge{white-space:nowrap;border:1px solid rgba(129,238,196,.45);background:rgba(41,203,145,.12);padding:10px 14px;border-radius:999px;font-weight:700}
.client-portal-list{display:grid;gap:16px}
.client-plan-header{display:flex;justify-content:space-between;gap:20px;align-items:center}
.client-plan-macros{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.client-plan-macros span{padding:8px 11px;border-radius:999px;background:rgba(100,82,255,.18);font-weight:700}
.client-meal-card h4{font-size:1.15rem;margin-bottom:12px}.client-food-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid rgba(255,255,255,.09)}.client-food-row:first-of-type{border-top:0}.client-food-row div{display:grid;gap:4px}.client-food-row span,.client-food-row small{color:var(--muted)}
.client-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.client-profile-grid div{display:grid;gap:5px;padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025)}.client-profile-grid span{color:var(--muted);font-size:.84rem}.client-profile-grid strong{text-transform:none}
.client-mini-chart{min-height:220px}.client-mini-chart>div{display:flex;justify-content:space-between}.client-mini-chart svg{width:100%;height:150px;margin-top:15px;overflow:visible}.client-mini-chart polyline{stroke:#7d6cff;stroke-width:3;filter:drop-shadow(0 0 5px rgba(125,108,255,.6))}
.client-checkin-card p{line-height:1.55}.coach-response-box{margin-top:14px;padding:14px;border-left:3px solid #7d6cff;border-radius:10px;background:rgba(125,108,255,.09)}
@media(max-width:760px){.client-portal-hero,.client-plan-header,.client-food-row{align-items:flex-start;flex-direction:column}.client-readonly-badge{white-space:normal}.client-profile-grid{grid-template-columns:1fr}.client-plan-macros{justify-content:flex-start}}


/* Phase 21.2: client self check-ins */
.client-checkin-hero{align-items:center}
.client-self-history-card{border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px;background:rgba(255,255,255,.025);display:grid;gap:10px}
.client-self-history-card>div{display:flex;justify-content:space-between;gap:12px;align-items:center}
.client-self-history-card p{margin:0;padding-top:8px;border-top:1px solid var(--line)}
.client-portal-mode #clientSelfCheckinForm input,.client-portal-mode #clientSelfCheckinForm textarea{color:var(--text)}
@media(max-width:760px){.client-self-history-card>div{align-items:flex-start;flex-direction:column}}


/* Phase 21.2.1 — Coach Preview as Client */
.client-preview-launcher{border:1px solid rgba(123,92,255,.34);background:linear-gradient(135deg,rgba(123,92,255,.10),rgba(36,211,184,.05));}
.client-preview-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;margin-top:14px;}
.client-preview-controls label{display:grid;gap:7px;font-weight:700;}
.client-preview-controls select{width:100%;}
.client-preview-banner{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;border:1px solid rgba(255,193,7,.45);background:rgba(52,38,10,.96);backdrop-filter:blur(12px);border-radius:0 0 14px 14px;}
.client-preview-banner>div{display:grid;gap:2px}.client-preview-banner span{font-size:.84rem;color:var(--muted);}
.coach-client-preview-mode .client-self-checkin-form.preview-disabled{opacity:.58;pointer-events:none;}
.coach-client-preview-mode .client-self-checkin-form.preview-disabled::before{content:'READ-ONLY COACH PREVIEW';display:block;margin-bottom:12px;font-weight:800;letter-spacing:.08em;color:#ffd56a;}
@media(max-width:720px){.client-preview-controls{grid-template-columns:1fr}.client-preview-banner{align-items:flex-start;flex-direction:column}.client-preview-banner button{width:100%;}}

/* Phase 21.3 — coach-approved client swap requests */
.client-meal-plan-list{display:grid;gap:16px}.client-food-swap-row{align-items:center;gap:16px}.client-food-actions{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;justify-content:flex-end}.client-food-actions small{white-space:nowrap}.client-request-swap:disabled{opacity:.55;cursor:not-allowed}.swap-request-status{display:inline-flex;width:max-content;margin-top:6px;padding:4px 9px;border-radius:999px;font-size:.73rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:rgba(124,92,255,.16);color:#c9bcff}.swap-request-status.approved{background:rgba(46,204,113,.15);color:#83f2ae}.swap-request-status.declined{background:rgba(255,92,122,.14);color:#ff9caf}.swap-request-status.pending{background:rgba(255,190,70,.14);color:#ffd27e}.client-swap-modal{max-width:620px}.coach-swap-list{display:grid;gap:12px;margin-top:14px}.coach-swap-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(9,12,30,.42)}.coach-swap-card.pending{border-color:rgba(255,190,70,.36)}.coach-swap-card.approved{border-color:rgba(46,204,113,.28)}.coach-swap-card.declined{opacity:.72}.coach-swap-main h4{margin:8px 0 5px}.coach-swap-main p,.coach-swap-main small{display:block;margin:0;color:var(--muted)}.coach-swap-review{min-width:290px;display:grid;gap:10px}.coach-swap-review label{display:grid;gap:6px}.coach-swap-review input{min-width:260px}@media(max-width:850px){.coach-swap-card{grid-template-columns:1fr}.coach-swap-review{min-width:0}.coach-swap-review input{min-width:0}.client-food-actions{justify-content:flex-start;align-items:flex-start}}


/* Phase 21.4 — Smart Swap Approval Engine */
.coach-swap-review-modal{max-width:820px}.swap-request-context{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;margin-bottom:16px}.swap-request-context>div{padding:13px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.025)}.swap-request-context span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:5px}.swap-request-context p{margin:0}.smart-swap-analysis{margin:16px 0;padding:16px;border:1px solid rgba(124,92,255,.30);border-radius:16px;background:rgba(124,92,255,.055)}.swap-match-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.swap-match-header h4{margin:8px 0 4px}.swap-match-header p{margin:0;color:var(--muted)}.swap-match-score{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:.78rem;font-weight:900}.swap-match-score.excellent{background:rgba(46,204,113,.16);color:#89f4b2}.swap-match-score.good{background:rgba(255,190,70,.16);color:#ffd27e}.swap-match-score.review{background:rgba(255,92,122,.14);color:#ff9caf}.swap-source-pill{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.06);font-size:.78rem;color:var(--muted)}.swap-macro-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.swap-macro-grid>div{display:grid;gap:3px;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(5,8,23,.38)}.swap-macro-grid span,.swap-macro-grid small{color:var(--muted);font-size:.78rem}.swap-macro-grid strong{font-size:1.2rem}.swap-quantity-control{display:grid;grid-template-columns:1fr minmax(120px,180px) 110px;align-items:center;gap:10px}.smart-swap-actions{flex-wrap:wrap}.danger-btn{border-color:rgba(255,92,122,.35)!important;color:#ff9caf!important}.approved-swap-summary{margin-top:8px!important;color:#9fe8c1!important}.coach-swap-review{display:flex;gap:8px;align-items:center;min-width:0}.coach-swap-review .primary-btn,.coach-swap-review .ghost-btn{white-space:nowrap}@media(max-width:760px){.swap-request-context{grid-template-columns:1fr}.swap-match-header{flex-direction:column}.swap-macro-grid{grid-template-columns:repeat(2,1fr)}.swap-quantity-control{grid-template-columns:1fr}.smart-swap-actions button{width:100%}.coach-swap-review{align-items:stretch;flex-direction:column}}


/* Phase 21.5 — In-app swap notification center */
.swap-alert-shell{position:relative}.swap-alert-button{position:relative;width:44px;height:44px;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text);font-size:18px;cursor:pointer}.swap-alert-button:hover{border-color:var(--primary)}.swap-alert-badge{position:absolute;right:-5px;top:-7px;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#ef476f;color:white;display:grid;place-items:center;font-size:11px;font-weight:800;border:2px solid var(--bg)}.swap-alert-popover{position:absolute;right:0;top:54px;width:min(420px,calc(100vw - 32px));max-height:520px;overflow:auto;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--panel);box-shadow:0 24px 70px rgba(0,0,0,.42);z-index:120}.swap-alert-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.swap-alert-head h3{margin:2px 0 0}.swap-alert-list{display:grid;gap:9px}.swap-alert-item{width:100%;display:grid;grid-template-columns:36px 1fr;gap:10px;text-align:left;padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025);color:var(--text);cursor:pointer}.swap-alert-item.unread{border-color:rgba(85,112,255,.72);background:rgba(85,112,255,.1)}.swap-alert-item:hover{transform:translateY(-1px);border-color:var(--primary)}.swap-alert-item>span:last-child{display:grid;gap:3px}.swap-alert-item small{color:var(--muted);line-height:1.35}.swap-alert-item em{font-size:11px;color:var(--muted);font-style:normal}.swap-alert-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#26c6da);color:white;font-weight:800}.client-portal-mode .swap-alert-popover{position:fixed;right:24px;top:82px}@media(max-width:760px){.swap-alert-popover{position:fixed;left:12px;right:12px;top:76px;width:auto}.top-actions{gap:8px}.swap-alert-head{align-items:flex-start}}


/* Phase 21.6 — Swap Policy Controls */
.swap-policy-panel{border-color:rgba(111,94,255,.35)}
.swap-policy-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(200px,1fr) minmax(240px,1.5fr) auto;gap:12px;align-items:end}
.swap-policy-form label{display:grid;gap:7px}
.swap-policy-note{min-width:0}
@media(max-width:980px){.swap-policy-form{grid-template-columns:1fr 1fr}.swap-policy-note{grid-column:1/-1}}
@media(max-width:640px){.swap-policy-form{grid-template-columns:1fr}.swap-policy-note{grid-column:auto}}


/* Phase 23.1 secure workout program builder */
.workout-library-panel{margin-top:18px}.workout-program-list{display:grid;gap:12px;margin-top:14px}.workout-program-card{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.02)}.workout-program-card h4{margin:6px 0}.workout-program-card p,.workout-program-card small{color:var(--muted)}.workout-program-actions{display:flex;gap:8px;flex-wrap:wrap}.client-workout-list{display:grid;gap:16px}.client-workout-header{border-left:4px solid var(--accent)}.client-workout-day h4{margin:0 0 12px}.client-exercise-row{display:grid;grid-template-columns:minmax(180px,1.6fr) repeat(3,minmax(80px,.55fr));gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.client-exercise-row:last-child{border-bottom:0}.client-exercise-row span{color:var(--muted);font-size:.9rem}.client-exercise-row small{display:block;color:var(--muted);margin-top:3px}@media(max-width:760px){.workout-program-card{align-items:flex-start;flex-direction:column}.client-exercise-row{grid-template-columns:1fr 1fr}.client-exercise-row div{grid-column:1/-1}}

/* Phase 23.2 exercise video library */
.exercise-video-library-layout{margin-top:1rem}.exercise-library-list{display:grid;gap:.8rem}.exercise-library-card{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}.exercise-library-card h4{margin:.35rem 0}.exercise-library-card p,.exercise-library-card small{display:block;margin:.3rem 0;color:var(--muted)}.exercise-library-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.client-exercise-video-row{grid-template-columns:minmax(220px,1fr) auto auto auto auto}.client-exercise-video-row>div small{display:block;margin-top:.3rem}.exercise-video-btn{white-space:nowrap;text-decoration:none}@media(max-width:800px){.exercise-library-card{flex-direction:column}.exercise-library-actions{justify-content:flex-start}.client-exercise-video-row{grid-template-columns:1fr 1fr}.client-exercise-video-row>div{grid-column:1/-1}}


/* Phase 23.3 — secure client workout logging */
.client-workout-day-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.client-workout-day-head h4{margin:0}.client-workout-day-head small{display:block;margin-top:4px;opacity:.72}.workout-completion-summary{margin:10px 0 0}.workout-log-modal{width:min(980px,94vw);max-height:92vh;overflow:auto}.workout-log-exercises{display:grid;gap:14px}.workout-log-exercise{border:1px solid var(--border);border-radius:16px;padding:14px;background:rgba(8,10,30,.38)}.workout-log-exercise>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.workout-log-exercise small{opacity:.72}.workout-set-grid{display:grid;gap:8px}.workout-set-row{display:grid;grid-template-columns:70px repeat(3,minmax(90px,1fr)) 90px;gap:8px;align-items:end}.workout-set-row label{font-size:.75rem}.workout-set-row input{margin-top:4px}.workout-log-safety{padding:12px 14px;border:1px solid rgba(255,190,70,.35);border-radius:12px;background:rgba(255,190,70,.08);font-size:.9rem}.workout-history-panel{margin-top:16px}.workout-history-row{display:grid;grid-template-columns:120px minmax(180px,1fr) 150px;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.workout-history-row small{grid-column:1/-1;opacity:.75}.workout-history-row:last-child{border-bottom:0}@media(max-width:760px){.workout-set-row{grid-template-columns:60px 1fr 1fr}.workout-set-row label:nth-of-type(3),.workout-set-row .check-row{grid-column:auto}.workout-history-row{grid-template-columns:1fr}.client-workout-day-head{align-items:flex-start;flex-direction:column}}


/* Phase 23.4 training analytics */
.workout-analytics-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:14px}.workout-analytics-grid>div{border:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.38);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}.workout-analytics-grid strong{font-size:1.05rem}.workout-analytics-grid span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.68}.workout-program-analytics-card{align-items:flex-start}.workout-program-analytics-card>div:first-child{flex:1;min-width:0}.coach-workout-summary{margin-top:18px}.client-workout-header .workout-analytics-grid{margin:16px 0}.client-workout-header .coach-response-box{margin-top:16px}@media(max-width:1000px){.workout-analytics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.workout-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Phase 23.5 — Personal records and exercise history */
.exercise-progress-panel{margin-top:18px}.exercise-progress-panel .section-tools{align-items:end}.exercise-progress-panel label{display:grid;gap:6px;min-width:190px}.exercise-pr-table{display:grid;margin-top:16px;border:1px solid var(--border);border-radius:16px;overflow:hidden}.exercise-pr-head,.exercise-pr-row{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(110px,.75fr));gap:12px;align-items:center;padding:12px 14px}.exercise-pr-head{background:rgba(124,92,255,.09);color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.exercise-pr-row{border-top:1px solid var(--border)}.exercise-pr-row span{color:var(--muted)}.client-exercise-progress{margin:18px 0 6px}.client-exercise-progress .exercise-pr-table{margin-top:10px}@media(max-width:850px){.exercise-pr-head{display:none}.exercise-pr-row{grid-template-columns:1fr 1fr}.exercise-pr-row strong{grid-column:1/-1}.exercise-progress-panel .section-tools{align-items:flex-start;flex-direction:column}.exercise-progress-panel label{width:100%}}


/* Phase 23.6 — Workout adherence and coach attention */
.workout-adherence-panel{margin-top:18px}.workout-adherence-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.workout-adherence-filters label{display:grid;gap:6px;min-width:170px}.workout-adherence-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.workout-adherence-summary>div{display:grid;gap:4px;padding:13px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.workout-adherence-summary strong{font-size:1.35rem}.workout-adherence-summary span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.workout-adherence-list{display:grid;gap:11px}.workout-adherence-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:15px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.02)}.workout-adherence-card.on-track{border-color:rgba(46,204,113,.28)}.workout-adherence-card.needs-review{border-color:rgba(255,190,70,.36)}.workout-adherence-card.attention{border-color:rgba(255,92,122,.42)}.workout-adherence-card h4{margin:7px 0 4px}.workout-adherence-card p{margin:0 0 5px;color:var(--text)}.workout-adherence-card small{color:var(--muted)}.workout-adherence-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.workout-adherence-status.on-track{background:rgba(46,204,113,.15);color:#83f2ae}.workout-adherence-status.needs-review{background:rgba(255,190,70,.14);color:#ffd27e}.workout-adherence-status.attention{background:rgba(255,92,122,.14);color:#ff9caf}.workout-adherence-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:820px){.workout-adherence-summary{grid-template-columns:repeat(2,1fr)}.workout-adherence-card{grid-template-columns:1fr}.workout-adherence-actions{justify-content:flex-start}.workout-adherence-filters{width:100%}.workout-adherence-filters label{flex:1;min-width:150px}}


/* Phase 23.7 — Workout Review Inbox */
.workout-review-tools{display:flex;gap:12px;flex-wrap:wrap}.workout-review-tools label{min-width:160px}.workout-review-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.workout-review-summary>div{background:var(--card,#151824);border:1px solid var(--border,#2a2f42);border-radius:14px;padding:14px}.workout-review-summary strong{display:block;font-size:1.4rem}.workout-review-summary span{color:var(--muted,#9ba3b7);font-size:.85rem}.workout-review-list{display:grid;gap:14px}.workout-review-card{border:1px solid var(--border,#2a2f42);border-left:4px solid #d6a84b;border-radius:16px;padding:16px;background:var(--card,#151824)}.workout-review-card.reviewed{border-left-color:#45b881}.workout-review-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.workout-review-card h4{margin:.45rem 0 .25rem}.workout-review-card label{display:block;margin-top:12px}.workout-review-card textarea{width:100%;margin-top:6px}.workout-review-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.workout-client-note{margin-top:12px;padding:12px;border-radius:12px;background:rgba(255,255,255,.035)}.workout-client-note p{margin:.35rem 0 0}.workout-history-row .coach-response-box{grid-column:1/-1;margin-top:8px}@media(max-width:700px){.workout-review-summary{grid-template-columns:1fr}.workout-review-card-head{flex-direction:column}.workout-review-actions{flex-direction:column}.workout-review-actions button{width:100%}}

/* Phase 23.8 — reusable workout programs */
.workout-program-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:720px){.workout-program-actions{justify-content:flex-start}}


/* ===================== PHASE 24.3: FIRST CLIENT EXPERIENCE ===================== */
.first-client-welcome{margin-top:18px;overflow:hidden;background:linear-gradient(135deg,rgba(105,70,220,.14),rgba(38,185,232,.08));border-color:rgba(133,103,255,.38)}
.first-client-empty{display:grid;grid-template-columns:72px 1fr;gap:22px;align-items:center;padding:28px;border:1px dashed rgba(159,142,255,.42);border-radius:20px;background:linear-gradient(145deg,rgba(15,15,35,.82),rgba(37,28,78,.62));min-height:170px}
.first-client-empty h3{margin:4px 0 8px;font-size:1.45rem}.first-client-empty p:not(.eyebrow){margin:0;color:var(--muted);max-width:720px;line-height:1.6}
.first-client-icon{width:66px;height:66px;border-radius:20px;display:grid;place-items:center;font-size:1.75rem;font-weight:900;background:linear-gradient(135deg,#6845e8,#28c5ee);box-shadow:0 14px 35px rgba(53,101,230,.3)}
.first-client-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.first-client-actions button{min-width:150px}
#analyticsEmptyState{margin:18px 0}.analytics-empty-muted{opacity:.34;filter:saturate(.55);pointer-events:none;user-select:none}
@media(max-width:700px){.first-client-empty{grid-template-columns:1fr;padding:22px}.first-client-icon{width:56px;height:56px}.first-client-actions{flex-direction:column}.first-client-actions button{width:100%}}


/* ===================== PHASE 24.4: GLOBAL COACH SEARCH ===================== */
.global-search-shell{position:relative;min-width:320px;max-width:440px;flex:1}.global-search-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.global-search-input{width:100%;min-height:44px;padding:10px 14px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(8,8,24,.76);color:#fff;font:inherit}.global-search-input:focus{outline:none;border-color:#7c5cff;box-shadow:0 0 0 3px rgba(124,92,255,.18)}.global-search-results{position:absolute;z-index:80;top:calc(100% + 8px);left:0;right:0;max-height:420px;overflow:auto;padding:8px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:#121127;box-shadow:0 24px 60px rgba(0,0,0,.42)}.global-search-result{width:100%;display:flex;justify-content:space-between;gap:14px;align-items:center;text-align:left;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:#fff;cursor:pointer}.global-search-result:hover,.global-search-result:focus{background:rgba(124,92,255,.17);outline:none}.global-search-result strong{display:block;font-size:.94rem}.global-search-result small{display:block;margin-top:3px;color:#a9a7bd}.global-search-type{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:rgba(69,203,255,.12);color:#8edfff;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.global-search-empty{padding:18px 12px;text-align:center;color:#a9a7bd}@media(max-width:980px){.global-search-shell{min-width:220px;max-width:none;width:100%}.top-actions{flex-wrap:wrap}.global-search-results{position:fixed;left:16px;right:16px;top:88px}}


/* ===================== PHASE 24.5: COACH ACTIVITY TIMELINE ===================== */
.activity-timeline-panel{margin-top:18px}.activity-timeline-tools{align-items:end}.activity-filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.activity-filter-row label{display:grid;gap:6px;min-width:150px;font-size:.78rem;color:var(--muted)}.activity-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}.activity-summary>div{padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.activity-summary strong{display:block;font-size:1.3rem}.activity-summary span{display:block;margin-top:3px;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.activity-timeline-list{position:relative;display:grid;gap:0}.activity-timeline-list:before{content:"";position:absolute;left:19px;top:18px;bottom:18px;width:2px;background:linear-gradient(#795cff,rgba(69,203,255,.18))}.activity-timeline-item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:start;padding:12px 0}.activity-timeline-icon{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);background:#17152d;font-size:1rem}.activity-timeline-copy{padding:10px 14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.activity-timeline-copy h4{margin:0 0 5px}.activity-timeline-copy p{margin:0;color:var(--muted);line-height:1.45}.activity-timeline-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.activity-timeline-meta span{padding:3px 7px;border-radius:999px;background:rgba(124,92,255,.12);font-size:.72rem;color:#c8bcff}.activity-timeline-date{padding-top:10px;color:var(--muted);font-size:.78rem;white-space:nowrap}.activity-load-more{margin:14px auto 0;display:block}@media(max-width:900px){.activity-summary{grid-template-columns:repeat(2,1fr)}.activity-timeline-tools{align-items:flex-start;flex-direction:column}.activity-filter-row{width:100%}.activity-filter-row label{flex:1}}@media(max-width:620px){.activity-timeline-item{grid-template-columns:38px 1fr}.activity-timeline-date{grid-column:2;padding-top:0}.activity-summary{grid-template-columns:1fr 1fr}}


/* Phase 24.6 — Client 360 Snapshot */
.client-360-panel{margin-bottom:18px}
.client-360-head{align-items:flex-start;gap:18px}
.client-360-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:16px}
.client-360-card{min-height:112px;padding:15px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));display:flex;flex-direction:column;gap:7px}
.client-360-card span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.client-360-card strong{font-size:21px;line-height:1.1}
.client-360-card small{color:var(--muted);line-height:1.35}
.client-360-card.on-track{border-color:rgba(65,190,125,.35)}
.client-360-card.needs-review{border-color:rgba(224,166,70,.42)}
.client-360-card.attention{border-color:rgba(232,91,91,.48)}
.client-360-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
@media(max-width:1200px){.client-360-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.client-360-metrics{grid-template-columns:1fr 1fr}.client-360-head{display:block}.client-360-head button{margin-top:12px}}
@media(max-width:430px){.client-360-metrics{grid-template-columns:1fr}}


/* ===================== PHASE 24.7: CLIENT COACHING NOTES ===================== */
.client-notes-panel{margin-top:18px}
.client-note-form{display:grid;grid-template-columns:minmax(150px,220px) 1fr auto auto;gap:12px;align-items:end;margin:16px 0 18px}
.client-note-form label{display:grid;gap:7px;font-size:.82rem;font-weight:700;color:var(--muted)}
.client-note-form select,.client-note-form textarea{width:100%}
.client-note-text{min-width:0}
.client-note-pin{display:flex!important;align-items:center;gap:8px!important;white-space:nowrap;padding-bottom:12px}
.client-note-pin input{width:auto}
.client-notes-timeline{display:grid;gap:12px}
.client-note-card{border:1px solid var(--border);border-radius:16px;padding:15px;background:rgba(255,255,255,.025);display:grid;gap:10px}
.client-note-card.pinned{border-color:rgba(124,92,255,.55);box-shadow:0 0 0 1px rgba(124,92,255,.12) inset}
.client-note-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.client-note-card-head h4{margin:0;font-size:.95rem;text-transform:capitalize}
.client-note-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.78rem}
.client-note-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:rgba(124,92,255,.12);color:var(--accent);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.client-note-copy{margin:0;white-space:pre-wrap;line-height:1.55;color:var(--text)}
.client-note-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.client-note-form{grid-template-columns:1fr}.client-note-pin{padding-bottom:0}}


/* ===================== PHASE 24.8: CLIENT PROGRAM & RENEWAL TRACKER ===================== */
.client-program-panel{margin-top:18px}.client-program-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.client-program-summary>div{padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025)}.client-program-summary>div.attention{border-color:rgba(232,91,91,.48)}.client-program-summary strong{display:block;font-size:1.05rem}.client-program-summary span{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.client-program-form{display:grid;grid-template-columns:1.2fr repeat(4,minmax(130px,.75fr));gap:12px;align-items:end;margin:16px 0 18px}.client-program-form label{display:grid;gap:7px;color:var(--muted);font-size:.82rem;font-weight:700}.client-program-note{grid-column:1/-2}.client-program-timeline{display:grid;gap:12px}.client-program-card{padding:15px;border:1px solid var(--border);border-left:4px solid #7c5cff;border-radius:16px;background:rgba(255,255,255,.025)}.client-program-card.renewal_due{border-left-color:#e0a646}.client-program-card.completed{border-left-color:#45b881}.client-program-card.cancelled{border-left-color:#e85b5b;opacity:.78}.client-program-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.client-program-card h4{margin:0 0 5px}.client-program-dates{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.client-program-status{padding:5px 9px;border-radius:999px;background:rgba(124,92,255,.13);font-size:.72rem;font-weight:800;text-transform:uppercase}.client-program-card p{margin:12px 0 0;white-space:pre-wrap;color:var(--text)}.client-program-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:13px}.client-program-actions select{min-width:150px}@media(max-width:1050px){.client-program-form{grid-template-columns:repeat(2,1fr)}.client-program-note{grid-column:1/-1}.client-program-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.client-program-form,.client-program-summary{grid-template-columns:1fr}.client-program-card-head{flex-direction:column}.client-program-actions>*{width:100%}}


/* ===================== PHASE 24.9: RENEWAL ATTENTION CENTER ===================== */
.renewal-attention-panel{margin-top:18px}.renewal-attention-tools{align-items:flex-start}.renewal-attention-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.renewal-attention-summary>div{padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025)}.renewal-attention-summary>div.attention{border-color:rgba(232,91,91,.48)}.renewal-attention-summary strong{display:block;font-size:1.35rem}.renewal-attention-summary span{display:block;margin-top:5px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.renewal-attention-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.renewal-attention-list{display:grid;gap:11px}.renewal-attention-card{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px;border:1px solid var(--border);border-left:4px solid #7c5cff;border-radius:16px;background:rgba(255,255,255,.025)}.renewal-attention-card.overdue{border-left-color:#e85b5b;background:rgba(232,91,91,.055)}.renewal-attention-card.urgent{border-left-color:#e0a646}.renewal-attention-card.soon{border-left-color:#45cbea}.renewal-attention-card h4{margin:7px 0 3px}.renewal-attention-card p{margin:0;color:var(--muted)}.renewal-attention-badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:rgba(124,92,255,.13);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.renewal-attention-card.overdue .renewal-attention-badge{background:rgba(232,91,91,.14);color:#ff9b9b}.renewal-attention-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:.78rem}.renewal-attention-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:850px){.renewal-attention-summary{grid-template-columns:repeat(2,1fr)}.renewal-attention-card{align-items:flex-start;flex-direction:column}.renewal-attention-actions{width:100%;justify-content:flex-start}}@media(max-width:520px){.renewal-attention-summary{grid-template-columns:1fr}.renewal-attention-actions>*{width:100%}}


/* PHASE 25.1: CLIENT PAYMENTS & REVENUE */
.client-payment-panel{margin-top:1rem}.client-payment-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:1rem 0}.client-payment-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem}.client-payment-form input,.client-payment-form select,.client-payment-form textarea{width:100%}.client-payment-note{grid-column:span 2}.client-payment-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.client-payment-summary>div{padding:.9rem;border:1px solid var(--border);border-radius:14px;background:var(--panel-2)}.client-payment-summary strong{display:block;font-size:1.2rem}.client-payment-summary span{font-size:.76rem;color:var(--muted)}.client-payment-timeline{display:grid;gap:.75rem}.client-payment-card{border:1px solid var(--border);border-radius:16px;padding:1rem;background:var(--panel-2)}.client-payment-card.overdue{border-color:rgba(255,99,99,.55)}.client-payment-card.refunded,.client-payment-card.cancelled{opacity:.75}.client-payment-card-head,.client-payment-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.client-payment-card h4{margin:0}.client-payment-meta{display:flex;gap:.75rem;flex-wrap:wrap;color:var(--muted);font-size:.8rem;margin:.45rem 0}.client-payment-status{padding:.3rem .55rem;border-radius:999px;border:1px solid var(--border);font-size:.72rem;text-transform:uppercase}.client-payment-card.paid .client-payment-status{color:var(--good)}.client-payment-card.pending .client-payment-status{color:var(--warning)}.client-payment-card.overdue .client-payment-status{color:var(--danger)}@media(max-width:900px){.client-payment-form{grid-template-columns:1fr 1fr}.client-payment-summary{grid-template-columns:1fr 1fr}.client-payment-note{grid-column:1/-1}}@media(max-width:600px){.client-payment-form,.client-payment-summary{grid-template-columns:1fr}.client-payment-note{grid-column:auto}}


/* ===================== PHASE 25.2: PAYMENT ATTENTION CENTER ===================== */
.payment-attention-panel{margin-top:18px}.payment-attention-tools{align-items:flex-start}.payment-attention-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.payment-attention-summary>div{padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025)}.payment-attention-summary>div.attention{border-color:rgba(232,91,91,.48)}.payment-attention-summary strong{display:block;font-size:1.35rem}.payment-attention-summary span{display:block;margin-top:5px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.payment-attention-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.payment-attention-list{display:grid;gap:11px}.payment-attention-card{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px;border:1px solid var(--border);border-left:4px solid #7c5cff;border-radius:16px;background:rgba(255,255,255,.025)}.payment-attention-card.overdue{border-left-color:#e85b5b;background:rgba(232,91,91,.055)}.payment-attention-card.urgent{border-left-color:#e0a646}.payment-attention-card.paid{border-left-color:#45b881}.payment-attention-card h4{margin:7px 0 3px}.payment-attention-card p{margin:0;color:var(--muted)}.payment-attention-badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:rgba(124,92,255,.13);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.payment-attention-card.overdue .payment-attention-badge{background:rgba(232,91,91,.14);color:#ff9b9b}.payment-attention-card.paid .payment-attention-badge{background:rgba(69,184,129,.14);color:#8fe3b7}.payment-attention-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:.78rem}.payment-attention-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:850px){.payment-attention-summary{grid-template-columns:repeat(2,1fr)}.payment-attention-card{align-items:flex-start;flex-direction:column}.payment-attention-actions{width:100%;justify-content:flex-start}}@media(max-width:520px){.payment-attention-summary{grid-template-columns:1fr}.payment-attention-actions>*{width:100%}}


/* ===================== PHASE 25.3: REVENUE ANALYTICS ===================== */
.revenue-analytics-panel{margin-top:18px}.revenue-analytics-tools{align-items:flex-start}.revenue-analytics-filters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.revenue-analytics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.revenue-analytics-summary>div{padding:14px;border:1px solid var(--border);border-radius:15px;background:rgba(255,255,255,.025)}.revenue-analytics-summary strong{display:block;font-size:1.35rem}.revenue-analytics-summary span{display:block;margin-top:5px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.revenue-monthly-chart,.revenue-client-breakdown{margin-top:14px;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.018)}.revenue-chart-head,.revenue-breakdown-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.revenue-chart-head h4,.revenue-breakdown-head h4{margin:0}.revenue-chart-head p,.revenue-breakdown-head span{margin:4px 0 0;color:var(--muted);font-size:.8rem}.revenue-bars{height:240px;display:flex;align-items:flex-end;gap:12px;padding-top:20px;overflow-x:auto}.revenue-bar-item{height:100%;min-width:70px;display:grid;grid-template-rows:1fr auto auto;gap:6px;text-align:center}.revenue-bar-track{height:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--border)}.revenue-bar-fill{width:34px;min-height:8px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,var(--accent),rgba(124,92,255,.45))}.revenue-bar-item strong{font-size:.76rem}.revenue-bar-item span{color:var(--muted);font-size:.72rem}.revenue-breakdown-list{display:grid;gap:9px;margin-top:13px}.revenue-breakdown-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:12px}.revenue-breakdown-list span{font-weight:750}.revenue-breakdown-list small{color:var(--muted)}@media(max-width:850px){.revenue-analytics-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.revenue-analytics-summary{grid-template-columns:1fr}.revenue-breakdown-list>div{grid-template-columns:1fr}.revenue-bars{height:210px}}


/* ===================== PHASE 25.6: PAYMENT REMINDER DRAFTS ===================== */
.payment-reminder-composer{margin-top:16px;padding:16px;border:1px solid rgba(124,92,255,.45);border-radius:16px;background:rgba(124,92,255,.055)}.payment-reminder-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.payment-reminder-head h4{margin:3px 0}.payment-reminder-tones{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.payment-reminder-composer textarea{width:100%;resize:vertical;line-height:1.55}.payment-reminder-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:11px}.payment-reminder-actions+.muted{margin:10px 0 0}@media(max-width:620px){.payment-reminder-head{flex-direction:column}.payment-reminder-head>button,.payment-reminder-actions>*{width:100%}}

/* PHASE 25.7: PAYMENT REMINDER HISTORY */
.payment-reminder-log-controls{display:flex;gap:12px;align-items:end;margin-top:12px}.payment-reminder-log-controls label{display:grid;gap:6px;font-size:.82rem;color:var(--muted);font-weight:700}.payment-reminder-log-controls select{min-width:190px}.payment-reminder-history-wrap{margin-top:16px;border-top:1px solid rgba(255,255,255,.08);padding-top:14px}.payment-reminder-history-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.payment-reminder-history-head h5{margin:0}.payment-reminder-history{display:grid;gap:9px}.payment-reminder-history-item{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;background:rgba(255,255,255,.025)}.payment-reminder-history-item>div{display:flex;justify-content:space-between;gap:10px}.payment-reminder-history-item span{color:var(--muted);font-size:.8rem}.payment-reminder-history-tone{display:inline-block;margin-top:5px;text-transform:capitalize}.payment-reminder-history-item p{margin:8px 0 0;white-space:pre-wrap;line-height:1.45}@media(max-width:620px){.payment-reminder-log-controls,.payment-reminder-log-controls label{width:100%}.payment-reminder-log-controls select{width:100%}.payment-reminder-history-item>div{flex-direction:column}}


/* Phase 26.1 secure messaging */
.conversation-search{width:100%;margin:12px 0;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:inherit;padding:11px 12px}
.conversation-item{position:relative;width:100%;text-align:left;border:1px solid transparent;background:transparent;color:inherit;padding:13px;border-radius:12px;cursor:pointer;display:block}
.conversation-item:hover,.conversation-item.active{background:var(--surface-2);border-color:var(--border)}
.conversation-item h4,.conversation-item p{margin:0}.conversation-item p{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.75}.conversation-item small{display:block;margin-top:5px;opacity:.55}
.connection-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:.78rem;opacity:.8}
.chat-messages .message small{display:block;margin-top:6px;font-size:.72rem;opacity:.62}
.client-message-panel{max-width:900px;margin:0 auto}.client-portal-messages{min-height:420px;max-height:62vh}
.disabled-form{opacity:.55;pointer-events:none}

/* Phase 26.2 messaging reply tools */
.message-tools-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.message-tools-row .standalone-input{flex:1;min-width:220px}.quick-replies{display:flex;gap:6px;flex-wrap:wrap}.quick-replies button,.message-actions button,.reply-bar button{border:1px solid var(--border);background:transparent;color:inherit;border-radius:999px;padding:6px 10px;cursor:pointer}.reply-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;margin:8px 0;border-left:3px solid var(--primary);background:var(--panel-soft);border-radius:8px;font-size:.88rem}.message-reply-preview{font-size:.8rem;opacity:.75;border-left:2px solid currentColor;padding-left:8px;margin-bottom:6px}.message-actions{display:flex;gap:6px;margin-top:6px;opacity:0;transition:opacity .15s}.message:hover .message-actions,.message:focus-within .message-actions{opacity:1}.message-actions button{font-size:.72rem;padding:3px 8px}.hidden{display:none!important}@media(max-width:700px){.message-tools-row{align-items:stretch}.quick-replies{width:100%}.quick-replies button{flex:1}.message-actions{opacity:1}}

/* Phase 26.3 — secure message attachments */
.attachment-chat-form{grid-template-columns:auto 1fr auto}.attachment-picker{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;display:grid;place-items:center;background:#0e0a16;color:#d8cff0;cursor:pointer;font-size:1.35rem}.attachment-picker:hover{border-color:#7f5cff}.attachment-picker input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.message-attachment{margin-top:8px;width:100%;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:10px;background:rgba(0,0,0,.15);color:inherit;text-align:left;cursor:pointer}.message-attachment>span:first-child{font-size:1.35rem}.message-attachment>span:last-child{display:grid;min-width:0}.message-attachment strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.message-attachment small{margin:2px 0 0!important}.message-attachment:hover{background:rgba(255,255,255,.08)}
@media(max-width:700px){.attachment-chat-form{grid-template-columns:auto 1fr}.attachment-chat-form .primary-btn{grid-column:1/-1}.message-attachment strong{max-width:190px}}


/* Phase 26.4 — live typing and presence */
.message-presence{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;color:var(--muted);white-space:nowrap}
.message-presence::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor;opacity:.55}
.message-presence.online{color:#32c978}
.typing-indicator{min-height:1.35rem;padding:.25rem .75rem;color:var(--muted);font-size:.82rem;font-style:italic}
.typing-indicator:not(.hidden)::after{content:"";display:inline-block;width:1.35rem;margin-left:.25rem;animation:zfitTypingDots 1.15s steps(4,end) infinite;overflow:hidden;vertical-align:bottom}
.client-message-live-row{display:flex;justify-content:flex-end;min-height:1.25rem;margin-bottom:.35rem}
@keyframes zfitTypingDots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}

/* Phase 26.5 — Message reactions */
.message-reactions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.message-reaction,.message-reaction-picker button{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);border-radius:999px;padding:3px 8px;cursor:pointer;font-size:12px}.message-reaction.active{border-color:rgba(139,92,246,.8);background:rgba(139,92,246,.2)}.message-reaction-picker{display:inline-flex;gap:3px;opacity:.55}.message:hover .message-reaction-picker{opacity:1}

/* Phase 26.6 secure voice notes */
.voice-record-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#0e0a16;color:#e6ddff;cursor:pointer;font-size:1.05rem;display:grid;place-items:center}.voice-record-btn:hover{border-color:#7f5cff}.voice-record-btn.recording{background:#5a1630;border-color:#ff5b87;animation:voicePulse 1s infinite}.voice-preview{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#0d0914}.voice-preview audio{height:34px;max-width:280px}.voice-preview span{font-size:.82rem;color:var(--muted)}.voice-preview button{margin-left:auto;border:0;background:transparent;color:#ff9db8;cursor:pointer}.message-voice-note{margin-top:8px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(0,0,0,.16)}.message-voice-note>span{font-size:1.3rem}.message-voice-note>div{display:grid}.message-voice-note small{margin:2px 0 0!important}.message-voice-note button{border:1px solid rgba(255,255,255,.2);border-radius:9px;padding:6px 10px;background:rgba(255,255,255,.06);color:inherit;cursor:pointer}@keyframes voicePulse{50%{box-shadow:0 0 0 5px rgba(255,91,135,.14)}}
@media(max-width:700px){.voice-preview audio{max-width:190px}.attachment-chat-form{grid-template-columns:auto auto 1fr}.attachment-chat-form .primary-btn{grid-column:1/-1}}

/* Phase 26.7 — message edit/delete */
.message.message-deleted{opacity:.72}
.deleted-message-text{font-style:italic;color:var(--muted,#9ca3af)}

.message-filter-btn{border:1px solid var(--border);background:transparent;color:inherit;border-radius:999px;padding:8px 12px;cursor:pointer;white-space:nowrap}.message-filter-btn.active{border-color:var(--primary);background:rgba(139,92,246,.16)}.message-pinned{outline:1px solid rgba(245,158,11,.55);box-shadow:0 0 0 2px rgba(245,158,11,.08)}.message-pin-badge{display:inline-flex;align-items:center;align-self:flex-start;font-size:.68rem;font-weight:700;letter-spacing:.04em;color:#fbbf24;margin-bottom:4px}.message-deleted .message-pin-badge{opacity:.7}


/* Phase 26.9 — Coach saved replies */
.saved-reply-select{min-width:150px;max-width:220px;background:var(--surface,#111827);color:inherit;border:1px solid rgba(148,163,184,.28);border-radius:10px;padding:9px 34px 9px 11px}
.saved-reply-manager{margin-top:12px;border:1px solid rgba(148,163,184,.22);border-radius:16px;padding:16px;background:rgba(15,23,42,.72)}
.saved-reply-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.saved-reply-manager-head h4{margin:2px 0 0}.saved-reply-manager-head>button{border:0;background:transparent;color:inherit;font-size:24px;cursor:pointer}
.saved-reply-form{display:grid;grid-template-columns:minmax(170px,.45fr) minmax(260px,1fr) auto;gap:10px;align-items:start}.saved-reply-form input,.saved-reply-form textarea{width:100%;border:1px solid rgba(148,163,184,.25);border-radius:10px;background:rgba(2,6,23,.55);color:inherit;padding:10px 12px}.saved-reply-form textarea{min-height:74px;resize:vertical}
.saved-reply-list{display:grid;gap:9px;margin-top:14px}.saved-reply-item{display:flex;justify-content:space-between;gap:16px;padding:12px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:rgba(2,6,23,.35)}.saved-reply-item p{margin:5px 0 0;white-space:pre-wrap;color:var(--muted,#94a3b8)}.saved-reply-actions{display:flex;align-items:flex-start;gap:7px}.saved-reply-actions button{border:1px solid rgba(148,163,184,.25);background:transparent;color:inherit;border-radius:8px;padding:7px 9px;cursor:pointer}.compact-empty{padding:14px}
@media(max-width:820px){.saved-reply-form{grid-template-columns:1fr}.saved-reply-item{flex-direction:column}.saved-reply-select{max-width:100%;width:100%}}

/* Phase 26.10 conversation priority */
.conversation-setting-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.conversation-setting-controls select{background:var(--panel-2,#111827);color:inherit;border:1px solid var(--border,#334155);border-radius:10px;padding:8px 10px}.conversation-item.conversation-urgent{border-color:#ef4444}.conversation-item.conversation-follow-up{box-shadow:inset 3px 0 0 #f59e0b}.conversation-priority-badge,.conversation-follow-badge{display:inline-flex;font-size:10px;font-weight:800;text-transform:uppercase;border-radius:999px;padding:3px 7px;margin-right:5px}.conversation-priority-badge{background:rgba(239,68,68,.16);color:#fca5a5}.conversation-follow-badge{background:rgba(245,158,11,.16);color:#fcd34d}.conversation-help{font-size:12px;color:var(--muted,#94a3b8);margin:8px 0 12px}

/* PHASE 26.11 — MESSAGING ATTENTION CENTER */
.messaging-attention-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.messaging-attention-summary button{display:grid;gap:2px;text-align:left;border:1px solid var(--border);background:var(--panel-soft);color:inherit;border-radius:12px;padding:10px;cursor:pointer}.messaging-attention-summary button:hover{border-color:var(--primary)}.messaging-attention-summary strong{font-size:1.15rem}.messaging-attention-summary span{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.messaging-attention-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.messaging-attention-filters button{border:1px solid var(--border);background:transparent;color:inherit;border-radius:999px;padding:6px 9px;font-size:.72rem;cursor:pointer}.messaging-attention-filters button.active{border-color:var(--primary);background:rgba(139,92,246,.16)}.conversation-reply-badge,.conversation-muted-badge{display:inline-flex;font-size:10px;font-weight:800;text-transform:uppercase;border-radius:999px;padding:3px 7px;margin-right:5px}.conversation-reply-badge{background:rgba(59,130,246,.16);color:#93c5fd}.conversation-muted-badge{background:rgba(148,163,184,.14);color:#cbd5e1}.conversation-item.conversation-muted{opacity:.72}


/* ===================== PHASE 26.12: SCHEDULED MESSAGE FOLLOW-UPS ===================== */
.conversation-follow-badge.is-due{background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.45);color:#fbbf24}
.conversation-follow-badge.is-overdue{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.45);color:#fca5a5}
.conversation-item.conversation-overdue{box-shadow:inset 3px 0 0 rgba(239,68,68,.8)}
.conversation-follow-note{display:block;margin-top:5px;max-width:420px;color:var(--muted);font-size:.78rem;line-height:1.35}

.messaging-performance-card{margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,rgba(139,92,246,.10),rgba(14,165,233,.05))}.messaging-performance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.messaging-performance-head h4{margin:2px 0 0;font-size:.92rem}.messaging-performance-head>span{font-size:.68rem;color:var(--muted);white-space:nowrap}.messaging-performance-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.messaging-performance-summary>div{display:grid;gap:2px;padding:9px;border:1px solid rgba(148,163,184,.16);border-radius:10px;background:rgba(15,23,42,.22)}.messaging-performance-summary strong{font-size:1rem}.messaging-performance-summary span{font-size:.66rem;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}

.conversation-archived-badge{display:inline-flex;font-size:10px;font-weight:800;text-transform:uppercase;border-radius:999px;padding:3px 7px;margin-right:5px;background:rgba(100,116,139,.18);color:#cbd5e1}.conversation-item.conversation-archived{opacity:.68}.conversation-item.conversation-archived h4{text-decoration:line-through;text-decoration-thickness:1px}


/* Phase 26.16 — Message draft autosave */
.message-draft-wrap{position:relative;display:flex;flex:1;min-width:0}
.message-draft-wrap>input{width:100%;padding-right:92px}
.message-draft-status{position:absolute;right:12px;bottom:8px;font-size:.72rem;line-height:1;color:var(--muted,#8d93a8);opacity:0;transform:translateY(2px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.message-draft-status.visible{opacity:1;transform:translateY(0)}
@media (max-width:700px){.message-draft-wrap{flex-basis:100%;order:5}.message-draft-wrap>input{min-height:44px}.message-draft-status{bottom:6px}}

/* Phase 26.17 — conversation navigation and date grouping */
.message-scroll-shell{position:relative;display:flex;flex-direction:column;min-height:0;flex:1}.message-scroll-shell>.chat-messages{min-height:0}.message-date-divider,.message-unread-divider{width:100%;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:7px 0}.message-date-divider::before,.message-date-divider::after,.message-unread-divider::before,.message-unread-divider::after{content:"";height:1px;flex:1;background:var(--line)}.message-date-divider span,.message-unread-divider span{padding:4px 9px;border-radius:999px;background:rgba(16,11,25,.92);border:1px solid var(--line);white-space:nowrap}.message-unread-divider{color:#bca8ff}.message-unread-divider::before,.message-unread-divider::after{background:rgba(150,117,255,.55)}.jump-to-latest{position:absolute;right:14px;bottom:12px;z-index:4;border:1px solid rgba(163,132,255,.45);border-radius:999px;padding:9px 13px;background:rgba(18,12,29,.96);color:#eee7ff;box-shadow:0 10px 28px rgba(0,0,0,.32);cursor:pointer;font-weight:700}.jump-to-latest:hover{border-color:#a98cff;transform:translateY(-1px)}

/* Phase 26.18 — Message composer enhancements */
.message-draft-wrap textarea{width:100%;min-height:42px;max-height:160px;resize:none;overflow-y:auto;font:inherit;line-height:1.45;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text)}
.message-draft-wrap textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.message-composer-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;margin-top:5px;min-height:16px}
.message-composer-help{font-size:11px;color:var(--muted);white-space:nowrap}
.message-character-count{font-size:11px;color:var(--muted);justify-self:end}
.message-character-count.near-limit{color:#f59e0b;font-weight:700}
.message-character-count.at-limit{color:#ef4444;font-weight:700}
.message-draft-status{grid-column:1 / -1}
@media(max-width:720px){.message-composer-help{display:none}.message-composer-meta{grid-template-columns:1fr auto}}


/* Phase 26.19 — Global message indicators */
.nav-with-badge{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nav-message-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;line-height:1;box-shadow:0 0 0 2px rgba(239,68,68,.12)}
.nav-btn.has-unread-messages{font-weight:700}
.nav-message-badge.hidden{display:none}
