:root { 
  --brand:#003D5C; 
  --accent:#F7941D; 
  --bg:#F5F5F5; 
  --card:#fff; 
  --muted:#6B7280; 
  --border:#D1D5DB; 
  --ok:#10B981; 
  --warn:#F59E0B; 
  --copy:#003D5C; 
  --dark:#1F2937;
  --light:#ffffff;

  /* UI helpers */
  --shadow-sm: 0 2px 10px rgba(0,0,0,.06);
  --shadow-md: 0 4px 16px rgba(0,0,0,.10);
  --shadow-lg: 0 10px 30px rgba(0,0,0,.12);
  --radius:12px;
}

*{box-sizing:border-box}

html,body{height:100%}

body{
  margin:0;
  font-family:'Noto Sans', -apple-system, system-ui, sans-serif;
  background:var(--bg);
  color:var(--dark);
  line-height:1.6;
  font-size:12px;
}

/* ================= HEADER / NAV ================= */

header{
  position:sticky;
  top:0;
  z-index:10;
  background:linear-gradient(135deg, var(--brand) 0%, var(--dark) 100%);
  box-shadow:0 2px 12px rgba(0,0,0,.15);
  padding:8px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:80px;
  flex-wrap:wrap;
  gap:12px;
}

.logo-container{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}

header .logo{
  height:96px;
  width:auto;
  object-fit:contain;
}

nav{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

nav a{
  color:rgba(255,255,255,0.86);
  text-decoration:none;
  margin:0;
  padding:8px 12px;
  font-weight:600;
  font-size:12px;
  letter-spacing:0.2px;
  transition:all 0.18s ease;
  white-space:nowrap;
  border-radius:10px;
}

nav a:hover{
  color:var(--light);
  background:rgba(255,255,255,0.08);
}

nav a.active{
  color:var(--light);
  background:rgba(255,255,255,0.10);
  box-shadow:inset 0 -3px 0 var(--accent);
}

#gh-status{
  display:flex;
  align-items:center;
  gap:6px;
  color:rgba(255,255,255,0.80);
  font-size:10px;
  font-weight:500;
  padding:4px 8px;
  background:rgba(255,255,255,0.10);
  border-radius:8px;
}

#gh-date-text{ font-weight:600; }

/* ================= LAYOUT ================= */

.container{
  padding:28px;
  max-width:1200px;
  margin:0 auto;
}

.card{
  background:var(--card);
  border:1px solid rgba(0,0,0,0.04);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  transition:box-shadow 0.25s ease, transform 0.25s ease;
}

.card:hover{
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}

.muted{
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}

.row{
  display:flex;
  gap:20px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}

.right{margin-left:auto}

.small{
  font-size:12px;
  font-weight:600;
}

/* ================= DROP ZONES ================= */

.drop-zone{
  padding:12px 16px;
  text-align:center;
  color:var(--muted);
  border:2px dashed var(--border);
  border-radius:var(--radius);
  background:linear-gradient(135deg, #fafafa 0%, #ffffff 100%);
  cursor:pointer;
  transition:all .20s ease;
  font-size:12px;
  font-weight:600;
}

.drop-zone:hover{
  border-color:var(--accent);
  background:linear-gradient(135deg, rgba(247,148,29,0.10) 0%, #ffffff 100%);
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(0,0,0,.10);
}

.drop-zone.drag-active{
  border-color:var(--accent);
  background:linear-gradient(135deg, rgba(247,148,29,0.16) 0%, #ffffff 100%);
  transform:scale(1.01);
}

.drop-zone .muted{
  font-size:12px;
  margin-top:8px;
  color:var(--muted);
}

/* ================= OUTPUT / DAY BLOCK ================= */

#output{margin-top:24px}

.day-block{
  position:relative;
  margin:18px 0;
  padding:18px 22px;
  border:1px solid rgba(0,0,0,0.05);
  border-left:5px solid var(--accent);
  border-radius:12px;
  background:var(--card);
  box-shadow:var(--shadow-sm);
  transition:box-shadow 0.25s ease, transform 0.25s ease;
}

.day-block:hover{
  box-shadow:var(--shadow-md);
  transform:translateX(3px);
}

.day-header{
  font-weight:800;
  color:var(--brand);
  margin-bottom:10px;
  font-size:13px;
  letter-spacing:0.2px;
}

.copy-btn{
  position:absolute;
  right:16px;
  top:14px;
  background:var(--accent);
  color:#111;
  border:none;
  border-radius:10px;
  padding:8px 12px;
  cursor:pointer;
  font-weight:900;
  font-size:12px;
  letter-spacing:0.2px;
  transition:all 0.18s ease;
  box-shadow:0 6px 16px rgba(247,148,29,.25);
}

.copy-btn:hover{
  filter:brightness(0.95);
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(247,148,29,.30);
}

/* ================= FORMS ================= */

textarea{
  width:100%;
  min-height:80px;
  border:2px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
  resize:vertical;
  font-family:inherit;
  font-size:12px;
  transition:border-color 0.18s ease, box-shadow 0.18s ease;
  background:#fff;
}

textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(247,148,29,.18);
}

select, input{
  border:2px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
  background:var(--card);
  font-size:12px;
  transition:border-color 0.18s ease, box-shadow 0.18s ease;
}

select:focus, input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(247,148,29,.18);
}

/* ================= TABLE ================= */

table{
  border-collapse:separate;
  border-spacing:0;
  width:100%;
  margin-top:14px;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}

th,td{
  border-bottom:1px solid var(--border);
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}

th{
  background:var(--brand);
  color:var(--light);
  font-weight:800;
  letter-spacing:0.2px;
  border-bottom:0;
}

td{
  background:var(--card);
}

tr:hover td{
  background:#fbfbfb;
}

/* ================= BUTTONS ================= */

.btn-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.btn{
  background:var(--card);
  border:2px solid var(--border);
  border-radius:10px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:900;
  font-size:12px;
  letter-spacing:0.2px;
  transition:transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(0,0,0,.10);
}

.btn.primary{
  background:var(--copy);
  border-color:var(--copy);
  color:var(--light);
}

.btn.primary:hover{
  filter:brightness(1.06);
}

.btn.good{
  background:var(--ok);
  border-color:var(--ok);
  color:var(--light);
}

.btn.warn{
  background:var(--warn);
  border-color:var(--warn);
  color:#111;
}

/* ================= CHECKLIST ================= */

#checklist > div{
  display:flex;
  align-items:center;
  gap:10px;
  margin:8px 0;
  padding:8px 10px;
  border-radius:10px;
  transition:background 0.18s ease;
  font-size:12px;
  border:1px solid rgba(0,0,0,0.04);
  background:#fff;
}

#checklist > div:hover{
  background:#fafafa;
}

/* ================= EMAILS (compact) ================= */

.email-model{
  background:var(--card);
  padding:14px;
  margin-bottom:12px;
  border-radius:12px;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  gap:8px;
  transition:box-shadow 0.25s ease, transform 0.25s ease;
  border:1px solid rgba(0,0,0,0.05);
}

.email-model:hover{
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}

.email-model input,.email-model textarea{
  font-family:inherit;
  font-size:12px;
  padding:10px 12px;
  border:2px solid var(--border);
  border-radius:10px;
  width:100%;
}

.email-actions{
  display:flex;
  gap:10px;
  margin-top:6px;
}

#emails{
  display:flex;
  flex-direction:column;
  gap:10px;
}

#emails .email-model{
  padding:12px;
  margin:0;
  gap:8px;
}

#emails .email-meta{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:8px;
}

#emails .email-model textarea{
  min-height:92px;
  resize:vertical;
}

/* ================= INVENTAIRE (JS: .inv-item draggable + editable) ================= */

#inventorylist{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin-top:12px;
}

/* la carte inventaire */
#inventorylist > .inv-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  background:#fff;
  border:2px solid var(--border);
  border-radius:12px;
  box-shadow:0 1px 0 rgba(0,0,0,0.02);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

#inventorylist > .inv-item:hover{
  border-color:rgba(0,0,0,0.18);
  box-shadow:0 10px 18px rgba(0,0,0,.08);
  transform:translateY(-1px);
}

/* handle */
#inventorylist .inv-handle{
  cursor:grab;
  user-select:none;
  font-weight:900;
  opacity:.6;
  line-height:1;
  padding:2px 4px;
}

#inventorylist .inv-item:active .inv-handle{
  cursor:grabbing;
}

/* checkbox */
#inventorylist .inv-item input[type="checkbox"]{
  width:16px;
  height:16px;
  accent-color: var(--accent);
  cursor:pointer;
}

/* input texte editable */
#inventorylist .inv-text{
  flex:1;
  border:0;
  background:transparent;
  padding:6px 6px;
  font-weight:800;
  color:var(--dark);
  min-width:0; /* évite overflow dans grid */
}

#inventorylist .inv-text::placeholder{
  color:rgba(107,114,128,.8);
  font-weight:700;
}

#inventorylist .inv-text:focus{
  outline:none;
  box-shadow:none;
  border:0;
}

/* delete */
#inventorylist .inv-del{
  border:none;
  background:transparent;
  cursor:pointer;
  font-weight:900;
  opacity:.65;
  padding:2px 6px;
  border-radius:8px;
  transition:opacity .15s ease, transform .15s ease, background .15s ease;
}

#inventorylist .inv-del:hover{
  opacity:1;
  transform:translateY(-1px);
  background:rgba(0,0,0,0.04);
}

/* état checked : carte verte */
#inventorylist > .inv-item:has(input[type="checkbox"]:checked){
  border-color:rgba(16,185,129,.55);
  background:rgba(16,185,129,.08);
}

#inventorylist > .inv-item:has(input[type="checkbox"]:checked)::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  border-radius:12px 0 0 12px;
  background:rgba(16,185,129,.75);
}

/* drag feedback */
#inventorylist .inv-item.dragging{
  opacity:.6;
}

#inventorylist .inv-item.drag-over{
  outline:2px solid rgba(247,148,29,.55);
  outline-offset:2px;
}

/* Responsive : 2 colonnes mobile, 3 colonnes tablette */
@media (max-width: 900px){
  header{
    padding:8px 12px;
    min-height:auto;
  }

  header .logo{
    height:64px;
    flex-shrink:0;
  }

  nav{
    flex:1;
    justify-content:flex-end;
  }

  nav a{
    font-size:10px;
    padding:6px 8px;
  }

  #gh-status{
    font-size:9px;
    padding:3px 8px;
  }

  .container{ padding:18px; }

  #inventorylist{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px){
  #inventorylist{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* ================= TODO HOME ================= */

.todo-list > div{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  margin:6px 0;
  border-radius:10px;
  border:1px solid rgba(0,0,0,0.05);
  background:#fff;
}

.todo-list > div:hover{
  background:#fafafa;
}

.todo-list input[type="checkbox"]{
  width:16px;
  height:16px;
  accent-color: var(--ok);
}

.todo-list input[type="text"]{
  flex:1;
  border:none;
  background:transparent;
  font-size:12px;
  font-weight:500;
}

.todo-system-row{
  align-items:flex-start;
}

.todo-system-alert{
  flex:1;
  font-size:12px;
  line-height:1.45;
  font-weight:400;
  color:var(--dark);
}

.todo-alert-date,
.todo-alert-name{
  font-weight:700;
}

.todo-alert-expected,
.todo-alert-detected,
.todo-alert-label,
.todo-alert-sep{
  font-weight:400;
}

.todo-alert-expected{
  margin-left:2px;
}

.assignment-watch-row{
  display:grid;
  grid-template-columns:minmax(220px,1.2fr) minmax(180px,1fr) auto;
  gap:10px;
  margin:10px 0;
  align-items:center;
}

.assignment-watch-row input{
  width:100%;
}

.todo-list input[type="text"]:focus{
  outline:none;
}

.todo-del{
  border:none;
  background:transparent;
  cursor:pointer;
  font-weight:900;
  opacity:.6;
}

.todo-del:hover{
  opacity:1;
}
/* ================= TARIFS ================= */

#tarifs-table input{
  width: 100%;
  box-sizing: border-box;
}

/* même look que les colonnes ALL / ALL Plus */
.tarifs-readonly{
  background:#f7f7f7 !important;
  color:#111;
}
/* ================= INVENTAIRE — SECTIONS (séparateur) ================= */

/* La section devient une "ligne" (pas une carte) */
.inv-section{
  grid-column: 1 / -1;
  position: relative;
  display:flex;
  align-items:center;
  gap:10px;

  /* pas de carte */
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 10px 0;
  margin: 10px 0 6px 0;
}

/* Ligne horizontale épaisse */
.inv-section::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  transform: translateY(-50%);
  height: 4px;                /* épaisseur */
  background: rgba(0,0,0,0.18);
  border-radius: 999px;
}

/* Le handle (facultatif, mais on le garde pour drag) */
.inv-section .inv-handle{
  position: relative;
  z-index: 1;
  cursor: grab;
  user-select: none;
  font-weight: 900;
  opacity: .55;
  padding: 2px 6px;
  background: var(--bg);
  border-radius: 8px;
}

/* Le titre "posé" sur la ligne */
.inv-section input{
  position: relative;
  z-index: 1;

  flex: 0 1 auto;
  width: 260px;              /* ajuste si tu veux plus long */
  max-width: 60%;

  border: 2px solid rgba(0,0,0,0.12);
  background: var(--bg);
  border-radius: 10px;

  font-weight: 900;
  color: var(--brand);
  padding: 6px 10px;
}

.inv-section input:focus{
  outline:none;
  border-color: rgba(0,0,0,0.25);
}

/* Bouton X à droite, posé sur la ligne */
.inv-section .inv-sec-del{
  position: relative;
  z-index: 1;

  margin-left: auto;
  border: 2px solid rgba(0,0,0,0.12);
  background: var(--bg);
  border-radius: 10px;

  cursor: pointer;
  font-weight: 900;
  opacity: .8;
  padding: 4px 10px;
}

.inv-section .inv-sec-del:hover{
  opacity: 1;
  border-color: rgba(0,0,0,0.25);
}


/* ================= HOME — GRAPH ================= */
.home-drop-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:20px;
}

@media (max-width: 980px){
  .home-drop-grid{ grid-template-columns: 1fr; }
}

.home-chart{
  width:100%;
  height:420px;
  min-height:320px;
}

.home-chart-card{
  overflow:hidden;
}

.home-import-card{
  padding:18px;
}

.home-import-status{
  margin-top:10px;
}

.home-eval-line{
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1;
}

.home-eval-name{
  font-weight:800;
}

.home-eval-meta{
  color:var(--muted);
  font-size:12px;
}

/* Bouton thème dans le header */
.btn-theme{
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.22);
  color: var(--light);
  padding: 8px 10px;
  border-radius: 10px;
  font-weight: 800;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
}

.btn-theme:hover{
  background: rgba(255,255,255,0.18);
}

@media (max-width: 900px){
  .btn-theme{
    padding: 6px 8px;
    font-size: 10px;
  }
}

/* =========================================================
   THEME SYSTEM (Day / Night)
   ========================================================= */

body[data-theme="day"]{
  --bg:#F5F5F5;
  --card:#ffffff;
  --dark:#1F2937;
  --border:#D1D5DB;
}

body[data-theme="night"]{
  --bg:#0f172a;
  --card:#1e293b;
  --dark:#f1f5f9;
  --border:#334155;
}

/* Ajustements visuels Night */

body[data-theme="night"] .card{
  box-shadow:0 4px 20px rgba(0,0,0,.45);
}

body[data-theme="night"] .day-header{
  color:#38bdf8;
}

body[data-theme="night"] .drop-zone{
  background:linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border-color:#334155;
  color:#cbd5e1;
}

body[data-theme="night"] nav a{
  color:rgba(255,255,255,0.75);
}

body[data-theme="night"] nav a.active{
  background:rgba(255,255,255,0.15);
}

/* EMAILS — To en cases + / - à gauche */
.email-to-wrap{
  display:grid;
  grid-template-columns: 54px 1fr;
  gap:10px;
  align-items:start;
}

.email-to-controls{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top: 2px;
}

.email-to-btn{
  padding:10px 0;
  width:54px;
  font-size:16px;
  border-radius:12px;
  font-weight:900;
  line-height:1;
}

.email-to-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.email-to-input-line{
  width:100%;
}
/* =========================================================
   DD — Harmonisé avec le reste du site (scopé)
   ========================================================= */

#view-dd{
  --card2:#f8fafc;
  --line:rgba(0,61,92,.12);
  --text:var(--dark);
  --bad:#ef4444;
  --info:#0ea5e9;
  --shadow:var(--shadow-sm);
  --r:var(--radius);

  color:var(--dark);
  background:transparent;
  padding-top:0;
}

#view-dd .card{
  background:var(--card);
  border:1px solid rgba(0,0,0,0.05);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:14px;
}
#view-dd .card.alt{
  background:linear-gradient(180deg, rgba(0,61,92,.025) 0%, #ffffff 100%);
}

#view-dd .row{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
#view-dd label{font-size:12px; color:var(--muted); font-weight:700;}

#view-dd input[type="file"],
#view-dd select,
#view-dd input[type="text"]{
  width:100%;
  background:#fff;
  border:1px solid var(--border);
  padding:10px 10px;
  border-radius:10px;
  color:var(--dark);
  outline:none;
}
#view-dd input[type="file"]:focus,
#view-dd select:focus,
#view-dd input[type="text"]:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(247,148,29,.14);
}
#view-dd input::placeholder{color:rgba(107,114,128,.82)}
#view-dd select:disabled{opacity:.5}
#view-dd select option{ background-color:#ffffff; color:#1f2937; }
#view-dd select option:checked{ background-color:#eef2f7; color:#1f2937; }

#view-dd .btn{
  background:var(--card);
  border:2px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
  color:var(--dark);
  cursor:pointer;
  user-select:none;
  font-weight:900;
  box-shadow:none;
}
#view-dd .btn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}
#view-dd .btn.secondary{
  background:rgba(0,61,92,.06);
  border-color:rgba(0,61,92,.12);
  color:var(--brand);
}
#view-dd .btn.danger{
  background:#fff5f5;
  border-color:#fecaca;
  color:#b91c1c;
}
#view-dd .btn.good{
  background:#ecfdf5;
  border-color:#a7f3d0;
  color:#047857;
}
#view-dd .btn:disabled{opacity:.45; cursor:not-allowed; filter:none}

#view-dd .small{font-size:12px}
#view-dd .muted{color:var(--muted)}
#view-dd .mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}
#view-dd .hr{height:1px; background:rgba(0,61,92,.10); margin:12px 0}

#view-dd .chipsWrap{
  margin-top:12px;
  border:1px solid rgba(0,61,92,.10);
  background:linear-gradient(180deg, rgba(0,61,92,.025) 0%, rgba(255,255,255,.96) 100%);
  border-radius:14px;
  padding:10px;
  min-height:220px;
  max-height:560px;
  overflow:auto;
}
#view-dd .chipsGrid{display:flex; flex-wrap:wrap; gap:8px;}
#view-dd .chip{
  display:inline-flex;
  gap:10px; align-items:flex-start;
  max-width:520px;
  padding:10px 10px;
  border-radius:14px;
  border:1px solid rgba(0,61,92,.10);
  background:#ffffff;
  box-shadow:0 4px 14px rgba(0,0,0,.05);
}
#view-dd .chip.used{
  opacity:.78;
  border-color:rgba(16,185,129,.30);
  background:rgba(16,185,129,.08);
}
#view-dd .chip .amt{
  min-width:92px;
  font-weight:800;
  font-size:13px;
  text-align:right;
  padding-top:2px;
  color:var(--brand);
}
#view-dd .chip .lib{
  font-size:12px;
  color:var(--dark);
  line-height:1.25;
  word-break:break-word;
}
#view-dd .chip .meta{
  margin-top:4px;
  font-size:11px;
  color:var(--muted);
}
#view-dd .chip .tag{
  margin-top:6px;
  display:inline-flex; align-items:center; gap:7px;
  font-size:11px;
  color:var(--muted);
}
#view-dd .chip .tag .miniDot{
  width:8px; height:8px; border-radius:50%;
  background:var(--warn);
}
#view-dd .chip.used .tag .miniDot{background:var(--ok)}
#view-dd .chip.active{
  outline:2px solid rgba(247,148,29,.35);
  outline-offset:1px;
}

#view-dd .daysPanel{
  margin-top:12px;
  border:1px solid rgba(0,61,92,.10);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(0,61,92,.025) 0%, #ffffff 100%);
  overflow:hidden;
  flex:1 1 auto;
  min-height:420px;
  display:flex;
  flex-direction:column;
}
#view-dd .daysHead{
  display:flex; justify-content:space-between; align-items:center;
  padding:10px 10px;
  border-bottom:1px solid rgba(0,61,92,.08);
}
#view-dd .daysTitle{font-weight:700; color:var(--brand);}
#view-dd .daysHint{font-size:12px; color:var(--muted)}
#view-dd .daysList{
  flex:1 1 auto;
  overflow:auto;
  padding:8px;
  display:flex; flex-direction:column; gap:8px;
  min-height:280px;
}
#view-dd .dayRow{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  border:1px solid rgba(0,61,92,.08);
  border-radius:12px;
  padding:10px;
  background:#ffffff;
  cursor:pointer;
  user-select:none;
}
#view-dd .dayRow:hover{
  box-shadow:0 8px 18px rgba(0,0,0,.06);
}
#view-dd .dayRow.active{
  outline:2px solid rgba(247,148,29,.35);
  outline-offset:1px;
}
#view-dd .dayLeft{display:flex; flex-direction:column; gap:4px}
#view-dd .dayDate{font-weight:700; color:var(--dark);}
#view-dd .dayMeta{font-size:11px; color:var(--muted)}
#view-dd .dayRight{display:flex; align-items:center; gap:10px}
#view-dd .status{
  min-width:28px;
  height:28px;
  display:flex; align-items:center; justify-content:center;
  border-radius:10px;
  border:1px solid rgba(0,61,92,.10);
  font-weight:900;
  background:#fff;
}
#view-dd .status.ok{background:rgba(16,185,129,.10); border-color:rgba(16,185,129,.22); color:var(--ok)}
#view-dd .status.warn{background:rgba(245,158,11,.10); border-color:rgba(245,158,11,.22); color:var(--warn)}
#view-dd .status.idle{background:rgba(148,163,184,.08); border-color:rgba(148,163,184,.18); color:#64748b}
#view-dd .status.bad{background:rgba(239,68,68,.10); border-color:rgba(239,68,68,.22); color:var(--bad)}
#view-dd .miniBar{
  width:120px; height:10px; border-radius:999px;
  border:1px solid rgba(0,61,92,.10);
  background:rgba(0,61,92,.06);
  overflow:hidden;
}
#view-dd .miniFill{
  height:100%;
  width:0%;
  background:linear-gradient(90deg, rgba(247,148,29,.45), rgba(0,61,92,.35));
}
/* ================= HOME — VACANCES SCOLAIRES ================= */
.home-calendar-card{
  padding:14px;
  overflow:visible;
}

.vac-zone-switch{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.vac-zone-btn{
  height:30px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--text);
  cursor:pointer;
  font-weight:800;
  font-size:12px;
}

.vac-zone-btn.is-active{
  color:#fff;
}

.vac-zone-btn.vac-zone-a.is-active{
  background:#2563eb;
  border-color:#2563eb;
}

.vac-zone-btn.vac-zone-b.is-active{
  background:#d97706;
  border-color:#d97706;
}

.vac-zone-btn.vac-zone-c.is-active{
  background:#7c3aed;
  border-color:#7c3aed;
}

#vac-calendar{
  user-select:none;
  padding:0;
}

 .vac-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}

.vac-cal-month{
  flex:1;
  text-align:center;
  font-weight:800;
  color:var(--text);
}

 .vac-cal-nav{
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid var(--border);
  background:var(--card);
  cursor:pointer;
  font-weight:900;
}

.vac-cal-nav:hover{
  box-shadow:var(--shadow-sm);
}

 .vac-cal-grid{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:5px;
  width:100%;
  box-sizing:border-box;
}

 .vac-cal-dow,
