/* ══════════════════════════════════════════════════════════════
   Portail travaux des régies — identité de la RÉGIE (pas Buix), maquette validée le 07.11.2026
   Newsreader (titres, montants) · IBM Plex Sans (texte) · IBM Plex Mono (références)
   Gris neutre froid · bleu marine · touche laiton
   ══════════════════════════════════════════════════════════════ */
:root{--papier:#F4F6F8;--surf:#FFFFFF;--ink:#1A2230;--ink2:#4A5363;--ink3:#7A8291;--ligne:#E2E6EB;--ligne2:#C9D0D9;
  --marine:#1F2A44;--marine2:#2C3A5C;--laiton:#9C7A3C;--laiton-pale:#F2EEE4;--brique:#A3412F;--brique-pale:#F8ECE9;--ambre:#94650F;--sapin:#2F6B4F;--sapin-pale:#E8F1EC;--ardoise:#3D5A80;--grise:#F8F9FB}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--papier);color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
.serif{font-family:'Newsreader',Georgia,serif}.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12.5px;letter-spacing:.01em}
a{color:var(--ardoise)}
button,input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink)}
:focus-visible{outline:2px solid var(--laiton);outline-offset:2px}
/* En-tête */
.top{background:var(--surf);border-bottom:1px solid var(--ligne);display:flex;align-items:center;gap:28px;padding:0 32px;height:64px;position:sticky;top:0;z-index:10}
.id{display:flex;align-items:center;gap:12px;min-width:max-content;text-decoration:none;color:inherit}
.mono-logo{width:36px;height:36px;background:var(--marine);color:#fff;display:grid;place-items:center;font-family:'Newsreader',serif;font-size:17px;letter-spacing:.04em}
.id b{font-family:'Newsreader',serif;font-weight:600;font-size:18px}.id small{display:block;font-size:11px;color:var(--ink3);letter-spacing:.08em;text-transform:uppercase}
.nav{display:flex;gap:4px;height:100%;overflow-x:auto;scrollbar-width:none}
.nav a{display:flex;align-items:center;gap:7px;padding:0 12px;color:var(--ink2);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;white-space:nowrap}
.nav a.on{color:var(--ink);border-bottom-color:var(--laiton)}.nav a:hover{color:var(--ink)}
.nav a i{font-style:normal;font-size:11px;font-weight:600;color:var(--laiton);border:1px solid var(--laiton);padding:0 6px;line-height:17px}
.user{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--ink2);font-size:13px;min-width:max-content}
.user .av{width:30px;height:30px;border-radius:50%;background:var(--laiton-pale);color:var(--laiton);display:grid;place-items:center;font-weight:600;font-size:12px}
.user button{background:none;border:0;color:var(--ink3);cursor:pointer;font-size:12.5px;padding:4px}
.main{max-width:1180px;margin:0 auto;padding:30px 32px 40px}
.fil{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.tete{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--ligne2);margin-bottom:22px}
.tete h1{font-family:'Newsreader',serif;font-weight:500;font-size:34px;letter-spacing:-.01em;line-height:1.1;margin:0}
.tete p{margin:6px 0 0;color:var(--ink2)}
.actions{display:flex;gap:10px;flex-wrap:wrap}
/* Boutons */
.btn{border-radius:3px;padding:10px 16px;font-weight:500;font-size:13.5px;border:1px solid var(--marine);background:var(--marine);color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;line-height:1.2}
.btn:hover{background:var(--marine2)}
.btn.o{background:transparent;color:var(--marine)}.btn.o:hover{background:#EEF1F6}
.btn.l{background:var(--surf);border-color:var(--ligne2);color:var(--ink)}.btn.l:hover{background:var(--grise)}
.btn.petit{padding:6px 11px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:not-allowed}
/* Chiffres */
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surf);border:1px solid var(--ligne);margin-bottom:26px}
.chiffres div{padding:16px 20px;border-left:1px solid var(--ligne)}.chiffres div:first-child{border-left:0}
.chiffres small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.chiffres b{display:block;font-family:'Newsreader',serif;font-weight:500;font-size:40px;line-height:1.1;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.chiffres em{font-style:normal;font-size:12.5px;color:var(--ink2)}
.sec{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 10px;gap:10px}
.sec h2{font-family:'Newsreader',serif;font-weight:500;font-size:21px;margin:0}
.sec a{font-size:13px;text-decoration:none}
/* Tableaux */
.tab{width:100%;border-collapse:collapse;background:var(--surf);border:1px solid var(--ligne)}
.tab th{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink3);font-weight:500;text-align:left;padding:11px 16px;border-bottom:1px solid var(--ligne2);background:var(--surf)}
.tab td{padding:13px 16px;border-bottom:1px solid var(--ligne);vertical-align:top}
.tab tr:last-child td{border-bottom:0}
.tab tr.clic{cursor:pointer}.tab tr.clic:hover td{background:var(--grise)}
.tab td .s{display:block;color:var(--ink3);font-size:12.5px;margin-top:2px}
.tab .n,.tab .e{text-align:right;font-variant-numeric:tabular-nums}
.defil{overflow-x:auto}
.st{display:inline-flex;align-items:center;gap:7px;font-size:13px;white-space:nowrap}.st:before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.st-brique{color:var(--brique)}.st-ambre{color:var(--ambre)}.st-sapin{color:var(--sapin)}.st-ardoise{color:var(--ardoise)}.st-gris{color:var(--ink3)}
.cfc{font-size:12px;color:var(--ink2);border:1px solid var(--ligne2);padding:1px 6px;margin:0 4px 4px 0;display:inline-block;white-space:nowrap}
.jauge{display:flex;gap:3px;align-items:center}.jauge i{width:14px;height:6px;background:var(--ligne)}.jauge i.p{background:var(--marine)}.jauge span{margin-left:8px;font-variant-numeric:tabular-nums;color:var(--ink2);font-size:13px}
.note{font-size:12.5px;color:var(--ink2);margin-top:12px}
.vide{background:var(--surf);border:1px dashed var(--ligne2);padding:34px 24px;text-align:center;color:var(--ink2)}
.vide b{display:block;font-family:'Newsreader',serif;font-weight:500;font-size:20px;color:var(--ink);margin-bottom:6px}
/* Formulaires */
.grille{display:grid;grid-template-columns:1.3fr .9fr;gap:22px;align-items:start}
.bloc{background:var(--surf);border:1px solid var(--ligne);padding:18px 20px;margin-bottom:16px}
.bloc h3{font-family:'Newsreader',serif;font-weight:500;font-size:18px;margin:0 0 12px;display:flex;gap:10px;align-items:baseline}
.bloc h3 .k{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--laiton)}
label{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin:12px 0 5px;font-weight:500}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=tel],input[type=number],select,textarea{width:100%;border:1px solid var(--ligne2);padding:9px 11px;background:#fff;border-radius:0;min-height:40px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--marine);box-shadow:0 0 0 1px var(--marine)}
textarea{min-height:88px;resize:vertical}
.trois{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.deux{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.imm{display:flex;gap:14px;align-items:center;border:1px solid var(--ligne);padding:12px 14px;background:var(--grise);margin-top:8px}
.prive{border-left:3px solid var(--laiton);background:var(--laiton-pale);padding:10px 12px;font-size:12.5px;color:#5c4820;margin-top:12px}
.choix{display:flex;flex-wrap:wrap;gap:6px}
.choix button{border:1px solid var(--ligne2);background:#fff;padding:5px 10px;font-size:12.5px;cursor:pointer;color:var(--ink2)}
.choix button.on{border-color:var(--marine);background:var(--marine);color:#fff}
.vis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vis button{border:1px solid var(--ligne2);background:#fff;padding:10px 12px;font-size:12.5px;color:var(--ink2);text-align:left;cursor:pointer}
.vis button b{display:block;color:var(--ink);font-size:13.5px;font-weight:600;margin-bottom:2px}
.vis button.on{border-color:var(--marine);box-shadow:inset 0 0 0 1px var(--marine);background:#F4F6FA}
.ent{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--ligne)}.ent:last-of-type{border-bottom:0}
.ent label.case{display:flex;align-items:center;gap:10px;margin:0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink);cursor:pointer;font-weight:400}
.ent b{font-weight:600}.ent .s{color:var(--ink3);font-size:12.5px}
.erreur{border-left:3px solid var(--brique);background:var(--brique-pale);color:var(--brique);padding:10px 12px;font-size:13px;margin:12px 0}
/* Comparatif */
.comp td.e,.comp th.e{text-align:right}
.comp tr.t td{font-weight:600;background:var(--grise);font-family:'Newsreader',serif;font-size:16px}
.comp .m{display:block;font-size:12px;color:var(--brique);margin-top:2px;font-family:'IBM Plex Sans',sans-serif;font-weight:400}
.comp .a{display:block;font-size:12px;color:var(--ambre);margin-top:2px;font-weight:400}
.comp td.retenue{background:var(--sapin-pale)}
.avert{border:1px solid var(--ligne2);border-left:3px solid var(--ambre);background:var(--surf);padding:12px 14px;font-size:12.5px;color:var(--ink2);margin:14px 0 4px}
.comp{table-layout:fixed}.comp th:first-child,.comp td:first-child{width:26%}
.comp-cartes{display:none}
.comp-carte{background:var(--surf);border:1px solid var(--ligne);padding:14px 16px;margin-bottom:12px}.comp-carte.retenue{border-color:var(--sapin);box-shadow:inset 3px 0 0 var(--sapin)}
.cc-tete{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px;margin-bottom:8px}
.cc-ligne{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--ligne);font-size:13.5px}.cc-ligne span:last-child{text-align:right;font-variant-numeric:tabular-nums}
.cc-ligne.t{font-family:'Newsreader',serif;font-size:17px;font-weight:600}
.cc-info{font-size:12.5px;color:var(--ink2);margin-top:6px}
.etiq{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.fiche{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--surf);border:1px solid var(--ligne);margin-bottom:22px}
.fiche div{padding:12px 16px;border-left:1px solid var(--ligne)}.fiche div:first-child{border-left:0}
.fiche b{display:block;font-weight:500;margin-top:2px}
.code{font-family:'IBM Plex Mono',monospace;font-size:20px;letter-spacing:.2em}
/* Connexion */
.connexion{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.connexion .gauche{background:var(--marine);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}
.connexion .gauche h1{font-family:'Newsreader',serif;font-weight:500;font-size:44px;line-height:1.08;margin:0 0 16px;max-width:460px}
.connexion .gauche p{color:#B9C2D6;max-width:440px;font-size:15px}
.connexion .gauche small{color:#8E99B3;font-size:12px}
.connexion .droite{display:grid;place-items:center;padding:32px}
.connexion form{width:100%;max-width:360px}
.connexion form h2{font-family:'Newsreader',serif;font-weight:500;font-size:28px;margin:0 0 6px}
.connexion form p{color:var(--ink2);margin:0 0 18px}
.connexion .btn{width:100%;justify-content:center;padding:12px;margin-top:18px}
/* Messages */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 18px;font-size:13.5px;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.18);max-width:90vw}
.chargement{padding:60px 0;text-align:center;color:var(--ink3)}
.pied{max-width:1180px;margin:0 auto;padding:0 32px 26px;font-size:11.5px;color:var(--ink3)}
.modal-fond{position:fixed;inset:0;background:rgba(26,34,48,.45);display:grid;place-items:center;z-index:40;padding:16px}
.modal{background:#fff;max-width:520px;width:100%;padding:22px 24px;border-top:3px solid var(--marine)}
.modal h3{font-family:'Newsreader',serif;font-weight:500;font-size:22px;margin:0 0 8px}
@media (max-width:900px){
  .top{padding:10px 16px 0;gap:8px 14px;height:auto;flex-wrap:wrap}.user .nom{display:none}.nav{order:3;width:100%;height:44px;margin:0 -12px}.main{padding:20px 16px}.pied{padding:0 16px 20px}
  .comp-cartes{display:block}.comp-tableau{display:none}
  .chiffres{grid-template-columns:1fr 1fr}.chiffres div:nth-child(3){border-left:0}.chiffres div:nth-child(n+3){border-top:1px solid var(--ligne)}
  .grille{grid-template-columns:1fr}.trois{grid-template-columns:1fr 1fr}.fiche{grid-template-columns:1fr 1fr}.tete h1{font-size:27px}
  .connexion{grid-template-columns:1fr}.connexion .gauche{padding:28px}.connexion .gauche h1{font-size:30px}
}
@media print{.top,.actions,.btn,.pied{display:none!important}body{background:#fff}.main{padding:0}}
