.base-link,a:not([class]){-webkit-tap-highlight-color:transparent;cursor:pointer;transition-property:color,background,background-color,background-image,background-size,background-position,border-color,text-shadow,box-shadow,opacity,transform,text-indent,filter;transition-duration:.15s;color:#00f;text-decoration:underline;font-size:inherit;font-family:inherit;line-height:inherit}.base-btn,button:not([class]),input:not([class])[type=submit],input:not([class])[type=reset]{-webkit-tap-highlight-color:transparent;cursor:pointer;transition-property:color,background,background-color,background-image,background-size,background-position,border-color,text-shadow,box-shadow,opacity,transform,text-indent,filter;transition-duration:.15s;display:inline-flex;align-items:center;justify-content:center;font-size:inherit;padding:.25em 1.2em;border:0;color:inherit;text-align:center;text-decoration:none;vertical-align:middle;background:none;border-radius:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}main>.container{margin-bottom:50px}html{color:#000;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5;box-sizing:border-box;scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}h1,h2,h3,h4,h5,h6{font-family:"Source Serif 4",serif;font-weight:400;text-align:center}*,*:before,*:after{box-sizing:inherit}body{color:#000;background-color:#fff;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6,hgroup,ul,ol,dd,p,figure,pre,table,fieldset,hr{margin-top:0}a{color:inherit;text-decoration:inherit}audio,canvas,iframe,img,svg,video{vertical-align:middle}img{height:auto;max-width:100%}option,optgroup{color:initial}textarea{resize:vertical}.hidden{display:none}html,body{height:100%}#app{display:flex;flex-direction:column}.login-container{max-width:400px;margin:auto;padding:2rem 1.5rem 1.5rem;background:#fff;border-radius:1rem;text-align:center;display:flex;flex-direction:column;justify-content:center}.login-container h1{font-size:2rem;margin-bottom:1rem;font-weight:400}.login-container .subtitle{color:#5a6170;font-size:1rem;margin-bottom:1.5rem}.login-input{width:100%;padding:1rem .75rem;font-size:1.1rem;border:1.5px solid #d1d5db;border-radius:1rem;margin-bottom:1.5rem;background:#f9fafb;color:#222;outline:none;transition:border .2s}.login-input:focus{border-color:#ff7a5c}.login-btn{width:100%;padding:1rem 0;font-size:1.1rem;background:#f87a5c;color:#fff;border:none;border-radius:1rem;cursor:pointer;font-weight:500;transition:background .2s}.login-btn:hover{background:#ff5a36}input[type=email],input[type=text],input[type=date],input[type=password],input:not([type]),select,textarea{width:100%;padding:1rem .75rem;font-size:1.1rem;border:1.5px solid #d1d5db;border-radius:1rem;margin-bottom:1.5rem;background:#fff;color:#222;outline:none;transition:border .2s}input[type=email]:focus,input[type=date]:focus,input[type=text]:focus,input[type=password]:focus,input:not([type]):focus,select:focus,textarea:focus{border-color:#ff7a5c}.vertical-centered{min-height:100vh;display:flex;align-items:center;justify-content:center}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.base-btn{width:100%;font-size:1.1rem;background:#f87a5c;color:#fff;border:none;border-radius:9px;cursor:pointer;font-weight:400;transition:background .2s;min-height:50px}.base-btn:hover{background:#ff5a36}.base-btn--secondary{background:#fff;color:#444;border:1px solid #c4c4c4}.base-btn--secondary:hover{background:#eceff3}.base-btn>svg{margin-right:.5rem}.browser-upgrade{background:#ff0;padding:.9375em;margin-bottom:0}@supports (display: flex){.browser-upgrade{display:none}}.icon:before{font-style:normal;font-weight:400;font-variant:normal;text-transform:none;speak:never;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.errors{background:#ffeaea;color:#c0392b;border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;text-align:left}.errors ul{margin:0;padding-left:1.2em}.errors li{font-size:.95rem;line-height:1.5}.alert{display:flex;align-items:flex-start;border-radius:8px;padding:16px 20px;font-size:.9rem;margin-bottom:32px;line-height:1.5rem;text-align:left}.alert__icon{font-size:1.5em;margin-right:12px;flex-shrink:0}.alert--info{background:#f0f7ff;border-left:5px solid #4da3ff;color:#2563eb}.alert--success{background:#d1fadf;border-left:5px solid #10b981;color:#10b981}.alert--danger{background:#f8d7da;border-left:5px solid #dc3545;color:#dc3545}.table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:16px;overflow:hidden;font-size:.9rem;box-shadow:0 2px 16px #0000000f}.table thead{background:#f7f8fa}.table th,.table td{padding:18px 16px;text-align:left;vertical-align:middle}.table th{font-size:.98em;font-weight:400;color:#7b7b7b;border-bottom:1px solid #ececec;background:#f7f8fa;text-transform:uppercase}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:#f5f7fa}.table tbody tr:not(:last-child) td{border-bottom:1.5px solid #e5e7eb}.table tbody tr .stage-checkbox:checked~td,.table tbody tr .stage-checkbox:checked{background:#e8f4fd}.table tbody tr:has(.stage-checkbox:checked){background:#e8f4fd}.table tbody td{color:#555}.table tbody td .table__sub{display:block;font-size:.93em;color:#a0a0a0;margin-top:2px}.table:has(.stage-checkbox:checked){margin-bottom:200px}.table__actions{display:flex;gap:8px;flex-direction:column}.table .base-btn{font-size:.9rem;padding-top:10px;padding-bottom:10px;font-weight:400}.stages-filters{background:#fff;border-radius:16px;box-shadow:0 2px 16px #0000000f;padding:24px 32px 8px;margin-bottom:32px}.stages-filters__row{display:flex;gap:32px;align-items:flex-end;flex-wrap:wrap}.stages-filters__group{flex:1 1 0;min-width:180px;display:flex;flex-direction:column;margin-bottom:16px}.stages-filters__label{font-size:1.08em;color:#444;font-weight:500;margin-bottom:8px;text-align:center}.stages-filters__input{margin-bottom:0!important}.stage-status{display:inline-block;padding:4px 14px;border-radius:8px;font-size:.97em;font-weight:500;background:#f7f8fa;color:#555;margin:0;white-space:nowrap;letter-spacing:.01em;vertical-align:middle;transition:background .2s,color .2s}.stage-status--new{background:#fffbe6;color:#bfa100;border:1px solid #fff3bf}.stage-status--sent-to-teacher{background:#fff0e6;color:#e67c3c;border:1px solid #ffd6b3}.stage-status--completed-by-teacher{background:#f0f2ff;color:#5c6ac4;border:1px solid #b3baff}.stage-status--sent-to-parents{background:#dbeafe;color:#1e40af;border:1px solid #b3d8fd}.stage-status--upcoming{background:#e7f3ff;color:#2563eb;border:1px solid #b3d8fd}.wizard-progress{width:100%;margin:24px 0 32px}.wizard-progress__bar{width:100%;height:14px;background:#eceff3;border-radius:7px;position:relative;overflow:hidden;margin-bottom:8px}.wizard-progress__fill{background:#fa7a5c;height:100%;border-radius:7px;transition:width .3s}.wizard-progress__footer{display:flex;justify-content:space-between;align-items:center;font-size:.85em;color:#5a6473;margin-top:2px}.bulk-actions-bar{position:fixed;bottom:0;left:0;width:100%;background-color:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -2px 10px #0000000d;padding:16px 0;z-index:100;display:none}.bulk-actions-bar__container{display:flex;justify-content:space-between;align-items:center}.bulk-actions-bar__count{font-size:1rem;color:#374151;font-weight:500}.bulk-actions-bar__actions{display:flex;gap:12px;max-width:640px;width:100%}@media print{*,*:before,*:after{box-shadow:none;background:transparent!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.login-container{max-width:400px;padding:2rem 1.5rem 1.5rem;background:#fff;border-radius:1rem;text-align:center;display:flex;flex-direction:column;justify-content:center}.login-container__logo{display:block;margin:0 auto 2rem;max-width:120px;height:auto}.login-container__subtitle{color:#5a6170;font-size:1rem;margin-bottom:1.5rem}.login-container__message{color:#5a6170;font-size:1rem;line-height:1.5;margin-bottom:1rem}.login-container__errors{background:#ffeaea;color:#c0392b;border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;text-align:left}.login-container__errors ul{margin:0;padding-left:1.2em}.login-container__errors li{font-size:.95rem;line-height:1.5}.stages-selection-date{max-width:500px;margin:40px auto;background:#fff;border-radius:16px;box-shadow:0 2px 16px #0000000f;padding:32px 24px;text-align:center}.stages-selection-date__icon{font-size:1.5em;margin-right:12px;flex-shrink:0}.stages-selection-date__form-group{margin-bottom:20px}.stages-selection-date__label{display:block;font-weight:500;margin-bottom:6px}.stages-selection-date__input{width:100%;padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;background:#fff;transition:border .2s}.stages-selection-date__input[readonly]{background:#f3f4f6;color:#888}.stages-selection-date__submit{width:100%;background:#fa7a5c;color:#fff;border:none;border-radius:8px;padding:14px 0;font-size:1.1rem;font-weight:600;cursor:pointer;margin-top:10px;transition:background .2s}.stages-selection-date__submit:hover{background:#e05d3c}.quiz-page{max-width:800px;margin:0 auto 50px;width:93%}.quiz-page__intro{margin-bottom:24px}.quiz-page__stage-info{background:#f7f8fa;border-radius:12px;padding:20px 24px;margin-bottom:32px}.quiz-page__stage-title{font-size:1.2em;margin-bottom:10px}.quiz-page__stage-list{list-style:none;padding:0;margin:30px 0 -10px}.quiz-page__stage-list-item{margin-bottom:10px}.quiz-page__students{margin-top:24px}.quiz-page__students-list{list-style:disc inside;margin-top:8px}.quiz-page__students-list-item{margin-bottom:6px}.quiz-page__students-empty{color:#888;margin-top:8px}.quiz-page__form-group{margin-bottom:32px}.quiz-page__label{display:block;text-align:center;font-size:1.15em;color:#444;font-weight:500;margin-bottom:12px;margin-top:20px}.quiz-page__actions{border-top:1px solid #eceff3;margin:40px 0 0;padding-top:24px;display:flex;justify-content:space-between;align-items:center;width:100%}.quiz-page__actions .base-btn{width:auto}.quiz-page__student-block{background:#f9fafb;border-radius:14px;box-shadow:0 2px 12px #0000000f;border:2px solid #eceff3;padding:28px 24px 20px;margin-bottom:40px;transition:box-shadow .2s,border .2s,background .2s;position:relative}.quiz-page__student-block--nonevaluable{background:#fff0e6;border-color:#fa7a5c}.quiz-page__student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid #eceff3}.quiz-page__student-header-actions{display:flex;align-items:center;gap:15px}.quiz-page__sent-info{font-size:.85rem;color:#6b7280}.quiz-page__student-actions{display:flex;gap:10px;margin-top:10px}.quiz-page__checkbox-label{display:flex;align-items:center;gap:6px;font-size:1em;color:#444;font-weight:400}.quiz-page__student-fields-row{display:flex;gap:18px;margin-bottom:18px}@media (max-width: 700px){.quiz-page__student-fields-row{flex-direction:column;gap:0}}.quiz-page__form-group{flex:1 1 0}.quiz-page__student-fields{margin-bottom:0}.quiz-page__student-non-evaluable{border-radius:8px;padding:16px 14px;margin-top:10px;color:#888;font-size:.98em}.quiz-page__summary{max-width:800px;margin:0 auto}.quiz-page__section{margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.quiz-page__section-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#2c3e50}.quiz-page__info-block{background:#f8f9fa;border-radius:6px;padding:1rem}.quiz-page__info-block--warning{background:#fff3cd;border:1px solid #ffeeba}.quiz-page__info-row{margin-bottom:.75rem}.quiz-page__info-row:last-child{margin-bottom:0}.quiz-page__info-row strong{display:block;margin-bottom:.25rem;color:#495057}.quiz-page__text-content{white-space:pre-line;color:#212529}.quiz-page__student-summary{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #dee2e6}.quiz-page__student-summary:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.quiz-page__student-name{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;color:#2c3e50}.quiz-page__completed{max-width:600px;margin:4rem auto;text-align:center}.quiz-page__completed-icon{color:#28a745;margin-bottom:2rem}.quiz-page__completed-icon svg{width:64px;height:64px}.quiz-page__completed-title{font-size:2rem;color:#2c3e50;margin-bottom:1.5rem}.quiz-page__completed-text{font-size:1.1rem;color:#495057;margin-bottom:2rem;line-height:1.6}.quiz-page__completed-info{background:#e9ecef;border-radius:6px;padding:1rem;color:#495057;font-size:.9rem}.bilan-body{background-color:#f3f4f6}.bilan-page{padding:50px 0;font-family:Roboto,sans-serif;color:#374151}.bilan-page .container{max-width:1000px}@media (max-width: 768px){.bilan-page .container{padding:0}}.bilan-page__header{text-align:center;margin-bottom:40px}.bilan-page__logo img{max-height:50px;margin-bottom:20px}.bilan-page__title{font-family:"Source Serif 4",serif;font-size:2.25rem;font-weight:600;color:#111827}.bilan-page__grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:25px}.bilan-page__grid .bilan-card{margin-bottom:0}@media (max-width: 768px){.bilan-page__grid{grid-template-columns:1fr;gap:15px;margin-bottom:15px}.bilan-page__grid .bilan-card{margin-bottom:15px}}.bilan-page__footer{border-top:2px solid #e5e7eb;margin-top:50px;padding-top:30px;display:flex;justify-content:space-between;align-items:flex-end;font-size:.95em;color:#4b5563}@media (max-width: 768px){.bilan-page__footer{margin-top:30px;padding-top:20px;flex-direction:column;align-items:flex-start;gap:15px}}.bilan-page__footer-signature{display:flex;flex-direction:column}.bilan-page__footer-signature strong{font-weight:600;margin-top:4px;color:#111827}.bilan-page__actions{margin-bottom:2rem;text-align:center;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.bilan-page__actions .base-btn{display:inline-flex;align-items:center;gap:.5rem;width:auto}@media (max-width: 768px){.bilan-page__actions{text-align:center;margin-bottom:1.5rem;flex-direction:column;align-items:center;gap:.75rem}.bilan-page{padding:20px 0}.bilan-page__header{margin-bottom:25px}.bilan-page__logo img{max-height:40px;margin-bottom:15px}.bilan-page__title{font-size:1.75rem}}.bilan-document{background:#fff;border-radius:6px;padding:40px;box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a;border:1px solid #e5e7eb}@media (max-width: 768px){.bilan-document{padding:20px 15px;border-radius:4px;margin:0 10px}}.bilan-card{background:#fafafa;border-radius:8px;padding:25px 30px;margin-bottom:25px;box-shadow:none;border:1px solid #e5e7eb}.bilan-card__title{font-family:inherit;text-align:center;font-size:1.75rem;font-weight:600;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e5e7eb}@media (max-width: 768px){.bilan-card__title{font-size:1.5rem;margin-bottom:20px;padding-bottom:15px}}.bilan-card h4{font-family:inherit}.bilan-card__subtitle{font-family:inherit;font-size:1.3rem;font-weight:500;color:#111827;margin-bottom:20px;border-bottom:1px solid #e5e7eb;padding-bottom:10px}@media (max-width: 768px){.bilan-card__subtitle{font-size:1.1rem;margin-bottom:15px;padding-bottom:8px}}.bilan-card p,.bilan-card ul{line-height:1.8;color:#4b5563}.bilan-card__info{display:grid;grid-template-columns:repeat(2,1fr);gap:15px 30px}@media (max-width: 768px){.bilan-card__info{grid-template-columns:1fr;gap:10px}}.bilan-card__info-item strong{margin-right:10px;font-weight:500}.bilan-card__info-item span{font-weight:400;text-align:right;color:#111827}@media (max-width: 768px){.bilan-card__info-item span{text-align:left;display:block;margin-top:2px}.bilan-card__info-item strong{display:block;margin-bottom:2px;margin-right:0}}.bilan-card__list{list-style:none;padding:0}.bilan-card__list-item{margin-bottom:12px;display:flex;justify-content:space-between}@media (max-width: 768px){.bilan-card__list-item{flex-direction:column;margin-bottom:15px}.bilan-card__list-item strong{margin-bottom:3px}.bilan-card__list-item span{text-align:left}}.bilan-card__hr{border:0;height:1px;background:#e5e7eb;margin:25px 0}@media (max-width: 768px){.bilan-card__hr{margin:20px 0}.bilan-card{padding:20px 15px;margin-bottom:15px;border-radius:6px}}.bilan-pdf h1{margin-top:0!important}.bilan-pdf .bilan-page__header{margin-bottom:20px!important}.bilan-pdf .bilan-card{margin-bottom:15px!important;padding:15px 20px!important}.bilan-pdf .bilan-page__grid{gap:15px!important;margin-bottom:15px!important}.bilan-pdf .bilan-page__footer{margin-top:25px!important;padding-top:15px!important}.bilan-pdf .bilan-card__title{margin-bottom:20px!important;padding-bottom:15px!important}.bilan-pdf .bilan-card__subtitle{margin-bottom:15px!important;padding-bottom:8px!important}.bilan-pdf .bilan-card__hr{margin:15px 0!important}.bilan-pdf .bilan-document{padding:0!important;border:none!important}@media print{.bilan-page__actions{display:none!important}h1{margin-top:0!important}.bilan-page__header{margin-bottom:20px!important}.bilan-card{margin-bottom:15px!important;padding:15px 20px!important}.bilan-page__grid{gap:15px!important;margin-bottom:15px!important}.bilan-page__footer{margin-top:25px!important;padding-top:15px!important}.bilan-card__title{margin-bottom:20px!important;padding-bottom:15px!important}.bilan-card__subtitle{margin-bottom:15px!important;padding-bottom:8px!important}.bilan-card__hr{margin:15px 0!important}.bilan-document{padding:0!important;border:none!important}}.show-bilans-page__student-name{margin:0;font-size:1.1em;font-weight:600}.show-bilans-page__student-parent-info{font-size:.9em;color:#6b7280;margin-top:4px}.show-bilans-page__status-badge{padding:4px 8px;border-radius:4px;font-size:.85em;font-weight:500}.show-bilans-page__status-badge--evaluable{background:#dcfce7;color:#166534}.show-bilans-page__status-badge--non-evaluable{background:#fef2f2;color:#dc2626}.show-bilans-page__status-badge--pending{background:#fef3c7;color:#d97706}.show-bilans-page__bilan-status{display:flex;justify-content:space-between;align-items:center;margin-top:15px}.show-bilans-page__bilan-sent{font-size:.9em;color:#059669}.show-bilans-page__bilan-not-sent{font-size:.9em;color:#dc2626}