.vac-cal-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  border-radius:9px;
  font-weight:700;
  font-size:12px;
  box-sizing:border-box;
}

 .vac-cal-dow{
  color:var(--muted);
  font-size:11px;
  min-height:18px;
}

.vac-cal-cell{
  border:1px solid rgba(0,0,0,0.05);
  background:rgba(0,0,0,0.02);
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}

.vac-cal-cell:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(15,23,42,0.08);
}

.vac-cal-cell:focus,
.vac-cal-cell:focus-visible{
  outline:none;
}

.vac-cal-cell.is-selected{
  opacity:1;
  border-color:var(--accent, #7c3aed);
  box-shadow:0 0 0 2px var(--accent, #7c3aed) inset, 0 0 0 1px rgba(124,58,237,0.18);
  font-weight:900;
}

.vac-cal-cell.is-selected.is-vac-active.vac-zone-c{
  background:#e8d8ff;
  border-color:#7c3aed;
  color:#5b21b6;
}

.vac-cal-cell.is-selected.is-vac-active.vac-zone-a,
.vac-cal-cell.is-selected.is-vac-active.vac-zone-b{
  box-shadow:0 0 0 2px #fff inset, 0 0 0 2px var(--accent, #7c3aed);
}

.vac-cal-cell.is-out{
  opacity:.38;
}

.vac-cal-cell.is-out.is-selected{
  opacity:1;
}

.vac-cal-cell.is-today{
  box-shadow:0 0 0 2px #67d5ea inset;
  font-weight:900;
}

.vac-cal-cell.is-today.is-selected{
  box-shadow:0 0 0 2px #67d5ea inset, 0 0 0 4px var(--accent, #7c3aed) inset;
}

.vac-cal-cell.is-vac-active{
  color:#fff;
}

.vac-cal-cell.is-vac-active.vac-zone-a{
  background:#2563eb;
  border-color:#2563eb;
}

.vac-cal-cell.is-vac-active.vac-zone-b{
  background:#d97706;
  border-color:#d97706;
}

.vac-cal-cell.is-vac-active.vac-zone-c{
  background:#f3ecff;
  border-color:#dcd2ff;
  color:#7c3aed;
}

.vac-cal-cell.is-vac-active.is-out{
  opacity:.72;
}

.vac-cal-legend-line{
  display:block;
  margin-bottom:4px;
  line-height:1.45;
}

.vac-cal-legend-dot{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:999px;
  margin-right:6px;
  vertical-align:middle;
}

.vac-cal-legend-dot.vac-zone-a{
  background:#2563eb;
}

.vac-cal-legend-dot.vac-zone-b{
  background:#d97706;
}

.vac-cal-legend-dot.vac-zone-c{
  background:#f3ecff;
  border-color:#dcd2ff;
  color:#7c3aed;
}

body[data-theme="night"] .vac-cal-nav{
  background:#0f172a;
  border-color:#334155;
  color:#e2e8f0;
}

body[data-theme="night"] .vac-cal-cell{
  border-color:rgba(255,255,255,0.06);
  background:rgba(255,255,255,0.03);
}

body[data-theme="night"] .vac-zone-btn{
  background:#0f172a;
  border-color:#334155;
  color:#e2e8f0;
}

body[data-theme="night"] .vac-zone-btn.is-active{
  color:#fff;
}

.vac-zone-btn.vac-zone-a.is-active{
  background:#2563eb;
  border-color:#2563eb;
}

.vac-zone-btn.vac-zone-b.is-active{
  background:#d97706;
  border-color:#d97706;
}

.vac-zone-btn.vac-zone-c.is-active{
  background:#7c3aed;
  border-color:#7c3aed;
}


/* ===== Monthly totals highlight ===== */
.stat.month{
  border:1px solid rgba(80,160,255,0.35);
  background:linear-gradient(180deg, rgba(20,40,70,0.55), rgba(10,20,35,0.55));
}

.stat.month .k{
  font-weight:600;
  color:#8fb7ff;
}

.stat.month .v{
  font-weight:700;
  font-size:20px;
}

@media (max-width: 760px){
  .assignment-watch-row{
    grid-template-columns:1fr;
  }
}

/* ===== HOME ALERT / ASSIGNMENT WATCH TWEAKS ===== */
.home-alert-card{
  width:100%;
  padding:16px;
}

.home-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.home-card-head h3{
  margin:0;
}

.home-card-toggle{
  width:34px;
  height:34px;
  border:2px solid var(--border);
  background:var(--card);
  border-radius:10px;
  cursor:pointer;
  font-weight:900;
  font-size:20px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.home-card-toggle:hover{
  box-shadow:var(--shadow-sm);
  transform:translateY(-1px);
}

.home-alert-card.is-collapsed .home-card-body{
  display:none;
}

.home-alert-card.is-collapsed .home-card-head{
  margin-bottom:0;
}

.home-top-row{
  align-items:stretch;
}

.assignment-rule-row{
  display:grid;
  grid-template-columns:minmax(240px,1.2fr) minmax(200px,.9fr) auto;
  gap:12px;
  align-items:center;
  margin:10px 0;
}

.assignment-rule-cell{
  min-width:0;
}

.assignment-rule-cell input{
  width:100%;
}

.assignment-rule-empty{
  color:var(--muted);
  font-size:12px;
}

.todo-system-row{
  align-items:flex-start !important;
}

.todo-system-alert{
  flex:1;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.45;
  font-size:12px;
  font-weight:400;
}

.todo-alert-date,
.todo-alert-name{
  font-weight:700;
}

.todo-alert-label,
.todo-alert-detected,
.todo-alert-sep{
  font-weight:400;
}

@media (max-width: 900px){
  .assignment-rule-row{
    grid-template-columns:1fr;
  }
}
/* ================= HOME CHECKLIST SPLIT ================= */

.home-checklist-card{
  padding:14px;
}

.home-checklist-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  flex-wrap:wrap;
}

.home-check-date-nav{
  display:flex;
  align-items:center;
  gap:8px;
}

.home-check-date-label{
  min-width:130px;
  text-align:center;
  color:var(--dark);
  font-weight:800;
}

.home-check-nav-btn{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--dark);
  cursor:pointer;
  font-weight:900;
  line-height:1;
}

.home-check-nav-btn:hover{
  box-shadow:var(--shadow-sm);
}

.home-checklist-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}

.home-check-col{
  min-width:0;
  background:linear-gradient(135deg, rgba(0,61,92,.03) 0%, rgba(255,255,255,.9) 100%);
  border:1px solid rgba(0,0,0,.05);
  border-radius:12px;
  padding:12px;
}

.home-check-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.home-check-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.home-check-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,0.05);
  background:#fff;
}

.home-check-row:hover{
  background:#fafafa;
}

.home-check-row input[type="checkbox"]{
  width:16px;
  height:16px;
  accent-color: var(--ok);
  flex:0 0 auto;
}

.home-check-row input[type="text"]{
  flex:1;
  min-width:0;
  border:none;
  background:transparent;
  font-size:12px;
  font-weight:500;
}

.home-check-row input[type="text"]:focus{
  outline:none;
  box-shadow:none;
}

.home-check-actions{
  margin-top:10px;
}

.home-check-actions .btn{
  min-width:40px;
  width:40px;
  height:36px;
  padding:0;
  font-size:22px;
  line-height:1;
}

.home-check-empty{
  padding:10px 2px;
}

#todo-legacy-wrap{
  display:none !important;
}

@media (max-width: 900px){
  .home-checklist-split{
    grid-template-columns:1fr;
  }

  .home-checklist-topbar{
    align-items:flex-start;
  }
}



/* ================= RULES — HOME CHECKLIST MODEL ================= */
.rules-checklist-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.rules-checklist-col{
  min-width:0;
  border:1px solid rgba(0,0,0,0.05);
  border-radius:12px;
  padding:12px;
  background:linear-gradient(135deg, rgba(0,61,92,.03) 0%, rgba(255,255,255,.9) 100%);
}

.rules-checklist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.rules-checklist-head .btn{
  min-width:42px;
  padding:8px 12px;
}

.rules-checklist-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.rules-checklist-row{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 28px;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,0.06);
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.03);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.rules-checklist-row:hover{
  border-color:rgba(0,61,92,.14);
  box-shadow:0 8px 20px rgba(0,0,0,.06);
}

.rules-checklist-row.is-dragging{
  opacity:.62;
  transform:scale(.985);
  box-shadow:0 10px 24px rgba(0,0,0,.10);
}

.rules-checklist-row.is-drag-over{
  border-color:rgba(247,148,29,.60);
  background:rgba(247,148,29,.08);
  box-shadow:0 0 0 2px rgba(247,148,29,.14);
}

.rules-checklist-handle{
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:10px;
  background:linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  color:#64748b;
  cursor:grab;
  font-size:13px;
  font-weight:900;
  line-height:1;
  letter-spacing:-1px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
  transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.rules-checklist-handle:hover{
  color:var(--brand);
  border-color:rgba(0,61,92,.18);
  background:linear-gradient(180deg, #ffffff 0%, #e8eef5 100%);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.rules-checklist-handle:active,
.rules-checklist-row.is-dragging .rules-checklist-handle{
  cursor:grabbing;
  transform:scale(.96);
  background:linear-gradient(180deg, #eef2f7 0%, #e2e8f0 100%);
}

.rules-checklist-row input[type="text"]{
  flex:1;
  min-width:0;
  border:none;
  background:transparent;
  padding:0;
  font-size:13px;
  font-weight:600;
  color:var(--dark);
  box-shadow:none;
}

.rules-checklist-row input[type="text"]:focus{
  border:none;
  outline:none;
  box-shadow:none;
}

.rules-checklist-row .todo-del{
  flex:0 0 auto;
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  opacity:.42;
  transition:opacity .18s ease, background .18s ease, transform .18s ease;
}

.rules-checklist-row .todo-del:hover{
  opacity:1;
  background:rgba(0,0,0,0.05);
  transform:translateY(-1px);
}

.rules-checklist-empty{
  padding:6px 2px;
}

body[data-theme="night"] .rules-checklist-row{
  background:rgba(15,23,42,.72);
  border-color:rgba(255,255,255,.07);
  box-shadow:none;
}

body[data-theme="night"] .rules-checklist-row:hover{
  border-color:rgba(103,213,234,.18);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}

body[data-theme="night"] .rules-checklist-row.is-drag-over{
  border-color:rgba(247,148,29,.70);
  background:rgba(247,148,29,.12);
  box-shadow:0 0 0 2px rgba(247,148,29,.18);
}

body[data-theme="night"] .rules-checklist-handle{
  background:linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
  border-color:rgba(255,255,255,.08);
  color:#94a3b8;
  box-shadow:none;
}

body[data-theme="night"] .rules-checklist-handle:hover{
  color:#e2e8f0;
  border-color:rgba(103,213,234,.18);
  background:linear-gradient(180deg, #263244 0%, #162033 100%);
}

/* ================= HOME CHECKLIST V3 ================= */
.home-check-section{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.home-check-subtitle{
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:2px;
}

.home-check-row.fixed-row{
  background:rgba(0,0,0,0.02);
}

.home-check-row.fixed-row .home-check-fixed-text{
  flex:1;
  min-width:0;
  font-size:12px;
  font-weight:600;
}

.home-check-row.extra-row input[type="text"]{
  flex:1;
  min-width:0;
}

@media (max-width: 900px){
  .rules-checklist-grid{
    grid-template-columns:1fr;
  }
}


/* ================= HOME SOFA UPGRADE ================= */
.home-sofa-line{
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1;
  min-width:0;
}

.home-sofa-name{
  font-weight:800;
  overflow-wrap:anywhere;
}

.home-sofa-meta{
  color:var(--muted);
  font-size:12px;
  overflow-wrap:anywhere;
}


/* Individuel dropdown menu */
.nav-item.dropdown { position: relative; }
.dropdown-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background:var(--card-bg, #fff);
  border-radius:8px;
  padding:6px 0;
  box-shadow:0 6px 20px rgba(0,0,0,0.15);
  z-index:50;
}
.nav-item.dropdown:hover .dropdown-menu{ display:block; }
.dropdown-menu a{
  display:block;
  padding:8px 14px;
  text-decoration:none;
  color:inherit;
  cursor:pointer;
}
.dropdown-menu a:hover{ background:rgba(0,0,0,0.06); }



/* ================= NAV DROPDOWN — INDIVIDUEL ================= */

.nav-dropdown{
  position:relative;
  display:flex;
  align-items:center;
}

.nav-dropdown-trigger{
  color:rgba(255,255,255,0.86);
  text-decoration:none;
  margin:0;
  padding:8px 12px;
  font-weight:600;
  font-size:12px;
  letter-spacing:0.2px;
  transition:all 0.18s ease;
  white-space:nowrap;
  border-radius:10px;
  cursor:default;
}

.nav-dropdown:hover .nav-dropdown-trigger{
  color:var(--light);
  background:rgba(255,255,255,0.08);
}

.nav-dropdown::after{
  content:"";
  position:absolute;
  left:0;
  top:100%;
  width:100%;
  height:10px;
  background:transparent;
}

.nav-dropdown-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  min-width:180px;
  padding:6px;
  border-radius:12px;
  background:#ffffff;
  border:1px solid rgba(0,0,0,0.10);
  box-shadow:0 12px 28px rgba(0,0,0,0.18);
  z-index:2000;
}

.nav-dropdown:hover .nav-dropdown-menu{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.nav-dropdown-menu a{
  display:block;
  color:#1f2937;
  background:transparent;
  padding:8px 10px;
  border-radius:8px;
  text-decoration:none;
  font-weight:700;
  font-size:12px;
  white-space:nowrap;
}

.nav-dropdown-menu a:hover{
  background:rgba(0,0,0,0.06);
  color:#1f2937;
}

.nav-dropdown-menu a.active{
  background:rgba(0,61,92,0.08);
  color:var(--brand);
  box-shadow:none;
}

body[data-theme="night"] .nav-dropdown-menu{
  background:#0f172a;
  border-color:#334155;
  box-shadow:0 12px 28px rgba(0,0,0,0.35);
}

body[data-theme="night"] .nav-dropdown-menu a{
  color:#e2e8f0;
}

body[data-theme="night"] .nav-dropdown-menu a:hover{
  background:rgba(255,255,255,0.08);
  color:#fff;
}

body[data-theme="night"] .nav-dropdown-menu a.active{
  background:rgba(255,255,255,0.12);
  color:#fff;
}

@media (max-width: 900px){
  .nav-dropdown-trigger{
    font-size:10px;
    padding:6px 8px;
  }

  .nav-dropdown-menu{
    min-width:150px;
  }
}




/* ================= EMAIL CENTER REFACTOR ================= */
#view-mails > h2{
  margin-bottom:16px;
}

#view-mails .btn-row{
  margin-top:16px;
}

.email-center-shell{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.email-center-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.email-center-search-wrap{
  flex:1;
}

.email-center-search{
  width:100%;
  min-height:44px;
  padding:12px 14px;
}

.email-center-body{
  display:grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap:0;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:16px;
  overflow:hidden;
  background:var(--card);
  box-shadow:var(--shadow-sm);
}

.email-center-list{
  border-right:1px solid rgba(0,0,0,0.08);
  background:rgba(0,0,0,0.01);
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:620px;
}

.email-center-item{
  width:100%;
  text-align:left;
  border:none;
  background:transparent;
  border-radius:12px;
  padding:14px 14px;
  cursor:pointer;
  transition:background .16s ease, box-shadow .16s ease;
}

.email-center-item:hover{
  background:rgba(0,0,0,0.04);
}

.email-center-item.is-active{
  background:#eef2f7;
  box-shadow:inset 3px 0 0 var(--copy);
}

.email-center-item-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.email-center-item-title{
  font-size:16px;
  font-weight:800;
  color:var(--dark);
  line-height:1.25;
}

.email-center-item-arrow{
  font-size:24px;
  line-height:1;
  color:var(--muted);
}

.email-center-item-meta{
  margin-top:6px;
  color:var(--muted);
  font-size:13px;
  font-weight:600;
}

.email-center-editor{
  padding:22px 24px 24px;
  display:flex;
  flex-direction:column;
  gap:18px;
  min-width:0;
}

.email-center-editor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.email-center-main-title{
  font-size:14px;
  font-weight:800;
  padding:0;
  border:none;
  background:transparent;
  box-shadow:none !important;
}

.email-center-main-title:focus{
  border:none;
  box-shadow:none !important;
}

.email-center-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.email-center-field label{
  font-size:14px;
  font-weight:800;
  color:var(--dark);
}

.email-center-recipient-box{
  min-height:92px;
  border:2px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:8px;
  background:var(--card);
}

.email-chip{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 12px;
  border-radius:10px;
  background:#eef2f7;
  border:1px solid #d9e1ea;
  font-size:12px;
  font-weight:700;
  color:#334155;
}

.email-center-hidden-input{
  width:100%;
}

.email-center-field textarea{
  min-height:210px !important;
}

.email-center-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-top:6px;
}

.email-center-footer-left,
.email-center-footer-right{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.email-center-empty{
  padding:18px;
}

@media (max-width: 980px){
  .email-center-body{
    grid-template-columns:1fr;
  }

  .email-center-list{
    min-height:auto;
    border-right:none;
    border-bottom:1px solid rgba(0,0,0,0.08);
  }
}

body[data-theme="night"] .email-center-body{
  border-color:rgba(255,255,255,0.08);
}

body[data-theme="night"] .email-center-list{
  border-right-color:rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.02);
}

body[data-theme="night"] .email-center-item.is-active{
  background:rgba(255,255,255,0.08);
}

body[data-theme="night"] .email-chip{
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.10);
  color:#e2e8f0;
}


/* ===== EMAIL CENTER POLISH PATCH ===== */

/* colonne gauche un peu plus étroite */
.email-center-body{
  grid-template-columns: 320px minmax(0, 1fr) !important;
}

/* titres plus calmes */
.email-center-main-title{
  font-weight:600 !important;
  font-size:17px !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.email-center-item-title{
  font-weight:600 !important;
  font-size:15px !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

/* liste gauche plus respirante */
.email-center-list{
  padding:10px !important;
  gap:10px !important;
}

.email-center-item{
  padding:12px 14px !important;
}

.email-center-item:hover{
  background:rgba(0,61,92,0.05) !important;
}

.email-center-item.is-active{
  background:rgba(0,61,92,0.08) !important;
  box-shadow:inset 3px 0 0 var(--copy) !important;
}

.email-center-item-meta{
  font-size:12px !important;
  font-weight:500 !important;
}

/* chips style plus propre type Slack */
.email-center-recipient-box{
  min-height:56px !important;
  padding:8px 10px !important;
  gap:8px !important;
}

.email-chip{
  min-height:30px !important;
  padding:5px 10px !important;
  border-radius:999px !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1.1 !important;
}

/* champ sous les chips un peu moins agressif */
.email-center-hidden-input{
  margin-top:2px;
}

/* footer plus léger */
.email-center-footer{
  padding-top:2px !important;
}

/* retire reset */
#reset-mails{
  display:none !important;
}

@media (max-width: 980px){
  .email-center-body{
    grid-template-columns:1fr !important;
  }
}


/* ===== EMAIL CHIP COPY ===== */
.email-chip-copy{
  cursor:pointer;
  border:none;
}

.email-chip-copy:hover{
  filter:brightness(0.98);
  transform:translateY(-1px);
}

.email-chip-copy:active{
  transform:translateY(0);
}


/* ===== INVENTAIRE FINAL LISIBLE AVEC ENCADREMENTS ===== */
#view-inventory #inventory-compact-stats,
#inventory-compact-stats{
  display:none !important;
}

#view-inventory #inventorylist.inventory-sections{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  margin-top:0 !important;
}

#view-inventory .inv-section-card{
  background:var(--card) !important;
  border:1px solid rgba(0,0,0,0.06) !important;
  border-radius:18px !important;
  box-shadow:0 2px 12px rgba(0,0,0,.05) !important;
  padding:10px 12px !important;
}

#view-inventory .inv-section-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  margin:0 0 8px !important;
  padding:0 2px !important;
}

#view-inventory .inv-section-title{
  flex:1 !important;
  min-width:0 !important;
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  font-size:19px !important;
  font-weight:700 !important;
  color:var(--dark) !important;
  box-shadow:none !important;
}

#view-inventory .inv-section-title:focus{
  border:none !important;
  box-shadow:none !important;
}

#view-inventory .inv-section-actions{
  display:flex !important;
  gap:6px !important;
}

#view-inventory .inv-section-actions .btn{
  min-width:34px !important;
  width:34px !important;
  height:34px !important;
  padding:0 !important;
  border-radius:10px !important;
  font-size:18px !important;
  line-height:1 !important;
  box-shadow:none !important;
}

#view-inventory .inv-item-list{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:0 18px !important;
}

#view-inventory .inv-item-list-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  min-height:38px !important;
  padding:8px 6px !important;
  background:transparent !important;
  border-top:1px solid rgba(0,0,0,0.045) !important;
  border-bottom:none !important;
}

#view-inventory .inv-item-list-row:first-child{
  border-top:none !important;
}

#view-inventory .inv-item-list-row.is-ok{
  opacity:.62 !important;
}

#view-inventory .inv-item-list-row:hover{
  background:rgba(0,0,0,0.015) !important;
  border-radius:10px !important;
}

#view-inventory .inv-item-list-row input[type="checkbox"]{
  width:16px !important;
  height:16px !important;
  margin:0 !important;
  padding:0 !important;
  accent-color:var(--ok) !important;
  flex:0 0 auto !important;
}

#view-inventory .inv-drag-handle{
  width:12px !important;
  flex:0 0 12px !important;
  color:#94a3b8 !important;
  font-size:11px !important;
  line-height:1 !important;
  cursor:grab !important;
  user-select:none !important;
  opacity:.28 !important;
  text-align:center !important;
}

#view-inventory .inv-item-list-row:hover .inv-drag-handle{
  opacity:.6 !important;
}

#view-inventory .inv-item-text{
  flex:1 !important;
  min-width:0 !important;
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  font-size:15px !important;
  font-weight:500 !important;
  color:var(--dark) !important;
  box-shadow:none !important;
}

#view-inventory .inv-item-text:focus{
  border:none !important;
  box-shadow:none !important;
}

#view-inventory .inv-item-del{
  border:none !important;
  background:transparent !important;
  color:#94a3b8 !important;
  width:14px !important;
  height:14px !important;
  padding:0 !important;
  font-size:11px !important;
  border-radius:999px !important;
  opacity:.18 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:none !important;
}

#view-inventory .inv-item-list-row:hover .inv-item-del{
  opacity:.55 !important;
}

#view-inventory .inv-item-del:hover{
  opacity:1 !important;
  background:rgba(0,0,0,0.04) !important;
  color:#64748b !important;
}

#view-inventory .inv-item-list.drag-over{
  outline:1px dashed rgba(15,118,110,0.30) !important;
  outline-offset:4px !important;
  border-radius:8px !important;
}

#view-inventory .inv-item-list-row.drag-over{
  background:rgba(15,118,110,0.05) !important;
}

#view-inventory .inv-item-list-row.dragging{
  opacity:.35 !important;
}

#view-inventory .inv-section-empty{
  color:var(--muted) !important;
  font-size:12px !important;
  padding:6px 2px !important;
}

@media (max-width: 1100px){
  #view-inventory .inv-item-list{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px){
  #view-inventory .inv-item-list{
    grid-template-columns:1fr !important;
  }

  #view-inventory .inv-section-title{
    font-size:17px !important;
  }
}


/* ===== HOTEL IA HEADER FIX ===== */

/* hide useless night button */
#theme-toggle,
.btn-theme{
  display:none !important;
}

/* container on right side of header */
.header-right{
  display:flex;
  align-items:center;
  gap:10px;
}

/* hotel IA button style */
.btn-hotel-ia{
  background:linear-gradient(135deg,#0ea5e9,#6366f1);
  color:#ffffff;
  text-decoration:none;
  padding:10px 16px;
  border-radius:12px;
  font-weight:700;
  font-size:13px;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
  transition:all .18s ease;
}

.btn-hotel-ia:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(0,0,0,.35);
}


