:root{font-family:'DM Sans',Arial,sans-serif;color:#1e2935;background:#f2f5f8;font-synthesis:none;text-rendering:optimizeLegibility;--navy:#173e63;--blue:#245f8d;--ink:#1b2835;--muted:#708090;--line:#dbe2e9;--paper:#fff;--gold:#cba767}*{box-sizing:border-box}body{margin:0}.screen-only{display:block}.topbar{height:76px;background:#fff;border-bottom:1px solid #e3e9ef;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,54px);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:var(--navy);color:#fff;border-radius:9px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.04em;font-size:14px}.brand strong,.brand small{display:block}.brand strong{font:700 15px Manrope,sans-serif}.brand small{color:var(--muted);font-size:11px;margin-top:3px}.privacy-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d5e5dc;background:#f5fbf7;color:#3d7357;padding:9px 12px;border-radius:999px;font-size:11px;font-weight:600}.privacy-pill span{font-size:8px;color:#52a16d}.workspace{display:grid;grid-template-columns:minmax(390px,520px) minmax(520px,1fr);gap:clamp(26px,4vw,62px);max-width:1600px;margin:0 auto;padding:38px clamp(20px,4vw,58px) 70px;align-items:start}.editor{max-width:590px;width:100%;justify-self:end}.intro{margin-bottom:20px}.eyebrow{color:#5a7996;font:700 10px Manrope,sans-serif;letter-spacing:.14em;margin:0 0 10px}.intro h1{font:800 clamp(27px,3vw,35px)/1.16 Manrope,sans-serif;letter-spacing:-.04em;color:#152e44;margin:0 0 10px}.intro>p:last-child{margin:0;color:#607286;font-size:14px;line-height:1.65;max-width:500px}.privacy-note{display:flex;gap:11px;padding:13px 15px;background:#eaf3f8;border:1px solid #d6e7f0;border-radius:10px;margin:18px 0 19px;color:#38546b}.privacy-note p{font-size:11px;line-height:1.55;margin:0}.note-icon{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#d0e3f0;color:var(--navy);font:bold 12px Georgia}.form-card{background:#fff;border:1px solid #e2e8ee;border-radius:12px;padding:19px 20px;margin:0 0 13px;box-shadow:0 3px 12px #24384c08}.card-heading{display:flex;gap:12px;align-items:center;margin-bottom:16px}.step{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:#eaf1f7;color:var(--navy);font:700 11px Manrope,sans-serif}.card-heading h2{font:700 15px Manrope,sans-serif;color:#20364b;margin:0}.card-heading p{font-size:11px;color:#8190a0;margin:4px 0 0}.field-grid{display:grid;gap:13px 12px}.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.one{grid-template-columns:1fr}.field-grid label{display:block;color:#415164;font-size:11px;font-weight:600;min-width:0}.field-grid input:not([type=radio]):not([type=range]),.field-grid select{margin-top:6px;width:100%;height:40px;border:1px solid #d9e1e8;border-radius:7px;background:#fff;padding:0 11px;color:#182c3f;font:500 12px 'DM Sans',sans-serif;outline:none;transition:border .15s,box-shadow .15s}.field-grid input:focus,.field-grid select:focus{border-color:#5d8db4;box-shadow:0 0 0 3px #377db21b}.field-grid input::placeholder{color:#a2adb7;font-weight:400}.span-two{grid-column:1/-1}.required{color:#bc4b45;font-weight:700}.field-set{border:0;padding:0;margin:0;display:flex;align-items:center;gap:15px;flex-wrap:wrap}.field-set legend{color:#415164;font-size:11px;font-weight:600;margin-bottom:7px}.choice{display:inline-flex!important;align-items:center;gap:6px;color:#536477!important;font-weight:500!important}.choice input{accent-color:var(--blue)}.rank{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#edf2f6;color:#365b7b;margin-right:5px;font-size:10px}.upload-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px dashed #bfd0dd;border-radius:9px;padding:12px;background:#f9fbfc}.upload-copy{display:flex;flex-direction:column;gap:4px;color:#34495b;font-size:11px}.upload-copy small{color:#8391a0;font-size:10px;line-height:1.4}.file-button{flex:0 0 auto;border:1px solid #bfd0dd;border-radius:7px;background:#fff;color:#315b7d;padding:9px 11px;font-size:10px;font-weight:700;cursor:pointer}.file-button:hover{background:#edf5fa}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.image-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-top:-5px}.image-controls[hidden]{display:none}.image-controls label{font-size:10px;color:#607286}.image-controls input[type=range]{display:block;width:100%;height:14px;accent-color:var(--blue);margin-top:6px}.range-value{display:inline-block;color:#718394;font-size:9px;font-weight:500;margin-left:5px}.text-button{border:0;background:transparent;color:#8f4540;font-size:10px;cursor:pointer;padding:8px 0}.actions{padding:10px 2px 0}.primary-button,.secondary-button{height:47px;border-radius:8px;padding:0 19px;font:700 12px Manrope,sans-serif;cursor:pointer;transition:transform .14s,background .14s}.primary-button{background:var(--navy);color:white;border:1px solid var(--navy);box-shadow:0 4px 12px #173e6324;width:100%}.primary-button:hover{background:#21567f;transform:translateY(-1px)}.primary-button span{font-size:16px;margin-right:7px}.secondary-button{color:#586b7e;border:1px solid #d3dde5;background:#fff;margin-top:9px;width:100%}.secondary-button:hover{background:#f7f9fb}.actions p{font-size:10px;color:#8391a0;text-align:center;margin:11px 0}.editor-footer{border-top:1px solid #e0e6ec;margin-top:20px;padding-top:13px;color:#8290a0;font-size:10px;line-height:1.5}.validation-summary{padding:11px 14px;background:#fff1f0;color:#8c2e2b;border:1px solid #e9c6c3;border-radius:8px;font-size:12px;margin:0 0 14px;line-height:1.5}.validation-summary[hidden]{display:none}.preview-panel{position:sticky;top:96px;min-width:0}.preview-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.preview-heading h2{font:700 17px Manrope,sans-serif;color:#1e354a;margin:0}.live-badge{display:flex;align-items:center;gap:6px;color:#6a8172;background:#eff6f0;border-radius:99px;padding:6px 9px;font-size:9px;font-weight:600}.live-badge i{width:6px;height:6px;border-radius:50%;background:#65a17b}.paper-wrap{overflow:auto;padding:3px 5px 14px}.paper{display:flex;flex-direction:column;width:210mm;min-height:297mm;background:#fff;color:#101010;margin:0 auto;box-shadow:0 8px 28px #20324520;padding:11mm 12mm 9mm;font:8.2pt Arial,sans-serif;line-height:1.28;position:relative}.doc-header{display:flex;gap:7mm;align-items:flex-start;border-bottom:1px solid #444;padding:0 0 3.2mm}.republic{width:31%;text-align:center;display:flex;flex-direction:column;gap:2mm;font-size:7pt}.republic strong{font-size:7.2pt}.republic span{font-size:6.5pt;text-transform:uppercase}.republic small{font-size:6pt}.doc-title{flex:1;text-align:center;padding-top:1mm}.doc-title h2{font:bold 14pt Arial,sans-serif;margin:0 0 2mm}.doc-title h3{font:bold 10pt Arial,sans-serif;margin:0 0 2mm}.doc-title>p{font-size:7pt;margin:0 0 2mm}.doc-title>p small{font-size:6.5pt}.doc-meta{font-size:7.2pt;text-align:left;line-height:1.8;border-top:1px dotted #555;padding-top:1mm}.school-title{text-align:center;font-weight:bold;font-size:9pt;margin:-1px auto -1px;position:relative;background:#fff;width:42mm}.doc-box{border:1px solid #333;border-radius:5mm;padding:2.4mm 3mm;margin-bottom:2.5mm}.school-box{padding-top:2mm;padding-bottom:2mm}.line-row{display:flex;align-items:baseline;gap:1.2mm;min-height:5.3mm;border-bottom:1px dotted #999}.line-row:last-child{border-bottom:0}.line-row>strong{font-size:7pt;white-space:nowrap}.line-row .pv{flex:1;min-width:4mm;border-bottom:1px dotted #888;min-height:4mm;padding:0 1mm 0.3mm;font-size:8pt;font-weight:500}.signature-blank{flex:0 0 24mm;min-height:4mm;border-bottom:1px dotted #888}.line-row>span:not(.pv){font-size:7pt;white-space:nowrap}.section-title{text-align:center;background:#fff;font-weight:bold;font-size:9pt;position:relative;margin:-1mm auto -1mm;width:40mm}.candidate-box{padding:2.4mm 2.7mm}.candidate-main{display:flex;gap:2mm;min-height:47mm}.candidate-fields{flex:1;min-width:0}.candidate-fields>.line-row small{font-size:6pt;white-space:nowrap}.doc-hint{font-size:6pt;text-align:center;margin:0 0 1mm}.doc-hint.centered{text-align:center;min-height:3mm}.uppercase{text-transform:uppercase}.photo-column{width:28mm;flex:0 0 28mm;text-align:center}.photo-column>small{display:block;font-size:6pt;line-height:1.2;height:4mm}.photo-frame{width:27mm;height:31mm;border:1px solid #444;border-radius:2.5mm;overflow:hidden;display:grid;place-items:center;background:#fff}.photo-frame img{width:100%;height:100%;object-fit:cover;transform:scale(var(--zoom,1));object-position:center}.school-choices{border:1px solid #555;border-radius:2mm;padding:1.4mm 2mm;margin-top:1mm}.school-choices>strong{font-size:6.8pt}.school-choices>small{font-size:5.8pt;margin-left:1mm}.school-choices>div{height:5mm;display:flex;align-items:end;border-bottom:1px dotted #999;font-size:7pt}.school-choices>div:last-child{border-bottom:0}.school-choices>div .pv{display:inline-block;flex:1;margin-left:1mm;min-height:4mm;padding:0 1mm;font-size:7.5pt}.residence-row{margin-top:1mm}.waiver-row{display:grid;grid-template-columns:auto 1fr 1fr auto 1fr 1fr;align-items:center;gap:1mm 2mm;font-size:6.5pt;padding:1mm 0}.waiver-row strong{font-size:6.2pt;white-space:nowrap}.waiver-row .pv{display:inline-block;min-width:6mm;font-weight:bold}.declaration{text-align:center;font-size:7pt;margin:1mm 0}.date-place{width:55%;margin-left:auto}.date-place .pv{max-width:25mm}.candidate-box .line-row{min-height:4.8mm}.important{font-size:6.3pt;line-height:1.26;margin:2mm 0 1mm}.important>strong{font-size:7pt;text-decoration:underline}.important ol{margin:1mm 0 0;padding-left:5mm}.important li{margin:0 0 1mm;padding-left:.5mm}.certified{text-align:right;margin:auto 0 2mm;font-size:7.2pt}.certified .pv{display:inline-block;min-width:18mm;border-bottom:1px dotted #777;min-height:4mm}.doc-footer{display:flex;margin-top:0;justify-content:space-between;align-items:flex-end;gap:4mm}.agent-box{width:67mm;min-height:22mm;border:1px solid #333;border-radius:3mm;padding:2mm;font-size:6pt}.agent-box>strong{display:block;text-align:center;font-size:7pt;margin-bottom:1mm}.agent-box>div{height:4.5mm;border-bottom:1px dotted #999}.agent-box>div:last-child{border:0}.agent-box .pv{display:inline-block;min-width:10mm}.director-sign-area{width:84mm;text-align:center;position:relative;min-height:24mm;display:flex;flex-direction:column;justify-content:flex-end}.director-assets{position:absolute;inset:0 0 7mm;display:flex;align-items:center;justify-content:center;gap:3mm;pointer-events:none}.director-signature{width:43mm;height:18mm;object-fit:contain;transform:translateX(var(--offset,0px)) scale(var(--zoom,1));z-index:2}.director-stamp{width:23mm;height:22mm;object-fit:contain;transform:translateX(var(--offset,0px)) scale(var(--zoom,1));z-index:1}.director-line{border-bottom:1px dotted #555;height:9mm}.director-sign-area>strong{font-size:7pt;min-height:3mm}.director-sign-area>small{font-size:6pt}.preview-tip{margin:3px 3px 0;color:#768797;font-size:10px;line-height:1.5;text-align:center}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(350px,.85fr) minmax(420px,1.15fr);gap:25px;padding-left:24px;padding-right:24px}.paper{transform-origin:top left}.preview-panel{overflow:hidden}.paper-wrap{padding-right:0}.editor{justify-self:stretch}}
@media(max-width:1500px){.topbar{height:66px}.privacy-pill{font-size:0;padding:8px 10px}.privacy-pill span{font-size:8px}.workspace{display:flex;flex-direction:column;padding:25px 16px 50px;gap:30px}.editor{max-width:none}.preview-panel{position:static;width:100%;overflow:visible}.paper-wrap{width:100%;overflow-x:auto;padding:5px 0 14px}.paper{margin-left:0;margin-right:0}.preview-heading{margin-bottom:10px}.intro h1{font-size:29px}}
@media(max-width:500px){.field-grid.two{grid-template-columns:1fr}.field-grid.two>.span-two{grid-column:auto}.form-card{padding:17px 15px}.image-controls{grid-template-columns:1fr 1fr}.image-controls .text-button{grid-column:1/-1;justify-self:start}.upload-card{align-items:flex-start}.file-button{font-size:9px;padding:8px}.brand small{max-width:210px}.brand strong{font-size:14px}}
@page{size:A4 portrait;margin:0}
@media print{html,body{width:210mm;height:297mm;background:#fff!important;margin:0!important;padding:0!important}.topbar,.editor{display:none!important}.workspace{display:block!important;margin:0!important;padding:0!important;max-width:none!important}.preview-panel{display:block!important;position:static!important;width:210mm!important;margin:0!important;padding:0!important;overflow:visible!important}.preview-heading,.preview-tip{display:none!important}.paper-wrap{display:block!important;overflow:visible!important;margin:0!important;padding:0!important;width:210mm!important}.paper{display:flex!important;flex-direction:column!important;box-shadow:none!important;margin:0!important;width:210mm!important;height:297mm!important;min-height:297mm!important;padding:9mm 11mm 7mm!important;transform:none!important;overflow:hidden!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.doc-header{padding-bottom:2.4mm}.republic{gap:1.6mm}.school-box{margin-bottom:2mm}.candidate-box{margin-bottom:1.8mm}.candidate-main{min-height:43mm}.photo-frame{height:28mm}.important{font-size:6pt;line-height:1.19;margin:1.4mm 0 .7mm}.important li{margin-bottom:.7mm}.certified{margin:1mm 0}.agent-box{min-height:20mm}.director-sign-area{min-height:22mm}}


/* Sélecteurs territoriaux et établissements proposés */
.directory-note{grid-column:1/-1;margin:0;padding:10px 12px;border:1px solid #d8e5ee;border-left:3px solid #4c7ea4;border-radius:7px;background:#f5f9fc;color:#526a7e;font-size:10px;line-height:1.5}.school-choice-list{display:grid;gap:10px}.school-choice-input{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1fr) minmax(0,1.2fr);align-items:end;gap:10px 12px;padding:12px;border:1px solid #e2e8ee;border-radius:9px;background:#fbfcfd}.school-choice-input>strong{align-self:center;color:#34495b;font-size:11px}.school-choice-input label,.school-choice-input>div label{display:block;color:#415164;font-size:10px;font-weight:600}.school-choice-input select,.school-choice-input input{margin-top:5px;width:100%;height:38px;border:1px solid #d9e1e8;border-radius:7px;background:#fff;padding:0 10px;color:#182c3f;font:500 11px 'DM Sans',sans-serif}.school-choice-input>div{grid-column:2/-1}.school-choice-input [hidden],.field-grid [hidden]{display:none!important}.directory-sources{margin:12px 0;border:1px solid #dbe2e9;border-radius:8px;background:#fff;padding:11px 13px;color:#526579;font-size:10px;line-height:1.5}.directory-sources summary{cursor:pointer;font-weight:700;color:#315b7d}.directory-sources p{margin:9px 0}.directory-sources ul{max-height:260px;overflow:auto;margin:0;padding-left:18px}.directory-sources li{margin:4px 0}.directory-sources a{color:#245f8d}.directory-sources li span{color:#8090a0}
@media(max-width:700px){.school-choice-input{grid-template-columns:1fr}.school-choice-input>div{grid-column:1}.directory-note{grid-column:1/-1}}
.directory-sources .source-meta{font-size:9px;color:#8090a0;margin-top:-5px}

/* Choix CEG : une liste immédiatement accessible, lisible et adaptée au tactile. */
.school-choice-input{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:9px}
.school-choice-input>strong{align-self:center;font-size:12px}
.school-choice-input>label,.school-choice-input>div{grid-column:1/-1}
.school-choice-input select{height:46px;font-size:13px}
@media(max-width:700px){.school-choice-input{grid-template-columns:minmax(0,1fr)}.school-choice-input>div{grid-column:1}}

.form-note{margin:0 0 14px!important}
.form-card>.directory-note{margin:0 0 12px}
.actions p{line-height:1.5}

.validation-summary{background:#fff8e9;color:#725211;border-color:#ead5a6}

.option-help{display:block;flex-basis:100%;margin:0 0 0 2px;color:#768797;font-size:10px;line-height:1.4}
.option-struck{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:#111}


/* Taille de lecture accrue sur la fiche A4, sans modifier son format physique. */
.paper{font-size:9pt;line-height:1.3}
.republic{font-size:7.5pt}
.republic strong{font-size:7.8pt}
.republic span{font-size:7pt}
.republic small{font-size:6.5pt}
.doc-title h2{font-size:15.5pt}
.doc-title h3{font-size:11pt}
.doc-title>p{font-size:7.5pt}
.doc-title>p small{font-size:7pt}
.doc-meta{font-size:7.8pt;line-height:1.65}
.school-title,.section-title{font-size:9.7pt}
.line-row>strong,.line-row>span:not(.pv){font-size:7.7pt}
.line-row .pv{font-size:9pt}
.candidate-fields>.line-row small,.doc-hint,.photo-column>small{font-size:6.7pt}
.school-choices>strong{font-size:7.3pt}
.school-choices>small{font-size:6.3pt}
.school-choices>div{font-size:7.6pt}
.school-choices>div .pv{font-size:8.2pt}
.waiver-row{font-size:7pt}
.waiver-row strong{font-size:6.8pt}
.declaration{font-size:7.5pt}
.important{font-size:7pt;line-height:1.18}
.important>strong{font-size:7.7pt}
.certified{font-size:7.8pt}
.agent-box{font-size:6.8pt}
.agent-box>strong{font-size:7.8pt}
.director-sign-area>strong{font-size:7.8pt}
.director-sign-area>small{font-size:6.7pt}

@media print{
  .important{font-size:7pt;line-height:1.18;margin:1.2mm 0 .6mm}
  .important li{margin-bottom:.6mm}
  .certified{margin:1mm 0}
}

.school-title{width:52mm}

/* Niveau final après contrôle d’espace sur l’A4 : gain de lisibilité d’environ 15 à 25 %. */
.paper{font-size:9.5pt;line-height:1.3}
.republic{font-size:7.8pt}
.republic strong{font-size:8.2pt}
.republic span{font-size:7.4pt}
.republic small{font-size:7pt}
.doc-title h2{font-size:16pt}
.doc-title h3{font-size:11.5pt}
.doc-title>p{font-size:7.8pt}
.doc-title>p small{font-size:7.3pt}
.doc-meta{font-size:8.2pt;line-height:1.6}
.school-title,.section-title{font-size:10pt}
.line-row>strong,.line-row>span:not(.pv){font-size:8pt}
.line-row .pv{font-size:9.5pt}
.candidate-fields>.line-row small,.doc-hint,.photo-column>small{font-size:7pt}
.school-choices>strong{font-size:7.7pt}
.school-choices>small{font-size:6.8pt}
.school-choices>div{font-size:8pt}
.school-choices>div .pv{font-size:8.8pt}
.waiver-row{font-size:7.5pt}
.waiver-row strong{font-size:7.2pt}
.declaration{font-size:8pt}
.important{font-size:7.4pt;line-height:1.15}
.important>strong{font-size:8pt}
.certified{font-size:8.2pt}
.agent-box{font-size:7.4pt}
.agent-box>strong{font-size:8pt}
.director-sign-area>strong{font-size:8pt}
.director-sign-area>small{font-size:7pt}
@media print{
  .important{font-size:7.4pt;line-height:1.15;margin:1.1mm 0 .5mm}
  .important li{margin-bottom:.5mm}
  .certified{margin:auto 0 2mm}
}

.photo-column>small{height:7mm;line-height:1.05}

/* Marque KAH : le logo vertical remplace le libellé compact de l’en-tête. */
.topbar{height:auto;min-height:142px;padding:8px clamp(18px,4vw,54px)}
.brand{min-width:0;gap:0}
.brand-logo{display:block;width:min(190px,44vw);max-height:132px;object-fit:contain}
@media(max-width:1500px){.topbar{height:auto;min-height:142px}}
@media(max-width:500px){.topbar{position:relative;min-height:0;padding:8px 14px}.brand-logo{width:min(156px,48vw);max-height:120px}}

/* Trois lignes de saisie manuscrite distinctes pour les agents de la DDEMP. */
.agent-box{min-height:22mm;display:flex;flex-direction:column;justify-content:flex-start}
.agent-box>strong{margin-bottom:1.2mm}
.agent-box>.agent-row{display:flex;align-items:flex-end;gap:1.2mm;height:5mm;min-height:5mm;border-bottom:0;font-size:6pt;line-height:1.15}
.agent-label{white-space:nowrap;flex:0 0 auto}
.agent-box .agent-write-line{display:block;flex:1;min-width:8mm;height:3.3mm;border-bottom:1px dotted #777}
@media print{.agent-box{min-height:20mm}.agent-box>strong{margin-bottom:1mm}.agent-box>.agent-row{height:4.7mm;min-height:4.7mm}}

/* Nom du département sur sa propre ligne dans l’identification officielle. */
.republic .department-name{font-weight:700}

/* Mettre en évidence la session de juin et le centre de composition sur la fiche. */
.doc-meta>strong{font-weight:700;text-transform:uppercase}
.doc-meta .exam-center-value{font-weight:700;text-transform:uppercase}
