/* =========================================================
   PALAIS DE LION — PMS
   Thème visuel repris du menu / dossier (or + crème)
   ========================================================= */

:root{
  --cream: #EDE6D6;
  --cream-soft: #F4EFE2;
  --gold: #A9813F;
  --gold-deep: #8A6A2F;
  --ink: #241E15;
  --ink-soft: #5A5142;
  --hair: rgba(169,129,63,0.35);
  --danger: #9B3B3B;
  --success: #4E7C55;
}

*{ box-sizing:border-box; }

html{ overflow-x:hidden; }

body{
  margin:0;
  font-family:'Jost', sans-serif;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}

h1,h2,h3,h4,.brand-font{
  font-family:'Cormorant Garamond', serif;
}

a{ color:inherit; text-decoration:none; }

/* ---------- Layout shell ---------- */
.app-shell{ display:flex; min-height:100vh; }

.sidebar{
  width:230px;
  flex-shrink:0;
  background:var(--ink);
  color:var(--cream-soft);
  display:flex;
  flex-direction:column;
  padding:22px 16px;
}
.sidebar .brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:18px;
  margin-bottom:18px;
  border-bottom:1px solid rgba(169,129,63,0.4);
}
.sidebar .brand img{ height:38px; width:auto; object-fit:contain; }
.sidebar .brand span{
  font-family:'Cormorant Garamond', serif;
  font-weight:600;
  font-size:16px;
  letter-spacing:1px;
  color:#F4EFE2;
}
.sidebar nav a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:8px;
  font-size:13.5px;
  color:#D9CDB0;
  margin-bottom:4px;
  transition:background .15s;
}
.sidebar nav a:hover{ background:rgba(169,129,63,0.18); color:#fff; }
.sidebar nav a.active{ background:var(--gold-deep); color:#fff; }
.sidebar .spacer{ flex:1; }
.sidebar .logout-btn{
  width:100%;
  background:transparent;
  border:1px solid rgba(169,129,63,0.5);
  color:#D9CDB0;
  padding:9px 12px;
  border-radius:8px;
  font-family:'Jost', sans-serif;
  font-size:13px;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px;
}
.sidebar .logout-btn:hover{ background:rgba(169,129,63,0.18); color:#fff; }

.main{ flex:1; min-width:0; padding:26px 32px; max-width:1400px; }

.topbar{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:26px;
  padding-bottom:16px;
  border-bottom:1px solid var(--hair);
}
.topbar .title-wrap{ display:flex; align-items:center; gap:12px; }
.topbar .title-bar{
  width:4px; height:26px; border-radius:3px;
  background:linear-gradient(180deg, var(--gold), var(--gold-deep));
  flex-shrink:0;
}
.topbar h1{
  font-size:24px; font-weight:600; color:var(--ink); margin:0; line-height:1.1;
}
.topbar .eyebrow{
  font-size:10.5px; letter-spacing:1.8px; text-transform:uppercase;
  color:var(--gold-deep); font-weight:600; margin:0 0 3px;
}
.topbar-right{ display:flex; align-items:center; gap:12px; }
.notif-btn{
  position:relative;
  width:38px; height:38px; border-radius:50%;
  background:#fff; border:1px solid var(--hair);
  display:flex; align-items:center; justify-content:center;
  font-size:16px; color:var(--gold-deep);
  box-shadow:0 1px 2px rgba(36,30,21,0.04);
  transition:background .15s, transform .15s;
  flex-shrink:0;
}
.notif-btn:hover{ background:var(--cream-soft); transform:translateY(-1px); }
.notif-btn .notif-dot{
  position:absolute; top:-2px; right:-2px;
  min-width:16px; height:16px; padding:0 3px; border-radius:50%;
  background:var(--danger); color:#fff; font-size:9.5px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  border:2px solid var(--cream);
}
.topbar .user-chip{
  font-size:12.5px; color:var(--ink-soft);
  display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid var(--hair);
  padding:6px 14px 6px 6px; border-radius:30px;
  box-shadow:0 1px 2px rgba(36,30,21,0.04);
  transition:background .15s, transform .15s;
}
.topbar .user-chip:hover{ background:var(--cream-soft); transform:translateY(-1px); }
.topbar .user-chip .name{ font-weight:600; color:var(--ink); }
.topbar .user-chip .role{
  background:var(--cream-soft); border:1px solid var(--hair);
  padding:2px 9px; border-radius:20px; color:var(--gold-deep); font-weight:500;
}

/* ---------- Cards ---------- */
.card{
  background:var(--cream-soft);
  border:1px solid var(--hair);
  border-radius:12px;
  padding:20px 22px;
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
}
.stat-cards-wrap{ position:relative; margin-bottom:24px; padding:0 20px; }
.stat-grid{
  display:flex; gap:16px;
  overflow-x:auto; scroll-behavior:smooth;
  padding-bottom:6px;
  scrollbar-width:none;
}
.stat-grid::-webkit-scrollbar{ display:none; }
.stat-grid .stat-card{ flex:0 0 190px; }
.stat-card{
  background:#fff;
  border:1px solid var(--hair);
  border-radius:12px;
  padding:18px 20px;
  position:relative;
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
  transition:box-shadow .15s, transform .15s;
}
.stat-card:hover{
  box-shadow:0 2px 4px rgba(36,30,21,0.06), 0 8px 22px rgba(36,30,21,0.09);
  transform:translateY(-1px);
}
.stat-card .icon{
  width:38px; height:38px; border-radius:10px;
  background:rgba(169,129,63,0.12); color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center;
  font-size:17px; margin-bottom:12px;
}
.stat-card .icon.tone-ink{ background:var(--ink); color:#F4EFE2; }
.stat-card .icon.tone-gold{ background:var(--gold); color:#fff; }
.stat-card .icon.tone-green{ background:var(--success); color:#fff; }
.stat-card .icon.tone-red{ background:var(--danger); color:#fff; }
.stat-card .trend{
  display:inline-flex; align-items:center; gap:3px;
  font-size:11px; font-weight:600; margin-top:6px;
}
.stat-card .trend.up{ color:var(--success); }
.stat-card .trend.down{ color:var(--danger); }
.stat-card .trend.flat{ color:var(--ink-soft); }
.chart-card canvas{ max-width:100%; }
.stat-card .label{
  font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--gold-deep); font-weight:600; margin-bottom:6px;
}
.stat-card .value{
  font-family:'Cormorant Garamond', serif;
  font-size:32px; font-weight:700; color:var(--ink);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Jost', sans-serif;
  font-size:13px; font-weight:500;
  padding:9px 18px;
  border-radius:8px;
  border:1px solid var(--gold);
  background:var(--gold);
  color:#fff;
  cursor:pointer;
  transition:opacity .15s, transform .1s, box-shadow .15s;
  box-shadow:0 1px 2px rgba(169,129,63,0.25);
}
.btn:hover{ opacity:.9; box-shadow:0 3px 10px rgba(169,129,63,0.3); }
.btn:active{ transform:translateY(1px); }
.btn-outline{
  background:transparent; color:var(--gold-deep); border:1px solid var(--gold);
  box-shadow:none;
}
.btn-outline:hover{ background:var(--cream-soft); }
.btn-danger{ background:var(--danger); border-color:var(--danger); box-shadow:0 1px 2px rgba(155,59,59,0.25); }
.btn-sm{ padding:5px 12px; font-size:12px; border-radius:6px; }

/* ---------- Forms ---------- */
label{
  display:block; font-size:11.5px; letter-spacing:.5px; text-transform:uppercase;
  color:var(--gold-deep); font-weight:600; margin-bottom:5px;
}
input[type=text], input[type=email], input[type=password], input[type=number],
input[type=date], input[type=time], input[type=tel], select, textarea{
  width:100%;
  padding:9px 12px;
  border:1px solid var(--hair);
  border-radius:8px;
  background:#fff;
  font-family:'Jost', sans-serif;
  font-size:13.5px;
  color:var(--ink);
  margin-bottom:16px;
  transition:border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(169,129,63,0.15);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-row-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.checkbox-line{ display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.checkbox-line input{ width:auto; margin:0; }
.checkbox-line label{ margin:0; text-transform:none; font-weight:400; color:var(--ink-soft); font-size:13px; }

/* ---------- Table ---------- */
table.data-table{ width:100%; border-collapse:collapse; background:#fff; }
table.data-table th{
  text-align:left; font-size:10.5px; letter-spacing:1px; text-transform:uppercase;
  color:var(--gold-deep); font-weight:600;
  background:var(--cream-soft);
  border-bottom:2px solid var(--gold);
  padding:10px 14px;
}
table.data-table td{
  padding:9px 14px; border-bottom:1px solid var(--hair);
  font-size:13.5px; color:var(--ink-soft); vertical-align:middle;
}
table.data-table tr:last-child td{ border-bottom:none; }
table.data-table tr:hover td{ background:var(--cream-soft); }
table.data-table td.num, table.data-table th.num{ text-align:right; font-variant-numeric:tabular-nums; }
table.data-table td.strong{ color:var(--ink); font-weight:600; }
.client-cell{ display:flex; align-items:center; gap:8px; }
.client-cell .client-avatar{
  width:26px; height:26px; border-radius:50%; flex-shrink:0;
  background:var(--gold-deep); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:10.5px; font-weight:700;
}

.badge{
  display:inline-block; padding:3px 10px; border-radius:20px;
  font-size:11px; font-weight:600; letter-spacing:.3px;
}
.badge-gold{ background:rgba(169,129,63,0.15); color:var(--gold-deep); }
.badge-green{ background:rgba(78,124,85,0.15); color:var(--success); }
.badge-red{ background:rgba(155,59,59,0.15); color:var(--danger); }
.badge-grey{ background:#eee; color:#777; }

.room-thumb{
  width:34px; height:34px; object-fit:cover; border-radius:6px; border:1px solid var(--hair); flex-shrink:0;
}

/* ---------- Alerts ---------- */
.alert{
  padding:11px 16px; border-radius:8px; font-size:13px; margin-bottom:18px;
}
.alert-success{ background:rgba(78,124,85,0.12); color:var(--success); border:1px solid rgba(78,124,85,0.35); }
.alert-error{ background:rgba(155,59,59,0.10); color:var(--danger); border:1px solid rgba(155,59,59,0.35); }

/* ---------- Room picker (reservation form) ---------- */
.room-picker{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px; margin-bottom:20px;
}
.room-option{
  border:2px solid var(--hair); border-radius:10px; overflow:hidden; cursor:pointer;
  background:#fff; transition:border-color .15s, box-shadow .15s;
}
.room-option.selected{ border-color:var(--gold); box-shadow:0 0 0 2px rgba(169,129,63,0.25); }
.room-option img{ width:100%; height:90px; object-fit:cover; display:block; }
.room-option .ro-body{ padding:8px 10px; }
.room-option .ro-name{ font-size:12.5px; font-weight:600; color:var(--ink); }
.room-option .ro-price{ font-size:11px; color:var(--gold-deep); margin-top:2px; }

/* ---------- Room cards (page "Chambres & Suites") ---------- */
.room-cards-wrap{ position:relative; margin-bottom:24px; padding:0 20px; }
.room-cards{
  display:flex; gap:20px;
  overflow-x:auto; scroll-behavior:smooth;
  padding-bottom:6px;
  scrollbar-width:none;
}
.room-cards::-webkit-scrollbar{ display:none; }
.room-cards .room-card{ flex:0 0 260px; }
.carousel-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:50%;
  background:var(--gold); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:5;
  box-shadow:0 3px 10px rgba(169,129,63,0.4);
  transition:background .15s, transform .15s;
}
.carousel-nav:hover{ background:var(--gold-deep); transform:translateY(-50%) scale(1.06); }
.carousel-nav.prev{ left:0; }
.carousel-nav.next{ right:0; }
@media (max-width: 640px){
  .carousel-nav{ width:34px; height:34px; }
  .carousel-nav.prev{ left:-8px; }
  .carousel-nav.next{ right:-8px; }
}
.room-card{
  background:#fff; border:1px solid var(--hair); border-radius:14px; overflow:hidden;
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
  transition:box-shadow .18s, transform .18s;
  display:flex; flex-direction:column;
}
.room-card:hover{
  box-shadow:0 4px 8px rgba(36,30,21,0.07), 0 12px 28px rgba(36,30,21,0.12);
  transform:translateY(-2px);
}
.room-card .thumb-wrap{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--cream); }
.room-card .thumb-wrap img{
  width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s;
}
.room-card:hover .thumb-wrap img{ transform:scale(1.04); }
.room-card .status-pill{
  position:absolute; top:10px; right:10px;
  backdrop-filter:blur(2px);
}
.room-card .rc-body{ padding:15px 16px 16px; display:flex; flex-direction:column; flex:1; }
.room-card .rc-name{ font-family:'Cormorant Garamond',serif; font-weight:700; font-size:18px; color:var(--ink); line-height:1.2; }
.room-card .rc-meta{ font-size:11px; color:var(--ink-soft); text-transform:capitalize; margin-top:3px; }
.room-card .rc-price{
  margin-top:10px; font-family:'Cormorant Garamond',serif; font-size:19px; color:var(--gold-deep); font-weight:700;
}
.room-card .rc-price small{ font-size:11px; font-weight:400; color:var(--ink-soft); }
.room-card .rc-actions{ margin-top:12px; display:flex; gap:8px; flex-wrap:wrap; }

/* ---------- Galerie chambre ---------- */
.gallery-header{
  display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px;
}
.gallery-price-chip{
  background:var(--cream); border:1px solid var(--hair); border-radius:30px;
  padding:8px 18px; font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--gold-deep); font-weight:700;
  white-space:nowrap;
}
.gallery-price-chip small{ font-size:11px; font-weight:400; color:var(--ink-soft); }
.gallery-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:18px;
}
.gallery-item{
  position:relative; border-radius:12px; overflow:hidden; aspect-ratio:4/3;
  border:1px solid var(--hair); background:var(--cream);
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
}
.gallery-item img{
  width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s;
}
.gallery-item:hover img{ transform:scale(1.05); }
.gallery-item .del-btn{
  position:absolute; top:8px; right:8px;
  width:30px; height:30px; border-radius:50%;
  background:rgba(36,30,21,0.55); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center; font-size:14px;
  cursor:pointer; opacity:0; transition:opacity .15s, background .15s;
}
.gallery-item:hover .del-btn{ opacity:1; }
.gallery-item .del-btn:hover{ background:var(--danger); }

/* ---------- Confirm modal (remplace window.confirm natif) ---------- */
.confirm-overlay{
  position:fixed; inset:0; background:rgba(36,30,21,0.45);
  display:flex; align-items:center; justify-content:center;
  z-index:1000; opacity:0; pointer-events:none;
  transition:opacity .15s;
  padding:20px;
}
.confirm-overlay.open{ opacity:1; pointer-events:auto; }
.confirm-box{
  background:#fff; border-radius:14px; max-width:420px; width:100%;
  padding:26px 26px 20px; box-shadow:0 20px 60px rgba(36,30,21,0.35);
  transform:translateY(8px) scale(.98); transition:transform .15s;
  border:1px solid var(--hair);
}
.confirm-overlay.open .confirm-box{ transform:translateY(0) scale(1); }
.confirm-box .confirm-icon{
  width:44px; height:44px; border-radius:50%;
  background:rgba(169,129,63,0.14); color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center;
  font-size:19px; margin-bottom:14px;
}
.confirm-box.danger .confirm-icon{ background:rgba(155,59,59,0.12); color:var(--danger); }
.confirm-box h4{
  font-family:'Cormorant Garamond', serif; font-size:19px; font-weight:700;
  color:var(--ink); margin:0 0 8px;
}
.confirm-box p{
  font-size:13.5px; color:var(--ink-soft); line-height:1.5; margin:0 0 22px;
}
.confirm-box .confirm-actions{
  display:flex; justify-content:flex-end; gap:10px;
}

/* ---------- Pagination Laravel (vue par défaut, sans Tailwind chargé) ---------- */
nav[aria-label="Pagination Navigation"] svg{
  width:16px !important; height:16px !important;
  display:inline-block; vertical-align:middle;
}
nav[aria-label="Pagination Navigation"]{
  font-family:'Jost', sans-serif; font-size:13px;
}
nav[aria-label="Pagination Navigation"] > div:first-child{
  display:none;
}
nav[aria-label="Pagination Navigation"] > div:last-child{
  display:flex; align-items:center; justify-content:space-between;
  width:100%; flex-wrap:wrap; gap:10px;
}
nav[aria-label="Pagination Navigation"] p{
  font-size:12.5px; color:var(--ink-soft); margin:0;
}
nav[aria-label="Pagination Navigation"] p span{ color:var(--ink); font-weight:600; }
nav[aria-label="Pagination Navigation"] .sr-only{ display:none; }
nav[aria-label="Pagination Navigation"] > div:last-child > div:last-child{
  display:flex; align-items:center; gap:4px;
}
nav[aria-label="Pagination Navigation"] > div:last-child > div:last-child a,
nav[aria-label="Pagination Navigation"] > div:last-child > div:last-child span span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:32px; height:32px; padding:0 8px;
  border-radius:8px; color:var(--ink-soft); text-decoration:none;
}
nav[aria-label="Pagination Navigation"] > div:last-child > div:last-child a:hover{ background:var(--cream-soft); }
nav[aria-label="Pagination Navigation"] > div:last-child > div:last-child span[aria-current="page"] span{
  background:var(--gold); color:#fff; font-weight:600;
}
.login-body{
  display:flex; align-items:center; justify-content:center;
  min-height:100vh; padding:24px;
  background:linear-gradient(135deg, #F4EFE2 0%, #EDE1C4 55%, #E4D3A8 100%);
}
.login-outer{
  width:100%; max-width:960px; min-height:560px;
  background:#fff;
  border-radius:28px;
  overflow:hidden;
  display:flex;
  box-shadow:0 8px 20px rgba(90,65,25,0.1), 0 30px 70px rgba(90,65,25,0.18);
}
.login-form-side{
  width:420px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  padding:40px;
  background:#fff;
}
.login-card{
  width:100%; max-width:320px;
}
.login-photo-side{
  flex:1;
  background-size:cover; background-position:center;
  position:relative;
  overflow:hidden;
  display:flex; flex-direction:column; justify-content:center;
  padding:56px;
}
.login-photo-side::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(36,30,21,0.12) 0%, rgba(36,30,21,0.28) 45%, rgba(58,42,18,0.72) 100%);
}
.deco-shapes{ position:absolute; inset:0; overflow:hidden; z-index:1; pointer-events:none; }
.deco-blob{
  position:absolute; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(217,183,112,0.55), rgba(217,183,112,0));
  filter:blur(2px);
}
.deco-blob-1{ width:340px; height:340px; top:-80px; right:-100px; }
.deco-blob-2{ width:180px; height:180px; bottom:60px; right:100px; background:radial-gradient(circle at 30% 30%, rgba(244,239,226,0.35), rgba(244,239,226,0)); }
.deco-blob-3{ width:90px; height:90px; bottom:170px; right:260px; background:radial-gradient(circle at 30% 30%, rgba(217,183,112,0.45), rgba(217,183,112,0)); }
.welcome-text{ position:relative; z-index:2; color:#F4EFE2; max-width:400px; }
.welcome-text .welcome-eyebrow{
  display:inline-block;
  font-size:10.5px; letter-spacing:3px; text-transform:uppercase; color:#241E15; font-weight:700;
  background:#D9B770; padding:4px 12px; border-radius:20px; margin-bottom:16px;
}
.welcome-text h1{
  font-family:'Cormorant Garamond', serif; font-weight:700; font-size:38px; line-height:1.15;
  margin:0 0 16px; color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,0.45);
}
.welcome-text p{
  font-size:13.5px; line-height:1.6; color:#F4EFE2; max-width:340px;
  text-shadow:0 1px 8px rgba(0,0,0,0.5);
}
.login-photo-side .caption{
  position:relative; z-index:2; margin-top:30px;
  color:#F0D9A0;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:14px;
  text-shadow:0 1px 8px rgba(0,0,0,0.55);
}
.login-logo{
  display:flex; align-items:center; gap:12px;
  padding-bottom:20px; margin-bottom:22px;
  border-bottom:1px solid var(--hair);
}
.login-logo-badge{
  flex-shrink:0; width:56px; height:56px; border-radius:12px;
  background:#fff; border:1px solid var(--hair);
  display:flex; align-items:center; justify-content:center;
  padding:6px;
}
.login-logo-badge img{ width:100%; height:100%; object-fit:contain; }
.login-logo-text{ text-align:left; }
.login-logo .brand{
  font-family:'Cormorant Garamond', serif; font-weight:700; font-size:19px; color:var(--ink);
  letter-spacing:.5px; line-height:1.15;
}
.login-logo .tagline{
  font-family:'Cormorant Garamond', serif; font-style:italic; font-size:11.5px; color:var(--gold-deep);
  margin-top:2px;
}
.login-form-side h2{
  text-align:left; font-size:13.5px; text-transform:uppercase; letter-spacing:2px;
  color:var(--gold-deep); font-weight:600; margin:0 0 20px;
}
.input-icon-wrap{ position:relative; }
.input-icon-wrap .input-icon{
  position:absolute; left:16px; top:50%; transform:translateY(calc(-50% - 8px));
  color:var(--gold-deep); pointer-events:none;
}
.input-icon-wrap input{ padding-left:40px; }
.login-form-side input[type=email],
.login-form-side input[type=password]{
  border-radius:30px;
  background:var(--cream-soft);
  border:1px solid var(--hair);
}
.login-form-side input[type=email]:focus,
.login-form-side input[type=password]:focus{
  background:#fff;
}
.btn-pill{ border-radius:30px; }

@media (max-width: 860px){
  .login-photo-side{ display:none; }
  .login-outer{ border-radius:20px; }
  .login-form-side{ width:100%; }
}

/* ================= Stock module ================= */
.stock-status-badge{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 11px; border-radius:20px; font-size:11px; font-weight:600;
  white-space:nowrap;
}
.stock-status-badge.status-normal{ background:rgba(78,124,85,0.14); color:var(--success); }
.stock-status-badge.status-faible{ background:rgba(169,129,63,0.18); color:var(--gold-deep); }
.stock-status-badge.status-rupture{ background:rgba(155,59,59,0.14); color:var(--danger); }

.stock-table-wrap{ overflow-x:auto; border-radius:10px; }
table.stock-table{
  width:100%; border-collapse:collapse; background:#fff;
  border-radius:10px; overflow:hidden;
}
table.stock-table th{
  background:var(--cream); color:var(--gold-deep);
  font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; font-weight:700;
  padding:11px 14px; text-align:left; border-bottom:1px solid var(--hair);
  white-space:nowrap;
}
table.stock-table td{
  padding:12px 14px; font-size:13px; color:var(--ink);
  border-bottom:1px solid rgba(169,129,63,0.15);
}
table.stock-table tr:last-child td{ border-bottom:none; }
table.stock-table tbody tr:nth-child(even) td{ background:var(--cream-soft); }
table.stock-table tbody tr:hover td{ background:rgba(169,129,63,0.10); }
table.stock-table td.num{ text-align:right; font-variant-numeric:tabular-nums; }

.stock-cat-card{
  background:var(--cream-soft); border:1px solid var(--hair); border-radius:14px;
  padding:20px; margin-bottom:18px;
}
.stock-cat-card h3{
  margin:0 0 14px; font-size:15px; color:var(--gold-deep);
  text-transform:uppercase; letter-spacing:1.5px; display:flex; align-items:center; gap:8px;
}

/* ================= Mobile / tablet responsive shell ================= */
.mobile-toggle{
  display:none;
  position:fixed; top:14px; left:14px; z-index:60;
  width:40px; height:40px; border-radius:10px;
  background:var(--ink); color:#F4EFE2; border:none;
  font-size:18px; cursor:pointer;
  box-shadow:0 2px 8px rgba(36,30,21,0.25);
}
.sidebar-overlay{
  display:none;
  position:fixed; inset:0; background:rgba(36,30,21,0.45);
  z-index:45;
}

@media (max-width: 900px){
  .mobile-toggle{ display:flex; align-items:center; justify-content:center; }

  .app-shell{ position:relative; }
  .sidebar{
    position:fixed; top:0; left:0; bottom:0; z-index:50;
    transform:translateX(-100%);
    transition:transform .22s ease;
    width:250px;
    box-shadow:4px 0 20px rgba(36,30,21,0.25);
  }
  .app-shell.sidebar-open .sidebar{ transform:translateX(0); }
  .app-shell.sidebar-open .sidebar-overlay{ display:block; }

  .main{ padding:70px 16px 24px; max-width:100%; }

  .topbar{ flex-wrap:wrap; gap:12px; }
  .topbar h1{ font-size:19px; }

  .stat-grid{ gap:10px; }
  .stat-cards-wrap{ padding:0; }
  .stat-grid .stat-card{ flex:0 0 155px; }

  table.stock-table th, table.stock-table td{ padding:9px 10px; font-size:12px; }

  .form-row, .form-row-3{ grid-template-columns:1fr !important; }
}

@media (max-width: 640px){
  .card{ padding:16px; }
  .stock-cat-card{ padding:14px; }
  table.data-table th, table.data-table td{ padding:8px 8px; font-size:11.5px; }
}

.stock-highlight-grid{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
.stock-highlight-card{
  background:#fff; border:1px solid var(--hair); border-radius:14px;
  padding:18px 22px; display:flex; align-items:center; gap:14px;
  min-width:210px; flex:1;
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
}
.stock-highlight-card .hl-icon{
  width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; flex-shrink:0;
}
.stock-highlight-card .hl-icon.hl-blue{ background:var(--ink); color:#F4EFE2; }
.stock-highlight-card .hl-icon.hl-orange{ background:var(--gold); color:#fff; }
.stock-highlight-card .hl-icon.hl-red{ background:var(--danger); color:#fff; }
.stock-highlight-card .hl-label{
  font-size:11px; text-transform:uppercase; letter-spacing:.8px;
  color:var(--gold-deep); font-weight:700; margin-bottom:4px;
}
.stock-highlight-card .hl-value{
  font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:700; color:var(--ink);
}
@media (max-width:640px){
  .stock-highlight-card{ min-width:100%; }
}

/* ---- Stats dashboard ---- */
.stat-dash-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:16px; margin-bottom:20px; }
.stat-dash-mini{
  background:#fff; border:1px solid var(--hair); border-radius:14px; padding:16px 18px;
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
}
.stat-dash-mini .sd-label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.8px; color:var(--gold-deep); font-weight:700; margin-bottom:6px; }
.stat-dash-mini .sd-value{ font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:700; color:var(--ink); }
.chart-card{
  background:#fff; border:1px solid var(--hair); border-radius:14px; padding:20px;
  box-shadow:0 1px 2px rgba(36,30,21,0.04), 0 4px 14px rgba(36,30,21,0.05);
  margin-bottom:18px;
}
.chart-card h3{ margin:0 0 14px; font-size:14px; color:var(--gold-deep); text-transform:uppercase; letter-spacing:1.2px; }
.stat-dash-2col{ display:grid; grid-template-columns:1.5fr 1fr; gap:16px; }
@media (max-width:900px){ .stat-dash-2col{ grid-template-columns:1fr; } }

.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:10px; }

@media (max-width: 900px){
  .room-picker{ grid-template-columns:repeat(auto-fill, minmax(140px,1fr)) !important; gap:10px !important; }
  .stat-cards-wrap .stat-grid{ display:flex; }
}

@media (max-width: 640px){
  .room-picker{ grid-template-columns:1fr 1fr !important; }
  .modal, [id^="modal-"]{ padding:0 !important; }
  [id^="modal-"] > .card{ max-width:94vw !important; max-height:88vh; overflow-y:auto; }
  .topbar-right{ gap:8px; }
  .topbar .user-chip .role{ display:none; }
}

/* ---- Focus states propres (pas de contour noir moche) ---- */
input[type="date"]:focus-visible,
.btn:focus-visible,
.btn-outline:focus-visible,
a.btn:focus-visible,
a.btn-outline:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
input[type="date"]{
  border:1px solid var(--hair);
  border-radius:8px;
  padding:9px 12px;
  font-family:'Jost', sans-serif;
  font-size:13.5px;
  color:var(--ink);
  background:#fff;
}
