:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#203646;background:#f2f6f9;font-synthesis:none;--brand:#156c82;--line:#dbe5eb;--accent:#e4f2f3}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a.btn{border:1px solid var(--line);border-radius:12px;background:white;color:#264555;min-height:48px;padding:10px 17px;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover,a.btn:hover{background:#eaf3f6}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.primary{background:var(--brand);color:white;border-color:var(--brand)}button.active{background:#d3ecef;border-color:var(--brand);color:#085166}button.danger{color:#9d3c32}input,select,textarea{background:white;border:1px solid #b9cbd5;border-radius:9px;padding:11px;min-height:48px;max-width:100%;color:inherit}input[type=checkbox]{width:22px;height:22px;min-height:22px}label{display:flex;flex-direction:column;gap:7px;font-size:.88rem;font-weight:600}label.check{flex-direction:row;align-items:center;gap:12px}input[type=number]{width:150px}textarea{width:100%;min-height:70px}h1{font-size:1.55rem;margin:0}h2{font-size:1.24rem;margin:0 0 16px}h3{font-size:1rem;margin:4px 0 12px}p{line-height:1.5}small,.muted{color:#5f7584}header{background:white;border-bottom:1px solid var(--line);padding:16px max(20px,calc((100vw - 1280px)/2));display:flex;align-items:center;gap:14px;justify-content:space-between}header img{width:43px}header .brand{display:flex;gap:12px;align-items:center}.tools,.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.tools{justify-content:flex-end}.shell{max-width:1280px;margin:auto;padding:20px}.context{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-bottom:18px}.context label{flex:1;min-width:150px}nav{display:flex;gap:7px;overflow:auto;padding-bottom:12px;margin-bottom:14px}nav button{white-space:nowrap;background:transparent;border-color:transparent}nav button.active{background:white}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:18px;box-shadow:0 3px 12px #27495905}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid>.card{margin:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.metric{background:#edf5f7;border-radius:14px;padding:18px;flex:1;min-width:120px}.metric strong{display:block;font-size:1.8rem;color:#135970}.metric small{display:block}.pill{display:inline-block;border-radius:20px;padding:5px 10px;background:#e7f3eb;color:#276045;font-size:.8rem}.warn{background:#fff2d9;color:#79500b;padding:13px;border-radius:10px}.error{background:#feece8;color:#983c2b;padding:13px;border-radius:10px}.good{color:#246b46}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.stepper{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stepper output{font-size:2rem;font-weight:750;min-width:90px;text-align:center}.stepper button{min-width:65px;font-size:1.2rem}.stack{display:grid;gap:15px}.picker{display:flex;gap:6px;flex-wrap:wrap}.picker label{position:relative;display:flex;flex-direction:row;padding:10px 13px;min-height:48px;align-items:center;border:1px solid var(--line);border-radius:10px;cursor:pointer}.picker label:has(input:checked){border-color:var(--brand);background:#e1f0f2}.picker input{width:17px;min-height:17px;height:17px;margin:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:#58707e;font-weight:600}details{margin-top:16px}summary{cursor:pointer;padding:12px 0;font-weight:650}#notice{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:min(90vw,700px);padding:14px 20px;border-radius:12px;background:#203b4b;color:white;box-shadow:0 5px 20px #0002;z-index:30;display:none}#notice.show{display:block}.status{font-size:.78rem}.boot,.welcome{max-width:750px;margin:60px auto;padding:25px}.welcome h1{font-size:2.2rem}.eyebrow{color:var(--brand);font-size:.8rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px}.empty{padding:26px;text-align:center;color:#657985}.terrain .secondary,.terrain nav,.terrain .class-context{display:none}.terrain main{max-width:960px;margin:auto}.terrain button{min-height:58px}.terrain .stepper button{min-height:68px;min-width:75px}.terrain .metric strong{font-size:2.2rem}.terrain .card{padding:22px}.diagram{width:100%;height:auto;min-height:260px;background:#f8fbfc;border-radius:12px}.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:.85rem}.legend span:before{content:'';display:inline-block;width:13px;height:13px;border-radius:3px;margin-right:6px;background:var(--color)}.install:fullscreen{overflow:auto;background:white;padding:25px}.install ol{line-height:2}.install .current-step{background:#e6f3f5;border-radius:10px;padding:12px}.score{font-size:2.3rem;color:var(--brand);font-weight:750}.hr{border:0;border-top:1px solid var(--line);margin:20px 0}.footer{font-size:.8rem;color:#627886;text-align:center;padding:20px}.offline{background:#fff1d6;color:#725014}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.settings-grid input{width:100%}:focus-visible{outline:3px solid #e9a735;outline-offset:3px}@media(max-width:760px){header{padding:12px}.shell{padding:12px}.grid{grid-template-columns:1fr}.tools .label{display:none}header h1{font-size:1.05rem}header small{font-size:.7rem}.card{padding:17px}.context{gap:8px}.context label{min-width:130px}.metric{padding:13px}.metric strong{font-size:1.45rem}nav{gap:0}nav button{padding:10px}.stepper{gap:6px}.stepper button{min-width:52px;padding:10px}.terrain .stepper button{min-width:53px}.terrain .stepper output{min-width:72px;font-size:1.7rem}.section-title{align-items:flex-start}.settings-grid{grid-template-columns:repeat(2,1fr)}}@media print{@page{size:A4 landscape;margin:10mm}header,nav,.context,.no-print,.footer,#notice{display:none!important}.shell{padding:0}.card{box-shadow:none;break-inside:avoid}.diagram{min-height:0}.secondary{display:none}body{background:white}main{width:100%}.install{border:0;padding:0}.table-wrap{overflow:visible}}
@media(max-width:760px){header{flex-wrap:wrap}.tools{width:100%;justify-content:space-between}.tools button{padding:9px 12px}.brand{min-width:0}.status{font-size:.72rem}.context select{width:100%}.settings-grid label{min-width:0}}
@media print{.install .diagram{height:108mm;min-height:0;max-height:108mm}.install p{font-size:10pt;margin:5px 0}.install .metric{padding:8px}.install .current-step{display:none}.install .section-title{margin-bottom:5px}.install .cards{margin-top:8px}.install .legend{font-size:9pt}.install h2{font-size:15pt}.install h3{margin-bottom:4px}}
.welcome form{margin-top:22px}.welcome input{width:100%}.welcome .stack{max-width:520px}.context button{white-space:nowrap}#localClassPanel textarea{min-height:150px}