/* ===== Import date badge (same visual spirit as old GH status) ===== */
.import-date{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:4px 10px;
  font-size:12px;
  font-weight:600;
  color:#5f6b7a;
  background:#f3f5f8;
  border:1px solid #e2e6ec;
  border-radius:999px;
  width:fit-content;
}

.import-date::before{
  content:"☁";
  font-size:12px;
  opacity:.7;
}


/* ================= INDIV DAY CONTROL INLINE ================= */
.day-header-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.day-header{
  margin-bottom:0;
}
.day-control-btn{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border:none;
  border-radius:10px;
  background:var(--accent);
  color:#111;
  cursor:pointer;
  font-weight:900;
  font-size:20px;
  line-height:1;
  box-shadow:0 6px 16px rgba(247,148,29,.25);
}
.day-control-btn:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}
.indiv-day-panel{
  display:none;
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(0,0,0,.06);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(15,23,42,.03), rgba(15,23,42,.06));
}
.indiv-day-panel.is-open{
  display:block;
}
.indiv-day-panel-body{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.indiv-control-section{
  border:1px solid rgba(0,0,0,.06);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.indiv-control-section-title{
  padding:10px 12px;
  font-weight:800;
  color:var(--brand);
  border-bottom:1px solid rgba(0,0,0,.05);
  background:rgba(0,61,92,.04);
}
.indiv-control-entry{
  padding:10px 12px;
  border-top:1px solid rgba(0,0,0,.05);
}
.indiv-control-entry:first-of-type{
  border-top:none;
}
.indiv-control-name{
  font-weight:800;
  margin-bottom:4px;
}
.indiv-control-proof{
  color:var(--muted);
  line-height:1.5;
  word-break:break-word;
}
.indiv-control-empty{
  padding:12px;
  color:var(--muted);
}


/* ===== HOTEL IA HEADER FIX ===== */

/* hide useless night button */
#theme-toggle,
.btn-theme{
  display:none !important;
}

/* container on right side of header */
.header-right{
  display:flex;
  align-items:center;
  gap:10px;
}

/* hotel IA button style */
.btn-hotel-ia{
  background:linear-gradient(135deg,#0ea5e9,#6366f1);
  color:#ffffff;
  text-decoration:none;
  padding:10px 16px;
  border-radius:12px;
  font-weight:700;
  font-size:13px;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
  transition:all .18s ease;
}

.btn-hotel-ia:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(0,0,0,.35);
}


/* ===== Import date badge (same visual spirit as old GH status) ===== */
.import-date{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:4px 10px;
  font-size:12px;
  font-weight:600;
  color:#5f6b7a;
  background:#f3f5f8;
  border:1px solid #e2e6ec;
  border-radius:999px;
  width:fit-content;
}

.import-date::before{
  content:"☁";
  font-size:12px;
  opacity:.7;
}


/* ================= INDIV DAY CONTROL MODAL ================= */
.day-header-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.day-header{
  margin-bottom:0;
}
.day-control-btn{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border:none;
  border-radius:10px;
  background:var(--accent);
  color:#111;
  cursor:pointer;
  font-weight:900;
  font-size:20px;
  line-height:1;
  box-shadow:0 6px 16px rgba(247,148,29,.25);
}
.day-control-btn:hover{
  filter:brightness(.96);
  transform:translateY(-1px);
}
.indiv-control-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.58);
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.indiv-control-panel{
  width:min(860px, 100%);
  max-height:80vh;
  overflow:auto;
  background:#0f172a;
  color:#e2e8f0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  box-shadow:0 18px 44px rgba(0,0,0,.45);
  padding:18px;
}
.indiv-control-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.indiv-control-title{
  font-size:18px;
  font-weight:800;
}
.indiv-control-close{
  width:34px;
  height:34px;
  border:none;
  border-radius:10px;
  background:rgba(255,255,255,.10);
  color:#fff;
  cursor:pointer;
  font-weight:900;
}
.indiv-control-close:hover{ background:rgba(255,255,255,.16); }
.indiv-control-body{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.indiv-control-section{
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,.03);
}
.indiv-control-section-title{
  font-size:14px;
  font-weight:800;
  margin-bottom:10px;
}
.indiv-control-empty{
  color:#94a3b8;
  font-size:12px;
}
.indiv-control-entry{
  padding:10px 0;
  border-top:1px solid rgba(255,255,255,.06);
}
.indiv-control-entry:first-child{ border-top:none; padding-top:0; }
.indiv-control-name{
  font-weight:800;
  margin-bottom:4px;
}
.indiv-control-proof{
  color:#cbd5e1;
  font-size:12px;
  line-height:1.5;
  white-space:pre-wrap;
  word-break:break-word;
}



/* ===== INDIV CONTROL FINAL READABILITY OVERRIDE ===== */
.indiv-day-panel{
  background:#0b1220 !important;
  border:1px solid #1f2937 !important;
  border-radius:14px !important;
  padding:14px !important;
}

.indiv-day-panel-body{
  gap:14px !important;
}

.indiv-control-section{
  border:1px solid #253247 !important;
  border-radius:12px !important;
  background:#111827 !important;
  overflow:hidden !important;
  padding:0 !important;
}

.indiv-control-section-title{
  padding:10px 12px !important;
  margin:0 !important;
  font-size:13px !important;
  font-weight:800 !important;
  color:#93c5fd !important;
  background:#0f172a !important;
  border-bottom:1px solid #253247 !important;
}

.indiv-control-entry{
  padding:12px !important;
  border-top:1px solid #1f2937 !important;
  background:#111827 !important;
}

.indiv-control-entry:first-of-type{
  border-top:none !important;
}

.indiv-control-name{
  font-weight:800 !important;
  color:#ffffff !important;
  margin-bottom:4px !important;
  letter-spacing:.2px !important;
}

.indiv-control-proof{
  color:#cbd5e1 !important;
  font-size:12px !important;
  line-height:1.45 !important;
  white-space:normal !important;
  word-break:break-word !important;
}

.indiv-control-empty{
  padding:12px !important;
  color:#94a3b8 !important;
  background:#111827 !important;
}


/* ===== FIX CONTRASTE LIT BEBE ===== */
.assignment-rule-row{
  background:#ffffff !important;
  border:1px solid #1f2937 !important;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}

.assignment-rule-row input,
.assignment-rule-row select,
.assignment-rule-row textarea{
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid #374151 !important;
}

.assignment-rule-row label{
  color:#111827 !important;
  font-weight:600;
}

/* hover clarity */
.assignment-rule-row:hover{
  background:#f9fafb !important;
}


/* ================= INDIV CONTROL KEYWORD HIGHLIGHT ================= */
.indiv-control-proof .kw-baby{
  color:#ffd54a;
  font-weight:800;
}

.indiv-control-proof .kw-comm{
  color:#4fc3f7;
  font-weight:800;
}


/* ================= DASHBOARD SIDEBAR PROTOTYPE ================= */
body.layout-prototype{
  background:#edf2f7;
}

.app-shell{
  min-height:100vh;
  display:flex;
}

.app-sidebar{
  width:272px;
  flex:0 0 272px;
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255,255,255,.05) 0%, rgba(255,255,255,0) 36%),
    linear-gradient(180deg,#08395c 0%, #042d4b 8%, #022945 16%, #012640 48%, #01233c 100%);
  color:#fff;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0;
  position:fixed;
  top:0;
  left:0;
  height:100vh;
  max-height:100vh;
  overflow:hidden;
  overflow-x:hidden;
  box-shadow:16px 0 34px rgba(0,0,0,.16);
  border-right:1px solid rgba(255,255,255,.05);
  z-index:50;
}

.app-main{
  flex:1;
  min-width:0;
  padding:0;
  margin-left:272px;
}

.layout-prototype header{display:none !important;}

.sidebar-brand{
  padding:22px 20px 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.sidebar-brand-row{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:start;
  column-gap:12px;
}
.sidebar-brand-badge-wrap{
  position:relative;
  width:54px;
  height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sidebar-brand-copy{
  min-width:0;
  padding-top:1px;
}
.sidebar-brand-badge{
  position:relative;
  z-index:2;
  width:44px;
  height:44px;
  border-radius:50%;
  background:linear-gradient(180deg,#176899 0%, #0b4f79 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#f7fbff;
  font-size:17px;
  font-weight:800;
  letter-spacing:-0.03em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 8px 18px rgba(0,0,0,.14);
}
.sidebar-brand-ring{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:2px solid transparent;
  border-top-color:rgba(198,227,255,.72);
  border-right-color:rgba(128,197,255,.40);
  border-bottom-color:rgba(255,255,255,.14);
  box-shadow:0 0 10px rgba(96,180,255,.18);
  animation:orisSidebarRing 5.8s linear infinite;
}
@keyframes orisSidebarRing{
  from{ transform:rotate(0deg);}
  to{ transform:rotate(360deg);}
}
.sidebar-brand-mark{
  display:none;
}
.sidebar-brand-sub{
  margin-top:1px;
  max-width:162px;
  font-size:11px;
  line-height:1.22;
  font-weight:600;
  color:rgba(232,239,246,.82);
}
.sidebar-nav{
  --sidebar-item-pad-x:14px;
  --sidebar-icon-w:16px;
  --sidebar-item-gap:10px;
  --sidebar-label-start:14px;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:26px 18px 26px;
}
.sidebar-section-label{
  position:relative;
  display:block;
  width:100%;
  margin:0 0 14px;
  padding:0 0 0 14px;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.28em;
  text-align:left;
  color:rgba(197,209,222,.56);
}
.sidebar-section-label:not(:first-child){
  margin-top:28px;
  padding-top:22px;
}
.sidebar-section-label:not(:first-child)::before{
  content:"";
  position:absolute;
  left:var(--sidebar-label-start);
  right:var(--sidebar-label-start);
  top:0;
  height:1px;
  background:rgba(255,255,255,.16);
}
.sidebar-divider{
  display:none;
}

.app-sidebar a,
.app-sidebar .nav-dropdown-trigger{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:var(--sidebar-item-gap);
  width:100%;
  min-height:40px;
  margin:0;
  padding:11px var(--sidebar-item-pad-x);
  border-radius:14px;
  color:rgba(240,245,250,.92);
  text-decoration:none;
  font-size:16px;
  font-weight:750;
  line-height:1.15;
  text-align:left;
  transition:background .18s ease, color .18s ease, transform .18s ease;
}
.sidebar-link{position:relative;}
.sidebar-link > span:last-child,
.nav-dropdown-trigger > span:last-child,
.sidebar-dropdown .nav-dropdown-menu a > span{
  display:block;
  width:100%;
  padding-left:0;
  text-align:left;
}
.sidebar-icon{
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  flex:0 0 var(--sidebar-icon-w);
  width:var(--sidebar-icon-w);
  min-width:var(--sidebar-icon-w);
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#e2ebf4;
  opacity:.94;
}
.sidebar-icon svg{
  width:16px;
  height:16px;
  display:block;
  vector-effect:non-scaling-stroke;
}

.app-sidebar a:hover,
.app-sidebar .nav-dropdown:hover .nav-dropdown-trigger,
.app-sidebar .nav-dropdown-trigger.active{
  background:rgba(255,255,255,.032);
  color:#fff;
}

.app-sidebar a.active,
.app-sidebar .nav-dropdown-trigger.active{
  background:linear-gradient(180deg, rgba(255,255,255,.07) 0%, rgba(255,255,255,.045) 100%);
  color:#ffffff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}

.app-sidebar a.active::after,
.app-sidebar .nav-dropdown-trigger.active::after{
  content:"";
  position:absolute;
  left:16px;
  right:16px;
  bottom:-1px;
  height:3px;
  border-radius:0 0 12px 12px;
  background:linear-gradient(90deg, rgba(247,148,29,0) 0%, rgba(247,148,29,0) 74%, #f79b1f 92%, #f79b1f 100%);
}

.sidebar-dropdown{
  position:relative;
  display:block;
  width:100%;
}
.sidebar-dropdown .nav-dropdown-trigger{
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  margin:0;
  padding:11px var(--sidebar-item-pad-x);
}
.sidebar-parent-link{
  margin:0 0 3px;
}
.sidebar-dropdown .nav-dropdown-menu{
  position:static;
  display:flex;
  flex-direction:column;
  min-width:0;
  margin:0 0 10px;
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
  gap:2px;
}
.sidebar-dropdown .nav-dropdown-menu a{
  position:relative;
  min-height:28px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:var(--sidebar-item-gap);
  margin:0;
  padding:6px var(--sidebar-item-pad-x);
  border-radius:10px;
  font-size:13px;
  font-weight:700;
  line-height:1.15;
  text-align:left;
  color:rgba(207,219,230,.66);
}
.sidebar-subicon{
  flex:0 0 var(--sidebar-icon-w);
  width:var(--sidebar-icon-w);
  min-width:var(--sidebar-icon-w);
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:rgba(214,224,234,.62);
}
.sidebar-subicon svg{
  width:16px;
  height:16px;
  display:block;
  vector-effect:non-scaling-stroke;
}
.sidebar-dropdown .nav-dropdown-menu a:hover{
  background:transparent;
  color:rgba(255,255,255,.90);
}
.sidebar-dropdown .nav-dropdown-menu a:hover .sidebar-subicon,
.sidebar-dropdown .nav-dropdown-menu a.active .sidebar-subicon{
  color:rgba(255,255,255,.92);
}
.sidebar-dropdown .nav-dropdown-menu a.active{
  background:transparent;
  color:#ffffff;
}

.sidebar-dropdown:hover .nav-dropdown-menu{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.sidebar-footer{display:none;}

.sidebar-pms-switcher{
  margin-top:auto;
  padding:14px 18px 18px;
  position:relative;
  z-index:40;
}
.sidebar-pms-switcher::before{
  content:"";
  position:absolute;
  left:32px;
  right:32px;
  top:0;
  height:1px;
  background:rgba(255,255,255,.12);
}
.sidebar-pms-trigger{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border:none;
  background:transparent;
  color:rgba(210,222,233,.68);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  text-align:left;
  border-radius:10px;
  transition:background .18s ease, color .18s ease;
}
.sidebar-pms-trigger:hover{
  background:rgba(255,255,255,.04);
  color:#ffffff;
}
.sidebar-pms-switcher.is-open .sidebar-pms-trigger{
  background:rgba(255,255,255,.06);
  color:#ffffff;
}
.sidebar-pms-switcher.is-open .sidebar-pms-arrow{
  transform:rotate(180deg);
  opacity:1;
}
.sidebar-pms-arrow{
  flex:0 0 auto;
  font-size:13px;
  line-height:1;
  opacity:.8;
  transition:transform .18s ease, opacity .18s ease;
}
.sidebar-pms-menu{
  display:none;
  position:absolute;
  left:18px;
  right:18px;
  bottom:calc(100% + 8px);
  padding:6px;
  border-radius:12px;
  background:rgba(4,28,46,.96);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.sidebar-pms-switcher.is-open .sidebar-pms-menu{
  display:block;
}
.sidebar-pms-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-radius:8px;
  color:rgba(236,243,249,.88);
  font-size:12px;
  font-weight:700;
}
.sidebar-pms-item + .sidebar-pms-item{
  margin-top:2px;
}
.sidebar-pms-item.is-active{
  background:rgba(255,255,255,.06);
  color:#fff;
}
.sidebar-pms-item.is-active::after{
  content:"✓";
  color:#f79b1f;
  font-weight:900;
}
.sidebar-pms-item:not(.is-active){
  color:rgba(205,217,228,.88);
}


@media (max-width: 980px){
  .app-sidebar{
    width:248px;
    flex-basis:248px;
  }
  .app-main{
    margin-left:248px;
  }
  .sidebar-brand-sub{
    max-width:148px;
    font-size:10px;
  }
  .app-sidebar a,
  .app-sidebar .nav-dropdown-trigger{
    font-size:15px;
  }
}
.layout-prototype .container{
  max-width:none;
  margin:0;
  padding:28px 30px 34px;
}

.dashboard-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.dashboard-hero-copy{
  min-width:0;
}
.dashboard-hero h1{
  margin:0;
  font-size:28px;
  line-height:1.05;
  letter-spacing:-0.7px;
  font-weight:800;
  color:#0f2740;
}
.dashboard-hero-sub{
  margin-top:8px;
  font-size:15px;
  color:#617182;
  font-weight:600;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.dashboard-hero-date-sep{
  opacity:.5;
}

.prototype-import-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.layout-prototype .home-import-card{padding:20px;}
.layout-prototype .home-import-card h3{margin:0 0 12px; font-size:20px;}
.dashboard-home-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) 340px;
  gap:22px;
  margin-top:16px;
  align-items:start;
}
.dashboard-main-column{display:flex; flex-direction:column; gap:18px;}
.dashboard-control-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.home-alert-card-compact{margin-top:0 !important; padding:16px 18px;}
.layout-prototype .home-alert-card .todo-list > div{align-items:flex-start;}
.layout-prototype .home-checklist-card{padding:16px 18px;}
.layout-prototype .home-calendar-card, .dashboard-placeholder-card{padding:16px 18px;}
.dashboard-side-column{display:flex; flex-direction:column; gap:18px; position:sticky; top:24px;}
.dashboard-placeholder-card h3{margin:0 0 10px;}


.layout-prototype .copy-btn{position:static;}

@media (max-width: 1180px){
  .dashboard-home-grid{grid-template-columns:1fr;}
  .dashboard-side-column{position:static;}
}
@media (max-width: 920px){
  .app-shell{display:block;}
  .app-sidebar{width:100%; height:auto; max-height:none; position:static; overflow:visible;}
  .app-main{margin-left:0;}
  .prototype-import-grid, .dashboard-control-grid{grid-template-columns:1fr;}
}


/* merged from stable old logic + sidebar prototype */



/* ===== HOME SOURCES STRIP ===== */
.home-sources-strip{
  margin:0;
  margin-left:auto;
  padding:10px 12px;
  min-width:360px;
  max-width:500px;
  border:1px dashed rgba(15,39,64,0.10);
  border-radius:16px;
  background:rgba(255,255,255,0.76);
  box-shadow:0 8px 22px rgba(15,39,64,0.05);
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease, transform .18s ease;
  cursor:pointer;
  user-select:none;
}

.home-sources-strip:hover{
  border-color:rgba(15,39,64,0.22);
  background:rgba(255,255,255,0.92);
  box-shadow:0 14px 36px rgba(15,39,64,.10);
  transform:translateY(-1px);
}

.home-sources-strip:focus-visible{
  outline:none;
  border-color:#0f2740;
  box-shadow:0 0 0 3px rgba(15,39,64,0.12), 0 14px 36px rgba(15,39,64,.10);
}

.home-sources-strip.is-drag-active{
  border-color:rgba(0,61,92,0.34);
  background:rgba(255,255,255,0.98);
  box-shadow:0 16px 38px rgba(15,39,64,.14);
  transform:translateY(-1px);
}

.home-sources-row{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:42px;
}

.home-sources-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1 1 auto;
}

.home-sources-label{
  flex:0 0 auto;
  font-size:13px;
  font-weight:800;
  color:var(--dark);
  line-height:1;
}

.home-sources-items{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.home-source-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  flex-wrap:wrap;
}

.home-source-name{
  font-size:12px;
  font-weight:800;
  color:var(--dark);
}

.home-source-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:20px;
  padding:0 7px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,0.06);
  background:#f4f6f8;
  color:#728093;
  font-size:9px;
  font-weight:800;
  letter-spacing:.04em;
}

.home-source-date{
  color:#7a8696;
  font-size:10px;
  font-weight:600;
  white-space:nowrap;
}



.home-sources-actions{
  margin-left:auto;
  flex:0 0 auto;
}

.home-sources-drop{
  width:34px;
  height:34px;
  min-width:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border-radius:11px;
  border:1px solid rgba(15,39,64,0.08);
  background:#f8fafc;
  color:#334155;
  cursor:pointer;
  font-size:16px;
  font-weight:800;
  line-height:1;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}

.home-sources-drop:hover{
  transform:translateY(-1px);
  box-shadow:var(--shadow-sm);
  border-color:rgba(15,39,64,0.14);
  background:#ffffff;
}

.home-sources-drop:focus-visible{
  outline:none;
  border-color:#0f2740;
  box-shadow:0 0 0 3px rgba(15,39,64,0.10);
}

.home-sources-drop-icon{
  font-size:14px;
  line-height:1;
}

#acdc-import-status,
.home-drop-grid,
.prototype-import-grid,
.home-import-card,
.import-date{
}

@media (max-width: 900px){
  .dashboard-hero{
    flex-direction:column;
  }

  .home-sources-strip{
    min-width:0;
    width:100%;
    max-width:none;
  }

  .home-sources-row{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .home-sources-actions{
    margin-left:0;
  }
}

/* ================= HOME KPI ROW RESTORED ================= */

.dashboard-kpi-row{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:14px;
  margin:18px 0 20px;
}

.dashboard-kpi-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.05);
  box-shadow:0 8px 24px rgba(15,23,42,.06);
  min-height:98px;
}

.dashboard-kpi-icon{
  width:44px;
  height:44px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:900;
  flex:0 0 44px;
}
.dashboard-kpi-icon.is-arrivals{ background:#e9f2ff; color:#3973d7; }
.dashboard-kpi-icon.is-departures{ background:#eef2f8; color:#64748b; }
.dashboard-kpi-icon.is-stayovers{ background:#e9fbf5; color:#0f9d7a; }
.dashboard-kpi-icon.is-preferences{ background:#f3ecff; color:#8b5cf6; }
.dashboard-kpi-icon.is-baby{ background:#fff2e8; color:#f28c28; }
.dashboard-kpi-icon.is-sofa{ background:#eef6ff; color:#3b82f6; }
.dashboard-kpi-icon.is-vcc{ background:#fff2e8; color:#f97316; }

.dashboard-kpi-copy{
  display:flex;
  flex-direction:column;
  gap:1px;
  min-width:0;
}
.dashboard-kpi-label{
  font-size:12px;
  font-weight:800;
  color:#64748b;
  letter-spacing:.01em;
}
.dashboard-kpi-value{
  font-size:30px;
  line-height:1;
  font-weight:900;
  color:#0f172a;
}
.dashboard-kpi-sub{
  font-size:11px;
  font-weight:700;
  color:#94a3b8;
}

.dashboard-kpi-card-button{
  width:100%;
  text-align:left;
  border:none;
  cursor:pointer;
  font:inherit;
}

.dashboard-kpi-card-button:hover{
  box-shadow:0 12px 26px rgba(15,23,42,.10);
}

.dashboard-kpi-card-button:focus-visible{
  outline:2px solid rgba(249,115,22,.55);
  outline-offset:2px;
}

.dashboard-kpi-card.has-hover-tooltip{
  position:relative;
  overflow:visible;
}

.dashboard-kpi-hover{
  position:absolute;
  left:50%;
  bottom:calc(100% + 10px);
  transform:translateX(-50%) translateY(4px);
  min-width:220px;
  padding:12px 14px;
  border-radius:14px;
  background:#0f172a;
  color:#e2e8f0;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 40px rgba(15,23,42,.24);
  white-space:pre;
  font-size:12px;
  font-weight:800;
  line-height:1.6;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
  z-index:40;
}

.dashboard-kpi-hover::after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  border:7px solid transparent;
  border-top-color:#0f172a;
}

.dashboard-kpi-card.has-hover-tooltip:hover .dashboard-kpi-hover,
.dashboard-kpi-card.has-hover-tooltip:focus-visible .dashboard-kpi-hover,
.dashboard-kpi-card.has-hover-tooltip:focus-within .dashboard-kpi-hover{
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}


[hidden]{
  display:none !important;
}

.home-vcc-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  background:transparent;
}

.home-vcc-panel{
  position:absolute;
  top:var(--home-vcc-top, 120px);
  left:var(--home-vcc-left, calc(100vw - 408px));
  width:min(376px, calc(100vw - 24px));
  max-height:min(62vh, 460px);
  overflow:auto;
  border-radius:16px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 18px 40px rgba(15,23,42,.16);
  padding:12px;
  animation:homeVccPopoverIn .16s ease-out;
}

.home-vcc-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.home-vcc-title{
  font-size:15px;
  font-weight:900;
  color:#0f172a;
  line-height:1.1;
}

.home-vcc-sub{
  margin-top:3px;
  font-size:11px;
  font-weight:700;
  color:#64748b;
  line-height:1.35;
}

.home-vcc-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.home-vcc-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid rgba(148,163,184,.18);
}

.home-vcc-item-main{
  flex:1;
  min-width:0;
}

.home-vcc-item-line{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
}

.home-vcc-item-name{
  font-size:12px;
  font-weight:900;
  color:#0f172a;
  text-transform:none;
  letter-spacing:.01em;
  line-height:1.2;
  min-width:0;
  overflow-wrap:anywhere;
}

.home-vcc-item-meta{
  flex:0 0 auto;
  font-size:10px;
  font-weight:800;
  color:#f97316;
  letter-spacing:.01em;
  line-height:1.2;
  text-align:right;
  white-space:nowrap;
}

.home-vcc-empty{
  padding:12px;
  border-radius:10px;
  background:#f8fafc;
  border:1px solid rgba(148,163,184,.2);
  color:#64748b;
  font-size:12px;
  font-weight:700;
}

@keyframes homeVccPopoverIn{
  from{
    opacity:0;
    transform:translateY(-8px) scale(.985);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

/* ================= HOME CHECKLIST SKIN ================= */
.home-checklist-wrapper{
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,250,252,.98) 100%);
  border:1px solid rgba(15,23,42,.06);
  border-radius:22px;
  padding:18px 18px 16px;
  box-shadow:0 14px 34px rgba(15,23,42,.07);
}

.home-checklist-topbar{
  margin-bottom:16px;
  align-items:center;
}

.home-checklist-topbar h3{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-size:18px;
  font-weight:900;
  color:#17324d;
}

.home-checklist-topbar h3::before{
  content:"✓";
  width:28px;
  height:28px;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#39c977;
  color:#fff;
  font-size:17px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(57,201,119,.26);
}

.home-check-date-nav{
  gap:10px;
}

.home-check-date-label{
  min-width:144px;
  padding:8px 12px;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.06);
  color:#30465f;
  font-size:12px;
  font-weight:800;
}

.home-check-nav-btn{
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.08);
  background:#ffffff;
  color:#5b7088;
  font-size:14px;
  box-shadow:0 6px 16px rgba(15,23,42,.07);
}

.home-check-nav-btn:hover{
  box-shadow:0 10px 22px rgba(15,23,42,.12);
  transform:translateY(-1px);
}

.home-checklist-split{
  gap:16px;
}

.home-check-col{
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}

.home-check-col:first-child{
  background:linear-gradient(180deg, #f6f0e8 0%, #f9f5ef 100%);
}

.home-check-col:last-child{
  background:linear-gradient(180deg, #edf2fb 0%, #f2f5fc 100%);
}

.home-check-head{
  margin-bottom:12px;
  align-items:center;
}

.home-check-head h4{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:16px;
  font-weight:900;
  color:#25364a;
}

.home-check-head h4::before{
  content:"☀";
  font-size:15px;
  color:#f4a12c;
}

.home-check-col:last-child .home-check-head h4::before{
  content:"☾";
  color:#7f98db;
}

.home-check-head .small{
  font-size:11px;
  font-weight:800;
  color:#73859a;
}

.home-check-list{
  gap:10px;
}

.home-check-row{
  align-items:flex-start;
  gap:12px;
  padding:10px 0;
  border:none;
  background:transparent;
  border-radius:0;
}

.home-check-row:hover{
  background:transparent;
}

.home-check-row input[type="checkbox"]{
  width:23px;
  height:23px;
  margin-top:1px;
  border-radius:7px;
  accent-color:#8aa1bc;
  box-shadow:0 1px 0 rgba(255,255,255,.5);
}

.home-check-row input[type="text"],
.home-check-row .home-check-fixed-text{
  font-size:15px;
  line-height:1.45;
  font-weight:700;
  color:#32485f;
}

.home-check-row.fixed-row{
  background:transparent;
}

.home-check-row input[type="text"]::placeholder{
  color:#8aa0b5;
}

.home-check-actions{
  margin-top:12px;
}

.home-check-actions .btn{
  width:38px;
  height:38px;
  min-width:38px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  color:#54697f;
  box-shadow:0 6px 16px rgba(15,23,42,.08);
}

.home-check-actions .btn:hover{
  transform:translateY(-1px);
}

@media (max-width: 1180px){
  .dashboard-kpi-row{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 760px){
  .dashboard-kpi-row{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 540px){
  .dashboard-kpi-row{ grid-template-columns:1fr; }
  .home-checklist-wrapper{ padding:16px 14px 14px; }
}

body[data-theme="night"] .dashboard-kpi-card{
  background:rgba(15,23,42,.92);
  border-color:rgba(255,255,255,.06);
  box-shadow:0 10px 24px rgba(0,0,0,.28);
}
body[data-theme="night"] .dashboard-kpi-label{ color:#94a3b8; }
body[data-theme="night"] .dashboard-kpi-value{ color:#f8fafc; }
body[data-theme="night"] .dashboard-kpi-sub{ color:#64748b; }
body[data-theme="night"] .home-checklist-wrapper{
  background:linear-gradient(180deg, rgba(15,23,42,.95) 0%, rgba(17,24,39,.94) 100%);
  border-color:rgba(255,255,255,.06);
  box-shadow:0 16px 36px rgba(0,0,0,.32);
}
body[data-theme="night"] .home-checklist-topbar h3{ color:#e2e8f0; }
body[data-theme="night"] .home-check-date-label,
body[data-theme="night"] .home-check-nav-btn,
body[data-theme="night"] .home-check-actions .btn{
  background:#0f172a;
  border-color:#334155;
  color:#dbe7f4;
}
body[data-theme="night"] .home-check-col:first-child{
  background:linear-gradient(180deg, rgba(74,58,37,.55) 0%, rgba(56,44,30,.45) 100%);
  border-color:rgba(245,158,11,.10);
}
body[data-theme="night"] .home-check-col:last-child{
  background:linear-gradient(180deg, rgba(32,43,69,.85) 0%, rgba(24,33,54,.78) 100%);
  border-color:rgba(96,165,250,.10);
}
body[data-theme="night"] .home-check-head h4,
body[data-theme="night"] .home-check-row input[type="text"],
body[data-theme="night"] .home-check-row .home-check-fixed-text{
  color:#e2e8f0;
}
body[data-theme="night"] .home-check-head .small,
body[data-theme="night"] .home-check-row input[type="text"]::placeholder{
  color:#94a3b8;
}


.dashboard-lower-grid{margin-top:18px}
.home-next-days-table{display:flex;flex-direction:column;gap:10px}
.home-next-days-head,.home-next-days-row{display:grid;grid-template-columns:1.1fr .78fr .78fr 1.2fr .78fr;gap:12px;align-items:center}
.home-next-days-head{padding:0 6px;color:#6b778c;font-size:12px;font-weight:800;text-transform:none}
.home-next-days-row{padding:12px 14px;border:1px solid rgba(15,23,42,.06);border-radius:14px;background:#fff}
.home-next-days-date{font-weight:800;color:#183b66}
.home-next-days-cell{font-weight:700;color:#0f172a}
.home-next-days-badge{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:7px 10px;border-radius:12px;background:#eef2ff;font-weight:800;color:#183b66}
.home-next-days-badge.is-departures{background:#eff6ff}
.home-next-days-badge.is-groups{background:#fff3e8;color:#9a4d00}
.home-next-days-badge.is-total{background:#ecfdf3;color:#166534}
.home-next-days-group-sub{margin-left:6px;font-size:12px;color:#6b778c;font-weight:700}
.home-next-days-empty{color:#7b8794;padding:6px 2px}
@media (max-width: 1200px){
  .home-next-days-head,.home-next-days-row{grid-template-columns:1fr .7fr .7fr 1fr .7fr;gap:8px}
}


.sources-box.dropzone{
  position:absolute;
  top:20px;
  right:20px;

  width:220px;
  padding:14px;

  border:1px dashed rgba(0,0,0,0.15);
  border-radius:12px;

  background:rgba(255,255,255,0.6);
  backdrop-filter:blur(8px);

  text-align:center;
}

.drop-title{
  font-size:12px;
  font-weight:600;
  margin-bottom:6px;
}

.drop-info{
  font-size:11px;
  opacity:0.6;
  margin-bottom:10px;
}

.drop-btn{
  font-size:12px;
  padding:6px 10px;
  border:none;
  border-radius:8px;
  background:#2f6fed;
  color:white;
  cursor:pointer;
}


/* ===== SIDEBAR TYPOGRAPHY TUNING ===== */
.sidebar-link{
  font-size: 14px !important;
  font-weight: 600 !important;
}

.nav-dropdown-menu a{
  font-size: 13px !important;
  font-weight: 500 !important;
}

.sidebar-section-label{
  font-size: 11px !important;
  letter-spacing: 0.22em !important;
}

.sidebar-icon svg,
.sidebar-subicon svg{
  width: 15px;
  height: 15px;
}


/* ===== CHECKLIST DENSITY TUNING ===== */
.home-checklist-card{
  padding: 14px 16px !important;
}

.home-checklist-columns{
  gap: 14px !important;
}

.home-checklist-panel{
  padding: 14px 16px !important;
}

.home-checklist-list{
  gap: 4px !important;
}

.home-checklist-item{
  min-height: 34px !important;
  padding: 4px 0 !important;
  gap: 10px !important;
  align-items: center !important;
}

.home-checklist-item input[type="checkbox"],
.home-checklist-checkbox{
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
}

.home-checklist-item-label,
.home-checklist-item span,
.home-checklist-item label{
  font-size: 13px !important;
  line-height: 1.2 !important;
}

.home-checklist-panel .muted,
.home-checklist-extra,
.home-checklist-empty{
  line-height: 1.3 !important;
}

.home-checklist-add-btn,
.home-checklist-add{
  width: 36px !important;
  height: 36px !important;
}

.home-checklist-section-title,
.home-checklist-subtitle{
  margin-bottom: 8px !important;
}

.home-checklist-card .todo-list > div{
  gap: 10px !important;
  padding: 4px 0 !important;
  min-height: 34px !important;
  align-items: center !important;
}

.home-checklist-card .todo-list input[type="checkbox"]{
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
}

.home-checklist-card .todo-list label,
.home-checklist-card .todo-list span{
  line-height: 1.2 !important;
}


/* ===== REAL CHECKLIST DENSITY FIX ===== */
.home-checklist-wrapper{
  padding: 14px 16px 12px !important;
}

.home-checklist-topbar{
  margin-bottom: 10px !important;
}

.home-checklist-split{
  gap: 12px !important;
}

.home-check-col{
  padding: 12px 12px 10px !important;
}

.home-check-head{
  margin-bottom: 8px !important;
}

.home-check-head h4{
  font-size: 13px !important;
  line-height: 1.2 !important;
}

.home-check-list{
  gap: 5px !important;
}

.home-check-section{
  margin-bottom: 8px !important;
}

.home-check-subtitle{
  margin-top: 0 !important;
  margin-bottom: 6px !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
}

.home-check-row{
  gap: 8px !important;
  padding: 5px 8px !important;
  min-height: 0 !important;
  border-radius: 9px !important;
}

.home-check-row input[type="checkbox"]{
  width: 14px !important;
  height: 14px !important;
}

.home-check-row input[type="text"]{
  font-size: 12px !important;
  line-height: 1.15 !important;
  padding: 0 !important;
}

.home-check-row.fixed-row .home-check-fixed-text{
  font-size: 12px !important;
  line-height: 1.15 !important;
}

.home-check-empty{
  padding: 6px 2px !important;
  line-height: 1.25 !important;
}

.home-check-actions{
  margin-top: 8px !important;
}

.home-check-actions .btn{
  min-width: 34px !important;
  width: 34px !important;
  height: 34px !important;
  font-size: 20px !important;
  line-height: 1 !important;
  padding: 0 !important;
}


/* ===== CHECKLIST SWEET SPOT TUNING ===== */
.home-check-row{
  padding: 6px 10px !important;
}

.home-check-list{
  gap: 6px !important;
}

.home-check-subtitle{
  margin-bottom: 8px !important;
}


/* ===== NEXT DAYS DENSITY + SOFA COLUMN ===== */
.home-next-days-table{
  display:flex;
  flex-direction:column;
  gap:8px !important;
}

.home-next-days-head,
.home-next-days-row{
  display:grid;
  grid-template-columns:1.08fr .74fr .74fr 1.08fr .72fr .74fr !important;
  gap:10px !important;
  align-items:center;
}

.home-next-days-head{
  padding:0 6px !important;
  font-size:11px !important;
}

.home-next-days-row{
  padding:10px 12px !important;
  border-radius:14px !important;
}

.home-next-days-date{
  font-size:13px !important;
  line-height:1.15 !important;
}

.home-next-days-cell{
  font-size:12px !important;
  line-height:1.1 !important;
}

.home-next-days-badge{
  min-width:36px !important;
  padding:6px 9px !important;
  border-radius:11px !important;
  font-size:12px !important;
}

.home-next-days-badge.is-sofas{
  background:#eef7ff !important;
  color:#2563eb !important;
}

.home-next-days-group-sub{
  margin-left:5px !important;
  font-size:11px !important;
}

@media (max-width: 1200px){
  .home-next-days-head,
  .home-next-days-row{
    grid-template-columns:1fr .68fr .68fr 1fr .64fr .68fr !important;
    gap:8px !important;
  }
}


/* ===== CARD HEADER CLEANUP ===== */
#vac-calendar-title{
  min-height: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

#vac-calendar-title::before{
  content: none !important;
}

.home-checklist-topbar h3{
  min-height: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  gap: 0 !important;
}

.home-checklist-topbar h3::before{
  content: none !important;
  display: none !important;
}

.home-checklist-topbar{
  margin-bottom: 8px !important;
}

/* ===== ARRIVALS GRAPH CLEANUP ===== */
.home-graph-card .small.muted,
.home-graph-card .muted.small{
  font-size: 0 !important;
  line-height: 0 !important;
}

/* Hide Plotly modebar entirely */
.home-graph-card .modebar,
.home-graph-card .modebar-container{
  display: none !important;
}

/* extra safety for any lingering icon buttons in graph header/toolbars */
.home-graph-card [data-title="Download plot as a png"],
.home-graph-card [data-title="Zoom"],
.home-graph-card [data-title="Pan"],
.home-graph-card [data-title="Zoom in"],
.home-graph-card [data-title="Zoom out"],
.home-graph-card [data-title="Autoscale"],
.home-graph-card [data-title="Reset axes"],
.home-graph-card [data-title="Produced with Plotly.js"]{
  display: none !important;
}


/* ===== IMPORT STRIP WIDTH TUNING ===== */
.home-sources-strip{
  min-width: 0 !important;
  width: 360px !important;
  max-width: 360px !important;
  padding: 10px 12px !important;
}

.home-sources-row{
  gap: 10px !important;
}

.home-sources-items{
  gap: 10px !important;
}

@media (max-width: 900px){
  .home-sources-strip{
    width: 100% !important;
    max-width: none !important;
  }
}

/* hide BASE FIXE and AJOUTS DU JOUR labels */
.checklist-section-title,
.checklist-subtitle,
.home-checklist-card .section-title,
.home-checklist-card .subtitle{
  display:none !important;
}
 
/* ===== CHECKLIST LABELS HIDDEN WITHOUT BREAKING LAYOUT ===== */
.home-check-subtitle{
  display:none !important;
}
.home-check-section{
  margin-bottom: 6px !important;
}


/* ===== HOME ARRIVALS LEGEND VISUAL TONE ===== */
.home-graph-card{
  --arrivals-blue: #183b66;
  --groups-orange: #9a4d00;
}


/* ===== PREVISIONNEL DENSITY TUNING ===== */
.home-next-days-table{
  gap: 6px !important;
}

.home-next-days-row{
  padding: 8px 12px !important;
}

.home-next-days-head,
.home-next-days-row{
  gap: 8px !important;
}

.home-next-days-date{
  line-height: 1.1 !important;
}

.home-next-days-cell{
  line-height: 1.05 !important;
}


/* ===== ATTRIBUTION CARD WIDTH ALIGNMENT ===== */
.dashboard-lower-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 340px !important;
  gap:22px !important;
  align-items:start !important;
}

.dashboard-lower-grid > .home-alert-card{
  min-width:0;
}

@media (max-width: 1180px){
  .dashboard-lower-grid{
    grid-template-columns:1fr !important;
  }
}


/* ===== RULES LAYOUT REWORK ===== */
.rules-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.7fr) minmax(380px, 1fr);
  gap:20px;
  align-items:start;
  margin-top:20px;
}

.rules-main,
.rules-side-grid{
  min-width:0;
}

.rules-main > .card{
  margin:0 !important;
}

.rules-side-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:start;
}

.rules-side-grid > .card{
  margin:0 !important;
}

.rules-side-grid textarea{
  min-height:92px;
}

.rules-vcc-card{
  grid-column:auto;
}

@media (max-width: 1280px){
  .rules-layout{
    grid-template-columns:1fr;
  }
}

@media (max-width: 760px){
  .rules-side-grid{
    grid-template-columns:1fr;
  }

  .rules-vcc-card{
    grid-column:auto;
  }
}

/* ===== DASHBOARD DAY NAV ===== */
.dashboard-hero-sub-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.dashboard-date-nav-btn{
  width:30px;
  height:30px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--dark);
  cursor:pointer;
  font-weight:900;
  line-height:1;
  box-shadow:none;
}

.dashboard-date-nav-btn:hover{
  box-shadow:var(--shadow-sm);
}

#dashboard-current-date{
  display:inline-block;
  min-width:240px;
  text-align:center;
  font-weight:800;
}


/* === FIX ARRIVÉES: KEEP FULL WIDTH GRAPH, REDUCE TOP SPACE ONLY === */

.home-graph-card {
  padding-top: 6px !important;
  padding-bottom: 12px !important;
}

/* reduce space above title */
.home-graph-card h3 {
  margin-top: 4px !important;
  margin-bottom: 6px !important;
}

/* keep full chart height */
#home-arrivals-chart {
  height: 100% !important;
}

/* remove extra spacing from container */
.dashboard-placeholder-card {
  padding-top: 8px !important;
}


/* === FINAL TUNING FROM LAST ZIP: keep full arrivals timeline, reduce only upper dead space === */
.layout-prototype .home-calendar-card{
  padding: 12px 14px !important;
}

.home-calendar-card .row{
  margin-bottom: 8px !important;
}

#vac-calendar{
  padding-top: 0 !important;
}

.home-graph-card{
  padding: 10px 18px 16px !important;
}

.home-graph-card .row{
  margin-bottom: 4px !important;
}

.home-graph-card h3{
  margin: 0 !important;
}

#home-arrivals-chart{
  height: auto !important;
  margin-top: -4px;
}


/* === V2 tighter side cards from last zip === */
 .layout-prototype .home-calendar-card{
  padding: 8px 10px 10px !important;
}

 .home-calendar-card .row{
  margin-bottom: 4px !important;
}

#vac-calendar{
  padding-top: 0 !important;
}

.home-graph-card{
  padding: 8px 14px 12px !important;
}

.home-graph-card .row{
  margin-bottom: 0 !important;
}

.home-graph-card h3{
  margin: 0 !important;
  line-height: 1.15 !important;
}

#home-arrivals-chart{
  margin-top: -10px !important;
}

.dashboard-side-column .dashboard-side-card,
.dashboard-side-column .dashboard-placeholder-card{
  border-radius: 16px !important;
}

 .inventory-pressure-card{
  padding: 10px 12px 12px;
}

 .inventory-pressure-list{
  display: grid;
  gap: 8px;
}

 .inventory-pressure-row{
  display: grid;
  gap: 4px;
}

.inventory-pressure-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.inventory-pressure-name{
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}

.inventory-pressure-meta{
  white-space: nowrap;
  text-align: right;
  flex: 1 1 auto;
}

.inventory-pressure-level{
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.inventory-pressure-level.is-low{ color: #7c8aa5; }
.inventory-pressure-level.is-medium{ color: #9a7a27; }
.inventory-pressure-level.is-high{ color: #b15454; }

 .inventory-pressure-track{
  position: relative;
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: rgba(124, 138, 165, .18);
  overflow: hidden;
}

.inventory-pressure-fill{
  height: 100%;
  border-radius: inherit;
  transition: width .18s ease;
  background: #7c8aa5;
}

.inventory-pressure-fill.is-medium{ background: #c49a38; }
.inventory-pressure-fill.is-high{ background: #cf6b6b; }

.inventory-rules-grid{
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 10px 12px;
  justify-content: start;
  align-items: start;
}

.inventory-rule-field{
  display: grid;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  justify-items: start;
}

.inventory-rule-field input{
  width: 118px;
  max-width: 100%;
}

@media (max-width: 720px){
  .inventory-rules-grid{
    grid-template-columns: 1fr;
  }

  .inventory-rule-field input{
    width: 100%;
  }
}


/* compacted side cards fix */
#vac-calendar-subtitle{margin-bottom:6px !important;}
#vac-calendar-legend{margin-top:6px !important;}
.inventory-pressure-card .row{margin-bottom:6px !important;}
.inventory-pressure-card .inventory-pressure-name{line-height:1.1;}
.inventory-pressure-card .small.muted.right{line-height:1.1;}


/* ===== INVENTAIRE HARMONISÉ ===== */
#view-inventory{
  max-width:1320px;
}

#view-inventory > h2{
  margin:0 0 14px;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-0.02em;
  color:var(--dark);
}

#view-inventory .btn-row{
  margin-top:14px;
  gap:10px;
}

#view-inventory #inventorylist.inventory-flat{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(220px, 1fr));
  gap:14px;
  align-items:start;
}

#view-inventory .inv-flat-section{
  background:var(--card);
  border:1px solid rgba(15,23,42,.05);
  border-radius:14px;
  box-shadow:var(--shadow-sm);
  padding:10px;
  min-width:0;
}

#view-inventory .inv-flat-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}

#view-inventory .inv-flat-title{
  flex:1;
  min-width:0;
  height:34px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  padding:0 12px;
  font-size:14px;
  font-weight:700;
  color:var(--dark);
  box-shadow:none;
}

#view-inventory .inv-flat-title:focus,
#view-inventory .inv-flat-text:focus{
  outline:none;
  border-color:rgba(0,61,92,.28);
  box-shadow:0 0 0 3px rgba(0,61,92,.08);
}

#view-inventory .inv-flat-section-actions,
#view-inventory .inv-flat-actions{
  display:flex;
  align-items:center;
  gap:4px;
}

#view-inventory .inv-flat-add-btn,
#view-inventory .inv-flat-delete-section,
#view-inventory .inv-flat-handle,
#view-inventory .inv-flat-del{
  appearance:none;
  border:none;
  background:transparent;
  color:#8b97aa;
  border-radius:8px;
  font:inherit;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

#view-inventory .inv-flat-add-btn,
#view-inventory .inv-flat-delete-section{
  width:28px;
  height:28px;
  font-size:18px;
  line-height:1;
  font-weight:700;
}

#view-inventory .inv-flat-delete-section{
  font-size:16px;
}

#view-inventory .inv-flat-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:10px;
}

#view-inventory .inv-flat-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px;
  align-items:center;
}

#view-inventory .inv-flat-main{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:38px;
  border:1px solid rgba(15,23,42,.07);
  background:#f8fafc;
  border-radius:11px;
  padding:0 10px;
  text-align:left;
}

#view-inventory .inv-flat-row.is-ok .inv-flat-main{
  background:rgba(16,185,129,.08);
  border-color:rgba(16,185,129,.2);
}

#view-inventory .inv-flat-check{
  width:16px;
  height:16px;
  margin:0;
  accent-color:#0f766e;
  flex:0 0 16px;
  cursor:pointer;
}

#view-inventory .inv-flat-text{
  flex:1;
  min-width:0;
  height:22px;
  border:none;
  background:transparent;
  padding:0;
  font-size:14px;
  font-weight:600;
  color:var(--dark);
  box-shadow:none;
}

