*{box-sizing:border-box}:root{color:#17211b;background:#f4f6f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:#f4f6f2}button,input,textarea{font:inherit}button{cursor:pointer}#app{min-height:100vh}.login-shell{min-height:100vh;display:grid;place-items:center;overflow-x:hidden;background:linear-gradient(145deg,#2563eb24,#2563eb00 42%),linear-gradient(180deg,#eff6ff,#f8fafc 58%,#fff);color:#0f172a;padding:22px 16px max(22px,env(safe-area-inset-bottom))}.login-panel{width:min(100%,420px);display:grid;gap:18px}.login-brand{display:grid;justify-items:center;text-align:center}.login-brand-mark{display:grid;width:58px;height:58px;place-items:center;border:1px solid rgba(219,234,254,.72);border-radius:18px;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;font-size:1.55rem;font-weight:900;box-shadow:0 18px 34px #2563eb47}.login-eyebrow{margin:14px 0 6px;color:#2563eb;font-size:.75rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.login-brand h1{margin:0;color:#0f172a;font-size:2rem;line-height:1.08;letter-spacing:0}.login-subtitle{max-width:20rem;margin:10px 0 0;color:#475569;font-size:.95rem;line-height:1.5}.login-card{width:100%;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:#fffffff5;padding:22px;box-shadow:0 22px 52px #0f172a21}.login-card-header{margin-bottom:18px}.login-card-header h2{margin:0;color:#0f172a;font-size:1.25rem;line-height:1.2;letter-spacing:0}.login-card-header p{margin:6px 0 0;color:#64748b;font-size:.9rem;line-height:1.4}.login-form{display:grid;gap:14px}.login-field{display:grid;gap:7px}.login-field span{color:#334155;font-size:.86rem;font-weight:800}.login-input{width:100%;min-height:50px;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#f8fafc;color:#0f172a;padding:13px 14px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.login-input::placeholder{color:#94a3b8}.login-input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb29}.login-button{min-height:52px;width:100%;border:0;border-radius:8px;background:#2563eb;color:#fff;font-weight:900;box-shadow:0 16px 28px #2563eb47;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.login-button:hover{background:#1d4ed8;box-shadow:0 18px 32px #2563eb57;transform:translateY(-1px)}.login-button:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:3px}.login-message{margin:16px 0 0;border:1px solid #fecaca;border-radius:8px;background:#fff1f2;color:#be123c;font-size:.88rem;font-weight:700;line-height:1.4;padding:11px 12px;text-align:center}.login-footnote{margin:0;color:#64748b;font-size:.82rem;font-weight:700;line-height:1.4;text-align:center}.auth-switch-button{width:100%;margin-top:14px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:.9rem;font-weight:900;padding:12px 14px;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.auth-switch-button:hover{border-color:#93c5fd;background:#dbeafe;transform:translateY(-1px)}.register-role-field{display:grid;gap:8px;min-width:0;margin:0;border:0;padding:0}.register-role-field legend{margin:0;color:#334155;font-size:.86rem;font-weight:800}.register-role-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;padding:5px}.register-role-option{min-width:0;min-height:42px;border:0;border-radius:6px;background:transparent;color:#475569;font-size:.86rem;font-weight:900;transition:background-color .16s ease,color .16s ease,box-shadow .16s ease}.register-role-option-active{background:#2563eb;color:#fff;box-shadow:0 10px 20px #2563eb33}.dashboard-shell{min-height:100vh;background:linear-gradient(180deg,#2563eb14,#f8fafc00 280px),#f8fafc}.dashboard-page{width:min(100%,980px);margin:0 auto;padding:14px 14px calc(104px + env(safe-area-inset-bottom))}.dashboard-app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.dashboard-app-actions{display:inline-flex;align-items:center;gap:8px;min-width:0}.dashboard-user-chip{max-width:120px;overflow:hidden;border:1px solid #dbeafe;border-radius:999px;background:#fff;color:#1e3a8a;font-size:.78rem;font-weight:800;padding:8px 10px;text-overflow:ellipsis;white-space:nowrap}.dashboard-tab-page{display:grid;gap:12px}.dashboard-hero{overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#dbeafe38,#dbeafe00),linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:16px;box-shadow:0 18px 40px #1e3a8a38}.dashboard-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:30px}.dashboard-brand{display:inline-flex;align-items:center;gap:10px;min-width:0;color:#0f172a;font-size:.95rem;font-weight:700}.dashboard-brand-mark{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#dbeafe;color:#1e3a8a}.dashboard-logout-compact{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.9rem;font-weight:700;padding:9px 13px;transition:background-color .16s ease,transform .16s ease}.dashboard-logout-compact:hover{background:#f1f5f9;transform:translateY(-1px)}.dashboard-hero-content{max-width:560px}.dashboard-eyebrow,.dashboard-section-kicker{display:block;margin-bottom:6px;color:#64748b;font-size:.75rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.dashboard-eyebrow{color:#dbeafe}.dashboard-hero h1,.dashboard-section-heading h2,.dashboard-user-panel h2{margin:0;letter-spacing:0}.dashboard-hero h1{font-size:2rem;line-height:1.12}.dashboard-hero p{max-width:34rem;margin:12px 0 2px;color:#fffc;font-size:.98rem;line-height:1.55}.dashboard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-stat{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:12px 10px;box-shadow:0 10px 22px #0f172a14}.dashboard-stat-label,.dashboard-stat-helper{display:block;overflow:hidden;color:#64748b;font-size:.76rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.dashboard-stat strong{display:block;margin:8px 0 4px;color:#0f172a;font-size:1.55rem;line-height:1}.dashboard-stat-primary{border-top:4px solid #2563eb}.dashboard-stat-violet{border-top:4px solid #1e3a8a}.dashboard-stat-green{border-top:4px solid #16a34a}.dashboard-stat-amber{border-top:4px solid #f59e0b}.dashboard-stat-rose{border-top:4px solid #e11d48}.dashboard-content-grid{display:grid;gap:12px}.dashboard-panel{border:1px solid #e2e8f0;border-radius:8px;background:#fffffff0;padding:16px;box-shadow:0 12px 28px #0f172a14}.dashboard-section-heading{margin-bottom:16px}.dashboard-page-heading{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:16px;box-shadow:0 12px 28px #0f172a14}.dashboard-page-heading h1,.dashboard-coming-soon-panel h1{margin:0;color:#0f172a;font-size:1.6rem;line-height:1.15;letter-spacing:0}.dashboard-page-heading p,.dashboard-coming-soon-panel p{margin:8px 0 0;color:#64748b;font-size:.95rem;line-height:1.5}.dashboard-section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboard-section-heading h2,.dashboard-user-panel h2{color:#0f172a;font-size:1.18rem;line-height:1.25}.dashboard-count-pill{min-width:34px;border-radius:999px;background:#dbeafe;color:#1e3a8a;font-size:.9rem;font-weight:800;padding:6px 10px;text-align:center}.student-form{display:grid;gap:12px}.student-form label{display:grid;gap:6px}.student-form label span{color:#334155;font-size:.86rem;font-weight:700}.student-form input{width:100%;min-height:46px;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#f8fafc;color:#0f172a;padding:12px 13px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.student-form input::placeholder{color:#94a3b8}.student-form input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb29}.student-form-row{display:grid;grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);gap:10px}.workout-form{gap:14px}.workout-exercises-section{display:grid;gap:12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:12px}.workout-exercises-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.workout-exercises-heading span{display:block;color:#0f172a;font-size:.96rem;font-weight:900;line-height:1.25}.workout-exercises-heading small{display:block;margin-top:3px;color:#64748b;font-size:.76rem;font-weight:700;line-height:1.35}.workout-exercise-add-button,.workout-exercise-remove-button{border:0;background:transparent;font-size:.82rem;font-weight:900;white-space:nowrap}.workout-exercise-add-button{color:#2563eb}.workout-exercise-remove-button{color:#dc2626}.workout-exercise-list{display:grid;gap:10px}.workout-exercise-item{display:grid;gap:10px;border:1px solid #dbeafe;border-radius:8px;background:#fff;padding:11px}.workout-exercise-item-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:9px}.workout-exercise-index{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#2563eb;color:#fff;font-size:.82rem;font-weight:900}.workout-exercise-name-field{min-width:0}.workout-exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.workout-form-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.nutrition-plan-form{gap:14px}.nutrition-meals-section{display:grid;gap:12px;border:1px solid #dbeafe;border-radius:8px;background:#f8fafc;padding:12px}.nutrition-meals-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.nutrition-meals-heading span{display:block;color:#0f172a;font-size:.96rem;font-weight:900;line-height:1.25}.nutrition-meals-heading small{display:block;margin-top:3px;color:#64748b;font-size:.76rem;font-weight:800;line-height:1.35}.nutrition-meal-add-button,.nutrition-meal-remove-button,.nutrition-food-add-button,.nutrition-food-remove-button{border:0;background:transparent;font-size:.82rem;font-weight:900;white-space:nowrap}.nutrition-meal-add-button,.nutrition-food-add-button{width:fit-content;color:#2563eb}.nutrition-meal-remove-button,.nutrition-food-remove-button{color:#dc2626}.nutrition-meal-add-button{flex:0 0 auto}.nutrition-meals-empty{margin:0;border:1px dashed #bfdbfe;border-radius:8px;background:#fff;color:#64748b;font-size:.86rem;font-weight:700;line-height:1.45;padding:12px}.nutrition-meal-editor-list,.nutrition-food-editor-list,.nutrition-meal-summary-list,.nutrition-food-summary-list{display:grid;gap:10px}.nutrition-meal-editor,.nutrition-meal-summary-item{display:grid;gap:10px;border:1px solid #dbeafe;border-radius:8px;background:#fff;padding:11px}.nutrition-meal-editor-heading{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(86px,.42fr) auto;align-items:end;gap:9px}.nutrition-meal-index{display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#2563eb;color:#fff;font-size:.82rem;font-weight:900}.nutrition-food-editor{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(88px,.8fr) minmax(68px,.46fr) auto;align-items:end;gap:8px;border-radius:8px;background:#eff6ff;padding:9px}.nutrition-food-name-field{min-width:0}.nutrition-food-remove-button{min-height:42px}.nutrition-meal-summary-list{margin-top:4px}.nutrition-meal-summary-item{border-color:#bfdbfe;background:#f8fafc}.nutrition-meal-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.nutrition-meal-summary-heading strong,.nutrition-food-summary-item strong{min-width:0;color:#0f172a;font-size:.88rem;line-height:1.25;overflow-wrap:anywhere}.nutrition-meal-summary-heading span{flex:0 0 auto;border-radius:999px;background:#dbeafe;color:#1e3a8a;font-size:.72rem;font-weight:900;padding:5px 8px}.nutrition-food-summary-list{gap:6px}.nutrition-food-summary-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border-radius:8px;background:#fff;padding:8px 9px}.nutrition-food-summary-item span{color:#64748b;font-size:.76rem;font-weight:800;line-height:1.3;text-align:right}.dashboard-primary-button,.dashboard-secondary-button{min-height:48px;width:100%;border-radius:8px;font-weight:800}.dashboard-primary-button{border:0;background:#2563eb;color:#fff;box-shadow:0 12px 24px #2563eb3d;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.dashboard-primary-button:hover{background:#1d4ed8;box-shadow:0 14px 28px #2563eb4d;transform:translateY(-1px)}.dashboard-empty-state{border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;padding:18px}.dashboard-empty-state span{display:block;color:#0f172a;font-weight:800;margin-bottom:6px}.dashboard-empty-state p{margin:0;color:#64748b;font-size:.92rem;line-height:1.45}.student-card-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.student-card{display:flex;align-items:flex-start;gap:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:12px}.student-avatar{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border-radius:50%;background:linear-gradient(135deg,#2563eb,#60a5fa);color:#fff;font-size:.86rem;font-weight:900}.student-card-body{min-width:0;flex:1}.student-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.student-card h3{margin:0;color:#0f172a;font-size:1rem;line-height:1.25}.student-card p{margin:4px 0 0;color:#64748b;font-size:.88rem;line-height:1.35}.student-card-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.student-detail-button{flex:0 0 auto;border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#15803d;font-size:.76rem;font-weight:800;padding:7px 9px;transition:background-color .16s ease,border-color .16s ease}.student-detail-button:hover{border-color:#86efac;background:#dcfce7}.student-remove-button{flex:0 0 auto;border:1px solid #f1c7c7;border-radius:8px;background:#fff5f5;color:#b42318;font-size:.76rem;font-weight:800;padding:7px 9px;transition:background-color .16s ease,border-color .16s ease}.student-remove-button:hover{border-color:#efa7a7;background:#ffe7e7}.student-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.student-card-meta span{min-width:0;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.74rem;font-weight:700;padding:5px 8px;overflow-wrap:anywhere}.student-detail-view{display:grid;gap:12px}.student-detail-back-button{width:fit-content;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.86rem;font-weight:800;padding:10px 12px;transition:background-color .16s ease,transform .16s ease}.student-detail-back-button:hover{background:#f1f5f9;transform:translateY(-1px)}.student-detail-hero{display:flex;align-items:center;gap:14px;overflow:hidden;border:1px solid #dbeafe;border-radius:8px;background:linear-gradient(135deg,#2563eb24,#fff0 64%),#fff;padding:16px;box-shadow:0 12px 28px #0f172a14}.student-detail-avatar-large{display:grid;width:64px;height:64px;flex:0 0 auto;place-items:center;border-radius:50%;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;font-size:1.05rem;font-weight:900;box-shadow:0 14px 26px #2563eb38}.student-detail-hero-content{min-width:0}.student-detail-hero h1{margin:0;color:#0f172a;font-size:1.45rem;line-height:1.15;letter-spacing:0;overflow-wrap:anywhere}.student-detail-hero p{margin:7px 0 0;color:#475569;font-size:.94rem;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.student-detail-info-grid,.student-detail-metric-grid,.student-detail-nutrition-grid{display:grid;gap:8px}.student-detail-info-grid{grid-template-columns:1fr}.student-detail-info-grid article{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:12px;box-shadow:0 10px 22px #0f172a12}.student-detail-metric-grid div,.student-detail-nutrition-grid div{min-width:0;border-radius:8px;background:#f8fafc;padding:10px 8px;text-align:center}.student-detail-info-grid span,.student-detail-metric-grid span,.student-detail-nutrition-grid span,.student-detail-card-meta span,.student-detail-progress span{display:block;color:#64748b;font-size:.74rem;font-weight:800;line-height:1.3}.student-detail-info-grid strong,.student-detail-metric-grid strong,.student-detail-nutrition-grid strong{display:block;margin-top:6px;color:#0f172a;font-size:.95rem;line-height:1.25;overflow-wrap:anywhere}.student-detail-grid{display:grid;gap:12px}.student-detail-card{display:grid;gap:12px;overflow:hidden}.student-detail-card-workout{border-top:4px solid #2563eb}.student-detail-card-diet{border-top:4px solid #16a34a}.student-detail-card-metrics{border-top:4px solid #e11d48}.student-detail-card-message{border-top:4px solid #f59e0b}.student-detail-card-heading h2{margin:0;color:#0f172a;font-size:1.1rem;line-height:1.25;letter-spacing:0}.student-detail-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.student-detail-card-meta span{overflow:hidden;border-radius:8px;background:#f8fafc;padding:8px 7px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.student-detail-progress{display:grid;gap:8px;border-radius:8px;background:#f8fafc;padding:12px}.student-detail-progress div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-detail-progress strong{color:#0f172a;font-size:.9rem}.student-detail-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.student-detail-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#22c55e)}.student-detail-metric-grid,.student-detail-nutrition-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-detail-nutrition-grid div:nth-child(1){background:#eff6ff}.student-detail-nutrition-grid div:nth-child(2){background:#f0fdf4}.student-detail-nutrition-grid div:nth-child(3){background:#fff7ed}.student-detail-note-list{display:grid;gap:9px}.student-detail-observation-form,.student-portal-observation-form{display:grid;gap:10px}.student-detail-observation-form label,.student-portal-observation-form label{display:grid;gap:6px}.student-detail-observation-form label span,.student-portal-observation-form label span{color:#334155;font-size:.86rem;font-weight:800}.student-detail-observation-textarea{width:100%;min-height:112px;resize:vertical;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#f8fafc;color:#0f172a;padding:12px 13px;line-height:1.45;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.student-detail-observation-textarea::placeholder{color:#94a3b8}.student-detail-observation-textarea:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb29}.student-detail-observation-textarea:disabled{cursor:not-allowed;opacity:.72}.student-detail-observation-feedback{margin:0;color:#475569;font-size:.84rem;font-weight:800;line-height:1.4}.student-detail-chat-list,.student-portal-chat-list,.student-portal-chat-thread-list,.student-portal-chat-thread{display:grid;gap:10px}.student-detail-chat-list,.student-portal-chat-list{max-height:min(46vh,430px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:stable}.student-portal-chat-list{max-height:min(42vh,380px)}.student-portal-chat-thread-list{gap:16px}.student-portal-chat-thread{gap:12px}.student-portal-chat-thread-heading{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(148,163,184,.28);color:#334155;font-size:.82rem;font-weight:800;padding-bottom:8px}.student-detail-chat-list>p,.student-portal-chat-list>p,.student-portal-chat-thread-list>p{margin:0;border-radius:8px;background:#f8fafc;color:#475569;font-size:.9rem;line-height:1.5;padding:11px 12px}.student-detail-chat-message,.student-portal-chat-message{display:grid;gap:7px;width:fit-content;max-width:min(86%,520px);border-radius:8px;color:#334155;font-size:.9rem;line-height:1.5;padding:11px 12px}.student-detail-chat-message p,.student-portal-chat-message p{margin:0;padding:0;overflow-wrap:anywhere}.student-detail-chat-message-professional,.student-portal-chat-message-student{justify-self:end;background:#dbeafe;color:#1e3a8a}.student-detail-chat-message-student,.student-portal-chat-message-professional{justify-self:start;background:#f8fafc;color:#475569}.student-detail-chat-meta,.student-portal-chat-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:#64748b;font-size:.74rem;font-weight:800}.student-detail-chat-meta strong,.student-portal-chat-meta strong{color:inherit}.student-detail-note-list>p,.student-detail-note-item{margin:0;border-radius:8px;background:#f8fafc;color:#475569;font-size:.9rem;line-height:1.5;padding:11px 12px}.student-detail-note-item{display:grid;gap:7px}.student-detail-note-item p{padding:0}.workout-exercise-summary-list{display:grid;gap:7px}.workout-exercise-summary-item{display:grid;gap:3px;border-left:3px solid #2563eb;background:#2563eb0f;padding:8px 10px}.workout-exercise-summary-item strong{color:#0f172a;font-size:.9rem;line-height:1.25}.workout-exercise-summary-item p{color:#475569;font-size:.82rem;line-height:1.4}.student-detail-note-item span,.student-portal-note-item span{color:#64748b;font-size:.74rem;font-weight:800}.dashboard-user-panel{display:grid;gap:14px;margin-top:12px}.dashboard-user-details{display:grid;gap:8px}.dashboard-user-details p{display:grid;gap:4px;margin:0;border-radius:8px;background:#f8fafc;padding:11px 12px}.dashboard-user-details span{color:#64748b;font-size:.78rem;font-weight:800;text-transform:uppercase}.dashboard-user-details strong{min-width:0;color:#0f172a;font-size:.94rem;overflow-wrap:anywhere}.dashboard-secondary-button{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.9rem;font-weight:800;padding:9px 13px;box-shadow:none;transition:background-color .16s ease,transform .16s ease}.dashboard-secondary-button:hover{background:#f1f5f9;transform:translateY(-1px)}.dashboard-coming-soon-panel{display:grid;min-height:320px;align-content:center;border:1px solid #e2e8f0;border-radius:8px;background:linear-gradient(135deg,#16a34a1f,#2563eb14),#fff;padding:24px;box-shadow:0 12px 28px #0f172a14}.dashboard-coming-soon-badge{width:fit-content;margin-bottom:12px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.78rem;font-weight:900;padding:7px 10px;text-transform:uppercase}.feature-page-heading{position:relative;overflow:hidden}.feature-page-heading:after{position:absolute;top:18px;right:18px;width:54px;height:54px;border:1px solid rgba(148,163,184,.2);border-radius:50%;content:""}.feature-page-heading-workouts{background:linear-gradient(135deg,#2563eb1f,#fff0 62%),#fff}.feature-page-heading-diets{background:linear-gradient(135deg,#16a34a1f,#fff0 62%),#fff}.feature-page-heading-metrics{background:linear-gradient(135deg,#e11d481a,#fff0 62%),#fff}.feature-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.feature-summary-card{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:12px 10px;box-shadow:0 10px 22px #0f172a12}.feature-summary-card span,.feature-summary-card small{display:block;overflow:hidden;color:#64748b;font-size:.72rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.feature-summary-card strong{display:block;margin:7px 0 3px;color:#0f172a;font-size:1.35rem;line-height:1}.feature-filter-row,.metrics-student-row{display:flex;gap:8px;margin-inline:-2px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none}.feature-filter-row::-webkit-scrollbar,.metrics-student-row::-webkit-scrollbar{display:none}.feature-filter-chip,.metrics-student-chip{flex:0 0 auto;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:.82rem;font-weight:800;padding:9px 12px;white-space:nowrap}.feature-filter-chip-workouts{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.feature-filter-chip-diets{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.feature-card-list{display:grid;gap:10px}.feature-card{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:14px;box-shadow:0 12px 28px #0f172a14}.feature-card-header,.feature-card-footer,.measurement-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feature-card-header h2{margin:4px 0 0;color:#0f172a;font-size:1.05rem;line-height:1.25;letter-spacing:0}.feature-student-name{display:block;color:#64748b;font-size:.8rem;font-weight:800}.feature-status-pill{flex:0 0 auto;max-width:44%;overflow:hidden;border-radius:999px;background:#dbeafe;color:#1e3a8a;font-size:.72rem;font-weight:900;padding:7px 9px;text-overflow:ellipsis;white-space:nowrap}.feature-status-pill-green{background:#dcfce7;color:#166534}.feature-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:13px 0}.feature-meta-grid span{min-width:0;overflow:hidden;border-radius:8px;background:#f8fafc;color:#475569;font-size:.74rem;font-weight:800;padding:8px 7px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.feature-progress-block{display:grid;gap:8px;border-radius:8px;background:#f8fafc;padding:12px}.feature-progress-block div:first-child{display:flex;justify-content:space-between;gap:12px}.feature-progress-block span,.feature-progress-block small{color:#64748b;font-size:.78rem;font-weight:800}.feature-progress-block strong{color:#0f172a;font-size:.86rem}.feature-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.feature-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#22c55e)}.feature-card-footer{align-items:center;margin-top:13px;border-top:1px solid #e2e8f0;padding-top:12px}.feature-card-footer>span{color:#64748b;font-size:.74rem;font-weight:700}.feature-card-footer div{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.feature-card-footer button{border:0;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:.75rem;font-weight:900;padding:7px 9px}.nutrition-card .feature-card-footer button{background:#f0fdf4;color:#15803d}.nutrition-macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.nutrition-macro-grid div{min-width:0;border-radius:8px;padding:10px 8px;text-align:center}.nutrition-macro-grid div:nth-child(1){background:#eff6ff}.nutrition-macro-grid div:nth-child(2){background:#fff7ed}.nutrition-macro-grid div:nth-child(3){background:#fefce8}.nutrition-macro-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nutrition-macro-grid span{display:block;color:#64748b;font-size:.68rem;font-weight:800;line-height:1.2;overflow-wrap:anywhere}.nutrition-macro-grid strong{margin-top:4px;color:#0f172a;font-size:.92rem}.metrics-student-chip{display:inline-flex;align-items:center;gap:8px}.metrics-student-chip span{display:inline-grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#dbeafe;color:#1e3a8a;font-size:.72rem;font-weight:900}.metrics-student-chip-active{border-color:#2563eb;background:#2563eb;color:#fff}.metrics-student-chip-active span{background:#ffffff2e;color:#fff}.metrics-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-card{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:13px;box-shadow:0 10px 22px #0f172a12}.metric-card span,.metric-card small{display:block;color:#64748b;font-size:.74rem;font-weight:800;line-height:1.3}.metric-card strong{display:block;margin:8px 0 4px;color:#0f172a;font-size:1.35rem;line-height:1}.metrics-chart-panel{overflow:hidden}.metrics-chart-bars{display:flex;align-items:flex-end;gap:10px;height:170px;border-radius:8px;background:linear-gradient(180deg,rgba(226,232,240,.7) 1px,transparent 1px) 0 0 / 100% 34px,#f8fafc;padding:18px 16px 14px}.metrics-chart-bar{display:block;flex:1;min-width:20px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#2563eb,#22c55e);box-shadow:0 10px 18px #2563eb2e}.measurement-list{display:grid;gap:9px}.measurement-item{align-items:center;border-radius:8px;background:#f8fafc;padding:11px 12px}.measurement-item span{min-width:0;color:#334155;font-size:.88rem;font-weight:800}.measurement-item strong{color:#0f172a;font-size:.92rem}.measurement-change{flex:0 0 auto;border-radius:999px;font-size:.74rem;font-weight:900;padding:5px 7px}.measurement-change-positive{background:#dcfce7;color:#166534}.measurement-change-negative{background:#fee2e2;color:#b91c1c}.measurement-change-neutral{background:#f1f5f9;color:#475569}.student-portal-shell{min-height:100vh;background:linear-gradient(180deg,#2563eb1a,#f8fafc00 300px),#f8fafc;color:#0f172a}.student-portal-page{width:min(100%,980px);margin:0 auto;padding:14px 14px calc(24px + env(safe-area-inset-bottom))}.student-portal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.student-portal-brand{display:inline-flex;align-items:center;gap:10px;min-width:0;color:#0f172a;font-size:.95rem;font-weight:800}.student-portal-brand-mark{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#dbeafe;color:#1e3a8a}.student-portal-logout{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.9rem;font-weight:800;padding:9px 13px;transition:background-color .16s ease,transform .16s ease}.student-portal-logout:hover{background:#f1f5f9;transform:translateY(-1px)}.student-portal-hero{display:grid;gap:18px;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#dbeafe2e,#fff0 58%),linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:18px;box-shadow:0 18px 40px #1e3a8a38}.student-portal-hero h1,.student-portal-summary-heading h2,.student-portal-card h2{margin:0;letter-spacing:0}.student-portal-hero h1{font-size:2rem;line-height:1.1}.student-portal-hero p{max-width:34rem;margin:10px 0 0;color:#ffffffd1;font-size:.98rem;line-height:1.5}.student-portal-kicker{display:block;margin-bottom:6px;color:#64748b;font-size:.74rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.student-portal-hero .student-portal-kicker{color:#dbeafe}.student-portal-checkin{display:grid;gap:5px;min-width:0;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#ffffff1f;padding:12px}.student-portal-checkin span,.student-portal-checkin small{color:#ffffffc2;font-size:.78rem;font-weight:800;line-height:1.3}.student-portal-checkin strong{color:#fff;font-size:1.2rem;line-height:1.1}.student-portal-tabs{display:flex;gap:8px;margin:12px -2px 0;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}.student-portal-tabs::-webkit-scrollbar{display:none}.student-portal-tab{flex:0 0 auto;min-height:40px;border:1px solid #dbeafe;border-radius:999px;background:#fff;color:#334155;font-size:.82rem;font-weight:900;letter-spacing:0;padding:9px 13px;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.student-portal-tab:hover{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;transform:translateY(-1px)}.student-portal-tab:focus-visible{outline:3px solid rgba(37,99,235,.22);outline-offset:2px}.student-portal-tab-active{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 10px 20px #2563eb33}.student-portal-tab-active:hover{background:#1d4ed8;color:#fff}.student-portal-tab-panel{min-width:0}.student-portal-summary{display:grid;gap:12px;min-width:0;margin-top:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:14px;box-shadow:0 12px 28px #0f172a14}.student-portal-summary-heading{min-width:0}.student-portal-summary-heading h2{color:#0f172a;font-size:1.18rem;line-height:1.2}.student-portal-summary-heading p{margin:6px 0 0;color:#64748b;font-size:.88rem;font-weight:700;line-height:1.4}.student-portal-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.student-portal-summary-stat{min-width:0;border:1px solid #e2e8f0;border-top:3px solid #2563eb;border-radius:8px;background:#f8fafc;padding:11px 10px}.student-portal-summary-stat span,.student-portal-summary-stat small{display:block;overflow:hidden;color:#64748b;font-size:.72rem;font-weight:800;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.student-portal-summary-stat strong{display:block;margin:7px 0 4px;color:#0f172a;font-size:1.36rem;line-height:1}.student-portal-summary-stat-diet{border-top-color:#16a34a}.student-portal-summary-stat-metric{border-top-color:#e11d48}.student-portal-summary-stat-observation{border-top-color:#f59e0b}.student-portal-grid{display:grid;gap:12px;margin-top:12px}.student-portal-card{display:grid;gap:14px;min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:16px;box-shadow:0 12px 28px #0f172a14}.student-portal-card-workout{border-top:4px solid #2563eb}.student-portal-card-diet{border-top:4px solid #16a34a}.student-portal-card-metrics{border-top:4px solid #e11d48}.student-portal-card-message{border-top:4px solid #f59e0b}.student-portal-card h2{color:#0f172a;font-size:1.16rem;line-height:1.25}.student-portal-info-grid,.student-portal-metric-grid{display:grid;gap:8px}.student-portal-info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-portal-info-grid span,.student-portal-metric-grid div{min-width:0;overflow:hidden;border-radius:8px;background:#f8fafc}.student-portal-info-grid span{color:#475569;font-size:.76rem;font-weight:800;padding:9px 7px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.student-portal-progress{display:grid;gap:8px;border-radius:8px;background:#f8fafc;padding:12px}.student-portal-progress div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-portal-progress span{color:#64748b;font-size:.78rem;font-weight:800}.student-portal-progress strong{color:#0f172a;font-size:.92rem}.student-portal-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.student-portal-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#22c55e)}.student-portal-progress-track-green span{background:linear-gradient(90deg,#16a34a,#f59e0b)}.student-portal-card-note{margin:0;color:#475569;font-size:.9rem;font-weight:700;line-height:1.45}.student-portal-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-portal-metric-grid div{padding:12px 10px}.student-portal-metric-grid span,.student-portal-metric-grid small{display:block;overflow:hidden;color:#64748b;font-size:.72rem;font-weight:800;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.student-portal-metric-grid strong{display:block;margin:7px 0 4px;color:#0f172a;font-size:1.18rem;line-height:1}.student-portal-note-list{display:grid;gap:9px}.student-portal-note-list>p,.student-portal-note-item{margin:0;border-radius:8px;background:#f8fafc;color:#475569;font-size:.9rem;line-height:1.5;padding:11px 12px}.student-portal-note-item{display:grid;gap:7px}.student-portal-note-item p{padding:0}.bottom-navigation{position:fixed;top:auto;right:12px;bottom:max(10px,env(safe-area-inset-bottom));left:12px;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;width:min(calc(100% - 24px),520px);height:74px;min-height:74px;margin:0 auto;border:1px solid rgba(148,163,184,.32);border-radius:18px;background:#fff;padding:8px;box-shadow:0 18px 42px #0f172a2e;pointer-events:none}.bottom-navigation-item{display:grid;min-width:0;min-height:58px;place-items:center;gap:3px;border:0;border-radius:14px;background:transparent;color:#64748b;font-size:.68rem;font-weight:800;line-height:1.1;padding:6px 2px;pointer-events:auto;transition:background-color .16s ease,color .16s ease,transform .16s ease}.bottom-navigation-item:hover{background:#f1f5f9;color:#0f172a}.bottom-navigation-item-active{background:#dbeafe;color:#1e3a8a}.bottom-navigation-icon{display:grid;width:24px;height:24px;place-items:center}.bottom-navigation-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.bottom-navigation-item span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 559px){.workout-exercises-heading,.workout-exercise-item-heading,.nutrition-meal-editor-heading,.nutrition-food-editor{align-items:stretch;grid-template-columns:1fr}.workout-exercises-heading{display:grid}.workout-exercise-item-heading{gap:8px}.workout-exercise-index,.nutrition-meal-index{width:28px;height:28px}.workout-exercise-grid,.workout-form-actions{grid-template-columns:1fr}.workout-exercise-add-button,.workout-exercise-remove-button,.nutrition-meal-add-button,.nutrition-meal-remove-button,.nutrition-food-add-button,.nutrition-food-remove-button{justify-self:start}.nutrition-food-summary-item{grid-template-columns:1fr}.nutrition-food-summary-item span{text-align:left}.student-detail-chat-list,.student-portal-chat-list{max-height:320px}}@media (max-width: 359px){.dashboard-page{padding-inline:10px}.dashboard-stat{padding:10px 8px}.dashboard-stat strong{font-size:1.35rem}.student-form-row{grid-template-columns:1fr}.student-card-main{display:grid}.student-card-actions{justify-content:flex-start}.student-detail-hero{align-items:flex-start}.student-detail-avatar-large{width:54px;height:54px}.feature-summary-card,.metric-card{padding:10px 8px}.feature-summary-card strong,.metric-card strong{font-size:1.18rem}.feature-meta-grid,.nutrition-macro-grid,.student-detail-card-meta,.student-detail-metric-grid,.student-detail-nutrition-grid{gap:5px}.feature-meta-grid span,.student-detail-card-meta span{font-size:.68rem;padding:7px 5px}.feature-card-footer{display:grid}.feature-card-footer div{justify-content:flex-start}.student-remove-button{justify-self:start}.bottom-navigation{right:8px;left:8px;width:min(calc(100% - 16px),520px);padding:7px}.bottom-navigation-item{font-size:.62rem}.student-portal-page{padding-inline:10px}.student-portal-summary-grid,.student-portal-info-grid,.student-portal-metric-grid{grid-template-columns:1fr}}@media (min-width: 720px){.dashboard-page{padding:24px 24px calc(112px + env(safe-area-inset-bottom))}.dashboard-app-header{margin-bottom:18px}.dashboard-hero{padding:24px}.dashboard-hero h1{font-size:2.45rem}.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-stat{padding:16px}.dashboard-stat strong{font-size:1.9rem}.dashboard-content-grid{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);align-items:start;gap:16px}.dashboard-panel{padding:18px}.dashboard-user-panel{grid-template-columns:1fr 1.4fr auto;align-items:center;gap:18px;margin-top:16px}.dashboard-user-details{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-secondary-button{width:auto;min-width:140px}.dashboard-page-heading,.student-detail-hero{padding:18px}.student-detail-hero h1{font-size:1.75rem}.student-detail-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.student-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.feature-summary-grid{gap:12px}.feature-summary-card{padding:16px}.feature-card-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.feature-card{padding:16px}.metrics-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metrics-chart-bars{height:210px;gap:14px}.dashboard-page-heading h1,.dashboard-coming-soon-panel h1{font-size:1.9rem}.bottom-navigation{bottom:18px}.student-portal-page{padding:24px 24px calc(32px + env(safe-area-inset-bottom))}.student-portal-header{margin-bottom:18px}.student-portal-hero{grid-template-columns:minmax(0,1fr) 190px;align-items:end;padding:24px}.student-portal-hero h1{font-size:2.45rem}.student-portal-grid{gap:16px;margin-top:16px}.student-portal-tabs{margin-top:16px}.student-portal-summary{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:center;gap:16px;margin-top:16px;padding:18px}.student-portal-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.student-portal-card{padding:18px}}
