:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1f2a26;--muted:#5f6f68;--paper:#f4f2ec;--panel:#fff;--accent:#2f7a68;--accent-ink:#fff;--danger:#a33f2f;--line:#dcd8cc}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0;font-size:.75rem;font-weight:700}.muted{color:var(--muted)}.error{color:var(--danger)}.empty-state{text-align:center;color:var(--muted);padding:3rem}.auth-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:1.25rem;width:min(26rem,100%);padding:2rem;display:grid}.auth-form{gap:1rem;display:grid}.auth-form label{gap:.35rem;font-weight:600;display:grid}input{border:1px solid var(--line);border-radius:8px;padding:.65rem .75rem;font-size:1rem}button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;border-radius:8px;padding:.6rem 1rem;font-weight:700}button.danger{background:var(--danger);border-color:var(--danger)}.portal-layout{grid-template-columns:15rem 1fr;min-height:100vh;display:grid}.portal-nav{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:1rem;padding:1.5rem 1rem;display:flex}.portal-nav h2{margin:0}.portal-nav nav{gap:.25rem;display:grid}.portal-nav nav button{color:var(--ink);text-align:left;background:0 0;border:none;border-radius:8px;padding:.55rem .75rem;font-weight:600}.portal-nav nav button.active,.portal-nav nav button:hover{background:var(--paper);color:var(--accent)}.portal-user{gap:.5rem;margin-top:auto;display:grid}.portal-main{align-content:start;gap:1.5rem;padding:2rem;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.5rem}.warning-panel{border-color:var(--danger)}.privacy-block{border-top:1px solid var(--line);justify-items:start;gap:.5rem;margin-top:1rem;padding-top:1rem;display:grid}.button-row{flex-wrap:wrap;gap:.5rem;display:flex}.portal-bottom-nav{display:none}@media (width<=720px){.portal-layout{grid-template-columns:1fr}.portal-nav{border-right:none;border-bottom:1px solid var(--line);flex-flow:row;align-items:center;gap:.5rem}.portal-nav nav{display:none}.portal-user{align-items:center;gap:.5rem;margin-top:0;margin-left:auto;display:flex}.portal-user p{margin:0}.portal-main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.portal-bottom-nav{z-index:30;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#fff;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.portal-bottom-nav button{color:var(--muted,#6b7671);cursor:pointer;background:0 0;border:none;justify-items:center;gap:2px;padding:4px 0;font-size:11px;display:grid}.portal-bottom-nav button.active{color:var(--accent,#2f6b4f);font-weight:700}}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;margin-top:1rem;display:grid}.tile{border:1px solid var(--line);border-radius:10px;justify-items:start;gap:.5rem;padding:1rem;display:grid}.tile h4{margin:0}.agenda-day{gap:.5rem;margin-top:1.25rem;display:grid}.agenda-day h4{margin:0}.agenda-row{border-bottom:1px solid var(--line);align-items:baseline;gap:.75rem;padding:.4rem 0;display:flex}.badge{border:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700}.badge.danger{color:var(--danger);border-color:var(--danger)}.badge.warn{color:#8a6d1a;border-color:#8a6d1a}.badge.ok{color:var(--accent);border-color:var(--accent)}.badge.muted{color:var(--muted)}button.ghosted{color:var(--muted);border-color:var(--line);background:0 0;font-weight:600}.program-head{justify-content:space-between}.program-summary{margin-top:.25rem}.program-week{gap:.4rem;margin-top:1.25rem;display:grid}.program-week h4{margin:0}.program-day.today{background:#f2efe8;border-radius:8px}.day-date{min-width:6.2rem}.workout-detail{border-left:3px solid var(--line);gap:.5rem;margin:.25rem 0 .75rem .5rem;padding:.25rem 0 .25rem .9rem;display:grid}.workout-phase h5{margin:.5rem 0 .25rem}.workout-block{gap:.3rem;margin-bottom:.4rem;display:grid}.block-label{margin:0}.exercise-row{gap:.1rem;padding:.2rem 0;display:grid}.alt-line{font-size:.85rem}.media-links{gap:.75rem;display:flex}.media-links a{color:var(--accent);font-weight:600}@media print{.portal-nav,.portal-bottom-nav,.print-hidden,button{display:none!important}.portal-layout{grid-template-columns:1fr}.panel{border:none;padding:0}body{background:#fff}}.document-row{gap:.25rem;display:grid}.consent-prompt{border:1px solid var(--danger);border-radius:10px;gap:.6rem;padding:.9rem;display:grid}.doc-link{color:var(--accent);align-self:center;font-weight:700}.messages-panel{gap:.75rem;display:grid}.message-scroll{gap:.5rem;max-height:55vh;padding-right:.25rem;display:grid;overflow-y:auto}.bubble-row{display:flex}.bubble-row.self{justify-content:flex-end}.bubble{border:1px solid var(--line);background:#fff;border-radius:12px;max-width:34rem;padding:.6rem .8rem}.bubble.self{background:#e7f0ee;border-color:#cfe0dc}.bubble.system{background:#f6f2e9}.bubble p{white-space:pre-wrap;margin:0}.bubble-sender{color:var(--accent);font-size:.72rem;font-weight:700}.bubble-time{margin-top:.2rem;font-size:.72rem;display:block}.composer{gap:.5rem;display:flex}.composer input{flex:1}.mfa-enroll{justify-items:start;gap:.6rem;display:grid}.mfa-qr{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px}.recovery-codes{background:var(--paper);border:1px solid var(--line);-webkit-user-select:all;user-select:all;border-radius:10px;padding:.9rem 1.1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;line-height:1.7}.portal-segments{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.portal-segments button{border:1px solid var(--line,#d8d8d2);color:var(--ink,#24312b);cursor:pointer;background:#fff;border-radius:999px;padding:6px 14px;font-size:14px}.portal-segments button.active{background:var(--accent,#2f6b4f);border-color:var(--accent,#2f6b4f);color:#fff}
