:root{--bg:#0f1115;--bg-elev:#171a21;--bg-elev-2:#1e222b;--border:#2a2f3a;--text:#e8ebf0;--text-dim:#9aa1ad;--accent:#6ea8fe;--accent-strong:#3d6fd6;--danger:#f26d6d;--ok:#58c08a;--radius:10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}.wrap{max-width:760px;margin:0 auto;padding:16px 12px 60px}h1{margin:4px 0 14px;font-size:22px}input,textarea,select{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);font:inherit;outline:none;padding:10px 12px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical}.btn{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;cursor:pointer;padding:9px 14px}.btn:active{background:#262b36}.btn.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.small{padding:6px 10px;font-size:13px}.btn:disabled{opacity:.5}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:12px 14px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.hint{color:var(--text-dim);font-size:13px}.error{color:var(--danger)}.detail{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:14px}.resultat{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-dim);border-left:3px solid var(--ok);margin:8px 0 0;padding-left:10px;font-size:13px}.badge{border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.badge.prio{border-color:var(--danger);color:var(--danger)}.badge.statut-en_cours{border-color:var(--accent);color:var(--accent)}.badge.statut-fait{border-color:var(--ok);color:var(--ok)}.chips{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.chips .btn.on{border-color:var(--accent);color:var(--accent)}.login{max-width:360px;margin:14vh auto 0;padding:0 16px}.login h1{text-align:center}.login form{gap:12px;display:grid}.login label{color:var(--text-dim);gap:4px;font-size:14px;display:grid}.login button{background:var(--accent-strong);color:#fff;border-radius:var(--radius);font:inherit;cursor:pointer;border:none;padding:11px}
