@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f5f4ef;--surface:#fff;--surface-soft:#eef0ea;--line:#e2ded2;--ink:#1f2723;--ink-soft:#5c655e;--ink-faint:#92998f;--primary:#2f4b3c;--primary-strong:#21362a;--primary-soft:#e4ebe4;--accent:#4a5fa5;--accent-soft:#e7eaf6;--success:#3c7a5c;--success-soft:#e4f0e9;--success-ink:#2f6a4d;--warning:#b5722a;--warning-soft:#f6ead9;--warning-ink:#8a5418;--danger:#a83232;--danger-soft:#f6e3e1;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #1f27230f, 0 1px 1px #1f27230a;--shadow-md:0 8px 24px #1f272314;--font-display:"Fraunces Variable", Georgia, serif;--font-body:"Inter Variable", ui-sans-serif, system-ui, -apple-system, sans-serif}[data-theme=dark]{--bg:#171b18;--surface:#20251f;--surface-soft:#2a2f28;--line:#383e35;--ink:#e7ebe5;--ink-soft:#aab3a5;--ink-faint:#79806f;--primary:#4a7a5f;--primary-strong:#7fb896;--primary-soft:#22332a;--accent:#8b9fe0;--accent-soft:#262b40;--success:#6dbb96;--success-soft:#1f3327;--success-ink:var(--success);--warning:#dda15e;--warning-soft:#3a2c1a;--warning-ink:var(--warning);--danger:#e28080;--danger-soft:#3a2222;--shadow-sm:0 1px 2px #0000004d, 0 1px 1px #0003;--shadow-md:0 8px 24px #0006}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);color:var(--primary-strong);letter-spacing:-.01em;margin:0 0 .4em;font-weight:600}h1{font-size:1.9rem}h2{font-size:1.4rem}h3{font-size:1.1rem}p{margin:0 0 .8em}a{color:var(--accent)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{z-index:1000;background:var(--accent);color:#fff;border-radius:var(--radius-sm,4px);padding:10px 16px;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-100px;left:8px}.skip-link:focus{top:8px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--primary);color:#f4f6f3;flex-direction:column;flex-shrink:0;width:232px;padding:20px 14px;display:flex}.sidebar-brand{font-family:var(--font-display);color:#fff;padding:6px 10px 22px;font-size:1.25rem}.sidebar-brand small{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:#b9c8bd;margin-top:2px;font-size:.72rem;font-weight:500;display:block}.sidebar-search{color:#d9e3da;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:8px 10px;font-family:inherit;font-size:.85rem;transition:background .15s;display:flex}.sidebar-search:hover{background:#ffffff24}.kbd-hint{opacity:.75;white-space:nowrap;border:1px solid #ffffff4d;border-radius:4px;padding:1px 5px;font-size:.68rem}.sidebar-user-info{color:#c3d0c5;border-top:1px solid #ffffff26;margin-top:10px;padding:12px 12px 4px;font-size:.76rem;line-height:1.4}.sidebar-user-info strong{color:#fff;word-break:break-all;font-size:.84rem;display:block}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-group-title{letter-spacing:.08em;text-transform:uppercase;color:#d9e3da8c;margin:14px 12px 4px;font-size:.7rem;font-weight:700}.sidebar a,.sidebar .nav-action{white-space:nowrap;text-align:left;cursor:pointer;color:#d9e3da;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:9px;padding:10px 12px;font-family:inherit;font-size:.92rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar a:hover,.sidebar .nav-action:hover{color:#fff;background:#ffffff14}.sidebar a.active{color:var(--primary-strong);background:#fff}.sidebar-footer{color:#c3d0c5;border-top:1px solid #ffffff26;margin-top:12px;padding-top:12px;font-size:.82rem}.sidebar-footer button{color:#f4f6f3;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #ffffff4d;width:100%;margin-top:8px;padding:6px 10px;font-size:.82rem}.sidebar-footer button:hover{background:#ffffff1a}.main{flex:1;min-width:0;max-width:1180px;padding:32px 40px 60px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header p{color:var(--ink-soft);margin:0}.page-header .actions{flex-wrap:wrap;gap:10px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:9px 16px;font-size:.88rem;font-weight:600;transition:filter .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-strong)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){filter:brightness(.92)}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-soft)}.btn-danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{padding:5px 10px;font-size:.8rem}.btn-icon{padding:7px;line-height:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px}.card+.card{margin-top:18px}.card-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.today-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.today-card{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--radius-md);cursor:pointer;padding:18px 20px;transition:box-shadow .15s,transform .15s}.today-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.today-card-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.today-card-time{font-family:var(--font-display);color:var(--primary-strong);font-size:1.4rem;font-weight:600}.today-card-title{margin-bottom:4px;font-size:1.1rem;font-weight:600}.today-card-meta{color:var(--ink-soft);margin-bottom:10px;font-size:.88rem}.today-card-count{font-size:.9rem;font-weight:600}.today-card-done{opacity:.55}.today-card-live{box-shadow:var(--shadow-sm);border-left-width:8px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;display:grid}@media (width<=640px){.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.stat-grid .stat-card{padding:12px 14px}}.dashboard-grid{grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:14px;display:grid}.today-grid>*,.stat-grid>*,.dashboard-grid>*,.field-row>*{min-width:0}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 18px}.stat-card .value{font-family:var(--font-display);color:var(--primary-strong);font-size:1.7rem}.stat-card .label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.field{flex-direction:column;gap:5px;min-width:0;margin-bottom:14px;display:flex}.field label{color:var(--ink-soft);font-size:.8rem;font-weight:600}.field-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-width:0;padding:9px 11px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:70px}.checkbox-row{align-items:center;gap:8px;display:flex}.checkbox-row input{width:auto}.hint{color:var(--ink-soft);font-size:.78rem}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.78rem;text-decoration:underline}.form-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;display:flex}.search-input{max-width:320px}.table-wrap{scrollbar-width:thin;overflow-x:auto}.table-wrap[data-overflow~=right]:not([data-sticky-actions]){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),#0000)}.table-wrap[data-overflow~=left]:not([data-overflow~=right]):not([data-sticky-actions]){-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 48px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 48px),#0000)}.table-wrap[data-overflow~=left][data-overflow~=right]:not([data-sticky-actions]){-webkit-mask-image:linear-gradient(90deg,#0000,#000 48px calc(100% - 48px),#0000);mask-image:linear-gradient(90deg,#0000,#000 48px calc(100% - 48px),#0000)}.table-wrap[data-sticky-actions] td.table-actions:last-child,.table-wrap[data-sticky-actions] thead th:last-child{background:var(--surface);z-index:1;position:sticky;right:0}.table-wrap[data-sticky-actions] tr.clickable:hover td.table-actions:last-child{background:var(--surface-soft)}.table-wrap[data-sticky-actions] td.table-actions:last-child:has([aria-expanded=true]){z-index:5}.table-wrap[data-overflow~=right][data-sticky-actions] td.table-actions:last-child:before,.table-wrap[data-overflow~=right][data-sticky-actions] thead th:last-child:before{content:"";pointer-events:none;background:linear-gradient(270deg,#00000029,#0000);width:14px;position:absolute;top:0;bottom:0;left:-14px}@media (width<=640px){.table-wrap.stack-mobile{overflow-x:visible}.stack-mobile table,.stack-mobile thead,.stack-mobile tbody,.stack-mobile tr,.stack-mobile td{width:auto;display:block}.stack-mobile thead tr{border-bottom:1px solid var(--line);scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:6px;padding-bottom:10px;display:flex;overflow-x:auto}.stack-mobile thead tr::-webkit-scrollbar{display:none}.stack-mobile thead tr{padding-right:24px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.stack-mobile thead:not(:has(th.clickable))+tbody tr:first-child{padding-top:0}.stack-mobile thead tr:before{content:"Trier :";color:var(--ink-soft);flex-shrink:0;font-size:.78rem}.stack-mobile thead:not(:has(th.clickable)){display:none}.stack-mobile th{display:none}.stack-mobile th.clickable{white-space:nowrap;border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;min-height:36px;padding:4px 12px;display:inline-flex}.stack-mobile tbody tr{border-bottom:1px solid var(--line);padding:12px 0}.stack-mobile tbody tr:last-child{border-bottom:none}.stack-mobile td{text-align:left;border-bottom:none;padding:3px 0 3px 120px;display:flow-root}.stack-mobile td:before{content:attr(data-label);float:left;text-transform:uppercase;letter-spacing:.04em;width:108px;color:var(--ink-soft);overflow-wrap:anywhere;margin-left:-120px;padding-top:2px;font-size:.7rem;font-weight:600}.stack-mobile td:first-child,.stack-mobile td:not([data-label]){padding-left:0}.stack-mobile td:first-child{padding-bottom:6px;font-weight:600}.stack-mobile td:first-child:before,.stack-mobile td:not([data-label]):before{content:none}.stack-mobile td:empty{display:none}.stack-mobile td,.stack-mobile td select{white-space:normal!important;min-width:0!important}.stack-mobile td .tel{white-space:nowrap}.stack-mobile td.num{text-align:left}.table-wrap.stack-mobile td.table-actions,.table-wrap.stack-mobile td.table-actions:last-child{background:0 0;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 0 0;display:flex;position:static}.stack-mobile td.table-actions:before{content:none}}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:8px 12px;font-size:.75rem}.tel{white-space:nowrap}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}tr:last-child td{border-bottom:none}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}.clickable{cursor:pointer}tr.clickable:hover{background:var(--surface-soft)}.table-actions{white-space:nowrap}.table-actions>*{vertical-align:middle}.table-actions>*+*{margin-left:6px}.empty-state{text-align:center;color:var(--ink-soft);padding:48px 20px}.empty-state h3{color:var(--ink)}.badge{border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.74rem;font-weight:600;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success-ink)}.badge-warning{background:var(--warning-soft);color:var(--warning-ink)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-neutral{background:var(--surface-soft);color:var(--ink-soft)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.banner{border-radius:var(--radius-md);margin-bottom:16px;padding:12px 16px;font-size:.88rem}.banner-danger{background:var(--danger-soft);color:var(--danger)}.banner-success{background:var(--success-soft);color:var(--success-ink)}.banner-info{background:var(--accent-soft);color:var(--accent)}.banner-warning{background:var(--warning-soft);color:var(--warning-ink)}.modal-overlay{z-index:50;background:#181e1a73;justify-content:center;align-items:flex-start;padding:40px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-md);padding:26px}.modal-wide{max-width:780px}@media (width<=640px){.modal-overlay{padding:12px 8px max(12px, env(safe-area-inset-bottom))}.modal{padding:18px 16px}}.modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.password-field{position:relative}.password-field input{padding-right:46px}.password-toggle{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.password-toggle:hover{color:var(--ink);background:var(--surface-soft)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.password-field input::-ms-reveal{display:none}.password-field input::-ms-clear{display:none}.modal-close{cursor:pointer;color:var(--ink-soft);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:40px;min-height:40px;margin:-10px -10px -10px 0;font-size:1.1rem;line-height:1;display:inline-flex}.modal-close:hover{background:var(--surface-soft)}.login-screen{background:linear-gradient(180deg, var(--primary) 0%, var(--primary-strong) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-md);padding:36px 34px}.login-card h1{text-align:center;margin-bottom:4px}.login-card .hint{text-align:center;margin-bottom:22px}.login-emblems{justify-content:center;align-items:center;gap:16px;margin-bottom:14px;display:flex}.login-logo{object-fit:contain;width:96px;height:96px;display:block}.portal-page{max-width:860px;margin:0 auto;padding:24px 20px 60px}.portal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.portal-brand{flex:320px;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;gap:14px;min-width:0;display:grid}.portal-brand-name{text-align:center;overflow-wrap:anywhere;margin:0}@media (width<=520px){.portal-brand{grid-template-columns:48px minmax(0,1fr) 48px;gap:10px}.portal-brand img,.portal-brand svg{width:48px!important;height:48px!important}.portal-header>.btn{margin-left:auto}}.flex{display:flex}.flex-between{flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.muted{color:var(--ink-soft)}.text-right{text-align:right}.mt-0{margin-top:0}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:26px 0 10px;font-size:.78rem;font-weight:700}.section-title:first-child{margin-top:0}.tabs{box-shadow:inset 0 -1px 0 var(--line);scrollbar-width:thin;flex-wrap:nowrap;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:9px 14px;font-size:.86rem;font-weight:600}.tabs button:focus-visible{outline-offset:-2px}.tabs button.active{color:var(--primary-strong);border-bottom-color:var(--primary)}.spinner-line{text-align:center;color:var(--ink-soft);padding:30px}.loading-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-overlay-box{background:var(--surface);border-radius:var(--radius-lg);text-align:center;max-width:min(460px,100vw - 32px);padding:32px 40px;box-shadow:0 12px 36px #00000040}.loading-overlay-box p{margin:16px 0 0;font-weight:600}.loading-overlay-box .loading-overlay-detail{color:var(--ink-soft);margin-top:8px;font-size:.92rem;font-weight:400}.loading-progress{background:var(--line);border-radius:3px;width:100%;height:6px;margin:14px auto 0;overflow:hidden}.loading-progress>span{background:var(--accent);height:100%;transition:width .3s;display:block}.loading-spinner{border:4px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.date-field-row{flex-wrap:wrap;gap:14px;display:flex}.date-field-row .field{flex:none;margin-bottom:0}.date-field-fixed{width:170px}.datetime-field-fixed{width:210px}.guide-sections{flex-direction:column;gap:6px;display:flex}.guide-section{border:1px solid var(--line);border-radius:var(--radius-sm);border-left-width:4px;padding:10px 14px}.guide-section summary{cursor:pointer;color:var(--primary-strong);align-items:center;gap:10px;font-size:.92rem;font-weight:600;list-style:none;display:flex}.guide-icon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.guide-section summary::-webkit-details-marker{display:none}.guide-section summary:before{content:"▸";width:1.1em;color:var(--ink-faint);display:inline-block}.guide-section[open] summary:before{content:"▾"}.guide-section-body{color:var(--ink);padding:10px 4px 4px 1.1em;font-size:.9rem}.guide-section-body p:last-child{margin-bottom:0}.guide-section-body ul{margin:0 0 .8em;padding-left:20px}.guide-section-body li{margin-bottom:6px}.guide-section-body li:last-child{margin-bottom:0}.calendar-nav{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.calendar-range{color:var(--primary-strong);margin-right:auto;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,minmax(140px,1fr));gap:10px;padding-bottom:8px;display:grid;overflow-x:auto}.calendar-day{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);flex-direction:column;min-height:170px;display:flex}.calendar-day.is-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.calendar-day-header{border-bottom:1px solid var(--line);text-align:center;padding:10px 10px 6px}.calendar-day-name{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-size:.72rem;font-weight:700}.calendar-day-date{color:var(--ink);font-size:.82rem}.calendar-day-sessions{flex-direction:column;flex:1;gap:6px;padding:8px;display:flex}.calendar-session{background:var(--surface-soft);border-left:3px solid var(--accent);cursor:pointer;border-radius:4px;padding:6px 8px;transition:background .15s}.calendar-session:hover{background:var(--primary-soft)}.calendar-session-time{color:var(--primary-strong);font-size:.8rem;font-weight:700}.calendar-session-title{font-size:.82rem;font-weight:600}.calendar-session-teacher{color:var(--ink-soft);font-size:.76rem}.bar-chart{align-items:flex-end;gap:14px;height:170px;padding:10px 4px 0;display:flex}.bar-chart-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.bar-chart-bar{background:var(--accent);border-radius:4px 4px 0 0;width:100%;max-width:48px;min-height:2px;transition:height .2s}.bar-chart-value{color:var(--ink-soft);white-space:nowrap;margin-top:6px;font-size:.72rem}.bar-chart-label{color:var(--ink-faint);text-transform:capitalize;margin-top:2px;font-size:.72rem}.kiosk-screen{color:#f4f6f3;min-height:100vh;font-family:var(--font-body);background:#171b18;padding:40px 56px}.kiosk-columns{align-items:flex-start;gap:48px;display:flex}.kiosk-col-left{flex:auto;min-width:0}.kiosk-col-right{border-radius:var(--radius-lg);background:#0d100e;flex:0 0 33.333%;height:calc(100vh - 80px);position:relative;overflow:hidden}.kiosk-slide{object-fit:cover;width:100%;height:100%;transition:opacity 1.2s;position:absolute;inset:0}.kiosk-header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.kiosk-brand{font-family:var(--font-display);font-size:2.2rem;font-weight:600}.kiosk-clock{font-family:var(--font-display);font-size:3rem;font-weight:600}.kiosk-date{color:#aab3a5;text-transform:capitalize;margin-bottom:36px;font-size:1.3rem}.kiosk-empty{color:#aab3a5;text-align:center;margin-top:80px;font-size:1.6rem}.kiosk-list{flex-direction:column;gap:18px;display:flex}.kiosk-row{border-left:8px solid var(--accent);border-radius:var(--radius-md);background:#20251f;align-items:center;gap:28px;padding:20px 28px;display:flex}.kiosk-row-done{opacity:.45}.kiosk-row-live{box-shadow:0 0 0 2px #6fa68866}.kiosk-time{font-family:var(--font-display);min-width:110px;font-size:2rem;font-weight:600}.kiosk-info{flex:1}.kiosk-title{font-size:1.5rem;font-weight:600}.kiosk-meta{color:#aab3a5;margin-top:4px;font-size:1.05rem}.kiosk-status{text-align:right}.kiosk-count{margin-top:6px;font-size:1.1rem;font-weight:600}.kiosk-info{min-width:0}.kiosk-screen{position:relative}.kiosk-quit{color:#f4f6f340;cursor:pointer;background:0 0;border:none;padding:8px;font-size:.8rem;position:absolute;bottom:10px;right:12px}.kiosk-quit:hover,.kiosk-quit:focus-visible{color:#f4f6f3cc}.kiosk-login{background:var(--surface);max-width:420px;color:var(--ink);border-radius:var(--radius-lg);margin:40px auto 0;padding:26px}.kiosk-login h2{margin-top:0}@media (width<=900px){.kiosk-screen{padding:28px 24px}.kiosk-columns{flex-direction:column;gap:28px}.kiosk-col-left{width:100%}.kiosk-col-right{flex:none;width:100%;height:45vh}}@media (width<=640px){.kiosk-screen{padding:20px 16px}.kiosk-header{flex-wrap:wrap;gap:0 16px}.kiosk-brand{font-size:1.5rem}.kiosk-clock{font-size:2.1rem}.kiosk-date{margin-bottom:20px;font-size:1.05rem}.kiosk-row{border-left-width:6px;flex-wrap:wrap;gap:4px 14px;padding:14px 16px}.kiosk-time{min-width:0;font-size:1.5rem}.kiosk-status{align-items:center;gap:10px;margin-left:auto;display:flex}.kiosk-count{margin-top:0}.kiosk-info{flex:100%;order:3}.kiosk-title{font-size:1.2rem}.kiosk-meta{font-size:.95rem}.kiosk-col-right{height:35vh}}.mobile-topbar,.drawer-close,.drawer-backdrop{display:none}@media (width<=900px){.app-shell{flex-direction:column}.mobile-topbar{z-index:30;background:var(--primary);color:#fff;padding:6px 8px;padding-top:max(6px, env(safe-area-inset-top));align-items:center;gap:8px;display:flex;position:sticky;top:0}.mobile-topbar-brand{min-width:0;font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.15rem;overflow:hidden}.topbar-button,.drawer-close{border-radius:var(--radius-sm);width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.topbar-button:hover,.drawer-close:hover{background:#ffffff1f}.drawer-backdrop{z-index:44;background:#181e1a73;display:block;position:fixed;inset:0}.sidebar{z-index:45;overscroll-behavior:contain;width:min(300px,85vw);padding-top:max(20px, env(safe-area-inset-top));padding-bottom:max(20px, env(safe-area-inset-bottom));visibility:hidden;transition:transform .2s,visibility 0s linear .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.sidebar-open{visibility:visible;box-shadow:var(--shadow-md);transition:transform .2s;transform:none}.drawer-close{top:max(12px, env(safe-area-inset-top));color:#f4f6f3;position:absolute;right:10px}.sidebar-brand{padding-right:52px}.sidebar-search,.sidebar a,.sidebar .nav-action{min-height:44px}.kbd-hint{display:none}.main{padding:20px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (pointer:coarse){input,select,textarea{font-size:16px}.btn-sm{min-height:40px;padding:8px 12px}.link-button{min-height:40px;padding:8px 6px}}.ticker{white-space:nowrap;width:100%;color:var(--primary);font-style:var(--ticker-font-style,italic);font-weight:var(--ticker-weight,500);font-size:calc(1.2rem * var(--ticker-scale,1));overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}[data-theme=dark] .ticker,.kiosk-screen .ticker{color:color-mix(in srgb, var(--primary) 55%, white)}.ticker-text{animation:ticker-scroll var(--ticker-duration,20s) linear infinite;padding-left:100%;display:inline-block}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.ticker-text{animation-duration:calc(var(--ticker-duration,20s) * 1.6)}}.login-card .ticker{font-size:calc(1.15rem * var(--ticker-scale,1));margin:0 0 14px}.kiosk-screen .ticker{font-size:calc(1.9rem * var(--ticker-scale,1));margin:-24px 0 36px}.settings-fold summary{cursor:pointer;font-family:var(--font-display);align-items:center;gap:8px;font-size:1.1rem;font-weight:600;list-style:none;display:flex}.settings-fold summary::-webkit-details-marker{display:none}.settings-fold summary:before{content:"▸";width:1.1em;color:var(--ink-faint);display:inline-block}.settings-fold[open] summary:before{content:"▾"}.settings-fold-body{padding-top:12px}.settings-tabs{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.settings-tabs button{white-space:nowrap}.btn-icon{justify-content:center;align-items:center;width:44px;min-width:44px;height:40px;padding:0;display:inline-flex}.reminder-legend{flex-wrap:wrap;align-items:center;gap:4px 18px;display:flex}.reminder-legend>span{align-items:center;gap:6px;display:inline-flex}.reminder-legend svg{width:18px;height:18px}.guide-family{letter-spacing:.06em;text-transform:uppercase;margin:18px 0 2px;font-size:.74rem;font-weight:700}.guide-family:first-child{margin-top:0}.kiosk-posture{object-fit:initial;background:linear-gradient(#1d241f 0%,#151a17 100%);flex-direction:column;justify-content:center;gap:2.2vh;padding:3.5vh 2.2vw;display:flex;overflow:hidden}.kiosk-posture-figure{aspect-ratio:1;object-fit:contain;max-width:100%;min-height:0;max-height:38vh;box-shadow:var(--shadow-sm,0 2px 8px #00000040);border-radius:22%;flex:0 auto;align-self:center}.kiosk-posture-body{flex:none}.kiosk-posture-kicker{letter-spacing:.14em;text-transform:uppercase;color:#8fb09a;margin-bottom:.8vh;font-size:clamp(.7rem,1.35vh,.95rem)}.kiosk-posture-name{font-family:var(--font-display,inherit);color:#fff;margin:0;font-size:clamp(1.6rem,4.6vh,3.1rem);line-height:1.05}.kiosk-posture-french{color:#d6e5da;margin:.6vh 0 1.6vh;font-size:clamp(1.05rem,2.5vh,1.7rem)}.kiosk-posture-benefits{color:#e9c98a;margin:0 0 1.4vh;font-size:clamp(.95rem,2.1vh,1.4rem);line-height:1.35}.kiosk-posture-text{color:#e8ece9;margin:0 0 1.4vh;font-size:clamp(.9rem,1.95vh,1.3rem);line-height:1.45}.kiosk-posture-cues{color:#9db5a5;margin:0;font-size:clamp(.82rem,1.7vh,1.12rem);font-style:italic;line-height:1.4}@media (width<=900px){.kiosk-posture{flex-direction:row;align-items:center;gap:3vw;padding:2vh 3vw}.kiosk-posture-figure{flex:none;align-self:center;width:auto;max-width:38%;height:82%;max-height:none}.kiosk-posture-body{flex:auto;min-width:0}.kiosk-posture-cues,.kiosk-posture-text{display:none}}.posture-thumb{border-radius:22%;width:52px;height:52px;display:block}.posture-thumb-large{border-radius:22%;width:100%;max-width:200px;height:auto;display:block}.posture-preview{min-height:24px;margin-bottom:10px}
