:root{--fond:#0f1720;--cadre:#17222e;--cadre-2:#1e2c3a;--bord:#2c3d4f;--texte:#e6edf3;--texte-doux:#93a4b5;--accent:#f5a524;--accent-texte:#1a1205;--ok:#3fb68b;--alerte:#e5534b;--rayon:10px}:root[data-theme=clair]{--fond:#eef2f6;--cadre:#ffffff;--cadre-2:#f4f7fa;--bord:#d3dce5;--texte:#142030;--texte-doux:#5a6b7c}*{box-sizing:border-box}body,html{margin:0;background:var(--fond);color:var(--texte)}body{font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}main{max-width:960px;margin:0 auto;padding:16px}h1{font-size:1.4rem;margin:8px 0 16px}h2{font-size:1.1rem;margin:24px 0 8px}.nav{display:flex;gap:4px;overflow-x:auto;padding:8px 16px;background:var(--cadre);border-bottom:1px solid var(--bord)}.nav a{padding:8px 12px;border-radius:var(--rayon);color:var(--texte-doux);text-decoration:none;white-space:nowrap}.nav a.actif,.nav a:hover{background:var(--cadre-2);color:var(--texte)}.nav .marque{color:var(--accent);font-weight:700;margin-right:8px}.nav form{margin-left:auto}.cadre{background:var(--cadre);border:1px solid var(--bord);border-radius:var(--rayon);padding:16px;margin-bottom:16px}.grille{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.chiffre{font-size:1.6rem;font-weight:700}.doux{color:var(--texte-doux);font-size:.9rem}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px;border-bottom:1px solid var(--bord);vertical-align:top}th{color:var(--texte-doux);font-weight:600;font-size:.85rem}.defile{overflow-x:auto}form.champs{display:grid;grid-gap:12px;gap:12px}label{display:grid;grid-gap:4px;gap:4px;font-size:.9rem;color:var(--texte-doux)}input,select,textarea{font:inherit;color:var(--texte);background:var(--cadre-2);border:1px solid var(--bord);border-radius:var(--rayon);padding:10px 12px;width:100%}.bouton,button{font:inherit;font-weight:600;cursor:pointer;border:0;border-radius:var(--rayon);padding:10px 16px;background:var(--accent);color:var(--accent-texte);text-decoration:none;display:inline-block}.bouton.second,button.second{background:var(--cadre-2);color:var(--texte);border:1px solid var(--bord)}button.danger{background:var(--alerte);color:#fff}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.message{padding:10px 12px;border-radius:var(--rayon);background:var(--cadre-2);border-left:4px solid var(--accent)}.message.erreur{border-left-color:var(--alerte)}.etat{font-size:.8rem;padding:2px 8px;border-radius:99px;background:var(--cadre-2);border:1px solid var(--bord)}.etat.ok{color:var(--ok)}.etat.alerte{color:var(--alerte)}@media (min-width:700px){form.champs.deux{grid-template-columns:1fr 1fr}form.champs.deux .large{grid-column:1/-1}}.planche{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0;background:#fff;color:#000}.ticket{border:1px dashed #999;padding:8px;text-align:center;font-size:11px;page-break-inside:avoid;break-inside:avoid}.ticket .code{font:700 18px/1.2 ui-monospace,Consolas,monospace;letter-spacing:1px}.ticket svg{width:90px;height:90px;display:block;margin:4px auto}@media print{.nav,.pas-imprime{display:none!important}main{max-width:none;padding:0}body{background:#fff}@page{size:A4;margin:8mm}}