:root{--fonce:#22304a;--texte:#18181b;--texte-2:#656c79;--texte-3:#8a8175;--bord:#e8e4de;--fond:#f7f5f1;--carte:#fff;--carte-2:#faf8f5;--sel-fond:#fff3ec;--sel-bord:#fbd3be;--sel-texte:#c2410c;--vert:#0f6e56;--bleu:#2563eb;--rouge:#b91c1c}*{box-sizing:border-box}html,body{margin:0}body{background:var(--fond);color:var(--texte);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px}button,input,select,textarea{font-family:inherit}.cadre{min-height:100vh;display:flex}.menu{background:var(--fonce);color:#fff;flex-direction:column;flex-shrink:0;gap:4px;width:232px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.menu .marque{align-items:center;gap:10px;padding:0 8px 22px;font-size:1.05rem;font-weight:800;display:flex}.menu .marque img{border-radius:8px;width:30px;height:30px}.menu button{text-align:left;color:#ffffffb8;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px 12px;font-size:.9rem;font-weight:700}.menu button:hover{color:#fff;background:#ffffff14}.menu button.actif{color:#fff;background:#ffffff24}.menu .bas{color:#ffffff8c;margin-top:auto;padding:8px;font-size:.75rem}.menu .bas button{padding:6px 0;font-size:.78rem}.contenu{flex:1;min-width:0;max-width:1180px;padding:28px 32px 60px}.titre-page{margin:0 0 4px;font-size:1.5rem;font-weight:800}.sous-titre{color:var(--texte-2);margin:0 0 22px;font-size:.88rem;line-height:1.5}.carte{background:var(--carte);border:1px solid var(--bord);border-radius:16px;margin-bottom:14px;padding:18px}.sec{letter-spacing:1.2px;color:var(--texte-2);text-transform:uppercase;margin-bottom:12px;font-size:.66rem;font-weight:800}.grille{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.grille-2{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px;display:grid}.tuile{background:var(--carte-2);border:1px solid #efeae1;border-radius:12px;padding:12px 14px}.tuile .v{font-size:1.5rem;font-weight:800;line-height:1.1}.tuile .l{color:var(--texte-2);margin-top:3px;font-size:.75rem;font-weight:600;line-height:1.35}.tuile .n{color:var(--texte-3);margin-top:2px;font-size:.68rem}.barre{background:#f1eee8;border-radius:4px;height:8px;display:flex;overflow:hidden}.ligne-barre{margin-bottom:12px}.ligne-barre .entete{justify-content:space-between;gap:10px;margin-bottom:5px;font-size:.84rem;display:flex}.ligne-barre .entete b{font-weight:700}.btn{border:1.5px solid var(--bord);color:var(--texte-2);cursor:pointer;background:#fff;border-radius:10px;padding:9px 16px;font-size:.82rem;font-weight:700}.btn:hover{border-color:#d6d0c6}.btn.plein{background:var(--fonce);border-color:var(--fonce);color:#fff}.btn.vert{background:var(--vert);border-color:var(--vert);color:#fff}.btn.sel{background:var(--sel-fond);border-color:var(--sel-bord);color:var(--sel-texte)}.btn:disabled{opacity:.5;cursor:default}.rang{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.champ{border:1.5px solid var(--bord);width:100%;color:var(--texte);background:#fff;border-radius:11px;outline:none;padding:11px 13px;font-size:.9rem}.champ:focus{border-color:#c9c2b6}select.champ{font-weight:700}.pastille{letter-spacing:1px;border-radius:20px;padding:3px 9px;font-size:.62rem;font-weight:800}.erreur{color:var(--rouge);background:#fef2f2;border:1.5px solid #fecaca;border-radius:12px;margin-bottom:12px;padding:12px 14px;font-size:.84rem;font-weight:600}.ok{color:var(--vert);background:#ecfdf5;border:1.5px solid #a7f3d0;border-radius:12px;margin-bottom:12px;padding:12px 14px;font-size:.84rem;font-weight:600}.vide{text-align:center;color:var(--texte-2);padding:40px 20px}.discret{color:var(--texte-3);font-size:.76rem}.connexion{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.connexion .carte{width:100%;max-width:380px;padding:28px}.connexion img{border-radius:14px;width:52px;height:52px;margin:0 auto 14px;display:block}.connexion h1{text-align:center;margin:0 0 4px;font-size:1.25rem}.connexion p{text-align:center;color:var(--texte-2);margin:0 0 20px;font-size:.85rem}.connexion label{color:var(--texte-2);margin:0 0 6px;font-size:.72rem;font-weight:700;display:block}@media (width<=820px){.cadre{flex-direction:column}.menu{flex-flow:wrap;width:100%;height:auto;padding:12px;position:static}.menu .marque{width:100%;margin-bottom:6px;padding:0 8px 0 0}.menu .bas{width:100%;margin-top:0}.contenu{padding:20px 16px 50px}.grille-2{grid-template-columns:1fr}}
