:root{color-scheme:light;--bg: #f7f6f1;--surface: rgba(255, 255, 255, .76);--surface-strong: #ffffff;--text: #0f1f1b;--muted: #5f6e69;--border: rgba(15, 31, 27, .08);--accent: #1f7a67;--accent-2: #d89a56;--accent-soft: rgba(31, 122, 103, .1);--shadow: 0 20px 60px rgba(19, 36, 32, .1);--shadow-strong: 0 28px 72px rgba(19, 36, 32, .14);--radius-xl: 28px;--radius-lg: 20px;--radius-md: 14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:"cv11" 1,"ss01" 1}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 14% 10%,rgba(31,122,103,.11),transparent 24%),radial-gradient(circle at 86% 16%,rgba(216,154,86,.14),transparent 22%),radial-gradient(circle at 50% 100%,rgba(15,31,27,.05),transparent 26%),var(--bg);color:var(--text);text-rendering:optimizeLegibility}button{font:inherit}button:disabled,input:disabled{cursor:not-allowed}button:disabled{opacity:.62;box-shadow:none}.shell{display:grid;grid-template-columns:minmax(268px,286px) minmax(0,1fr);gap:18px;padding:18px;min-height:100vh;align-items:start}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;padding:24px;align-items:start}.login-hero{padding:48px;border-radius:32px;background:radial-gradient(circle at top left,rgba(31,122,103,.2),transparent 28%),radial-gradient(circle at 86% 16%,rgba(216,154,86,.16),transparent 24%),linear-gradient(180deg,#ffffffb8,#f8f5f09e);border:1px solid rgba(15,31,27,.08);box-shadow:var(--shadow)}.login-mark{width:68px;height:68px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),#2aa98d);color:#fff;font-size:28px;font-weight:800;margin-bottom:18px}.login-hero h1{font-size:clamp(40px,4.4vw,72px);line-height:.98;margin:10px 0 14px;max-width:13.5ch}.login-copy{max-width:56ch;color:var(--muted);font-size:18px;line-height:1.6}.login-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.login-badges span{padding:9px 12px;border-radius:999px;background:#ffffffb8;border:1px solid var(--border);font-size:12px;font-weight:600;white-space:nowrap}.login-card{padding:28px;max-width:none;justify-self:stretch;width:100%;border-radius:30px;background:linear-gradient(180deg,#ffffffdb,#faf8f3b8);box-shadow:var(--shadow-strong)}.login-card-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(280px,.96fr);gap:18px;margin-top:4px}.login-form-panel{min-width:0}.login-form-large{margin-top:8px}.login-form-copy{margin-bottom:4px;font-size:15px;line-height:1.55}.login-form-large label{display:grid;gap:8px}.login-form-large label span{font-size:13px;font-weight:700;color:var(--muted)}.login-submit{margin-top:8px;width:100%}.login-side{align-self:stretch;padding:22px;border-radius:24px;background:radial-gradient(circle at top right,rgba(216,154,86,.12),transparent 34%),#ffffffbd;border:1px solid rgba(15,31,27,.08);display:grid;gap:18px}.login-side h3{font-size:22px;line-height:1.15;max-width:13ch}.login-side-list{display:grid;gap:14px}.login-side-item{padding-top:14px;border-top:1px solid rgba(19,32,29,.08)}.login-side-item:first-child{padding-top:0;border-top:0}.login-side-item strong{display:block;font-size:14px;margin-bottom:4px}.login-side-item p,.login-note{color:var(--muted);font-size:14px;line-height:1.55}.login-note{padding-top:14px;border-top:1px solid rgba(19,32,29,.08)}.sidebar{padding:20px;border:1px solid rgba(15,31,27,.08);border-radius:30px;background:linear-gradient(180deg,#ffffffc7,#f8f5f09e);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:18px;box-shadow:var(--shadow);height:calc(100vh - 36px);overflow-y:auto}.brand{display:flex;gap:14px;align-items:center;margin-bottom:16px}.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),#2aa98d);color:#fff;font-weight:700}.brand h1,.topbar h2,h3,p{margin:0}.brand h1{font-size:18px}.brand p{color:var(--muted);font-size:13px;margin-top:3px}.nav{display:grid;gap:8px;margin-top:14px}.nav-group-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700;padding:4px 2px 2px}.nav-item,.secondary,.primary,.text-button{border:1px solid transparent;border-radius:999px;cursor:pointer}.secondary.compact{padding:8px 12px;font-size:12px}.nav-item{text-align:left;min-height:46px;padding:0 14px;display:flex;align-items:center;background:#ffffff8f;color:var(--muted);border-color:#0f1f1b0f;box-shadow:0 8px 18px #121c180a;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.nav-item.active{background:#fffffff0;color:var(--text);border-color:#1f7a6729;box-shadow:0 14px 28px #121c1814;transform:translate(2px)}.nav-item:hover{background:#ffffffd1;color:var(--text);transform:translateY(-1px)}.sidebar-card{margin-top:16px;padding:18px;border-radius:var(--radius-lg);background:linear-gradient(180deg,#ffffffbd,#f8f5f09e);border:1px solid rgba(15,31,27,.08);box-shadow:var(--shadow)}.sidebar-context{display:grid;gap:14px}.sidebar-context-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sidebar-context-head strong{display:block;margin-top:6px;font-size:18px;line-height:1.15}.sidebar-context>p{color:var(--muted);font-size:14px;line-height:1.55;max-width:32ch}.sidebar-context-meta{display:flex;flex-direction:column;gap:10px}.sidebar-context-meta div{padding:12px 12px 13px;border-radius:16px;background:#ffffffb8;border:1px solid rgba(15,31,27,.08)}.sidebar-context-meta span{display:block;color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.sidebar-context-meta strong{display:block;font-size:13px;line-height:1.45}.beta-note,.load-banner,.error-banner,.env-warning{display:block;margin-top:12px;border-radius:14px;padding:11px 12px;font-size:13px;line-height:1.45}.beta-note{background:#1f7a671f;color:var(--accent);font-weight:700;border:1px solid rgba(31,122,103,.12)}.load-banner{background:#1f7a6714;color:var(--accent);border:1px solid rgba(31,122,103,.1)}.error-banner{background:#b25f441f;color:#8f4d38;border:1px solid rgba(178,95,68,.12)}.env-warning{background:#d89a561f;color:#8a5a22;border:1px solid rgba(216,154,86,.12)}.session-quick{margin-top:4px;padding-top:14px;border-top:1px solid rgba(19,32,29,.08);display:flex;gap:12px;justify-content:space-between;align-items:center}.session-copy{display:grid;gap:4px;min-width:0}.session-copy .label{font-size:10px}.session-quick strong{line-height:1.35;font-size:14px}.secondary.compact{align-self:center;white-space:nowrap}.token-chips{display:flex;flex-wrap:wrap;gap:8px}.login-form{display:grid;gap:12px}.login-input{width:100%;border:1px solid rgba(15,31,27,.1);border-radius:14px;padding:11px 12px;background:linear-gradient(180deg,#fff,#fbfaf7);color:var(--text);font:inherit;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.login-input:disabled{background:#ffffffb8;color:var(--muted)}.login-input:focus{outline:none;border-color:#1f7a6761;box-shadow:0 0 0 4px #1f7a671f}.login-form label,.field-grid label{display:grid;gap:8px}.login-form label span,.field-grid label span{font-size:12px;font-weight:700;letter-spacing:.01em;color:var(--muted)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.auth-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;border-radius:var(--radius-md);background:#ffffffc2;border:1px solid rgba(15,31,27,.08)}.auth-meta span,.auth-meta strong{display:block}.auth-meta span{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.auth-meta strong{font-size:14px;line-height:1.35}.success-banner{display:block;margin-top:12px;padding:11px 12px;border-radius:14px;color:var(--accent);background:#1f7a671a;border:1px solid rgba(31,122,103,.14)}.link-preview{display:grid;gap:10px;padding:14px;border-radius:var(--radius-md);background:#ffffffc2;border:1px solid rgba(15,31,27,.08)}.link-row{display:flex;gap:10px;align-items:center}.link-row .login-input{flex:1}.mini-actions{display:flex;justify-content:space-between;gap:10px;align-items:center}.invite-list{display:grid;gap:10px}.access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-bottom:18px}.access-card,.access-form{display:grid;gap:14px}.admin-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.compact-panel{padding:20px 22px}.admin-stat-grid,.consent-table,.admin-settings-list{display:grid;gap:10px}.admin-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-stat-grid span,.consent-row span,.consent-row em{display:block;color:var(--muted);font-size:12px;margin-top:4px;font-style:normal}.consent-row{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:8px;align-items:center;padding:12px 14px;border-radius:14px;background:#ffffffc7;border:1px solid rgba(15,31,27,.08)}.member-consent-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.member-consent-summary div{padding:12px 12px 13px;border-radius:16px;background:#ffffffc7;border:1px solid rgba(15,31,27,.08)}.member-consent-summary strong{display:block;font-size:17px;line-height:1.1}.member-consent-summary span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.main{min-width:0;padding:18px 18px 28px 0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px;padding-bottom:8px;border-bottom:1px solid rgba(15,31,27,.08)}.topbar-copy{display:grid;gap:6px;min-width:0}.topbar-note{max-width:62ch;color:var(--muted);font-size:15px;line-height:1.5}.eyebrow,.label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.topbar h2{font-size:clamp(30px,3vw,46px);margin-top:6px;line-height:.98;letter-spacing:-.03em}.topbar-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.secondary,.primary,.text-button{padding:12px 16px;background:#fff;border-color:var(--border);color:var(--text);display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.primary{background:linear-gradient(145deg,var(--accent),#2a987d);color:#fff}.text-button{background:transparent;color:var(--accent);border-color:transparent;padding-inline:4px}.status-pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1}.hero-grid,.lower-grid,.footer-band{display:grid;gap:18px}.hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);margin-bottom:18px}.lower-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.footer-band{grid-template-columns:repeat(3,minmax(0,1fr))}.panel,.footer-card{background:linear-gradient(180deg,#ffffffd1,#f9f6f1b8);border:1px solid rgba(15,31,27,.08);border-radius:var(--radius-xl);box-shadow:var(--shadow)}.panel{padding:22px}.footer-card{padding:18px 20px}.panel-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:18px}.panel-header h3{font-size:20px;margin-top:6px;line-height:1.08;letter-spacing:-.02em}.status-pill{padding:8px 12px;border-radius:999px;background:#1f7a6717;color:#226a5a;font-size:12px;font-weight:700;border:1px solid rgba(31,122,103,.08)}.status-pill.good{background:#1f7a6724}.hero-body{display:grid;grid-template-columns:170px 1fr;gap:22px;align-items:center}.ring{position:relative;width:170px;height:170px;display:grid;place-items:center}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track,.ring-progress{fill:none;stroke-width:10}.ring-track{stroke:#13201d14}.ring-progress{stroke:var(--accent);stroke-linecap:round}.ring-copy{position:absolute;display:grid;text-align:center}.ring-copy strong{font-size:40px;line-height:1}.ring-copy span{font-size:12px;color:var(--muted);margin-top:6px}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.mini-kpi{background:#ffffffd1;border-radius:var(--radius-md);padding:14px;border:1px solid rgba(15,31,27,.08)}.mini-kpi span,.mini-kpi em,.timeline-row span,.reward-row span,.patient-row span{display:block;color:var(--muted);font-size:12px;font-style:normal;margin-top:4px}.mini-kpi strong{display:block;margin-top:10px;font-size:20px}.next-action{margin-top:18px;padding:18px;border-radius:var(--radius-lg);background:linear-gradient(180deg,#1f7a671a,#1f7a670a);border:1px solid rgba(31,122,103,.12)}.next-action strong{display:block;font-size:18px;margin:8px 0}.next-action p{color:var(--muted);line-height:1.5}.member-lower-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-focus-copy{color:var(--muted);font-size:14px;line-height:1.55;margin-top:-4px}.member-focus-chip-row,.member-rhythm-list{display:grid;gap:10px}.member-focus-chip-row{grid-template-columns:repeat(2,minmax(0,1fr))}.member-focus-chip,.member-plan-row,.member-rhythm-row{border:1px solid rgba(15,31,27,.08);background:#ffffffc7}.member-focus-chip{padding:10px 12px;border-radius:999px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.member-focus-chip.active,.member-plan-row.active,.member-rhythm-row.active{background:#fffffff5;border-color:#1f7a672e;box-shadow:0 14px 28px #121c1814;color:var(--text)}.member-focus-progress{display:grid;gap:10px;padding:14px;border-radius:16px;background:#ffffffc2;border:1px solid rgba(15,31,27,.08)}.member-focus-progress strong{display:block;font-size:16px;line-height:1.4}.member-progress-bar,.member-rhythm-track{height:10px;border-radius:999px;overflow:hidden;background:#13201d14}.member-progress-bar span,.member-rhythm-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(145deg,var(--accent),#2a987d)}.member-focus-progress p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.member-focus-actions{display:flex;gap:10px;flex-wrap:wrap}.member-mobile-promo{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:18px;align-items:stretch;position:relative;overflow:hidden;background:radial-gradient(circle at top left,rgba(31,122,103,.14),transparent 28%),radial-gradient(circle at 88% 18%,rgba(216,154,86,.16),transparent 26%),linear-gradient(160deg,#ffffffeb,#f8f4edd6)}.member-mobile-promo:after{content:"";position:absolute;inset:auto -60px -70px auto;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(31,122,103,.16),transparent 68%);pointer-events:none}.member-mobile-copy{display:grid;gap:14px;align-content:start;position:relative;z-index:1}.member-mobile-copy h3{max-width:15ch;font-size:clamp(28px,3vw,40px);line-height:.98;letter-spacing:-.03em}.member-mobile-copy p{max-width:52ch;color:var(--muted);font-size:15px;line-height:1.6}.member-mobile-copy .member-mobile-note{font-size:13px;line-height:1.45;margin:0}.member-mobile-chip-row{display:flex;flex-wrap:wrap;gap:8px}.member-mobile-chip-row span{padding:9px 12px;border-radius:999px;background:#ffffffd1;border:1px solid rgba(15,31,27,.08);color:var(--muted);font-size:12px;font-weight:700}.member-mobile-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.member-mobile-actions .primary,.member-mobile-actions .secondary{min-width:160px}.member-mobile-preview{display:grid;gap:12px;padding:18px;border-radius:24px;background:#0f1f1b0a;border:1px solid rgba(15,31,27,.08);position:relative;z-index:1}.member-mobile-preview-header strong{display:block;margin-top:6px;font-size:18px;line-height:1.15}.member-mobile-preview-card{display:grid;gap:8px;padding:16px;border-radius:20px;background:linear-gradient(180deg,#fffffff5,#faf7f1e6);border:1px solid rgba(15,31,27,.08);box-shadow:0 16px 32px #121c1814}.member-mobile-preview-card span{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.member-mobile-preview-card strong{font-size:22px;line-height:1.05}.member-mobile-preview-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.member-mobile-stat-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.member-mobile-stat{padding:12px;border-radius:16px;background:#ffffffd6;border:1px solid rgba(15,31,27,.08);display:grid;gap:4px}.member-mobile-stat span{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.member-mobile-stat strong{font-size:16px;line-height:1.1}.member-mobile-stat em{color:var(--muted);font-style:normal;font-size:12px;line-height:1.45}.member-plan-row,.member-rhythm-row{width:100%;display:grid;gap:12px;border-radius:var(--radius-md);padding:12px 14px;text-align:left;cursor:pointer}.member-plan-row{grid-template-columns:1fr auto;align-items:center}.member-rhythm-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}.member-plan-row strong,.member-rhythm-row strong{display:block;font-size:14px}.member-plan-row span,.member-rhythm-row span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.member-plan-row em,.member-rhythm-row em{font-style:normal;font-weight:700;color:var(--accent)}.member-rhythm-copy{min-width:0}.timeline{display:grid;gap:14px;margin-bottom:18px}.timeline-row{padding:14px 16px;border-radius:var(--radius-md);background:#ffffffc7;border:1px solid rgba(15,31,27,.08)}.timeline-row strong{display:block;margin-top:7px}.chart-card{padding:16px;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(15,31,27,.08)}.chart-header{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:8px}.trend-chart{width:100%;height:auto}.trend-chart path:first-child{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.axis{fill:none;stroke:#13201d1f;stroke-width:2}.reward-list,.snippet-list{display:grid;gap:12px}.reward-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border-radius:var(--radius-md);background:#fffc;border:1px solid rgba(15,31,27,.08)}.reward-row strong,.patient-row strong{display:block}.reward-row em,.patient-row .up,.patient-row .down{font-style:normal;font-weight:700}.reward-row em{color:var(--accent)}.patient-table{display:grid;gap:10px}.patient-row{display:grid;grid-template-columns:1.3fr .9fr .8fr 1fr;gap:12px;align-items:center;padding:14px 16px;border-radius:var(--radius-md);background:#fffc;border:1px solid rgba(15,31,27,.08)}.patient-row .up{color:var(--accent)}.patient-row .down{color:#b25f44}.snippet-list{padding-left:18px;color:var(--text);line-height:1.6}.footer-card strong{display:block;margin-top:8px;line-height:1.5}@media(max-width:1180px){.login-shell,.login-card-grid{grid-template-columns:1fr}}@media(max-width:1080px){.admin-strip,.hero-grid,.lower-grid,.footer-band{grid-template-columns:1fr}.topbar{flex-direction:column}.topbar-actions{justify-content:flex-start}.field-grid,.auth-meta{grid-template-columns:1fr}}@media(max-width:960px){.shell{grid-template-columns:1fr;padding:12px}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid rgba(15,31,27,.08);border-radius:24px}.main{padding:10px 6px 24px}}@media(max-width:780px){.main,.sidebar,.login-shell{padding:18px}.sidebar{padding:14px;gap:12px}.brand{margin-bottom:10px}.sidebar-card{padding:14px}.sidebar-context>p{display:none}.sidebar-context-head strong{font-size:16px}.sidebar-context-meta div:last-child{display:none}.session-quick{margin-top:0}.nav{grid-auto-flow:column;grid-auto-columns:minmax(96px,1fr);overflow-x:auto;gap:8px;margin-top:8px;padding-bottom:6px}.nav-group-label{display:none}.nav-item{min-width:96px;justify-content:center;padding:0 12px}.hero-body,.kpi-row,.patient-row,.admin-stat-grid,.consent-row,.member-focus-chip-row,.member-lower-grid,.member-rhythm-row,.member-mobile-promo{grid-template-columns:1fr}.member-mobile-copy h3{max-width:none}.member-mobile-stat-list{grid-template-columns:1fr}.member-mobile-actions{flex-direction:column;align-items:stretch}.member-mobile-actions .primary,.member-mobile-actions .secondary{min-width:0}.member-focus-actions{flex-direction:column;align-items:stretch}.hero-body{justify-items:center}.ring{width:150px;height:150px}.panel-header{flex-direction:column}.login-hero{padding:28px}.login-card{padding:22px}.login-side{padding:18px}.link-row,.mini-actions,.session-quick{flex-direction:column;align-items:stretch}.shell{padding:10px;gap:10px}.sidebar{height:auto}.topbar-actions{gap:8px}}
