@import url("https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;800&display=swap");:root{--color-bg:#f6f3ea;--color-surface:#eee9da;--color-text:#25301f;--color-accent:#2f5d3a;--color-accent-2:#3a6d43;--color-divider:color-mix(in srgb,#25301f 40%,transparent);--color-error:#b3261e;--color-neutral-100:#f8f4f4;--color-neutral-200:#eae7e7;--color-neutral-300:#d7d3d3;--color-neutral-400:#bab6b6;--color-neutral-500:#9b9797;--color-neutral-600:#7d7979;--color-neutral-700:#605d5d;--color-neutral-800:#444141;--color-neutral-900:#2d2b2b;--color-accent-100:#eaf1e7;--color-accent-200:#d2e3cb;--color-accent-300:#aecda0;--color-accent-400:#7fac6d;--color-accent-500:#4c8244;--color-accent-600:#2f5d3a;--color-accent-700:#234a2c;--color-accent-800:#1a3922;--color-accent-900:#122a19;--font-heading:"Archivo",system-ui,sans-serif;--font-heading-weight:800;--font-body:"Archivo",system-ui,sans-serif;--space-1:4.0px;--space-2:8.0px;--space-3:12.0px;--space-4:16.0px;--space-6:24.0px;--space-8:32.0px;--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--shadow-sm:0 1px 2px color-mix(in srgb,#2d2b2b 14%,transparent);--shadow-md:0 3px 10px color-mix(in srgb,#2d2b2b 16%,transparent);--shadow-lg:0 12px 32px color-mix(in srgb,#2d2b2b 22%,transparent)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}*,:after,:before{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.55;font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.12;letter-spacing:-.015em;margin:0 0 var(--space-2)}h1{font-size:42px}h2{font-size:32px}h3{font-size:25px}h4{font-size:20px}h5{font-size:16px}h6{font-size:13px;letter-spacing:.08em;text-transform:uppercase}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}.text-muted{color:color-mix(in srgb,var(--color-text) 55%,transparent)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;white-space:nowrap;border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%)}@keyframes livepulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.35)}}@keyframes slideinright{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes fadein{0%{opacity:0}to{opacity:1}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:14px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md)}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600)}.btn-primary:active{background:var(--color-accent-700)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}.btn-secondary:active{background:color-mix(in srgb,var(--color-text) 14%,transparent)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.btn-icon{width:36px;height:36px;padding:0}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-block{width:100%;margin-top:var(--space-2);justify-content:flex-start;text-align:left}.control-bar{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:4px;padding:6px;max-width:calc(100% - 16px);overflow-x:auto;scrollbar-width:thin;background:rgba(28,27,26,.94);box-shadow:var(--shadow-lg)}.control-bar::-webkit-scrollbar{height:6px}.control-bar::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.control-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;width:74px;height:44px;padding:4px 2px;overflow:hidden;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:11px;line-height:1.2;text-align:center;color:#fff;background:hsla(0,0%,100%,.07);border:none;cursor:pointer}.control-btn:hover:not(:disabled):not([aria-disabled=true]){background:hsla(0,0%,100%,.18)}.control-btn:focus-visible{outline:2px solid var(--color-bg);outline-offset:-2px}.control-btn:disabled,.control-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.control-btn-danger,.control-btn-off{background:#c0261a}.control-btn.control-btn-danger:hover:not(:disabled),.control-btn.control-btn-off:hover:not(:disabled){background:#991f15}.control-btn-on{background:var(--color-accent-500)}.control-btn.control-btn-on:hover:not(:disabled){background:var(--color-accent-600)}.control-sep{flex:none;width:1px;margin:0 4px;background:hsla(0,0%,100%,.15)}.video-tile-handle{position:absolute;inset:0;width:100%;height:100%;padding:0;background:none;border:none;cursor:-webkit-grab;cursor:grab;touch-action:none}.video-tile-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.video-tile-handle:focus-visible{outline:2px solid var(--color-bg);outline-offset:-4px}.wb-toolbar{position:absolute;left:8px;top:8px;max-height:calc(100% - 80px);display:flex;flex-direction:column;align-items:center;gap:3px;width:44px;padding:8px 0;overflow-y:auto;scrollbar-width:thin;background:#1c1b1a;box-shadow:var(--shadow-lg)}.wb-toolbar::-webkit-scrollbar{width:6px}.wb-toolbar::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.wb-surface{touch-action:none;cursor:crosshair}.wb-surface-locked{touch-action:auto;cursor:not-allowed}.wb-background{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:center;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.wb-document-status{position:absolute;left:60px;top:40px;margin:0;max-width:min(420px,calc(100% - 120px));padding:4px 8px;font-size:11px;line-height:1.35;color:hsla(0,0%,100%,.9);background:#1c1b1a;box-shadow:var(--shadow-lg)}.wb-document-status-under-pages{top:52px}.wb-document-status:empty{padding:0;background:none;box-shadow:none}.wb-tool{display:grid;place-items:center;flex:none;width:28px;height:28px;padding:0;font-size:15px;line-height:1;color:hsla(0,0%,100%,.75);background:transparent;border:none;cursor:pointer}.wb-tool:hover{background:hsla(0,0%,100%,.14)}.wb-tool[aria-pressed=true]{background:var(--color-accent-500);color:#fff}.wb-tool:focus-visible{outline:2px solid var(--color-bg);outline-offset:-2px}.wb-tool[aria-disabled=true]{opacity:.4;cursor:not-allowed}.wb-tool[aria-disabled=true]:hover{background:transparent}.wb-dot{display:block;border-radius:50%;background:currentColor}.wb-sep{flex:none;width:24px;height:1px;margin:3px 0;background:hsla(0,0%,100%,.16)}.wb-ink{flex:none;width:20px;height:20px;padding:0;border:2px solid transparent;cursor:pointer;box-shadow:0 0 0 1px hsla(0,0%,100%,.35)}.wb-ink[aria-pressed=true]{border-color:#fff}.wb-ink:focus-visible{outline:2px solid var(--color-bg);outline-offset:1px}.wb-pages{position:absolute;left:60px;right:8px;top:8px;padding:5px 6px;background:#1c1b1a;box-shadow:var(--shadow-lg)}.wb-pages,.wb-pages-scroll{display:flex;align-items:center;gap:6px}.wb-pages-scroll{min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.25) transparent}.wb-pages-scroll::-webkit-scrollbar{height:6px}.wb-pages-scroll::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.wb-pages-scroll::-webkit-scrollbar-track{background:transparent}.wb-page{display:grid;grid-gap:1px;gap:1px;justify-items:center;flex:none;padding:0;font-size:10px;line-height:1.2;color:hsla(0,0%,100%,.75);background:transparent;border:none;cursor:pointer}.wb-page[aria-pressed=true]{color:#fff}.wb-page[aria-pressed=true] .wb-page-preview{box-shadow:0 0 0 2px var(--color-accent-500)}.wb-page:focus-visible{outline:2px solid var(--color-bg);outline-offset:1px}.wb-page-preview{display:block;background:#f8f4f4;box-shadow:0 0 0 1px hsla(0,0%,100%,.35)}.wb-page-add{display:grid;place-items:center;flex:none;width:28px;height:28px;padding:0;font-size:18px;line-height:1;color:hsla(0,0%,100%,.75);background:transparent;border:none;cursor:pointer}.wb-page-add:hover{background:hsla(0,0%,100%,.14)}.wb-page-add:focus-visible{outline:2px solid var(--color-bg);outline-offset:-2px}.wb-page-add[aria-disabled=true]{opacity:.4;cursor:not-allowed}.wb-page-badge{position:absolute;left:60px;top:8px;margin:0;padding:4px 8px;font-size:11px;color:hsla(0,0%,100%,.9);background:#1c1b1a;box-shadow:var(--shadow-lg)}.wb-page-badge:empty{padding:0;background:none;box-shadow:none}.wb-view{position:absolute;left:60px;top:88px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:calc(100% - 68px);padding:5px 6px;background:#1c1b1a;box-shadow:var(--shadow-lg)}.wb-view-level{margin:0 2px;padding:0 4px;font-size:11px;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;color:hsla(0,0%,100%,.9)}.wb-view-lock{flex:none;height:28px;padding:0 10px;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:11px;line-height:1;white-space:nowrap;color:#fff;background:hsla(0,0%,100%,.07);border:none;cursor:pointer}.wb-view-lock:hover{background:hsla(0,0%,100%,.18)}.wb-view-lock:focus-visible{outline:2px solid var(--color-bg);outline-offset:-2px}.wb-view-lock-on{background:var(--color-accent-500)}.wb-view-lock.wb-view-lock-on:hover{background:var(--color-accent-600)}.field>label,.field>legend{display:block;font-size:12px;margin-bottom:5px;color:color-mix(in srgb,var(--color-text) 70%,transparent)}.input{width:100%;min-height:36px;padding:6px 10px;font:inherit;font-size:14px;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md)}.input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}.input:focus-visible{border-color:var(--color-accent);outline-offset:0}.seg{overflow:hidden;border:1px solid var(--color-divider);border-radius:var(--radius-md)}.seg,.seg-opt{display:inline-flex}.seg-opt{align-items:center;gap:6px;padding:7px 12px;font-size:13px;cursor:pointer}.seg-opt input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.seg-opt+.seg-opt{border-left:1px solid var(--color-divider)}.seg-opt:has(input:checked){background:var(--color-accent);color:var(--color-bg)}.seg-opt:not(:has(input:checked)):hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}.seg-opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:-2px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 60%,transparent);border-bottom:2px solid var(--color-divider)}.table td,.table th{padding:var(--space-2)}.table td{border-bottom:1px solid var(--color-divider)}.table tbody tr:hover{background:color-mix(in srgb,var(--color-text) 4%,transparent)}.tag{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.02em;padding:3px 10px;border-radius:calc(var(--radius-md) * .75)}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-muted{background:color-mix(in srgb,var(--color-text) 8%,transparent);color:color-mix(in srgb,var(--color-text) 65%,transparent)}.table tbody tr.row-muted td{color:color-mix(in srgb,var(--color-text) 62%,transparent)}.app-shell{display:flex;height:100vh;height:100dvh;align-items:stretch;overflow:hidden}.app-rail{width:236px;flex:none;display:flex;flex-direction:column;background:var(--color-surface);border-right:2px solid var(--color-divider);overflow-y:auto}.app-rail-header{padding:20px 16px 14px;border-bottom:2px solid var(--color-divider)}.app-eyebrow{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent);margin-bottom:4px}.app-space-name{font-family:var(--font-heading);font-weight:800;font-size:17px}.app-nav{display:flex;flex-direction:column;padding:10px 0}.app-nav-link{display:flex;align-items:center;gap:10px;padding:11px 16px;font-family:var(--font-heading);font-weight:800;font-size:13px;color:var(--color-text);text-decoration:none;border-left:3px solid transparent}.app-nav-link:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}.app-nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.app-nav-link[aria-current=page]{background:var(--color-accent);color:var(--color-bg);border-left-color:var(--color-accent-800)}.app-rail-footer{margin-top:auto;padding:16px;border-top:2px solid var(--color-divider)}.app-rail-note{margin:0 0 8px;font-size:11px;line-height:1.45;color:color-mix(in srgb,var(--color-text) 60%,transparent)}.app-identity{display:flex;align-items:center;gap:10px;margin-bottom:12px}.app-identity-initials{width:30px;height:30px;flex:none;display:grid;place-items:center;font-size:11px;background:var(--color-neutral-300);color:var(--color-neutral-800)}.app-identity-initials,.app-identity-name{font-family:var(--font-heading);font-weight:800}.app-identity-name{font-size:13px;min-width:0;overflow-wrap:anywhere}.app-content{flex:1 1;min-width:0;padding:24px 28px;overflow-y:auto}.page-header{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:14px 0;min-height:69px;box-sizing:border-box;border-bottom:2px solid var(--color-divider)}.page-header-title{margin:0;font-size:27px}.page-header-meta{margin:0;font-size:13px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.page-header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.admin-overview{display:flex;flex-wrap:wrap;gap:2px;max-width:1080px;margin:20px 0 24px;background:var(--color-divider);border:2px solid var(--color-divider)}.admin-overview-tile{flex:1 1 260px;min-width:0;background:var(--color-bg);padding:20px 22px;display:flex;flex-direction:column}.admin-overview-heading{margin:0 0 16px;padding-bottom:8px;font-family:inherit;font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--color-text) 55%,transparent);border-bottom:2px solid var(--color-divider)}.admin-overview-action{margin-top:auto}.admin-overview-actions{margin-top:auto;display:flex;flex-direction:column;gap:2px}.admin-overview-actions>:first-child{margin-top:0}.admin-activity{margin:0}.admin-accounts{margin:0 0 16px}.admin-accounts-row,.admin-activity-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-divider)}.admin-activity-row{padding:12px 0}.admin-accounts-row{padding:10px 0}.admin-accounts-row:last-child,.admin-activity-row:last-child{border-bottom:none}.admin-accounts-label,.admin-activity-label{font-size:13px}.admin-accounts-value{font-size:15px}.admin-accounts-value,.admin-activity-value{margin:0;font-family:var(--font-heading);font-weight:800}.admin-activity-value{font-size:26px}.admin-trend{margin:auto 0 0;padding-top:16px}.admin-trend-legend{margin-top:6px;font-size:11px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.admin-trend-bars{display:flex;align-items:flex-end;gap:4px;height:56px}.admin-trend-bar{flex:1 1;display:flex;align-items:flex-end;height:100%}.admin-trend-fill{width:100%;min-height:8px;background:var(--color-neutral-300)}.admin-trend-fill-current{background:var(--color-accent)}.admin-trend-fill-empty{min-height:3px}.admin-registrations{display:grid;grid-template-columns:auto auto 1fr;grid-column-gap:24px;column-gap:24px;margin:0 0 16px}.admin-registrations-pending{grid-column:1/-1;display:flex;align-items:baseline;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--color-divider)}.admin-registrations-pending-value{order:-1;margin:0;font-family:var(--font-heading);font-weight:800;font-size:56px;line-height:.9;color:var(--color-accent)}.admin-registrations-pending-label{font-size:13px;line-height:1.3}.admin-registrations-decided{display:flex;flex-direction:column;padding-top:14px}.admin-registrations-decided-value{order:-1;margin:0;font-family:var(--font-heading);font-weight:800;font-size:20px}.admin-registrations-decided-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.app-nav-badge{margin-left:auto;min-width:20px;padding:2px 6px;font-family:var(--font-heading);font-weight:800;font-size:11px;text-align:center;background:var(--color-accent);color:var(--color-bg)}.app-nav-link[aria-current=page] .app-nav-badge{background:var(--color-bg);color:var(--color-accent-700)}@media (max-width:760px){.app-shell{flex-direction:column;height:auto;min-height:100vh;overflow:visible}.app-rail{width:auto;border-right:none;border-bottom:2px solid var(--color-divider)}.app-content,.app-rail{overflow-y:visible}.app-nav{flex-direction:row;overflow-x:auto}.app-nav-link{border-left:none;border-bottom:3px solid transparent;white-space:nowrap}.app-nav-link[aria-current=page]{border-left-color:transparent;border-bottom-color:var(--color-accent-800)}.app-identity{display:none}.app-content{padding:20px 16px}}.booking{display:flex;flex-direction:column;min-height:0}.booking-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--color-divider)}.booking-title{margin:0;font-size:26px}.booking-window{margin:0 0 0 auto;font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.booking-steps{display:flex;margin:0;padding:0;list-style:none;border-bottom:2px solid var(--color-divider);overflow-x:auto}.booking-step-item{flex:1 1;min-width:150px;display:flex}.booking-step{display:flex;align-items:center;gap:11px;flex:1 1;min-width:0;padding:12px 18px;font:inherit;text-align:left;color:var(--color-text);background:var(--color-bg);border:none;border-right:1px solid var(--color-divider);cursor:pointer}.booking-step:hover{background:color-mix(in srgb,var(--color-text) 5%,transparent)}.booking-step:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.booking-step[aria-disabled=true]{cursor:default;opacity:.5}.booking-step[aria-disabled=true]:hover{background:var(--color-bg)}.booking-step[aria-current=step],.booking-step[aria-current=step]:hover{background:var(--color-accent);color:var(--color-bg);opacity:1;cursor:default}.booking-step-number{flex:none;display:grid;place-items:center;width:22px;height:22px;font-family:var(--font-heading);font-weight:800;font-size:12px;background:var(--color-divider);color:color-mix(in srgb,var(--color-text) 60%,transparent)}.booking-step[aria-current=step] .booking-step-number{background:var(--color-bg);color:var(--color-accent-700)}.booking-step:not([aria-disabled=true]):not([aria-current=step]) .booking-step-number{background:var(--color-accent);color:var(--color-bg)}.booking-step-text{min-width:0;display:flex;flex-direction:column;gap:1px}.booking-step-label{font-family:var(--font-heading);font-weight:800;font-size:13px}.booking-step-value{font-size:11px;color:color-mix(in srgb,var(--color-text) 50%,transparent);max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-step[aria-current=step] .booking-step-value{color:hsla(0,0%,100%,.75)}.booking-panel{padding:26px 0 22px;min-width:0}.booking-heading{margin:0 0 4px;font-size:20px}.booking-lead{font-size:13px;margin:0 0 16px}.student-search{max-width:420px;margin-bottom:14px}.student-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:2px;gap:2px;background:var(--color-divider);border:1px solid var(--color-divider)}.student-list:empty{display:none}.student-row{display:flex;align-items:center;gap:9px;padding:12px 13px;font:inherit;text-align:left;color:var(--color-text);background:var(--color-surface);border:none;cursor:pointer}.student-row:hover{background:color-mix(in srgb,var(--color-text) 5%,var(--color-surface))}.student-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.student-row[aria-current=true]{background:var(--color-accent);color:var(--color-bg)}.student-row-name{flex:1 1;min-width:0;font-family:var(--font-heading);font-weight:800;font-size:13px}.student-row-email{font-size:11px;flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-row[aria-current=true] .student-row-email{color:hsla(0,0%,100%,.75)}.student-list-empty{grid-column:1/-1;margin:0;padding:12px 13px;font-size:12px;background:var(--color-surface)}.subject-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:2px;gap:2px;background:var(--color-divider);border:1px solid var(--color-divider)}.subject-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:18px 18px 18px 26px;font:inherit;text-align:left;color:var(--color-text);background:var(--color-surface);border:none;cursor:pointer}.subject-card:hover{background:color-mix(in srgb,var(--color-text) 5%,var(--color-surface))}.subject-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.subject-card[aria-current=true]{background:var(--color-accent);color:var(--color-bg)}.subject-card[aria-disabled=true]{cursor:default;opacity:.55}.subject-card[aria-disabled=true]:hover{background:var(--color-surface)}.subject-card-bar{position:absolute;left:0;top:0;bottom:0;width:5px}.subject-card[aria-current=true] .subject-card-bar{background:var(--color-bg)!important}.subject-card-name{font-family:var(--font-heading);font-weight:800;font-size:17px}.subject-card-meta{font-size:12px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.subject-card[aria-current=true] .subject-card-meta{color:hsla(0,0%,100%,.75)}.booking-slot-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:14px;margin-bottom:14px}.booking-slot-hint{margin:0;font-size:13px}.booking-professor-filter{display:flex;align-items:center;gap:9px;margin-left:auto}.booking-professor-filter .input{width:250px;font-size:13px}.booking-slot-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:2px;gap:2px;background:var(--color-divider);border:1px solid var(--color-divider)}.slot-calendar{background:var(--color-bg);padding:14px 16px 16px;min-width:0}.slot-calendar-grid,.slot-calendar-head{display:grid;grid-template-columns:repeat(7,1fr)}.slot-calendar-head{gap:1px;margin-bottom:6px}.slot-calendar-weekday{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 50%,transparent);padding-left:2px}.slot-calendar-grid{gap:1px;background:var(--color-divider);border:1px solid var(--color-divider)}.slot-calendar-day{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:74px;padding:7px 8px;font:inherit;text-align:left;color:var(--color-text);background:var(--color-bg);border:none;cursor:pointer}.slot-calendar-day[data-density="1"]{background:color-mix(in srgb,var(--color-accent) 14%,var(--color-bg))}.slot-calendar-day[data-density="2"]{background:color-mix(in srgb,var(--color-accent) 34%,var(--color-bg))}.slot-calendar-day[data-density="3"]{background:color-mix(in srgb,var(--color-accent) 58%,var(--color-bg))}.slot-calendar-day[aria-disabled=true]{cursor:default;color:color-mix(in srgb,var(--color-text) 28%,transparent)}.slot-calendar-day[aria-current=date]{background:var(--color-accent);color:var(--color-bg);box-shadow:inset 0 0 0 2px var(--color-text)}.slot-calendar-day:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.slot-calendar-day-head{display:flex;align-items:center;gap:5px;width:100%}.slot-calendar-day-number{font-family:var(--font-heading);font-weight:800;font-size:14px}.slot-calendar-day-mark{width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}.slot-calendar-day-count{font-size:10px}.slot-calendar-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 0;font-size:11px;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.slot-calendar-legend-item{display:flex;align-items:center;gap:5px}.slot-calendar-swatch{width:12px;height:12px}.slot-calendar-swatch[data-density="1"]{background:color-mix(in srgb,var(--color-accent) 14%,var(--color-bg))}.slot-calendar-swatch[data-density="2"]{background:color-mix(in srgb,var(--color-accent) 34%,var(--color-bg))}.slot-calendar-swatch[data-density="3"]{background:color-mix(in srgb,var(--color-accent) 58%,var(--color-bg))}.booking-day-panel{background:var(--color-surface);display:flex;flex-direction:column;min-width:0;max-height:520px;overflow-y:auto}.day-slots-empty{margin:0;padding:18px;font-size:13px;color:color-mix(in srgb,var(--color-text) 50%,transparent)}.day-slots-header{padding:14px 16px;border-bottom:2px solid var(--color-divider)}.day-slots-count{margin:0;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.day-slots-day{margin:3px 0 0;font-size:17px}.day-slots-list{display:flex;flex-direction:column;padding:12px 0}.day-slot{display:flex;align-items:center;gap:10px;width:100%;padding:9px 16px;font:inherit;text-align:left;color:var(--color-text);background:var(--color-surface);border:none;border-top:1px solid var(--color-divider);cursor:pointer}.day-slot:hover{background:color-mix(in srgb,var(--color-text) 5%,var(--color-surface))}.day-slot:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.day-slot[aria-current=true]{background:var(--color-accent);color:var(--color-bg)}.day-slot-professor{background:var(--color-bg);border-top:none;padding-block:7px}.day-slot-time{width:46px;flex:none;font-family:var(--font-heading);font-weight:800;font-size:14px}.day-slot-label{flex:1 1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-slot-toggle{flex:none;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-heading);font-weight:800;color:var(--color-accent-700)}.day-slot[aria-current=true] .day-slot-toggle{color:var(--color-bg)}.booking-recap{max-width:620px;padding:6px 24px 20px;background:var(--color-surface)}.booking-recap-rows{margin:0}.booking-recap-row{display:flex;align-items:baseline;gap:18px;padding:11px 0;border-bottom:1px solid var(--color-divider)}.booking-recap-row:last-child{border-bottom:none}.booking-recap-row dt{width:130px;flex:none;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.booking-recap-row dd{margin:0;font-family:var(--font-heading);font-weight:800;font-size:15px}.booking-repeat{display:flex;align-items:center;gap:9px;padding-top:16px;font-size:13px;cursor:pointer}.booking-footer{display:flex;align-items:center;gap:16px;padding:12px 16px;border-top:2px solid var(--color-divider);background:var(--color-surface)}.booking-footer-hint{flex:1 1;min-width:0;margin:0;font-size:13px}.booking-footer .btn-ghost[aria-disabled=true]{opacity:.45;cursor:default}.booking-toast{position:fixed;right:24px;bottom:24px;z-index:80;max-width:min(620px,calc(100vw - 48px));display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--color-accent);color:var(--color-bg);box-shadow:var(--shadow-lg)}.booking-toast-mark{width:22px;height:22px;flex:none;display:grid;place-items:center;font-size:13px;background:var(--color-bg);color:var(--color-accent)}.booking-toast-text{flex:1 1;min-width:0;font-size:13px}.booking-toast-close{flex:none;color:var(--color-bg);font-size:12px}.booking-toast-close:hover{background:hsla(0,0%,100%,.15)}@media (max-width:900px){.booking-slot-body{grid-template-columns:minmax(0,1fr)}.booking-day-panel{max-height:none}.booking-professor-filter{margin-left:0}.booking-professor-filter .input{width:100%}}.waiting-room{--color-bg:#1a1918;--color-surface:#262322;--color-text:#f3f2f2;--color-divider:hsla(0,0%,100%,.16);--color-error:#f2b8b5;--quality-bonne:var(--color-accent-300);--quality-moyenne:#eda100;--quality-faible:var(--color-error);position:fixed;inset:0;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text)}.waiting-room .btn-primary{color:var(--color-neutral-100)}.waiting-room .btn-secondary{border-color:hsla(0,0%,100%,.25)}.waiting-room :focus-visible{outline-color:var(--color-accent-300)}.waiting-room .input:focus-visible{border-color:var(--color-accent-300)}.waiting-room-header{display:flex;align-items:center;gap:var(--space-3);flex:none;padding:14px 20px;border-bottom:1px solid hsla(0,0%,100%,.12)}.waiting-room-eyebrow{flex:none;margin:0;font-family:var(--font-body);font-weight:400;line-height:inherit;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:hsla(0,0%,100%,.5)}.waiting-room-course{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-panel-close,.waiting-room-close{margin-left:auto;flex:none;color:var(--color-text);background:hsla(0,0%,100%,.08)}.side-panel-close:hover,.waiting-room-close:hover{background:hsla(0,0%,100%,.18)}.waiting-room-grid{flex:1 1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:1.3fr 1fr;grid-gap:var(--space-6);gap:var(--space-6);align-content:center;align-content:safe center;width:100%;max-width:1000px;margin:0 auto;padding:28px}@media (max-width:860px){.waiting-room-grid{grid-template-columns:1fr;align-content:start}}.waiting-room-side,.waiting-room-stage{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.waiting-room-preview{position:relative;aspect-ratio:16/10;background:#000;display:grid;place-items:center;overflow:hidden;border-radius:var(--radius-lg)}.waiting-room-preview video{width:100%;height:100%;object-fit:cover}.waiting-room-preview p{margin:0;padding:var(--space-4);font-size:13px;text-align:center;color:#f3f2f2}.waiting-room-mic-row{display:flex;gap:var(--space-6);align-items:flex-end}.waiting-room-mic{flex:1 1;min-width:0}.waiting-room-meter{height:10px;overflow:hidden;background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.4)}.waiting-room-meter-fill{height:100%;background:var(--color-accent-400);transition:width 60ms linear}.waiting-room-card{background:var(--color-surface);padding:var(--space-4)}.waiting-room-card-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:hsla(0,0%,100%,.5);margin-bottom:var(--space-2)}.waiting-room-actions{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-3)}.waiting-room-actions .btn-primary{justify-content:center;padding:14px}.waiting-room-error{font-size:13px;margin:0}.waiting-room-error,.waiting-room-error a{color:var(--color-error)}.waiting-room-note{font-size:12px;margin:var(--space-1) 0 0}.waiting-room-empty{flex:1 1;display:grid;place-items:center;padding:28px}.course-room{--color-bg:#1a1918;--color-surface:#262322;--color-text:#f3f2f2;--color-divider:hsla(0,0%,100%,.16);--color-error:#f2b8b5;position:fixed;inset:0;overflow:hidden;background:var(--color-bg);color:var(--color-text)}.course-room .btn-primary{color:var(--color-neutral-100)}.course-room :focus-visible{outline-color:var(--color-accent-300)}.course-room-stage{position:absolute;inset:0;overflow:hidden;background:#0c0b0b}.course-room-empty{position:absolute;inset:0;display:grid;place-items:center;padding:28px;text-align:center}.course-room-error{font-size:13px;margin:0}.course-room-error,.course-room-error a{color:var(--color-error)}.course-room-banner{position:absolute;left:20px;top:20px;z-index:3;max-width:calc(100% - 260px);display:flex;align-items:center;gap:8px;padding:5px 12px;font-size:13px;background:rgba(0,0,0,.55)}.course-room-banner-who{min-width:0}.course-room-banner-details,.course-room-banner-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-room-banner-details{font-size:11px;color:hsla(0,0%,100%,.7)}.course-room-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--color-accent-300);animation:livepulse 1.4s infinite}@media (prefers-reduced-motion:reduce){.course-room-dot{animation:none}}.course-room-self{position:absolute;right:20px;top:20px;z-index:2;width:200px;max-width:40%;aspect-ratio:16/10;overflow:hidden;background:#000;border:2px solid hsla(45,40%,94%,.4)}.course-room-hand{position:absolute;left:0;right:0;top:20px;z-index:3;display:flex;justify-content:center;padding:0 8px;pointer-events:none}.course-room-hand-compact{top:8px}.course-room-hand-badge{display:flex;align-items:center;gap:8px;max-width:100%;padding:5px 12px;font-size:13px;white-space:nowrap;color:#f3f2f2;background:rgba(0,0,0,.55)}.course-room-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center;color:#f6f3ea;pointer-events:none}.course-room-initials{display:grid;place-items:center;flex:none;width:160px;height:160px;border-radius:50%;background:var(--color-accent);color:#fff;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:56px;line-height:1}.course-room-headline{display:block;font-size:18px}.course-room-note{font-size:13px;opacity:.75}.course-room-placeholder-compact{gap:4px}.course-room-placeholder-compact .course-room-headline{font-size:12px}.course-room-alerts{position:absolute;left:0;right:0;bottom:88px;z-index:4;display:flex;flex-direction:column;gap:8px;align-items:center;padding:0 20px;pointer-events:none}.course-room-alerts-beside-panel{padding-left:320px}.course-room-alert{margin:0;padding:8px 12px;max-width:520px;font-size:13px;color:var(--color-error);background:rgba(0,0,0,.7)}.course-room-panel{position:absolute;left:20px;bottom:88px;z-index:4;width:280px;max-width:calc(100% - 40px);max-height:calc(100% - 176px);overflow-y:auto;scrollbar-width:thin}.course-room-panel-shifted{left:60px;max-width:calc(100% - 80px)}.course-room-stage-drawer{right:280px}.side-panel{position:absolute;top:0;right:0;bottom:0;z-index:9;width:min(280px,100%);display:flex;flex-direction:column;background:#1c1b1a}@media (max-width:720px){.course-room-stage-drawer{right:0}}.side-panel-header{display:flex;align-items:center;gap:var(--space-2);padding:14px}.side-panel-title{margin:0;font-size:15px}.chat-panel-thread{flex:1 1;min-height:0;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:14px;list-style:none;font-size:13px}.chat-panel-empty{flex:none;margin:0;padding:0 14px;font-size:13px}.chat-message-own{align-self:flex-end;max-width:80%}.chat-message-meta{font-size:11px;color:hsla(0,0%,100%,.5)}.chat-message-own .chat-message-meta{text-align:right}.chat-message-unsent{color:var(--color-error)}.chat-message-body{padding:8px 10px;background:hsla(0,0%,100%,.06);overflow-wrap:break-word}.chat-message-own .chat-message-body{background:var(--color-accent);color:#fff}.chat-panel-composer{flex:none;padding:12px}.documents-panel-import{flex:none;padding:0 14px 14px}.dropzone{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 12px;text-align:center;border:1px dashed hsla(0,0%,100%,.28);background:hsla(0,0%,100%,.04)}.dropzone-active{border-color:var(--color-accent);background:hsla(0,0%,100%,.1)}.dropzone-text{margin:0;font-size:13px}.dropzone-button{padding:8px 12px;font-size:13px}.dropzone-hint{margin:0;font-size:11px}.documents-panel-error{margin:10px 14px 0;font-size:12px;color:var(--color-error)}.documents-panel-list{flex:1 1;min-height:0;overflow-y:auto;scrollbar-width:thin;padding:14px}.document-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.document-item{display:grid;grid-template-columns:1fr auto;align-items:baseline;grid-gap:4px 8px;gap:4px 8px}.document-item-name{flex:1 1;min-width:0;text-align:left;padding:0;border:0;background:none;cursor:pointer;font:inherit;font-size:13px;color:inherit;text-decoration:underline;overflow-wrap:break-word}.document-item-name:hover{color:var(--color-accent)}.document-item-size{flex:none;font-size:11px}.document-list-empty{margin:0;font-size:13px}.document-item-action{grid-column:1/-1;justify-self:start;padding:2px 8px;margin-top:2px;font:inherit;font-size:11px;color:hsla(0,0%,100%,.8);background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.16);cursor:pointer}.document-item-action:hover{background:hsla(0,0%,100%,.14)}.document-item-action[aria-pressed=true]{color:#fff;background:var(--color-accent-500);border-color:var(--color-accent-500)}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-column{width:520px;max-width:100%;margin:0 auto;padding:56px 64px;display:flex;flex-direction:column;justify-content:center}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:36px;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px}.auth-logo-mark{width:18px;height:18px;background:var(--color-accent)}.auth-title{font-size:32px}.auth-headline{font-size:38px;line-height:1.05}.auth-aside{display:flex;align-items:flex-end;padding:48px;background:var(--color-neutral-900);color:var(--color-neutral-100)}.auth-aside-mark{width:40px;height:40px;margin-bottom:18px;display:grid;place-items:center;background:var(--color-accent);color:var(--color-neutral-100);font-size:20px}.auth-aside-line{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:28px;line-height:1.15;max-width:14ch}.auth-notice{padding:14px;margin-bottom:8px;font-size:13px;background:var(--color-surface)}.auth-fineprint{margin-bottom:22px;font-size:12px;line-height:1.45;color:color-mix(in srgb,var(--color-text) 60%,transparent)}.auth-done-mark{width:60px;height:60px;margin-bottom:18px;display:grid;place-items:center;background:var(--color-accent);color:var(--color-neutral-100);font-size:26px}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-column{padding:40px 24px}}.drawer-veil{position:fixed;inset:0;z-index:70;background:color-mix(in srgb,var(--color-neutral-900) 45%,transparent);animation:fadein .18s ease-out}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(560px,94vw);display:flex;flex-direction:column;background:var(--color-bg);border-left:2px solid var(--color-divider);box-shadow:var(--shadow-lg);animation:slideinright .28s cubic-bezier(.2,.8,.2,1)}@media (prefers-reduced-motion:reduce){.drawer,.drawer-veil{animation:none}}.drawer-header{flex:none;display:flex;align-items:flex-start;gap:var(--space-3);padding:20px 24px;border-bottom:2px solid var(--color-divider)}.drawer-rule{width:6px;align-self:stretch;background:var(--color-accent)}.drawer-eyebrow{margin:0;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.drawer-title{margin:2px 0 0;font-size:19px}.drawer-body,.drawer-form{flex:1 1;min-height:0;display:flex;flex-direction:column}.drawer-body{overflow-y:auto;scrollbar-width:thin;padding:20px 24px;gap:14px}.drawer-notice{margin:0;padding:12px 14px;font-size:13px;background:var(--color-surface)}.drawer-actions{flex:none;display:flex;gap:var(--space-3);padding:16px 24px;border-top:2px solid var(--color-divider)}.drawer-checklist{margin:0;padding:0;list-style:none;max-height:190px;overflow-y:auto;scrollbar-width:thin;border:2px solid var(--color-divider)}.drawer-checklist label{display:flex;align-items:center;gap:var(--space-2);padding:9px 12px;font-size:14px;cursor:pointer}.drawer-checklist li+li{border-top:1px solid var(--color-divider)}.drawer-checklist label:hover{background:color-mix(in srgb,var(--color-text) 5%,transparent)}.action-confirmation{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);padding:12px 14px;font-size:13px;background:var(--color-accent-100);border-left:3px solid var(--color-accent)}@media (max-width:620px){.drawer{width:100%;border-left:0}}.confirm{position:fixed;z-index:71;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,92vw);max-height:90vh;overflow-y:auto;padding:24px;background:var(--color-bg);border-left:6px solid var(--color-accent);box-shadow:var(--shadow-lg);animation:fadein .18s ease-out}@media (prefers-reduced-motion:reduce){.confirm{animation:none}}.confirm-title{margin:0;font-size:19px}.confirm-list{margin:var(--space-3) 0 0;padding-left:20px;font-size:14px;line-height:1.6}.confirm-notice{margin:var(--space-3) 0 0;padding:12px 14px;font-size:13px;background:var(--color-surface)}.confirm-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}