*{box-sizing:border-box}:root{--violet-950:#261032;--violet-900:#341544;--violet-800:#48215d;--violet-700:#5e2d7c;--violet-500:#8d59aa;--violet-50:#faf7fc;--gold-500:#c8a15a;--gold-300:#e1c78f;--bg:#f7f4f9;--surface:#fff;--line:#e8deec;--text:#24152f;--muted:#766a7d;--danger:#b3261e;--shadow-sm:0 4px 14px rgba(47,23,60,.06);--shadow-md:0 12px 34px rgba(47,23,60,.1);--sidebar-width:292px;--sidebar-collapsed:86px}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 90% 0,rgba(117,64,150,.08),transparent 28%),var(--bg)}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}.appShell{min-height:100vh;display:flex}.appSidebar{position:-webkit-sticky;position:sticky;top:0;z-index:40;width:var(--sidebar-width);flex:0 0 var(--sidebar-width);height:100vh;display:flex;flex-direction:column;color:#fff;background:radial-gradient(circle at 12% 4%,hsla(41,58%,72%,.24),transparent 22%),linear-gradient(180deg,var(--violet-950),var(--violet-800) 54%,var(--violet-700));box-shadow:12px 0 40px rgba(39,18,56,.16);transition:.22s;overflow:hidden}.appSidebar.isCollapsed{width:var(--sidebar-collapsed);flex-basis:var(--sidebar-collapsed)}.sidebarBrand{flex-shrink:0;min-height:88px;display:grid;grid-template-columns:54px 1fr 30px;align-items:center;grid-gap:12px;gap:12px;padding:16px 14px;border-bottom:1px solid hsla(0,0%,100%,.12)}.brandLogo{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;color:var(--violet-950);background:linear-gradient(135deg,#f2dfb0,var(--gold-500));font-family:Georgia,serif;font-size:25px;font-weight:700;box-shadow:0 10px 25px rgba(0,0,0,.22)}.brandText{display:grid;grid-gap:3px;gap:3px;min-width:0}.brandText strong{font-family:Georgia,serif;font-size:22px;white-space:nowrap}.brandText span{font-size:11px;color:hsla(0,0%,100%,.68);white-space:nowrap}.collapseButton{width:30px;height:30px;padding:0;display:grid;place-items:center;border:1px solid hsla(0,0%,100%,.16);border-radius:10px;color:#fff;background:hsla(0,0%,100%,.08);font-size:23px;cursor:pointer}.sidebarSeason{flex-shrink:0;margin:14px 14px 8px;padding:11px 12px;display:grid;grid-gap:2px;gap:2px;border:1px solid hsla(0,0%,100%,.1);border-radius:14px;background:hsla(0,0%,100%,.08)}.sidebarSeason span{font-size:10px;color:hsla(0,0%,100%,.62);text-transform:uppercase;letter-spacing:.08em}.sidebarSeason strong{font-size:13px}.sidebarNav{flex:1 1;min-height:0;padding:8px 10px 18px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.35) transparent}.sidebarNav::-webkit-scrollbar{width:6px}.sidebarNav::-webkit-scrollbar-thumb{border-radius:999px;background:hsla(0,0%,100%,.3)}.menuGroup{position:relative;margin-bottom:7px}.menuGroupButton{width:100%;min-height:46px;padding:8px 10px;display:grid;grid-template-columns:30px 1fr 18px;grid-gap:8px;gap:8px;border:1px solid transparent;border-radius:14px;color:hsla(0,0%,100%,.88);background:transparent;cursor:pointer;text-align:left;transition:.16s}.menuGroup.hasActiveItem .menuGroupButton,.menuGroupButton:hover{border-color:hsla(0,0%,100%,.11);background:hsla(0,0%,100%,.1)}.menuGroupIcon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;color:var(--gold-300);background:hsla(0,0%,100%,.08);font-size:15px;font-weight:800}.menuGroupTitle{font-size:13px;font-weight:750;white-space:nowrap}.menuChevron{color:hsla(0,0%,100%,.55);font-size:22px;transition:transform .18s}.menuChevron.isOpen{transform:rotate(90deg)}.menuItems{max-height:0;overflow:hidden;opacity:0;padding-left:16px;transition:.22s}.menuItems.isOpen{max-height:340px;overflow-y:auto;opacity:1;padding-top:5px;scrollbar-width:thin;scrollbar-color:hsla(0,0%,100%,.35) transparent}.menuItems.isOpen::-webkit-scrollbar{width:5px}.menuItems.isOpen::-webkit-scrollbar-thumb{border-radius:999px;background:hsla(0,0%,100%,.3)}.menuItemsFade{position:absolute;left:16px;right:6px;bottom:0;height:22px;border-radius:0 0 10px 10px;background:linear-gradient(rgba(38,16,50,0),rgba(38,16,50,.8));opacity:0;pointer-events:none;transition:opacity .18s}.menuItemsFade.isVisible{opacity:1}.menuItem{min-height:38px;margin:2px 0;padding:8px 10px;display:flex;align-items:center;gap:9px;border-radius:10px;color:hsla(0,0%,100%,.7);text-decoration:none;font-size:12.5px;transition:.16s}.menuItem:hover{color:#fff;background:hsla(0,0%,100%,.09);padding-left:14px}.menuItem.isActive{color:var(--violet-950);background:linear-gradient(135deg,#fff,#f2e8f6);box-shadow:0 7px 18px rgba(0,0,0,.14);font-weight:750}.menuItemDot{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor;opacity:.65}.sidebarFooter{flex-shrink:0;min-height:74px;padding:13px 14px;display:flex;align-items:center;gap:10px;border-top:1px solid hsla(0,0%,100%,.12);background:rgba(0,0,0,.08)}.userAvatar{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:13px;color:var(--violet-950);background:var(--gold-300);font-weight:800}.userInfo{display:grid;grid-gap:2px;gap:2px}.userInfo strong{font-size:12px}.userInfo span{font-size:10px;color:hsla(0,0%,100%,.58)}.appSidebar.isCollapsed .brandText,.appSidebar.isCollapsed .menuChevron,.appSidebar.isCollapsed .menuGroupTitle,.appSidebar.isCollapsed .menuItems,.appSidebar.isCollapsed .menuItemsFade,.appSidebar.isCollapsed .sidebarSeason,.appSidebar.isCollapsed .userInfo{display:none}.appSidebar.isCollapsed .sidebarBrand{grid-template-columns:54px;justify-content:center}.appSidebar.isCollapsed .collapseButton{position:absolute;top:66px;right:7px;width:26px;height:26px}.appSidebar.isCollapsed .menuGroupButton{grid-template-columns:1fr;justify-items:center}.appSidebar.isCollapsed .sidebarFooter{justify-content:center}.appMain{flex:1 1;min-width:0}.pageContainer{width:100%;max-width:1680px;margin:0 auto;padding:30px}.mobileMenuButton,.mobileTopbar,.sidebarBackdrop{display:none}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}.header h2{margin:0;color:var(--violet-950);font-family:Georgia,serif;font-size:clamp(27px,3vw,38px)}.header p{margin:7px 0 0;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));grid-gap:15px;gap:15px;margin-bottom:18px}.card,.panel{margin-bottom:18px;padding:19px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm)}.card{background:linear-gradient(145deg,var(--surface),#fbf9fc)}.card h3,.panel h3{margin:0 0 10px;color:var(--violet-950)}.metric{font-size:34px;font-weight:800;color:var(--violet-700)}.form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:11px;gap:11px;margin-bottom:14px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;outline:none;color:var(--text);background:#fff;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--violet-500);box-shadow:0 0 0 3px rgba(117,64,150,.11)}textarea{resize:vertical}button{padding:10px 14px;border:0;border-radius:12px;color:#fff;background:var(--violet-700);cursor:pointer;font-weight:700}button.secondary{color:#2a180a;background:var(--gold-500)}button.danger{background:var(--danger)}button.small{padding:7px 10px;font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:8px}.notice{margin-bottom:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;color:var(--violet-950);background:var(--violet-50)}.sectionHead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.sectionHead h3,.sectionHead h4{margin:0 0 4px;color:var(--violet-950)}.sectionHead p{margin:0;color:var(--muted);font-size:13px}.miniGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;margin:14px 0}.miniGrid>div{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--violet-50)}.miniGrid span{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.miniGrid strong{display:block;margin-top:4px;color:var(--violet-950);font-size:16px}.wide{grid-column:1/-1}a.button{display:inline-flex;align-items:center;padding:10px 14px;border-radius:12px;color:#fff;background:var(--violet-700);font-weight:700;text-decoration:none}a.button:hover{filter:brightness(1.04)}.stageBadge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:750;white-space:nowrap}.stageBadge-ouvert,.stageBadge-paye{color:#1d7a4c;background:#e3f6ea}.stageBadge-complet,.stageBadge-en-cours{color:#9a6d1a;background:#fdf0d8}.stageBadge-annule{color:#b3261e;background:#fbe4e2}.stageBadge-a-payer,.stageBadge-termine{color:#5e2d7c;background:#f1e8f6}.stageBadge-brouillon{color:#766a7d;background:#efeaf1}.stageBadge-en-ligne{color:#1d7a4c;background:#e3f6ea}.stageBadge-archive{color:#5e2d7c;background:#f1e8f6}.stageBadge-source-admin{color:#34506b;background:#e3ecf6}.stageBadge-source-formulaire-public{color:#806115;background:#fbf0d9}.stageFormules{margin:14px 0;padding:12px;border:1px dashed var(--line);border-radius:14px;background:#fbf9fc}.stageFormulesLabel{margin:0 0 8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.stageFormuleRow{grid-template-columns:2fr 1fr .7fr auto auto auto;grid-gap:8px}.stageCoursRow,.stageFormuleRow{display:grid;gap:8px;align-items:center;margin-bottom:8px}.stageCoursRow{grid-template-columns:2fr 1fr 1fr 1fr auto auto auto;grid-gap:8px}.stageFormuleActif{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap;color:var(--violet-950)}.concoursRow{display:grid;grid-template-columns:2fr auto auto auto;grid-gap:8px;gap:8px;align-items:center;margin-bottom:8px}@media(max-width:780px){.concoursRow,.stageCoursRow,.stageFormuleRow{grid-template-columns:1fr}}.tableWrap{width:100%;overflow-x:auto;border-radius:14px}table{width:100%;border-collapse:collapse}td,th{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}th{color:var(--violet-950);background:var(--violet-50);font-weight:800}.search{max-width:440px;margin-bottom:12px}@media(max-width:1100px){:root{--sidebar-width:255px}.grid{grid-template-columns:repeat(2,minmax(170px,1fr))}.pageContainer{padding:23px}}@media(max-width:780px){.appShell{display:block}.appSidebar,.appSidebar.isCollapsed{position:fixed;inset:0 auto 0 0;width:min(88vw,310px);height:100vh;transform:translateX(-105%)}.appSidebar.isMobileOpen{transform:translateX(0)}.appSidebar.isCollapsed .brandText,.appSidebar.isCollapsed .menuChevron,.appSidebar.isCollapsed .menuGroupTitle,.appSidebar.isCollapsed .menuItems,.appSidebar.isCollapsed .menuItemsFade,.appSidebar.isCollapsed .sidebarSeason,.appSidebar.isCollapsed .userInfo{display:initial}.appSidebar.isCollapsed .sidebarBrand{grid-template-columns:54px 1fr 30px}.appSidebar.isCollapsed .collapseButton{position:static;width:30px;height:30px}.appSidebar.isCollapsed .menuGroupButton{grid-template-columns:30px 1fr 18px;justify-items:legacy}.mobileTopbar{min-height:67px;padding:10px 16px 10px 68px;border-bottom:1px solid var(--line);background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:-webkit-sticky;position:sticky;top:0;z-index:25}.mobileBrand,.mobileTopbar{display:flex;align-items:center}.mobileBrand{gap:9px}.mobileLogo{width:39px;height:39px;display:grid;place-items:center;border-radius:12px;color:var(--violet-950);background:linear-gradient(135deg,#f2dfb0,var(--gold-500));font-family:Georgia,serif;font-weight:800}.mobileBrand div{display:grid}.mobileBrand small{color:var(--muted);font-size:10px}.mobileMenuButton{position:fixed;top:15px;left:15px;z-index:55;width:40px;height:40px;padding:0;display:grid;place-items:center}.sidebarBackdrop{position:fixed;inset:0;z-index:35;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:rgba(25,12,34,.46);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.collapseButton{display:none}.pageContainer{padding:18px 14px 28px}.form,.grid{grid-template-columns:1fr}.header{display:block}.card,.panel{padding:15px;border-radius:17px}}a{color:inherit}.brandLogo{text-decoration:none}.mobileCloseButton{display:none}.sidebarSearch{flex-shrink:0;margin:3px 14px 9px;padding:9px 11px;display:flex;align-items:center;gap:8px;border:1px solid hsla(0,0%,100%,.13);border-radius:13px;color:hsla(0,0%,100%,.58);background:hsla(0,0%,100%,.08)}.sidebarSearch input{min-width:0;padding:0;border:0;border-radius:0;color:#fff;background:transparent;box-shadow:none;font-size:12px}.sidebarSearch input::placeholder{color:hsla(0,0%,100%,.52)}.sidebarSearch input:focus{border:0;box-shadow:none}.menuItemIcon{width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;border-radius:8px;background:hsla(0,0%,100%,.06)}.menuItem.isActive .menuItemIcon{background:rgba(94,45,124,.1)}.sidebarEmpty{padding:15px;color:hsla(0,0%,100%,.6);font-size:12px;text-align:center}.desktopTopbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;min-height:62px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(232,222,236,.9);background:rgba(247,244,249,.88);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbarBreadcrumb{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.topbarBreadcrumb b{color:#c8bdcc}.topbarBreadcrumb strong{color:var(--violet-950);font-size:13px}.topbarRight{display:flex;align-items:center}.topbarSeason,.topbarStatus{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:hsla(0,0%,100%,.7);color:var(--muted);font-size:11px;font-weight:700}.topbarStatus{display:flex;align-items:center;gap:7px}.topbarStatus i{width:7px;height:7px;border-radius:50%;background:#2ca56c;box-shadow:0 0 0 3px rgba(44,165,108,.12)}.appSidebar.isCollapsed .sidebarSearch{display:none}.appSidebar.isCollapsed .menuGroupIcon{background:hsla(0,0%,100%,.1)}.appSidebar.isCollapsed .menuGroupButton:hover .menuGroupIcon{background:hsla(0,0%,100%,.18)}.pageContainer>h1,.pageContainer>h2{color:var(--violet-950);font-family:Georgia,serif}.card,.panel{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover{border-color:#ddcee4;box-shadow:var(--shadow-md)}button:not(.menuGroupButton):not(.collapseButton):not(.mobileMenuButton):not(.sidebarBackdrop):not(.mobileCloseButton){transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}button:not(.menuGroupButton):not(.collapseButton):not(.mobileMenuButton):not(.sidebarBackdrop):not(.mobileCloseButton):hover{filter:brightness(1.04);box-shadow:0 7px 18px rgba(72,33,93,.16)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none!important;transform:none!important}.tableWrap{border:1px solid var(--line)}.tableWrap table tr:last-child td{border-bottom:0}tbody tr{transition:background .14s ease}tbody tr:hover{background:#fcfafd}label{color:var(--violet-950);font-weight:650}@media(max-width:1100px){.desktopTopbar{padding:0 23px}.topbarStatus{display:none}}@media(max-width:780px){.desktopTopbar{display:none}.mobileCloseButton{width:30px;height:30px;padding:0;display:grid;place-items:center;border:1px solid hsla(0,0%,100%,.16);border-radius:10px;color:#fff;background:hsla(0,0%,100%,.08)}.appSidebar.isCollapsed .sidebarSearch{display:flex}.topbarRight{display:none}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.finance-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:20px;gap:20px;margin:30px 0}.finance-card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 10px 30px rgba(0,0,0,.08);display:flex;flex-direction:column;gap:10px}.finance-card span{font-size:15px;color:#666}.finance-card strong{font-size:28px;color:#5d3fd3}.finance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:20px;gap:20px;margin-top:20px}.finance-box{background:#fff;padding:25px;border-radius:18px;text-decoration:none;color:#222;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:.2s}.finance-box:hover{transform:translateY(-4px);box-shadow:0 15px 40px rgba(93,63,211,.18)}.finance-box h2{margin-bottom:10px;font-size:22px}.finance-box p{color:#777}.authLoading{min-height:100vh;display:grid;place-content:center;text-align:center;grid-gap:14px;gap:14px;background:#f7f3f8;color:#432052}.authSpinner{width:38px;height:38px;border:4px solid #e7dbea;border-top-color:#5a2d82;border-radius:50%;animation:vmSpin .8s linear infinite;margin:auto}@keyframes vmSpin{to{transform:rotate(1turn)}}.loginPage{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f7f1f8,#eee5f1)}.loginCard{width:min(100%,460px);background:#fff;border:1px solid #e5dbe8;border-radius:24px;padding:32px;box-shadow:0 24px 70px rgba(70,35,82,.13)}.loginBrand{display:flex;align-items:center;gap:14px}.loginBrand>span{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#5a2d82;color:#fff;font-weight:800;font-size:20px}.loginBrand h1,.loginBrand p{margin:0}.loginBrand p{font-size:13px;color:#7f7184}.loginIntro{margin:32px 0 20px}.loginIntro h2{margin:0 0 6px;font-size:28px}.loginIntro p{margin:0;color:#746a78}.loginForm{display:grid;grid-gap:16px;gap:16px}.loginForm label{display:grid;grid-gap:7px;gap:7px;font-weight:700;font-size:14px}.loginForm input{height:46px;border:1px solid #d9cddd;border-radius:11px;padding:0 13px;font:inherit}.loginForm input:focus{outline:3px solid rgba(90,45,130,.12);border-color:#5a2d82}.loginForm button{height:46px;border:0;border-radius:11px;background:#5a2d82;color:#fff;font-weight:800;cursor:pointer}.loginForm button:disabled{opacity:.6}.loginForm .loginLink{height:auto;background:transparent;color:#5a2d82;padding:4px}.loginMessage{padding:11px 13px;border-radius:10px;background:#fff7dd;border:1px solid #ead79a;font-size:14px}.logoutButton{border:0;background:transparent;font-size:20px;cursor:pointer;color:inherit;padding:6px}.usersPage{display:grid;grid-gap:20px;gap:20px}.usersEyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;color:#6b4a7c}.usersPage h1{margin:5px 0}.usersPanel{background:#fff;border:1px solid #e6dce9;border-radius:16px;padding:20px}.usersPanel h2{margin-top:0}.usersForm{display:grid;grid-template-columns:1fr 1fr 190px auto;grid-gap:12px;gap:12px;align-items:end}.usersForm label{display:grid;grid-gap:6px;gap:6px;font-weight:700;font-size:13px}.usersForm input,.usersForm select,.usersTable select{height:42px;border:1px solid #d9cedd;border-radius:9px;padding:0 10px;background:#fff}.usersForm button,.usersPanelTitle button,.usersSecondary{height:42px;border:0;border-radius:9px;padding:0 15px;background:#5a2d82;color:#fff;font-weight:700;cursor:pointer}.usersMessage{margin-top:14px;padding:11px;border-radius:9px;background:#f5eff7}.usersPanelTitle{display:flex;justify-content:space-between;align-items:center}.usersTableWrap{overflow:auto}.usersTable{width:100%;border-collapse:collapse}.usersTable td,.usersTable th{text-align:left;padding:12px;border-bottom:1px solid #eee7f0}.usersTable td small{display:block;color:#786d7d;margin-top:3px}.usersSecondary{background:#eee6f1;color:#502866}@media(max-width:900px){.usersForm{grid-template-columns:1fr}.loginCard{padding:24px}.usersTable{min-width:700px}}.usersCreateForm{grid-template-columns:1fr 1fr 1fr 180px}.usersCreateForm .usersPermissionsField{grid-column:1/-1}.usersPermissionsField{display:grid;grid-gap:9px;gap:9px}.permissionGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:9px;gap:9px}.permissionCheck{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px!important;padding:10px 11px;border:1px solid #e2d8e5;border-radius:10px;background:#fbf8fc;font-size:13px!important;font-weight:600!important}.permissionCheck input{width:17px;height:17px;min-height:0;margin:0;accent-color:#5a2d82}.usersCards{grid-template-columns:repeat(2,minmax(0,1fr))}.userAccessCard,.usersCards{display:grid;grid-gap:14px;gap:14px}.userAccessCard{border:1px solid #e5dbe8;border-radius:14px;padding:16px;background:#fff}.userAccessCard.isInactive{background:#faf8fa;opacity:.82}.userAccessActions,.userAccessControls,.userAccessHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.userAccessHeader small{display:block;margin-top:4px;color:#786d7d}.userStatus{padding:5px 9px;border-radius:999px;background:#eee8ef;color:#6c6070;font-size:12px;font-weight:800}.userStatus.isActive{background:#e7f6ec;color:#287543}.userAccessControls label{display:grid;grid-gap:5px;gap:5px;font-size:12px;font-weight:800}.userAccessControls select{height:38px;border:1px solid #d9cedd;border-radius:9px;padding:0 10px;background:#fff}.userRoleHelp{font-size:12px;color:#7d7181}.userPermissionList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.userAccessActions{justify-content:flex-end;flex-wrap:wrap}.authLoading button{border:0;border-radius:10px;padding:11px 15px;background:#5a2d82;color:#fff;font-weight:800;cursor:pointer}@media(max-width:1100px){.usersCards{grid-template-columns:1fr}.permissionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.permissionGrid,.userPermissionList,.usersCreateForm{grid-template-columns:1fr}.userAccessControls,.userAccessHeader{align-items:flex-start;flex-direction:column}.userAccessActions{justify-content:stretch}.userAccessActions button{width:100%}}.moduleHero{padding:22px 30px 0;background:var(--bg)}.moduleHeroMain{position:relative;overflow:hidden;min-height:190px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:26px;border-radius:25px;color:#fff;background:radial-gradient(circle at 88% 15%,hsla(41,58%,72%,.31),transparent 28%),linear-gradient(132deg,var(--violet-950),var(--violet-800) 58%,var(--violet-700));box-shadow:0 18px 44px rgba(47,23,60,.15)}.moduleHeroMain:after{content:"";position:absolute;right:-72px;bottom:-120px;width:285px;height:285px;border:1px solid hsla(0,0%,100%,.12);border-radius:50%;box-shadow:0 0 0 34px hsla(0,0%,100%,.035),0 0 0 76px hsla(0,0%,100%,.022)}.moduleHeroCopy{position:relative;z-index:1;min-width:0;max-width:760px}.moduleHeroEyebrow{display:block;margin-bottom:7px;color:var(--gold-300);font-size:10px;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.moduleHero h1{margin:0 0 7px;color:#fff;font-family:Georgia,serif;font-size:clamp(31px,3.6vw,44px);line-height:1.08}.moduleHero p{max-width:680px;margin:0;color:hsla(0,0%,100%,.76);font-size:13px;line-height:1.55}.moduleHeroLinks{margin-top:18px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.moduleHeroLinks a{padding:8px 11px;border:1px solid hsla(0,0%,100%,.16);border-radius:10px;color:#fff;background:hsla(0,0%,100%,.075);font-size:11px;font-weight:800;text-decoration:none;transition:transform .15s ease,background .15s ease}.moduleHeroLinks a:hover{transform:translateY(-2px);background:hsla(0,0%,100%,.14)}.moduleHeroLinks .moduleHeroHome{border-color:hsla(43,73%,84%,.5);color:var(--violet-950);background:linear-gradient(135deg,#f4e3b8,var(--gold-500))}.moduleHeroProfile{position:relative;z-index:1;min-width:225px;padding:16px;display:flex;align-items:center;gap:12px;border:1px solid hsla(0,0%,100%,.17);border-radius:17px;background:hsla(0,0%,100%,.085);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.moduleHeroAvatar{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:15px;color:var(--violet-950);background:linear-gradient(135deg,#f4e3b8,var(--gold-500));font-size:15px;font-weight:900}.moduleHeroProfile>div{display:grid;grid-gap:2px;gap:2px;min-width:0}.moduleHeroProfile strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.moduleHeroProfile span:not(.moduleHeroAvatar){color:var(--gold-300);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.moduleHeroProfile small{color:hsla(0,0%,100%,.6);font-size:9px}.moduleHero+.pageContainer{padding-top:18px}.moduleHero+.pageContainer>.header,.moduleHero+.pageContainer>div>.header{display:none}.directionHeroProfile{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.08),0 12px 28px rgba(26,10,36,.13)}.directionHeroProfile:before{content:"Espace sécurisé";position:absolute;top:-9px;right:12px;padding:4px 8px;border-radius:999px;color:var(--violet-950);background:linear-gradient(135deg,#f4e3b8,var(--gold-500));font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.directionHeroActions a{min-width:145px;text-align:center}.directionHeroHighlights span{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.08)}@media(max-width:900px){.moduleHero{padding:16px 18px 0}.moduleHeroMain{align-items:flex-start;flex-direction:column;min-height:auto;padding:24px}.moduleHeroProfile{width:100%;min-width:0}}@media(max-width:620px){.moduleHero{padding:12px 12px 0}.moduleHeroMain{padding:22px 18px;border-radius:21px}.moduleHero h1{font-size:31px}.moduleHeroLinks{display:grid;grid-template-columns:1fr 1fr;width:100%}.moduleHeroLinks a{text-align:center}.moduleHeroLinks .moduleHeroHome{grid-column:1/-1}.moduleHeroProfile{padding:13px}.moduleHero+.pageContainer{padding-top:14px}}.userCredentialsEditor{display:grid;grid-gap:10px;gap:10px;padding:14px;border:1px solid #e5dbe8;border-radius:13px;background:linear-gradient(180deg,#fcf9fd,#f8f3fa)}.userCredentialsEditor>strong{font-size:13px;color:#4b245e}.userCredentialsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.userCredentialsGrid label{display:grid;grid-gap:7px;gap:7px;font-size:12px;font-weight:800}.userCredentialsGrid input{width:100%;height:42px;border:1px solid #d9cedd;border-radius:9px;padding:0 10px;background:#fff;font:inherit}.userCredentialsGrid input:focus{outline:3px solid rgba(90,45,130,.11);border-color:#6b3b88}.userCredentialsGrid button{width:max-content;max-width:100%}@media(max-width:700px){.userCredentialsGrid{grid-template-columns:1fr}.userCredentialsGrid button{width:100%}}:root{--radius-xl:26px;--radius-lg:20px;--radius-md:14px;--gold-soft:#f7edcf;--success:#238a57;--warning:#b66b13}.pageContainer{padding-top:22px;padding-bottom:46px}.pageContainer>*,.pageContainer>div>*{animation:vmFadeIn .28s ease both}@keyframes vmFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.card,.panel{position:relative;overflow:hidden;border-color:rgba(94,45,124,.12);box-shadow:0 10px 30px rgba(47,23,60,.075)}.card:before,.panel:before{content:"";position:absolute;left:18px;top:0;width:44px;height:3px;border-radius:0 0 999px 999px;background:linear-gradient(90deg,var(--violet-700),var(--gold-300))}.card h2,.card h3,.panel h2,.panel h3{font-family:Georgia,serif;letter-spacing:-.01em}.panel h2{margin-top:0;color:var(--violet-950)}.card>p:first-of-type,.panel>p:first-of-type{color:var(--muted)}.form{padding:18px;border:1px solid rgba(94,45,124,.1);border-radius:18px;background:linear-gradient(145deg,#fff,#fbf8fc)}.form label,.panel label{color:#4b3b51;font-size:12px;font-weight:800}input,select,textarea{transition:border-color .16s,box-shadow .16s,transform .16s;background:linear-gradient(180deg,#fff,#fdfbfd)}input:hover,select:hover,textarea:hover{border-color:#d7c6dd}button{box-shadow:0 7px 16px rgba(75,32,98,.13);transition:transform .15s,box-shadow .15s,filter .15s}button:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(75,32,98,.18);filter:saturate(1.05)}button:active{transform:translateY(0)}button.secondary{background:linear-gradient(135deg,#f1deb0,var(--gold-500))}.actions{align-items:center}.notice{border-color:rgba(94,45,124,.13);background:linear-gradient(135deg,#fbf7fc,#f4edf7);box-shadow:inset 4px 0 0 var(--gold-300)}.tableWrap{border:1px solid rgba(94,45,124,.11);box-shadow:0 8px 24px rgba(47,23,60,.05)}.tableWrap,table{background:#fff}th{padding-top:13px;padding-bottom:13px;color:#4b245e;background:linear-gradient(180deg,#fbf7fc,#f5eef8);font-size:11px;letter-spacing:.055em;text-transform:uppercase}td{transition:background .14s}tbody tr:hover td{background:#fcf9fd}.metric{font-family:Georgia,serif;letter-spacing:-.02em}.search{position:relative}.search input{padding-left:42px}.search:before{content:"⌕";position:absolute;left:14px;top:50%;z-index:1;transform:translateY(-54%);color:var(--violet-500);font-size:22px;pointer-events:none}.grid>.card{min-height:132px;display:flex;flex-direction:column;justify-content:center}.grid>.card .metric{margin-top:3px}.header{padding:22px 24px;border:1px solid rgba(94,45,124,.11);border-radius:20px;background:linear-gradient(135deg,#fff,#faf6fb);box-shadow:var(--shadow-sm)}.header h2{font-size:clamp(25px,3vw,34px)}.desktopTopbar{box-shadow:0 1px 0 rgba(67,32,82,.08);background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbarSeason,.topbarStatus{box-shadow:0 4px 14px rgba(47,23,60,.05)}.moduleHeroMain{box-shadow:0 22px 55px rgba(47,23,60,.18)}.moduleHeroMain:before{content:"VM";position:absolute;right:72px;top:18px;color:hsla(0,0%,100%,.025);font-family:Georgia,serif;font-size:150px;font-weight:900;line-height:1}.moduleHeroLinks a{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.12)}.moduleHeroProfile{box-shadow:0 14px 32px rgba(24,8,34,.14),inset 0 1px 0 hsla(0,0%,100%,.1)}.gmailCard,.userAccessCard,.usersPanel,.usersPanelTitle{border-color:rgba(94,45,124,.12)!important;border-radius:20px!important;box-shadow:0 10px 28px rgba(47,23,60,.07)}.userAccessCard{background:linear-gradient(145deg,#fff,#fbf8fc)}.permissionCheck{transition:.15s}.permissionCheck:hover{border-color:#cdb7d6;background:#f8f1fa}@media(max-width:780px){.pageContainer{padding:16px 12px 34px}.card,.panel{border-radius:18px}.form{grid-template-columns:1fr;padding:14px}.grid{grid-template-columns:1fr 1fr;gap:10px}.grid>.card{min-height:112px;padding:15px}.metric{font-size:27px}.tableWrap{border-radius:14px}.moduleHeroMain:before{right:-15px;top:34px;font-size:112px}}@media(max-width:480px){.grid{grid-template-columns:1fr}.grid>.card{min-height:auto}.moduleHeroLinks{grid-template-columns:1fr}.moduleHeroLinks .moduleHeroHome{grid-column:auto}}.premiumModuleHome{display:grid;grid-gap:18px;gap:18px;margin-bottom:24px}.premiumModuleIntro{position:relative;overflow:hidden;min-height:150px;padding:25px 27px;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(94,45,124,.12);border-radius:24px;background:linear-gradient(135deg,#fff,#faf5fb);box-shadow:0 14px 36px rgba(47,23,60,.075)}.premiumModuleIntro>div:first-child{position:relative;z-index:1;max-width:720px}.premiumModuleIntro span,.premiumShortcutHeader span{display:block;margin-bottom:6px;color:#9a7433;font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.premiumModuleIntro h2{margin:0 0 7px;color:var(--violet-950);font-family:Georgia,serif;font-size:clamp(25px,3vw,35px)}.premiumModuleIntro p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.premiumLineArt{position:relative;width:145px;height:95px;flex:0 0 145px;opacity:.72}.premiumLineArt i{position:absolute;border:1.5px solid #c9a75d;border-radius:50%;transform:rotate(-24deg)}.premiumLineArt i:first-child{inset:8px 15px 24px 5px}.premiumLineArt i:nth-child(2){inset:24px 2px 8px 28px}.premiumLineArt i:nth-child(3){width:48px;height:48px;right:42px;top:23px;background:radial-gradient(circle,rgba(201,167,93,.08),transparent 66%)}.premiumMetricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:13px;gap:13px}.premiumMetricCard{position:relative;overflow:hidden;min-height:116px;padding:18px;border:1px solid rgba(94,45,124,.11);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(47,23,60,.06)}.premiumMetricCard:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,var(--violet-700),var(--gold-300))}.premiumMetricCard small{display:block;color:#796b7d;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.premiumMetricCard strong{display:block;margin-top:8px;color:var(--violet-950);font-family:Georgia,serif;font-size:26px}.premiumMetricCard p{margin:5px 0 0;color:var(--muted);font-size:11px}.premiumShortcutHeader{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:4px 3px}.premiumShortcutHeader h3{margin:0;color:var(--violet-950);font-family:Georgia,serif;font-size:21px}.premiumShortcutHeader p{max-width:430px;margin:0;color:var(--muted);font-size:11px;text-align:right}.premiumShortcutGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:13px;gap:13px}.premiumShortcutCard{min-height:104px;padding:16px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;grid-gap:12px;gap:12px;border:1px solid rgba(94,45,124,.11);border-radius:18px;color:inherit;background:linear-gradient(145deg,#fff,#fbf8fc);box-shadow:0 9px 25px rgba(47,23,60,.055);text-decoration:none;transition:.18s}.premiumShortcutCard:hover{transform:translateY(-3px);border-color:rgba(154,116,51,.35);box-shadow:0 15px 32px rgba(47,23,60,.1)}.premiumShortcutCard>b{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#f6e8bd,#d6b66d);font-size:19px}.premiumShortcutCard strong{display:block;color:var(--violet-950);font-size:13px}.premiumShortcutCard p{margin:4px 0 0;color:var(--muted);font-size:10.5px;line-height:1.4}.premiumShortcutCard>span{color:#9a7433;font-size:20px}@media(max-width:1000px){.premiumMetricGrid,.premiumShortcutGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.premiumModuleIntro{min-height:auto;padding:21px}.premiumLineArt{position:absolute;right:-30px;opacity:.25}.premiumMetricGrid,.premiumShortcutGrid{grid-template-columns:1fr 1fr}.premiumShortcutHeader{align-items:flex-start;flex-direction:column}.premiumShortcutHeader p{text-align:left}.premiumShortcutCard{grid-template-columns:38px 1fr auto;padding:13px}.premiumShortcutCard>b{width:38px;height:38px}}@media(max-width:460px){.premiumMetricGrid,.premiumShortcutGrid{grid-template-columns:1fr}.premiumMetricCard{min-height:96px}}.notificationsCenter{position:relative}.notificationsBell{position:relative;width:42px;height:42px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid #e9e1eb;border-radius:14px;background:#fff;cursor:pointer;font-size:18px;line-height:1}.notificationsBell>span{display:block}.notificationsBell b{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#a93255;color:#fff;font-size:11px;display:grid;place-items:center}.notificationsPanel{position:absolute;right:0;top:50px;width:min(390px,calc(100vw - 28px));max-height:560px;background:#fff;border:1px solid #e8dfea;border-radius:20px;box-shadow:0 22px 70px rgba(44,15,53,.22);z-index:1000;overflow:hidden}.notificationsHeader{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid #eee8ef}.notificationsHeader div{display:grid}.notificationsHeader small{color:#786d7b}.notificationsEnable,.notificationsHeader button{border:0;background:none;color:#692b77;cursor:pointer}.notificationsEnable{width:calc(100% - 28px);margin:14px;padding:12px;border-radius:12px;background:#f5eef7}.notificationsPermission{padding:0 16px;color:#8b5361}.notificationsList{max-height:390px;overflow:auto}.notificationItem{display:flex;gap:12px;padding:15px 18px;text-decoration:none;color:inherit;border-bottom:1px solid #f1edf2}.notificationItem:hover{background:#faf7fb}.notificationItem p{margin:4px 0;font-size:13px}.notificationItem small{color:#817583}.notificationIcon{width:34px;height:34px;border-radius:12px;background:#f4e8c7;display:grid;place-items:center}.notificationsEmpty{text-align:center;padding:38px 20px;color:#817583}.notificationsFooter{display:block;padding:14px 18px;text-decoration:none;color:#642872;font-weight:700;background:#faf7fb}.topbarRight{gap:10px}@media(max-width:760px){.pageContainer{padding-left:14px!important;padding-right:14px!important}.desktopTopbar{padding-left:64px!important}.topbarSeason{display:none}.topbarStatus{font-size:0}.topbarStatus i{margin:0}.mobileTopbar{min-height:64px}.appMain{min-width:0}.notificationsPanel{position:fixed;top:72px;right:14px}.desktopTopbar{display:flex!important}.desktopTopbar .topbarBreadcrumb{display:none}.desktopTopbar .topbarRight{margin-left:auto}.pageContainer a,.pageContainer button{min-height:42px}}.sidebarNavFlat{padding-top:4px}.pageHeaderLinks{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px}.pageHeaderLinks a{color:var(--violet-700);font-size:12.5px;font-weight:700;text-decoration:none}.pageHeaderLinks a:hover{text-decoration:underline}.pageHeaderAction{flex:0 0 auto}@media(min-width:781px){.card,.panel{padding:22px;margin-bottom:20px}.pageContainer{padding:34px}}.staffBottomNav{display:none}@media(max-width:780px){.mobileMenuButton{display:none}.staffBottomNav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(4,1fr);padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:hsla(0,0%,100%,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line);transform:translateZ(0);will-change:transform}.staffBottomNav a,.staffBottomNav button{display:grid;justify-items:center;grid-gap:2px;gap:2px;min-height:52px;padding:6px 2px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:10px;font-weight:700}.staffBottomNav a.isActive,.staffBottomNav button.isActive{color:var(--violet-700);background:var(--violet-50)}.pageContainerWithBottomNav{padding-bottom:calc(78px + env(safe-area-inset-bottom))}}.sheetOverlay{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:12px;background:rgba(24,12,32,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheetPanel{width:min(720px,100%);max-height:min(90vh,90dvh);display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.25)}.sheetHeader{flex:0 0 auto;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.sheetHeader h2{margin:0;font-size:18px;color:var(--violet-950)}.sheetHeader button{width:34px;height:34px;padding:0;border-radius:50%;background:var(--violet-50);color:var(--violet-700);font-size:20px}.sheetBody{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px}.sheetFooter{flex:0 0 auto;padding:14px 20px max(14px,env(safe-area-inset-bottom));display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line)}@media(min-width:800px){.sheetOverlay{align-items:center}}.menuGroupButton{display:flex;align-items:center;gap:2px}.menuGroupLink{flex:1 1;min-width:0;display:flex;align-items:center;gap:9px;padding:8px;border-radius:10px;color:hsla(0,0%,100%,.88);text-decoration:none;font-size:13px;font-weight:750}.menuGroupLink:hover{background:hsla(0,0%,100%,.08)}.menuGroupLink.isActive{color:var(--violet-950);background:linear-gradient(135deg,#fff,#f2e8f6);box-shadow:0 7px 18px rgba(0,0,0,.14)}.menuChevronButton{flex:0 0 auto;width:28px;height:28px;padding:0;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:hsla(0,0%,100%,.6)}.menuChevronButton:hover{background:hsla(0,0%,100%,.12);color:#fff}.menuItems .menuItem{padding-left:10px;font-size:12px}.passwordFieldWrap{position:relative;display:block;width:100%}.passwordFieldWrap input{width:100%;padding-right:40px!important;box-sizing:border-box}.passwordFieldToggle{position:absolute;top:50%;right:4px;transform:translateY(-50%);width:32px;height:32px;padding:0;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#8a7e8f;cursor:pointer}.passwordFieldToggle:focus-visible,.passwordFieldToggle:hover{background:rgba(83,54,94,.08);color:#4b2a58}.passwordFieldToggle:focus-visible{outline:2px solid #6d397e;outline-offset:1px}.horairePlage{display:inline-block;white-space:nowrap}.vacancesBanner{margin-bottom:16px;padding:16px 18px;border:1px solid rgba(94,45,124,.16);border-radius:16px;background:linear-gradient(135deg,#f1e8f5,#faf5fc);color:var(--violet-950);display:grid;grid-gap:3px;gap:3px}.vacancesBanner strong{font-family:Georgia,serif;font-size:17px}.vacancesBanner span{color:var(--muted);font-size:13px}.vacancesBannerSimple{padding:12px 14px;font-size:13px;font-weight:750;display:block}.appSidebar.isProfessor{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;min-height:0}.appSidebar.isProfessor .sidebarNav{flex:1 1;height:0;min-height:0;overflow-y:auto}.familyApp{--family-ink:#241d29;--family-muted:#746d78;--family-card:#fff;--family-tint:#f6f1f7;min-height:100vh;min-height:100dvh;color:var(--family-ink);background:linear-gradient(180deg,#fbf8fc,#f5f0f6)}.familyTopbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;min-height:68px;padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));justify-content:space-between;gap:14px;border-bottom:1px solid rgba(83,54,94,.09);background:rgba(251,248,252,.9);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.familyBrand,.familyTopbar{display:flex;align-items:center}.familyBrand{gap:9px;color:var(--family-ink);text-decoration:none}.familyBrand span{width:37px;height:37px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#6d397e,#4d245e);font-family:Georgia,serif;font-size:13px;font-weight:900}.familyBrand strong{font-size:14px}.familyStudentName{font-size:14px;font-weight:800}.familyStudentPicker{display:flex;align-items:center;gap:7px}.familyStudentPicker>span{color:var(--family-muted);font-size:11px}.familyStudentPicker select{width:auto;min-width:105px;padding:8px 31px 8px 11px;border-radius:12px;font-weight:800}.familyTopbarActions{display:flex;align-items:center;gap:7px}.familyTopbarActions .notificationsBell{width:38px;height:38px}.familyContent{width:min(100%,760px);min-height:calc(100dvh - 150px);margin:0 auto;padding:22px max(16px,env(safe-area-inset-right)) calc(96px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.familyContent>.header,.familyContent>.moduleHero{display:none}.familyContent .card,.familyContent .panel{overflow:visible;border:1px solid rgba(83,54,94,.1);border-radius:22px;box-shadow:0 10px 32px rgba(48,30,54,.06)}.familyBottomNav{position:fixed;z-index:40;left:50%;bottom:0;width:min(100%,760px);min-height:66px;padding:7px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,1fr);transform:translateX(-50%);border-top:1px solid rgba(83,54,94,.1);background:hsla(0,0%,100%,.94);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.familyBottomNav a{min-height:48px;display:grid;place-items:center;align-content:center;grid-gap:2px;gap:2px;border-radius:13px;color:#817687;text-decoration:none}.familyBottomNav a>span{position:relative;font-size:21px;line-height:1}.familyBottomNav small{font-size:10px;font-weight:750}.familyBottomNav a.active{color:#5e2d7c;background:#f3ebf6}.familyNavBadge{position:absolute;top:-6px;right:-11px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;border-radius:99px;background:#c0392b;color:#fff;font-size:10px;font-weight:800;line-height:1}.familyState{min-height:55vh;display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;text-align:center}.familyState p{margin:0;color:var(--family-muted)}.familySkeletonPage{display:grid;grid-gap:16px;gap:16px}.familySkeletonPage i{height:132px;border-radius:24px;background:linear-gradient(100deg,#eee8f0 20%,#faf7fb 40%,#eee8f0 60%);background-size:220% 100%;animation:familyShimmer 1.2s infinite}@keyframes familyShimmer{to{background-position:-220% 0}}@media(min-width:800px){.familyApp{padding:20px 0}.familyTopbar{width:min(100%,760px);margin:auto;border:1px solid rgba(83,54,94,.09);border-radius:22px 22px 0 0}.familyContent{background:hsla(0,0%,100%,.34)}.familyBottomNav{bottom:18px;border:1px solid rgba(83,54,94,.12);border-radius:22px;box-shadow:0 18px 50px rgba(43,25,50,.15)}}.familyApp{width:100%;max-width:100%;overflow-x:clip}.familyApp *{min-width:0}.familyApp canvas,.familyApp embed,.familyApp iframe,.familyApp img,.familyApp object,.familyApp video{max-width:100%}.familyApp :where(h1,h2,h3,h4,p,strong,small,span,a,button,label){overflow-wrap:anywhere}.familyTopbar{width:100%;max-width:760px;margin-inline:auto}.familyBrand{flex:0 1 auto}.familyBrand span{flex:0 0 37px}.familyBrand strong{white-space:nowrap}.familyTopbarActions{min-width:0;flex:0 1 auto}.familyStudentPicker{min-width:0}.familyStudentPicker select{min-width:0;max-width:150px;text-overflow:ellipsis}.familyContent{width:100%;max-width:760px}.familyContent .card,.familyContent .panel,.familyContent>*{max-width:100%}.familyContent :where(input,select,textarea){max-width:100%}.familyApp input[type=checkbox],.familyApp input[type=radio]{width:20px;min-width:20px;height:20px;padding:0;flex:0 0 20px}.familyContent :where(button,a){touch-action:manipulation}.familyBottomNav{max-width:760px}.familyBottomNav a{min-width:0}.familyAppVersion{display:block;margin:24px 0 4px;color:#9b919e;font-size:9px;text-align:center;letter-spacing:.04em}@media(max-width:799px){.familyApp :where(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px}.familyContent :where(button,a.button){min-height:44px}}@media(max-width:430px){.familyTopbar{gap:8px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.familyTopbarActions{gap:5px}.familyStudentPicker>span{display:none}.familyStudentPicker select{max-width:128px;padding-left:9px;padding-right:27px}.familyContent{padding-top:17px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}@media(max-width:350px){.familyBrand strong{display:none}.familyStudentPicker select{max-width:142px}.familyBottomNav{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}.familyBottomNav small{font-size:9px}}.installPrompt{position:fixed;z-index:45;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));width:min(calc(100% - 24px),420px);transform:translateX(-50%);display:flex;gap:12px;padding:16px;border:1px solid rgba(83,54,94,.12);border-radius:20px;background:hsla(0,0%,100%,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 18px 44px rgba(43,25,50,.18)}.installPromptIcon{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(145deg,#6d397e,#4d245e);font-family:Georgia,serif;font-size:14px;font-weight:900}.installPromptBody{flex:1 1;min-width:0;display:grid;grid-gap:6px;gap:6px}.installPromptBody strong{font-size:14px;color:var(--family-ink)}.installPromptBody p{margin:0;font-size:12.5px;color:var(--family-muted);line-height:1.4}.installPromptSteps{margin:2px 0 0;padding-left:18px;display:grid;grid-gap:4px;gap:4px;font-size:12.5px;color:var(--family-ink)}.installPromptSteps li{display:flex;align-items:center;gap:6px}.installPromptSteps svg{flex:0 0 auto;color:#6d397e}.installPromptActions{margin-top:2px}.installPromptActions button{padding:9px 14px;border:0;border-radius:11px;color:#fff;background:linear-gradient(145deg,#6d397e,#4d245e);font-size:13px;font-weight:800;cursor:pointer}.installPromptLater{justify-self:start;margin-top:2px;padding:0;border:0;background:none;color:var(--family-muted);font-size:12px;font-weight:700;text-decoration:underline;cursor:pointer}.installPromptClose{position:absolute;top:8px;right:10px;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:rgba(83,54,94,.08);color:var(--family-ink);font-size:16px;line-height:1;cursor:pointer}@media(min-width:800px){.installPrompt{bottom:calc(96px + env(safe-area-inset-bottom))}}