:root{--navy:#082b3d;--navy-dark:#061d2b;--green:#07845f;--green-dark:#046b4c;--green-soft:#e9f6f1;--ink:#183443;--ink-soft:#395461;--muted:#6c818b;--line:#dbe6e8;--line-strong:#bfd0d5;--paper:#fff;--canvas:#f2f6f6;--shadow:0 18px 55px rgba(5,30,44,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas)}body{min-height:100vh;margin:0;color:var(--ink);background:linear-gradient(180deg,#eaf3f1 0,#f4f7f7 380px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,select{font:inherit}.skip-link{position:fixed;z-index:99;left:12px;top:10px;transform:translateY(-160%);border-radius:8px;padding:10px 14px;background:#fff;color:var(--navy);font-weight:800}.skip-link:focus{transform:none}.student-header{position:sticky;z-index:20;top:0;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid rgba(255,255,255,.12);padding:12px max(22px,calc((100vw - 1480px)/2));color:#fff;background:rgba(6,29,43,.97);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.08);font-weight:950}.brand-mark span{color:#f2bc45}.brand strong,.brand small{display:block}.brand small{margin-top:2px;color:#a7bac2;font-size:.7rem}.student-header nav{display:flex;gap:9px}.button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;padding:9px 15px;font-size:.78rem;font-weight:850;cursor:pointer}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:#0a956d}.button.quiet{border-color:#c3d2d6;background:#fff;color:var(--ink)}.student-header .button.quiet{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff}.button:focus-visible,.rubric-tab:focus-visible,select:focus-visible{outline:3px solid #6ad0ad;outline-offset:2px}main{width:min(1480px,calc(100% - 44px));margin:0 auto;padding:42px 0 70px}.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:36px;align-items:end;border-radius:24px;padding:42px 44px;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(52,191,143,.23),transparent 28%),linear-gradient(140deg,var(--navy-dark),#0b4355);box-shadow:var(--shadow)}.eyebrow{margin:0 0 10px;color:#72dbb5;font-size:.7rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.hero h1{max-width:920px;margin:0;font:700 clamp(2.15rem,4vw,4rem)/1.02 Georgia,serif;letter-spacing:-.035em}.hero p:not(.eyebrow){max-width:820px;margin:20px 0 0;color:#c3d5dc;line-height:1.7}.hero-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.hero-steps span{display:grid;gap:5px;border:1px solid rgba(255,255,255,.16);border-radius:13px;padding:15px;background:rgba(255,255,255,.07);color:#d7e6ea;font-size:.73rem}.hero-steps b{color:#7ae0bd;font-size:1.08rem}.evaluation-shell{margin-top:24px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 12px 38px rgba(5,30,44,.08);overflow:hidden}.rubric-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:18px 20px;background:#f8fbfa}.rubric-tabs{display:flex;gap:8px}.rubric-tab{min-width:112px;display:grid;gap:2px;border:1px solid var(--line-strong);border-radius:10px;padding:9px 15px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.rubric-tab strong{font-size:.82rem}.rubric-tab small{color:var(--muted);font-size:.67rem}.rubric-tab[aria-selected="true"]{border-color:var(--green);background:var(--green-soft);color:var(--green-dark);box-shadow:inset 0 0 0 1px var(--green)}.rubric-actions{display:flex;align-items:flex-end;gap:9px}.rubric-actions label{display:grid;gap:5px;color:var(--muted);font-size:.68rem;font-weight:850}.rubric-actions select{min-width:250px;min-height:42px;border:1px solid var(--line-strong);border-radius:9px;padding:8px 11px;background:#fff;color:var(--ink)}.student-note{display:grid;grid-template-columns:160px 1fr;gap:18px;border-bottom:1px solid var(--line);padding:14px 20px;background:#f1f8f5}.student-note strong{color:var(--green-dark);font-size:.78rem}.student-note p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}.rubric-viewer{padding:22px}.loading-state,.error-state{margin:0;border-radius:12px;padding:26px;background:#f5f8f8;color:var(--muted);text-align:center}.rubric-header{display:flex;align-items:flex-start;gap:14px;border-radius:15px;padding:22px 24px;color:#fff;background:linear-gradient(135deg,var(--navy),#0d4d5c)}.rubric-header>div{min-width:0;flex:1}.rubric-kind{margin:0 0 5px;color:#78d8b6;font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.rubric-header h2{margin:0;font:700 1.75rem/1.15 Georgia,serif}.rubric-summary{max-width:900px;margin:9px 0 0;color:#c5d8de;font-size:.82rem;line-height:1.55}.rubric-selected-lot{margin:9px 0 0;color:#bdf0dc;font-size:.8rem;font-weight:850}.rubric-count,.rubric-total{flex:none;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.08);font-size:.7rem;font-weight:850}.rubric-scope-note{margin:13px 0 0;border-left:3px solid #78bda4;padding:9px 12px;background:#f3f8f6;color:var(--muted);font-size:.78rem;line-height:1.55}.rubric-matrix-wrap{overflow:auto}.rubric-footer-note{margin-top:16px;border-radius:12px;padding:14px 16px;background:#edf6f2}.rubric-footer-note strong{color:var(--green-dark);font-size:.78rem}.rubric-footer-note p{margin:5px 0 0;color:var(--muted);font-size:.77rem;line-height:1.5}.table-hint{display:none;margin:10px 0 0;color:var(--muted);font-size:.73rem}footer{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px max(22px,calc((100vw - 1480px)/2));color:#b5c7cd;background:var(--navy-dark);font-size:.72rem}footer span:first-child{color:#fff;font-weight:850}
@media(max-width:1050px){.hero{grid-template-columns:1fr}.rubric-toolbar{align-items:stretch;flex-direction:column}.rubric-actions{flex-wrap:wrap}.rubric-actions label{flex:1}.rubric-actions select{width:100%;min-width:210px}.table-hint{display:block}}
@media(max-width:680px){.student-header{align-items:flex-start;padding:11px 14px}.student-header nav .quiet{display:none}.student-header .button{padding:8px 10px;font-size:.7rem}main{width:calc(100% - 24px);padding-top:18px}.hero{border-radius:17px;padding:26px 20px}.hero h1{font-size:2.15rem}.hero-steps{grid-template-columns:1fr}.rubric-toolbar,.rubric-viewer{padding:13px}.rubric-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.rubric-tab{min-width:0;padding:9px}.rubric-actions{align-items:stretch;flex-direction:column}.rubric-actions .button{width:100%}.student-note{grid-template-columns:1fr;gap:5px;padding:13px}.rubric-header{flex-wrap:wrap;padding:18px}.rubric-header h2{font-size:1.4rem}footer{align-items:flex-start;flex-direction:column;padding:20px 14px}}
@media print{.student-header,.hero,.rubric-toolbar,.student-note,footer,.table-hint{display:none!important}body{background:#fff}main{width:100%;padding:0}.evaluation-shell{margin:0;border:0;box-shadow:none}.rubric-viewer{padding:0}.rubric-header{border-radius:0;padding:12px 14px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.rubric-scope-note,.rubric-footer-note{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.self-assessment{display:grid;grid-template-columns:minmax(250px,1fr) minmax(170px,.45fr) minmax(220px,.55fr) auto;gap:12px;align-items:center;margin-top:14px;border:1px solid #b9dccc;border-radius:14px;padding:14px;background:linear-gradient(135deg,#edf8f3,#f8fbfa)}.self-assessment-heading .rubric-kind{color:var(--green)}.self-assessment-heading h3{margin:3px 0 0;font:700 1.05rem/1.25 Georgia,serif}.self-assessment-metric{min-height:66px;display:grid;align-content:center;gap:5px;border-left:1px solid #cfe1da;padding-left:14px}.self-assessment-metric span{color:var(--muted);font-size:.67rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.self-assessment-metric strong{font-size:.86rem}.self-assessment-metric progress{width:100%;height:7px;accent-color:var(--green)}.button.compact{min-height:36px;padding:7px 11px;font-size:.72rem}.button:disabled{cursor:not-allowed;opacity:.5}.rubric-matrix td.matrix-descriptor{padding:0}.level-choice{width:100%;height:100%;min-height:150px;display:flex;flex-direction:column;gap:9px;border:0;padding:14px 13px;color:var(--ink-soft);background:transparent;text-align:left;line-height:1.5;cursor:pointer}.level-choice:hover{background:rgba(255,255,255,.66)}.level-choice:focus-visible{position:relative;z-index:1;outline:3px solid var(--matrix-accent);outline-offset:-3px}.level-choice-state{display:inline-flex;align-self:flex-start;border:1px solid color-mix(in srgb,var(--matrix-accent) 38%,white);border-radius:999px;padding:4px 7px;color:var(--matrix-accent);background:rgba(255,255,255,.72);font-size:.63rem;font-weight:900}.level-choice-description{font-size:.8rem}.rubric-matrix td.matrix-descriptor.selected{position:relative;background:color-mix(in srgb,var(--matrix-surface) 72%,var(--matrix-accent) 28%);box-shadow:inset 0 0 0 3px var(--matrix-accent)}.rubric-matrix td.matrix-descriptor.selected .level-choice-state{border-color:var(--matrix-accent);color:#fff;background:var(--matrix-accent)}
@media(max-width:1050px){.self-assessment{grid-template-columns:1fr 1fr}.self-assessment-heading{grid-column:1/-1}.self-assessment .button{justify-self:start}}
@media(max-width:680px){.self-assessment{grid-template-columns:1fr}.self-assessment-heading{grid-column:auto}.self-assessment-metric{border-left:0;border-top:1px solid #cfe1da;padding:10px 0 0}.self-assessment .button{width:100%}.level-choice{min-height:135px}}
@media print{.self-assessment .button,.level-choice-state{display:none!important}.self-assessment{grid-template-columns:1fr 1fr 1fr;margin-top:8px;padding:8px}.level-choice{min-height:0;padding:7px}.rubric-matrix td.matrix-descriptor.selected{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Alignement de lecture : titres a gauche, textes developpes justifies. */
body,.hero,.hero h1,.hero-steps span,.rubric-toolbar,.rubric-actions,.student-note,.rubric-header,.rubric-scope-note,.self-assessment,.rubric-footer-note,.table-hint,.rubric-matrix th,.rubric-matrix td,.loading-state,.error-state,footer{text-align:left}
.hero p:not(.eyebrow),.student-note p,.rubric-summary,.rubric-scope-note,.rubric-footer-note p,.table-hint,.level-choice-description,.rubric-matrix caption,.rubric-matrix tbody th.matrix-criterion,.matrix-criterion p,.matrix-subcriteria li,.rubric-matrix .matrix-criterion p.matrix-lot-note{text-align:justify;text-justify:inter-word;hyphens:auto}
.rubric-matrix .matrix-weight-heading,.rubric-matrix .matrix-weight{text-align:left}
.button{justify-content:flex-start;text-align:left}
footer{justify-content:flex-start;flex-wrap:wrap}
.hero{grid-template-columns:1fr;align-items:start}
.hero-steps{max-width:920px}
.rubric-toolbar{align-items:stretch;flex-direction:column}
.rubric-actions{justify-content:flex-start;flex-wrap:wrap}
.student-note{grid-template-columns:1fr;gap:6px}
