:root {
  --ink: #161312;
  --muted: #766e68;
  --paper: #f3efe9;
  --panel: #fffdfa;
  --wine: #7d1627;
  --wine-dark: #4f0c17;
  --wine-soft: #a42b41;
  --olive: #5d6840;
  --gold: #b88945;
  --line: rgba(29, 23, 20, .12);
  --shadow: 0 16px 48px rgba(28, 18, 16, .08);
  --radius: 16px;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}img{max-width:100%;display:block}.icon{width:1.3rem;height:1.3rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.admin-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#171313,#0e0d0d);color:#fff;padding:28px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:.8rem;padding:0 8px 28px}.brand__mark{width:40px;height:46px;border:1px solid rgba(255,255,255,.75);border-radius:4px 4px 14px 14px;display:grid;place-items:center;font:700 1.35rem/1 var(--serif)}.brand__text small{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}.brand__text strong{display:block;font:400 1.35rem/1.1 var(--serif)}
.sidebar-nav{display:grid;gap:.35rem}.sidebar-nav a{display:flex;align-items:center;gap:.85rem;padding:.8rem .9rem;border-radius:8px;color:rgba(255,255,255,.72);font-size:.82rem}.sidebar-nav a:hover,.sidebar-nav a.is-active{background:linear-gradient(90deg,var(--wine),#5d101e);color:#fff}.sidebar-nav .icon{width:1.1rem;height:1.1rem}.sidebar-spacer{flex:1}.sidebar-foot{display:grid;gap:.5rem;border-top:1px solid rgba(255,255,255,.1);padding-top:1rem}.sidebar-foot a,.sidebar-foot button{display:flex;align-items:center;gap:.7rem;padding:.65rem .75rem;background:none;border:0;color:rgba(255,255,255,.65);font-size:.76rem;cursor:pointer}.sidebar-foot a:hover,.sidebar-foot button:hover{color:white}

.admin-main{min-width:0}.topbar{min-height:78px;background:rgba(255,253,250,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;position:sticky;top:0;z-index:15}.topbar__title{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.user-chip{display:flex;align-items:center;gap:.8rem}.user-chip__avatar{width:38px;height:38px;border-radius:50%;background:#eee7dc;display:grid;place-items:center;color:var(--wine)}.user-chip strong{display:block;font-size:.82rem}.user-chip span{display:block;font-size:.68rem;color:var(--muted)}.mobile-menu{display:none;border:0;background:none;cursor:pointer}

.workspace{padding:42px;max-width:1500px;margin:0 auto}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:30px}.intro h1{margin:0;font:400 clamp(2.1rem,4vw,4rem)/1.02 var(--serif);letter-spacing:-.035em}.intro h1 span{display:block;font:400 .58em/1.25 var(--sans);letter-spacing:-.02em;margin-top:.35rem}.intro p{max-width:450px;margin:0;color:var(--muted);font-size:.82rem}.view-site{display:inline-flex;align-items:center;gap:.55rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:.75rem;font-weight:700}

.action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.action-card{min-height:190px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;text-align:left;transition:.22s ease}.action-card:hover{transform:translateY(-4px);border-color:rgba(125,22,39,.35);box-shadow:0 20px 60px rgba(28,18,16,.12)}.action-card__icon{width:56px;height:56px;border-radius:15px;background:#f1e6e7;color:var(--wine);display:grid;place-items:center;margin-bottom:22px}.action-card__icon .icon{width:1.8rem;height:1.8rem}.action-card:nth-child(2) .action-card__icon{background:#e9eddf;color:var(--olive)}.action-card:nth-child(3) .action-card__icon{background:#f3ead9;color:#9a661e}.action-card:nth-child(4) .action-card__icon{background:#f6e4e7;color:#c01e3a}.action-card strong{font-size:1rem;margin-bottom:.35rem}.action-card span{color:var(--muted);font-size:.75rem}.action-card .go{margin-top:auto;align-self:flex-end;color:var(--wine)}

.dashboard-grid{display:grid;grid-template-columns:1.55fr .8fr;gap:22px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:20px 22px;border-bottom:1px solid var(--line)}.panel__header h2{margin:0;font-size:.88rem}.panel__header button,.link-button{border:0;background:none;color:var(--wine);font-size:.72rem;font-weight:700;cursor:pointer}.publication-list{padding:4px 22px 18px}.publication-row{display:grid;grid-template-columns:40px minmax(0,1fr) 100px 88px 48px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.publication-row:last-child{border-bottom:0}.publication-icon{width:36px;height:36px;border-radius:10px;background:#f2ebe4;display:grid;place-items:center;color:var(--wine)}.publication-icon .icon{width:1.05rem;height:1.05rem}.publication-title{min-width:0}.publication-title strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem}.publication-title span{display:block;color:var(--muted);font-size:.67rem;margin-top:.15rem}.status{justify-self:start;padding:.25rem .48rem;border-radius:999px;background:#edf2e5;color:#66783a;font-size:.62rem;font-weight:700}.status.active{background:#faead1;color:#9a6417}.publication-row time{font-size:.68rem;color:var(--muted)}.icon-btn{width:34px;height:34px;border:1px solid var(--line);background:white;border-radius:8px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{border-color:var(--wine);color:var(--wine)}.icon-btn .icon{width:1rem;height:1rem}

.help-panel{padding:25px;background:linear-gradient(150deg,#fffdfa,#f3e9df);position:relative;overflow:hidden}.help-panel::after{content:"G";position:absolute;right:-20px;bottom:-65px;font:400 12rem/1 var(--serif);color:rgba(125,22,39,.045)}.help-icon{width:58px;height:58px;border-radius:50%;background:#f1dfe2;color:var(--wine);display:grid;place-items:center;margin-bottom:20px}.help-icon .icon{width:1.8rem;height:1.8rem}.help-panel h2{font:400 1.65rem/1.15 var(--serif);margin:0 0 .75rem}.help-panel p{font-size:.77rem;color:var(--muted);max-width:300px}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;padding:.75rem 1rem;border-radius:8px;border:1px solid transparent;font-size:.75rem;font-weight:750;cursor:pointer}.button--wine{background:var(--wine);color:#fff}.button--wine:hover{background:var(--wine-soft)}.button--outline{background:white;border-color:var(--line)}.button--danger{background:#a61931;color:#fff}.help-panel .button{margin-top:12px;position:relative;z-index:1}

.docs-panel{margin-top:22px}.docs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px 22px 24px}.doc-card{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fff}.doc-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.doc-card .icon{color:var(--wine)}.doc-card strong{display:block;font-size:.77rem;margin:.7rem 0 .25rem}.doc-card span{font-size:.65rem;color:var(--muted)}

.modal{position:fixed;z-index:100;inset:0;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(16,12,12,.72);backdrop-filter:blur(8px)}.modal.is-open{display:flex}.modal__dialog{width:min(760px,100%);max-height:min(90vh,900px);overflow:auto;background:var(--panel);border-radius:18px;box-shadow:0 40px 100px rgba(0,0,0,.35)}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:24px 26px 18px;border-bottom:1px solid var(--line)}.modal__header h2{font:400 2rem/1.05 var(--serif);margin:0}.modal__header p{margin:.45rem 0 0;color:var(--muted);font-size:.75rem}.modal__close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:white;display:grid;place-items:center;cursor:pointer}.modal form{padding:24px 26px 28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:.5rem}.field--full{grid-column:1/-1}.field label{font-size:.72rem;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:white;padding:.85rem .9rem;outline:0;color:var(--ink)}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(125,22,39,.08)}.field small{color:var(--muted);font-size:.65rem}.checkbox{display:flex;align-items:center;gap:.6rem;font-size:.72rem}.modal__actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:22px}.file-drop{border:1px dashed rgba(125,22,39,.35);border-radius:10px;padding:1rem;background:#faf5ef;color:var(--muted);font-size:.72rem}.form-message{margin:0 0 1rem;padding:.8rem 1rem;border-radius:8px;background:#f6e5e8;color:var(--wine);font-size:.72rem;display:none}.form-message.is-visible{display:block}

.toast{position:fixed;z-index:150;right:24px;bottom:24px;background:#111;color:#fff;padding:.9rem 1.1rem;border-left:4px solid var(--wine-soft);border-radius:7px;box-shadow:0 18px 50px rgba(0,0,0,.3);opacity:0;transform:translateY(20px);pointer-events:none;transition:.25s ease}.toast.is-visible{opacity:1;transform:translateY(0)}

.mobile-sidebar{display:none}

@media(max-width:1100px){.admin-shell{grid-template-columns:230px 1fr}.sidebar{padding-inline:14px}.topbar{padding-inline:28px}.workspace{padding:32px 28px}.action-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.docs-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.admin-shell{display:block}.sidebar{position:fixed;inset:0 20% 0 0;height:auto;transform:translateX(-110%);transition:.25s ease;box-shadow:20px 0 60px rgba(0,0,0,.35)}.sidebar.is-open{transform:translateX(0)}.mobile-sidebar{display:none;position:fixed;z-index:19;inset:0;background:rgba(0,0,0,.45)}.mobile-sidebar.is-open{display:block}.mobile-menu{display:grid;width:40px;height:40px;place-items:center}.topbar{padding:0 16px}.topbar__title{display:none}.workspace{padding:26px 16px}.intro{align-items:flex-start;flex-direction:column}.intro h1{font-size:2.65rem}.action-grid{grid-template-columns:1fr 1fr;gap:12px}.action-card{min-height:165px;padding:18px}.action-card__icon{width:48px;height:48px;margin-bottom:15px}.publication-row{grid-template-columns:36px minmax(0,1fr) 38px}.publication-row time,.publication-row .status{display:none}.docs-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field--full{grid-column:auto}.modal{padding:12px}.modal__dialog{max-height:94vh}.modal__header,.modal form{padding-left:18px;padding-right:18px}}
@media(max-width:460px){.action-grid{grid-template-columns:1fr}.action-card{min-height:145px}.user-chip__meta{display:none}.intro h1{font-size:2.25rem}.modal__actions{flex-direction:column-reverse}.modal__actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}

/* Identité officielle et palette municipale plus lumineuse */
.brand__logo{width:52px;height:70px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 5px 10px rgba(30,10,16,.16))}
.sidebar{background:linear-gradient(180deg,#76182c 0%,#4b1120 100%)}
.sidebar-nav a:hover,.sidebar-nav a.is-active{background:rgba(255,255,255,.14);box-shadow:inset 3px 0 0 #f1c7cd}
.sidebar-foot{border-top-color:rgba(255,255,255,.18)}
.topbar{background:rgba(255,251,245,.94)}
.help-panel::after{content:"";width:150px;height:205px;right:-22px;bottom:-42px;background:url('../images/logo-gigondas.png') center/contain no-repeat;opacity:.055}
@media(max-width:760px){.brand__logo{width:46px;height:62px}}

/* --------------------------------------------------------------------------
   V3 — Administration plus claire, compacte et rassurante
   -------------------------------------------------------------------------- */
:root {
  --paper: #f6f1ea;
  --panel: #fffdf9;
  --ink: #26211e;
  --muted: #756b63;
  --wine: #8b1e32;
  --wine-dark: #6d1728;
  --line: rgba(67, 51, 41, .13);
  --shadow: 0 12px 36px rgba(67, 47, 34, .08);
}

.admin-shell { grid-template-columns: 248px 1fr; }
.sidebar {
  background: #eee5db;
  color: var(--ink);
  border-right: 1px solid rgba(74, 54, 42, .12);
  padding: 22px 16px;
  box-shadow: none;
}
.sidebar .brand { padding: 0 8px 22px; gap: .65rem; }
.sidebar .brand__logo {
  width: 34px;
  height: 47px;
  max-width: 34px;
  max-height: 47px;
  flex: 0 0 34px;
  object-fit: contain;
  filter: drop-shadow(0 3px 6px rgba(48,32,20,.12));
}
.sidebar .brand__text small { color: #766a61; }
.sidebar .brand__text strong { color: #2e2824; font-size: 1.25rem; }
.sidebar-nav a {
  color: #5b514a;
  padding: .72rem .8rem;
}
.sidebar-nav a:hover,
.sidebar-nav a.is-active {
  color: var(--wine);
  background: #fff9f3;
  box-shadow: inset 3px 0 0 var(--wine);
}
.sidebar-foot {
  border-top-color: rgba(74,54,42,.13);
}
.sidebar-foot a,
.sidebar-foot button { color: #675c54; }
.sidebar-foot a:hover,
.sidebar-foot button:hover { color: var(--wine); }

.topbar {
  min-height: 66px;
  padding: 0 30px;
  background: rgba(255, 253, 249, .96);
  box-shadow: 0 6px 20px rgba(68, 48, 34, .05);
}
.workspace { padding: 32px; }
.intro { margin-bottom: 24px; }
.action-card { min-height: 174px; }
.toast { background: #6d1728; }

@media (max-width: 1100px) {
  .admin-shell { grid-template-columns: 220px 1fr; }
  .topbar { padding-inline: 24px; }
  .workspace { padding: 28px 24px; }
}

@media (max-width: 760px) {
  .sidebar { background: #eee5db; }
  .sidebar .brand__logo { width: 32px; height: 44px; max-width: 32px; max-height: 44px; flex-basis: 32px; }
  .topbar { min-height: 62px; }
}
