/* ================= Administration : barre latérale marine, accent or, clair / sombre ================= */
:root{
  --a-bg:#eef1f7; --a-card:#ffffff; --a-fg:#16264a; --a-muted:#55617f; --a-line:#dfe4ee;
  --a-side:#16264a; --a-side-fg:#c9d2e8; --a-side-line:#243a6b;
  --a-accent:#e3a33a; --a-accent-fg:#16264a; --a-accent-soft:#fbeccd; --a-link:#16264a;
  --a-right:#e3e8f2; --a-input:#ffffff; --a-hover:#f5f7fb;
}
[data-theme=dark]{
  --a-bg:#0e1a36; --a-card:#16264a; --a-fg:#f1f4fb; --a-muted:#a9b4cf; --a-line:#2b3f6e;
  --a-side:#0a1228; --a-side-fg:#b5c0da; --a-side-line:#1c2c55;
  --a-accent:#e3a33a; --a-accent-fg:#16264a; --a-accent-soft:#4a3d22; --a-link:#f0c46a;
  --a-right:#101d3d; --a-input:#11204a; --a-hover:#1b2f5d;
}

/* Les composants existants (.card, .btn, champs…) héritent du thème de l'administration */
.adm-body{display:block;background:var(--a-bg);color:var(--a-fg);--bg:var(--a-bg);--fg:var(--a-fg);--card:var(--a-card);--line:var(--a-line);--muted:var(--a-muted);--brand:var(--a-accent);--brand-dark:var(--a-link);--ink:var(--a-fg);--link:var(--a-link);--soft:var(--a-accent-soft)}
.adm-body a{color:var(--a-link)}
.adm-body .btn{background:var(--a-accent);color:var(--a-accent-fg)}
.adm-body .btn:hover{background:#efbb5f;color:#16264a}
.adm-body .btn.ghost{background:transparent;color:var(--a-fg);border:1px solid var(--a-accent)}
.adm-body .btn.ghost:hover{background:var(--a-accent-soft);color:var(--a-fg)}
.adm-body input,.adm-body select,.adm-body textarea{background:var(--a-input);color:var(--a-fg);border-color:var(--a-line)}
.adm-body .card,.adm-body .room,.adm-body .stat{background:var(--a-card);border-color:var(--a-line);color:var(--a-fg)}
.adm-body .alert{background:var(--a-accent-soft);color:var(--a-fg);border-color:var(--a-accent);border-radius:14px}
.adm-body .muted{color:var(--a-muted)}
.adm-body .chip{background:var(--a-accent-soft);border-color:var(--a-line);color:var(--a-fg)}
.adm-body .badge{background:var(--a-accent-soft);color:var(--a-link)}
.adm-body .badge.busy{background:#e0ecff;color:#1e3a8a}.adm-body .badge.hold{background:#fff1d6;color:#8a5a00}
.adm-body .badge.ok{background:#dcfce7;color:#166534}.adm-body .badge.bad{background:#fee2e2;color:#991b1b}.adm-body .badge.off{background:#ececec;color:#444}
[data-theme=dark] .adm-body .badge.busy{background:#18284d;color:#a9c4ff}[data-theme=dark] .adm-body .badge.hold{background:#3a2a0a;color:#f2c97a}
[data-theme=dark] .adm-body .badge.ok{background:#12301d;color:#8fe0a8}[data-theme=dark] .adm-body .badge.bad{background:#3a1618;color:#fca5a5}[data-theme=dark] .adm-body .badge.off{background:#2a2d33;color:#b6bbc3}
[data-theme=dark] .adm-body .bed{background:#1b2d57}
[data-theme=dark] .adm-body .bed--busy{background:#172f63}[data-theme=dark] .adm-body .bed--hold{background:#3a3016}[data-theme=dark] .adm-body .bed--off{background:#22305a}
[data-theme=dark] .adm-body .bed details .form{background:#1b2d57}
[data-theme=dark] .adm-body .track{background:#2b3f6e}
.adm-body .bed{background:var(--a-card)}
.adm-body .bed--busy{background:#f6f9ff}.adm-body .bed--hold{background:#fffaf0}.adm-body .bed--off{background:#f1f3f8}
.adm-body table.tbl th,.adm-body table.tbl td{border-color:var(--a-line)}
.adm-body details .form{background:var(--a-card)}

/* Cadre */
.adm{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.adm-side{position:sticky;top:0;height:100vh;background:var(--a-side);color:var(--a-side-fg);display:flex;flex-direction:column;gap:18px;padding:22px 16px;overflow-y:auto}
.adm-brand{color:#fff!important;text-decoration:none;font-weight:700;font-size:1.2rem;letter-spacing:.2px;padding:4px 10px}
.adm-brand span{color:var(--a-accent)}
.adm-nav{display:flex;flex-direction:column;gap:4px}
.adm-nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:var(--a-side-fg)!important;text-decoration:none;font-weight:500;font-size:.95rem;min-height:44px}
.adm-nav a:hover{background:var(--a-side-line);color:#fff!important}
.adm-nav a[aria-current=page]{background:var(--a-accent);color:var(--a-accent-fg)!important;font-weight:600}
.adm-user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--a-side-line);border-radius:14px}
.adm-avatar{flex:none;width:38px;height:38px;border-radius:50%;background:var(--a-accent);color:var(--a-accent-fg);display:grid;place-items:center;font-weight:700}
.adm-user-text{min-width:0;flex:1;display:flex;flex-direction:column;line-height:1.25}
.adm-user-text b{color:#fff;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-user-text small{color:var(--a-side-fg);display:flex;align-items:center;gap:6px}
.dot{width:8px;height:8px;border-radius:50%;background:#34c46a;display:inline-block}
.adm-icon-btn{background:transparent;border:0;color:var(--a-side-fg);cursor:pointer;padding:8px;border-radius:10px;min-width:40px;min-height:40px;display:grid;place-items:center}
.adm-icon-btn:hover{background:var(--a-side-line);color:#fff}
.theme-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--a-side-line);padding:4px;border-radius:12px}
.theme-toggle button{border:0;border-radius:9px;padding:9px 6px;background:transparent;color:var(--a-side-fg);font:inherit;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px}
.theme-toggle button[aria-pressed=true]{background:var(--a-accent);color:var(--a-accent-fg);font-weight:600}
.adm-main{padding:28px 30px 48px;min-width:0}
.adm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.adm-head h1{margin:0;font-size:1.7rem}
.adm-main h2{font-size:1.15rem;margin:26px 0 12px}
.adm-login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.adm-login{width:100%;max-width:400px}
.adm-login h1{text-align:center;margin:0 0 6px}
.adm-login .brandline{text-align:center;color:var(--a-link);font-weight:600;margin-bottom:18px}

/* Tableau de bord */
.adm-home{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}
.adm-welcome{background:#e3a33a;color:#16264a;border-radius:20px;padding:26px 28px;position:relative;overflow:hidden}
.adm-welcome h2{margin:0 0 6px;font-size:1.6rem;color:#16264a}
.adm-welcome p{margin:0 0 16px;max-width:520px;color:#16264a;font-weight:500}
.adm-welcome .btn{background:#16264a;color:#fff;margin:0 8px 8px 0}
.adm-welcome .btn:hover{background:#fff;color:#16264a}
.adm-welcome::after{content:"";position:absolute;right:-40px;top:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.28)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0}
.kpi{background:var(--a-card);border:1px solid var(--a-line);border-radius:16px;padding:16px;display:flex;gap:12px;align-items:center}
.kpi .ico{flex:none;width:44px;height:44px;border-radius:14px;background:var(--a-accent-soft);color:var(--a-link);display:grid;place-items:center}
.kpi b{display:block;font-size:1.6rem;line-height:1.1}
.kpi span{color:var(--a-muted);font-size:.85rem}
.panel{background:var(--a-card);border:1px solid var(--a-line);border-radius:18px;padding:20px}
.panel h3{margin:0 0 14px;font-size:1.05rem;display:flex;justify-content:space-between;align-items:baseline}
.panel h3 a{font-size:.82rem;font-weight:500}
.donut-wrap{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:center}
.donut{width:200px;height:200px;border-radius:50%;display:grid;place-items:center;position:relative}
.donut::after{content:"";position:absolute;inset:34px;border-radius:50%;background:var(--a-card)}
.donut b{position:relative;z-index:1;font-size:2rem}
.donut small{display:block;font-size:.72rem;font-weight:500;color:var(--a-muted);text-align:center}
.donut-in{position:relative;z-index:1;text-align:center}
.legend{display:flex;flex-direction:column;gap:14px}
.lg-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:.92rem}
.lg-row .name{display:flex;align-items:center;gap:8px}
.lg-row .sw{width:10px;height:10px;border-radius:3px}
.lg-bar{grid-column:1/-1;height:6px;border-radius:99px;background:var(--a-line);overflow:hidden}
.lg-bar i{display:block;height:100%;border-radius:99px}
.adm-right{background:var(--a-right);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:18px}
.adm-right h3{margin:0 0 10px;font-size:1.05rem}
.act{display:flex;gap:12px;align-items:center;background:var(--a-card);border:1px solid var(--a-line);border-radius:14px;padding:10px 12px;margin-bottom:8px}
.act .date{flex:none;width:46px;text-align:center;background:var(--a-accent-soft);color:var(--a-link);border-radius:10px;padding:4px 0;font-weight:700;line-height:1.1}
.act .date small{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase}
.act .t{min-width:0;font-size:.88rem}
.act .t b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.act .t span{color:var(--a-muted);font-size:.8rem}
.empty{color:var(--a-muted);font-size:.88rem;margin:0 0 6px}

@media(max-width:1180px){.adm-home{grid-template-columns:1fr}}
@media(max-width:900px){
  .adm{grid-template-columns:1fr}
  .adm-side{position:static;height:auto;flex-direction:column;padding:14px}
  .adm-side{gap:10px}
  .adm-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin:0 -4px;scrollbar-width:thin}
  .adm-nav a{flex:none;padding:9px 14px;white-space:nowrap}
  .adm-user{margin-top:0;padding:6px 10px}
  .theme-toggle{max-width:260px}
  .adm-main{padding:20px 16px 40px}
  .donut-wrap{grid-template-columns:1fr;justify-items:center}
}

.adm-body .filters a{background:var(--a-accent-soft);color:var(--a-fg)}
.adm-body .filters a[aria-current=page]{background:var(--a-accent);color:var(--a-accent-fg)}
.adm-body .tl-signalement .tl-dot{background:#3a2a0a;color:#f2c97a}
[data-theme=light] .adm-body .tl-signalement .tl-dot{background:#fff1d6;color:#8a5a00}