#view-inventory .inv-flat-handle,
#view-inventory .inv-flat-del{
  width:24px;
  height:24px;
  opacity:.26;
}

#view-inventory .inv-flat-row:hover .inv-flat-handle,
#view-inventory .inv-flat-row:hover .inv-flat-del,
#view-inventory .inv-flat-head:hover .inv-flat-add-btn,
#view-inventory .inv-flat-head:hover .inv-flat-delete-section{
  opacity:.9;
}

#view-inventory .inv-flat-handle{
  cursor:grab;
  letter-spacing:-1px;
}

#view-inventory .inv-flat-handle span,
#view-inventory .inv-flat-del span{
  display:block;
  line-height:1;
}

#view-inventory .inv-flat-add-btn:hover,
#view-inventory .inv-flat-delete-section:hover,
#view-inventory .inv-flat-handle:hover,
#view-inventory .inv-flat-del:hover{
  background:rgba(15,23,42,.06);
  color:var(--dark);
}

#view-inventory .inv-flat-empty{
  min-height:38px;
  border:1px dashed rgba(148,163,184,.4);
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  background:rgba(255,255,255,.5);
  padding:0 12px;
  font-size:13px;
}

#view-inventory .inv-flat-list.drag-over{
  outline:2px dashed rgba(0,61,92,.22);
  outline-offset:3px;
  border-radius:12px;
}

