:root { --fg:#1f2933; --bg:#f7f8fa; --accent:#1b5fa7; --border:#d5dbe3; --ok:#e6f4ea; --ko:#fdecea; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, sans-serif; color:var(--fg); background:var(--bg); }
.site-header { display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; padding:.8rem 1.2rem; background:#fff; border-bottom:1px solid var(--border); }
.site-header nav { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }
.brand { font-weight:700; text-decoration:none; color:var(--fg); }
a { color:var(--accent); }
main { max-width:60rem; margin:0 auto; padding:1.2rem; }
.site-footer { text-align:center; padding:1.5rem; color:#667; font-size:.9rem; }
.card { background:#fff; border:1px solid var(--border); border-radius:8px; padding:1rem; max-width:26rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(14rem, 1fr)); gap:1rem; margin-bottom:1rem; }
.grid .card { max-width:none; }
label { display:block; margin-bottom:.8rem; font-weight:600; }
input[type=text], input[type=email], input[type=password], input[type=number] { display:block; width:100%; padding:.5rem; margin-top:.25rem; border:1px solid var(--border); border-radius:6px; font:inherit; }
button { padding:.55rem 1rem; border:0; border-radius:6px; background:var(--accent); color:#fff; font:inherit; cursor:pointer; }
button.link { background:none; color:var(--accent); padding:0; text-decoration:underline; }
form.inline { display:inline; }
.flash { padding:.7rem 1rem; border-radius:6px; margin-bottom:1rem; border:1px solid var(--border); }
.flash.success { background:var(--ok); }
.flash.error { background:var(--ko); }
table { border-collapse:collapse; background:#fff; }
th, td { border:1px solid var(--border); padding:.4rem .8rem; text-align:left; }
.errors { background:var(--ko); border:1px solid #f5c2c0; padding:.7rem 1rem; border-radius:6px; margin-bottom:1rem; }
.ok-list li { color:#176b2c; }
.ko-list li { color:#b3261e; }
fieldset { border:1px solid var(--border); border-radius:8px; margin-bottom:1rem; background:#fff; }
legend { font-weight:700; padding:0 .4rem; }
.hint { font-weight:400; color:#667; font-size:.9rem; }

/* ---- Phase 2 : formulaires, fiches, référentiels ---- */
.muted { color:#667; }
.card.wide { max-width:none; }
textarea, select, input[type=date], input[type=time] { display:block; width:100%; padding:.5rem; margin-top:.25rem; border:1px solid var(--border); border-radius:6px; font:inherit; background:#fff; }
textarea { resize:vertical; min-height:5rem; }
a.button { display:inline-block; padding:.55rem 1rem; border-radius:6px; background:var(--accent); color:#fff; text-decoration:none; }
button.secondary { background:#fff; color:var(--accent); border:1px solid var(--accent); }
button.danger { background:#b3261e; }
.actions { display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.errors ul { margin:.3rem 0 0; padding-left:1.2rem; }

.badge { display:inline-block; padding:.1rem .6rem; border-radius:999px; font-size:.85rem; border:1px solid var(--border); background:#fff; }
.badge-publiee { background:var(--ok); }
.badge-en_attente { background:#fff6dd; }
.badge-refusee, .badge-suspendue, .badge-corbeille { background:var(--ko); }

.fiche-list, .ref-list { list-style:none; margin:0; padding:0; }
.fiche-list > li { margin-bottom:1rem; }
.fiche-head { display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; justify-content:space-between; }

.check-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr)); gap:.3rem 1rem; }
.check-list label, .check-inline { display:flex; gap:.4rem; align-items:center; font-weight:400; margin:0; }
.check-list input, .check-inline input { width:auto; margin:0; }
.label-row { display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:center; margin-bottom:.6rem; }
.inline-field { display:flex; gap:.4rem; align-items:center; font-weight:400; margin:0; }
.inline-field input { width:auto; margin:0; }

.contact-row { display:grid; grid-template-columns:minmax(10rem, 1fr) 2fr; gap:.5rem; margin-bottom:.5rem; }
.contact-row select, .contact-row input { margin-top:0; }
@media (max-width: 600px) { .contact-row { grid-template-columns:1fr; } }

.table-scroll { overflow-x:auto; margin-bottom:.5rem; }
.hours-table { width:100%; }
.hours-table th, .hours-table td { padding:.3rem .5rem; }
.hours-table input[type=time] { display:inline-block; width:auto; margin:0; padding:.3rem; }
.hours-table .slot { white-space:nowrap; }

.tags { display:flex; flex-wrap:wrap; gap:.4rem; }
.tag { padding:.1rem .6rem; border-radius:999px; background:#e8eef6; font-size:.9rem; }
.fiche h2 { font-size:1.1rem; margin:1.2rem 0 .3rem; }
.hours { display:grid; grid-template-columns:8rem 1fr; gap:.2rem 1rem; margin:0; }
.hours dt { font-weight:600; }
.hours dd { margin:0; }

.tabs { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.tabs a { padding:.4rem .8rem; border:1px solid var(--border); border-radius:6px; background:#fff; text-decoration:none; }
.tabs a.active { background:var(--accent); border-color:var(--accent); color:#fff; }
.ref-add { margin-bottom:1.2rem; }
.ref-item { display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; padding:.5rem 0; border-bottom:1px solid var(--border); }
.ref-edit { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; flex:1 1 24rem; }
.ref-edit input[type=text], .ref-edit select { width:auto; flex:1 1 12rem; margin:0; }

/* ---- Phase 3 : modération ---- */
.search-form { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.search-form input[type=text] { width:auto; flex:1 1 14rem; margin:0; padding:.5rem; border:1px solid var(--border); border-radius:6px; font:inherit; }
.list-table { width:100%; }
.pager { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.meta { margin:0 0 1rem; padding-left:1.2rem; }
.panel { margin-bottom:1rem; }
.panel h2 { margin-top:0; font-size:1.1rem; }
.decision-form { margin:1rem 0; }
.section-title { margin-top:1.5rem; }
pre.log { background:#fff; border:1px solid var(--border); border-radius:6px; padding:.7rem; overflow-x:auto; font-size:.85rem; }

/* ---- Phase 4 : recherche et consultation publiques ---- */
.search-form.big input[type=text] { font-size:1.1rem; padding:.7rem; }
.search-form.big button { font-size:1.05rem; }
a.tag { text-decoration:none; color:var(--fg); }
a.tag:hover { background:#d5e1f1; }
.tag-label { background:#fff6dd; }
.fiche-list h3 { margin:0 0 .3rem; font-size:1.15rem; }
.fiche-list .card { max-width:none; }
.check-inline { margin-bottom:.5rem; }
hr { border:0; border-top:1px solid var(--border); margin:1.5rem 0; }