/* S1 diagnostic */
.diagnostic-summary{margin-bottom:16px}.diagnostic-tabs{display:flex;gap:8px;overflow:auto;margin:0 0 18px}.diagnostic-tabs button{white-space:nowrap}.student-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.diag-status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:750}.diag-complete{background:#e7f3eb;color:#246b46}.diag-partial{background:#fff2d9;color:#79500b}.diag-missing{background:#eef2f4;color:#60737f}.student-link{min-height:38px;padding:6px 10px;text-align:left;justify-content:flex-start}.diagnostic-balance{scroll-margin-top:16px}.pair-list{gap:10px}.pair-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:12px}.pair-line .row{justify-content:flex-end}
@media(max-width:760px){.student-head,.pair-line{align-items:stretch;flex-direction:column}.pair-line .row{justify-content:flex-start}.diagnostic-summary .metric{min-width:45%}}

/* Diagnostic speed scale · 6 levels */
.speed-level{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:800;border:1px solid transparent;white-space:nowrap}.speed-level small{display:block;color:inherit;font-size:.68rem;font-weight:650}.level-none{background:#eef2f4;color:#60737f}.level-1{background:#e9eef2;color:#465d6b;border-color:#d7e0e5}.level-2{background:#dbeeff;color:#1d5f8f;border-color:#b8dcf8}.level-3{background:#daf3ed;color:#176b5a;border-color:#b4e3d8}.level-4{background:#fff3c9;color:#7c5a00;border-color:#f0dfa1}.level-5{background:#ffe5c5;color:#925211;border-color:#f5c990}.level-6{background:#fbd9d3;color:#9a3529;border-color:#efb6ac}.diagnostic-live{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#f7fafb;border:1px dashed #bfd0d9;border-radius:12px;padding:12px}.diagnostic-live .speed-level{font-size:1rem;padding:9px 15px}.live-label{font-weight:700;color:#58707e}.diagnostic-scale-card summary{font-size:1rem}.scale-settings{padding:10px 0}.diag-thresholds{grid-template-columns:repeat(5,minmax(110px,1fr))}.scale-preview{display:grid;grid-template-columns:repeat(6,minmax(80px,1fr));gap:7px;margin-top:10px}.scale-preview .speed-level{border-radius:10px;flex-direction:column;padding:9px 6px;white-space:normal;text-align:center}.metric .speed-level{margin-top:8px}@media(max-width:760px){.diag-thresholds{grid-template-columns:repeat(2,1fr)}.scale-preview{grid-template-columns:repeat(3,1fr)}}

/* Terrain touch lock */
html{overscroll-behavior-x:none}.terrain{overscroll-behavior-x:none;touch-action:pan-y pinch-zoom}.terrain main{overscroll-behavior-x:none}
/* V1.0.12 · binômes plus discrets */
.pair-list{gap:8px}.pair-line{padding:9px 10px;min-height:58px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}.pair-line:hover{background:#f7fbfc;border-color:#b9d4dc}.pair-line.selected{border-color:var(--brand);background:#f1f8f9}.pair-main{min-width:0;display:grid;gap:4px}.pair-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pair-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:.8rem;color:#607884}.pair-meta span+span:before{content:'·';margin-right:10px;color:#9aabb4}.pair-actions{display:flex;align-items:center;gap:6px}.pair-actions button{min-height:36px;padding:6px 9px;font-size:.8rem}.pair-chevron{font-size:1.6rem;color:#78909c;padding:0 2px}.pair-detail{scroll-margin-top:12px}.pair-order-card{padding:16px}.pair-order-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:10px 0 14px}.pair-order-values span{display:grid;gap:2px}.pair-order-values small{font-size:.75rem;color:#6b7f8b}.pair-order-values b{font-size:1rem}.pair-detail-actions{margin-top:14px}
@media(max-width:760px){.pair-line{flex-direction:row;align-items:center}.pair-actions button{display:none}.pair-chevron{display:block}.pair-main{flex:1}.pair-meta{gap:6px}.pair-meta span+span:before{margin-right:6px}.pair-order-values{grid-template-columns:repeat(2,minmax(0,1fr))}}
