:root{color:var(--color-text-primary);background:var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-primary:#176b45;--color-primary-action:#2e9d50;--color-primary-dark:#244637;--color-surface:#fff;--color-surface-secondary:#f1f7f3;--color-primary-soft:#e6f5eb;--color-background:#fff;--pointage-status-height:48px;--font-size-navigation:12px;--font-size-navigation-bottom:13px;--color-text-primary:#263238;--color-text-secondary:#59656b;--color-border:#d9e3dc;--color-white:var(--color-surface);--color-ink:var(--color-text-primary);--color-muted:var(--color-text-secondary);--color-line:var(--color-border);--color-paper:var(--color-white);--color-page:var(--color-background);--color-disabled:#9ca3af;--color-present-background:#ddf8e7;--color-present-text:#237b4b;--color-present-border:#92e6b5;--color-absent-background:#fbe3e5;--color-absent-text:#a52730;--color-absent-border:#eba0a8;--color-pending-background:#fef3c7;--color-pending-text:#92400e;--color-pending-border:#fcd34d;--color-ticket-background:var(--color-pending-background);--color-ticket-text:#9f6007;--color-ticket-border:var(--color-pending-border);--color-action-background:#eef8f1;--color-action-text:var(--color-primary-action);--color-action-border:#bfe3c9;--color-action-hover:#e0f2e5;--color-secondary-background:var(--color-surface-secondary);--color-secondary-text:#475d4d;--color-secondary-border:#cbddd0;--color-stage-background:#f3e5fc;--color-stage-text:#8638ab;--color-stage-border:#d9a9ee;--color-sortie-background:#cff8f3;--color-sortie-text:#20766f;--color-sortie-border:#7fe2d4;--color-motif-background:#fce7f3;--color-motif-text:#a32564;--color-motif-border:#e9a2c8;--color-refus-background:#fbe9df;--color-refus-text:#974323;--color-refus-border:#efb892;--color-management-background:#fff7ed;--color-management-text:#c2410c;--color-management-border:#fdba74;--color-management-hover:#ffedd5;--color-navigation-background:var(--color-primary);--color-navigation-text:var(--color-white);--color-navigation-hover:#bdebcb;--color-service-exceptional:#c2185b;--color-service-exceptional-choice:#750d3b;--color-shadow:#26323812;font-family:Trebuchet MS,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}html{scrollbar-gutter:stable}body{background:var(--color-page);min-height:100dvh;color:var(--color-ink)}button,input{font:inherit}button{border:1px solid var(--color-line);background:var(--color-paper);min-height:44px;color:var(--color-ink);cursor:pointer;border-radius:8px;padding:8px 12px;font-weight:700;transition:background-color .12s,border-color .12s,color .12s}button:disabled{cursor:not-allowed;opacity:.58}button[aria-busy=true]{cursor:progress}button[aria-pressed=true]{text-decoration:none}input,select,textarea{accent-color:var(--color-primary)}.business-action{border-color:var(--business-border);background:var(--business-background);color:var(--business-text)}.business-action--present{--business-background:var(--color-present-background);--business-text:var(--color-present-text);--business-border:var(--color-present-border)}.passage-button--present.business-action--present{--business-background:#dcfce7;--business-text:#15803d;--business-border:#86efac}.business-action--absent{--business-background:var(--color-absent-background);--business-text:var(--color-absent-text);--business-border:var(--color-absent-border)}.passage-button--absent.business-action--absent{--business-background:#fee2e2;--business-text:#b91c1c;--business-border:#fca5a5}.business-action--primary{--business-background:var(--color-primary-action);--business-text:var(--color-navigation-text);--business-border:var(--color-primary-action)}.business-action--secondary{--business-background:var(--color-secondary-background);--business-text:var(--color-secondary-text);--business-border:var(--color-secondary-border)}.business-action--stage{--business-background:var(--color-stage-background);--business-text:var(--color-stage-text);--business-border:var(--color-stage-border)}.business-action--sortie{--business-background:var(--color-sortie-background);--business-text:var(--color-sortie-text);--business-border:var(--color-sortie-border)}.business-action--motif{--business-background:var(--color-motif-background);--business-text:var(--color-motif-text);--business-border:var(--color-motif-border)}.business-action--ticket{--business-background:var(--color-ticket-background);--business-text:var(--color-ticket-text);--business-border:var(--color-ticket-border)}.business-action--refus{--business-background:var(--color-refus-background);--business-text:var(--color-refus-text);--business-border:var(--color-refus-border)}.business-action--management{--business-background:var(--color-management-background);--business-text:var(--color-management-text);--business-border:var(--color-management-border)}.business-action--management:hover:not(:disabled){background:var(--color-management-hover)}.view-control{border-color:var(--view-border);background:var(--view-background);color:var(--view-text)}.view-control--blue{--view-background:var(--color-action-background);--view-text:var(--color-action-text);--view-border:var(--color-action-border)}.view-control--present{--view-background:var(--color-present-background);--view-text:var(--color-present-text);--view-border:var(--color-present-border)}.view-control--absent{--view-background:var(--color-absent-background);--view-text:var(--color-absent-text);--view-border:var(--color-absent-border)}.view-control--secondary{--view-background:var(--color-secondary-background);--view-text:var(--color-secondary-text);--view-border:var(--color-secondary-border)}.view-control--stage{--view-background:var(--color-stage-background);--view-text:var(--color-stage-text);--view-border:var(--color-stage-border)}.view-control--sortie{--view-background:var(--color-sortie-background);--view-text:var(--color-sortie-text);--view-border:var(--color-sortie-border)}.view-control--motif{--view-background:var(--color-motif-background);--view-text:var(--color-motif-text);--view-border:var(--color-motif-border)}.view-control--refus{--view-background:var(--color-refus-background);--view-text:var(--color-refus-text);--view-border:var(--color-refus-border)}.view-control--ticket{--view-background:var(--color-ticket-background);--view-text:var(--color-ticket-text);--view-border:var(--color-ticket-border)}.summary-counter.view-control{box-shadow:inset 0 0 0 1px var(--view-border)}.information-state{background:var(--color-white);box-shadow:inset 0 0 0 1px var(--information-border);color:var(--information-text)}.information-state--present{--information-text:var(--color-present-text);--information-border:var(--color-present-border)}.information-state--absent{--information-text:var(--color-absent-text);--information-border:var(--color-absent-border)}.information-state--pending{--information-text:var(--color-pending-text);--information-border:var(--color-pending-border)}.information-state--ticket{--information-text:var(--color-ticket-text);--information-border:var(--color-ticket-border)}.information-state--secondary{--information-text:var(--color-text-primary);--information-border:var(--color-border)}.information-state--stage{--information-text:var(--color-stage-text);--information-border:var(--color-stage-border)}.information-state--sortie{--information-text:var(--color-sortie-text);--information-border:var(--color-sortie-border)}.information-state--motif{--information-text:var(--color-motif-text);--information-border:var(--color-motif-border)}.information-state--refus{--information-text:var(--color-refus-text);--information-border:var(--color-refus-border)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 2px var(--color-white)}.app-shell{width:min(100%,960px);min-height:100dvh;padding:5px 10px calc(54px + env(safe-area-inset-bottom));margin:0 auto}.app-header{z-index:30;border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;padding:1px 0 5px;display:flex;position:relative}.app-brand{min-width:0}.app-brand h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;line-height:1.1;overflow:hidden}.organization-meta{color:var(--color-muted);flex-wrap:wrap;gap:3px;margin:2px 0 0;font-size:9px;line-height:1.1;display:flex}.logout-button{min-height:30px;color:var(--color-muted);font-size:var(--font-size-navigation);background:0 0;border-color:#0000;flex:none;padding:3px 6px}.app-header-actions{flex:none;align-items:center;gap:5px;display:flex}.secondary-menu-toggle{border-color:var(--color-secondary-border);background:var(--color-secondary-background);min-height:30px;color:var(--color-secondary-text);font-size:var(--font-size-navigation);border-radius:6px;padding:3px 8px}.secondary-menu{border:1px solid var(--color-line);background:var(--color-white);min-width:160px;box-shadow:0 6px 18px var(--color-shadow);border-radius:8px;gap:3px;padding:5px;display:grid;position:absolute;top:calc(100% + 3px);right:0}.secondary-menu-item{min-height:36px;color:var(--color-text-primary);text-align:left;background:0 0;border:0;border-radius:5px;padding:6px 9px;font-size:12px}.secondary-menu-item:hover:not(:disabled):not(.secondary-menu-item--active),.student-view-tab:hover:not(:disabled):not(.student-view-tab--active),.student-filter:hover:not(:disabled):not(.student-filter--selected):not(.service-mode-choice--exceptional),.tc-chip:hover:not(:disabled):not(.tc-chip--selectionne){background:var(--color-navigation-hover);color:var(--color-primary-dark)}.secondary-view{padding-bottom:4px}.secondary-view-back{margin:0 10px 4px}.logout-button:hover{border-color:var(--color-line);background:var(--color-paper);color:var(--color-ink)}.service-panel{min-width:0}#root:has(>.app-shell--stats){flex-direction:column;height:100dvh;display:flex;overflow:hidden}#root:has(>.app-shell--stats)>.pwa-update-indicator{flex:none}.app-shell--stats{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.app-shell--stats>.app-header,.stats-fixed-controls{flex:none}.app-shell--stats .stats-panel{flex-direction:column;flex:auto;min-height:0;margin-inline:-5px;padding-inline:5px;display:flex;overflow:hidden}.stats-fixed-controls,.stats-results{min-width:0}.stats-results{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:visible}.stats-panel .stats-grid,.stats-panel .stats-service-header,.stats-panel .stats-service-counters,.stats-panel .stats-detail-title{flex:none}.stats-panel .stats-grid{width:100%;margin-bottom:0}.stats-panel .stats-card{min-height:41.6px;padding-block:4.8px}.stats-panel .stats-detail,.stats-panel .stats-services,.stats-panel .stats-service--open,.stats-panel .stats-service-body{flex-direction:column;flex:auto;min-height:0;display:flex}.stats-panel .stats-detail{margin-top:0}.stats-panel .stats-detail-list,.stats-panel .stats-services-list{overscroll-behavior-y:contain;flex:auto;min-height:0;overflow:hidden auto}.stats-panel .stats-services-list:has(>.stats-service--open){flex-direction:column;display:flex;overflow:visible}.stats-panel .stats-services-list:has(>.stats-service--open)>.stats-service:not(.stats-service--open){display:none}.stats-panel .stats-service-body{padding-top:4px}.stats-panel .stats-detail-title{min-height:8px}.stats-panel .stats-detail-name{overflow-wrap:anywhere;min-width:0}.view-title-bar{border-bottom:1px solid var(--color-line);background:var(--color-secondary-background);color:var(--color-secondary-text);margin:0 0 6px;padding:3px 8px;font-size:13px;font-weight:600;line-height:1.3}.service-information{border:1px solid var(--color-secondary-border);background:0 0;border-radius:8px;margin-bottom:8px;padding:10px}.service-overview{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.service-title{min-width:0}.service-overview .service-date{color:var(--color-text-primary);white-space:normal;margin:0;font-size:13px;font-weight:600;line-height:1.3}.service-date{color:var(--color-muted);text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:9px;line-height:1.1}.app-error,.list-error{border:1px solid var(--color-absent-border);border-left:4px solid var(--color-absent-text);background:var(--color-absent-background);color:var(--color-absent-text);border-radius:7px;margin:10px 0;padding:9px 11px;font-size:13px;line-height:1.4}.empty-service-message{color:var(--color-muted);margin:12px 0;font-size:14px}.open-service-button{width:100%;min-height:48px}.service-state{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:4px;max-width:50%;margin:0;display:flex}.service-status{background:var(--color-white);min-height:21px;box-shadow:inset 0 0 0 1px var(--color-secondary-border);border-radius:999px;align-items:center;padding:3px 6px;font-size:9px;font-weight:800;display:inline-flex}.service-mode{color:var(--color-muted);font-size:10px}.service-action{align-items:center;min-height:30px;margin-top:2px;padding:3px 8px;font-size:10px;display:inline-flex}.summary-area{margin:5px 0 0}.summary-strip{justify-content:space-between;align-items:center;gap:5px;min-height:30px;display:flex}.summary-essential{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:5px;min-width:0;font-size:11px;display:flex}.summary-essential strong{font-variant-numeric:tabular-nums;font-size:13px}.summary-separator{color:var(--color-disabled)}.summary-toggle{border-radius:999px;flex:none;height:29px;min-height:29px;padding:2px 8px;font-size:10px;font-weight:600;line-height:1}.summary-toggle:hover:not(:disabled){background:var(--color-action-hover)}.summary-details{flex-wrap:wrap;justify-content:center;gap:4px 8px;padding:2px 0 4px;display:flex}.summary-counter{appearance:none;min-width:51px;max-width:100px;min-height:29px;font:inherit;text-align:center;cursor:pointer;border:0;border-radius:4px;flex-direction:column;flex:52px;justify-content:center;padding:2px 3px;display:flex}.summary-counter--active{outline:2px solid var(--view-text);outline-offset:1px}.summary-counter-value{color:inherit;font-variant-numeric:tabular-nums;font-size:13px;font-weight:800;line-height:1}.summary-counter-title{color:inherit;text-overflow:clip;white-space:nowrap;margin-top:2px;font-size:8px;font-weight:700;line-height:1.2;overflow:hidden}.summary-counter--compact{padding-inline:1px}.summary-counter--compact .summary-counter-title{text-overflow:clip;white-space:nowrap;font-size:7px;overflow:hidden}.conflict-notice{border:1px solid var(--color-pending-border);background:var(--color-white);color:var(--color-pending-text);border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:13px;font-weight:700}.stats-period{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.stats-tabs,.student-view-tabs{border:1px solid var(--color-secondary-border);background:var(--color-primary-soft);border-radius:8px;width:100%;min-width:0;padding:6px}.stats-tabs{gap:3px;margin:0 0 14px;display:flex}.service-navigation{grid-template-rows:32px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.service-consultation-navigation{grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:3px;min-width:0;display:grid}.service-consultation-date{cursor:default;font-weight:700}.student-view-tab.service-consultation-date{font-size:clamp(9px, 2.5vw, var(--font-size-navigation))}.service-date-label-short{display:none}@media (width<=360px){.student-view-tab.service-consultation-date{font-size:var(--font-size-navigation)}.service-date-label-long{display:none}.service-date-label-short{display:inline}}.stats-date-field{max-width:220px;color:var(--color-muted);flex:140px;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.stats-date-field input{border:1px solid var(--color-line);background:var(--color-white);width:100%;min-width:0;min-height:30px;color:var(--color-ink);font:inherit;border-radius:6px;padding:3px 6px;font-size:12px}.stats-error{border:1px solid var(--color-absent-border);border-left:4px solid var(--color-absent-text);background:var(--color-absent-background);color:var(--color-absent-text);border-radius:7px;margin:8px 0;padding:7px 10px;font-size:12px;line-height:1.3}.stats-info{color:var(--color-muted);margin:10px 0;font-size:12px}.stats-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;max-width:600px;margin:10px auto;display:grid}.stats-card--cat-repasServis{grid-column:span 6}.stats-card--cat-dpPresents,.stats-card--cat-tickets,.stats-card--cat-motifPersonnel,.stats-card--cat-refus{grid-column:span 3}.stats-card--cat-absents,.stats-card--cat-stages,.stats-card--cat-sorties{grid-column:span 2}@media (width<=359.98px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-card--cat-repasServis,.stats-card--cat-refus{grid-column:span 2}.stats-card--cat-dpPresents,.stats-card--cat-tickets,.stats-card--cat-motifPersonnel,.stats-card--cat-absents,.stats-card--cat-stages,.stats-card--cat-sorties{grid-column:span 1}}.stats-card{appearance:none;min-width:0;min-height:52px;box-shadow:inset 0 0 0 1px var(--view-border);font:inherit;text-align:center;cursor:pointer;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;padding:6px 8px;display:flex}.stats-card--active{outline:2px solid var(--view-text);outline-offset:1px}.stats-detail{margin:8px 0 10px}.stats-detail-title{color:var(--color-ink);margin:0 0 4px;font-size:12px;font-weight:700}.stats-detail-list{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.stats-detail-row{border-bottom:1px solid var(--color-line);flex-wrap:wrap;align-items:baseline;gap:2px 6px;padding:4px 2px;font-size:12px;line-height:1.3;display:flex}.stats-detail-name{font-weight:600}.stats-services{margin:12px 0 10px}.stats-services-title{margin:0 0 4px;font-size:12px;font-weight:700;line-height:1.2}.stats-services-list{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.stats-service{border-bottom:1px solid var(--color-line)}.stats-service-header{appearance:none;width:100%;min-width:0;min-height:32px;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:6px;padding:4px 2px;font-size:12px;line-height:1.3;display:flex}.stats-service-date{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.stats-service-meta{color:var(--color-muted);white-space:nowrap;flex:none;font-size:11px}.stats-service-body{padding:2px 0 6px}.stats-service-counters{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.stats-mini-counter{appearance:none;min-width:70px;max-width:110px;min-height:36px;box-shadow:inset 0 0 0 1px var(--view-border);font:inherit;text-align:center;cursor:pointer;border:0;border-radius:5px;flex-direction:column;flex:74px;justify-content:center;align-items:center;padding:3px 4px;display:flex}.stats-mini-counter--active{outline:2px solid var(--view-text);outline-offset:1px}.stats-mini-counter-value{font-variant-numeric:tabular-nums;font-size:13px;font-weight:800;line-height:1}.stats-mini-counter-title{text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:8px;font-weight:700;line-height:1.2;overflow:hidden}.stats-card-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:800;line-height:1}.stats-card-title{text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;font-weight:700;line-height:1.2;overflow:hidden}.student-list,.eleves-directory{margin-top:8px}.eleves-directory>h2{margin:0 0 8px;font-size:16px}.eleves-filters{z-index:6;background:var(--color-page);margin:0 -10px 8px;padding:4px 10px 6px;position:sticky;top:0}.student-search-icon--inline{width:11px;height:11px;color:var(--color-muted);flex:none;margin:0 9px 0 10px}.eleves-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.eleve-card{border:1px solid var(--color-line);background:var(--color-white);text-align:left;border-radius:7px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:48px;padding:7px 9px;display:flex}.eleve-card-name{text-transform:none;font-size:12px;font-weight:700}.eleve-card-situation{color:var(--color-secondary-text);font-size:10px;line-height:1.35}.eleve-card-niveau{opacity:.8;font-size:.9em}.eleve-card-exit{color:var(--color-muted);font-size:9px}.eleve-detail{gap:8px;display:grid}.eleve-detail h3{margin:2px 0 0;font-size:16px}.eleve-detail-list{border:1px solid var(--color-line);background:var(--color-white);border-radius:7px;grid-template-columns:minmax(105px,.8fr) 1.2fr;gap:7px 10px;margin:0;padding:10px;font-size:11px;display:grid}.eleve-detail-list dt{color:var(--color-muted)}.eleve-detail-list dd{margin:0;font-weight:600}.student-list h3{margin:0 0 2px;font-size:13px;line-height:1.1}.student-sticky-controls{z-index:5;top:var(--pointage-status-height);border-bottom:1px solid var(--color-line);background:var(--color-white);margin:0 -10px 3px;padding:4px 10px 3px;position:sticky}.student-view-tabs{gap:3px;margin:0 0 14px;display:flex}.student-view-tab{border:1px solid var(--color-secondary-border);background:var(--color-secondary-background);min-width:0;min-height:32px;color:var(--color-secondary-text);font-size:var(--font-size-navigation);white-space:nowrap;border-radius:6px;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:2px 4px;display:flex}.student-view-tabs>.student-view-tab:nth-child(2){font-size:clamp(9px, 2.8vw, var(--font-size-navigation))}.student-view-tab--active{border-color:var(--color-action-text);background:var(--color-action-text);color:var(--color-white)}.student-view-tab--wrap{text-align:center;white-space:normal;line-height:1.1}.student-view-tab--traitements{width:fit-content;font-size:var(--font-size-navigation);flex:none;padding:2px 8px}.student-view-tab-label{text-align:center;flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex}.student-view-tab-label-line{white-space:nowrap;display:block}.student-filters{gap:3px;margin-bottom:3px;display:grid}.bulk-absence-actions{justify-content:flex-end;margin:0 0 3px;display:flex}.bulk-absence-button{overflow-wrap:anywhere;width:auto;max-width:100%;min-height:24px;padding:3px 12px;font-size:12px;font-weight:600;line-height:1}.bulk-absence-button:before{content:"✕";margin-right:5px}.bulk-absence-message{color:var(--color-muted);margin:0 0 3px;font-size:9px;line-height:1.2}.student-filter-row{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.student-filter{border:1px solid var(--color-secondary-border);background:var(--color-white);height:25px;min-height:25px;color:var(--color-secondary-text);border-radius:5px;padding:1px 6px;font-size:9px;line-height:1}.student-filter--selected{border-color:var(--color-action-border);background:var(--color-action-background);color:var(--color-action-text)}.student-filters--service,.student-filters--service .student-filter-row{gap:4px}.student-view-tabs+.student-filters--service{margin-top:0}.student-filters--service .student-filter{white-space:nowrap;max-width:100%;height:30px;min-height:30px;padding:1px 7px;font-size:11px}.student-filters--service .student-search-toggle{width:30px;min-width:30px;height:30px;min-height:30px}.student-filters--service .student-search-input{box-sizing:border-box;flex:100%;width:100%;min-width:0;max-width:100%;height:34px}.student-filters--service .student-search-input input{min-height:32px;padding:0 8px;font-size:14px}.student-filters--service .student-search-input button{width:32px;min-width:32px;height:32px;min-height:32px}.student-search-toggle{border:1px solid var(--color-secondary-border);background:var(--color-white);width:25px;min-width:25px;height:25px;min-height:25px;color:var(--color-secondary-text);border-radius:5px;justify-content:center;align-items:center;padding:0;display:inline-flex}.student-search-icon{border:1.5px solid;border-radius:50%;width:10px;height:10px;position:relative}.student-search-icon:after{content:"";background:currentColor;width:5px;height:1.5px;position:absolute;bottom:-2px;right:-4px;transform:rotate(45deg)}.student-search-input{border:1px solid var(--color-action-border);background:var(--color-white);border-radius:5px;flex:115px;align-items:center;min-width:115px;max-width:180px;height:25px;display:flex}.student-search-input input{border-radius:inherit;width:100%;min-width:0;min-height:23px;color:var(--color-text-primary);background:0 0;border:0;outline:none;padding:0 5px;font-size:10px}.student-search-input input:focus-visible{box-shadow:none;outline:none}.student-search-input:focus-within{outline:3px solid var(--color-primary);outline-offset:2px}.student-search-input button{width:24px;min-width:24px;height:23px;min-height:23px;color:var(--color-muted);background:0 0;border:0;padding:0;font-size:15px;line-height:1}.student-view-list .student-row:first-of-type{border-top:1px solid var(--color-line)}.student-status-group{align-items:center;gap:3px;display:flex}.details-filter-chip{border-radius:999px;align-items:center;gap:4px;min-height:24px;margin-bottom:3px;padding:1px 4px 1px 7px;font-size:9px;font-weight:700;line-height:1;display:inline-flex}.details-filter-chip button{width:18px;min-width:18px;height:18px;min-height:18px;color:inherit;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:inline-flex}.list-message{color:var(--color-muted);margin:10px 0;font-size:13px}.student-row{border-bottom:1px solid var(--color-line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2px 5px;padding:5px 0 3px;display:flex}.student-row--expanded{min-height:0}.student-name{white-space:nowrap;flex:1 0 100%;align-items:center;gap:3px;min-width:0;line-height:1.1;display:flex;overflow:hidden}.student-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.student-class.student-niveau{opacity:.85;font-size:11px}.student-class{min-width:0;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.student-status{text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:none;justify-content:center;align-items:center;max-width:76px;min-height:21px;padding:3px 6px;font-size:9px;font-weight:800;line-height:1.1;display:inline-flex;overflow:hidden}.student-actions{flex-wrap:wrap;gap:8px 12px;width:auto;margin-block:0;display:flex}.student-actions .passage-button--present,.student-actions .passage-button--absent{min-width:64px;height:40px;min-height:40px}.student-actions .passage-button--more{min-width:62px;height:36px;min-height:36px}.passage-button{flex:none;min-width:0;min-height:44px;padding:4px 6px;font-size:10px;line-height:1.15}.passage-button--present,.passage-button--absent{align-self:center;min-width:59px;height:37px;min-height:37px}.passage-button--secondary{border-radius:6px;align-self:center;min-width:48px;height:32px;min-height:32px;padding:1px 5px;font-size:9px;line-height:1}.passage-button--correction{--view-background:#fff0dc;--view-text:#a65300;--view-border:#f3bd77;align-self:center;min-width:58px;height:32px;min-height:32px;padding:1px 6px;font-size:10px;line-height:1}.passage-button--more{white-space:nowrap;border-radius:6px;align-self:center;min-width:58px;height:30px;min-height:30px;padding:1px 6px;font-size:9px;line-height:1}.passage-button--reset{border:1px solid var(--color-secondary-text);background:var(--color-secondary-background);min-width:68px;height:32px;min-height:32px;color:var(--color-text-primary);border-radius:6px;align-self:center;padding:1px 4px;font-size:9px;line-height:1}.navigation-button{border:1px solid var(--color-navigation-background);background:var(--color-navigation-background);min-height:32px;color:var(--color-navigation-text);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:11px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.navigation-button:hover:not(:disabled):not(.navigation-button--active){border-color:var(--color-navigation-hover);background:var(--color-navigation-hover);color:var(--color-primary-dark)}.navigation-button--back{height:29px;min-height:29px;font-size:var(--font-size-navigation);border-radius:4px;padding-inline:6px;font-weight:600}.navigation-button--inactive{border-color:var(--color-border);background:var(--color-white);color:var(--color-disabled)}.action-label-wide{display:none}.student-row--expanded .student-actions,.student-extra-actions{flex-wrap:wrap;flex:1 0 100%;justify-content:flex-end}.student-row--expanded .student-actions--correction{flex-flow:column;justify-content:flex-start;align-items:stretch;gap:4px;width:100%}.correction-status-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.correction-footer{justify-content:space-between;align-items:center;width:100%;display:flex}.student-extra-actions{flex-wrap:nowrap;gap:6px;padding-top:1px;display:flex}.student-extra-actions>.passage-button{white-space:nowrap;flex-shrink:1}@media (width<=480px){.summary-details{grid-template-columns:repeat(8,minmax(0,1fr));row-gap:6px;display:grid}.summary-details>.summary-counter{grid-column:span 2;justify-self:center;width:100%;min-width:0}.summary-details>.summary-counter:nth-child(4n+1):nth-last-child(3){grid-column:2/span 2}.summary-details>.summary-counter:nth-child(4n+1):nth-last-child(2){grid-column:3/span 2}.summary-details>.summary-counter:nth-child(4n+1):last-child{grid-column:4/span 2}.summary-details .summary-counter-title{white-space:normal;overflow-wrap:anywhere;max-width:100%;overflow:visible}}.login-shell{width:min(100%,420px);min-height:100dvh;margin:0 auto;padding:28px 16px}.login-shell h1{margin:0 0 18px;font-size:24px;line-height:1.15}.login-shell p{color:var(--color-muted);font-size:14px;line-height:1.45}.login-input{border:1px solid var(--color-border);background:var(--color-paper);width:100%;min-height:48px;color:var(--color-ink);border-radius:8px;padding:11px 12px}.login-input--code{text-align:center;font-size:20px}.login-action{width:100%;min-height:48px;margin-top:14px}.login-message{margin-top:16px}.bottom-nav{z-index:10;width:min(100%,960px);padding:2px 10px calc(2px + env(safe-area-inset-bottom));border-top:1px solid var(--color-line);background:var(--color-white);box-shadow:0 -5px 18px var(--color-shadow);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{width:100%;height:32px;min-height:32px;font-size:var(--font-size-navigation-bottom)}@media (width>=640px){:root{--font-size-navigation:14px;--font-size-navigation-bottom:14px}.app-shell{padding:7px 14px calc(54px + env(safe-area-inset-bottom))}.app-header{margin-bottom:8px;padding-bottom:6px}.student-row{column-gap:8px}.login-shell{padding:32px 24px}}.groups-action{width:100%;min-height:44px;margin-top:10px}.groups-item{padding:12px}.groups-name{margin:0;font-weight:700}.groups-classes{color:var(--color-muted);margin:4px 0 0;font-size:14px}.groups-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.groups-buttons .groups-confirm{grid-column:1/-1;margin:8px 0 0;font-size:14px}.groups-form h3{margin:12px 0 8px}.groups-class-list{margin:10px 0 0;padding:0;list-style:none}.groups-class{border-bottom:1px solid var(--color-line);align-items:center;gap:10px;min-height:44px;display:flex}.groups-class input{width:20px;height:20px}.groups-class--disabled{opacity:.55}.groups-class-note{color:var(--color-muted);font-size:12px}.groups-description{color:var(--color-muted);margin:0;font-size:12px;line-height:1.35}.admin-unlock-description{margin-bottom:16px}.admin-unlock-form{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.admin-unlock-form>.stats-error,.admin-unlock-form>.groups-buttons>.groups-action{margin:0}.student-filter--group{border-style:dashed;font-weight:700}.services-list,.services-create{flex-direction:column;gap:10px;display:flex}.service-mode-info{border:1px solid var(--color-line);background:var(--color-secondary-background);color:var(--color-secondary-text);border-radius:8px;align-items:flex-start;gap:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.4;display:flex}.service-mode-info:before{content:"i";box-sizing:border-box;background:var(--color-primary-soft);width:19px;height:19px;color:var(--color-primary);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:-1px;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.stats-service-header.services-row{cursor:default;justify-content:flex-start;gap:0}.services-row .stats-service-date{flex:0 auto}.services-row-end{display:contents}.services-row--exceptional{background:var(--color-white);border-radius:8px}.services-row--exceptional .stats-service-date{color:var(--color-service-exceptional);line-height:12px}.services-exceptional-date{text-overflow:ellipsis;display:block;overflow:hidden}.services-exceptional-label{font-size:10px;font-weight:800;display:block}.services-exceptional-date-short{display:none}.service-mode--exceptional{border:1px solid var(--color-service-exceptional);background:var(--color-white);min-height:21px;color:var(--color-service-exceptional);white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 6px;font-weight:800;display:inline-flex}.service-mode-choice--exceptional{border-color:var(--color-service-exceptional-choice);color:var(--color-service-exceptional-choice);background:0 0}.service-mode-choice--exceptional.student-filter--selected{color:var(--color-service-exceptional-choice);background:0 0;font-weight:800}.service-overview--exceptional .service-date{overflow:hidden}@media (width<=479px){.services-row--exceptional .stats-service-date{font-size:10px}}.services-row .service-status{white-space:nowrap;flex:none;margin-left:8px}.services-row .services-row-action{box-sizing:border-box;white-space:nowrap;border-radius:7px;flex:none;min-width:104px;min-height:28px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.services-row .services-row-action--open{border-color:var(--color-primary-action);background:var(--color-primary-action);color:var(--color-white)}.services-row .services-row-action--view{border-color:var(--color-action-text);background:var(--color-white);color:var(--color-action-text)}.services-row .services-row-delete{box-sizing:border-box;border:1px solid var(--color-absent-border);background:var(--color-absent-background);width:32px;height:32px;min-height:32px;color:var(--color-absent-text);border-radius:6px;flex:none;justify-content:center;align-items:center;margin-left:8px;padding:0;display:inline-flex}.services-dialog-backdrop{z-index:50;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.services-dialog{box-sizing:border-box;background:var(--color-white);border-radius:8px;width:min(100%,360px);padding:16px;font-size:13px;line-height:1.4}.services-dialog p{margin:0 0 8px}.services-dialog-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.services-dialog-actions button{min-height:36px;font-size:12px}.services-dialog-actions .services-dialog-danger{border-color:var(--color-absent-border);background:var(--color-absent-text);color:var(--color-white)}.creation-eleve-form>label{margin-bottom:8px;display:block}.eleves-filters{margin-bottom:8px}.historique-eleve{border-top:1px solid var(--color-line);margin-top:20px;padding-top:12px}.historique-eleve-summary{cursor:pointer;align-items:center;gap:8px;font-weight:700;list-style:none;display:flex}.historique-eleve-summary::-webkit-details-marker{display:none}.historique-eleve-summary:before{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.historique-eleve[open]>.historique-eleve-summary:before{transform:rotate(45deg)}.historique-eleve-list{margin:8px 0 0;padding:0;list-style:none}.historique-eleve-item{border-bottom:1px solid var(--color-line);flex-direction:column;gap:2px;padding:8px 0;display:flex}.historique-eleve-item:last-child{border-bottom:0}.historique-eleve-date{color:var(--color-muted);font-size:.8rem;font-weight:700}.historique-eleve-libelle{color:var(--color-ink)}.historique-eleve-detail{color:var(--color-muted);font-size:.85rem}.creation-eleve-form>label>input,.creation-eleve-form>label>select,.eleve-detail label>input,.eleve-detail label>select{margin-top:4px}.admin-import-placeholder{border:1px dashed var(--color-line);border-radius:8px;padding:8px 10px}.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px;margin-bottom:14px;display:grid}.admin-tabs .student-view-tab{text-align:center;white-space:normal;overflow-wrap:anywhere;width:100%;min-height:36px;line-height:1.15}.import-siecle-input{display:none}.import-siecle-note{margin:8px 0}.import-siecle-fichier{overflow-wrap:anywhere;margin:8px 0;font-size:13px}.import-siecle-bloc{border-top:1px solid var(--color-line);margin-top:24px;padding-top:16px}.import-siecle-sous-bloc{scroll-margin-top:12px}.import-siecle-mode{border:0;margin:0 0 12px;padding:0}.import-siecle-mode legend{margin-bottom:6px;padding:0;font-weight:700}.import-siecle-mode-choix{border:1px solid var(--color-line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.import-siecle-mode-choix:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft)}.import-siecle-mode-choix span{flex-direction:column;gap:2px;display:flex}.import-siecle-mode-choix small{color:var(--color-text-secondary);font-size:13px}.admin-bandeau{z-index:20;border:1px solid var(--color-line);background:var(--color-background);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;min-height:38px;margin:0 0 8px;padding:3px 10px;font-size:13px;display:flex;position:sticky;top:0}.admin-bandeau p{margin:0}.admin-bandeau--normal{background:var(--color-secondary-background);color:var(--color-text-secondary)}.admin-bandeau-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.admin-bandeau-prolonger,.admin-bandeau-verrouiller{flex-shrink:0;min-height:30px;padding:4px 8px;font-size:12px}.admin-bandeau-verrouiller{--business-background:var(--color-absent-text);--business-text:var(--color-white);--business-border:var(--color-absent-text);white-space:nowrap;justify-content:center;align-items:center;gap:4px;display:inline-flex}.admin-bandeau-titre{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;min-width:0;font-weight:700}.admin-bandeau--avertissement{border-color:var(--color-pending-border);background:var(--color-pending-background);color:var(--color-pending-text)}.admin-bandeau--alerte{border-color:var(--color-absent-border);background:var(--color-absent-background);color:var(--color-absent-text)}.admin-prolongation-dialogue{border:1px solid var(--color-line);background:var(--color-paper);width:min(360px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--color-ink);border-radius:8px;padding:16px;overflow:auto}.admin-prolongation-dialogue::backdrop{background:#00000059}.admin-prolongation-dialogue h3{margin:0 0 16px;font-size:16px}.import-siecle-etape{border-top:1px solid var(--color-line);margin-top:12px;padding-top:8px;scroll-margin-top:12px}.import-siecle-etape-entete{width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:16px;font-weight:700;display:flex}.import-siecle-etape--verrouillee .import-siecle-etape-entete{color:var(--color-disabled);cursor:default;font-weight:600}.import-siecle-etape-check{color:var(--color-present-text)}.import-siecle-etape-resume{color:var(--color-text-secondary);margin:0 0 4px;font-size:13px}.import-siecle-etape-contenu{padding-top:4px}.import-siecle-masse,.import-siecle-confirmation{gap:8px;margin:8px 0 16px;display:grid}.import-siecle-classe{color:var(--color-text-primary);font-weight:inherit}.import-siecle-niveau{color:var(--color-text-secondary);font-size:.9em}.import-siecle-confirmation{border:1px solid var(--color-line);background:var(--color-secondary-background);border-radius:8px;padding:10px 12px}.import-siecle-succes{border:1px solid var(--color-present-border);border-left:4px solid var(--color-present-text);background:var(--color-present-background);color:var(--color-present-text);border-radius:8px;gap:6px;margin:12px 0;padding:10px 12px;display:grid}.import-siecle-succes p,.import-siecle-confirmation p{margin:0}.import-siecle-selection{align-items:center;gap:8px;display:flex}.import-siecle-champ{gap:4px;margin:8px 0;font-size:13px;font-weight:700;display:grid}.import-siecle-champ select,.import-siecle-champ input{font-weight:400}.import-siecle-champ select.import-siecle-select-complet{background-color:var(--color-primary-soft);color:var(--color-text-primary)}.import-siecle-resume{margin:0;padding:0;list-style:none}.import-siecle-resume li{border-bottom:1px solid var(--color-line);justify-content:space-between;gap:12px;padding:6px 0;font-size:13px;display:flex}.import-siecle-resume strong{text-align:right;overflow-wrap:anywhere}.traitements-collectifs{flex-direction:column;gap:10px;display:flex}.traitements-titre{margin:0;font-size:16px}.traitements-section-titre{color:var(--color-muted);text-transform:uppercase;margin:8px 0 4px;font-size:12px;font-weight:700}.traitements-termines>summary{cursor:pointer}.traitements-vide{color:var(--color-muted);margin:0;font-size:12px}.traitement-carte{appearance:none;width:100%;min-height:44px;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:3px;padding:8px 4px;font-size:12px;line-height:1.3;display:flex}.traitement-carte--selectionnee{background:var(--color-secondary-background)}.traitement-carte--annule{opacity:.75}.traitement-carte-titre{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.traitement-carte-motif{font-weight:700}.traitement-carte-libelle{color:var(--color-secondary-text)}.traitement-carte-meta{gap:6px;display:flex}.traitement-detail{background:var(--color-secondary-background);padding:6px 8px 10px;font-size:12px}.traitement-detail p{margin:2px 0}.traitement-carte-nombre{color:var(--color-secondary-text);font-size:13px;font-weight:600;text-decoration:none}.tc-form{flex-direction:column;gap:14px;margin-top:12px;display:flex}.tc-titre{margin:0;font-size:17px}.tc-titre--bandeau{box-sizing:border-box;border:1px solid var(--color-secondary-border);background:var(--color-secondary-background);border-radius:8px;width:100%;padding:9px 10px;font-size:15px;font-weight:700}.tc-bloc{flex-direction:column;gap:6px;display:flex}.tc-label{font-size:13px;font-weight:700}.tc-dates{flex-direction:row;gap:10px}.tc-champ{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.tc-champ input{border:1px solid var(--color-secondary-border);border-radius:8px;min-height:44px;padding:6px 10px;font-size:16px}.tc-chips{flex-wrap:wrap;gap:8px;display:flex}.tc-chip{border:1px solid var(--color-secondary-border);background:var(--color-white);min-height:44px;color:var(--color-secondary-text);border-radius:8px;padding:6px 14px;font-size:14px;font-weight:700}.tc-chip--selectionne{border-color:var(--color-action-border);background:var(--color-action-background);color:var(--color-action-text)}.tc-note{color:var(--color-secondary-text);margin:0;font-size:13px}.tc-eleves{flex-direction:column;gap:4px;max-height:55vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.tc-eleve{border:1px solid var(--color-secondary-border);background:var(--color-white);border-radius:8px;align-items:center;gap:10px;min-height:48px;padding:6px 10px;display:flex}.tc-eleve input{flex:none;width:22px;height:22px}.tc-eleve--desactive{opacity:.6}.tc-eleve-texte{flex-direction:column;min-width:0;display:flex}.tc-eleve-nom{font-size:14px;font-weight:700}.tc-eleve-meta{color:var(--color-secondary-text);font-size:12px}.tc-compteur{margin:4px 0 0;font-size:14px;font-weight:700}.tc-conflit-titre{margin:0 0 6px}.tc-conflit p,.tc-conflit ul{margin:4px 0 0;font-weight:600}.tc-actions{flex-wrap:wrap;gap:8px;display:flex}.tc-actions button{flex:140px;min-height:44px}.tc-resume{flex-direction:column;gap:6px;margin:0;display:flex}.tc-resume div{gap:8px;display:flex}.tc-resume dt{flex:none;min-width:70px;font-weight:700}.tc-resume dd{margin:0}.tc-impact ul{margin:0;padding-left:18px;font-size:14px}.tc-succes{border:1px solid var(--color-present-border);color:var(--color-present-text);border-radius:8px;margin:10px 0 0;padding:10px 12px;font-size:14px;font-weight:700}.tc-eleve-label{flex:1;align-items:center;gap:10px;min-width:0;min-height:44px;display:flex}.tc-eleve--alerte{border-color:var(--color-absent-border);opacity:1}.tc-retirer{border:1px solid var(--color-absent-border);background:var(--color-white);min-height:40px;color:var(--color-absent-text);border-radius:8px;padding:4px 12px;font-size:13px;font-weight:700}.tc-danger{--business-background:var(--color-absent-text);--business-text:var(--color-white);--business-border:var(--color-absent-border)}.traitement-detail .tc-actions{margin-top:10px}.tc-confirmation{border:1px solid var(--color-absent-border);background:var(--color-white);border-radius:8px;margin-top:10px;padding:10px 12px;font-size:14px}.tc-confirmation p{margin:0 0 6px}.tc-confirmation ul{margin:0 0 8px;padding-left:18px}.traitement-eleves-liste{margin-top:6px}.traitement-eleves-liste summary{cursor:pointer;min-height:36px;font-weight:700}.traitement-eleves-liste ul{flex-direction:column;gap:4px;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.traitement-eleves-liste li{border-bottom:1px solid var(--color-secondary-border);flex-direction:column;padding:4px 0;display:flex}.tc-selection-actions{flex-wrap:wrap;gap:8px;display:flex}.tc-selection-bouton{border:1px solid var(--color-secondary-border);background:var(--color-secondary-background);min-height:40px;color:var(--color-secondary-text);border-radius:8px;padding:4px 12px;font-size:13px;font-weight:700}.traitements-collectifs .stats-services-list{border-top:0;flex-direction:column;gap:10px;display:flex}.traitement-item{box-sizing:border-box;border:1px solid var(--color-secondary-border);background:var(--color-white);border-radius:8px;max-width:100%;overflow:hidden}.traitement-item .traitement-carte{overflow-wrap:anywhere;padding:8px 10px}.traitement-item .traitement-carte--selectionnee{background:var(--color-white)}.traitement-item .traitement-detail{border-top:1px solid var(--color-secondary-border);background:var(--color-white);overflow-wrap:anywhere;padding:8px 10px 10px}.stats-tabs.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;display:grid}.stats-tabs.admin-tabs>button.student-view-tab{order:0;grid-column:auto;width:100%;min-width:0;min-height:44px}.stats-tabs.outils-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.stats-tabs.outils-tabs>button{text-align:center;white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;min-height:36px;line-height:1.15;font-size:var(--font-size-navigation)}:is(.secondary-menu-item--active,.navigation-button--active){border-color:var(--color-primary);background:var(--color-primary);color:var(--color-white);text-decoration:none}.stats-tabs.admin-tabs>.admin-tab-utilisateurs{order:4;grid-column:auto;min-height:44px}.gestion-utilisateurs{overflow-wrap:anywhere;min-width:0}.gestion-utilisateurs h3{margin:0 0 8px}.gestion-utilisateurs-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:6px;margin:8px 0;display:grid}.gestion-utilisateurs-actions button{white-space:normal;overflow-wrap:anywhere;min-width:0;min-height:44px;padding:6px 10px;font-size:13px;line-height:1.2}.gestion-utilisateurs-commandes{grid-template-columns:minmax(0,1fr) 44px}.gestion-utilisateurs-commandes .gestion-utilisateurs-actualiser{grid-column:2;place-items:center;width:44px;height:44px;padding:0;display:grid}.gestion-utilisateurs-ajout{gap:3px;min-width:0;display:grid}.gestion-utilisateurs-ajout button{justify-content:center;align-items:center;gap:6px;display:flex}.gestion-utilisateurs-plus{flex-shrink:0;width:24px;height:24px;display:block}.gestion-utilisateurs-ajout small{color:var(--color-muted);font-size:11px;line-height:1.3}.gestion-utilisateurs button:focus-visible,.gestion-utilisateurs summary:focus-visible,.gestion-utilisateurs input:focus-visible,.gestion-utilisateurs select:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.gestion-utilisateurs-liste{gap:6px;margin:12px 0 8px;padding:0;list-style:none;display:grid}.gestion-utilisateurs-carte{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;min-width:0;padding:0}.gestion-utilisateurs-carte details{min-width:0}.gestion-utilisateurs-resume{cursor:pointer;grid-template-columns:minmax(0,1fr) 12px;align-items:center;gap:8px;min-height:44px;padding:9px 10px;list-style:none;display:grid}.gestion-utilisateurs-resume::-webkit-details-marker{display:none}.gestion-utilisateurs-identite{min-width:0;display:block}.gestion-utilisateurs-ligne{grid-template-columns:minmax(0,1fr) 64px max-content;align-items:center;gap:4px;min-width:0;font-size:12px;line-height:1.3;display:grid}.gestion-utilisateurs-libelle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:650;overflow:hidden}.gestion-utilisateurs-profil,.gestion-utilisateurs-statut{box-sizing:border-box;text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;min-width:0;padding:2px 5px;font-size:11px;font-weight:700;overflow:hidden}.gestion-utilisateurs-profil{color:var(--color-muted);background:var(--color-border);font-weight:500}.gestion-utilisateurs-statut--actif{color:var(--color-present-text);background:var(--color-present-background)}.gestion-utilisateurs-statut--inactif{color:var(--color-absent-text);background:var(--color-absent-background)}.gestion-utilisateurs-email{color:var(--color-muted);overflow-wrap:anywhere;margin-top:3px;font-size:12px;line-height:1.3;display:block}.gestion-utilisateurs-chevron{border-bottom:2px solid;border-right:2px solid;place-self:start center;width:7px;height:7px;margin:4px 0 0;transform:rotate(45deg)}.gestion-utilisateurs-carte details[open] .gestion-utilisateurs-chevron{margin-top:7px;transform:rotate(225deg)}.gestion-utilisateurs-carte .gestion-utilisateurs-actions{align-items:center;margin:0;padding:0 10px 9px}.gestion-utilisateurs-carte .gestion-utilisateurs-actions button{min-height:40px}.gestion-utilisateurs-supprimer{--business-background:var(--color-absent-text);--business-text:var(--color-navigation-text);--business-border:var(--color-absent-text)}@media (width>=768px){.gestion-utilisateurs-carte .gestion-utilisateurs-actions{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}}.gestion-utilisateurs-dialogue{overflow-wrap:anywhere;border:1px solid var(--color-border);width:min(440px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--color-ink);background:var(--color-surface);border-radius:8px;padding:16px;overflow:auto}.gestion-utilisateurs-dialogue::backdrop{background:#0006}.gestion-utilisateurs-resultat{box-sizing:border-box;text-align:center;width:min(360px,100% - 32px);margin:auto}.gestion-utilisateurs-resultat p{font-size:14px;line-height:1.45}.gestion-utilisateurs-resultat .gestion-utilisateurs-precision{color:var(--color-muted);font-size:12px}.gestion-utilisateurs-resultat button{width:100%;min-height:44px;padding:8px 12px}.stats-tabs.admin-tabs>.admin-tab-securite{order:5;grid-column:auto;min-height:44px}.admin-securite{gap:12px;min-width:0;max-width:440px;display:grid}.admin-securite-champ{gap:4px;min-width:0;display:grid}.admin-securite label{gap:4px;min-width:0;margin:0;font-size:13px;display:grid}.admin-securite input{box-sizing:border-box;width:100%;min-width:0}.admin-securite small{color:var(--color-muted);margin:0;font-size:12px;line-height:1.35}.admin-securite .stats-error{margin:0}.admin-securite button{white-space:normal;overflow-wrap:anywhere;min-width:0;min-height:44px;margin-top:4px}.pwa-update-indicator{color:var(--color-text-secondary);padding:4px 10px;font-size:12px;line-height:1.4}.pwa-update-indicator button{white-space:nowrap;flex:none;min-height:44px;padding:6px 10px;font-size:12px;line-height:1.2}.pwa-update-indicator p{color:var(--color-absent-text);overflow-wrap:anywhere;margin:4px 0}.pwa-status-update{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.pwa-status-update>span{flex:0 auto}.offline-service-info{color:var(--color-text-secondary)}.offline-service-dialog{border:1px solid var(--color-border);background:var(--color-white);width:min(440px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--color-text-primary);border-radius:8px;padding:16px;font-size:14px;line-height:1.4;overflow:auto}.offline-service-dialog::backdrop{background:#00000059}.offline-service-dialog h2{margin:0 0 12px;font-size:18px}.offline-service-dialog form{text-align:right;margin-top:12px}.service-sync-warning{width:44px;height:44px;min-height:44px;color:var(--color-absent-text);background:0 0;border:0;flex:0 0 44px;justify-content:center;align-items:center;padding:0;font-weight:700;display:flex}.service-sync-warning>span{border:1px solid var(--color-absent-text);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.offline-service-info-content{border-left:2px solid var(--color-border);padding:8px 10px}.offline-service-info-content p{margin:0}.offline-service-info-content p+p{margin-top:8px}.service-panel--pointage{--pointage-status-height:calc(13px * 1.3 + 7px);--service-sticky-top:8px}.service-title-toolbar{top:var(--service-sticky-top);z-index:6;height:var(--pointage-status-height);border-bottom:1px solid var(--color-line);background:var(--color-secondary-background);margin-bottom:8px;padding:3px 8px;position:sticky}.service-title-toolbar:before{content:"";inset-inline:-10px;top:calc(-1 * var(--service-sticky-top));height:var(--service-sticky-top);background:var(--color-white);pointer-events:none;position:absolute}.service-panel--pointage .student-sticky-controls{top:calc(var(--pointage-status-height) + var(--service-sticky-top))}.service-title-main{justify-content:space-between;align-items:center;gap:8px;height:100%;display:flex}.service-title-toolbar .view-title-bar{white-space:nowrap;background:0 0;border:0;flex-shrink:0;margin:0;padding:0}.service-title-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.service-title-actions>div{align-items:center;min-width:0;display:flex}@media (width<=390px){.service-title-actions{grid-template-columns:minmax(0,1fr) 44px;gap:2px 8px;display:grid}.service-title-actions>div{grid-area:1/1}.service-sync-count{grid-area:2/1}.service-title-actions .service-refresh-button{grid-area:1/2/3}.service-title-actions:not(.service-title-actions--compact)>div:not(:has(+.service-sync-count)){grid-row:1/3}}.service-title-actions--compact{flex:1;align-items:center;gap:8px;max-width:300px;height:100%;display:flex}.service-title-actions--compact>button{height:22px;min-height:22px}.service-title-actions--compact>.service-refresh-button,.service-title-actions--compact>.service-sync-warning{flex-basis:22px;width:22px}.service-title-actions--compact>.service-connection-button{border:0;gap:0;padding:0 4px}.service-title-actions--compact .service-connection-button:has(.service-connection-meta:not(:empty)) .connection-status{gap:4px;font-size:10px}.service-title-actions--compact .service-connection-button:has(.service-connection-meta:not(:empty)) .connection-status>svg{width:12px;height:12px}.service-title-actions--compact .service-connection-meta,.service-title-actions--compact .service-sync-count{font-size:9px;line-height:1.1}.service-connection-button{min-width:0;height:44px;min-height:44px;color:var(--color-text-secondary);background:0 0;border-color:#0000;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;padding:0 6px;display:flex}.service-connection-heading{justify-content:center;align-items:center;gap:4px;display:flex}.service-connection-chevron{flex:none}.service-connection-state .connection-status{white-space:nowrap}.service-connection-meta{white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-size:11px;line-height:1.2;display:flex}.service-connection-meta:empty{display:none}.service-local-state{color:var(--color-text-secondary)}.connection-status-label-short{display:none}@media (width<=360px){.connection-status--compact .connection-status-label{display:none}.connection-status--compact .connection-status-label-short{display:inline}}.service-sync-count{white-space:nowrap;color:var(--color-text-secondary);flex-shrink:0;font-size:11px;font-weight:600;line-height:1.2}.service-refresh-button{width:44px;height:44px;color:var(--color-action-text);background:0 0;border:0;flex:0 0 44px;justify-content:center;align-items:center;padding:0;display:flex}.service-refresh-icon--loading{animation:1s linear infinite service-refresh-spin}@keyframes service-refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.service-refresh-icon--loading{opacity:.5;animation:none}}.connection-status{min-width:0;max-width:100%;color:var(--color-text-secondary);align-items:center;gap:6px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.connection-status--en-ligne{color:var(--color-present-text)}.connection-status--hors-ligne,.connection-status--indisponible{color:var(--color-absent-text)}.connection-status svg{flex-shrink:0}.connection-status-detail{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.pointage-resolution{margin:6px 0;font-size:12px;line-height:1.4}.pointage-resolution button,.pointage-resolution summary{cursor:pointer;min-height:44px;padding:8px 10px}.pointage-resolution button{border:1px solid var(--color-border);background:var(--color-white);color:var(--color-action-text);font:inherit;white-space:normal;border-radius:6px}.pointage-resolution button:disabled{cursor:not-allowed;opacity:.6}.pointage-resolution-toggle{text-align:left;width:100%}.pointage-resolution button.pointage-resolution-toggle{border:1px solid var(--color-pending-border);background:var(--color-pending-background);color:var(--color-pending-text);justify-content:space-between;align-items:center;font-weight:700;display:flex}.pointage-resolution-count{background:var(--color-white);text-align:center;border-radius:12px;min-width:24px;padding:2px 6px}.pointage-resolution-card{border:1px solid var(--color-pending-border);background:var(--color-pending-background);color:var(--color-pending-text);overflow-wrap:anywhere;border-radius:8px;margin:6px 0;padding:10px}.pointage-resolution-card h3,.pointage-resolution-card p{margin:0 0 6px}.pointage-resolution-identity{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.pointage-resolution-identity h3{font-size:13px}.pointage-resolution-identity span{color:inherit}.pointage-resolution-values{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:6px 0;display:grid}.pointage-resolution-values p{margin:0}.pointage-resolution-reason,.pointage-resolution-notice{color:var(--color-pending-text)}.pointage-resolution-error{border-left:3px solid var(--color-absent-text);padding:8px}.pointage-resolution-error>p{color:var(--color-absent-text);margin:0}.pointage-resolution-reason--error{color:var(--color-absent-text)}.pointage-resolution-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.pointage-resolution-actions button{padding:6px;font-weight:600}.pointage-resolution-actions button:last-child{background:var(--color-secondary-background)}.pointage-resolution-confirmation{background:var(--color-pending-background);margin-top:10px;padding:10px}.pointage-resolution-confirmation button{margin:0 8px 4px 0}.pointage-resolution-followup{color:var(--color-text-secondary);margin:4px 0;font-size:11px;line-height:1.4}.pointage-resolution-followup summary{cursor:pointer;align-items:center;min-height:28px;display:flex}.pointage-resolution-followup summary:before{content:"+";margin-right:6px}.pointage-resolution-followup[open] summary:before{content:"-"}.pointage-resolution-followup p{overflow-wrap:anywhere;margin:4px 0}.app-shell.app-shell--cuisine-seule{padding-bottom:16px}.app-shell--cuisine-seule .logout-button{min-height:44px}#root:has(>.app-shell>.cuisine-layout){flex-direction:column;height:100dvh;display:flex}.app-shell:has(>.cuisine-layout){flex-direction:column;flex:auto;min-height:0;display:flex}.app-shell:has(>.cuisine-layout)>:not(.cuisine-layout){flex-shrink:0}#root:has(>.app-shell>.cuisine-layout)>.pwa-update-indicator{flex-shrink:0}.cuisine-layout{flex:auto;min-width:0;min-height:0;overflow:auto;container-type:size}.cuisine-view{overflow-wrap:anywhere;flex-direction:column;min-width:0;min-height:100cqh;padding:clamp(2px,.5cqh,6px) 0;display:flex}.cuisine-toolbar{border:1px solid var(--color-action-border);background:#f3faf5;border-radius:10px;flex:none;gap:clamp(3px,.6cqh,6px);padding:clamp(4px,.8cqh,8px) 10px;display:grid}.cuisine-entete,.cuisine-commandes{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;display:grid}.cuisine-commandes{background:var(--color-white);border-radius:8px;grid-template-columns:minmax(0,1fr) 44px;gap:0 8px;padding:2px 8px}.cuisine-toolbar h2{white-space:normal;margin:0;font-size:clamp(14px,min(3.5cqw,3.2cqh),20px);line-height:1.3}.cuisine-toolbar button{min-width:44px;min-height:36px;padding:6px 10px;font-size:13px;line-height:1.3}.cuisine-toolbar button:focus-visible{outline:3px solid var(--color-action-text);outline-offset:2px}.cuisine-toolbar .cuisine-refresh-button{width:44px;height:44px;min-height:44px;color:var(--color-primary-action);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.cuisine-refresh-button:hover:not(:disabled){background:var(--color-navigation-hover)}.cuisine-etablissement{color:var(--color-muted);margin:0;font-size:clamp(12px,2.4cqh,13px)}.cuisine-statut{border:1px solid var(--color-present-border);color:var(--color-present-text);background:var(--color-present-background);border-radius:6px;padding:4px 8px}.cuisine-statut--cloture{border-color:var(--color-secondary-border);color:var(--color-secondary-text);background:var(--color-secondary-background)}.cuisine-actualisation,.cuisine-decompte{color:var(--color-muted);margin:0;font-size:clamp(11px,2.2cqh,12px);line-height:1.35}.cuisine-horaires{min-width:0}.cuisine-decompte{font-variant-numeric:tabular-nums;font-size:clamp(11px,2cqh,12px)}.cuisine-avertissement,.cuisine-absence{background:var(--color-pending-background);color:var(--color-pending-text);border-radius:8px;padding:12px}.cuisine-compteurs{flex:1 0 auto;grid-template-rows:minmax(min-content,1fr) minmax(min-content,2fr);gap:clamp(6px,1.2cqh,14px);margin:clamp(6px,1.2cqh,14px) 0 0;display:grid}.cuisine-compteurs dl{min-width:0;margin:0}.cuisine-compteurs dd{font-variant-numeric:tabular-nums;margin:0;font-weight:800}.cuisine-restants{border:1px solid var(--color-action-border);background:var(--color-action-background);color:var(--color-action-text);text-align:center;border-radius:10px;align-content:center;padding:clamp(6px,1.8cqh,24px) 12px;display:grid}.cuisine-restants dt{text-wrap:balance;max-width:32ch;margin:0 auto;font-size:clamp(14px,min(2.8cqw,3cqh),24px);font-weight:700;line-height:1.25}.cuisine-compteurs .cuisine-restants dd{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:.12em;margin-top:clamp(2px,.9cqh,10px);font-size:clamp(48px,min(22cqw,17cqh),200px);font-weight:900;line-height:1;display:grid}.cuisine-restants dd>span:first-child{grid-column:2}.cuisine-attendus{white-space:nowrap;grid-column:3;justify-self:end;font-size:.38em;font-weight:600;transform:translate(-8px)}.cuisine-groupes{grid-template-rows:minmax(min-content,1fr) minmax(min-content,2fr);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(4px,.9cqh,12px) clamp(8px,2cqw,24px);display:grid}.cuisine-total{text-align:center;border:1px solid;border-radius:10px;align-content:center;align-self:stretch;padding:clamp(4px,1.2cqh,16px) 8px;display:grid}.cuisine-total dt{min-height:1.25em;font-size:clamp(12px,min(2.8cqw,3cqh),22px);font-weight:700;line-height:1.25}.cuisine-compteurs .cuisine-total dd{margin-top:clamp(2px,.5cqh,6px);font-size:clamp(28px,min(12cqw,9cqh),104px);line-height:1.05}.cuisine-total--repas{color:var(--color-present-text);background:var(--color-present-background);border-color:var(--color-present-border)}.cuisine-total--absences{color:var(--color-absent-text);background:var(--color-absent-background);border-color:var(--color-absent-border)}.cuisine-details{border-top:3px solid;gap:clamp(2px,.6cqh,6px);padding-top:clamp(2px,.6cqh,6px);display:grid}.cuisine-details--repas{border-color:var(--color-present-border)}.cuisine-details--absences{border-color:var(--color-absent-border);grid-template-rows:repeat(5,minmax(min-content,1fr));align-self:stretch}.cuisine-detail{background:var(--detail-background);min-width:0;color:var(--detail-text);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:clamp(3px,.7cqh,10px) 8px;display:grid}.cuisine-detail dt{font-size:clamp(12px,min(2.2cqw,2.8cqh),20px);font-weight:600;line-height:1.25}.cuisine-detail dd{font-size:clamp(18px,min(4.5cqw,3.8cqh),40px);font-weight:800;line-height:1.1}.cuisine-detail--present{--detail-background:var(--color-present-background);--detail-text:var(--color-present-text)}.cuisine-detail--ticket{--detail-background:var(--color-ticket-background);--detail-text:var(--color-ticket-text)}.cuisine-detail--absent{--detail-background:var(--color-absent-background);--detail-text:var(--color-absent-text)}.cuisine-detail--stage{--detail-background:var(--color-stage-background);--detail-text:var(--color-stage-text)}.cuisine-detail--sortie{--detail-background:var(--color-sortie-background);--detail-text:var(--color-sortie-text)}.cuisine-detail--motif{--detail-background:var(--color-motif-background);--detail-text:var(--color-motif-text)}.cuisine-detail--refus{--detail-background:var(--color-refus-background);--detail-text:var(--color-refus-text)}
