:root{--bg: #0a0a0a;--bg2: #171717;--card: #171717;--border: #2a2a2a;--border-soft: #232323;--gold: #c9a961;--gold-soft: #ddc48a;--text: #f5f5f2;--muted: #adaba5;--on-gold: #14110c}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input{font-family:inherit;background:var(--bg2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px 14px;font-size:16px;width:100%}input:focus{outline:none;border-color:var(--gold)}.brand{font-family:Playfair Display,serif;color:var(--gold-soft);font-weight:900;font-size:26px;letter-spacing:.5px}.brand.small{font-size:18px}.brand-sub{color:var(--muted);font-size:11px;letter-spacing:.5px;font-weight:600;margin-top:6px}.brand-sub.small{font-size:11px}.logo{height:30px;display:block}.logo.small{height:24px}.center-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px}.login{width:100%;max-width:380px;padding:26px;display:flex;flex-direction:column;gap:8px}.login .brand{margin-bottom:0}.login .brand-sub{margin-bottom:14px}.login label{font-size:13px;color:var(--muted);margin-top:8px}.login button{margin-top:16px;background:var(--gold);color:var(--on-gold);font-weight:800;border:none;border-radius:10px;padding:13px;font-size:15px;font-family:Manrope,sans-serif}.login button:disabled{opacity:.6}.hint{color:var(--muted);font-size:12px;margin:12px 0 0;line-height:1.5}.app{max-width:900px;margin:0 auto;padding-bottom:40px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:#0a0a0ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}.link{background:none;border:none;color:var(--gold-soft);font-size:14px;font-weight:700;padding:6px 8px;font-family:Manrope,sans-serif}.row{display:flex;align-items:center;gap:8px}.between{justify-content:space-between}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.kpi{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}.kpi-value{font-family:Playfair Display,serif;font-size:21px;font-weight:800;color:var(--gold-soft)}.kpi-label{font-size:12px;color:var(--muted);margin-top:5px;font-weight:600}.section{padding:0 16px;margin:8px 0;color:var(--muted);font-size:14px;font-weight:600}.grid{display:grid;grid-template-columns:1fr;gap:12px;padding:0 16px}@media (min-width: 640px){.grid{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:repeat(4,1fr)}}.demande{text-align:left;padding:16px;display:flex;flex-direction:column;gap:6px;color:var(--text);border-radius:16px}.demande:hover{border-color:var(--gold)}.statut{color:var(--on-gold);font-weight:800;font-size:12px;padding:4px 10px;border-radius:999px;white-space:nowrap}.total{font-weight:800;font-size:16px;color:var(--gold-soft)}.nom{font-family:Playfair Display,serif;font-weight:800;font-size:18px;margin-top:2px;color:var(--text)}.meta{color:var(--muted);font-size:13.5px}.meta.lieu{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.flag{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--border)}.flag.on{background:#93c4a426;color:#93c4a4;border-color:#93c4a480}.flag.off{color:var(--muted)}.flag.corpo{border-color:#6f7278;color:#c8cad0;background:transparent}.flag.v360{border-color:var(--gold);color:var(--gold-soft);background:#c9a9611a}.segment{display:flex;gap:8px;margin-bottom:14px}.form .segment button{flex:1;margin:0;padding:12px 8px;border-radius:10px;font-size:14px;font-weight:600;background:var(--bg2);color:var(--muted);border:1px solid var(--border)}.form .segment button.actif{border-color:var(--gold);color:var(--on-gold);background:var(--gold)}.pad{padding:16px}.detail h2{font-family:Playfair Display,serif;font-size:26px;margin:8px 0 4px;color:var(--text)}.detail .top{align-items:flex-start}.message{color:var(--gold-soft);font-style:italic;background:var(--card);border-left:3px solid var(--gold);border-radius:0 10px 10px 0;padding:10px 14px}.totals{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;margin:16px 0}.totals>div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border-soft)}.totals>div:last-child{border-bottom:none}.totals span{color:var(--muted);font-size:14px}.totals b{color:var(--text)}.totals>div:last-child b{color:var(--gold-soft)}.items h3{color:var(--muted);font-size:14px}.item{padding:9px 0;border-bottom:1px solid var(--border-soft);font-size:14px}.error{background:#ef44441f;color:#fca5a5;border:1px solid rgba(239,68,68,.35);border-radius:10px;padding:10px 12px;font-size:14px}.meta,.nom,.item,.message,.totals>div,.kpi-label{overflow-wrap:anywhere}.app,.center-screen{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app{padding-bottom:calc(40px + env(safe-area-inset-bottom))}@media (max-width: 430px){.center-screen{padding:12px}.login{padding:20px}.topbar{padding:12px}.kpis{padding:12px;gap:10px}.kpi{padding:12px}.kpi-value{font-size:20px}.grid{padding:0 12px;gap:10px}.section{padding:0 12px}.pad{padding:12px}.brand{font-size:22px}.demande{padding:13px}.totals>div{gap:12px}}select,textarea{font-family:inherit;font-size:16px;background:var(--bg2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:12px 14px;width:100%}textarea{resize:vertical}.form{display:flex;flex-direction:column;gap:6px}.form h2{font-family:Playfair Display,serif;font-size:24px;color:var(--text);margin:12px 0 18px}.form label{font-size:13px;color:var(--muted);margin-top:10px}.form label.check{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--text);margin-top:10px}.form label.check input{width:20px;height:20px;flex:0 0 auto}.form button{margin-top:20px;background:var(--gold);color:var(--on-gold);font-weight:800;border:none;border-radius:10px;padding:15px;font-size:16px;font-family:Manrope,sans-serif}.form button:disabled{opacity:.6}.section-form{margin:22px 0 4px;padding-top:14px;border-top:1px solid var(--border-soft);color:var(--gold-soft);font-size:15px;font-family:Playfair Display,serif;font-weight:800}.row.gap{display:flex;gap:10px}.row.gap .col{flex:1;min-width:0;display:flex;flex-direction:column}.hint.compact{margin:4px 0 0;font-size:12px}.danger-zone{color:var(--gold-soft)!important}.supprimer-btn{color:#f87171!important}.supprimer-btn:disabled{opacity:.5}.onglets{display:flex;gap:8px;padding:4px 16px 12px}.onglet{flex:1;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:11px 6px;font-size:13px;font-weight:700;font-family:Manrope,sans-serif}.onglet.actif{background:var(--card);border-color:var(--gold);color:var(--gold-soft)}.compte{display:inline-block;background:var(--border);color:var(--text);border-radius:999px;padding:2px 8px;font-size:11px;margin-left:4px}.onglet.actif .compte{background:var(--gold);color:var(--on-gold)}.rebours{color:var(--muted)}.rebours.proche{color:var(--gold-soft);font-weight:700}.vide{color:var(--muted)}.fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--gold);color:var(--on-gold);border:none;font-size:30px;line-height:1;font-weight:300;box-shadow:0 8px 24px #00000080}@media (max-width: 430px){.onglets{padding:4px 12px 10px;gap:6px}.onglet{font-size:12px;padding:9px 4px}}.grid{grid-template-columns:minmax(0,1fr)}@media (min-width: 640px){.grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.demande,.demande>*,.row,.row>*,.totals>div,.totals>div>*{min-width:0}.meta.lieu{max-width:100%}.row.between{display:flex;justify-content:space-between;align-items:center;gap:8px}.row.between .statut{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.between .total{flex:0 0 auto}@media (max-width: 430px){.kpis{gap:8px}.kpi{padding:10px 12px}.kpi-value{font-size:18px}.demande{padding:13px}}
