:root{--color-bg: #f7f8fb;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-border: #e7eaf0;--color-border-strong: #d8deea;--color-text: #111827;--color-text-muted: #6b7280;--color-text-soft: #9aa3b2;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-soft: #eef4ff;--color-ink: #1f2937;--color-success: #16a34a;--color-success-soft: #dcfce7;--color-warning: #d97706;--color-warning-soft: #fef3c7;--color-danger: #dc2626;--color-danger-soft: #fee2e2;--color-purple: #9333ea;--color-purple-soft: #f3e8ff;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 10px 30px rgba(15, 23, 42, .08);--shadow-card: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);--sidebar-width: 264px;--content-pad-x: 28px;--form-gap: 16px;--form-label-gap: 6px;--form-control-height: 42px;--form-control-padding-x: 12px;--form-control-radius: var(--radius-sm);--form-control-border: 1px solid var(--color-border-strong);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}html{color-scheme:light}body{background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:14px;font-weight:600;line-height:1.25;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease,box-shadow .15s ease,transform .05s ease;white-space:nowrap;text-decoration:none;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;-webkit-text-fill-color:#fff;border-color:var(--color-primary);box-shadow:0 1px 2px #2563eb40}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff;-webkit-text-fill-color:#fff}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn-dark{background:var(--color-ink);color:#fff}.btn-dark:hover:not(:disabled){background:#111827}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--radius-sm)}a.btn-primary,a.btn-primary:visited,a.btn-primary:hover,a.btn-dark,a.btn-dark:visited,a.btn-dark:hover,a.btn-danger,a.btn-danger:visited,a.btn-danger:hover{color:#fff;-webkit-text-fill-color:#fff}a.btn-secondary,a.btn-secondary:visited,a.btn-secondary:hover{color:var(--color-text);-webkit-text-fill-color:var(--color-text)}a.btn-ghost,a.btn-ghost:visited,a.btn-ghost:hover{color:var(--color-text-muted);-webkit-text-fill-color:var(--color-text-muted)}.table .btn,.actions-cell .btn,.row .btn{border-radius:var(--radius-sm)}.field{display:flex;flex-direction:column;align-items:stretch;gap:var(--form-label-gap);margin:0 0 var(--form-gap);min-width:0}.field>label,.field>.field-label-text{display:block;margin:0;font-size:13px;font-weight:600;line-height:1.3;color:var(--color-text)}.field label{font-size:13px;font-weight:600;color:var(--color-text)}.input,.select,button.select,.searchable-select-trigger{width:100%;min-height:var(--form-control-height);height:var(--form-control-height);padding:0 var(--form-control-padding-x);border:var(--form-control-border);border-radius:var(--form-control-radius);background:var(--color-surface);color:var(--color-text);font-size:14px;font-family:inherit;font-weight:400;line-height:1.25;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease;color-scheme:light}select.input,select.select,.select:not(.searchable-select-trigger){-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 8px;padding-right:36px}.input[type=date],.input[type=time],.input[type=datetime-local],.input[type=month],.input[type=week],.input[type=number]{min-height:var(--form-control-height);height:var(--form-control-height)}.input[type=file],.input.input-file{height:auto;min-height:var(--form-control-height);display:flex;align-items:center;padding-block:8px;line-height:normal}.input::placeholder,.textarea::placeholder,textarea.input::placeholder{color:var(--color-text-soft)}select.input option,.select option,select option{color:#111827!important;background-color:#fff!important;-webkit-text-fill-color:#111827}.input:focus,.select:focus,.textarea:focus,textarea.input:focus,textarea.textarea:focus,.searchable-select-trigger:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}@keyframes onAutoFillStart{0%{opacity:.99}to{opacity:1}}.input:-webkit-autofill{animation-name:onAutoFillStart;animation-duration:1ms}.field-error{color:var(--color-danger);font-size:12px;margin:0}.input.is-invalid,.select.is-invalid{border-color:var(--color-danger)}.input.is-invalid:focus,.select.is-invalid:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft)}.password-input{position:relative;width:100%}.password-input .input{padding-right:44px}.password-input-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:color .15s ease,background .15s ease}.password-input-toggle:hover{color:var(--color-text);background:var(--color-surface-muted)}.password-input-toggle:focus-visible{outline:none;color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.form-grid,.form-stack,form.card-body,.card-body>form,.card-body.form-panel,.card-body.form-stack,.modal-body>form,.modal-body form,.form-panel>form,.form-panel form{display:flex;flex-direction:column;gap:var(--form-gap)}.form-grid .field,.form-stack .field,form.card-body .field,.card-body>form .field,.card-body.form-panel .field,.card-body.form-stack .field,.modal-body form .field,.form-panel .field,.grid-2>.field,.grid-3>.field,.grid-4>.field,.form-grid.cols-2>.field,.toolbar .field,.filter-bar .field{margin:0}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-gap);align-items:start}.field-row.gym-in-slot-row{grid-template-columns:minmax(7rem,1.2fr) repeat(2,minmax(6rem,1fr)) auto;align-items:end}.form-grid .field-row,.form-stack .field-row,.card-body.form-panel .field-row,.card-body.form-stack .field-row{margin:0}@media (max-width: 560px){.field-row{grid-template-columns:1fr}.field-row.gym-in-slot-row{grid-template-columns:1fr 1fr}.field-row.gym-in-slot-row .gym-in-slot-remove{grid-column:1 / -1}}.form-grid.cols-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-gap);align-items:start}.form-grid>.field:last-child,.form-stack>.field:last-child{margin-bottom:0}.form-grid>h3,.form-stack>h3,form.card-body>h3,.card-body>form>h3,.modal-body form>h3{margin:0;font-size:16px;line-height:1.35}.form-grid>.field~h3,.form-grid>[class*=grid-]~h3,.form-stack>.field~h3,.form-stack>[class*=grid-]~h3,form.card-body>.field~h3,form.card-body>[class*=grid-]~h3,.card-body>form>.field~h3,.card-body>form>[class*=grid-]~h3,.modal-body form>.field~h3,.modal-body form>[class*=grid-]~h3{margin-top:calc(var(--form-gap) * .5);padding-top:calc(var(--form-gap) + 4px);border-top:1px solid var(--color-border)}.form-grid>p,.form-stack>p,form.card-body>p,.card-body>form>p,.modal-body form>p{margin:0}.form-panel{max-width:680px}.form-panel-wide{max-width:840px}.form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:calc(var(--form-gap) * .5);padding-top:16px;padding-bottom:4px;border-top:1px solid var(--color-border)}.form-stack .form-actions,.card-body.form-panel .form-actions,.card-body.form-stack .form-actions{margin-top:4px}.form-actions .btn{width:auto;min-width:0}.card-body form>.form-actions:first-child{margin-top:0;padding-top:0;border-top:none}.field-optional{font-weight:500;color:var(--color-text-muted)}.field-required{color:var(--color-danger);font-weight:600}.field:has([required])>label:after{content:" *";color:var(--color-danger);font-weight:600}label.field>.field-label-text{font-size:13px;font-weight:600;color:var(--color-text)}label.field:has([required])>.field-label-text:after{content:" *";color:var(--color-danger);font-weight:600}.field-hint{margin:0;font-size:12px;color:var(--color-text-soft);line-height:1.4}.member-picker-control{display:flex;flex-direction:column}.member-picker-search{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent;position:relative;z-index:1}.member-picker-search:focus{border-bottom-color:var(--color-primary)}.member-picker-select{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}.textarea,textarea.input,textarea.textarea{width:100%;height:auto;min-height:88px;padding:10px var(--form-control-padding-x);border:var(--form-control-border);border-radius:var(--form-control-radius);background:var(--color-surface);color:var(--color-text);font-size:14px;font-family:inherit;font-weight:400;line-height:1.5;box-sizing:border-box;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease;color-scheme:light}.checkbox-label{display:inline-flex;align-items:center;gap:10px;color:var(--color-text)}.checkbox-row{display:flex;align-items:center;gap:10px;margin:0;color:var(--color-text);cursor:pointer}.form-grid .checkbox-row,.form-stack .checkbox-row,form.card-body .checkbox-row,.modal-body form .checkbox-row{margin:0}.auth-card form .checkbox-row{margin:4px 0 14px}.searchable-select{position:relative;width:100%}.searchable-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;cursor:pointer}.searchable-select-trigger:disabled{cursor:not-allowed;opacity:.65}.searchable-select-value,.searchable-select-placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.searchable-select-placeholder{color:var(--color-text-muted)}.searchable-select-chevron{flex-shrink:0;color:var(--color-text-muted);font-size:12px}.searchable-select-menu{z-index:200;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);overflow:hidden}.searchable-select-menu:not(.searchable-select-menu-portal){position:absolute;top:calc(100% + 6px);left:0;right:0}.searchable-select-search-wrap{padding:8px;border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.searchable-select-search{width:100%}.searchable-select-list{max-height:240px;overflow-y:auto;padding:6px}.searchable-select-option{display:block;width:100%;padding:10px 12px;border:none;border-radius:8px;background:#fff;color:#111827;font-size:14px;font-weight:500;font-family:inherit;text-align:left;cursor:pointer;line-height:1.4;-webkit-text-fill-color:#111827}.searchable-select-option:hover,.searchable-select-option.is-highlighted{background:var(--color-surface-muted);color:#111827;-webkit-text-fill-color:#111827}.searchable-select-option.is-selected{background:var(--color-primary-soft);color:var(--color-primary);-webkit-text-fill-color:var(--color-primary);font-weight:600}.searchable-select-option.is-disabled,.searchable-select-option:disabled{opacity:.55;cursor:not-allowed}.searchable-select-option.is-disabled:hover,.searchable-select-option:disabled:hover{background:#fff;color:#111827;-webkit-text-fill-color:#111827}.searchable-select-option-clear{color:var(--color-text-muted);font-size:13px;font-weight:500}.searchable-select-empty{padding:14px 12px;color:var(--color-text-muted);font-size:13px;text-align:center}.card-body form>.btn,.card-body form>button.btn{margin-top:var(--form-gap);align-self:flex-start}.selection-list{max-height:240px;overflow-y:auto;padding:8px}.selection-list .checkbox-label{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;border-radius:8px}.selection-list .checkbox-label:hover{background:var(--color-surface-muted)}.selection-list .checkbox-label.is-disabled,.selection-list .checkbox-label:has(input:disabled){opacity:.72;cursor:not-allowed}.selection-list .checkbox-label.is-disabled:hover,.selection-list .checkbox-label:has(input:disabled):hover{background:transparent}.workout-day-exercise-drag-col{width:36px;padding-left:4px;padding-right:0;vertical-align:middle}.workout-day-exercises-table{overflow-x:hidden;width:100%;max-width:100%}.workout-day-exercises-table .table{table-layout:fixed;width:100%}.workout-day-exercises-table .table th,.workout-day-exercises-table .table td{padding:10px 8px}.workout-day-exercises-table .table th:first-child,.workout-day-exercises-table .table td:first-child{width:36px}.workout-day-exercises-table .table th:nth-child(2),.workout-day-exercises-table .table td:nth-child(2){width:auto;overflow-wrap:anywhere;word-break:break-word}.workout-day-exercises-table .table th:nth-child(3),.workout-day-exercises-table .table td:nth-child(3),.workout-day-exercises-table .table th:nth-child(4),.workout-day-exercises-table .table td:nth-child(4){width:96px}.workout-day-exercises-table .table th:last-child,.workout-day-exercises-table .table td:last-child{width:88px;white-space:nowrap}.workout-day-exercises-table .input{width:100%;max-width:100%;box-sizing:border-box}.workout-day-exercise-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted, #6b7280);font-size:14px;letter-spacing:-2px;line-height:1;cursor:grab;-webkit-user-select:none;user-select:none}.workout-day-exercise-drag-handle:hover{background:var(--color-surface-muted);color:var(--color-text, #111827)}.workout-day-exercise-drag-handle:active{cursor:grabbing}.workout-day-exercise-row.is-dragging{opacity:.45}.workout-day-exercise-row.is-drop-target td{box-shadow:inset 0 2px 0 0 var(--color-primary, #3b82f6)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--color-border)}.card-body{padding:24px}.card-body.content-stack{display:flex;flex-direction:column;gap:16px}.card-body.content-stack>*{margin:0}.card-body.content-stack .section-subtitle{margin:0 0 8px}.card-body>.btn,.card-body>a.btn,.card-body p+.btn,.card-body p+a.btn,.card-body .list-plain+.btn,.card-body .list-plain+a.btn,.card-body .text-muted+.btn,.card-body .text-muted+a.btn{margin-top:16px}.card-body.content-stack>.btn,.card-body.content-stack>a.btn{margin-top:0;align-self:flex-start}.card-title{margin:0;padding:20px 24px 12px;font-size:16px;font-weight:600;letter-spacing:0;color:var(--color-text);line-height:1.35}.card-body .card-title{padding:0;margin:0 0 8px}.card-body p{margin:0}.card-body .card-title+p,.card-body p+p{margin-top:6px}.card>.card-title:only-child,.card>.card-title:first-child+.empty-state-panel,.card>.card-title:first-child+.table-wrap,.card>.card-title:first-child+.loading-state-panel{padding-bottom:0}.card>.card-title:first-child+.empty-state-panel,.card>.card-title:first-child+.loading-state-panel{padding-top:12px}.card>.card-body+.empty-state-panel,.card>.card-body+.loading-state-panel{padding-top:12px}.section-card{margin-bottom:20px;overflow:visible}.section-card>.card-title+.card-body,.section-card>.card-title+form.card-body{padding-top:0}.section-card>.card-title+.empty-state-panel,.section-card>.card-title+.loading-state-panel{padding:12px 24px 28px}.section-card>.card-title+.table-wrap{padding:4px 0 0}.section-card>.card-title+.table-wrap .table th:first-child,.section-card>.card-title+.table-wrap .table td:first-child{padding-left:24px}.section-card>.card-title+.table-wrap .table th:last-child,.section-card>.card-title+.table-wrap .table td:last-child{padding-right:24px}.page-header-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0;align-items:center}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;padding:13px 18px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-soft);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.table td{padding:15px 18px;border-bottom:1px solid var(--color-border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-surface-muted)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge-neutral{background:var(--color-surface-muted);color:var(--color-text-muted)}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);color:var(--color-text-muted);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;height:100vh}.sidebar-brand{padding:20px 22px;font-size:18px;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--color-border)}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 10px #2563eb4d}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:12px;overflow-y:auto;flex:1}.sidebar-section{padding:16px 12px 6px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-soft)}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:500;transition:background .15s ease,color .15s ease}.sidebar-link .nav-icon{flex:0 0 20px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;line-height:1;font-size:16px;opacity:.9}.sidebar-link:hover{background:var(--color-surface-muted);color:var(--color-text)}.sidebar-link.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.sidebar-user{margin-top:auto;border-top:1px solid var(--color-border);padding:14px 16px;display:flex;align-items:center;gap:11px}.sidebar-user .avatar{width:38px;height:38px}.sidebar-user-info{min-width:0;flex:1}.sidebar-user-name{font-weight:600;color:var(--color-text);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-email{color:var(--color-text-soft);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-area{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-width:0}.topbar{height:64px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--content-pad-x);position:sticky;top:0;z-index:10}.topbar-title{font-size:15px;font-weight:600;color:var(--color-text-muted)}.topbar-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:16px;transition:background .15s ease,color .15s ease}.icon-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.actions-cell{display:inline-flex;align-items:center;gap:6px}.action-icon{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.action-icon:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text);border-color:var(--color-text-muted)}.action-icon:disabled{opacity:.5;cursor:not-allowed}.action-icon--danger:hover:not(:disabled){background:#fef2f2;color:var(--color-danger);border-color:var(--color-danger)}.qr-display{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.qr-display img{width:220px;height:220px;border:1px solid var(--color-border);border-radius:12px;background:#fff;padding:8px}.qr-code-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;color:var(--color-text-muted)}.detail-list{margin:0;display:flex;flex-direction:column;gap:0}.detail-list>div,.detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--color-border);padding:10px 0}.detail-list>div:first-child,.detail-list>.detail-row:first-child{padding-top:0}.detail-list>div:last-child,.detail-list>.detail-row:last-child{border-bottom:0;padding-bottom:0}.detail-list dt{color:var(--color-text-muted);font-size:13px;font-weight:500;line-height:1.45;flex:0 1 42%;min-width:0}.detail-list dd{margin:0;font-weight:600;text-align:right;line-height:1.45;flex:1 1 auto;min-width:0;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px}.detail-list dd .select,.detail-list dd .input{width:min(220px,100%);text-align:left}.card-body .detail-list{margin-top:16px}.card-body.content-stack .detail-list{margin-top:0}.card>.detail-list,.card>.actions-cell,.card>p{padding:12px 24px 24px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media (max-width: 960px){.detail-grid{grid-template-columns:1fr}}.table-link{color:inherit;text-decoration:none}.table-link:hover{color:var(--color-primary);text-decoration:underline}.scan-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.5px}.attendance-checkin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.attendance-checkin-grid--staff-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-checkin-grid--staff-tools>:last-child{grid-column:1 / -1}.attendance-scan-form{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;align-items:flex-end}.card-body>form.attendance-scan-form{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:12px}.attendance-scan-form .select,.attendance-scan-form .input{width:100%}.attendance-history-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.card-heading{margin:0;font-size:16px;font-weight:600;color:var(--color-text)}@media (max-width: 960px){.attendance-checkin-grid{grid-template-columns:1fr}.card-header{flex-direction:column;align-items:stretch}}.topbar-divider{width:1px;height:28px;background:var(--color-border);margin:0 6px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.avatar.avatar--photo{padding:0;overflow:hidden;background:transparent}.avatar.avatar--photo img{width:100%;height:100%;object-fit:cover;display:block}.profile-avatar-upload{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}.profile-avatar-preview{width:72px;height:72px;font-size:22px}.phone-input-row{display:flex;gap:8px;align-items:stretch}.phone-input-row .phone-country-select{width:min(100%,200px);flex-shrink:0}.phone-input-row .phone-national-input{flex:1;min-width:0}.page{padding:28px var(--content-pad-x);max-width:1320px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.page-header-copy,.page-header>div:first-child{min-width:0;flex:1;display:flex;flex-direction:column;align-items:stretch;gap:6px}.page-title,.page-subtitle,.page-header-copy .text-muted,.page-header>div:first-child>.text-muted{margin:0;padding:0;text-align:left}.page-title{font-size:24px;line-height:1.3;font-weight:700;letter-spacing:-.02em}.page-subtitle{color:var(--color-text-muted);font-size:14px;font-weight:400;letter-spacing:0;line-height:1.5}.member-onboarding-page{max-width:none}.member-onboarding-page>.card{max-width:1120px}.onboarding-plan-summary{display:grid;gap:18px;max-width:720px}.onboarding-calorie-card{display:grid;justify-items:center;gap:8px;padding:34px 24px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#2563eb,#ec4899);box-shadow:0 16px 36px #ec489938;text-align:center}.onboarding-calorie-card span,.onboarding-calorie-card small{font-weight:600;opacity:.88}.onboarding-calorie-card strong{font-size:42px;line-height:1}.onboarding-macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.onboarding-macro-grid>div{display:grid;justify-items:center;gap:6px;padding:18px 12px;border:1px solid var(--color-border);border-radius:18px;background:var(--color-surface);box-shadow:var(--shadow-card)}.onboarding-macro-grid strong{color:var(--color-primary);font-size:24px}.onboarding-macro-grid span{color:var(--color-text-muted);font-weight:600}.page-header-meta,.page-header .text-muted{font-size:13px;color:var(--color-text-muted);letter-spacing:0;line-height:1.45}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-bottom:24px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px 24px;box-shadow:var(--shadow-card);display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.stat-label{color:var(--color-text-muted);font-size:13px;font-weight:500}.stat-value{font-size:28px;font-weight:700;margin-top:8px;letter-spacing:-.02em}.stat-caption{margin-top:8px;font-size:12px;color:var(--color-text-soft);display:flex;align-items:center;gap:5px}.stat-caption.up{color:var(--color-success)}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.stat-icon.blue{background:var(--color-primary-soft);color:var(--color-primary)}.stat-icon.green{background:var(--color-success-soft);color:var(--color-success)}.stat-icon.amber{background:var(--color-warning-soft);color:var(--color-warning)}.stat-icon.purple{background:var(--color-purple-soft);color:var(--color-purple)}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.quick-action{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;color:var(--color-text);font-weight:600;font-size:13px;transition:border-color .15s ease,background .15s ease,transform .05s ease}.quick-action:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.quick-action .qa-icon{width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px}.segmented{display:inline-flex;background:var(--color-surface-muted);border-radius:var(--radius-sm);padding:3px;gap:2px}.segmented button{border:none;background:transparent;padding:6px 14px;border-radius:6px;font-size:13px;font-weight:600;color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s ease,color .15s ease}.segmented button.active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.action-group{display:inline-flex;align-items:center;gap:6px}.icon-action{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;font-size:14px;transition:background .15s ease,color .15s ease,border-color .15s ease}.icon-action:hover{background:var(--color-surface-muted);color:var(--color-text)}.icon-action.view:hover{color:var(--color-primary);border-color:var(--color-primary)}.icon-action.danger:hover{color:var(--color-danger);border-color:var(--color-danger)}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.grid-2,.grid-3,.grid-4{display:grid;gap:var(--form-gap);align-items:start}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-4-desktop{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 1100px){.grid-4-desktop{grid-template-columns:repeat(4,minmax(0,1fr))}}.dashboard-section{margin-top:16px}.list-plain{margin:0;padding-left:20px}.list-meta{display:block;font-size:13px;margin-top:4px}.stat-hint{display:block;margin-top:8px;font-size:12px;color:var(--color-text-soft)}.text-muted{color:var(--color-text-muted)}.mt-0{margin-top:0}.spacer{flex:1}.toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--form-gap);align-items:end;margin-bottom:18px}.search-input{min-width:0}.search-input-wide{grid-column:span 2}@media (max-width: 720px){.search-input-wide{grid-column:span 1}}.section-title{font-size:17px;font-weight:700;margin-bottom:16px}.section-subtitle{margin:0 0 8px;font-size:14px;font-weight:600;line-height:1.35;color:var(--color-text)}.plan-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;max-width:680px}.plan-card{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md)}.plan-card h4,.plan-card p{margin:0}.plan-card .btn{margin-top:auto;align-self:flex-start}.cell-main{display:flex;align-items:center;gap:12px}.cell-avatar{width:38px;height:38px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--form-gap);align-items:end}.filter-bar .field{margin-bottom:0;min-width:0}.filter-bar .field-hint{display:none}.filter-bar .member-picker,.filter-bar .searchable-select{width:100%}.filter-bar-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.filter-bar-checkboxes{display:flex;flex-wrap:wrap;gap:16px;align-items:center;grid-column:1 / -1}.grid-2.equal-height{align-items:stretch}.grid-2.equal-height>.card{display:flex;flex-direction:column;min-height:420px}.insight-list{display:grid;gap:12px}.insight-card .card-body{display:flex;flex-direction:column;gap:10px}.insight-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.insight-card-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.insight-card-score{font-size:20px;font-weight:700;color:var(--color-text);flex-shrink:0}.insight-card-body{margin:0;line-height:1.55;color:var(--color-text-muted)}.insight-card-meta{font-size:12px;color:var(--color-text-soft)}.chat-layout{display:grid;grid-template-columns:minmax(240px,280px) 1fr;gap:16px;align-items:stretch;min-height:560px}.chat-sidebar{display:flex;flex-direction:column;min-height:560px;max-height:calc(100vh - 200px);overflow:hidden}.chat-sidebar-list{flex:1;overflow-y:auto;padding:0 14px 14px;display:flex;flex-direction:column;gap:8px}.conversation-item{width:100%;text-align:left;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:border-color .15s ease,background .15s ease}.conversation-item:hover{background:var(--color-surface-muted)}.conversation-item.active{border-color:var(--color-primary);background:var(--color-primary-soft)}.conversation-item-title{display:block;font-weight:600;margin-bottom:4px}.conversation-item-meta{font-size:12px;color:var(--color-text-muted)}.chat-panel{display:flex;flex-direction:column;min-height:560px;max-height:calc(100vh - 200px);overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:75%;padding:10px 14px;border-radius:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.chat-bubble-user{align-self:flex-end;background:var(--color-primary);color:#fff}.chat-bubble-assistant{align-self:flex-start;background:var(--color-surface-muted);color:var(--color-text)}.chat-bubble-source{margin-top:6px}.chat-composer{display:flex;align-items:center;gap:10px;padding:14px 22px 18px;border-top:1px solid var(--color-border);background:var(--color-surface)}.chat-composer .input{flex:1;margin:0}.chat-typing{padding:0 22px 8px;font-size:13px}.table-actions-header,.table-actions-cell{text-align:right;white-space:nowrap}.table-actions{display:inline-flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:nowrap}.table tbody tr.selected,.table tbody tr.selected:hover{background:var(--color-primary-soft)}.preview-panel{display:flex;flex-direction:column;flex:1}.preview-panel-body{flex:1;padding:0 22px 22px}.preview-day{margin-bottom:16px}.preview-day h3{font-size:15px;margin:0 0 8px}.preview-day ul{margin:0;padding-left:20px}.weekly-plan-card{border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);overflow:hidden;background:var(--color-surface, #fff)}.weekly-plan-card+.weekly-plan-card{margin-top:12px}.weekly-plan-card-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:0;background:transparent;text-align:left;cursor:pointer}.weekly-plan-card-toggle:hover{background:var(--color-bg-subtle, #f8fafc)}.weekly-plan-card-title{font-size:16px;font-weight:600}.weekly-plan-card-subtitle{margin-top:4px;color:var(--color-text-muted);font-size:13px}.weekly-plan-card-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.weekly-plan-card-chevron{font-size:18px;color:var(--color-text-muted)}.weekly-plan-card-body{padding:0 18px 18px}.weekly-plan-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.weekly-plan-day-card{border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:14px;background:var(--color-bg-subtle, #f8fafc)}.weekly-plan-day-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.weekly-plan-slot-grid{display:grid;gap:10px}.weekly-plan-slot{padding:10px 12px;border-radius:var(--radius-sm, 6px);background:var(--color-surface, #fff);border:1px solid var(--color-border)}.weekly-plan-slot-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}.weekly-plan-slot-time{font-size:12px;font-weight:600;color:var(--color-primary)}.weekly-plan-item-list{margin:6px 0 0}.weekly-plan-item-list li{margin-bottom:4px}.weekly-plan-empty-day{margin:0;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.meal-plan-week-editor{display:grid;gap:16px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-subtle, #f8fafc)}.meal-plan-day-tabs,.meal-plan-meal-tabs{display:flex;flex-wrap:wrap;gap:8px}.meal-plan-day-tab,.meal-plan-meal-tab{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;min-height:40px}.meal-plan-day-tab:hover,.meal-plan-meal-tab:hover{border-color:var(--color-primary)}.meal-plan-day-tab.is-active,.meal-plan-meal-tab.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.meal-plan-day-tab-full{display:none}.meal-plan-day-tab-count,.meal-plan-meal-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#0f172a1f;font-size:11px;font-weight:700}.meal-plan-day-tab.is-active .meal-plan-day-tab-count,.meal-plan-meal-tab.is-active .meal-plan-meal-tab-count{background:#ffffff3d}.meal-plan-add-foods{display:grid;gap:4px}.meal-plan-food-results{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding:10px}.meal-plan-day-board-title{margin:0 0 10px;font-size:16px}.meal-plan-slot-stack{display:grid;gap:10px}.meal-plan-slot-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px}.meal-plan-slot-card.is-target{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft)}.meal-plan-slot-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.meal-plan-slot-empty{margin:0;font-size:13px}.meal-plan-slot-foods{list-style:none;margin:0;padding:0;display:grid;gap:8px}.meal-plan-slot-food{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px}.meal-plan-slot-food-name{min-width:0;overflow-wrap:anywhere;font-weight:500}.meal-plan-qty-field{display:inline-flex;align-items:center;gap:6px;margin:0}.meal-plan-portion-fields{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.meal-plan-qty-input{width:72px;min-width:72px}.meal-plan-preview-grid{margin-top:12px}@media (min-width: 720px){.meal-plan-day-tab-label{display:none}.meal-plan-day-tab-full{display:inline}.meal-plan-meal-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.meal-plan-meal-tab{justify-content:center}}@media (max-width: 640px){.meal-plan-slot-food{grid-template-columns:minmax(0,1fr)}.meal-plan-qty-field{justify-content:flex-start}.meal-plan-day-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.meal-plan-day-tab,.meal-plan-meal-tab{justify-content:center;width:100%}}.weekly-plan-slot-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}.weekly-plan-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.weekly-plan-history-list{display:grid;gap:12px}.preview-actions{padding:0 22px 22px}.compose-form textarea.input{resize:none}.feed-post-card{padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.feed-comments{margin-top:12px;border-top:1px solid var(--color-border);padding-top:12px}.empty-state-panel.compact{padding:28px 20px 32px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px 24px;border-top:1px solid var(--color-border)}.card>.pagination:only-child{border-top:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:560px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal--wide{max-width:920px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-body{padding:24px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:18px 24px;border-top:1px solid var(--color-border);flex-shrink:0}.modal-footer>.btn+.btn,.modal-actions>.btn+.btn,.form-actions>.btn+.btn{margin-left:0}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 100% 0%,#dbeafe 0%,transparent 55%),radial-gradient(1000px 500px at 0% 100%,#ede9fe 0%,transparent 50%),#f7f8fb;padding:20px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);width:100%;max-width:420px;padding:36px}.auth-card--wide{max-width:560px}.legal-page{max-width:720px}.legal-section{margin:0 0 18px}.legal-section h2{margin:0 0 6px;font-size:16px}.legal-section p{margin:0;color:var(--color-text-muted);line-height:1.55}.legal-links{display:inline}.legal-footer{display:flex;gap:8px;align-items:center;justify-content:center;padding:12px 16px;font-size:13px;color:var(--color-text-muted);border-top:1px solid var(--color-border)}.auth-card .auth-heading{margin-bottom:4px}.auth-card .auth-subtitle{margin-bottom:var(--form-gap)}.auth-card .wizard-progress{margin:0 0 var(--form-gap)}.auth-card .alert{margin-bottom:var(--form-gap)}.auth-wizard-form{margin:0}.auth-form-actions{display:flex;gap:var(--form-gap);align-items:stretch;margin:0}.auth-form-actions .btn-primary{flex:1}.auth-review-card{display:flex;flex-direction:column;gap:8px;padding:var(--form-gap);margin:0}.auth-review-card p{margin:0;padding:0;line-height:1.5}.wizard-progress{display:flex;gap:var(--form-gap);margin:0 0 var(--form-gap)}.wizard-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border-radius:var(--radius-sm);background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text-muted);font-size:12px;font-weight:600;text-align:center}.wizard-step-index{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--color-border);color:var(--color-text-muted);font-size:11px;line-height:1}.wizard-step-label{line-height:1.2}.wizard-step.is-reached{background:var(--color-primary-soft);border-color:var(--color-primary-soft);color:var(--color-primary)}.wizard-step.is-reached .wizard-step-index{background:var(--color-primary);color:#fff}.wizard-step.is-current{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.wizard-step.is-current .wizard-step-index{background:#ffffff40;color:#fff}.auth-section-title{font-size:15px;font-weight:700;margin:24px 0 12px;color:var(--color-text)}.auth-section-title:first-of-type{margin-top:0}.auth-logo{display:flex;align-items:center;gap:12px;margin-bottom:22px}.auth-brand{font-size:20px;font-weight:700}.auth-heading{font-size:22px;font-weight:700;margin-bottom:4px}.auth-subtitle{color:var(--color-text-muted);margin-bottom:var(--form-gap)}.alert{padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px}.alert-error{background:var(--color-danger-soft);color:var(--color-danger)}.alert-info{background:var(--color-primary-soft);color:var(--color-primary)}.alert-success{background:#ecfdf5;color:#047857}.alert-toast-stack{position:fixed;top:80px;right:24px;z-index:40;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 48px));pointer-events:none}.alert-toast-stack .alert-toast{margin:0;box-shadow:0 10px 30px #0f172a1f;pointer-events:auto}.auth-tabs{display:flex;gap:4px;background:var(--color-surface-muted);border-radius:var(--radius-sm);padding:3px;margin-bottom:22px}.auth-tab{flex:1;border:none;background:transparent;padding:9px 12px;border-radius:6px;font-size:13px;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.auth-tab.is-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm)}.btn-link{background:none;border:none;padding:0;color:var(--color-primary);font-size:13px;font-weight:600;cursor:pointer}.btn-link:hover{color:var(--color-primary-hover);text-decoration:underline}.auth-footer{margin-top:var(--form-gap);text-align:center}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--color-text-soft);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.google-signin,.apple-signin{display:flex;justify-content:center;margin-top:12px}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.empty-state{padding:32px 24px;text-align:center;color:var(--color-text-muted)}.empty-state-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px 32px;text-align:center;gap:10px;box-sizing:border-box}.empty-state-icon{width:56px;height:56px;border-radius:16px;background:var(--color-primary-soft);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:4px}.empty-state-title{font-size:15px;font-weight:600;color:var(--color-text)}.empty-state-message{margin:0;max-width:360px;font-size:14px;line-height:1.55;color:var(--color-text-muted)}.empty-state-action{margin-top:12px}.loading-state-panel{padding:40px 24px;text-align:center;color:var(--color-text-muted);box-sizing:border-box}.progress-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px}.progress-summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow-card)}.progress-summary-label{font-size:13px;color:var(--color-text-muted);font-weight:500}.progress-summary-value{margin-top:6px;font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--color-text)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;padding:0 22px 22px}.photo-card{margin:0;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.photo-card img{width:100%;height:180px;object-fit:cover;border-radius:var(--radius-sm);display:block}.photo-card-placeholder{width:100%;height:180px;border-radius:var(--radius-sm);background:var(--color-surface);border:1px dashed var(--color-border-strong);display:flex;align-items:center;justify-content:center;color:var(--color-text-soft);font-size:13px}.feature-tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:var(--color-primary-soft);color:var(--color-primary);padding:2px 8px;border-radius:var(--radius-sm);font-size:12px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border)}.tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:10px 16px;font-size:14px;font-weight:500;color:var(--color-text-muted);cursor:pointer}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.pos-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}.pos-grid .card-header h3{font-size:16px;font-weight:600;line-height:1.25}.pos-catalog-header,.pos-cart-header{min-height:56px}.pos-catalog-header .input{width:220px;flex-shrink:0}.pos-grid .member-picker{margin-bottom:16px}@media (max-width: 900px){.pos-grid{grid-template-columns:1fr}}.pos-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:16px}.pos-product{display:flex;flex-direction:column;gap:4px;padding:12px;text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.pos-product:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #0000000f}.receipt code,.table code{font-size:12px}.dashboard-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.dashboard-charts-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}.health-trend-panel{display:flex;flex-direction:column;min-height:100%}.health-trend-panel-title{font-size:14px;font-weight:600;margin:0 0 8px}.health-trend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;flex:1}.health-trend-list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--color-border)}.health-trend-list-row:last-child{border-bottom:none}.health-trend-list-date{font-size:13px;color:var(--color-text-muted);flex:1;min-width:0}.health-trend-list-value{font-size:13px;font-weight:600;text-align:right;white-space:nowrap}.dashboard-chart-wide{grid-column:1 / -1}.report-layout{display:grid;gap:24px}.report-section-title{margin:0 0 12px;font-size:16px;font-weight:600}.report-section{padding-top:8px}.table-compact th,.table-compact td{padding:10px 12px}.bar-chart{display:grid;gap:12px;min-height:0}.bar-chart-row{display:grid;grid-template-columns:120px 1fr 80px;gap:12px;align-items:center}.bar-chart-label{font-size:13px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-chart-track{height:10px;border-radius:999px;background:var(--color-surface-muted);overflow:hidden}.bar-chart-fill{height:100%;border-radius:999px;transition:width .3s ease}.bar-chart-value{font-size:13px;font-weight:600;text-align:right}.donut-chart{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.donut-chart-ring{border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donut-chart-hole{width:68%;height:68%;border-radius:50%;background:var(--color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:13px}.donut-chart-legend{display:grid;gap:8px;min-width:180px}.donut-legend-item{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;font-size:13px}.donut-legend-swatch{width:12px;height:12px;border-radius:3px}@media (max-width: 900px){.dashboard-charts,.dashboard-charts-3{grid-template-columns:1fr}.bar-chart-row{grid-template-columns:1fr;gap:6px}.bar-chart-value{text-align:left}.grid-2,.grid-3,.grid-4,.form-grid.cols-2,.grid-4-desktop{grid-template-columns:1fr}.grid-2.equal-height>.card{min-height:auto}.chat-layout{grid-template-columns:1fr;min-height:auto}.chat-sidebar,.chat-panel{min-height:320px;max-height:none}.page{--content-pad-x: 16px;padding:20px var(--content-pad-x)}.page-header{flex-direction:column;align-items:stretch}.page-header-actions{width:100%}.page-header-actions .btn{flex:1;min-width:0}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.sidebar{transform:translate(-100%);transition:transform .2s ease;z-index:40}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;border:0;background:#0f172a59;z-index:30;cursor:pointer}.sidebar-toggle{display:inline-flex}.app-shell.sidebar-open .sidebar{transform:translate(0)}.app-shell.sidebar-open .sidebar-backdrop{display:block}.main-area{margin-left:0}.topbar{--content-pad-x: 16px;padding:0 var(--content-pad-x)}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.topbar-actions .input{width:140px!important}}@media (min-width: 901px){.sidebar-toggle,.sidebar-backdrop{display:none}}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.notification-bell,.notification-bell-trigger{position:relative}.notification-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,calc(100vw - 32px));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;overflow:hidden}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border)}.notification-panel-link{font-size:13px;color:var(--color-primary);font-weight:600}.notification-panel-body{max-height:360px;overflow-y:auto}.notification-panel-empty{padding:20px 14px;margin:0}.notification-item{display:block;width:100%;text-align:left;padding:12px 14px;border:0;border-bottom:1px solid var(--color-border);background:transparent;cursor:pointer}.notification-item:hover{background:var(--color-surface-muted)}.notification-item.unread{background:var(--color-primary-soft)}.notification-item-title{font-weight:600;font-size:13px}.notification-item-body{margin-top:4px;font-size:13px;color:var(--color-text-muted)}.notification-item-meta{margin-top:6px;font-size:11px;color:var(--color-text-soft)}.notification-card{padding:16px;cursor:pointer;transition:opacity .15s ease,border-color .15s ease}.notification-card.unread{border:1px solid var(--color-primary-soft)}.notification-card:not(.unread){opacity:.75}.media-carousel{position:relative;width:100%;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-muted);border:1px solid var(--color-border)}.media-carousel-stage{position:relative;aspect-ratio:16 / 10;display:flex;align-items:center;justify-content:center;background:#0f172a}.media-carousel-stage img,.media-carousel-stage video{width:100%;height:100%;object-fit:contain;display:block}.media-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:36px;height:36px;border-radius:50%;border:none;background:#0f172aa6;color:#fff;font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.media-carousel-nav:hover{background:#0f172ad9}.media-carousel-nav.prev{left:10px}.media-carousel-nav.next{right:10px}.media-carousel-dots{display:flex;justify-content:center;gap:8px;padding:12px}.media-carousel-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;background:var(--color-border-strong);cursor:pointer}.media-carousel-dot.active{background:var(--color-primary)}.media-carousel-badge{position:absolute;top:10px;left:10px;z-index:2;padding:4px 10px;border-radius:999px;background:#0f172ab3;color:#fff;font-size:12px;font-weight:600}.media-video-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f172a40;border:none;cursor:pointer;color:#fff}.media-video-play-icon{width:64px;height:64px;border-radius:50%;background:#2563ebeb;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 8px 24px #0f172a59}.media-upload-section{display:flex;flex-direction:column;gap:16px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.media-upload-section>h3{margin:0;font-size:15px;font-weight:600}.media-upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.media-upload-card{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:220px}.media-upload-card-label{margin:0;font-size:13px;font-weight:600}.media-upload-preview{position:relative;flex:1;min-height:120px;border-radius:var(--radius-sm);overflow:hidden;background:#0f172a;border:1px dashed var(--color-border-strong);display:flex;align-items:center;justify-content:center}.media-upload-preview img,.media-upload-preview video{width:100%;height:100%;object-fit:contain;display:block}.media-upload-empty{padding:16px;text-align:center;color:var(--color-text-muted);font-size:13px;line-height:1.4}.media-upload-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.media-upload-actions .btn{flex:1;min-width:0}.media-file-picker{position:relative;overflow:hidden;cursor:pointer}.media-file-picker.is-disabled{pointer-events:none;opacity:.6}.media-file-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.exercise-preview-body{display:flex;flex-direction:column;gap:16px;padding-bottom:8px}.exercise-list-card{position:relative}.exercise-list-card.is-fetching:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff73;pointer-events:none;border-radius:inherit;z-index:1}.empty-state-action{margin-top:12px;margin-bottom:12px}
