:root{--bg: #f6f3ef;--surface: #ffffff;--surface-alt: #f3efeb;--border: #e4dad3;--text: #241d1b;--text-muted: #6b615d;--accent: #ed1b34;--accent-strong: #a51324;--accent-soft: #fbeaec;--accent-text: #ffffff;--brass: #a9814c;--brand-gradient: linear-gradient(140deg, #ed1b34 0%, #a51324 100%);--footer-gradient: linear-gradient(135deg, #a51324 0%, #6d0c18 100%);--danger: #b3261e;--warning: #9a6700;--success: #1f9d57;--ladies: #9c2f85;--ladies-soft: #f7e8f3;--font-serif: "Zilla Slab", Georgia, "Times New Roman", serif;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--radius: 12px;--radius-sm: 6px;--radius-lg: 16px;--shadow: 0 1px 2px rgb(36 29 27 / 6%), 0 4px 12px rgb(36 29 27 / 5%);--header-h: 64px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #16110f;--surface: #201917;--surface-alt: #2a201d;--border: #3c2f2a;--text: #f3ece7;--text-muted: #b3a49b;--accent: #f26071;--accent-strong: #f68d9a;--accent-soft: #33201d;--accent-text: #1a0608;--brass: #c9a468;--brand-gradient: linear-gradient(140deg, #f26071 0%, #a51324 100%);--danger: #f2837a;--warning: #e0b341;--success: #4ccf83;--ladies: #e17ac9;--ladies-soft: #3a1f34;--shadow: 0 1px 2px rgb(0 0 0 / 35%), 0 4px 14px rgb(0 0 0 / 25%)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25}h1{font-family:var(--font-serif);font-size:1.6rem;font-weight:600}h2{font-size:1.05rem;font-weight:600}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{height:var(--header-h);display:flex;align-items:center;gap:24px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);border-top:3px solid transparent;border-image:var(--brand-gradient) 1;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand-logo{width:38px;height:38px;object-fit:contain;display:block}.brand-title{font-family:var(--font-serif);font-weight:600;font-size:.95rem}.brand-sub{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.app-nav{display:flex;gap:4px;flex:1;overflow-x:auto}.nav-link{padding:7px 12px;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap}.nav-link.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.app-account{display:flex;align-items:center;gap:12px;margin-left:auto}.account-email{font-size:.85rem;color:var(--text-muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{flex:1;padding:28px 24px 48px;max-width:1240px;width:100%;margin:0 auto}.btn{font:inherit;font-size:.875rem;font-weight:550;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-ghost{background:transparent;color:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-sub{margin:4px 0 0;color:var(--text-muted);font-size:.9rem}.slots-badge{display:flex;flex-direction:column;align-items:flex-end;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.slots-badge-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.slots-badge-value{font-size:1.1rem;font-weight:650;color:var(--accent)}.placeholder-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);max-width:640px}.placeholder-card p{margin:8px 0 0;color:var(--text-muted);font-size:.9rem}.state-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;max-width:440px;margin:48px auto;text-align:center;box-shadow:var(--shadow)}.state-panel p{color:var(--text-muted);font-size:.9rem}.api-status{margin-top:20px;font-size:.8rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;color:var(--text-muted)}.api-status--up{color:var(--accent)}.api-status--down{color:var(--warning)}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);max-width:520px}.about-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);max-width:760px;display:flex;flex-direction:column;gap:16px}.about-card p{margin:0;color:var(--text);font-size:.95rem;line-height:1.7}.about-admin-list{display:flex;flex-direction:column;gap:12px;padding:0;margin:0;list-style:none;max-width:760px}.about-admin-row{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.about-admin-textarea{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);width:100%;resize:vertical}.about-admin-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.about-admin-row-actions{display:flex;gap:10px}.news-list{display:flex;flex-direction:column;gap:20px;max-width:760px}.news-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.news-card-image{width:100%;max-height:260px;object-fit:cover}.news-card-body{display:flex;flex-direction:column;gap:6px;padding:22px 24px}.news-card-date{color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.news-card-title{margin:0;font-family:var(--font-serif);font-size:1.2rem}.news-card-text{margin:4px 0 0;color:var(--text);font-size:.95rem;line-height:1.7;white-space:pre-wrap}.news-admin-image-preview{width:120px;height:80px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.form{display:flex;flex-direction:column;gap:18px}.form-field{display:flex;flex-direction:column;gap:6px;border:none;padding:0;margin:0}.form-field label,.form-field legend{font-size:.85rem;font-weight:600;color:var(--text);padding:0}.form-field input[type=text],.form-field input[type=email],.form-field input[type=tel],.form-field select,.form-field textarea{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);width:100%}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-field input:disabled,.form-field select:disabled{color:var(--text-muted);cursor:not-allowed}.form-field input[aria-invalid=true],.form-field textarea[aria-invalid=true]{border-color:var(--danger)}.form-field textarea{resize:vertical;min-height:68px}.field-hint{font-size:.78rem;color:var(--text-muted)}.field-error{font-size:.78rem;color:var(--danger)}.radio-row{display:flex;gap:20px}.radio{display:flex;align-items:center;gap:7px;font-weight:500;font-size:.9rem;cursor:pointer}.radio input{accent-color:var(--accent)}.form-actions{display:flex;gap:12px;margin-top:4px}.form-banner{padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;border:1px solid transparent}.form-banner--error{background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:var(--danger);color:var(--danger)}.form-banner--success{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.slots-badge-max{color:var(--text-muted);font-weight:600}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.week-nav{display:flex;align-items:center;gap:10px}.week-nav-btn{width:34px;height:34px;display:grid;place-items:center;font-size:1.4rem;line-height:1;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer}.week-nav-btn:disabled{opacity:.4;cursor:not-allowed}.week-nav-label{min-width:150px;text-align:center;font-weight:600;font-size:.95rem}.cal-legend{display:flex;gap:16px;font-size:.78rem;color:var(--text-muted)}.cal-legend-item{display:flex;align-items:center;gap:6px}.cal-legend-swatch{width:11px;height:11px;border-radius:3px;display:inline-block}.cal-legend-swatch.is-open{background:var(--accent)}.cal-legend-swatch.is-booked{background:var(--accent-soft);border:1px solid var(--accent)}.cal-legend-swatch.is-full{background:var(--text-muted)}.cal-legend-swatch.is-empty{background:var(--surface-alt);border:1px solid var(--border)}.cal-legend-swatch.is-restricted{background:var(--ladies-soft);border:1px solid var(--ladies)}.cal-scroll{overflow-x:auto;overflow-y:auto;max-height:62vh;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.cal{min-width:660px}.cal-head,.cal-row{display:grid;grid-template-columns:58px repeat(7,minmax(76px,1fr))}.cal-head{position:sticky;top:0;z-index:3;background:var(--surface);border-bottom:1px solid var(--border)}.cal-corner{position:sticky;left:0;z-index:4;background:var(--surface)}.cal-day-head{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border-left:1px solid var(--border)}.cal-day-name{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.cal-day-num{font-size:1.05rem;font-weight:650}.cal-day-head.is-today{border-bottom:2px solid var(--accent)}.cal-day-head.is-today .cal-day-name,.cal-day-head.is-today .cal-day-num{color:var(--accent)}.cal-row{border-bottom:1px solid var(--border)}.cal-row:last-child{border-bottom:none}.cal-time{position:sticky;left:0;z-index:2;background:var(--surface);display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--text-muted)}.slot-cell{min-height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-left:1px solid var(--border);position:relative}.slot-cell:before{content:"";position:absolute;left:8px;top:4px;bottom:4px;width:3px;border-radius:2px}.slot-cell.is-open:before{background:var(--brand-gradient)}.slot-cell.is-open{cursor:default}.slot-cell.is-full:before{background:var(--text-muted)}.slot-cell.is-full{background:var(--surface-alt)}.slot-cell.is-restricted:before{background:var(--ladies)}.slot-cell.is-restricted{background:var(--ladies-soft);cursor:default}.slot-cell.is-past{opacity:.4}.slot-cell--empty{background:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--surface-alt) 6px,var(--surface-alt) 12px);border-left:1px solid var(--border)}.slot-cell-status{font-size:.72rem;font-weight:600}.slot-cell.is-open .slot-cell-status{color:var(--accent)}.slot-cell.is-full .slot-cell-status{color:var(--text-muted);letter-spacing:.04em}.slot-cell.is-restricted .slot-cell-status{color:var(--ladies);letter-spacing:.02em}.slot-cell-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ladies);background:var(--ladies-soft);border-radius:999px;padding:1px 7px}.slot-cell.is-booked{background:var(--accent-soft)}.slot-cell.is-booked:before{background:var(--brand-gradient)}.slot-cell.is-booked .slot-cell-status{color:var(--accent);font-weight:700}.slot-cell-sub{font-size:.62rem;color:var(--text-muted);line-height:1}button.slot-cell{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;min-height:42px;border-left:1px solid var(--border);position:relative}.slot-cell.is-clickable{cursor:pointer}.slot-cell.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.modal-backdrop{position:fixed;inset:0;background:#1c14168c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:0 8px 32px #00000040;padding:24px;width:100%;max-width:380px}.modal h2{margin-bottom:16px}.modal-slot-summary{background:var(--accent-soft);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:16px}.modal-slot-date{font-size:.85rem;color:var(--text-muted)}.modal-slot-time{font-size:1.15rem;font-weight:650;margin:2px 0}.modal-slot-spots{font-size:.82rem;color:var(--accent);font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.schedule-confirmation{margin-bottom:16px}.bookings-list{display:flex;flex-direction:column;gap:20px}.bookings-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.bookings-day-heading{padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-alt);font-size:.9rem}.bookings-day-items{list-style:none;margin:0;padding:0}.booking-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border)}.booking-row:last-child{border-bottom:none}.booking-time{font-weight:650;font-variant-numeric:tabular-nums;min-width:52px}.booking-type{color:var(--text-muted);font-size:.85rem;flex:1}.cancel-wrap{display:flex;align-items:center;gap:10px}.cancel-confirm{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-muted)}.cancel-confirm--stacked{flex-direction:column;align-items:flex-start;gap:6px;white-space:normal}.cancel-note{font-size:.8rem;color:var(--text-muted);font-style:italic}.coach-slots{display:flex;flex-direction:column;gap:12px}.coach-slot-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.coach-slot-header{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:var(--surface-alt);cursor:pointer}.coach-slot-time{font-weight:650;font-variant-numeric:tabular-nums}.coach-slot-count{flex:1;color:var(--text-muted);font-size:.85rem}.coach-slot-chevron{color:var(--text-muted);font-weight:650;width:16px;text-align:center}.coach-actions{display:flex;align-items:center;gap:8px}.benefits-toolbar{margin-bottom:24px;display:flex;flex-direction:column;gap:12px}.benefits-search{max-width:420px}.benefits-chips{display:flex;flex-wrap:wrap;gap:8px}.benefits-chip{all:unset;box-sizing:border-box;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.82rem;font-weight:550;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.benefits-chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.benefits-categories{display:flex;flex-direction:column;gap:32px}.benefits-category-title{margin:0 0 14px;display:flex;align-items:center;gap:10px}.benefits-category--new{margin-bottom:32px}.benefits-category-title--new{color:var(--accent)}.benefits-category-count{font-size:.72rem;font-weight:650;color:var(--text-muted);background:var(--surface-alt);border-radius:999px;padding:2px 9px}.benefits-category-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;align-items:start}.benefit-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.benefit-card.is-expanded{border-color:var(--accent)}.benefit-card-summary{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;cursor:pointer}.benefit-logo{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm);object-fit:contain;background:var(--surface);border:1px solid var(--border);padding:4px}.benefit-logo--placeholder{display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:1.1rem;border:none;padding:0}.benefit-card-text{display:flex;flex-direction:column;flex:1;gap:6px;min-width:0}.benefit-merchant{font-weight:650}.benefit-card-summary .benefit-merchant{display:-webkit-box;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2;overflow:hidden;min-height:3em}.benefit-new-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--accent);color:var(--accent-text);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.benefit-offer{color:var(--accent);font-weight:600;font-size:.9rem}.benefit-offer-full{margin:0;color:var(--accent);font-weight:700;font-size:.95rem}.benefit-expand-icon{flex-shrink:0;color:var(--text-muted);font-size:1rem;line-height:1;transition:transform .15s ease}.benefit-expand-icon.is-open{transform:rotate(180deg);color:var(--accent)}.benefit-card-body{padding:14px 16px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.benefit-image{width:100%;height:auto;border-radius:var(--radius-sm)}.benefit-admin-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.benefit-admin-logo-preview{width:32px;height:32px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);padding:2px}.benefit-details{margin:0;color:var(--text-muted);font-size:.85rem;white-space:pre-wrap}.benefit-validity{display:block;padding:0 16px 14px;margin-top:-4px;font-size:.78rem;color:var(--text-muted)}.benefit-attachment-link{align-self:flex-start;color:var(--accent);font-weight:600;font-size:.85rem;text-decoration:none}.benefit-attachment-control{margin-top:2px}.benefit-attachment-list{display:flex;flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none}.notify-inline-form{width:100%;margin-top:4px;padding-top:14px;border-top:1px solid var(--border)}.benefit-attachment-existing{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.85rem}.benefit-attachment-existing a{color:var(--accent);font-weight:600;text-decoration:none}.benefit-admin-list{display:flex;flex-direction:column}.benefit-admin-row{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.benefit-admin-row:last-child{border-bottom:none}.benefit-admin-row--editing{flex-direction:column;align-items:stretch}.benefit-admin-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:200px}.form-row{display:flex;gap:14px}.form-row .form-field{flex:1}.speakup-textarea{min-height:140px}.speakup-char-count{align-self:flex-end;font-size:.75rem;color:var(--text-muted)}.speakup-char-count.is-near-limit{color:var(--warning)}.attribution-choices{display:flex;gap:10px;flex-wrap:wrap}.attribution-choice{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;flex:1;min-width:200px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer}.attribution-choice.is-selected{border-color:var(--accent);background:var(--accent-soft)}.attribution-choice-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--surface);color:var(--text-muted)}.attribution-choice.is-selected .attribution-choice-icon{background:var(--accent);color:var(--accent-text)}.attribution-choice-icon svg{width:18px;height:18px}.attribution-choice-text{display:flex;flex-direction:column;gap:1px;min-width:0}.attribution-choice-title{font-weight:600;font-size:.88rem;color:var(--text)}.attribution-choice-sub{font-size:.76rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.speakup-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:12px 0}.speakup-success-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success);margin-bottom:8px}.speakup-success-icon svg{width:26px;height:26px}.speakup-success h2{margin:0}.speakup-stats{margin:4px 0 0;color:var(--text-muted);font-size:.85rem}.speakup-list{display:flex;flex-direction:column;gap:12px;padding:0;margin:0;list-style:none}.speakup-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.speakup-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.speakup-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600}.speakup-badge svg{width:13px;height:13px}.speakup-badge--anon{background:var(--surface-alt);color:var(--text-muted)}.speakup-badge--named{background:var(--accent-soft);color:var(--accent)}.speakup-time{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.speakup-message{margin:0;color:var(--text);font-size:.92rem;line-height:1.5;white-space:pre-wrap}.speakup-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.speakup-number{font-weight:700;color:var(--accent);white-space:nowrap}.speakup-reply{margin-top:12px;padding:10px 12px;background:var(--surface-alt);border-radius:var(--radius);border-left:3px solid var(--accent)}.speakup-reply-label{margin:0 0 4px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent)}.speakup-reply-text{margin:0;font-size:.9rem;line-height:1.5;color:var(--text);white-space:pre-wrap}.speakup-reply-meta{margin:6px 0 0;font-size:.75rem;color:var(--text-muted)}.speakup-reply-form{margin-top:12px;display:flex;flex-direction:column;gap:8px}.policy-doc-list{display:flex;flex-direction:column;gap:10px;padding:0;margin:0;list-style:none;max-width:720px}.policy-doc-row{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.policy-doc-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.policy-doc-name{font-weight:600;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policy-doc-meta{font-size:.78rem;color:var(--text-muted)}.policy-doc-division-select{align-self:flex-start;margin-top:2px;font-size:.78rem;padding:2px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface-alt);color:var(--text)}.policy-division{margin-bottom:28px}.policy-division:last-child{margin-bottom:0}.policy-division-heading{margin:0 0 12px;font-size:1.05rem;font-weight:700;color:var(--accent)}.masry-launcher{position:fixed;right:24px;bottom:96px;z-index:40;width:56px;height:56px;display:grid;place-items:center;border:none;border-radius:50%;background:var(--brand-gradient);color:#fff;cursor:pointer;box-shadow:0 10px 28px #0000003d;transition:transform .18s ease,box-shadow .18s ease}.masry-launcher svg{width:24px;height:24px}.masry-launcher:before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:masry-launcher-pulse 2.4s ease-out infinite}.masry-launcher.is-open:before{display:none}@keyframes masry-launcher-pulse{0%{opacity:.45;transform:scale(.9)}70%{opacity:0;transform:scale(1.25)}to{opacity:0;transform:scale(1.25)}}@media(prefers-reduced-motion:reduce){.masry-launcher:before{animation:none}}.masry-panel{position:fixed;right:24px;bottom:164px;z-index:40;width:380px;max-width:calc(100vw - 48px);height:520px;max-height:calc(100vh - 212px);display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 20px 48px #00000038;overflow:hidden;animation:masry-panel-in .18s ease;transform-origin:bottom right}@keyframes masry-panel-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.masry-panel{animation:none}}.masry-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 16px;background:var(--brand-gradient);color:#fff;flex-shrink:0}.masry-panel-title{display:flex;align-items:center;gap:8px;font-family:var(--font-serif);font-weight:600;font-size:.98rem}.masry-panel-title svg{width:18px;height:18px}.masry-panel-close{all:unset;box-sizing:border-box;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#fff;cursor:pointer}.masry-panel-close svg{width:15px;height:15px}.masry-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px}.masry-empty{margin:auto;text-align:center;color:var(--text-muted);font-size:.9rem;max-width:320px}.masry-empty p{margin:0}.masry-message{display:flex}.masry-message--user{justify-content:flex-end}.masry-message--assistant{justify-content:flex-start}.masry-bubble{max-width:80%;padding:10px 14px;border-radius:var(--radius)}.masry-bubble p{margin:0;font-size:.92rem;line-height:1.5;white-space:pre-wrap}.masry-message--user .masry-bubble{background:var(--accent);color:var(--accent-text);border-bottom-right-radius:4px}.masry-message--assistant .masry-bubble{background:var(--surface-alt);color:var(--text);border-bottom-left-radius:4px}.masry-bubble--pending{color:var(--text-muted);font-style:italic;font-size:.92rem}.masry-bubble .masry-sources{margin:8px 0 0;font-size:.75rem;opacity:.75}.masry-error{margin:0 20px}.masry-input-row{display:flex;gap:10px;padding:14px;border-top:1px solid var(--border);background:var(--surface)}.masry-input{flex:1;font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);resize:none}.masry-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.landing{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 16px}.landing-hero{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;padding-bottom:28px}.landing-title{font-size:1.9rem}.landing-sub{margin:6px 0 0;color:var(--text-muted)}.landing-tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:40px;max-width:900px}.landing-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;width:200px;padding:30px 20px 26px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);color:inherit;text-decoration:none;overflow:hidden;transition:transform .2s cubic-bezier(.2,.7,.3,1),box-shadow .2s ease,border-color .2s ease}.landing-tile:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--brand-gradient);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.landing-tile-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-strong);transition:background .2s ease,color .2s ease}.landing-tile-icon svg{width:26px;height:26px}.landing-tile-label{font-family:var(--font-serif);font-size:1.1rem;font-weight:600}.landing-tile-desc{margin:-6px 0 0;color:var(--text-muted);font-size:.8rem;line-height:1.4}.landing-speakup-fab{margin-top:18px;display:inline-flex;align-items:center;gap:8px;padding:10px 16px 10px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);font-size:.85rem;font-weight:650;text-decoration:none;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.landing-speakup-fab svg{width:17px;height:17px;color:var(--accent)}.landing-analytics-link{margin-top:12px}.landing-news{width:100%;max-width:720px;margin:48px auto 0}.landing-news-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.landing-news-header h2{margin:0;font-family:var(--font-serif);font-size:1.1rem}.landing-news-see-all{color:var(--accent-strong);font-size:.85rem;font-weight:650;text-decoration:none}.landing-news-list{display:flex;flex-direction:column;gap:10px}.landing-news-item{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;text-decoration:none;transition:transform .14s ease,box-shadow .14s ease}.landing-news-item-image{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.landing-news-item-body{display:flex;flex-direction:column;gap:2px;min-width:0}.landing-news-item-date{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.landing-news-item-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover)and (pointer:fine){.nav-link:hover,.admin-tab-btn:hover{background:var(--surface-alt);color:var(--text)}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost:hover{background:var(--surface-alt);color:var(--text)}.btn-danger:hover{filter:brightness(1.08)}.btn-danger-ghost:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.week-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.slot-cell.is-open:hover,.slot-cell.is-clickable:hover{background:var(--accent-soft)}.landing-tile:hover{transform:translateY(-6px);border-color:transparent;box-shadow:0 18px 34px #241d1b24}.landing-tile:hover:before{transform:scaleX(1)}.landing-tile:hover .landing-tile-icon{background:var(--accent-strong);color:#fff}.landing-news-item:hover{transform:translateY(-2px);box-shadow:0 12px 24px #241d1b1f}.landing-speakup-fab:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 20px #c8102e24}a.policy-doc-name:hover{color:var(--accent);text-decoration:underline}.masry-launcher:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 14px 32px #00000047}.masry-panel-close:hover{background:#ffffff2e}.coach-slot-header:hover{background:var(--border)}.benefit-card:hover{box-shadow:0 6px 20px #2310141a;transform:translateY(-2px)}.benefits-chip:hover{border-color:var(--accent);color:var(--accent)}.benefits-chip.is-active:hover{color:var(--accent-text)}.benefit-attachment-link:hover,.benefit-attachment-existing a:hover{text-decoration:underline}}@media(max-width:640px){.app-header{height:auto;flex-wrap:wrap;padding:10px 14px;row-gap:8px}.app-nav{order:3;flex:1 1 100%;-webkit-overflow-scrolling:touch}.app-account{order:2}.account-email{display:none}.app-main{padding:20px 14px 36px}}.app-footer{background:var(--footer-gradient);color:#fff;text-align:center;padding:22px 16px}.app-footer-title{font-family:var(--font-serif);font-weight:600;font-size:1.05rem;letter-spacing:.02em}.app-footer-sub{margin-top:4px;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#ffffffd1}.coach-search{font:inherit;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);min-width:220px}.coach-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.attendee{display:flex;flex-direction:column;gap:1px;flex:1}.attendee-name{font-weight:600}.attendee-mobile{font-size:.8rem;color:var(--text-muted)}.status-badge{font-size:.78rem;font-weight:650;padding:5px 10px;border-radius:999px}.status-badge--attended{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.status-badge--no-show{background:color-mix(in srgb,var(--text-muted) 15%,transparent);color:var(--text-muted)}.admin-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:4px}.admin-tab-btn{font:inherit;cursor:pointer;padding:7px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:.9rem;font-weight:500}.admin-tab-btn.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.admin-list-wrap{margin-top:16px}.admin-section-heading{margin:28px 0 12px}.admin-section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 12px}.admin-section-heading-row .admin-section-heading{margin:0}.cafeteria-menu-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.cafeteria-menu-category-heading{margin:24px 0 8px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.admin-subsection{margin-top:40px}.admin-noshow{display:flex;align-items:center;gap:8px}.admin-noshow label{font-size:.78rem;color:var(--text-muted)}.admin-noshow input[type=number]{font:inherit;width:64px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.page-header-actions{display:flex;gap:10px;flex-wrap:wrap}.wallet-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:32px;max-width:360px}.wallet-balance-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.wallet-balance{font-family:var(--font-serif);font-size:2.2rem;font-weight:600}.wallet-qr{border-radius:var(--radius-sm);margin:8px 0}.wallet-balance-inline{font-weight:650;font-variant-numeric:tabular-nums}.wallet-history{max-width:520px;margin-top:32px}.wallet-menu{width:100%;max-width:920px;margin-top:32px}.cafeteria-menu-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));column-gap:56px;align-items:start}.wallet-menu .cafeteria-menu-category-toggle{margin-top:22px;padding:6px 0 10px;border-bottom:1px solid var(--brass)}.wallet-menu .cafeteria-menu-category-name{font-family:var(--font-serif);font-size:1.05rem;font-weight:600;letter-spacing:.04em;color:var(--text)}.cafeteria-menu-item-list{display:flex;flex-direction:column;padding:0;margin:2px 0 4px;list-style:none}.cafeteria-menu-item-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:9px 0}.cafeteria-menu-item-row+.cafeteria-menu-item-row{border-top:1px solid var(--border)}.cafeteria-menu-item-name{font-size:.92rem}.cafeteria-menu-item-price{font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-strong);white-space:nowrap}.wallet-history-list{display:flex;flex-direction:column;gap:10px;padding:0;margin:0;list-style:none}.wallet-history-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow)}.wallet-history-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.wallet-history-desc{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wallet-history-date{font-size:.78rem;color:var(--text-muted)}.wallet-history-row-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;font-variant-numeric:tabular-nums}.wallet-history-balance{font-size:.78rem;color:var(--text-muted)}.counter-layout{display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap}.cafeteria-menu-picker{flex:2;min-width:320px;display:flex;flex-direction:column;gap:10px}.cafeteria-menu-category{display:flex;flex-direction:column;gap:8px}.cafeteria-menu-category-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:14px;padding:8px 2px;background:none;border:none;border-bottom:1px solid var(--border);font:inherit;color:inherit;text-align:left;cursor:pointer}.cafeteria-menu-category-toggle-label{display:flex;align-items:baseline;gap:6px}.cafeteria-menu-category-name{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.cafeteria-menu-category-count{font-size:.78rem;color:var(--text-muted)}.cafeteria-menu-category-chevron{color:var(--text-muted);transition:transform .15s ease}.cafeteria-menu-category-chevron.is-open{transform:rotate(180deg)}.cafeteria-menu-picker-row{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow)}.cafeteria-menu-picker-name{flex:1;font-weight:600}.cafeteria-menu-picker-price{color:var(--text-muted);font-variant-numeric:tabular-nums}.cafeteria-qty-control{display:flex;align-items:center;gap:8px}.cafeteria-qty-value{min-width:20px;text-align:center;font-variant-numeric:tabular-nums}.cafeteria-cart{flex:1;min-width:280px;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px;position:sticky;top:84px}.cafeteria-cart-empty{color:var(--text-muted);font-size:.9rem}.cafeteria-cart-items{display:flex;flex-direction:column;gap:8px;padding:0;margin:0;list-style:none}.cafeteria-cart-item{display:flex;justify-content:space-between;font-size:.9rem}.cafeteria-cart-total{display:flex;justify-content:space-between;font-weight:700;font-size:1.05rem;border-top:1px solid var(--border);padding-top:10px}.cafeteria-scan-panel{display:none;width:100%;border-radius:var(--radius);overflow:hidden}.cafeteria-scan-panel.is-active{display:block;min-height:240px}.cafeteria-scan-result{display:flex;flex-direction:column;gap:10px;width:100%;padding:14px 16px;border-radius:var(--radius);font-size:.9rem}.cafeteria-scan-result--success{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.cafeteria-scan-result--error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.cafeteria-scan-result--warning{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.cafeteria-scan-result p{margin:0;color:inherit}.cafeteria-charge-confirm{display:flex;flex-direction:column;gap:12px;width:100%;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt)}.cafeteria-charge-confirm .form-actions{flex-direction:column;align-items:stretch}.wallet-coupon-banner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;max-width:280px;margin:16px 0 0;padding:16px;border:1.5px solid var(--success);border-radius:var(--radius);background:color-mix(in srgb,var(--success) 10%,transparent);font-size:.9rem}.wallet-coupon-banner-text{margin:0}.cafeteria-topup-all-card{background:var(--surface);border:1.5px solid var(--warning);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px;margin-bottom:28px;max-width:520px}.cafeteria-wallet-row-summary{display:flex;align-items:center;gap:14px}.cafeteria-wallet-row-summary span:first-child{flex:1}.cafeteria-transactions-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}.analytics-summary{margin:0 0 16px;font-size:.95rem;color:var(--text-muted)}.analytics-summary strong{color:var(--text);font-size:1.1rem}.analytics-table-wrap{overflow-x:auto}.analytics-table{width:100%;border-collapse:collapse;font-size:.88rem;max-width:560px}.analytics-table th{text-align:left;padding:8px 12px;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border)}.analytics-table td{padding:8px 12px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.cafeteria-transactions-table-wrap{overflow-x:auto}.cafeteria-transactions-table{width:100%;border-collapse:collapse;font-size:.88rem}.cafeteria-transactions-table th{text-align:left;padding:8px 12px;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}.cafeteria-transactions-table td{padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums}.cafeteria-transactions-table-actions{position:sticky;right:0;background:var(--bg);box-shadow:-6px 0 8px -6px #0000001f;white-space:normal;min-width:90px}.cafeteria-amount--credit{color:var(--success)}.cafeteria-amount--debit{color:var(--danger)}