#view-inventory .inv-flat-row.drag-over .inv-flat-main{
  border-color:rgba(0,61,92,.28);
  background:rgba(0,61,92,.05);
}

#view-inventory .inv-flat-row.dragging{
  opacity:.4;
}

@media (max-width: 1380px){
  #view-inventory #inventorylist.inventory-flat{
    grid-template-columns:repeat(3, minmax(220px, 1fr));
  }
}

@media (max-width: 1040px){
  #view-inventory #inventorylist.inventory-flat{
    grid-template-columns:repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 720px){
  #view-inventory{
    padding:20px;
  }

  #view-inventory > h2{
    font-size:26px;
  }

  #view-inventory #inventorylist.inventory-flat{
    grid-template-columns:1fr;
  }
}
}

/* =========================================================
   DD — FORCE HARMONISATION PATCH
   ========================================================= */
#view-dd #dd-output > *{
  background:linear-gradient(180deg, rgba(0,61,92,.03) 0%, rgba(255,255,255,.98) 100%) !important;
  color:var(--dark) !important;
  border:1px solid rgba(0,61,92,.10) !important;
  box-shadow:var(--shadow-sm) !important;
}

#view-dd #dd-output,
#view-dd #dd-output *{
  color:inherit;
}

#view-dd #dd-output h1,
#view-dd #dd-output h2,
#view-dd #dd-output h3,
#view-dd #dd-output h4,
#view-dd #dd-output strong,
#view-dd #dd-output b,
#view-dd #dd-output .title,
#view-dd #dd-output .daysTitle,
#view-dd #dd-output .dayDate,
#view-dd #dd-output .amt,
#view-dd #dd-output .stat .v{
  color:var(--brand) !important;
}

#view-dd #dd-output .muted,
#view-dd #dd-output .meta,
#view-dd #dd-output .hint,
#view-dd #dd-output .daysHint,
#view-dd #dd-output .dayMeta,
#view-dd #dd-output small,
#view-dd #dd-output label{
  color:var(--muted) !important;
}

#view-dd #dd-output .card,
#view-dd #dd-output .panel,
#view-dd #dd-output .box,
#view-dd #dd-output .stat,
#view-dd #dd-output .chipsWrap,
#view-dd #dd-output .daysPanel,
#view-dd #dd-output .results,
#view-dd #dd-output .toolbar,
#view-dd #dd-output .filters,
#view-dd #dd-output .head,
#view-dd #dd-output .section,
#view-dd #dd-output .chip,
#view-dd #dd-output .dayRow,
#view-dd #dd-output .status,
#view-dd #dd-output .miniBar{
  background:#ffffff !important;
  border-color:rgba(0,61,92,.10) !important;
  color:var(--dark) !important;
  box-shadow:none !important;
}

#view-dd #dd-output .chip.used,
#view-dd #dd-output .dayRow.is-done,
#view-dd #dd-output .status.ok{
  background:rgba(16,185,129,.08) !important;
  border-color:rgba(16,185,129,.28) !important;
}

#view-dd #dd-output .status.warn{
  background:rgba(245,158,11,.10) !important;
  border-color:rgba(245,158,11,.28) !important;
  color:#92400e !important;
}

#view-dd #dd-output .status.bad,
#view-dd #dd-output .danger{
  background:rgba(239,68,68,.08) !important;
  border-color:rgba(239,68,68,.24) !important;
  color:#b91c1c !important;
}

#view-dd #dd-output .btn,
#view-dd #dd-output button{
  background:var(--card) !important;
  color:var(--dark) !important;
  border:1px solid var(--border) !important;
  box-shadow:none !important;
}

#view-dd #dd-output .btn.secondary{
  background:rgba(0,61,92,.06) !important;
  color:var(--brand) !important;
  border-color:rgba(0,61,92,.12) !important;
}

#view-dd #dd-output .btn.good{
  background:#ecfdf5 !important;
  color:#047857 !important;
  border-color:#a7f3d0 !important;
}

#view-dd #dd-output .btn.danger,
#view-dd #dd-output button.danger{
  background:#fff5f5 !important;
  color:#b91c1c !important;
  border-color:#fecaca !important;
}

#view-dd #dd-output input,
#view-dd #dd-output select,
#view-dd #dd-output textarea{
  background:#ffffff !important;
  color:var(--dark) !important;
  border:1px solid var(--border) !important;
}

#view-dd #dd-output input::placeholder,
#view-dd #dd-output textarea::placeholder{
  color:var(--muted) !important;
}

#view-dd #dd-output .miniFill,
#view-dd #dd-output .progress > div,
#view-dd #dd-output .bar > div{
  background:linear-gradient(90deg, rgba(0,61,92,.45), rgba(247,148,29,.45)) !important;
}

/* ===== INDIV DAY CONTROL — LIGHT HARMONIZED OVERRIDE ===== */
.indiv-day-panel{
  background:linear-gradient(135deg, rgba(0,61,92,.03) 0%, rgba(255,255,255,.96) 100%) !important;
  border:1px solid rgba(0,0,0,.06) !important;
  border-radius:14px !important;
  padding:14px !important;
  box-shadow:var(--shadow-sm) !important;
}

.indiv-day-panel-body{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
}

.indiv-control-section{
  border:1px solid rgba(0,0,0,.06) !important;
  border-radius:12px !important;
  background:#ffffff !important;
  overflow:hidden !important;
  padding:0 !important;
  box-shadow:none !important;
}

.indiv-control-section-title{
  padding:10px 12px !important;
  margin:0 !important;
  font-size:13px !important;
  font-weight:800 !important;
  color:var(--brand) !important;
  background:rgba(0,61,92,.04) !important;
  border-bottom:1px solid rgba(0,0,0,.05) !important;
}

.indiv-control-entry{
  padding:10px 12px !important;
  border-top:1px solid rgba(0,0,0,.05) !important;
  background:#ffffff !important;
}

.indiv-control-entry:first-of-type{
  border-top:none !important;
}

.indiv-control-name{
  font-weight:800 !important;
  color:var(--dark) !important;
  margin-bottom:4px !important;
  letter-spacing:0 !important;
}

.indiv-control-proof{
  color:var(--muted) !important;
  font-size:12px !important;
  line-height:1.5 !important;
  white-space:normal !important;
  word-break:break-word !important;
  overflow-wrap:anywhere !important;
}

.indiv-control-empty{
  padding:12px !important;
  color:var(--muted) !important;
  background:#ffffff !important;
}

.indiv-control-proof .kw-baby{
  color:#b45309 !important;
  font-weight:800 !important;
}

.indiv-control-proof .kw-comm{
  color:#0369a1 !important;
  font-weight:800 !important;
}

body[data-theme="night"] .indiv-day-panel{
  background:linear-gradient(180deg, rgba(15,23,42,.84), rgba(15,23,42,.92)) !important;
  border-color:rgba(255,255,255,.08) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.28) !important;
}

body[data-theme="night"] .indiv-control-section{
  background:rgba(15,23,42,.78) !important;
  border-color:rgba(255,255,255,.08) !important;
}

body[data-theme="night"] .indiv-control-section-title{
  background:rgba(255,255,255,.04) !important;
  color:#e2e8f0 !important;
  border-bottom-color:rgba(255,255,255,.08) !important;
}

body[data-theme="night"] .indiv-control-entry,
body[data-theme="night"] .indiv-control-empty{
  background:transparent !important;
  border-top-color:rgba(255,255,255,.07) !important;
}

body[data-theme="night"] .indiv-control-name{
  color:#f8fafc !important;
}

body[data-theme="night"] .indiv-control-proof,
body[data-theme="night"] .indiv-control-empty{
  color:#cbd5e1 !important;
}

body[data-theme="night"] .indiv-control-proof .kw-baby{
  color:#fbbf24 !important;
}

body[data-theme="night"] .indiv-control-proof .kw-comm{
  color:#38bdf8 !important;
}


/* ================= PREVISIONNEL SOFA TOOLTIP ================= */
.home-next-days-sofa-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.home-next-days-sofa-tooltip{
  position:absolute;
  left:50%;
  bottom:calc(100% + 10px);
  transform:translateX(-50%);
  min-width:210px;
  max-width:260px;
  padding:12px 14px;
  border-radius:16px;
  background:#0b1530;
  color:#fff;
  box-shadow:0 16px 36px rgba(0,0,0,.28);
  font-size:12px;
  font-weight:800;
  line-height:1.7;
  white-space:pre-line;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  z-index:30;
}

.home-next-days-sofa-tooltip::after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  border-width:8px 8px 0 8px;
  border-style:solid;
  border-color:#0b1530 transparent transparent transparent;
}

.home-next-days-sofa-wrap:hover .home-next-days-sofa-tooltip,
.home-next-days-sofa-wrap:focus-within .home-next-days-sofa-tooltip{
  opacity:1;
  visibility:visible;
}


