.user-wrap { max-width: 980px; margin: 0 auto; }
.steps { display:flex; gap:.3rem; flex-wrap:wrap; margin-bottom:1.1rem; justify-content:center; }
.steps .step {
  padding:.4rem .65rem; border-radius:999px; border:1px solid var(--line);
  font-size:.78rem; font-weight:600; color:var(--muted); background:#141c28;
  cursor:pointer; user-select:none;
}
.steps .step.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.steps .step.done { border-color:var(--ok); color:var(--ok); }
.panel { display:none; }
.panel.on { display:block; }
.search-box { display:flex; gap:.5rem; margin-bottom:.75rem; }
.search-box input {
  flex:1; padding:.65rem .75rem; border-radius:10px; border:1px solid var(--line);
  background:#101820; color:var(--text); font-size:1rem;
}
.hotel-list { display:flex; flex-direction:column; gap:.4rem; max-height:420px; overflow:auto; }
.hotel-item {
  text-align:left; border:1px solid var(--line); background:var(--card); color:var(--text);
  border-radius:10px; padding:.7rem .85rem; cursor:pointer;
}
.hotel-item:hover { border-color:var(--accent); }
.hotel-item .name { font-weight:700; font-size:1rem; }
.hotel-item .meta { color:var(--muted); font-size:.88rem; margin-top:.15rem; }

/* KPI editables unifies */
.kpi-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:.7rem;
}
.kpi {
  background:#141c28; border:1px solid var(--line); border-radius:12px; padding:.75rem .85rem;
}
.kpi label {
  display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted); font-weight:700; margin:0 0 .35rem;
}
.kpi input {
  width:100%; border:0; background:transparent; color:var(--text);
  font-size:1.35rem; font-weight:700; padding:0; outline:none;
  font-variant-numeric: tabular-nums;
}
.kpi input:focus { color:var(--accent); }
.kpi .hint { font-size:.75rem; color:var(--muted); margin-top:.25rem; }
.kpi.def .hint { color:var(--warn); }

