*{box-sizing:border-box}
body{margin:0;font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1d2733;background:#f3f5f7}
header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1.2rem;background:#14324a;color:#fff}
header a{color:#fff;text-decoration:none}
.brand{font-weight:700;letter-spacing:.04em}
nav{display:flex;flex-wrap:wrap;gap:.2rem;flex:1}
nav a{padding:.3rem .7rem;border-radius:4px}
nav a.on,nav a:hover{background:#2c5677}
.me{font-size:.9em;opacity:.9}
main{max-width:1250px;margin:0 auto;padding:1rem 1.2rem 3rem}
h1{font-size:1.5rem;margin:.4rem 0 1rem}
h2{font-size:1.15rem;margin:1.4rem 0 .6rem}
h3{font-size:1rem;margin:1.2rem 0 .4rem}
a{color:#1a5d8f}
.card{background:#fff;border:1px solid #dde3e8;border-radius:6px;padding:1rem 1.2rem;margin-bottom:1rem}
.card h2:first-child{margin-top:0}
.narrow{max-width:420px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem 1rem}
.grid .wide{grid-column:1/-1}
.row,.filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end;margin-bottom:.6rem}
label{display:flex;flex-direction:column;gap:.2rem;font-size:.9em;color:#45525e}
label.check{flex-direction:row;align-items:center}
label.req::after{content:" *";color:#b42318}
.card.narrow label{margin-bottom:.7rem}
input,select,textarea{font:inherit;padding:.4rem .5rem;border:1px solid #c3ccd4;border-radius:4px;background:#fff;color:#1d2733}
textarea{resize:vertical}
button,.button{font:inherit;padding:.42rem .9rem;border:0;border-radius:4px;background:#1a5d8f;color:#fff;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.button:hover{background:#14324a}
button.link{background:none;color:inherit;padding:0;text-decoration:underline}
header button.link{color:#fff}
form.inline{display:inline}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dde3e8;margin-bottom:1rem}
th,td{padding:.45rem .6rem;border-bottom:1px solid #e8ecef;text-align:left;vertical-align:top}
th{background:#eef2f5;font-size:.85em;color:#45525e}
td.num{text-align:right;font-variant-numeric:tabular-nums}
dl{display:grid;grid-template-columns:150px 1fr;gap:.25rem .8rem;margin:0}
dt{color:#45525e}
dd{margin:0}
.muted{color:#6b7782}
.warn{color:#b42318}
.notes{background:#f7f9fa;padding:.6rem;border-radius:4px}
.flash{padding:.6rem .9rem;border-radius:4px;margin-bottom:.8rem;background:#e3f4e8;border:1px solid #9bd3ad}
.flash.err{background:#fdecea;border-color:#f1a9a0}
.badge{display:inline-block;padding:.08rem .5rem;border-radius:999px;font-size:.8em;font-weight:600;background:#e8ecef}
.st-a_contacter{background:#fff1d6;color:#7a4b00}
.st-r1_planifie,.st-r2_planifie{background:#dcecfb;color:#0f4c81}
.st-r1_fait{background:#e6e1fa;color:#4b2e9a}
.st-signe{background:#d9f2e1;color:#14653a}
.st-perdu{background:#f3dede;color:#8a1c1c}
.tiles{display:flex;flex-wrap:wrap;gap:.8rem}
.tile{background:#fff;border:1px solid #dde3e8;border-radius:6px;padding:.8rem 1rem;min-width:140px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.3rem}
.tile .n{font-size:1.8rem;font-weight:700}
.alerts li{margin:.3rem 0}
.alerts a,.count{font-weight:700}
.count{background:#14324a;color:#fff;border-radius:999px;padding:0 .5rem;font-size:.8em}
.journal{list-style:none;padding:0;margin:1rem 0 0}
.journal li{border-left:3px solid #c3ccd4;padding:.3rem .7rem;margin-bottom:.6rem}
.journal .meta{font-size:.85em;color:#6b7782}
.j-appel,.j-mail,.j-sms,.j-rdv{border-left-color:#1a5d8f!important}
.j-attribution{border-left-color:#d08700!important}
.j-statut{border-left-color:#14653a!important}