/* ================= PLAN MODULE ================= */
.plan-page-shell{display:flex;flex-direction:column;gap:18px;}
.plan-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px;}
.plan-page-head h2{margin:0 0 4px;}
.plan-page-actions{display:flex;align-items:center;gap:10px;}
.plan-module-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.9fr);gap:18px;align-items:start;}
.plan-stage-card,.plan-inspector-card{padding:16px;}
.plan-stage-card:hover,.plan-inspector-card:hover{transform:none;}
.plan-stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.plan-stage-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.plan-stage-filters input{width:220px;max-width:100%;}
.plan-floor-filter-group,.plan-floor-filter-dropdown{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;min-width:240px;}
.plan-floor-filter-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-width:240px;padding:10px 14px;border:1px solid rgba(0,0,0,0.08);border-radius:12px;background:rgba(255,255,255,0.96);font-size:13px;font-weight:700;color:#1f2937;cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,0.05);}
.plan-floor-filter-caret{font-size:12px;opacity:.72;transition:transform .16s ease;}
.plan-floor-filter-dropdown.open .plan-floor-filter-caret{transform:rotate(180deg);}
.plan-floor-filter-menu{position:absolute;top:calc(100% + 8px);left:0;display:none;flex-direction:column;min-width:240px;padding:6px;border-radius:12px;background:rgba(4,28,46,.96);border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 24px rgba(0,0,0,.22);z-index:40;}
.plan-floor-filter-dropdown.open .plan-floor-filter-menu{display:flex;}
.plan-floor-filter-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;border-radius:8px;color:rgba(236,243,249,.88);font-size:12px;font-weight:700;cursor:pointer;user-select:none;}
.plan-floor-filter-item + .plan-floor-filter-item{margin-top:2px;}
.plan-floor-filter-item input{width:auto !important;max-width:none !important;margin:0;accent-color:#ffffff;}
.plan-floor-filter-item-label{display:inline-flex;align-items:center;gap:8px;}
.plan-floor-filter-item.is-active,.plan-floor-filter-item:has(input:checked){background:rgba(255,255,255,.06);color:#fff;}
.plan-floor-filter-item:hover{background:rgba(255,255,255,.04);}
.plan-floor-filter-item:has(input:checked)::after{content:"✓";color:#f79b1f;font-weight:900;}
.plan-floor-filter-item:has(input:checked) input{opacity:0;position:absolute;pointer-events:none;}
.plan-stage{display:flex;flex-direction:column;gap:16px;}
.plan-floor-board{padding:14px;border:1px solid rgba(0,0,0,0.06);border-radius:16px;background:linear-gradient(180deg, rgba(0,61,92,.025) 0%, rgba(255,255,255,.98) 100%);}
.plan-floor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.plan-floor-head h3{margin:0;font-size:16px;}
.plan-floor-meta{color:var(--muted);font-size:12px;font-weight:700;}
.plan-floor-canvas{position:relative;min-height:340px;border-radius:14px;background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,250,.96)),linear-gradient(90deg, rgba(0,0,0,.03) 1px, transparent 1px),linear-gradient(rgba(0,0,0,.03) 1px, transparent 1px);background-size:auto,24px 24px,24px 24px;border:1px solid rgba(0,0,0,0.05);overflow:hidden;}
.plan-room-card{position:absolute;width:82px;min-height:58px;padding:8px 8px 6px;border-radius:14px;border:1px solid rgba(0,0,0,0.08);box-shadow:0 8px 18px rgba(15,23,42,.08);cursor:grab;user-select:none;transition:box-shadow .16s ease, transform .16s ease, border-color .16s ease;display:flex;flex-direction:column;justify-content:space-between;gap:5px;}
.plan-room-card:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(15,23,42,.12);}
.plan-room-card.is-selected{border-color:rgba(0,61,92,.36);box-shadow:0 0 0 2px rgba(0,61,92,.12), 0 12px 24px rgba(15,23,42,.12);}
.plan-room-card.is-locked{cursor:default;}
.plan-room-card.dragging{cursor:grabbing;box-shadow:0 18px 28px rgba(15,23,42,.18);z-index:20;}
.plan-room-number{font-size:15px;font-weight:900;color:#0f172a;line-height:1;}
.plan-room-type{font-size:11px;font-weight:800;color:#334155;letter-spacing:.04em;}
.plan-room-wrench{position:absolute;top:6px;right:7px;font-size:12px;line-height:1;filter:drop-shadow(0 1px 1px rgba(255,255,255,.35));}
.plan-room-lock{position:absolute;right:6px;top:6px;width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.72);display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;}
.plan-room-card.state-lib-prp{background:#e8f7ef;}
.plan-room-card.state-lib-sal{background:#fff1d6;}
.plan-room-card.state-occ-sal{background:#e7eef9;}
.plan-room-card.state-hs-prp{background:#f0e9ff;}
.plan-room-card.state-hs-sal{background:#fde3e3;}
.plan-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.plan-inspector-head h3{margin:0;font-size:16px;}
.plan-inspector-body{display:flex;flex-direction:column;gap:14px;min-height:240px;}
.plan-empty-state{color:var(--muted);font-size:12px;line-height:1.7;}
.plan-detail-hero{padding:14px;border-radius:14px;border:1px solid rgba(0,0,0,0.06);background:linear-gradient(180deg, rgba(0,61,92,.04), rgba(255,255,255,.98));}
.plan-detail-room{font-size:24px;font-weight:900;line-height:1;margin-bottom:6px;color:var(--brand);}
.plan-detail-type{font-size:12px;font-weight:800;letter-spacing:.08em;color:#334155;margin-bottom:6px;}
.plan-detail-badges{display:flex;flex-wrap:wrap;gap:8px;}
.plan-pill{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#eef2f7;border:1px solid #d9e1ea;font-size:11px;font-weight:800;color:#334155;}
.plan-action-row{display:flex;gap:10px;flex-wrap:wrap;}
.plan-meta-grid{display:grid;grid-template-columns:1fr;gap:8px;}
.plan-meta-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,0.06);background:#fff;}
.plan-meta-label{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}
.plan-meta-value{text-align:right;font-size:12px;font-weight:700;color:var(--dark);word-break:break-word;}
@media (max-width: 1080px){.plan-module-grid{grid-template-columns:1fr;}.plan-floor-canvas{min-height:300px;}}
@media (max-width: 720px){.plan-stage-filters{width:100%;}.plan-stage-filters input,.plan-stage-filters select{width:100%;}}


.plan-module-grid{display:grid;grid-template-columns:minmax(0,1.75fr) 380px;gap:18px;align-items:start;}
.plan-stage{display:block;}
.plan-floor-board-master{padding:14px;border:1px solid rgba(0,0,0,0.06);border-radius:16px;background:linear-gradient(180deg, rgba(0,61,92,.025) 0%, rgba(255,255,255,.98) 100%);}
.plan-master-canvas{position:relative;min-height:980px;border-radius:14px;background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,250,.96)),linear-gradient(90deg, rgba(0,0,0,.03) 1px, transparent 1px),linear-gradient(rgba(0,0,0,.03) 1px, transparent 1px);background-size:auto,24px 24px,24px 24px;border:1px solid rgba(0,0,0,0.05);overflow:hidden;}
.plan-floor-lane{position:absolute;left:8px;right:8px;border:1px dashed rgba(0,61,92,.16);border-radius:14px;background:linear-gradient(180deg, rgba(0,61,92,.02), rgba(255,255,255,.02));pointer-events:none;}
.plan-floor-lane-label{position:absolute;left:14px;top:12px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:rgba(0,61,92,.7);background:rgba(255,255,255,.9);padding:4px 8px;border-radius:999px;border:1px solid rgba(0,61,92,.08);}
.plan-inspector-card{position:sticky;top:18px;align-self:start;max-height:calc(100vh - 72px);overflow:auto;}
@media (max-width: 820px){.plan-module-grid{grid-template-columns:1fr;}.plan-inspector-card{position:static;max-height:none;overflow:visible;}}


/* ===== PLAN v3 compact ===== */
.plan-module-grid{display:block;}
.plan-stage-card-full{padding-bottom:14px;}
.plan-stage-card-full .plan-inspector-block{margin-top:14px;padding-top:14px;border-top:1px solid rgba(0,0,0,.06);}
.plan-inspector-body{min-height:0;}
.plan-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.plan-meta-row{min-width:0;}
.plan-room-card{width:30px;min-height:24px;padding:4px 2px 3px;border-radius:8px;gap:1px;box-shadow:0 3px 8px rgba(15,23,42,.05);font-family:inherit;}
.plan-room-card:hover{transform:none;box-shadow:0 6px 12px rgba(15,23,42,.08);}
.plan-room-number{font-size:8px;line-height:1.02;font-weight:600;letter-spacing:0;color:#1f2937;text-align:center;}
.plan-room-type{font-size:6.5px;line-height:1.02;font-weight:500;letter-spacing:0;color:#64748b;text-align:center;text-transform:none;}
.plan-room-wrench{top:3px;right:3px;font-size:8px;}
.plan-room-lock{display:none !important;}
.plan-floor-lane{border-radius:14px;}
.plan-floor-lane-label{font-size:10px;font-weight:600;}
.plan-floor-head h3{font-size:14px;font-weight:700;}
.plan-detail-room{font-size:18px;font-weight:600;}
.plan-detail-type{font-size:10px;font-weight:600;letter-spacing:0;text-transform:none;}
.plan-pill{font-weight:500;font-size:10px;min-height:24px;padding:4px 8px;}
@media (max-width: 980px){.plan-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 720px){.plan-meta-grid{grid-template-columns:1fr;}}


/* ===== PLAN V5 : étages modulables sans réduire les blocs ===== */
.plan-lane-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px;}
.plan-lane-control{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:linear-gradient(180deg,rgba(0,61,92,.03),rgba(255,255,255,.98));}
.plan-lane-control-label{min-width:58px;font-size:12px;font-weight:800;color:var(--brand);}
.plan-lane-control input[type="range"]{flex:1;padding:0;border:none;box-shadow:none;background:transparent;}
.plan-lane-control-value{min-width:48px;text-align:right;font-size:11px;font-weight:800;color:var(--muted);}
.plan-master-canvas{min-height:0 !important;height:auto;}
.plan-room-card{width:82px !important;min-height:58px !important;padding:8px 8px 6px !important;border-radius:14px !important;gap:5px !important;box-shadow:0 8px 18px rgba(15,23,42,.08) !important;}
.plan-room-card:hover{transform:translateY(-1px) !important;box-shadow:0 12px 24px rgba(15,23,42,.12) !important;}
.plan-room-number{font-size:15px !important;line-height:1 !important;font-weight:700 !important;letter-spacing:0 !important;color:#1f2937 !important;text-align:left !important;}
.plan-room-type{font-size:11px !important;line-height:1.05 !important;font-weight:600 !important;letter-spacing:.02em !important;color:#475569 !important;text-align:left !important;text-transform:none !important;}
.plan-room-wrench{top:6px !important;right:7px !important;font-size:12px !important;}
.plan-room-lock{display:none !important;}
.plan-floor-lane-label{font-size:11px !important;font-weight:700 !important;}
@media (max-width: 1100px){.plan-lane-controls{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 720px){.plan-lane-controls{grid-template-columns:1fr;}.plan-room-card{width:74px !important;min-height:54px !important;}}

/* ===== PLAN V5 FIX ===== */
.plan-module-grid{display:block !important;}
.plan-stage-card-full{padding:16px !important;}
.plan-stage-card-full .plan-inspector-block{margin-top:16px !important;padding-top:16px !important;border-top:1px solid rgba(0,0,0,0.06) !important;}
.plan-lane-controls{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:10px !important;margin:0 0 14px !important;}
.plan-lane-control{display:flex !important;align-items:center !important;gap:10px !important;padding:10px 12px !important;border:1px solid rgba(0,0,0,0.06) !important;border-radius:12px !important;background:linear-gradient(180deg,rgba(0,61,92,.03),rgba(255,255,255,.98)) !important;}
.plan-lane-control-label{min-width:58px !important;font-size:12px !important;font-weight:800 !important;color:var(--brand) !important;}
.plan-lane-control-value{min-width:52px !important;text-align:right !important;color:var(--muted) !important;font-size:11px !important;font-weight:700 !important;}
.plan-floor-board-master{padding:14px !important;border:1px solid rgba(0,0,0,0.06) !important;border-radius:16px !important;background:linear-gradient(180deg, rgba(0,61,92,.025) 0%, rgba(255,255,255,.98) 100%) !important;}
.plan-master-canvas{position:relative !important;min-height:980px !important;border-radius:14px !important;background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,247,250,.96)),linear-gradient(90deg, rgba(0,0,0,.03) 1px, transparent 1px),linear-gradient(rgba(0,0,0,.03) 1px, transparent 1px) !important;background-size:auto,24px 24px,24px 24px !important;border:1px solid rgba(0,0,0,0.05) !important;overflow:hidden !important;}
.plan-floor-lane{position:absolute !important;left:8px !important;right:8px !important;border:1px dashed rgba(0,61,92,.16) !important;border-radius:14px !important;background:linear-gradient(180deg, rgba(0,61,92,.02), rgba(255,255,255,.02)) !important;pointer-events:none !important;}
.plan-floor-lane-label{position:absolute !important;left:14px !important;top:12px !important;font-size:11px !important;font-weight:700 !important;letter-spacing:.04em !important;text-transform:none !important;color:rgba(0,61,92,.76) !important;background:rgba(255,255,255,.92) !important;padding:4px 8px !important;border-radius:999px !important;border:1px solid rgba(0,61,92,.08) !important;}
.plan-room-card{position:absolute !important;width:82px !important;min-height:58px !important;padding:8px 8px 6px !important;border-radius:14px !important;border:1px solid rgba(0,0,0,0.08) !important;box-shadow:0 8px 18px rgba(15,23,42,.08) !important;cursor:grab !important;user-select:none !important;transition:box-shadow .16s ease, transform .16s ease, border-color .16s ease !important;display:flex !important;flex-direction:column !important;justify-content:space-between !important;gap:5px !important;font-family:inherit !important;}
.plan-room-card:hover{transform:translateY(-1px) !important;box-shadow:0 12px 24px rgba(15,23,42,.12) !important;}
.plan-room-card.is-selected{border-color:rgba(0,61,92,.36) !important;box-shadow:0 0 0 2px rgba(0,61,92,.12), 0 12px 24px rgba(15,23,42,.12) !important;}
.plan-room-card.is-locked{cursor:default !important;}
.plan-room-card.dragging{cursor:grabbing !important;box-shadow:0 18px 28px rgba(15,23,42,.18) !important;z-index:20 !important;}
.plan-room-number{font-size:15px !important;line-height:1 !important;font-weight:800 !important;letter-spacing:0 !important;color:#1f2937 !important;text-align:left !important;}
.plan-room-type{font-size:11px !important;line-height:1.1 !important;font-weight:600 !important;letter-spacing:0 !important;color:#64748b !important;text-align:left !important;text-transform:none !important;}
.plan-inspector-body{min-height:0 !important;}
.plan-meta-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:8px !important;}
@media (max-width: 980px){.plan-lane-controls{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}.plan-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}

/* ===== FIXED COMPACT SIDEBAR: everything fits without sidebar scroll ===== */
@media (min-width: 921px){
  .app-sidebar{
    position:fixed !important;
    inset:0 auto 0 0 !important;
    height:100vh !important;
    max-height:100vh !important;
    overflow:hidden !important;
  }

  .app-main{
    margin-left:272px !important;
  }

  .sidebar-brand{
    padding:12px 18px 10px !important;
  }

  .sidebar-brand-row{
    grid-template-columns:42px minmax(0,1fr) !important;
    align-items:center !important;
    column-gap:10px !important;
  }

  .sidebar-brand-badge-wrap{
    width:42px !important;
    height:42px !important;
  }

  .sidebar-brand-badge{
    width:36px !important;
    height:36px !important;
    font-size:13px !important;
  }

  .sidebar-brand-sub{
    font-size:9.5px !important;
    line-height:1.12 !important;
    max-width:150px !important;
  }

  .sidebar-nav{
    flex:1 1 auto !important;
    min-height:0 !important;
    gap:1px !important;
    padding:9px 16px 6px !important;
  }

  .sidebar-section-label{
    margin:5px 0 6px !important;
    padding-left:14px !important;
    font-size:9.5px !important;
    letter-spacing:.22em !important;
  }

  .sidebar-section-label:not(:first-child){
    margin-top:18px !important;
    padding-top:14px !important;
  }

  .app-sidebar a,
  .app-sidebar .nav-dropdown-trigger{
    min-height:31px !important;
    padding:7px 14px !important;
    border-radius:11px !important;
    font-size:13px !important;
    line-height:1.05 !important;
  }

  .sidebar-icon,
  .sidebar-subicon{
    width:15px !important;
    min-width:15px !important;
    flex-basis:15px !important;
    height:15px !important;
  }

  .sidebar-icon svg,
  .sidebar-subicon svg{
    width:15px !important;
    height:15px !important;
  }

  .sidebar-parent-link{
    margin-bottom:0 !important;
  }

  .sidebar-dropdown .nav-dropdown-menu{
    margin:0 0 3px !important;
    gap:0 !important;
  }

  .sidebar-dropdown .nav-dropdown-menu a{
    min-height:22px !important;
    padding:3px 14px !important;
    font-size:11.5px !important;
    border-radius:8px !important;
  }

  .sidebar-pms-switcher{
    padding:6px 18px 8px !important;
  }

  .sidebar-pms-trigger{
    min-height:22px !important;
    padding:3px 8px !important;
    font-size:10px !important;
  }
}

@media (min-width: 921px) and (max-width: 980px){
  .app-sidebar{
    width:248px !important;
    flex-basis:248px !important;
  }

  .app-main{
    margin-left:248px !important;
  }
}

@media (min-width: 921px) and (max-height: 860px){
  .sidebar-brand{
    padding:9px 18px 8px !important;
  }

  .sidebar-brand-badge-wrap{
    width:36px !important;
    height:36px !important;
  }

  .sidebar-brand-badge{
    width:32px !important;
    height:32px !important;
    font-size:12px !important;
  }

  .sidebar-nav{
    padding-top:7px !important;
  }

  .sidebar-section-label:not(:first-child){
    margin-top:13px !important;
    padding-top:10px !important;
  }

  .app-sidebar a,
  .app-sidebar .nav-dropdown-trigger{
    min-height:29px !important;
    padding-top:6px !important;
    padding-bottom:6px !important;
  }

  .sidebar-dropdown .nav-dropdown-menu a{
    min-height:20px !important;
    padding-top:2px !important;
    padding-bottom:2px !important;
  }
}
@media (max-width: 720px){.plan-lane-controls{grid-template-columns:1fr !important;}.plan-meta-grid{grid-template-columns:1fr !important;}}

/* ===== PLAN V7 PATCH ===== */
.plan-stage{display:block !important;}
.plan-floor-canvas{position:relative; width:100%; overflow:auto;}
.plan-room-card{
  width:var(--plan-room-width,82px) !important;
  min-height:var(--plan-room-height,58px) !important;
  padding:7px 7px 5px !important;
  border-radius:12px !important;
  gap:4px !important;
}
.plan-room-number{
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.05 !important;
  letter-spacing:0 !important;
}
.plan-room-type{
  font-size:10px !important;
  font-weight:600 !important;
  line-height:1.1 !important;
  letter-spacing:0.02em !important;
  text-transform:none !important;
  opacity:.78 !important;
}
.plan-room-card.is-locked{cursor:default !important;}
.plan-settings-block{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(0,0,0,0.06);
}
.plan-settings-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.plan-settings-head h3{margin:0;font-size:16px;}
.plan-settings-controls{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.plan-size-control{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,0.06);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(0,61,92,.03),rgba(255,255,255,.98));
}
.plan-size-control span{font-size:12px;font-weight:700;color:var(--brand);}
.plan-size-control input[type="range"]{width:160px;padding:0;border:none;box-shadow:none;background:transparent;}
.plan-size-control strong{min-width:44px;text-align:right;font-size:11px;font-weight:800;color:var(--muted);}
.plan-lane-controls{margin:0 !important;}
@media (max-width: 980px){
  .plan-settings-controls{flex-direction:column;align-items:stretch;}
  .plan-size-control{justify-content:space-between;}
  .plan-size-control input[type="range"]{width:100%;}
}


/* ===== PLAN V8 FIX ===== */
.plan-inspector-block{margin-top:14px !important;padding-top:14px !important;border-top:1px solid rgba(0,0,0,0.06) !important;display:block !important;}
.plan-inspector-head{display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:12px !important;margin-bottom:12px !important;}
.plan-inspector-body{display:flex !important;flex-direction:column !important;gap:14px !important;min-height:120px !important;}
.plan-empty-state{display:block !important;opacity:1 !important;}
.plan-stage-card-full #plan-inspector{display:flex !important;flex-direction:column !important;gap:14px !important;}
.plan-room-card{width:var(--plan-room-width,82px) !important;min-height:var(--plan-room-height,58px) !important;}
.plan-size-control{min-width:260px !important;}
.plan-size-control input[type="range"]{width:180px !important;}
@media (max-width: 720px){.plan-size-control{min-width:0 !important;width:100% !important;}.plan-size-control input[type="range"]{width:100% !important;}}


/* ===== PLAN V9 PATCH ===== */
.plan-stage-card-full{display:flex !important;flex-direction:column !important;}
.plan-stage-card-full #plan-stage{order:1;}
.plan-stage-card-full .plan-settings-block{order:2;margin-top:14px !important;padding-top:14px !important;border-top:1px solid rgba(0,0,0,0.06) !important;}
.plan-stage-card-full .plan-inspector-block{order:3;margin-top:14px !important;padding-top:14px !important;border-top:1px solid rgba(0,0,0,0.06) !important;}
.plan-room-card{width:var(--plan-room-width,82px) !important;min-height:var(--plan-room-height,58px) !important;padding:6px 6px 5px !important;border-radius:12px !important;gap:3px !important;}
.plan-room-number{font-size:11px !important;line-height:1 !important;font-weight:600 !important;letter-spacing:0 !important;color:#1f2937 !important;text-align:left !important;}
.plan-room-type{font-size:8px !important;line-height:1.02 !important;font-weight:500 !important;letter-spacing:0 !important;color:#64748b !important;text-align:left !important;text-transform:none !important;}
.plan-size-control{min-width:300px !important;gap:10px !important;align-items:center !important;}
.plan-size-control input[type="range"]{width:240px !important;}
.plan-settings-controls{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:16px !important;flex-wrap:wrap !important;}
.plan-lane-controls{margin-top:12px !important;}
@media (max-width: 720px){.plan-size-control{min-width:0 !important;width:100% !important;}.plan-size-control input[type="range"]{width:100% !important;}}


.plan-page-head{margin-bottom:10px;}
.plan-stage-filters{justify-content:flex-start;}
.plan-floor-filter-group{min-width:0;}
.plan-floor-head{justify-content:flex-end;}
.plan-json-block{margin-top:16px;padding:16px 18px;border:1px solid rgba(0,0,0,.08);border-radius:18px;background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,252,.96));}
.plan-json-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.plan-json-head h3{margin:0;font-size:16px;}
.plan-json-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
#plan-import-json-file{display:none;}

.plan-elevator-card{
  position:absolute !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  padding:6px !important;
  border-radius:12px !important;
  border:1px solid rgba(0,61,92,.18) !important;
  background:linear-gradient(180deg, rgba(235,243,248,.96), rgba(218,231,239,.98)) !important;
  box-shadow:0 8px 18px rgba(15,23,42,.08) !important;
  color:#15374b !important;
  cursor:grab !important;
  user-select:none !important;
  z-index:3 !important;
}
.plan-elevator-card:hover{transform:translateY(-1px) !important;box-shadow:0 12px 24px rgba(15,23,42,.12) !important;}
.plan-elevator-card.is-locked{cursor:default !important;}
.plan-elevator-card.dragging{cursor:grabbing !important;box-shadow:0 18px 28px rgba(15,23,42,.18) !important;z-index:22 !important;}
.plan-elevator-title{font-size:11px !important;font-weight:800 !important;line-height:1.1 !important;text-align:center !important;pointer-events:none !important;}
.plan-elevator-code{font-size:12px !important;font-weight:900 !important;letter-spacing:.06em !important;pointer-events:none !important;}


/* ===== ARRIVÉES DASHBOARD COMPACT ===== */
.home-graph-card.home-graph-card-compact{
  padding: 6px 14px 8px !important;
}

.home-graph-card.home-graph-card-compact #home-arrivals-chart{
  height: 248px !important;
  min-height: 248px !important;
  margin-top: -8px !important;
  margin-bottom: -6px !important;
}

.home-graph-card.home-graph-card-compact .plot-container,
.home-graph-card.home-graph-card-compact .svg-container{
  height: 248px !important;
}


/* ===== ARRIVÉES DASHBOARD FIX SHAPE + REMOVE AUTO ===== */
.home-graph-card.home-graph-card-compact{
  border-radius:18px !important;
  overflow:hidden !important;
  padding:6px 14px 6px !important;
}

.home-graph-card.home-graph-card-compact #home-arrivals-chart{
  height:238px !important;
  min-height:238px !important;
  margin-top:-8px !important;
  margin-bottom:-10px !important;
}

.home-graph-card.home-graph-card-compact .plot-container,
.home-graph-card.home-graph-card-compact .svg-container,
.home-graph-card.home-graph-card-compact .main-svg{
  height:238px !important;
}

.home-graph-card.home-graph-card-compact .plot-container,
.home-graph-card.home-graph-card-compact .svg-container{
  background:transparent !important;
}

.home-graph-card.home-graph-card-compact .rangeselector .button:last-child,
.home-graph-card.home-graph-card-compact .rangeselector [data-title="Auto"]{
  display:none !important;
}

/* ===== HOTFIX ARRIVÉES v12 — slider fully visible ===== */
.home-graph-card.home-graph-card-compact{
  border-radius:18px !important;
  overflow:visible !important;
  padding:8px 14px 12px !important;
  min-height:392px !important;
  box-sizing:border-box !important;
}

.home-graph-card.home-graph-card-compact #home-arrivals-chart{
  display:block !important;
  height:332px !important;
  min-height:332px !important;
  margin-top:-4px !important;
  margin-bottom:0 !important;
}

.home-graph-card.home-graph-card-compact .js-plotly-plot,
.home-graph-card.home-graph-card-compact .plot-container,
.home-graph-card.home-graph-card-compact .svg-container,
.home-graph-card.home-graph-card-compact .main-svg{
  height:332px !important;
  min-height:332px !important;
}

/* ===== HOTFIX ARRIVÉES v13 — force visible rangeslider ===== */
.home-graph-card.home-graph-card-compact{
  padding:10px 14px 16px !important;
  min-height:430px !important;
  overflow:visible !important;
}

.home-graph-card.home-graph-card-compact #home-arrivals-chart{
  display:block !important;
  height:372px !important;
  min-height:372px !important;
  margin:0 !important;
  padding-bottom:14px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}

.home-graph-card.home-graph-card-compact .js-plotly-plot,
.home-graph-card.home-graph-card-compact .plot-container,
.home-graph-card.home-graph-card-compact .svg-container,
.home-graph-card.home-graph-card-compact .main-svg{
  height:372px !important;
  min-height:372px !important;
  overflow:visible !important;
}

.home-graph-card.home-graph-card-compact .rangeslider,
.home-graph-card.home-graph-card-compact .rangeplot,
.home-graph-card.home-graph-card-compact .rangeplot-container{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}


.plan-stage-card-full .plan-operational-inputs{order:4;margin-top:14px !important;padding-top:14px !important;border-top:1px solid rgba(0,0,0,0.06) !important;display:flex;flex-direction:column;gap:14px;}
.plan-operational-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.plan-operational-head h3,.plan-night-input-head h3{margin:0;font-size:16px;}
.plan-operational-imports{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.plan-sources-strip{min-width:0 !important;max-width:none !important;width:100%;}
.plan-night-input-block{padding:16px 18px;border:1px solid rgba(0,0,0,.08);border-radius:18px;background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,252,.96));display:flex;flex-direction:column;gap:12px;}
.plan-night-input-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.plan-night-input-label{font-size:12px;font-weight:700;color:#526271;}
.plan-night-textarea{width:100%;min-height:136px;padding:14px 16px;border-radius:16px;border:1px solid rgba(15,39,64,.12);background:rgba(255,255,255,.92);font:inherit;line-height:1.45;color:#10212f;resize:vertical;box-shadow:inset 0 1px 0 rgba(255,255,255,.7);transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;}
.plan-night-textarea:focus{outline:none;border-color:rgba(0,61,92,.36);box-shadow:0 0 0 3px rgba(15,39,64,.08);background:#fff;}
@media (max-width: 920px){.plan-operational-imports{grid-template-columns:1fr;}}


/* ===== PLAN COMPACT OPERATIONAL PROPOSAL ===== */
.plan-page-head{margin-bottom:8px !important;}
.plan-page-head p{margin-top:2px !important;}
.plan-floor-board,
.plan-floor-board-master{padding:10px !important;border-radius:14px !important;}
.plan-floor-head{margin-bottom:8px !important;}
.plan-floor-meta{font-size:11px !important;}
.plan-floor-canvas{min-height:0 !important;border-radius:12px !important;background-size:auto,18px 18px,18px 18px !important;}
.plan-floor-lane{left:6px !important;right:6px !important;border-radius:10px !important;}
.plan-floor-lane-label{top:8px !important;left:10px !important;padding:3px 7px !important;font-size:10px !important;font-weight:800 !important;}
.plan-room-card{width:var(--plan-room-width,72px) !important;min-height:var(--plan-room-height,42px) !important;padding:5px 6px 4px !important;border-radius:8px !important;gap:2px !important;box-shadow:0 4px 10px rgba(15,23,42,.06) !important;}
.plan-room-card:hover{transform:none !important;box-shadow:0 6px 14px rgba(15,23,42,.08) !important;}
.plan-room-number{font-size:13px !important;line-height:1 !important;font-weight:800 !important;}
.plan-room-type{font-size:9px !important;line-height:1 !important;font-weight:600 !important;color:#6b7280 !important;}
.plan-room-wrench{position:absolute !important;width:20px !important;min-width:20px !important;max-width:20px !important;height:20px !important;min-height:20px !important;max-height:20px !important;box-sizing:border-box !important;display:flex !important;align-items:center !important;justify-content:center !important;flex:0 0 20px !important;font-size:11px !important;font-weight:900 !important;line-height:1 !important;border-radius:999px !important;color:#fff !important;box-shadow:0 1px 3px rgba(15,23,42,.12) !important;filter:none !important;overflow:hidden !important;contain:paint !important;}
.plan-room-wrench-baseline{top:-8px !important;right:-8px !important;background:#2563eb !important;border:1px solid rgba(29,78,216,.28) !important;color:#fff !important;}
.plan-room-wrench-current{bottom:-8px !important;right:-8px !important;background:#ff6a00 !important;border:1px solid rgba(255,106,0,.34) !important;color:#fff !important;}
.plan-room-card.is-night-target{border-color:rgba(15,23,42,.38) !important;box-shadow:0 0 0 2px rgba(15,23,42,.12), 0 6px 14px rgba(15,23,42,.08) !important;}
.plan-room-card.is-night-target::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(15,23,42,.22);}
.plan-room-night{position:absolute;top:-6px !important;left:-6px !important;width:16px !important;height:16px !important;display:flex !important;align-items:center !important;justify-content:center !important;font-size:9px !important;font-weight:800 !important;line-height:1 !important;border-radius:999px !important;background:#111827 !important;color:#fff !important;border:1px solid rgba(17,24,39,.28) !important;box-shadow:0 1px 3px rgba(15,23,42,.12) !important;}
.plan-room-wrench{cursor:pointer !important;transition:transform .12s ease,opacity .12s ease !important;}
.plan-room-wrench:hover{transform:scale(1.08) !important;}
.plan-room-wrench.is-crossed{opacity:1 !important;position:absolute !important;isolation:isolate !important;color:#fff !important;box-shadow:0 1px 3px rgba(15,23,42,.12) !important;transform:none !important;}
.plan-room-wrench-baseline.is-crossed{background-color:#2563eb !important;}
.plan-room-wrench-current.is-crossed{background-color:#ff6a00 !important;}
.plan-room-wrench.is-crossed::before,
.plan-room-wrench.is-crossed::after{content:'' !important;position:absolute !important;left:2px !important;right:2px !important;top:9px !important;height:3px !important;background:#111827 !important;border-radius:999px !important;pointer-events:none !important;display:block !important;transform-origin:center center !important;}
.plan-room-wrench.is-crossed::before{transform:rotate(45deg) !important;}
.plan-room-wrench.is-crossed::after{transform:rotate(-45deg) !important;}
.plan-elevator-card{padding:4px !important;border-radius:10px !important;box-shadow:0 4px 10px rgba(15,23,42,.06) !important;}
.plan-elevator-title{font-size:10px !important;font-weight:800 !important;}
.plan-stage-card-full .plan-settings-block,
.plan-stage-card-full .plan-inspector-block{margin-top:10px !important;padding-top:10px !important;}

/* ===== PLAN ROOMSTATE DERIVED COLORS ===== */
.plan-room-card.plan-mode-blocked{background:#dbeafe !important;}
.plan-room-card.plan-mode-free{background:#e5e7eb !important;}
.plan-room-card.plan-mode-present{background:#dcfce7 !important;}


.plan-stage-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.plan-focus-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:12px;border:1px solid rgba(0,0,0,0.08);background:rgba(255,255,255,.96);font-size:13px;font-weight:800;color:#334155;cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,.05);transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;}
.plan-focus-toggle:hover{border-color:rgba(0,61,92,.18);box-shadow:0 10px 26px rgba(15,23,42,.08);}
.plan-focus-toggle.is-active{background:rgba(0,61,92,.08);border-color:rgba(0,61,92,.18);color:#003d5c;}
.plan-fade-slider-wrap{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 12px;border-radius:12px;border:1px solid rgba(0,0,0,0.08);background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(15,23,42,.05);}
.plan-fade-slider-label{font-size:12px;font-weight:800;color:#334155;white-space:nowrap;}
.plan-fade-slider{width:110px;accent-color:#003d5c;}
.plan-fade-slider-value{min-width:38px;text-align:right;font-size:12px;font-weight:800;color:#003d5c;}
.plan-room-card.is-faded{opacity:var(--plan-fade-opacity, .22) !important;filter:saturate(.55) !important;}


.plan-type-balance{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.plan-type-balance-pill{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:6px 10px;
  border:1px solid rgba(0,61,92,.14);
  border-radius:999px;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.plan-type-balance-code{
  font-size:11px;
  font-weight:800;
  letter-spacing:.2px;
  color:var(--brand);
}
.plan-type-balance-ratio{
  font-size:12px;
  font-weight:900;
  color:var(--dark);
  white-space:nowrap;
}
.plan-type-balance-current{
  color:var(--brand);
}
.plan-type-balance-sep,
.plan-type-balance-min{
  color:var(--muted);
}
.plan-type-balance-delta{
  margin-left:6px;
  font-size:11px;
  font-weight:900;
  color:var(--muted);
}
.plan-type-balance-pill.is-short .plan-type-balance-delta{
  color:#dc2626;
}
.plan-type-balance-pill.is-covered .plan-type-balance-delta{
  color:#16a34a;
}
.plan-open-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  width:100%;
  margin-top:8px;
  padding:10px 12px;
  border:1px solid rgba(0,61,92,.08);
  border-radius:14px;
  background:rgba(255,255,255,.78);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}
.plan-open-list-title{
  font-size:12px;
  font-weight:900;
  color:var(--brand);
}
.plan-open-list-group{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:flex-start;
  font-size:12px;
}
.plan-open-list-floor{
  min-width:34px;
  font-weight:900;
  color:#64748b;
}
.plan-open-list-rooms{
  font-weight:800;
  color:#1f2937;
}
.plan-open-list-empty{
  font-size:12px;
  font-weight:700;
  color:var(--muted);
}
.plan-open-list-action .plan-open-list-title{
  color:#0f172a;
}
.plan-open-list-action{
  background:rgba(255,255,255,.9);
}

.plan-lists-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:stretch;margin:8px 0 14px;}
.plan-lists-row-secondary{margin-top:-4px;}
.plan-night-input-block-inline{margin:0;min-height:100%;}
.plan-lists-row .plan-open-list,
.plan-lists-row .plan-night-input-block{margin:0;min-height:100%;}
.plan-lists-row .plan-open-list{width:100%;justify-content:flex-start;}
.plan-lists-row .plan-night-textarea{min-height:120px;}
@media (max-width: 920px){.plan-lists-row{grid-template-columns:1fr;}}

/* FIX: align orange C with other markers and keep blue visible when both exist */
.plan-room-wrench-baseline{top:-8px !important;right:-8px !important;left:auto !important;bottom:auto !important;z-index:2 !important;}
.plan-room-wrench-current{top:-8px !important;right:-8px !important;left:auto !important;bottom:auto !important;z-index:3 !important;}
.plan-room-card .plan-room-wrench + .plan-room-wrench.plan-room-wrench-current{top:-8px !important;right:-8px !important;}


.plan-visual-controls{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;}
.plan-control-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border:1px solid rgba(0,0,0,0.08);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(15,23,42,.05);}
.plan-control-label{font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-right:2px;}
.plan-chip-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.10);background:#f8fafc;color:#475569;font-size:12px;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;}
.plan-chip-toggle:hover{transform:translateY(-1px);border-color:rgba(0,61,92,.18);}
.plan-chip-toggle.is-active{background:#003d5c;color:#fff;border-color:#003d5c;}
.plan-type-balance.is-hidden,.plan-open-list.is-hidden{display:none !important;}
.plan-open-list.is-compact{gap:4px;padding:8px 10px;}
.plan-open-list.is-compact .plan-open-list-title{font-size:11px;}
.plan-open-list.is-compact .plan-open-list-group{font-size:11px;gap:6px;}
.plan-open-list.is-compact .plan-open-list-floor{min-width:30px;}
.plan-room-wrench.is-crossed.is-crossed-hidden::before,
.plan-room-wrench.is-crossed.is-crossed-hidden::after{display:none !important;}
@media (max-width: 980px){.plan-visual-controls{width:100%;}.plan-control-group{width:100%;}}


.plan-section-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:999px;background:rgba(0,61,92,.08);color:var(--brand);font-size:18px;font-weight:900;line-height:1;cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease;}
.plan-section-toggle:hover{background:rgba(0,61,92,.14);}
.plan-section-toggle:active{transform:scale(.96);}
.plan-section-body{display:block;}
.plan-settings-block.is-collapsed,
.plan-inspector-block.is-collapsed{padding-bottom:0;}
.plan-settings-block.is-collapsed .plan-settings-head,
.plan-inspector-block.is-collapsed .plan-inspector-head{margin-bottom:0 !important;}


/* FIX: replace unreadable round badges with internal diagonal color bars */
.plan-room-card{overflow:hidden !important;}
.plan-room-wrench,
.plan-room-night{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  left:auto !important;
  bottom:auto !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  max-width:24px !important;
  max-height:24px !important;
  display:block !important;
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  overflow:visible !important;
  contain:none !important;
  cursor:pointer !important;
}
.plan-room-wrench::before,
.plan-room-night::before{
  content:'' !important;
  position:absolute !important;
  width:30px !important;
  height:8px !important;
  right:-8px !important;
  border-radius:999px !important;
  transform:rotate(45deg) !important;
  box-shadow:none !important;
}
.plan-room-wrench-baseline{z-index:2 !important;}
.plan-room-wrench-current{z-index:3 !important;}
.plan-room-night{z-index:4 !important; left:auto !important;}
.plan-room-wrench-baseline::before{
  top:4px !important;
  background:#2563eb !important;
}
.plan-room-wrench-current::before{
  top:12px !important;
  background:#ff6a00 !important;
}
.plan-room-night::before{
  top:8px !important;
  background:#111827 !important;
}
.plan-room-wrench:hover,
.plan-room-night:hover{transform:none !important;}
.plan-room-wrench.is-crossed::after{
  content:'' !important;
  position:absolute !important;
  width:20px !important;
  height:3px !important;
  top:11px !important;
  right:0px !important;
  background:#111827 !important;
  border-radius:999px !important;
  transform:rotate(45deg) !important;
  pointer-events:none !important;
}
.plan-room-wrench.is-crossed::before{
  box-shadow:inset 0 0 0 1px rgba(17,24,39,.16) !important;
}
.plan-room-wrench.is-crossed.is-crossed-hidden::after{display:none !important;}

/* ===== PLAN SOFA — BADGES UI V2 ===== */
.plan-room-card{
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  align-items:flex-start !important;
  text-align:left !important;
  overflow:visible !important;
}

.plan-room-number,
.plan-room-type{
  width:100% !important;
  text-align:left !important;
}

.plan-room-number{
  align-self:flex-start !important;
  padding-right:20px !important;
}

.plan-room-type{
  align-self:flex-start !important;
  padding-right:20px !important;
}

.plan-room-badge{
  position:absolute !important;
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  font-size:10px !important;
  font-weight:900 !important;
  line-height:1 !important;
  color:#fff !important;
  box-shadow:0 1px 3px rgba(15,23,42,.16) !important;
  border:1px solid rgba(15,23,42,.14) !important;
  z-index:4 !important;
  overflow:hidden !important;
}

.plan-room-badge-detected{
  top:-7px !important;
  right:-7px !important;
  background:#2563eb !important;
  cursor:pointer !important;
}

.plan-room-badge-night{
  right:-7px !important;
  bottom:-7px !important;
  background:#111827 !important;
}

.plan-room-badge-manual{
  right:-7px !important;
  bottom:-7px !important;
  background:#ff7a00 !important;
  cursor:pointer !important;
}

.plan-room-badge-detected.is-crossed{
  color:#000 !important;
  font-size:15px !important;
  line-height:1 !important;
  font-weight:900 !important;
  text-shadow:0 0 1px rgba(255,255,255,.35) !important;
  box-shadow:0 1px 3px rgba(15,23,42,.16) !important, inset 0 0 0 1px rgba(0,0,0,.22) !important;
}

.plan-room-badge-detected.is-crossed::before,
.plan-room-badge-detected.is-crossed::after{display:none !important; content:none !important;}
.plan-room-badge-detected.is-crossed.is-crossed-hidden::before,
.plan-room-badge-detected.is-crossed.is-crossed-hidden::after{display:none !important;}

/* Contrôle des réservations */
.reservation-control-page{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.reservation-control-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
.reservation-control-hero h1{
  margin:0 0 8px;
  font-size:30px;
  line-height:1.1;
  color:var(--dark);
}
.reservation-control-hero p{
  margin:0;
  color:var(--muted);
  font-weight:700;
}
.reservation-control-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(0,61,92,.10);
  box-shadow:0 8px 22px rgba(15,23,42,.06);
  color:#526173;
  font-size:13px;
  font-weight:800;
}
.reservation-control-dot{
  width:9px;
  height:9px;
  border-radius:999px;
  background:#f59e0b;
  box-shadow:0 0 0 4px rgba(245,158,11,.14);
}
.reservation-control-tabs{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  padding:5px;
  gap:4px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(0,61,92,.10);
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
.reservation-control-tab{
  border:none;
  border-radius:12px;
  padding:10px 18px;
  background:transparent;
  color:#64748b;
  font-weight:900;
  cursor:pointer;
}
.reservation-control-tab.is-active{
  background:linear-gradient(135deg,#0b3d5c,#155f86);
  color:#fff;
  box-shadow:0 8px 16px rgba(0,61,92,.18);
}
.reservation-control-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.reservation-control-card{
  padding:20px;
}
.reservation-control-card-wide{
  grid-column:1 / -1;
}
.reservation-control-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:16px;
}
.reservation-control-card h2{
  margin:0 0 6px;
  font-size:17px;
  color:var(--dark);
}
.reservation-control-card p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}
.reservation-control-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  padding:6px 10px;
  border-radius:999px;
  background:#e9f2ff;
  color:#2563eb;
  font-size:12px;
  font-weight:900;
}
.reservation-control-badge.is-soft{
  background:#fff3e7;
  color:#b45309;
}
.reservation-control-empty{
  padding:18px;
  border-radius:14px;
  background:#f8fafc;
  border:1px dashed rgba(100,116,139,.28);
  color:#64748b;
  font-weight:700;
}
.reservation-control-ai-box{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-top:12px;
  padding:14px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(0,61,92,.10);
}
.reservation-control-ai-box strong{
  display:block;
  color:var(--dark);
  font-size:14px;
  margin-bottom:3px;
}
.reservation-control-ai-box span{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:800;
}
.reservation-control-ai-btn{
  border:none;
  border-radius:12px;
  padding:10px 14px;
  background:linear-gradient(135deg,#ff8a00,#ffb000);
  color:#132335;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(255,138,0,.18);
  white-space:nowrap;
}

/* ===== HOTEL IA HUB ===== */
.hotel-ia-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px;
  margin-bottom:18px;
}
.hotel-ia-kicker{
  margin:0 0 6px;
  color:#0b5f86;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
}
.hotel-ia-hero h2{
  margin:0 0 8px;
  font-size:30px;
}
.hotel-ia-hero p{
  margin:0;
  max-width:860px;
  color:#536579;
  font-weight:700;
  line-height:1.45;
}
.hotel-ia-readiness{
  flex:0 0 auto;
  min-width:132px;
  border-radius:20px;
  padding:16px 18px;
  background:linear-gradient(135deg,#eef8ff,#f7fbff);
  border:1px solid #dbeafe;
  text-align:center;
}
.hotel-ia-readiness strong{
  display:block;
  font-size:34px;
  line-height:1;
  color:#0b3d5c;
}
.hotel-ia-readiness span{
  display:block;
  margin-top:6px;
  font-size:12px;
  color:#64748b;
  font-weight:900;
}
.hotel-ia-flow,
.hotel-ia-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-bottom:18px;
}
.hotel-ia-grid{
  grid-template-columns:1fr 1fr;
}
.hotel-ia-step,
.hotel-ia-panel{
  padding:22px;
}
.hotel-ia-step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:#0b3d5c;
  color:white;
  font-weight:900;
  margin-bottom:12px;
}
.hotel-ia-step h3,
.hotel-ia-panel h3{
  margin:0 0 8px;
  font-size:19px;
}
.hotel-ia-step p,
.hotel-ia-panel p{
  margin:0 0 14px;
  color:#536579;
  font-weight:700;
  line-height:1.45;
}
.hotel-ia-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}
.hotel-ia-stats.is-wide{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.hotel-ia-stat{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:14px;
  padding:12px;
}
.hotel-ia-stat span{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:900;
}
.hotel-ia-stat strong{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:22px;
  line-height:1.1;
}
.hotel-ia-stat small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-weight:800;
}
.hotel-ia-source-list,
.hotel-ia-signal-list{
  list-style:none;
  padding:0;
  margin:16px 0 0;
  display:grid;
  gap:10px;
}
.hotel-ia-source-list li,
.hotel-ia-signal-list li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:14px;
  padding:12px 14px;
}
.hotel-ia-source-list li.is-ok{
  border-color:#bbf7d0;
  background:#f0fdf4;
}
.hotel-ia-source-list li.is-empty{
  color:#64748b;
}
.hotel-ia-source-list span,
.hotel-ia-signal-list span{
  color:#0f172a;
  font-weight:900;
}
.hotel-ia-source-list strong{
  color:#0b3d5c;
  font-size:13px;
}
.hotel-ia-source-list small,
.hotel-ia-signal-list small{
  color:#64748b;
  font-weight:800;
  text-align:right;
}
.hotel-ia-empty{
  border:1px dashed #cbd5e1;
  border-radius:14px;
  padding:16px;
  color:#64748b;
  font-weight:800;
}
.hotel-ia-roadmap{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.hotel-ia-roadmap div{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:16px;
  padding:14px;
}
.hotel-ia-roadmap strong,
.hotel-ia-roadmap span{
  display:block;
}
.hotel-ia-roadmap strong{
  color:#0f172a;
  margin-bottom:6px;
}
.hotel-ia-roadmap span{
  color:#64748b;
  font-weight:800;
  line-height:1.35;
}
@media (max-width:1100px){
  .hotel-ia-flow,
  .hotel-ia-grid,
  .hotel-ia-roadmap{
    grid-template-columns:1fr;
  }
  .hotel-ia-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  .hotel-ia-stats,
  .hotel-ia-stats.is-wide{
    grid-template-columns:1fr 1fr;
  }
}

/* ===== ORIS ASSISTANT / ALTERNATIVE UI ===== */
.assistant-page{
  padding:0 !important;
  min-height:100vh;
  background:#020817;
}
body.assistant-mode .app-sidebar{
  display:none !important;
}
body.assistant-mode .app-main{
  margin-left:0 !important;
  width:100% !important;
}
.assistant-shell{
  min-height:100vh;
  padding:28px 42px 38px;
  color:#f8fafc;
  background:
    radial-gradient(circle at 78% 28%, rgba(37,99,235,.28), transparent 34%),
    radial-gradient(circle at 20% 12%, rgba(14,165,233,.12), transparent 30%),
    linear-gradient(135deg,#020817 0%,#061225 45%,#020817 100%);
}
.assistant-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:24px;
}
.assistant-menu-button,
.assistant-core-button,
.assistant-date-pill{
  border:1px solid rgba(148,163,184,.22);
  background:rgba(15,23,42,.64);
  color:#f8fafc;
  box-shadow:0 14px 34px rgba(0,0,0,.22);
  backdrop-filter:blur(18px);
}
.assistant-menu-button{
  width:56px;
  height:56px;
  border-radius:16px;
  font-size:26px;
  cursor:pointer;
}
.assistant-core-button{
  width:54px;
  height:54px;
  min-height:54px;
  border-radius:18px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  font-weight:900;
  cursor:pointer;
}
.assistant-date-pill{
  border-radius:999px;
  padding:16px 26px;
  font-size:16px;
  font-weight:800;
}
.assistant-main{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);
  gap:50px;
  align-items:center;
  max-width:1380px;
  margin:0 auto;
}
.assistant-main-simple{
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
}
.assistant-main-daily{
  grid-template-columns:minmax(340px, 620px) minmax(520px, 1fr) 300px;
  gap:34px;
  align-items:start;
  max-width:1640px;
}
.assistant-day-board{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:18px;
  min-width:0;
}
.assistant-daily-panel{
  min-height:420px;
  padding:22px;
  border:1px solid rgba(148,163,184,.20);
  border-radius:24px;
  background:linear-gradient(180deg, rgba(15,32,58,.78), rgba(7,18,34,.82));
  box-shadow:0 22px 60px rgba(0,0,0,.18);
  overflow:hidden;
}
.assistant-daily-panel-luna{
  background:linear-gradient(180deg, rgba(19,43,76,.82), rgba(8,20,38,.86));
}
.assistant-daily-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
  color:#fff;
}
.assistant-daily-title span{font-size:18px;font-weight:900;}
.assistant-daily-title em{font-style:normal;font-size:12px;font-weight:800;color:#bfdbfe;}
.assistant-daily-line{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:13px 0;
  border-bottom:1px solid rgba(148,163,184,.12);
}
.assistant-daily-line:last-child{border-bottom:none;}
.assistant-daily-line strong{color:#60a5fa;font-size:13px;text-transform:uppercase;letter-spacing:.02em;}
.assistant-daily-line span{color:#e5edf7;font-size:13px;line-height:1.45;}
.assistant-luna-confirm{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  margin:0 2px;
  border-radius:999px;
  font-size:11px;
  font-weight:1000;
  line-height:1;
  vertical-align:middle;
}
.assistant-luna-confirm.is-ok{
  background:#dcfce7;
  color:#16a34a;
}
.assistant-luna-confirm.is-ko{
  background:#fee2e2;
  color:#dc2626;
}
.assistant-luna-card{
  padding:14px 16px;
  border:1px solid rgba(148,163,184,.16);
  border-radius:16px;
  background:rgba(255,255,255,.94);
  color:#0f2740;
  box-shadow:0 12px 28px rgba(0,0,0,.10);
}
.assistant-luna-card + .assistant-luna-card{margin-top:12px;}
.assistant-luna-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px;}
.assistant-luna-head strong{font-size:13px;font-weight:900;}
.assistant-luna-head span{color:#2563eb;font-size:12px;font-weight:900;white-space:nowrap;}
.assistant-luna-card p{margin:0 0 7px;font-size:13px;line-height:1.35;font-weight:800;}
.assistant-luna-card small{display:block;color:#334155;font-size:12px;line-height:1.35;font-weight:700;}
.assistant-empty-soft{
  padding:18px;
  border:1px dashed rgba(148,163,184,.24);
  border-radius:16px;
  color:#cbd5e1;
  font-size:13px;
  font-weight:700;
}
.assistant-right-compact{gap:18px;}
.assistant-bot-small{transform:scale(.72);transform-origin:top center;margin-bottom:-42px;}
.assistant-simulation-box-small{min-height:150px;}
.assistant-hello{
  margin:20px 0 28px;
}
.assistant-eyebrow{
  margin:0 0 8px;
  color:#60a5fa;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
}
.assistant-hello h1{
  margin:0 0 12px;
  font-size:40px;
  line-height:1.04;
  letter-spacing:-.04em;
}
.assistant-hello p{
  margin:0;
  color:#cbd5e1;
  font-size:18px;
  line-height:1.45;
  max-width:760px;
}
.assistant-boost-card,
.assistant-results-card,
.assistant-chat-box{
  border:1px solid rgba(148,163,184,.18);
  background:linear-gradient(135deg, rgba(15,23,42,.76), rgba(15,23,42,.36));
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  backdrop-filter:blur(22px);
}
.assistant-boost-card{
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  align-items:center;
  gap:24px;
  max-width:760px;
  border-radius:24px;
  padding:26px 30px;
  margin-bottom:36px;
}
.assistant-import-state,
.assistant-boost-button{
  display:flex;
  align-items:center;
  gap:18px;
}
.assistant-db-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  border-radius:18px;
  background:rgba(37,99,235,.14);
  color:#3b82f6;
  font-size:38px;
  font-weight:900;
}
.assistant-import-state strong,
.assistant-boost-button strong{
  display:block;
  color:#f8fafc;
  font-size:20px;
  line-height:1.1;
}
.assistant-import-state small,
.assistant-boost-button small{
  display:block;
  margin-top:6px;
  color:#cbd5e1;
  font-size:14px;
  font-weight:800;
}
.assistant-import-state small.is-green{color:#22c55e;}
.assistant-import-state small.is-warn{color:#fbbf24;}
.assistant-boost-separator{
  width:1px;
  height:58px;
  background:rgba(148,163,184,.18);
}
.assistant-boost-button{
  width:100%;
  border:none;
  background:transparent;
  color:#f8fafc;
  text-align:left;
  cursor:pointer;
  padding:0;
}
.assistant-boost-button span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:20px;
  color:#60a5fa;
  font-size:46px;
  text-shadow:0 0 28px rgba(59,130,246,.8);
}
.assistant-boost-button:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.assistant-ops-card{
  max-width:760px;
  margin:-12px 0 28px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:24px;
  background:linear-gradient(135deg, rgba(15,23,42,.72), rgba(15,23,42,.34));
  box-shadow:0 18px 56px rgba(0,0,0,.22);
  backdrop-filter:blur(18px);
  overflow:hidden;
}
.assistant-ops-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:12px;
  border-bottom:1px solid rgba(148,163,184,.14);
}
.assistant-ops-tabs button{
  border:none;
  border-radius:14px;
  padding:10px 16px;
  background:rgba(15,23,42,.42);
  color:#cbd5e1;
  font-weight:900;
  cursor:pointer;
}
.assistant-ops-tabs button.is-active{
  background:#f59e0b;
  color:#08111f;
  box-shadow:0 10px 26px rgba(245,158,11,.25);
}
.assistant-ops-body{
  padding:16px;
  max-height:360px;
  overflow:auto;
}
.assistant-ops-check-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.assistant-ops-check-column{
  min-width:0;
  border:1px solid rgba(148,163,184,.16);
  border-radius:18px;
  background:rgba(8,18,34,.48);
  overflow:hidden;
}
.assistant-ops-check-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  background:rgba(255,255,255,.06);
  color:#f8fafc;
}
.assistant-ops-check-head strong{font-size:14px;font-weight:900;}
.assistant-ops-check-head span{font-size:12px;font-weight:900;color:#bfdbfe;}
.assistant-ops-check-list{
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.assistant-ops-check-item{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:10px;
  align-items:start;
  color:#e5edf7;
  font-size:13px;
  line-height:1.25;
  font-weight:800;
  cursor:pointer;
}
.assistant-ops-check-item input{margin-top:1px;}
.assistant-ops-check-item input:checked + span{
  color:#94a3b8;
  text-decoration:line-through;
}
.assistant-ops-vcc-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.assistant-ops-vcc-item{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:14px;
  background:rgba(8,18,34,.50);
  color:#e5edf7;
}
.assistant-ops-vcc-item span{
  color:#fbbf24;
  font-size:12px;
  font-weight:900;
}
.assistant-ops-vcc-item strong{
  font-size:13px;
  font-weight:900;
}
.assistant-ops-more{
  padding:10px 12px;
  color:#bfdbfe;
  font-size:12px;
  font-weight:900;
}
.assistant-ops-forecast-list,
.assistant-ops-assignment-list{
  display:flex;
  flex-direction:column;
  gap:9px;
}
.assistant-ops-forecast-item{
  display:grid;
  grid-template-columns:92px 1fr;
  align-items:center;
  gap:12px;
  padding:11px 12px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  background:rgba(8,18,34,.50);
}
.assistant-ops-forecast-item strong{
  color:#f8fafc;
  font-size:13px;
  font-weight:950;
}
.assistant-ops-forecast-badges{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.assistant-ops-forecast-badges span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  padding:4px 9px;
  background:rgba(239,246,255,.10);
  color:#bfdbfe;
  font-size:12px;
  font-weight:950;
}
.assistant-ops-forecast-badges span.is-departures{color:#dbeafe;}
.assistant-ops-forecast-badges span.is-groups{color:#fed7aa;background:rgba(251,146,60,.12);}
.assistant-ops-forecast-badges span.is-total{color:#bbf7d0;background:rgba(34,197,94,.13);}
.assistant-ops-forecast-badges span.is-sofa{color:#93c5fd;background:rgba(59,130,246,.14);}
.assistant-ops-assignment-item{
  padding:12px;
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  background:rgba(8,18,34,.50);
  color:#e5edf7;
}
.assistant-ops-assignment-item strong{
  display:block;
  color:#f8fafc;
  font-size:13px;
  font-weight:950;
}
.assistant-ops-assignment-item span{
  display:block;
  margin-top:4px;
  color:#bfdbfe;
  font-size:12px;
  font-weight:850;
}
.assistant-ops-assignment-item ul{
  margin:8px 0 0;
  padding-left:18px;
  color:#cbd5e1;
  font-size:12px;
  font-weight:800;
  line-height:1.45;
}
.assistant-section-title{
  margin:0 0 14px;
  font-size:22px;
  font-weight:900;
  letter-spacing:-.02em;
}
.assistant-results-card{
  max-width:760px;
  border-radius:24px;
  padding:18px 28px;
}
.assistant-action-grid{
  max-width:760px;
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.assistant-action-card{
  display:grid;
  grid-template-columns:56px 1fr auto;
  align-items:center;
  gap:18px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:22px;
  padding:20px 22px;
  background:linear-gradient(135deg, rgba(15,23,42,.78), rgba(15,23,42,.42));
  color:#f8fafc;
  text-align:left;
  cursor:default;
  box-shadow:0 18px 46px rgba(0,0,0,.22);
  backdrop-filter:blur(18px);
}
.assistant-action-card:hover{
  border-color:rgba(96,165,250,.48);
  box-shadow:0 24px 62px rgba(37,99,235,.18);
}
.assistant-action-icon{
  width:52px;
  height:52px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(59,130,246,.18);
  color:#60a5fa;
  font-size:24px;
  font-weight:950;
}
.assistant-action-card strong{
  display:block;
  font-size:22px;
  line-height:1.15;
}
.assistant-action-card small{
  display:block;
  margin-top:6px;
  color:#cbd5e1;
  font-size:14px;
  font-weight:800;
}
.assistant-action-launch{
  border:none;
  border-radius:999px;
  padding:12px 18px;
  background:linear-gradient(135deg,#3b82f6,#60a5fa);
  color:white;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 14px 30px rgba(59,130,246,.28);
}
.assistant-action-launch:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 36px rgba(59,130,246,.34);
}
.assistant-response-title{
  margin-top:28px;
}
.assistant-response-box{
  max-width:760px;
  min-height:170px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:24px;
  padding:22px;
  background:linear-gradient(135deg, rgba(15,23,42,.78), rgba(15,23,42,.38));
  box-shadow:0 22px 58px rgba(0,0,0,.24);
  backdrop-filter:blur(20px);
  color:#cbd5e1;
}
.assistant-response-box strong,
.assistant-response-box span,
.assistant-response-box small{
  display:block;
}
.assistant-response-box strong{
  color:#f8fafc;
  font-size:22px;
  margin-bottom:8px;
}
.assistant-response-box span{
  line-height:1.45;
}
.assistant-response-box small{
  margin-top:10px;
  color:#93c5fd;
  font-weight:800;
}
.assistant-response-box ul{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:grid;
  gap:10px;
}
.assistant-response-box li{
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  padding:12px;
  background:rgba(2,8,23,.34);
}
.assistant-response-box li strong{
  font-size:16px;
  margin-bottom:4px;
}
.assistant-control-list li{
  display:grid;
  gap:7px;
}
.assistant-control-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}
.assistant-control-head strong{
  margin:0 !important;
}
.assistant-control-head em{
  color:#93c5fd;
  font-style:normal;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.assistant-control-list span{
  color:#f8fafc;
  font-weight:800;
}
.assistant-control-list small{
  color:#cbd5e1;
}

/* ================= INDIVIDUEL + BOOST FUSION ================= */
.indiv-control-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin:0 0 12px;
}
.indiv-control-header h2{
  margin:0;
}
.indiv-control-header p{
  margin:8px 0 0;
  color:#526174;
  font-weight:700;
  line-height:1.45;
}
.indiv-boost-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}
.indiv-boost-periods{
  display:flex;
  gap:4px;
  padding:4px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.indiv-boost-status{
  margin:0 0 16px;
  padding:10px 14px;
  border:1px dashed rgba(0,61,92,.22);
  border-radius:14px;
  background:rgba(255,255,255,.66);
  color:#526174;
  font-weight:800;
}
.day-block.indiv-fused-day{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(330px, .52fr);
  gap:22px;
  border-left:none !important;
  padding:22px;
}
.day-block.indiv-fused-day:hover{
  transform:none;
}
.indiv-show-more-wrap{
  display:flex;
  justify-content:center;
  margin:18px 0 28px;
}
.indiv-show-more-btn{
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  color:#0b4a6f;
  border-radius:999px;
  padding:12px 18px;
  font-weight:900;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  cursor:pointer;
}
.indiv-show-more-btn:hover{
  background:#f8fbff;
  transform:translateY(-1px);
}
.indiv-oris-col,
.indiv-boost-col{
  min-width:0;
}
.indiv-boost-day{
  height:100%;
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(0,61,92,.10);
  background:linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
}
.indiv-boost-day-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
  color:#00466b;
  font-weight:950;
  letter-spacing:.2px;
}
.indiv-boost-empty{
  min-height:86px;
  display:flex;
  align-items:center;
  color:#6b7a90;
  font-weight:800;
  line-height:1.45;
}
.indiv-boost-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.indiv-boost-item{
  padding:12px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.05);
}
.indiv-boost-item-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.indiv-boost-item-head strong{
  color:#061d33;
  font-weight:950;
}
.indiv-boost-item-head span{
  color:#2563eb;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.indiv-boost-item p{
  margin:0 0 6px;
  color:#0f172a;
  font-weight:850;
  line-height:1.4;
}
.indiv-boost-item small{
  display:block;
  color:#475569;
  font-weight:750;
  line-height:1.45;
}
@media (max-width:1100px){
  .indiv-control-header,
  .indiv-boost-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .day-block.indiv-fused-day{
    grid-template-columns:1fr;
  }
}
.assistant-result-row{
  width:100%;
  display:grid;
  grid-template-columns:64px 1fr auto auto;
  align-items:center;
  gap:18px;
  border:none;
  border-bottom:1px solid rgba(148,163,184,.12);
  background:transparent;
  color:#f8fafc;
  text-align:left;
  padding:18px 0;
}
.assistant-result-row:last-child{border-bottom:none;}
.assistant-result-icon{
  width:54px;
  height:54px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  font-weight:900;
}
.assistant-result-icon.is-blue{background:rgba(59,130,246,.18);color:#60a5fa;}
.assistant-result-icon.is-red{background:rgba(239,68,68,.18);color:#ef4444;}
.assistant-result-icon.is-green{background:rgba(34,197,94,.18);color:#22c55e;}
.assistant-result-icon.is-yellow{background:rgba(245,158,11,.18);color:#fbbf24;}
.assistant-result-copy strong{
  display:block;
  font-size:22px;
  line-height:1.16;
}
.assistant-result-copy small{
  display:block;
  margin-top:4px;
  color:#cbd5e1;
  font-size:15px;
}
.assistant-result-count{
  font-size:26px;
  font-weight:950;
  color:#3b82f6;
}
.assistant-result-row[data-assistant-card="red"] .assistant-result-count{color:#ef4444;}
.assistant-result-row[data-assistant-card="green"] .assistant-result-count{color:#22c55e;}
.assistant-result-row[data-assistant-card="yellow"] .assistant-result-count{color:#fbbf24;}
.assistant-result-arrow{
  color:#f8fafc;
  font-size:34px;
  line-height:1;
}
.assistant-footnote{
  max-width:760px;
  margin-top:22px;
  color:#cbd5e1;
  font-size:16px;
  font-weight:800;
}
.assistant-right{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.assistant-bot{
  position:relative;
  width:190px;
  height:260px;
  margin-bottom:26px;
  animation:assistantBotFloat 4.2s ease-in-out infinite;
  transform-origin:center bottom;
}
.assistant-bot-antenna{
  position:absolute;
  top:0;
  left:50%;
  width:4px;
  height:28px;
  transform:translateX(-50%);
  background:#3b82f6;
  border-radius:999px;
  animation:assistantBotAntenna 2.2s ease-in-out infinite;
}
.assistant-bot-antenna::before{
  content:"";
  position:absolute;
  top:-10px;
  left:50%;
  width:18px;
  height:18px;
  transform:translateX(-50%);
  border-radius:999px;
  background:#3b82f6;
  box-shadow:0 0 28px rgba(59,130,246,.9);
  animation:assistantBotPulse 1.9s ease-in-out infinite;
}
.assistant-bot-head{
  position:absolute;
  top:34px;
  left:18px;
  right:18px;
  height:128px;
  border-radius:58px;
  background:linear-gradient(145deg,#60a5fa,#2563eb);
  box-shadow:0 22px 70px rgba(37,99,235,.42);
}
.assistant-bot-head::before{
  content:"";
  position:absolute;
  left:25px;
  right:25px;
  top:42px;
  height:62px;
  border-radius:34px;
  background:#03111f;
}
.assistant-bot-head span{
  position:absolute;
  z-index:2;
  top:66px;
  width:18px;
  height:34px;
  border-radius:999px;
  background:#22d3ee;
  box-shadow:0 0 20px rgba(34,211,238,.85);
  animation:assistantBotEyes 3.4s ease-in-out infinite;
}
.assistant-bot-head span:first-child{left:62px;}
.assistant-bot-head span:last-child{right:62px;animation-delay:.16s;}
.assistant-bot-body{
  position:absolute;
  left:55px;
  right:55px;
  bottom:24px;
  height:88px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:34px 34px 18px 18px;
  background:linear-gradient(145deg,#3b82f6,#1d4ed8);
  color:#fff;
  font-size:46px;
  font-weight:950;
  animation:assistantBotBody 4.2s ease-in-out infinite;
}
@keyframes assistantBotFloat{
  0%,100%{transform:scale(.85) translateY(0) rotate(0deg);}
  25%{transform:scale(.85) translateY(-7px) rotate(-1.2deg);}
  50%{transform:scale(.85) translateY(-11px) rotate(0deg);}
  75%{transform:scale(.85) translateY(-6px) rotate(1.1deg);}
}
@keyframes assistantBotAntenna{
  0%,100%{transform:translateX(-50%) scaleY(1);}
  50%{transform:translateX(-50%) scaleY(1.12);}
}
@keyframes assistantBotPulse{
  0%,100%{transform:translateX(-50%) scale(1);box-shadow:0 0 24px rgba(59,130,246,.78);}
  50%{transform:translateX(-50%) scale(1.18);box-shadow:0 0 42px rgba(34,211,238,.95);}
}
@keyframes assistantBotEyes{
  0%,8%,100%{height:34px;top:66px;opacity:1;}
  10%,14%{height:4px;top:81px;opacity:.9;}
  18%{height:34px;top:66px;}
  60%{box-shadow:0 0 28px rgba(34,211,238,1);}
}
@keyframes assistantBotBody{
  0%,100%{filter:drop-shadow(0 16px 28px rgba(37,99,235,.12));}
  50%{filter:drop-shadow(0 24px 38px rgba(37,99,235,.24));}
}
.assistant-right h2{
  margin:0 0 14px;
  font-size:24px;
}
.assistant-right p{
  max-width:420px;
  margin:0 0 30px;
  color:#cbd5e1;
  font-size:17px;
  line-height:1.5;
}
.assistant-chat-box{
  width:min(460px,100%);
  height:250px;
  border-radius:24px;
  padding:22px;
  text-align:left;
}
.assistant-simulation-box{
  width:min(520px,100%);
  min-height:300px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:24px;
  padding:22px;
  background:linear-gradient(135deg, rgba(15,23,42,.78), rgba(15,23,42,.38));
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  backdrop-filter:blur(22px);
  text-align:left;
}
.assistant-simulation-empty{
  min-height:250px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:8px;
  color:#cbd5e1;
}
.assistant-simulation-empty strong{
  color:#f8fafc;
  font-size:22px;
}
.assistant-simulation-steps{
  display:grid;
  gap:10px;
  margin-bottom:20px;
}
.assistant-simulation-steps div{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:4px 12px;
  align-items:center;
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  padding:12px;
  background:rgba(15,23,42,.42);
}
.assistant-simulation-steps b{
  grid-row:span 2;
  width:30px;
  height:30px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#2563eb;
  color:#fff;
}
.assistant-simulation-steps strong{
  color:#f8fafc;
}
.assistant-simulation-steps span{
  color:#cbd5e1;
  font-size:13px;
}
.assistant-simulation-result h3{
  margin:0 0 12px;
  color:#f8fafc;
}
.assistant-simulation-result ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:10px;
}
.assistant-simulation-result li{
  border:1px solid rgba(148,163,184,.14);
  border-radius:16px;
  padding:12px;
  background:rgba(2,8,23,.36);
}
.assistant-simulation-result strong,
.assistant-simulation-result span,
.assistant-simulation-result small{
  display:block;
}
.assistant-simulation-result span{
  margin-top:6px;
  color:#e2e8f0;
}
.assistant-simulation-result small{
  margin-top:6px;
  color:#93c5fd;
  font-weight:800;
}
.assistant-chat-box textarea{
  width:100%;
  height:170px;
  resize:none;
  border:none;
  outline:none;
  background:transparent;
  color:#f8fafc;
  font:inherit;
  font-size:17px;
}
.assistant-chat-box textarea::placeholder{color:#cbd5e1;}
.assistant-chat-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.assistant-chat-actions button{
  width:44px;
  height:44px;
  border:none;
  border-radius:999px;
  background:#3b82f6;
  color:white;
  font-size:22px;
}
.assistant-chat-actions button:first-child{
  background:transparent;
  font-size:24px;
}
@media (max-width:1100px){
  .assistant-shell{padding:22px;}
  .assistant-main{grid-template-columns:1fr;gap:28px;}
  .assistant-right{align-items:flex-start;text-align:left;}
  .assistant-bot{align-self:center;}
}
@media (max-width:720px){
  .assistant-boost-card{grid-template-columns:1fr;gap:18px;}
  .assistant-boost-separator{display:none;}
  .assistant-result-row{grid-template-columns:52px 1fr auto;gap:12px;}
  .assistant-result-arrow{display:none;}
  .assistant-hello h1{font-size:32px;}
}

/* ===== FLOATING ORIS PET ===== */
.oris-pet-widget{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  width:92px;
  height:92px;
  pointer-events:none;
}
.oris-pet-avatar,
.oris-pet-toggle,
.oris-pet-panel,
.oris-pet-toast-stack{
  pointer-events:auto;
}
.oris-pet-toast-stack{
  position:absolute;
  right:0;
  bottom:92px;
  width:310px;
  max-width:calc(100vw - 36px);
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}
.oris-pet-widget.is-open .oris-pet-toast-stack{
  display:none;
}
.oris-pet-toast{
  max-width:100%;
  padding:10px 12px;
  border:1px solid rgba(96,165,250,.28);
  border-radius:16px 16px 6px 16px;
  background:linear-gradient(145deg, rgba(15,23,42,.96), rgba(30,64,175,.92));
  color:#f8fafc;
  font-weight:850;
  font-size:13px;
  line-height:1.35;
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:0 14px 34px rgba(2,8,23,.35);
  animation:orisPetToastIn .22s ease-out both;
}
.oris-pet-toast.is-persistent{
  border-color:rgba(251,191,36,.48);
  background:linear-gradient(145deg, rgba(30,41,59,.98), rgba(120,53,15,.94));
}
.oris-pet-toast.is-persistent::before{
  content:"";
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:999px;
  background:#f59e0b;
  box-shadow:0 0 0 0 rgba(245,158,11,.55);
  animation:orisPetBoostPulse 1.05s ease-in-out infinite;
}
.oris-pet-toast.is-resolved{
  border-color:rgba(34,197,94,.42);
  background:linear-gradient(145deg, rgba(15,23,42,.98), rgba(21,128,61,.9));
}
.oris-pet-toast.is-resolved::before{
  content:"✓";
  width:18px;
  height:18px;
  flex:0 0 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#22c55e;
  color:#052e16;
  font-size:12px;
  font-weight:950;
}
.oris-pet-toast.is-leaving{
  animation:orisPetToastOut .35s ease-in both;
}
@keyframes orisPetBoostPulse{
  0%,100%{ transform:scale(1); box-shadow:0 0 0 0 rgba(245,158,11,.45); }
  50%{ transform:scale(.86); box-shadow:0 0 0 6px rgba(245,158,11,0); }
}
@keyframes orisPetToastIn{
  from{ opacity:0; transform:translateY(8px) scale(.96); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}
@keyframes orisPetToastOut{
  to{ opacity:0; transform:translateY(8px) scale(.96); }
}
.oris-pet-avatar{
  position:absolute;
  right:0;
  bottom:0;
  width:82px;
  height:82px;
  filter:drop-shadow(0 16px 26px rgba(2,8,23,.45));
}
.oris-pet-head{
  position:absolute;
  left:10px;
  right:10px;
  top:4px;
  height:52px;
  border-radius:24px;
  background:linear-gradient(145deg,#60a5fa,#2563eb);
}
.oris-pet-head::before{
  content:"";
  position:absolute;
  left:15px;
  right:15px;
  top:18px;
  height:24px;
  border-radius:14px;
  background:#03111f;
}
.oris-pet-head span{
  position:absolute;
  z-index:1;
  top:27px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:#67e8f9;
  box-shadow:0 0 12px rgba(103,232,249,.85);
}
.oris-pet-head span:first-child{left:31px;}
.oris-pet-head span:last-child{right:31px;}
.oris-pet-body{
  position:absolute;
  left:24px;
  right:24px;
  bottom:4px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:16px 16px 10px 10px;
  background:linear-gradient(145deg,#3b82f6,#1d4ed8);
  color:#fff;
  font-size:18px;
  font-weight:950;
}
.oris-pet-toggle{
  position:absolute;
  right:-2px;
  bottom:2px;
  width:24px;
  height:24px;
  border:none;
  border-radius:999px;
  background:#0f172a;
  color:#cbd5e1;
  font-size:16px;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(2,8,23,.42);
}
.oris-pet-widget.is-open .oris-pet-toggle{
  transform:rotate(180deg);
  background:#2563eb;
  color:#fff;
}
.oris-pet-widget.has-notification .oris-pet-avatar{
  animation:orisPetNotifyPulse 1.1s ease-in-out 0s 2;
  box-shadow:0 0 0 6px rgba(59,130,246,.18), 0 16px 34px rgba(37,99,235,.34);
}
.oris-pet-widget.has-notification .oris-pet-toggle{
  background:#22c55e;
  color:#fff;
}
@keyframes orisPetNotifyPulse{
  0%,100%{ transform:translateY(0) scale(1); }
  45%{ transform:translateY(-4px) scale(1.05); }
}
.oris-pet-panel{
  position:absolute;
  right:0;
  bottom:94px;
  width:360px;
  max-width:calc(100vw - 28px);
  border:1px solid rgba(148,163,184,.22);
  border-radius:22px;
  background:linear-gradient(145deg, rgba(6,18,37,.96), rgba(2,8,23,.96));
  color:#f8fafc;
  box-shadow:0 28px 80px rgba(2,8,23,.55);
  backdrop-filter:blur(22px);
  overflow:hidden;
  opacity:0;
  transform:translateY(10px) scale(.98);
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease;
}
.oris-pet-widget.is-open .oris-pet-panel{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.oris-pet-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:16px 16px 12px;
  border-bottom:1px solid rgba(148,163,184,.12);
}
.oris-pet-panel-head strong,
.oris-pet-panel-head span{
  display:block;
}
.oris-pet-panel-head strong{
  font-size:16px;
}
.oris-pet-panel-head span{
  margin-top:3px;
  color:#93c5fd;
  font-size:12px;
  font-weight:800;
}
.oris-pet-panel-head button{
  border:none;
  background:rgba(148,163,184,.12);
  color:#cbd5e1;
  width:28px;
  height:28px;
  border-radius:999px;
  cursor:pointer;
}
.oris-pet-scope{
  display:flex;
  gap:6px;
  padding:12px 14px 8px;
  overflow:auto;
}
.oris-pet-scope button{
  flex:0 0 auto;
  border:1px solid rgba(148,163,184,.18);
  border-radius:999px;
  padding:7px 10px;
  background:rgba(15,23,42,.7);
  color:#cbd5e1;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.oris-pet-scope button.is-active{
  background:#2563eb;
  color:#fff;
  border-color:#60a5fa;
}
.oris-pet-messages{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:190px;
  max-height:250px;
  overflow:auto;
  padding:10px 14px;
}
.oris-pet-message{
  max-width:88%;
  border-radius:14px;
  padding:10px 12px;
  font-size:13px;
  line-height:1.35;
}
.oris-pet-message.is-oris{
  align-self:flex-start;
  background:rgba(59,130,246,.16);
  color:#dbeafe;
}
.oris-pet-message.is-user{
  align-self:flex-end;
  background:rgba(34,197,94,.16);
  color:#dcfce7;
}
.oris-pet-input-row{
  display:grid;
  grid-template-columns:1fr 38px;
  gap:8px;
  padding:12px 14px 14px;
  border-top:1px solid rgba(148,163,184,.12);
}
.oris-pet-input-row input{
  min-width:0;
  border:1px solid rgba(148,163,184,.16);
  border-radius:14px;
  background:rgba(15,23,42,.72);
  color:#f8fafc;
  padding:10px 12px;
  outline:none;
}
.oris-pet-input-row input::placeholder{
  color:#94a3b8;
}
.oris-pet-input-row button{
  border:none;
  border-radius:14px;
  background:#3b82f6;
  color:#fff;
  font-size:18px;
  font-weight:950;
  cursor:pointer;
}
@media (max-width:720px){
  .oris-pet-widget{
    right:12px;
    bottom:12px;
  }
  .oris-pet-panel{
    width:330px;
  }
}
.reservation-control-ai-btn:disabled{
  cursor:not-allowed;
  opacity:.45;
  filter:saturate(.45);
  box-shadow:none;
}
.luna-confirm-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:16px;
  height:16px;
  margin-left:3px;
  border-radius:999px;
  background:#dcfce7;
  color:#15803d;
  font-weight:900;
  font-size:12px;
  line-height:1;
}
.reservation-control-ai-note{
  margin-top:8px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
}
.reservation-control-ai-model{
  margin-top:8px;
  padding:10px 12px;
  border-radius:12px;
  background:#f8fafc;
  color:#475569;
  border:1px solid rgba(0,61,92,.08);
  font-size:12px;
  font-weight:800;
  line-height:1.35;
}
.reservation-control-source-list{
  list-style:none;
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
}
.reservation-control-source-list li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid rgba(0,61,92,.08);
}
.reservation-control-source-list span{
  font-weight:900;
  color:var(--dark);
}
.reservation-control-source-list small{
  color:#64748b;
  font-weight:700;
  text-align:right;
}
.reservation-control-example{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  display:grid;
  gap:4px;
  color:#334155;
}
.reservation-control-example span{
  font-size:12px;
  font-weight:900;
  color:#64748b;
}
.reservation-control-example strong{
  color:#0f172a;
  font-size:14px;
}
.reservation-control-example small{
  color:#0b3d5c;
  font-weight:900;
}
.reservation-control-steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.reservation-control-steps div{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:14px;
  border-radius:16px;
  background:#f8fafc;
  border:1px solid rgba(0,61,92,.08);
}
.reservation-control-steps strong{
  display:inline-flex;
  width:26px;
  height:26px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#0b3d5c;
  color:#fff;
  flex:0 0 26px;
}
.reservation-control-steps span{
  color:#475569;
  font-weight:800;
  line-height:1.35;
}
.reservation-control-list{
  display:grid;
  gap:10px;
  margin-top:16px;
}
.reservation-control-warning{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:14px;
  border-radius:16px;
  background:#ffffff;
  border:1px solid rgba(0,61,92,.10);
  box-shadow:0 6px 16px rgba(15,23,42,.04);
}
.reservation-control-warning-main{
  min-width:0;
}
.reservation-control-warning-main strong{
  display:block;
  color:var(--dark);
  font-size:14px;
  margin-bottom:3px;
}
.reservation-control-warning-main small{
  display:block;
  color:#64748b;
  font-weight:800;
  margin-bottom:6px;
}
.reservation-control-warning-main p{
  margin:0;
  color:#475569;
  font-size:12px;
  line-height:1.35;
  font-weight:700;
}
.reservation-control-warning-title{
  margin:4px 0 6px;
  color:#0f172a;
  font-size:13px;
  font-weight:900;
}
.reservation-control-warning-main em{
  display:block;
  margin-top:6px;
  color:#0b3d5c;
  font-size:12px;
  font-style:normal;
  font-weight:900;
}
.reservation-control-warning-tags{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-content:flex-start;
  gap:6px;
  min-width:180px;
}
.reservation-control-warning-tags span{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  background:#eef6ff;
  color:#2563eb;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.reservation-control-warning-tags span.is-high{
  background:#fee2e2;
  color:#b91c1c;
}
.reservation-control-warning-tags span.is-medium{
  background:#fff7ed;
  color:#c2410c;
}
.reservation-control-warning-tags span.is-low{
  background:#eef6ff;
  color:#2563eb;
}
@media (max-width: 980px){
  .reservation-control-grid,
  .reservation-control-steps{
    grid-template-columns:1fr;
  }
  .reservation-control-warning{
    flex-direction:column;
  }
  .reservation-control-warning-tags{
    justify-content:flex-start;
    min-width:0;
  }
  .reservation-control-ai-box{
    align-items:stretch;
    flex-direction:column;
  }
  .reservation-control-ai-btn{
    width:100%;
  }
}

.plan-room-wrench,
.plan-room-night{all:unset;}


/* ===== PLAN ELEVATORS ROUND SMALL ===== */
.plan-elevator-card{
  padding:0 !important;
  border-radius:999px !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  aspect-ratio:1 / 1 !important;
  box-shadow:0 4px 10px rgba(15,23,42,.08) !important;
}
.plan-elevator-code{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  text-align:center !important;
}
.plan-elevator-title{display:none !important;}


/* ===== PLAN FILTER TOGGLES ACTIVE STATE ===== */
.plan-chip-toggle{
  background:#f8fafc;
  color:#475569;
  border-color:rgba(15,23,42,.10);
}
.plan-chip-toggle:hover{
  border-color:rgba(71,85,105,.26);
}
.plan-chip-toggle.is-active,
.plan-chip-toggle[aria-pressed="true"]{
  background:#9ca3af !important;
  color:#111827 !important;
  border-color:#6b7280 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28);
}
.plan-chip-toggle:not([aria-pressed="true"]):not(.is-active){
  background:#f8fafc !important;
  color:#475569 !important;
  border-color:rgba(15,23,42,.10) !important;
  box-shadow:none !important;
}


.plan-toolbar-imports{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex-wrap:nowrap;margin-left:auto;justify-content:flex-start;}
.plan-toolbar-imports .plan-sources-strip{width:220px !important;min-width:220px !important;max-width:220px !important;margin:0 !important;padding:8px 12px !important;border-radius:14px !important;box-shadow:0 1px 2px rgba(0,0,0,.03) !important;}
.plan-toolbar-imports .home-sources-row{gap:8px;}
.plan-toolbar-imports .home-source-name{font-size:12px;font-weight:800;}
.plan-toolbar-imports .home-source-date{font-size:11px;}
.plan-toolbar-imports .home-sources-drop{width:34px;height:34px;min-width:34px;}
.plan-open-list-group{display:block;}
.plan-open-list-floor{display:none !important;}
@media (max-width: 1300px){.plan-toolbar-imports{width:100%;margin-left:0;justify-content:flex-start;}.plan-toolbar-imports .plan-sources-strip{width:min(100%,240px) !important;min-width:0 !important;max-width:none !important;}}

.luna-confirm-badge.is-confirmed{
  background:#dcfce7;
  color:#15803d;
}
.luna-confirm-badge.is-conflict{
  background:#fee2e2;
  color:#b91c1c;
}
.luna-confirm-badge.is-unclear{
  background:#fef3c7;
  color:#92400e;
}