.section-title {
  font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  font-weight:700; margin:1.1rem 0 .5rem;
}
.info-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.55rem;
}
.info-item {
  background:#141c28; border:1px solid var(--line); border-radius:10px; padding:.55rem .7rem;
}
.info-item .k { font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.info-item .v { font-size:.95rem; font-weight:600; margin-top:.15rem; word-break:break-word; }
.identity-head {
  display:flex; gap:.85rem; align-items:flex-start; flex-wrap:wrap;
}
.identity-head img.brand-logo {
  height:48px; width:auto; max-width:120px; background:#fff; border-radius:8px; padding:6px 10px;
  object-fit:contain;
}
.bool-pills { display:flex; flex-wrap:wrap; gap:.35rem; }
.mix-row.mix-off { opacity:.45; }
.mix-row.mix-off .mix-label { text-decoration: line-through; }
.bool-pill {
  font-size:.78rem; padding:.35rem .7rem; border-radius:999px; border:1px solid var(--line);
  color:var(--muted); background:#141c28; cursor:pointer; user-select:none;
  transition: border-color .12s, background .12s, color .12s;
}
.bool-pill:hover { border-color:var(--accent); color:var(--text); }
.bool-pill.on { color:#86efac; border-color:rgba(61,214,140,.45); background:rgba(61,214,140,.1); }
.bool-pill.on:hover { border-color:#86efac; }
.muted-hint { font-size:.78rem; color:var(--muted); margin:.25rem 0 .55rem; }
.prox-edit {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.55rem;
}
.prox-card {
  background:#141c28; border:1px solid var(--line); border-radius:10px; padding:.6rem .75rem;
}
.prox-card .k { font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; }
.prox-card .row {
  display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.35rem;
}
.prox-card .v {
  font-size:1.15rem; font-weight:700; font-variant-numeric:tabular-nums; min-width:2.2rem; text-align:center;
}
.prox-step {
  display:inline-flex; gap:.25rem;
}
.prox-step button {
  width:28px; height:28px; border-radius:8px; border:1px solid var(--line);
  background:#101820; color:var(--text); font-weight:700; cursor:pointer; font-size:1rem; line-height:1;
}
.prox-step button:hover { border-color:var(--accent); color:var(--accent); }
.prox-card.bool-card .row { justify-content:flex-start; gap:.65rem; }

.nav-row { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.1rem; justify-content:space-between; }
.nav-row .right { display:flex; gap:.5rem; flex-wrap:wrap; }

.engine-block {
  border:1px solid var(--line); border-radius:14px; background:var(--card);
  padding:1rem 1.05rem; margin-bottom:.85rem;
}
.engine-block h3 { margin:0 0 .55rem; font-size:1.05rem; display:flex; align-items:center; gap:.5rem; }
.reco-box {
  border:1px solid rgba(61,214,140,.35); background:rgba(61,214,140,.08);
  border-radius:12px; padding:.85rem 1rem; margin:.6rem 0 .8rem;
}
.reco-box h4 { margin:0 0 .3rem; font-size:.95rem; color:var(--ok); }
.payback { color:var(--warn); font-weight:700; }
.err-soft {
  margin:.4rem 0; padding:.55rem .7rem; border-radius:8px; font-size:.88rem;
  border:1px solid #5a2a35; background:#2a1520; color:#f5a0b0;
}
.subtabs { display:flex; gap:.4rem; flex-wrap:wrap; margin:0 0 .9rem; }
.subtabs .subtab {
  padding:.4rem .85rem; border-radius:999px; border:1px solid var(--line);
  background:#141c28; color:var(--muted); font-weight:600; font-size:.85rem; cursor:pointer;
}
.subtabs .subtab.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.opt-panel { display:none; }
.opt-panel.on { display:block; }
.opt-progress { font-size:.9rem; color:var(--muted); margin:.5rem 0; }
.progress-wrap {
  margin:.75rem 0 1rem; padding:.85rem 1rem; border-radius:10px;
  background:var(--card-2, #f4f6f8); border:1px solid var(--border, #dde3ea);
}
.progress-wrap .progress-label {
  display:flex; justify-content:space-between; gap:.75rem;
  font-size:.88rem; margin-bottom:.45rem; color:var(--text, #1a1a1a);
}
.progress-wrap .progress-msg { color:var(--muted); font-size:.82rem; margin-top:.4rem; min-height:1.2em; }
.progress-track {
  height:12px; border-radius:999px; background:#d8dee6; overflow:hidden;
}
.progress-fill {
  height:100%; width:0%; border-radius:999px;
  background:linear-gradient(90deg, #1f6feb, #2ea043);
  transition:width .25s ease;
}
.progress-fill.indeterminate {
  width:35% !important;
  animation: progress-slide 1.1s ease-in-out infinite;
}
@keyframes progress-slide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(320%); }
}
.mix-chip {
  display:inline-block; font-size:.78rem; padding:.15rem .45rem; margin:.1rem;
  border-radius:6px; background:#1a2433; border:1px solid var(--line);
}

/* ----- Mix summary (reco / estimation) ----- */
.mix-summary {
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(165deg, #121a24 0%, #0e1520 100%);
  padding:1rem 1.1rem 1.05rem;
  margin:0 0 .9rem;
}
.mix-summary-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:.75rem; margin:0 0 .85rem; flex-wrap:wrap;
}
.mix-summary-head h3 {
  margin:0; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em;
  color:var(--muted); font-weight:700;
}
.mix-summary-total {
  font-size:.82rem; font-weight:600; color:var(--text);
  font-variant-numeric:tabular-nums;
}
.mix-summary-stack {
  display:flex; height:14px; border-radius:999px; overflow:hidden;
  background:#1a2433; border:1px solid var(--line); margin:0 0 .55rem;
}
.mix-summary-stack .seg {
  height:100%; min-width:0; transition:width .25s ease;
}
/* F&B = cyan/teal ; Non F&B = ambre/orange — contraste fort a l'oeil */
.mix-summary-stack .seg.fb { background:linear-gradient(90deg, #0e7490, #22d3ee); }
.mix-summary-stack .seg.nfb { background:linear-gradient(90deg, #c2410c, #fb923c); }
.mix-summary-stack .seg.zero { background:transparent; }
.mix-summary-legend {
  display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin:0 0 1rem;
  font-size:.88rem;
}
.mix-summary-legend .leg {
  display:inline-flex; align-items:center; gap:.4rem;
  font-variant-numeric:tabular-nums;
}
.mix-summary-legend .dot {
  width:10px; height:10px; border-radius:3px; flex-shrink:0;
}
.mix-summary-legend .dot.fb { background:#22d3ee; }
.mix-summary-legend .dot.nfb { background:#fb923c; }
.mix-summary-legend .leg.off { opacity:.4; }
.mix-summary-legend .pct { font-weight:700; color:var(--text); }
.mix-summary-legend .lab { color:var(--muted); }

.mix-summary-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.85rem;
}
@media (max-width:720px){
  .mix-summary-grid { grid-template-columns:1fr; }
}
.mix-family {
  border:1px solid var(--line);
  border-radius:12px;
  background:#101820;
  padding:.7rem .8rem .75rem;
  min-height:100%;
}
.mix-family.off {
  opacity:.55;
}
.mix-family-head {
  display:flex; align-items:center; justify-content:space-between;
  gap:.5rem; margin:0 0 .55rem;
}
.mix-family-head .title {
  font-size:.8rem; font-weight:700; letter-spacing:.02em;
}
.mix-family.fb .mix-family-head .title { color:#67e8f9; }
.mix-family.nfb .mix-family-head .title { color:#fdba74; }
.mix-family-head .badge {
  font-size:.72rem; font-weight:700; padding:.15rem .45rem;
  border-radius:999px; font-variant-numeric:tabular-nums;
}
.mix-family.fb .badge {
  color:#67e8f9; background:rgba(6,182,212,.14); border:1px solid rgba(34,211,238,.4);
}
.mix-family.nfb .badge {
  color:#fdba74; background:rgba(249,115,22,.14); border:1px solid rgba(251,146,60,.4);
}
.mix-family .badge.zero {
  color:var(--muted); background:#141c28; border-color:var(--line);
}
.mix-bar-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) 4.2rem;
  gap:.45rem .55rem;
  align-items:center;
  margin:.28rem 0;
}
.mix-bar-row.zero { opacity:.38; }
.mix-bar-meta {
  display:flex; flex-direction:column; gap:.12rem; min-width:0;
}
.mix-bar-name {
  font-size:.8rem; font-weight:600; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.mix-bar-track {
  height:7px; border-radius:999px; background:#1a2433; overflow:hidden;
  border:1px solid rgba(255,255,255,.04);
}
.mix-bar-fill {
  height:100%; border-radius:999px; width:0%;
  transition:width .3s ease;
}
.mix-family.fb .mix-bar-fill {
  background:linear-gradient(90deg, #0891b2, #22d3ee);
}
.mix-family.nfb .mix-bar-fill {
  background:linear-gradient(90deg, #ea580c, #fb923c);
}
.mix-bar-pct {
  text-align:right; font-size:.82rem; font-weight:700;
  font-variant-numeric:tabular-nums; color:var(--text);
}
.mix-bar-row.zero .mix-bar-pct { color:var(--muted); font-weight:600; }
.mix-family-empty {
  font-size:.82rem; color:var(--muted); padding:.35rem 0 .15rem;
}

/* F&B / Non F&B split + categories on/off puis % */
.type-split {
  display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:.35rem 0 1rem;
}
@media (max-width:720px){ .type-split { grid-template-columns:1fr; } }
.type-split-card {
  border:1px solid var(--line); border-radius:12px; padding:.75rem .85rem .85rem;
  background:#141c28;
}
.type-split-card.fb { border-color:rgba(34,211,238,.4); }
.type-split-card.nfb { border-color:rgba(251,146,60,.4); }
.type-split-card .ts-head {
  display:flex; justify-content:space-between; align-items:baseline; gap:.5rem;
  margin-bottom:.45rem;
}
.type-split-card .ts-lab { font-size:.82rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.type-split-card.fb .ts-lab { color:#67e8f9; }
.type-split-card.nfb .ts-lab { color:#fdba74; }
.type-split-card .ts-pct {
  font-size:1.35rem; font-weight:800; font-variant-numeric:tabular-nums;
}
.type-split-card input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:8px; border-radius:999px;
  outline:none; margin:0; border:0; padding:0; cursor:pointer;
  background:linear-gradient(90deg, var(--fill) var(--pct,0%), #1a2433 var(--pct,0%));
}
.type-split-card.fb input[type=range]{ --fill:#22d3ee; }
.type-split-card.nfb input[type=range]{ --fill:#fb923c; }
.type-split-card input[type=range]::-webkit-slider-thumb {
  -webkit-appearance:none; width:16px; height:16px; border-radius:50%;
  background:#fff; border:2px solid var(--accent); cursor:pointer;
}
.type-split-card.fb input[type=range]::-webkit-slider-thumb { border-color:#22d3ee; }
.type-split-card.nfb input[type=range]::-webkit-slider-thumb { border-color:#fb923c; }
.cat-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:.75rem;
}
@media (max-width:720px){ .cat-grid { grid-template-columns:1fr; } }
.cat-col {
  border:1px solid var(--line); border-radius:12px; padding:.55rem .7rem .65rem;
  background:#141c28;
}
.cat-col.fb { border-color:rgba(34,211,238,.35); }
.cat-col.nfb { border-color:rgba(251,146,60,.35); }
.cat-col h3 {
  margin:.15rem 0 .45rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em;
}
.cat-col.fb h3 { color:#67e8f9; }
.cat-col.nfb h3 { color:#fdba74; }
.cat-row {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; align-items:center;
  padding:.4rem 0; border-top:1px solid rgba(42,58,79,.45);
}
.cat-row:first-of-type { border-top:0; }
.cat-row.off { opacity:.45; }
.cat-row .cat-name { font-size:.88rem; font-weight:700; color:var(--text); }
.cat-row .cat-hint { font-size:.75rem; color:var(--muted); margin-top:.1rem; }
.cat-row.off .cat-name { text-decoration:line-through; }
.cat-row.cat-edit {
  grid-template-columns: minmax(0,1fr) 3.4rem;
}
.cat-row .cat-pct {
  font-size:.92rem; font-weight:800; text-align:right;
  font-variant-numeric:tabular-nums; color:var(--text);
}
.cat-row.cat-edit .cat-slider-wrap { grid-column:1 / -1; }
.cat-row input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:999px;
  outline:none; margin:.15rem 0 0; border:0; padding:0; cursor:pointer;
  background:linear-gradient(90deg, var(--fill) var(--pct,0%), #1a2433 var(--pct,0%));
}
.cat-col.fb .cat-row input[type=range]{ --fill:#22d3ee; }
.cat-col.nfb .cat-row input[type=range]{ --fill:#fb923c; }
.cat-row input[type=range]::-webkit-slider-thumb {
  -webkit-appearance:none; width:14px; height:14px; border-radius:50%;
  background:#fff; border:2px solid #22d3ee; cursor:pointer;
}
.cat-col.nfb .cat-row input[type=range]::-webkit-slider-thumb { border-color:#fb923c; }
