@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=DM+Serif+Text:ital@0;1&family=JetBrains+Mono:wght@400;500&display=swap";:root{--c-orange: #FF5A00;--c-orange-dk: #E14F00;--c-orange-lt: #FF8A4D;--c-brown: #1F1F1F;--c-brown-md: #3A3A3A;--c-brown-lt: #3A3A3A;--c-cream: #F6F6F7;--c-cream-dk: #ECECEE;--c-ink: #121214;--c-muted: #6B6B70;--c-border: #E5E5E8;--c-surface: #FFFFFF;--c-primary: var(--c-brown);--c-accent: var(--c-orange);--c-accent2: var(--c-brown-lt);--c-success: #2D6A4F;--c-success-bg: #D1FAE5;--c-warn: #C97C10;--c-warn-bg: #FDEBC8;--c-danger: #B03A2E;--c-danger-bg: #FEE2E2;--c-info-bg: #E0EFFF;--c-info: #2563EB;--c-tag-bg: #FFF1E6;--c-tag-color: #E14F00;--font-display: "DM Serif Text", Georgia, serif;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: 12px;--radius-sm: 6px;--radius-pill: 20px;--shadow: 0 2px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 44px rgba(0, 0, 0, .14);--app-max-width: 480px;--app-bar-height: 52px;--bottom-nav-height: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--c-cream);color:var(--c-ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.section-head{font-family:var(--font-sans);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--c-brown-md);margin:4px 0 10px}@media(min-width:600px){body{background:var(--c-brown)}#root{max-width:var(--app-max-width, 480px);margin:0 auto;min-height:100vh;background:var(--c-cream);box-shadow:var(--shadow-lg)}}a{color:var(--c-orange);text-decoration:none}a:hover{color:var(--c-orange-dk)}h1,h2,h3{font-family:var(--font-display);font-weight:700;color:var(--c-ink)}.rich-content{line-height:1.6}.rich-content p{margin:0 0 8px}.rich-content p:last-child{margin-bottom:0}.rich-content h3,.rich-content h4{margin:12px 0 6px;font-weight:700;color:var(--c-ink);font-family:inherit;font-size:14px}.rich-content ul,.rich-content ol{padding-left:22px;margin:6px 0}.rich-content li{margin:2px 0}.rich-content a{color:var(--c-orange);text-decoration:underline}.rich-content strong{font-weight:700}.rich-content em{font-style:italic}.app-bar{position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--c-brown) 0%,var(--c-brown-md) 100%);padding:14px 18px 12px;display:flex;align-items:center;gap:10px;border-bottom:2px solid var(--c-orange);min-height:var(--app-bar-height)}.app-bar-back{background:transparent;border:none;color:#fffc;font-size:20px;cursor:pointer;padding:4px;font-family:inherit}.app-bar-logo{height:22px;filter:brightness(0) invert(1);object-fit:contain}.app-bar-titles{flex:1;min-width:0}.app-bar-title{font-family:var(--font-display);font-size:18px;color:#fff}.app-bar-subtitle{font-size:12px;font-weight:600;color:var(--c-orange-lt);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-bar-action{background:transparent;border:none;color:var(--c-orange-lt);font-size:14px;font-weight:600;cursor:pointer;padding:4px 8px;font-family:inherit}.app-bar-logout{background:transparent;border:none;color:#ffffffd9;cursor:pointer;padding:6px 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;transition:background .15s,color .15s}.app-bar-logout:hover,.app-bar-logout:focus-visible{background:#ffffff1f;color:#fff;outline:none}.bottom-nav{position:sticky;bottom:0;z-index:10;background:var(--c-surface);border-top:1px solid var(--c-border);display:flex;padding:8px 0 4px;min-height:var(--bottom-nav-height)}.bn-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--c-muted);font-size:10px;font-weight:500;cursor:pointer;padding:6px 0;background:transparent;border:none;text-decoration:none;font-family:inherit;transition:color .15s}.bn-item>span:last-child{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bn-item.active{color:var(--c-orange)}.bn-icon{font-size:20px;line-height:1}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--c-border);border-top-color:var(--c-orange);border-radius:50%;animation:spin .8s linear infinite}.spinner-lg{width:32px;height:32px;border-width:3px}.spinner-wrap{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px 16px;color:var(--c-muted);font-size:13px}.skeleton{background:linear-gradient(90deg,var(--c-cream-dk) 0%,var(--c-cream) 50%,var(--c-cream-dk) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:6px;display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.spinner,.skeleton{animation:none}}.app-layout{display:flex;flex-direction:column;min-height:100vh;background:var(--c-cream)}.app-layout-main{flex:1;padding:16px}.app-layout-main-flush{padding:0}.auth-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--c-brown);color:var(--c-ink)}.auth-layout-hero{background:linear-gradient(160deg,var(--c-brown) 0%,var(--c-brown-md) 60%,var(--c-brown-lt) 100%);padding:48px 24px 32px;text-align:center;border-bottom:3px solid var(--c-orange)}.auth-layout-hero img{height:48px;filter:brightness(0) invert(1);margin-bottom:10px}.auth-layout-hero-label{font-size:13px;color:#ffffffb3}.auth-layout-hero-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:#fff;margin-top:4px}.auth-layout-hero-subtitle{font-size:12px;color:#fff9;margin-top:6px}.auth-layout-content{flex:1;background:var(--c-cream);padding:24px 20px 40px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 18px;font-family:var(--font-sans);font-size:14px;font-weight:600;border-radius:var(--radius-sm);border:1.5px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s,opacity .15s;line-height:1.2}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-orange);color:#fff;border-color:var(--c-orange)}.btn-primary:hover:not(:disabled){background:var(--c-orange-dk);border-color:var(--c-orange-dk)}.btn-secondary{background:transparent;color:var(--c-orange);border-color:var(--c-orange)}.btn-secondary:hover:not(:disabled){background:var(--c-tag-bg)}.btn-ghost{background:transparent;color:var(--c-ink);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--c-cream-dk)}.btn-danger{background:var(--c-danger);color:#fff;border-color:var(--c-danger)}.btn-full{width:100%}.btn-sm{padding:8px 12px;font-size:13px}.form-group{margin-bottom:12px}.form-label{display:block;font-size:12px;font-weight:600;color:var(--c-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.form-label .required-marker{color:var(--c-danger);margin-right:2px}.form-input,.form-select,.form-textarea{width:100%;padding:12px 14px;font-family:var(--font-sans);font-size:16px;color:var(--c-ink);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s;box-sizing:border-box;line-height:1.25}.form-input[type=date],.form-input[type=time],.form-input[type=datetime-local]{-webkit-appearance:none;appearance:none}.form-input[type=date]::-webkit-date-and-time-value,.form-input[type=time]::-webkit-date-and-time-value,.form-input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;min-height:1.25em;line-height:1.25}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--c-orange);box-shadow:0 0 0 3px #ff5a0026}.form-input[aria-invalid=true],.form-select[aria-invalid=true],.form-textarea[aria-invalid=true]{border-color:var(--c-danger)}.form-textarea{resize:vertical;min-height:80px}.form-error{display:block;margin-top:4px;font-size:12px;color:var(--c-danger)}.login-page{display:flex;flex-direction:column}.login-form .btn{margin-bottom:12px}.login-links{text-align:center;font-size:13px;color:var(--c-muted);margin-top:4px}.login-links .link{color:var(--c-orange);font-weight:600;cursor:pointer;background:transparent;border:none;text-decoration:underline;font-family:inherit;padding:0}.login-divider{height:1px;background:var(--c-border);margin:20px 0}.login-error{background:var(--c-danger-bg);color:var(--c-danger);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;margin-bottom:12px}.login-notice{background:#fff7e6;border:1px solid #FFD591;color:#874d00;border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;margin-bottom:12px}.date-select{display:flex;gap:8px}.date-select select.form-input{flex:1;min-width:0}.checkbox{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;cursor:pointer;margin-bottom:10px;color:var(--c-ink)}.checkbox:last-child{margin-bottom:0}.checkbox input[type=checkbox]{margin-top:2px;width:16px;height:16px;accent-color:var(--c-orange);cursor:pointer;flex-shrink:0}.checkbox .required-marker{color:var(--c-danger);font-weight:700;margin-right:2px}.checkbox-link{color:var(--c-orange);font-weight:600;text-decoration:underline;cursor:pointer}.signup-consents{background:var(--c-tag-bg);border:none;border-radius:var(--radius);padding:14px 16px;margin-top:8px}.signup-consents-hint{font-size:11px;color:var(--c-muted);margin-top:8px;font-style:italic}.signup-consents-hint .required-marker{color:var(--c-danger);font-weight:700;margin-right:2px}.notice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.45;margin-bottom:12px;border:1px solid transparent}.notice-info{background:var(--c-info-bg);color:var(--c-info);border-color:#2563eb33}.notice-warn{background:var(--c-warn-bg);color:var(--c-warn);border-color:#c97c1040}.notice-success{background:var(--c-success-bg);color:var(--c-success);border-color:#2d6a4f33}.notice-danger{background:var(--c-danger-bg);color:var(--c-danger);border-color:#b03a2e40}.card{background:var(--c-surface);border-radius:var(--radius);padding:16px;border:1px solid var(--c-border);margin-bottom:12px}.card-soft{background:var(--c-tag-bg);border:none}.card-highlight{border:2px solid var(--c-orange)}.card-title{font-weight:600;font-size:14px;margin-bottom:8px;color:var(--c-ink)}.legal-page{padding:16px;font-size:13px;line-height:1.6}.legal-title{font-family:var(--font-display);font-size:22px;margin-bottom:4px}.legal-version{color:var(--c-grey-600, #6b7280);font-size:12px;font-style:italic;margin-bottom:16px}.legal-body h3{font-family:var(--font-display);font-size:16px;margin-top:16px;margin-bottom:6px;color:var(--c-brown, #3d2914)}.legal-body h3:first-child{margin-top:0}.legal-body h4{font-size:14px;font-weight:600;margin-top:12px;margin-bottom:4px}.legal-body p{margin:0 0 10px}.legal-body ul{margin:4px 0 12px;padding-left:20px}.legal-body li{margin-bottom:4px}.legal-body strong{font-weight:600}.legal-body em{font-style:italic}.legal-body .legal-end{margin-top:20px;text-align:center;color:var(--c-grey-600, #6b7280);font-style:italic}.slot-pill{background:linear-gradient(135deg,var(--c-orange) 0%,var(--c-orange-dk) 100%);color:#fff;border-radius:10px;padding:10px 14px;margin-bottom:8px;display:flex;align-items:center;gap:10px;box-shadow:0 2px 8px #d4641a40}.slot-pill.variant-success{background:linear-gradient(135deg,#2d6a4f,#1b4332)}.slot-pill.variant-muted{background:linear-gradient(135deg,var(--c-brown-md),var(--c-brown))}.slot-pill-time{font-size:11px;opacity:.85;white-space:nowrap;font-weight:600;line-height:1.2;min-width:44px}.slot-pill-info{flex:1;min-width:0}.slot-pill-title{font-weight:700;font-size:13px}.slot-pill-sub{font-size:11px;opacity:.8}.slot-pill-empty{background:var(--c-surface);border:1px dashed var(--c-border);border-radius:var(--radius-sm);padding:14px;text-align:center;font-size:13px;color:var(--c-muted)}.planning-page{padding:16px}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.week-nav-btn{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;cursor:pointer;color:var(--c-ink);font-family:inherit}.week-nav-btn:hover{border-color:var(--c-orange)}.week-nav-label{font-weight:600;font-size:13px;color:var(--c-ink)}.calendar-row{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none;margin-bottom:8px}.cal-day{min-width:44px;text-align:center;padding:8px 4px;border-radius:8px;cursor:pointer;font-size:12px;background:transparent;border:none;color:var(--c-ink);font-family:inherit}.cal-day:hover{background:var(--c-tag-bg)}.cal-day-num{font-size:18px;font-weight:700}.cal-day.active{background:var(--c-orange);color:#fff}.cal-day.active:hover{background:var(--c-orange-dk)}.planning-day-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--c-muted);margin:16px 0 8px}.planning-slot-btn{background:transparent;border:none;padding:0;width:100%;text-align:left;cursor:pointer;font-family:inherit}.planning-closure-notice{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:10px 14px;margin-bottom:12px;font-size:13px;font-weight:600;color:#92400e}.planning-event-pill{display:flex;align-items:center;gap:10px;background:#eef2ff;border:1px solid #c7d2fe;border-left:4px solid #6366f1;border-radius:10px;padding:10px 12px;margin-bottom:8px}.planning-event-badge{flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#4338ca;background:#c7d2fe;border-radius:6px;padding:3px 7px}.cotisation-page{padding:16px}.cotisation-card{background:var(--c-surface);border-radius:var(--radius);padding:16px;border:1px solid var(--c-border);margin-bottom:12px}.cotisation-card.recommended{border:2px solid var(--c-orange)}.cotisation-card-title{font-weight:600;font-size:14px;color:var(--c-ink)}.cotisation-card-meta{font-size:12px;color:var(--c-muted);margin-top:4px}.cotisation-card-price{font-size:20px;font-weight:800;color:var(--c-brown);margin-top:8px}.cotisation-card-price-unit{font-size:14px;font-weight:400;color:var(--c-muted);margin-left:4px}.cotisation-card-hint{font-size:11px;color:var(--c-muted);margin-top:4px}.cotisation-card-actions{margin-top:10px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.badge-gray{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;background:var(--c-cream-dk);color:var(--c-muted)}.badge-inline-orange{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;background:var(--c-warn-bg);color:var(--c-warn)}.cotisation-page .section-head{margin:16px 0 10px}.chip-group{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.chip-btn{padding:6px 14px;border-radius:20px;border:1.5px solid var(--c-border);font-size:13px;cursor:pointer;background:var(--c-surface);font-family:inherit;color:var(--c-ink);transition:background .15s,color .15s,border-color .15s}.chip-btn:hover:not(:disabled){border-color:var(--c-orange)}.chip-btn.selected{background:var(--c-orange);color:#fff;border-color:var(--c-orange);box-shadow:0 2px 6px #d4641a4d}.chip-btn:disabled{opacity:.5;cursor:not-allowed}.chip-hint{font-size:11px;color:var(--c-muted);margin-top:4px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.badge-green{background:var(--c-success-bg);color:var(--c-success)}.badge-orange{background:var(--c-warn-bg);color:var(--c-warn)}.badge-red{background:var(--c-danger-bg);color:var(--c-danger)}.badge-brown{background:var(--c-tag-bg);color:var(--c-brown-md)}.badge-neutral{background:var(--c-cream-dk);color:var(--c-muted)}.forfait-page{padding:16px}.forfait-card{background:var(--c-surface);border-radius:var(--radius);padding:16px;border:1px solid var(--c-border);margin-bottom:12px}.forfait-card-active{border-left:4px solid var(--c-orange)}.forfait-card-annual{border-left:4px solid var(--c-brown-lt)}.forfait-card-expired{border-left:4px solid var(--c-muted)}.forfait-card-success{border-left:4px solid var(--c-success)}.forfait-card-danger{border-left:4px solid var(--c-danger)}.forfait-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.forfait-tag{display:inline-flex;align-items:center;padding:4px 10px;background:var(--c-tag-bg);color:var(--c-tag-color);border-radius:var(--radius-sm);font-size:11px;font-weight:600}.history-row{display:flex;gap:10px;align-items:center;padding:10px 12px;background:var(--c-tag-bg);border-radius:var(--radius-sm);color:var(--c-ink);font-size:13px}.slot-item,.schedule-item{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 12px;background:var(--c-tag-bg);border-radius:var(--radius-sm);margin-bottom:8px;font-size:13px}.cerfa-link{color:var(--c-success);font-weight:600;background:none;border:none;cursor:pointer;font-family:inherit;padding:0;text-decoration:underline}.schedule-tabs{display:flex;gap:8px;margin-bottom:12px}.schedule-tab{flex:1;padding:8px 12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--c-muted);cursor:pointer}.schedule-tab:hover:not(.is-active){background:#00000008}.schedule-tab.is-active{background:var(--c-orange);border-color:var(--c-orange);color:#fff}.schedule-tab-count{font-weight:400;opacity:.85}.schedule-accordion{display:flex;flex-direction:column;gap:8px}.schedule-group{background:var(--c-tag-bg);border-radius:var(--radius-sm);overflow:hidden}.schedule-group-header{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;font-family:inherit;font-size:13px;text-align:left;cursor:pointer}.schedule-group-header:disabled{cursor:default}.schedule-group-header:not(:disabled):hover{background:#00000008}.schedule-group-actions{padding:0 12px 10px 36px}.schedule-pay-btn{appearance:none;border:none;background:var(--c-orange, #f97316);color:#fff;font-family:inherit;font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;cursor:pointer}.schedule-pay-btn:hover{filter:brightness(.95)}.schedule-group-chevron{width:14px;font-size:12px;color:var(--c-muted);text-align:center}.schedule-group-date{font-weight:700}.schedule-group-amount{margin-left:auto;margin-right:8px;font-weight:600}.schedule-group-details{padding:4px 12px 12px 28px;display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(0,0,0,.06)}.schedule-item-row{display:flex;flex-direction:column;gap:2px}.schedule-item-main{display:flex;justify-content:space-between;font-size:13px}.schedule-item-label{font-weight:500}.schedule-item-meta{display:flex;flex-wrap:wrap;gap:4px;font-size:12px}.schedule-item-status.is-paid{color:var(--c-success)}.schedule-item-status.is-pending{color:var(--c-warning)}.events-page{padding:16px}.events-page-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--c-ink);margin-bottom:4px}.events-page-subtitle{font-size:13px;color:var(--c-muted);margin-bottom:16px}.event-card{background:var(--c-surface);border-radius:var(--radius);padding:16px;border:1px solid var(--c-border);margin-bottom:12px}.event-card-header{display:flex;align-items:center;justify-content:space-between}.event-card-title{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--c-ink);margin-top:8px}.event-card-meta{font-size:12px;color:var(--c-muted);margin-top:4px}.event-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.event-price{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--c-brown)}.event-pill{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-pill);border:1px solid var(--c-border);background:var(--c-cream-dk);color:var(--c-muted);font-size:11px;font-weight:600}.event-pill-upcoming{background:var(--c-tag-bg);color:var(--c-orange-dk);border-color:var(--c-tag-bg)}.event-pill-full{background:#ef44441f;color:#b91c1c;border-color:#ef444433}.events-empty{padding:32px 16px;text-align:center;color:var(--c-muted);font-size:13px}.payments-page,.documents-page{padding:16px}.payment-card,.document-card{background:var(--c-surface);border-radius:var(--radius);padding:16px;border:1px solid var(--c-border);margin-bottom:12px}.payment-card-title,.document-card-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--c-ink);margin-top:8px}.payment-card-meta,.document-card-meta{font-size:12px;color:var(--c-muted);margin-top:4px}.payment-row,.document-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--c-surface);border-bottom:1px solid var(--c-border);width:100%;text-align:left;border-left:none;border-right:none;border-top:none;font-family:inherit;cursor:pointer}.document-row:hover{background:var(--c-cream)}.doc-avatar{width:36px;height:36px;border-radius:50%;background:var(--c-tag-bg);color:var(--c-orange-dk);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.doc-avatar-cerfa{background:var(--c-success-bg);color:var(--c-success)}.doc-name{font-weight:600;font-size:13px;color:var(--c-ink)}.doc-meta{font-size:11px;color:var(--c-muted)}.payments-empty,.documents-empty{padding:32px 16px;text-align:center;color:var(--c-muted);font-size:13px}.payments-page .section-head,.documents-page .section-head{margin:16px 0 10px}.profile-hero{background:linear-gradient(135deg,var(--c-brown) 0%,var(--c-brown-md) 60%,var(--c-brown-lt) 100%);padding:24px 18px 20px;color:#fff;border-bottom:3px solid var(--c-orange)}.profile-hero-avatar{width:60px;height:60px;border-radius:50%;background:#ffffff26;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;margin-bottom:12px;border:2px solid var(--c-orange-lt)}.profile-hero-name{font-family:var(--font-display);font-size:22px;line-height:1.2}.profile-hero-meta{font-size:12px;opacity:.8;margin-top:4px}.profile-hero-badges{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.profile-hero-badge{background:#ffffff26;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid var(--c-orange-lt)}.profile-page,.family-page,.rgpd-page{padding:16px}.profile-page .profile-hero,.family-page .profile-hero{margin:-16px -16px 12px;padding:24px 18px 20px}.profile-card{background:var(--c-surface);border-radius:var(--radius);padding:16px;border:1px solid var(--c-border);margin-bottom:12px}.profile-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:13px}.profile-row+.profile-row{border-top:1px solid var(--c-border)}.profile-row-label{color:var(--c-muted)}.profile-row-value{font-weight:600;color:var(--c-ink);text-align:right}.consent-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;font-size:12px;line-height:1.45}.consent-row+.consent-row{border-top:1px solid var(--c-border)}.consent-row-check{margin-top:2px;accent-color:var(--c-orange);width:16px;height:16px;flex-shrink:0}.consent-row-label{flex:1;color:var(--c-ink)}.consent-row-locked{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:700;background:var(--c-cream-dk);color:var(--c-muted);margin-left:8px;flex-shrink:0}.rgpd-danger-card{border:1px solid rgba(176,58,46,.25)}.btn-danger-outline{background:transparent;border:1.5px solid var(--c-danger);color:var(--c-danger)}.btn-danger-outline:hover:not(:disabled){background:#b03a2e14}.profile-switcher{background:var(--c-surface);border:2px solid var(--c-orange);border-radius:var(--radius);padding:10px;margin-bottom:12px}.profile-switcher-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--c-muted);margin-bottom:8px}.profile-switcher-chips{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;border:1.5px solid var(--c-border);font-size:13px;font-family:var(--font-sans);font-weight:500;cursor:pointer;background:var(--c-surface);color:var(--c-ink);transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.chip.selected{background:var(--c-orange);color:#fff;border-color:var(--c-orange);box-shadow:0 2px 6px #d4641a4d}.chip-dashed{border-style:dashed}.demo-banner{background:linear-gradient(135deg,#fff7ed,#fffbeb);border:1px solid #fcd34d;border-left:4px solid #f97316;border-radius:12px;padding:16px 18px;margin-bottom:20px;box-shadow:0 1px 2px #0000000a}.demo-banner__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.demo-banner__title{display:flex;align-items:center;gap:10px;font-size:15px;color:#7c2d12}.demo-banner__chip{display:inline-block;background:#f97316;color:#fff;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:12px}.demo-banner__chip-toggle{border:none;cursor:pointer;margin:0 0 16px;font-family:inherit;transition:filter .15s,transform .15s}.demo-banner__chip-toggle:hover{filter:brightness(1.05);transform:translateY(-1px)}.demo-banner__chip-toggle:focus-visible{outline:2px solid #f97316;outline-offset:2px}.demo-banner__dismiss{background:transparent;border:1px solid #fcd34d;color:#7c2d12;font-size:12px;padding:4px 10px;border-radius:8px;cursor:pointer;transition:background .15s}.demo-banner__dismiss:hover{background:#fef3c7}.demo-banner__desc{margin:0 0 10px;font-size:14px;line-height:1.5;color:#422006}.demo-banner__tags{display:flex;flex-wrap:wrap;gap:6px}.demo-banner__tag{background:#f973161a;color:#7c2d12;font-size:12px;padding:2px 8px;border-radius:8px}.dashboard{display:flex;flex-direction:column}.dashboard-body{padding:16px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.text-muted-sm{font-size:12px;color:var(--c-muted);line-height:1.45}.text-strong{color:var(--c-ink);font-weight:600}.eleve-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--c-surface);border-bottom:1px solid var(--c-border);cursor:pointer;text-align:left;width:100%;border-left:none;border-right:none;border-top:none;font-family:inherit}.eleve-row:last-child{border-bottom:none}.eleve-row-avatar{width:36px;height:36px;border-radius:50%;background:var(--c-tag-bg);color:var(--c-orange-dk);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.eleve-row-name{font-weight:600;font-size:13px}.eleve-row-meta{font-size:11px;color:var(--c-muted)}.eleve-row-chev{color:var(--c-muted);font-size:18px}.family-card{padding:0;overflow:hidden}.register-hint{font-size:11px;color:var(--c-muted);margin-top:6px;text-align:center;line-height:1.4}.dashboard-notice-minor{margin-top:12px}.dashboard-loading,.dashboard-empty{padding:24px 16px;text-align:center;color:var(--c-muted);font-size:13px}.featured-events-list{display:flex;flex-direction:column;gap:8px}.featured-event-card{display:block;width:100%;text-align:left;background:#fff7ed;border:1.5px solid #fb923c;border-radius:8px;padding:12px 14px;cursor:pointer;font-family:inherit;transition:transform .1s ease,box-shadow .1s ease}.featured-event-card:hover,.featured-event-card:focus{transform:translateY(-1px);box-shadow:0 4px 12px #f9731626;outline:none}.featured-event-title{font-size:14px;font-weight:600;color:var(--c-brown);margin-bottom:4px}.featured-event-meta{font-size:12px;color:var(--c-muted);margin-bottom:8px}.featured-event-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.featured-event-price{font-size:13px;font-weight:500;color:var(--c-brown)}.teacher-page{padding-bottom:80px}.teacher-week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:var(--c-surface);border-bottom:1px solid var(--c-border)}.teacher-week-label{font-weight:700;font-size:13px;color:var(--c-brown)}.teacher-day-section{padding:0 16px}.teacher-day-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--c-muted);margin:16px 0 8px}.teacher-slot-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.teacher-slot-card.absent{background:#fee2e2;border-color:#b03a2e40}.teacher-slot-card.moved-source{background:var(--c-cream-dk, #f5f0e8);opacity:.7}.teacher-slot-card.moved-target{background:#d1fae5;border-color:#2d6a4f4d}.teacher-slot-header{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;cursor:pointer;width:100%;text-align:left;font-family:inherit}.teacher-slot-time-block{flex-shrink:0}.teacher-slot-time{color:var(--c-orange);font-weight:700;font-size:13px;white-space:nowrap}.teacher-slot-card.absent .teacher-slot-time{color:var(--c-danger)}.teacher-slot-card.moved-target .teacher-slot-time{color:var(--c-success)}.teacher-slot-info{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.teacher-slot-instrument{background:var(--c-tag-bg, #f5f0e8);color:var(--c-tag-color, #6b4c1a);padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.teacher-slot-room{font-size:11px;color:var(--c-muted);white-space:nowrap}.teacher-slot-badges{display:flex;gap:4px;flex-shrink:0}.teacher-slot-students{border-top:1px solid var(--c-border)}.teacher-student-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--c-border);cursor:pointer;user-select:none;-webkit-user-select:none}.teacher-student-row:last-child{border-bottom:none}.teacher-student-row.student-absent{background:#fee2e2}.teacher-slot-empty{padding:10px 12px;font-size:12px;color:var(--c-muted);border-top:1px solid var(--c-border);text-align:center;font-style:italic}.student-avatar{width:34px;height:34px;border-radius:50%;background:var(--c-tag-bg, #f5f0e8);color:var(--c-orange-dk, #b45309);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}.student-avatar.avatar-absent{background:#fecaca;color:var(--c-danger)}.student-info{flex:1;min-width:0}.student-name{font-weight:600;font-size:13px}.student-name.name-absent{text-decoration:line-through;color:var(--c-danger)}.student-meta{font-size:11px;color:var(--c-muted)}.student-indicators{display:flex;gap:4px;flex-shrink:0;align-items:center}.indicator{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.indicator-warn{background:#fef3c7;color:var(--c-warn, #d97706)}.indicator-ok{background:#d1fae5;color:var(--c-success, #059669)}.indicator-no{background:#fee2e2;color:var(--c-danger, #dc2626)}.student-row{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--c-border);width:100%;text-align:left;background:transparent;border-left:none;border-right:none;border-top:none;font-family:inherit;cursor:pointer}.student-row:last-child{border-bottom:none}.student-phone{color:var(--c-orange);font-weight:600;text-decoration:none}.student-image-refused{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;color:var(--c-danger);flex-shrink:0}.long-press-menu{position:fixed;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:100}.long-press-menu-box{background:var(--c-surface);border-radius:var(--radius);padding:16px;width:90%;max-width:320px}.long-press-menu-title{font-weight:700;font-size:14px;margin-bottom:10px}.planning-event-pill{display:flex;align-items:flex-start;gap:10px;background:#eef2ff;border:1px solid #c7d2fe;border-left:4px solid #6366f1;border-radius:10px;padding:10px 12px;margin-bottom:8px}.planning-event-badge{flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#4338ca;background:#c7d2fe;border-radius:6px;padding:3px 7px;margin-top:2px}.planning-event-body{flex:1;min-width:0}.planning-event-title{font-size:14px;font-weight:600;color:#312e81}.planning-event-time{font-size:13px;font-weight:600;color:#4338ca;margin-top:1px}.planning-event-meta{font-size:12px;color:#6366f1;margin-top:1px}.teacher-event-students{margin-top:8px;display:flex;flex-direction:column;gap:2px}.teacher-event-count{font-size:11px;font-weight:600;color:#4338ca;margin-bottom:2px}.teacher-event-student{font-size:13px;color:#312e81;padding:2px 0}.teacher-event-empty{margin-top:8px;font-size:12px;font-style:italic;color:#6366f1}
