:root {
  --cat-navy: #0b163f;
  --cat-navy-2: #132153;
  --cat-gold: #c9a227;
  --cat-gold-dark: #9d7a10;
  --cat-gold-soft: #f7f1dc;
  --cat-bg: #f6f7f9;
  --cat-card: #ffffff;
  --cat-text: #1f2937;
  --cat-muted: #6b7280;
  --cat-border: #e3e6eb;
  --cat-border-dark: #d3d7df;
  --cat-success: #237a57;
  --cat-danger: #b83f49;
  --cat-warning: #a86d13;
  --cat-info: #2c5f9e;
  --sidebar-width: 268px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--cat-text);
  background: var(--cat-bg);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--cat-navy-2); text-decoration: none; }
a:hover { color: var(--cat-navy); }
.text-gold { color: var(--cat-gold) !important; }
.text-muted, .text-secondary { color: var(--cat-muted) !important; }

/* Buttons */
.btn {
  border-radius: 9px;
  font-weight: 650;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .48rem;
  box-shadow: none !important;
}
.btn-sm { min-height: 34px; border-radius: 8px; }
.btn-gold {
  background: var(--cat-gold);
  color: #111827;
  border: 1px solid var(--cat-gold);
}
.btn-gold:hover, .btn-gold:focus {
  background: #b9901e;
  border-color: #b9901e;
  color: #111827;
}
.btn-navy { background: var(--cat-navy); border: 1px solid var(--cat-navy); color: #fff; }
.btn-navy:hover { background: var(--cat-navy-2); border-color: var(--cat-navy-2); color: #fff; }
.btn-soft { background: #fff; border: 1px solid var(--cat-border); color: var(--cat-text); }
.btn-soft:hover { background: #f9fafb; border-color: var(--cat-border-dark); color: var(--cat-text); }
.btn-outline-navy { background: #fff; border: 1px solid #cfd4dd; color: var(--cat-navy); }
.btn-outline-navy:hover { background: #f7f8fa; border-color: var(--cat-navy); color: var(--cat-navy); }
.btn-link-neutral { background: transparent; border: 0; color: #5e6675; padding-left: 0; padding-right: 0; }
.btn-link-neutral:hover { color: var(--cat-navy); }

/* Forms */
.form-label {
  margin-bottom: .42rem;
  color: #3d4757;
  font-size: .82rem;
  font-weight: 700;
}
.form-label span { color: #b83f49; }
.form-control, .form-select {
  min-height: 46px;
  border: 1px solid #d9dde4;
  border-radius: 9px;
  background: #fff;
  color: var(--cat-text);
  box-shadow: none;
  font-size: .92rem;
}
.form-control::placeholder { color: #a3a8b2; }
.form-control:focus, .form-select:focus {
  border-color: #bca043;
  box-shadow: 0 0 0 3px rgba(201,162,39,.11);
}
.input-group-text { border-color: #d9dde4; background: #fff; }

.field-with-icon { position: relative; }
.field-with-icon > i:first-child {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  color: #7e8796;
  font-size: .95rem;
  pointer-events: none;
}
.field-with-icon .form-control,
.field-with-icon .form-select { padding-left: 42px; }
.field-with-icon .form-select { background-position: right .9rem center; }
.password-field .form-control { padding-right: 44px; }
.password-toggle {
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #727b8a;
}
.password-toggle:hover { background: #f1f3f6; color: var(--cat-navy); }

/* Shared cards */
.card-soft, .surface-card, .filter-card, .table-card {
  background: var(--cat-card);
  border: 1px solid var(--cat-border);
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(20, 31, 55, .035);
}
.surface-card, .table-card { overflow: hidden; }
.alert { border-radius: 9px; border: 1px solid transparent; }
.auth-alert { display: flex; align-items: flex-start; gap: .75rem; padding: .85rem 1rem; }
.auth-alert > i { margin-top: .12rem; }

/* Product mark */
.product-mark {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
}
.product-mark:hover { color: #fff; }
.product-mark img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.18);
}
.product-mark span { display: flex; flex-direction: column; line-height: 1.15; }
.product-mark strong { font-size: 1rem; letter-spacing: .025em; }
.product-mark small { margin-top: 5px; color: rgba(255,255,255,.56); font-size: .68rem; }
.product-mark-dark { color: var(--cat-navy); }
.product-mark-dark:hover { color: var(--cat-navy); }
.product-mark-dark small { color: var(--cat-muted); }

/* Registration */
.signup-page { background: #eef0f3; }
.signup-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(330px, 39%) 1fr;
  max-width: 1480px;
  margin: 0 auto;
  background: #fff;
}
.signup-aside {
  min-height: 100vh;
  position: sticky;
  top: 0;
  align-self: start;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 44px 48px 38px;
  background: var(--cat-navy);
  color: #fff;
  border-right: 1px solid rgba(255,255,255,.06);
}
.signup-aside-copy { margin-top: 92px; max-width: 510px; }
.eyebrow-light {
  color: #d9be66;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .13em;
}
.signup-aside-copy h1,
.login-copy h1 {
  margin: 12px 0 14px;
  font-size: clamp(2rem, 3vw, 3.05rem);
  line-height: 1.08;
  letter-spacing: -.035em;
  font-weight: 760;
}
.signup-aside-copy p,
.login-copy p { color: rgba(255,255,255,.68); font-size: 1rem; line-height: 1.7; }
.aside-points { margin-top: 38px; display: grid; gap: 20px; }
.aside-point { display: grid; grid-template-columns: 38px 1fr; gap: 13px; align-items: flex-start; }
.aside-point > i {
  width: 36px;
  height: 36px;
  border: 1px solid rgba(201,162,39,.34);
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: #dfc36a;
  font-size: .95rem;
}
.aside-point strong { display: block; font-size: .9rem; }
.aside-point span { display: block; color: rgba(255,255,255,.55); margin-top: 3px; font-size: .78rem; line-height: 1.45; }
.trial-panel {
  margin-top: 42px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.11);
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 13px;
  align-items: flex-start;
}
.trial-panel-icon {
  width: 42px;
  height: 42px;
  border-radius: 9px;
  background: #d2ae35;
  color: #111827;
  display: grid;
  place-items: center;
  font-size: 1rem;
}
.trial-panel strong { display: block; font-size: .9rem; }
.trial-panel span { display: block; margin-top: 4px; color: rgba(255,255,255,.58); font-size: .76rem; line-height: 1.5; }

.signup-main { min-height: 100vh; background: #fff; padding: 52px 58px 64px; }
.signup-content { max-width: 860px; margin: 0 auto; }
.signup-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 28px; }
.signup-heading h2, .login-heading h2 { margin: 6px 0 7px; font-size: 1.9rem; line-height: 1.2; font-weight: 760; letter-spacing: -.025em; }
.signup-heading p, .login-heading p { margin: 0; color: var(--cat-muted); }
.trial-badge {
  min-width: 124px;
  padding: 9px 12px;
  border: 1px solid #e6d49b;
  background: #fbf7ea;
  border-radius: 9px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--cat-gold-dark);
}
.trial-badge > i { font-size: 1.15rem; }
.trial-badge span { display: flex; flex-direction: column; line-height: 1.1; }
.trial-badge strong { font-size: .83rem; }
.trial-badge small { margin-top: 4px; color: #806812; font-size: .67rem; }

.signup-form { border-top: 1px solid var(--cat-border); }
.form-section { padding: 28px 0; border-bottom: 1px solid var(--cat-border); }
.form-section-title { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.section-icon {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #f2f3f6;
  color: var(--cat-navy);
  display: grid;
  place-items: center;
}
.form-section-title h3 { margin: 0; font-size: 1rem; font-weight: 760; }
.form-section-title p { margin: 3px 0 0; color: var(--cat-muted); font-size: .77rem; }
.signup-footer { padding-top: 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.signup-legal { max-width: 420px; display: flex; gap: 9px; align-items: flex-start; color: var(--cat-muted); font-size: .73rem; line-height: 1.45; }
.signup-legal i { margin-top: 1px; color: var(--cat-success); }
.signup-actions { display: flex; align-items: center; gap: 18px; }
.btn-create { min-width: 222px; }

/* Login */
.login-page { background: #eef0f3; }
.login-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(360px, 46%) 1fr;
  max-width: 1480px;
  margin: 0 auto;
  background: #fff;
}
.login-brand-panel {
  min-height: 100vh;
  background: var(--cat-navy);
  color: #fff;
  padding: 48px 54px 34px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.login-brand-content { max-width: 560px; }
.login-copy { margin-top: 130px; }
.login-feature-list { margin-top: 36px; display: grid; gap: 14px; }
.login-feature-list > div { display: flex; align-items: center; gap: 11px; color: rgba(255,255,255,.73); }
.login-feature-list i { width: 30px; color: #d9bd61; }
.login-brand-footer { color: rgba(255,255,255,.35); font-size: .72rem; letter-spacing: .04em; }
.login-main { min-height: 100vh; display: grid; place-items: center; padding: 34px; background: #fff; }
.login-card-wrap { width: min(440px, 100%); }
.login-heading { margin-bottom: 26px; }
.login-form { margin-top: 18px; }
.login-submit { min-height: 48px; }
.login-separator { display: flex; align-items: center; gap: 13px; color: #9299a6; font-size: .72rem; margin: 24px 0 16px; }
.login-separator::before, .login-separator::after { content: ""; height: 1px; flex: 1; background: var(--cat-border); }
.login-trial-note { text-align: center; color: var(--cat-muted); font-size: .74rem; margin: 15px 0 0; }
.login-trial-note i { margin-right: 5px; color: var(--cat-gold-dark); }

/* Legacy auth support */
.auth-shell { min-height: 100vh; background: #fff; }
.brand-panel { background: var(--cat-navy); color: #fff; }
.brand-logo { width: 82px; height: 82px; border-radius: 10px; object-fit: cover; }
.auth-card { max-width: 520px; width: 100%; }
.auth-kicker { letter-spacing: .11em; font-size: .69rem; font-weight: 800; color: var(--cat-gold-dark); }
.feature-line { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; color: rgba(255,255,255,.78); }
.feature-line .dot { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid rgba(201,162,39,.3); border-radius: 7px; color: #dfc36a; }

/* Sidebar */
.sidebar {
  width: var(--sidebar-width);
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1040;
  display: flex;
  flex-direction: column;
  background: var(--cat-navy);
  color: #fff;
  border-right: 1px solid rgba(255,255,255,.07);
}
.sidebar-brand { padding: 22px 18px 17px; display: flex; align-items: center; gap: 11px; }
.sidebar-logo { width: 43px; height: 43px; object-fit: cover; border-radius: 7px; border: 1px solid rgba(255,255,255,.12); }
.sidebar-brand-title { font-size: .98rem; font-weight: 800; letter-spacing: .025em; line-height: 1.05; }
.sidebar-brand-sub { color: rgba(255,255,255,.42); font-size: .68rem; margin-top: 5px; }
.sidebar-divider { height: 1px; background: rgba(255,255,255,.08); margin: 0 15px 7px; }
.sidebar-scroll { overflow-y: auto; padding: 7px 10px 92px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.16) transparent; }
.menu-label { padding: 14px 10px 6px; color: rgba(255,255,255,.35); font-size: .62rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.sidebar .nav-link {
  min-height: 41px;
  padding: .61rem .72rem;
  margin-bottom: 2px;
  border-left: 3px solid transparent;
  border-radius: 6px;
  color: rgba(255,255,255,.67);
  display: flex;
  align-items: center;
  gap: .72rem;
  font-size: .84rem;
  font-weight: 570;
  transition: background .14s ease, color .14s ease;
}
.sidebar .nav-link i { width: 19px; text-align: center; font-size: .95rem; color: rgba(255,255,255,.5); }
.sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.05); }
.sidebar .nav-link.active {
  color: #fff;
  background: rgba(255,255,255,.065);
  border-left-color: var(--cat-gold);
}
.sidebar .nav-link.active i { color: #dfc36a; }
.sidebar-footer { position: absolute; left: 0; right: 0; bottom: 0; padding: 11px; background: var(--cat-navy); border-top: 1px solid rgba(255,255,255,.07); }
.sidebar-footer .nav-link { margin: 0; }

/* App layout */
.main-content { margin-left: var(--sidebar-width); min-height: 100vh; background: var(--cat-bg); }
.topbar {
  min-height: 68px;
  position: sticky;
  top: 0;
  z-index: 1025;
  background: #fff;
  border-bottom: 1px solid var(--cat-border);
}
.topbar-title { color: #1f2937; font-weight: 760; font-size: .95rem; }
.topbar-sub { color: var(--cat-muted); font-size: .72rem; margin-top: 2px; }
.user-chip { display: flex; align-items: center; gap: 10px; }
.user-avatar { width: 36px; height: 36px; border-radius: 8px; display: grid; place-items: center; background: #f4f0e4; border: 1px solid #e6dab5; color: #7f6510; font-weight: 800; }
.page-wrap { padding: 25px 26px 36px; }
.page-kicker { font-size: .64rem; letter-spacing: .12em; font-weight: 800; color: var(--cat-gold-dark); text-transform: uppercase; }
.page-title { margin: .18rem 0 .24rem; font-size: 1.52rem; font-weight: 760; letter-spacing: -.02em; color: #1f2937; }
.page-subtitle { margin: 0; color: var(--cat-muted); }

/* Dashboard intro */
.welcome-card {
  background: #fff;
  color: var(--cat-text);
  border: 1px solid var(--cat-border);
  border-left: 4px solid var(--cat-gold);
  border-radius: 10px;
  padding: 20px 22px;
  box-shadow: 0 2px 8px rgba(20,31,55,.03);
}
.welcome-card .text-gold { color: var(--cat-gold-dark) !important; }
.welcome-card p { color: var(--cat-muted); max-width: 780px; }
.welcome-card .btn-light { border: 1px solid var(--cat-border); background: #fff; }

/* KPI */
.stat-card {
  min-height: 118px;
  position: relative;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 10px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(20,31,55,.03);
}
.stat-icon { width: 36px; height: 36px; border-radius: 8px; display: grid; place-items: center; background: #f1f3f6; color: var(--cat-navy); font-size: .95rem; }
.stat-icon.gold { background: #f8f2df; color: #8c6d0c; }
.stat-icon.green { background: #e9f3ee; color: var(--cat-success); }
.stat-icon.orange { background: #fbf1df; color: var(--cat-warning); }
.stat-icon.red { background: #f8e9eb; color: var(--cat-danger); }
.stat-label { margin-top: 11px; color: var(--cat-muted); font-size: .74rem; font-weight: 650; }
.stat-value { margin-top: 3px; color: #111827; font-size: 1.65rem; line-height: 1; font-weight: 780; letter-spacing: -.02em; }
.stat-meta { margin-top: 7px; color: #8a92a0; font-size: .68rem; }

/* Tables */
.table-card-header { padding: 16px 18px; border-bottom: 1px solid var(--cat-border); display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.table-card-header h5 { margin: 0; font-size: .95rem; font-weight: 760; }
.table { --bs-table-bg: transparent; margin-bottom: 0; }
.table thead th { padding: 11px 14px; white-space: nowrap; border-bottom: 1px solid var(--cat-border); background: #fafafa; color: #7c8491; font-size: .65rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.table tbody td { padding: 13px 14px; vertical-align: middle; border-color: #edf0f3; color: #384252; }
.table tbody tr:hover { background: #fbfbfc; }
.code-pill { display: inline-block; padding: .2rem .38rem; border-radius: 5px; background: #f1f3f5; color: #5f6877; font-size: .67rem; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.status-badge { display: inline-flex; align-items: center; gap: .36rem; border-radius: 999px; padding: .3rem .52rem; font-size: .67rem; font-weight: 760; }
.status-badge::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.status-active { color: #1e704e; background: #e9f4ef; }
.status-pending { color: #8c6010; background: #fbf2df; }
.status-suspended { color: #a33842; background: #f8eaec; }
.status-trial { color: #765f13; background: #f8f1dc; }
.status-expired { color: #a33842; background: #f8eaec; }

/* Dashboard supporting blocks */
.quick-action { display: flex; align-items: center; gap: 11px; padding: 12px; border: 1px solid var(--cat-border); border-radius: 9px; background: #fff; color: var(--cat-text); transition: border .15s ease, background .15s ease; }
.quick-action:hover { border-color: var(--cat-border-dark); background: #fafbfc; color: var(--cat-text); }
.quick-action-icon { width: 36px; height: 36px; border-radius: 8px; background: #f5f1e5; color: #866b12; display: grid; place-items: center; flex: 0 0 auto; }
.status-dot { display: inline-block; width: .48rem; height: .48rem; border-radius: 999px; margin-right: .35rem; }
.room-state { border: 1px solid var(--cat-border); border-radius: 9px; padding: 12px; background: #fff; }
.filter-card { padding: 14px; }

/* Trial UI */
.trial-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 14px;
  margin-bottom: 18px;
  background: #fbf7ea;
  border: 1px solid #e7d8a6;
  border-radius: 9px;
  color: #624f11;
}
.trial-strip-main { display: flex; align-items: center; gap: 10px; }
.trial-strip-main > i { font-size: 1rem; }
.trial-strip strong { font-size: .82rem; }
.trial-strip small { color: #806f35; }
.trial-progress { width: 150px; height: 5px; border-radius: 999px; background: #e9dfbd; overflow: hidden; }
.trial-progress > span { display: block; height: 100%; background: var(--cat-gold); }

.mobile-overlay { display: none; position: fixed; inset: 0; z-index: 1035; background: rgba(7, 12, 28, .42); }
.mobile-overlay.show { display: block; }

@media (max-width: 1199.98px) {
  .signup-aside { padding-left: 34px; padding-right: 34px; }
  .signup-main { padding-left: 40px; padding-right: 40px; }
  .signup-aside-copy { margin-top: 64px; }
}

@media (max-width: 991.98px) {
  .signup-shell, .login-shell { display: block; }
  .signup-aside, .login-brand-panel { display: none; }
  .signup-main, .login-main { min-height: 100vh; padding: 28px 22px 44px; }
  .signup-mobile-brand { margin-bottom: 28px; }
  .signup-heading { margin-top: 8px; }

  .sidebar { transform: translateX(-102%); transition: transform .2s ease; }
  .sidebar.show { transform: translateX(0); }
  .main-content { margin-left: 0; }
  .page-wrap { padding: 20px 16px 30px; }
  .topbar { min-height: 64px; }
}

@media (max-width: 767.98px) {
  .signup-heading { flex-direction: column; }
  .trial-badge { min-width: 0; }
  .signup-footer { flex-direction: column; align-items: stretch; }
  .signup-legal { max-width: none; }
  .signup-actions { justify-content: space-between; }
  .form-section { padding: 23px 0; }
  .trial-strip { align-items: flex-start; flex-direction: column; }
  .trial-progress { width: 100%; }
}

@media (max-width: 575.98px) {
  body { font-size: 13.5px; }
  .signup-main, .login-main { padding: 22px 16px 36px; }
  .signup-heading h2, .login-heading h2 { font-size: 1.65rem; }
  .signup-actions { flex-direction: column-reverse; align-items: stretch; gap: 8px; }
  .btn-create { min-width: 0; width: 100%; }
  .page-title { font-size: 1.35rem; }
  .stat-card { min-height: 110px; padding: 14px; }
  .stat-value { font-size: 1.5rem; }
  .table-card-header { align-items: flex-start; flex-direction: column; }
  .user-chip .user-meta { display: none !important; }
}

/* CAT HOTEL V4 - Chambres */
.room-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.room-kpi {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(20,31,55,.025);
}
.room-kpi-indicator { width: 8px; height: 42px; border-radius: 999px; flex: 0 0 auto; background: #d9dde5; }
.room-kpi-indicator.available { background: #2e8b62; }
.room-kpi-indicator.reserved { background: #c99a2e; }
.room-kpi-indicator.occupied { background: #b84b56; }
.room-kpi-indicator.cleaning { background: #3970ad; }
.room-kpi-indicator.maintenance { background: #596273; }
.room-kpi-indicator.total { background: var(--cat-navy); }
.room-kpi small { display: block; color: var(--cat-muted); font-size: .68rem; font-weight: 700; }
.room-kpi strong { display: block; margin-top: 3px; color: #111827; font-size: 1.45rem; line-height: 1; font-weight: 780; }

.room-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.room-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(20,31,55,.035);
}
.room-card-disabled { opacity: .72; }
.room-card-media { position: relative; height: 180px; overflow: hidden; background: #eef1f4; }
.room-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.room-photo-placeholder { height: 100%; display: grid; place-items: center; align-content: center; gap: 8px; color: #9299a4; background: linear-gradient(135deg,#f3f5f7,#eceff2); }
.room-photo-placeholder i { font-size: 1.55rem; color: #7f8793; }
.room-photo-placeholder span { font-size: .72rem; }
.room-number-badge, .room-archived-badge {
  position: absolute;
  top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 5px 9px;
  border-radius: 7px;
  font-size: .68rem;
  font-weight: 800;
  backdrop-filter: blur(5px);
}
.room-number-badge { left: 12px; color: #fff; background: rgba(11,22,63,.88); }
.room-archived-badge { right: 12px; color: #fff; background: rgba(32,37,47,.85); }
.room-card-body { padding: 16px 16px 14px; }
.room-card-body h3 { margin: 0; font-size: 1rem; font-weight: 760; color: #1f2937; }
.room-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 7px; color: var(--cat-muted); font-size: .72rem; }
.room-meta span { display: inline-flex; align-items: center; gap: 5px; }
.room-status { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 8px; font-size: .64rem; font-weight: 800; }
.room-status::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.room-status-available { color: #1f7651; background: #e9f4ef; }
.room-status-reserved { color: #8e6813; background: #fbf2df; }
.room-status-occupied { color: #a53a45; background: #f8e9eb; }
.room-status-cleaning { color: #2d609c; background: #eaf1f8; }
.room-status-maintenance { color: #505b69; background: #edf0f3; }
.room-rate { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; margin-top: 16px; }
.room-rate strong { color: #111827; font-size: 1.08rem; }
.room-rate span { color: var(--cat-muted); font-size: .71rem; }
.room-rate small { width: 100%; color: #8a6f17; font-size: .65rem; margin-top: 1px; }
.room-amenities { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; padding-top: 12px; border-top: 1px solid #edf0f3; color: #66707f; font-size: .7rem; line-height: 1.45; }
.room-amenities i { margin-top: 1px; color: #7e681d; flex: 0 0 auto; }
.room-amenities span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.room-card-footer { min-height: 56px; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--cat-border); background: #fbfbfc; }
.room-status-form { flex: 1 1 150px; }
.room-status-form .form-select { min-height: 34px; font-size: .73rem; border-radius: 7px; }
.room-actions { display: flex; align-items: center; gap: 5px; }

.empty-state { display: inline-flex; flex-direction: column; align-items: center; gap: 7px; color: var(--cat-muted); max-width: 420px; }
.empty-state > i { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 10px; background: #f2f4f6; color: var(--cat-navy); font-size: 1.2rem; }
.empty-state strong { color: #303a49; font-size: .92rem; }
.empty-state span { font-size: .76rem; }

.hotel-modal { border: 0; border-radius: 13px; box-shadow: 0 24px 60px rgba(8,17,45,.2); }
.hotel-modal .modal-header { padding: 18px 22px; border-bottom: 1px solid var(--cat-border); }
.hotel-modal .modal-footer { padding: 13px 22px; border-top: 1px solid var(--cat-border); background: #fbfbfc; }
.hotel-modal .modal-title { font-weight: 760; font-size: 1rem; }
.type-desc { max-width: 280px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amenity-preview { max-width: 300px; color: #66707f; font-size: .73rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 1399.98px) {
  .room-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .room-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .room-grid { grid-template-columns: 1fr; }
  .room-card-media { height: 190px; }
}

/* CAT HOTEL V5 - Réservations & Clients */
.reservation-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.reservation-kpi {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 86px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 11px;
  box-shadow: 0 2px 8px rgba(20,31,55,.025);
}
.reservation-kpi-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #786018;
  background: #f6f0de;
  border: 1px solid #eadfbf;
}
.reservation-kpi small { display: block; color: var(--cat-muted); font-size: .7rem; font-weight: 700; }
.reservation-kpi strong { display: block; margin-top: 2px; font-size: 1.55rem; line-height: 1.05; color: #131b2a; }

.reservation-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .67rem;
  font-weight: 800;
  white-space: nowrap;
}
.reservation-status::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.reservation-pending { color: #8b6514; background: #fbf2df; }
.reservation-confirmed { color: #2d609c; background: #eaf1f8; }
.reservation-inhouse { color: #1f7651; background: #e9f4ef; }
.reservation-completed { color: #566170; background: #eef1f4; }
.reservation-cancelled { color: #a53a45; background: #f8e9eb; }
.reservation-dates { display: inline-flex; align-items: center; gap: 6px; font-weight: 650; color: #313b4b; white-space: nowrap; }
.reservation-dates i { color: #8c95a3; font-size: .72rem; }
.balance-ok { display: inline-flex; align-items: center; gap: 5px; color: #237a57; font-size: .74rem; font-weight: 760; }

.reservation-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 22px;
  align-items: start;
}
.reservation-form-main { min-width: 0; }
.form-block {
  padding: 0 0 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--cat-border);
}
.form-block-title { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 6px; }
.form-block-title > i {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--cat-navy);
  background: #f1f3f6;
}
.form-block-title strong { display: block; color: #202939; font-size: .88rem; }
.form-block-title small { display: block; color: var(--cat-muted); margin-top: 2px; font-size: .72rem; }

.reservation-summary-panel {
  position: sticky;
  top: 82px;
  padding: 18px;
  border: 1px solid #e4e0d2;
  border-radius: 11px;
  background: #fcfbf7;
}
.summary-title { display: flex; align-items: center; gap: 8px; padding-bottom: 14px; margin-bottom: 8px; border-bottom: 1px solid #e9e3d1; font-weight: 800; color: #283044; }
.summary-title i { color: #8f7016; }
.summary-line, .summary-total { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; }
.summary-line span { color: #6c7481; font-size: .76rem; }
.summary-line strong { color: #323b49; font-size: .78rem; }
.summary-total { margin-top: 5px; padding-top: 13px; border-top: 1px solid #ded7c2; }
.summary-total span { font-weight: 800; color: #323b49; }
.summary-total strong { color: var(--cat-navy); font-size: 1.02rem; }
.summary-divider { height: 1px; background: #e2ddcf; margin: 12px 0 16px; }
.summary-note { display: flex; gap: 8px; margin-top: 16px; padding: 10px 11px; border-radius: 8px; background: #f4f0e3; color: #6c5b2b; font-size: .67rem; line-height: 1.45; }
.summary-note i { margin-top: 1px; flex: 0 0 auto; }

.back-link { display: inline-flex; align-items: center; gap: 6px; color: #687180; font-size: .75rem; font-weight: 700; }
.back-link:hover { color: var(--cat-navy); }
.stay-timeline {
  display: grid;
  grid-template-columns: minmax(0,1fr) 160px minmax(0,1fr);
  align-items: center;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--cat-border);
  border-radius: 11px;
  background: #fafbfc;
}
.stay-point { display: flex; gap: 11px; align-items: flex-start; }
.stay-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; background: #fff; border: 1px solid var(--cat-border); color: var(--cat-navy); }
.stay-point small, .stay-point span { display: block; color: var(--cat-muted); font-size: .68rem; }
.stay-point strong { display: block; color: #202938; margin: 1px 0 2px; font-size: .94rem; }
.stay-duration { display: grid; place-items: center; gap: 7px; color: #75611d; font-size: .68rem; font-weight: 800; }
.stay-duration div { width: 100%; height: 1px; background: #d8cfb5; position: relative; }
.stay-duration div::before, .stay-duration div::after { content: ""; position: absolute; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: #c2a64d; }
.stay-duration div::before { left: 0; }.stay-duration div::after { right: 0; }
.info-tile { height: 100%; min-height: 92px; padding: 14px; border: 1px solid var(--cat-border); border-radius: 9px; background: #fff; }
.info-tile small { display: block; color: var(--cat-muted); font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.info-tile strong { display: block; margin-top: 5px; color: #1f2937; }
.info-tile span { display: block; margin-top: 2px; color: #707887; font-size: .7rem; }
.reservation-notes { display: flex; gap: 10px; padding: 13px 14px; border-radius: 9px; background: #f7f8fa; border: 1px solid #e7e9ee; }
.reservation-notes > i { color: #7d681d; }
.reservation-notes strong { display: block; font-size: .76rem; }
.reservation-notes p { margin: 3px 0 0; color: #66707e; font-size: .73rem; line-height: 1.55; }

.billing-card { padding: 20px; background: var(--cat-navy); color: #fff; border-radius: 12px; box-shadow: 0 10px 28px rgba(11,22,63,.12); }
.billing-card .page-kicker { color: #d8bb60; }
.billing-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 15px; border-bottom: 1px solid rgba(255,255,255,.12); }
.billing-head h5 { margin: 4px 0 0; font-weight: 760; }
.billing-head > i { font-size: 1.2rem; color: #d6b953; }
.billing-row, .billing-total, .billing-balance { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; }
.billing-row { color: rgba(255,255,255,.67); font-size: .76rem; border-bottom: 1px solid rgba(255,255,255,.07); }
.billing-row strong { color: rgba(255,255,255,.9); }
.billing-row.paid { color: #b9d8cb; }
.billing-total { padding-top: 15px; font-weight: 800; }
.billing-total strong { color: #dfc566; font-size: 1.05rem; }
.billing-balance { margin-top: 3px; padding: 12px 13px; border-radius: 8px; background: rgba(184,63,73,.16); color: #ffd4d7; font-weight: 800; }
.billing-balance.settled { background: rgba(35,122,87,.19); color: #d2f0e3; }
.payment-progress { height: 5px; margin-top: 14px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.12); }
.payment-progress div { height: 100%; background: #d5b853; }
.contact-line { display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: start; padding: 11px 0; border-bottom: 1px solid #edf0f3; }
.contact-line:last-child { border-bottom: 0; }
.contact-line > i { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; background: #f2f4f6; color: var(--cat-navy); }
.contact-line small { display: block; color: var(--cat-muted); font-size: .65rem; }
.contact-line strong { display: block; color: #293241; margin-top: 1px; font-size: .78rem; font-weight: 730; word-break: break-word; }
.empty-inline { display: flex; align-items: center; gap: 11px; padding: 18px; border: 1px dashed #d9dde4; border-radius: 9px; background: #fbfbfc; }
.empty-inline > i { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; background: #eef1f4; color: #566170; }
.empty-inline strong, .empty-inline span { display: block; }
.empty-inline strong { font-size: .78rem; }.empty-inline span { color: var(--cat-muted); font-size: .69rem; margin-top: 2px; }
.payment-due-box { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 9px; background: #f7f2e4; border: 1px solid #eadfbe; }
.payment-due-box span { color: #75652f; font-size: .75rem; font-weight: 700; }.payment-due-box strong { color: #4f431c; }

@media (max-width: 1199.98px) {
  .reservation-form-grid { grid-template-columns: 1fr; }
  .reservation-summary-panel { position: static; }
}
@media (max-width: 991.98px) {
  .reservation-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .stay-timeline { grid-template-columns: 1fr; }
  .stay-duration { grid-template-columns: auto 1fr; justify-content: stretch; }
}
@media (max-width: 575.98px) {
  .reservation-kpi-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .reservation-kpi { padding: 12px; min-height: 80px; }
  .reservation-kpi-icon { display: none; }
  .reservation-kpi strong { font-size: 1.35rem; }
  .reservation-table th:nth-child(3), .reservation-table td:nth-child(3), .reservation-table th:nth-child(5), .reservation-table td:nth-child(5) { min-width: 150px; }
}

/* CAT HOTEL V6 - Réception, planning & housekeeping */
.section-head {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--cat-border);
}
.section-head h5 { font-size: .96rem; font-weight: 760; color: #202938; }

.reception-kpi-grid,
.housekeeping-kpis,
.planning-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.reception-kpi {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 98px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 11px;
}
.reception-kpi-icon,
.hk-kpi-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 9px;
  color: #80661a;
  background: #f7f2e4;
  border: 1px solid #eadfbd;
}
.reception-kpi small,
.housekeeping-kpis small,
.planning-kpis small { display: block; color: var(--cat-muted); font-size: .69rem; font-weight: 700; }
.reception-kpi strong { display: inline-block; margin-top: 2px; color: #131b2a; font-size: 1.45rem; line-height: 1; }
.reception-kpi span { display: block; color: #87909d; margin-top: 5px; font-size: .67rem; }

.reception-table > :not(caption) > * > * { padding: 13px 20px; border-color: #edf0f3; }
.reception-table thead th { color: #7a8492; background: #fbfbfc; font-size: .65rem; letter-spacing: .035em; text-transform: uppercase; }
.reception-table tbody td > strong { display: block; color: #263041; font-size: .8rem; }
.reception-table tbody td > small { display: block; color: #7b8491; margin-top: 3px; font-size: .67rem; }

.operation-empty {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 28px;
  color: var(--cat-muted);
}
.operation-empty.compact { min-height: 110px; justify-content: flex-start; padding: 12px 0; }
.operation-empty > i {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #f2f4f6;
  color: var(--cat-navy);
  font-size: 1.05rem;
}
.operation-empty strong { display: block; color: #354052; font-size: .82rem; }
.operation-empty span { display: block; margin-top: 3px; font-size: .7rem; }

.revenue-stack { display: grid; gap: 10px; margin: 8px 0 22px; }
.revenue-line { display: flex; align-items: center; justify-content: space-between; padding: 13px 14px; border-radius: 9px; background: #f8f9fb; border: 1px solid #e9ecf0; }
.revenue-line span { color: #7d8591; font-size: .68rem; font-weight: 800; }
.revenue-line strong { color: #182236; font-size: .95rem; }
.front-office-shortcuts { display: grid; margin-top: 8px; border-top: 1px solid var(--cat-border); }
.front-office-shortcuts a { display: grid; grid-template-columns: 24px 1fr 18px; align-items: center; gap: 8px; padding: 12px 2px; border-bottom: 1px solid #edf0f3; color: #3e4857; font-size: .74rem; font-weight: 700; }
.front-office-shortcuts a > i:first-child { color: #8a701f; }
.front-office-shortcuts a > i:last-child { color: #a6adb8; font-size: .7rem; }
.front-office-shortcuts a:hover { color: var(--cat-navy); }
.cleaning-list { display: grid; }
.cleaning-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 20px; border-bottom: 1px solid #edf0f3; color: inherit; }
.cleaning-row:last-child { border-bottom: 0; }
.cleaning-row:hover { background: #fbfbfc; }
.cleaning-room { display: flex; align-items: center; gap: 10px; min-width: 0; }
.cleaning-room > span { width: 38px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: #eef3f8; color: #2d609c; font-size: .75rem; font-weight: 800; }
.cleaning-room strong { display: block; color: #313b4b; font-size: .76rem; }
.cleaning-room small { display: block; color: #858d99; margin-top: 2px; font-size: .64rem; }
.cleaning-state { display: flex; align-items: center; gap: 8px; color: #89919d; font-size: .66rem; }

/* Planning */
.planning-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 13px 14px;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 11px;
}
.planning-nav, .planning-filter, .planning-legend { display: flex; align-items: center; gap: 7px; }
.planning-filter label { margin-right: 2px; color: #727b88; font-size: .68rem; font-weight: 700; }
.planning-filter .form-control { width: 145px; }
.planning-filter .form-select { width: 108px; }
.planning-filter .form-control,
.planning-filter .form-select { min-height: 34px; height: 34px; font-size: .72rem; border-radius: 8px; }
.planning-legend { gap: 12px; color: #6d7684; font-size: .64rem; }
.planning-legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.plan-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.plan-dot.pending { background: #c39a32; }.plan-dot.confirmed { background: #4a78ad; }.plan-dot.inhouse { background: #3d8b69; }.plan-dot.completed { background: #818a96; }

.planning-kpis > div,
.housekeeping-kpis > div {
  min-height: 82px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--cat-border);
  border-radius: 11px;
}
.planning-kpis strong,
.housekeeping-kpis strong { display: block; margin-top: 4px; color: #172134; font-size: 1.35rem; line-height: 1.05; }
.housekeeping-kpis > div { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 11px; align-items: center; }
.housekeeping-kpis .hk-kpi-icon { grid-row: 1 / 3; }
.housekeeping-kpis small { align-self: end; }
.housekeeping-kpis strong { align-self: start; }

.planning-card { background: #fff; border: 1px solid var(--cat-border); border-radius: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(20,31,55,.03); }
.planning-scroll { overflow: auto; max-width: 100%; }
.planning-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.planning-table th, .planning-table td { border-right: 1px solid #edf0f3; border-bottom: 1px solid #edf0f3; }
.planning-table thead th { position: sticky; top: 0; z-index: 3; width: 126px; min-width: 126px; height: 58px; padding: 8px; background: #f8f9fb; text-align: center; }
.planning-table thead th span { display: block; color: #8a929e; font-size: .58rem; font-weight: 800; letter-spacing: .08em; }
.planning-table thead th strong { display: block; margin-top: 3px; color: #2f3948; font-size: .75rem; }
.planning-table .planning-room-col { position: sticky; left: 0; z-index: 4; width: 180px; min-width: 180px; background: #fff; }
.planning-table thead .planning-room-col { z-index: 6; color: #6f7885; text-align: left; padding-left: 16px; font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; background: #f8f9fb; }
.planning-table th.is-today { background: #f7f2e5; }
.planning-table td.is-today { background: #fdfbf5; }
.planning-cell { width: 126px; min-width: 126px; height: 76px; padding: 5px; background: #fff; vertical-align: middle; }
.plan-room { padding: 10px 14px; }
.plan-room strong { display: block; color: var(--cat-navy); font-size: .88rem; }
.plan-room span { display: block; margin-top: 2px; color: #4e5969; font-size: .69rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.plan-room small { display: block; margin-top: 2px; color: #949ba5; font-size: .58rem; }
.plan-booking { height: 64px; display: flex; flex-direction: column; justify-content: center; padding: 8px 9px; border-radius: 8px; border: 1px solid transparent; overflow: hidden; }
.plan-booking strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; font-size: .68rem; }
.plan-booking span { display: block; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; opacity: .82; font-size: .58rem; }
.plan-booking.reservation-pending { color: #795a16; background: #fbf3e1; border-color: #ead8a9; }
.plan-booking.reservation-confirmed { color: #2b5c94; background: #eaf1f8; border-color: #c9d9ea; }
.plan-booking.reservation-inhouse { color: #1e6e4d; background: #e8f3ed; border-color: #c5e1d2; }
.plan-booking.reservation-completed { color: #586270; background: #eef1f4; border-color: #dadee3; }
.plan-free { height: 64px; border-radius: 8px; border: 1px dashed #edf0f3; }
.plan-room-state { height: 64px; display: flex; align-items: center; justify-content: center; gap: 6px; border-radius: 8px; font-size: .63rem; font-weight: 750; }
.plan-room-state.cleaning { color: #2d609c; background: #eaf1f8; }
.plan-room-state.maintenance { color: #596271; background: #edf0f3; }

/* Housekeeping */
.housekeeping-rooms-card { overflow: hidden; }
.hk-room-list { max-height: 650px; overflow: auto; }
.hk-room-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 66px; padding: 10px 15px; color: inherit; border-bottom: 1px solid #edf0f3; }
.hk-room-row:hover, .hk-room-row.active { background: #faf9f5; }
.hk-room-row.active { box-shadow: inset 3px 0 0 var(--cat-gold); }
.hk-room-number { width: 38px; height: 36px; display: grid; place-items: center; border-radius: 8px; background: #f1f3f6; color: var(--cat-navy); font-size: .74rem; font-weight: 850; }
.hk-room-meta { min-width: 0; }
.hk-room-meta strong { display: block; color: #354052; font-size: .73rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hk-room-meta span { display: block; margin-top: 2px; color: #8a929d; font-size: .6rem; }
.hk-filter { display: flex; gap: 7px; align-items: center; }
.hk-filter .form-select { min-height: 34px; height: 34px; width: 130px; font-size: .7rem; }
.hk-task-list { display: grid; }
.hk-task-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; border-bottom: 1px solid #edf0f3; }
.hk-task-card:last-child { border-bottom: 0; }
.hk-task-card:hover { background: #fcfcfd; }
.hk-task-main { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.hk-task-room { width: 48px; flex: 0 0 auto; text-align: center; }
.hk-task-room > span { width: 46px; height: 40px; display: grid; place-items: center; border-radius: 8px; background: var(--cat-navy); color: #fff; font-size: .78rem; font-weight: 800; }
.hk-task-room small { display: block; margin-top: 4px; color: #8d95a0; font-size: .56rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hk-task-content { min-width: 0; }
.hk-task-content > div > strong { color: #293343; font-size: .77rem; }
.hk-task-content p { margin: 5px 0 7px; color: #6d7683; font-size: .68rem; line-height: 1.45; }
.hk-task-meta { display: flex; flex-wrap: wrap; gap: 11px; color: #9299a4; font-size: .59rem; }
.hk-task-meta span { display: inline-flex; align-items: center; gap: 4px; }
.hk-task-actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.hk-status, .hk-priority { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 7px; font-size: .58rem; font-weight: 800; white-space: nowrap; }
.hk-status-pending { color: #805f18; background: #fbf2df; }.hk-status-progress { color: #2c5f9e; background: #eaf1f8; }.hk-status-completed { color: #20714f; background: #e9f4ef; }.hk-status-cancelled { color: #7b838e; background: #eef1f4; }
.hk-priority-normal { color: #626b77; background: #f0f2f4; }.hk-priority-low { color: #4c7188; background: #edf4f7; }.hk-priority-high { color: #9a6211; background: #fbf0df; }.hk-priority-urgent { color: #a83945; background: #f8e9eb; }

@media (max-width: 1199.98px) {
  .reception-kpi-grid, .housekeeping-kpis, .planning-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .planning-legend { width: 100%; }
}
@media (max-width: 767.98px) {
  .reception-kpi-grid, .housekeeping-kpis, .planning-kpis { grid-template-columns: 1fr 1fr; }
  .reception-kpi { min-height: 88px; padding: 13px; }
  .reception-kpi-icon { width: 36px; height: 36px; }
  .planning-toolbar { align-items: stretch; }
  .planning-filter { width: 100%; flex-wrap: wrap; }
  .planning-filter label { width: 100%; }
  .planning-filter .form-control { flex: 1 1 150px; width: auto; }
  .planning-filter .form-select { flex: 0 0 105px; }
  .planning-legend { overflow-x: auto; padding-bottom: 3px; }
  .hk-filter { width: 100%; flex-wrap: wrap; }
  .hk-filter .form-select { flex: 1 1 130px; width: auto; }
  .hk-task-card { align-items: flex-start; flex-direction: column; }
  .hk-task-actions { width: 100%; justify-content: flex-end; }
}
@media (max-width: 479.98px) {
  .reception-kpi-grid, .housekeeping-kpis, .planning-kpis { grid-template-columns: 1fr; }
  .reception-kpi { min-height: 76px; }
  .planning-nav { width: 100%; justify-content: space-between; }
  .planning-filter .btn { flex: 1 1 100%; }
}

/* ======================================================================
   CAT HOTEL V7 — Direction visuelle PMS professionnelle
   Bleu nuit / or / blanc, surfaces plates, densité opérationnelle.
   ====================================================================== */
:root {
  --cat-navy: #071a33;
  --cat-navy-2: #0d2747;
  --cat-gold: #c4a24a;
  --cat-gold-dark: #8d7229;
  --cat-gold-soft: #f7f3e8;
  --cat-bg: #f3f5f7;
  --cat-card: #ffffff;
  --cat-text: #182333;
  --cat-muted: #6d7786;
  --cat-border: #dde2e8;
  --cat-border-dark: #cbd2da;
  --sidebar-width: 252px;
}

body { background: var(--cat-bg); color: var(--cat-text); }
.btn { border-radius: 6px; font-weight: 700; min-height: 38px; }
.btn-sm { border-radius: 5px; min-height: 32px; }
.form-control, .form-select { border-radius: 6px; min-height: 42px; }
.card-soft, .surface-card, .filter-card, .table-card { border-radius: 8px; box-shadow: 0 1px 2px rgba(20,31,55,.025); }

/* Navigation latérale */
.sidebar {
  background: #071a33;
  border-right: 1px solid rgba(255,255,255,.04);
  box-shadow: 8px 0 28px rgba(5,20,38,.06);
}
.sidebar-brand { padding: 21px 18px 18px; }
.sidebar-logo { width: 40px; height: 40px; border-radius: 5px; }
.sidebar-brand-title { font-size: .92rem; letter-spacing: .055em; }
.sidebar-brand-sub { margin-top: 4px; font-size: .62rem; letter-spacing: .04em; }
.menu-label { margin: 19px 10px 6px; color: rgba(255,255,255,.34); font-size: .58rem; letter-spacing: .13em; font-weight: 800; text-transform: uppercase; }
.sidebar .nav-link {
  min-height: 40px;
  margin: 2px 0;
  padding: 9px 10px;
  border-radius: 5px;
  font-size: .78rem;
  font-weight: 620;
  color: rgba(255,255,255,.70);
  border-left: 2px solid transparent;
}
.sidebar .nav-link i { font-size: .9rem; color: rgba(255,255,255,.48); }
.sidebar .nav-link:hover { background: rgba(255,255,255,.045); }
.sidebar .nav-link.active {
  background: rgba(255,255,255,.075);
  border-left-color: var(--cat-gold);
  color: #fff;
}
.sidebar .nav-link.active i { color: #d5b55c; }
.sidebar-footer { background: #071a33; }

/* Barre supérieure globale */
.hotel-topbar {
  min-height: 72px;
  padding: 0 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid var(--cat-border);
  position: sticky;
  top: 0;
  z-index: 1020;
}
.topbar-leading, .topbar-actions, .topbar-user { display: flex; align-items: center; }
.topbar-leading { gap: 12px; min-width: 0; }
.topbar-actions { gap: 10px; }
.topbar-page-copy { min-width: 0; }
.topbar-title { font-size: .92rem; color: #172337; font-weight: 800; line-height: 1.2; }
.topbar-sub { margin-top: 3px; color: #7a8492; font-size: .66rem; }
.topbar-menu {
  width: 38px; height: 38px; border: 1px solid var(--cat-border); background: #fff; border-radius: 6px; color: var(--cat-navy); display: grid; place-items: center;
}
.topbar-menu i { font-size: 1.15rem; }
.topbar-user { gap: 10px; padding-left: 11px; border-left: 1px solid var(--cat-border); }
.topbar-user-copy { text-align: right; line-height: 1.25; }
.topbar-user-copy strong { display: block; color: #273244; font-size: .72rem; }
.topbar-user-copy span { display: block; margin-top: 3px; color: #8a929e; font-size: .61rem; }
.user-avatar { width: 36px; height: 36px; border-radius: 6px; background: var(--cat-navy); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: .72rem; border: 1px solid #142d49; }

/* Centre d'alertes */
.alert-center { position: relative; }
.alert-bell {
  width: 39px; height: 39px; border: 1px solid var(--cat-border); background: #fff; border-radius: 6px; color: #334052; display: grid; place-items: center; position: relative; transition: .16s ease;
}
.alert-bell:hover { border-color: #c9d0d8; background: #fafbfc; color: var(--cat-navy); }
.alert-bell i { font-size: .96rem; transform-origin: 50% 0; }
.alert-bell.has-critical { color: #a93542; border-color: #e8c5c9; background: #fffafa; }
.alert-bell.has-critical i { animation: hotelBellRing 2.2s ease-in-out infinite; }
.alert-count { position: absolute; right: -5px; top: -6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: grid; place-items: center; background: #a93542; color: #fff; border: 2px solid #fff; font-size: .55rem; font-weight: 900; line-height: 1; }
@keyframes hotelBellRing { 0%,76%,100%{transform:rotate(0)} 80%{transform:rotate(13deg)} 84%{transform:rotate(-12deg)} 88%{transform:rotate(9deg)} 92%{transform:rotate(-7deg)} 96%{transform:rotate(3deg)} }
.alert-panel {
  position: absolute; right: 0; top: calc(100% + 12px); width: min(410px, calc(100vw - 24px)); max-height: 620px; background: #fff; border: 1px solid #d8dde4; border-radius: 8px; box-shadow: 0 18px 46px rgba(10,25,45,.16); overflow: hidden; z-index: 1060;
}
.alert-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 16px 12px; border-bottom: 1px solid #edf0f3; }
.alert-panel-head strong { display: block; color: #172337; font-size: .78rem; }
.alert-panel-head span { display: block; margin-top: 3px; color: #8a929d; font-size: .61rem; }
.alert-sound-toggle { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--cat-border); border-radius: 5px; background: #fff; color: #5d6877; }
.alert-sound-toggle.muted { color: #a23c45; background: #fff8f8; }
.alert-panel-summary { display: flex; gap: 18px; padding: 8px 16px; background: #f8f9fb; border-bottom: 1px solid #eceff3; color: #7d8692; font-size: .61rem; }
.alert-panel-summary strong { color: #263247; }
.alert-list { max-height: 440px; overflow-y: auto; }
.alert-item { display: grid; grid-template-columns: 34px minmax(0,1fr) 14px; gap: 10px; align-items: start; padding: 12px 14px; color: inherit; border-bottom: 1px solid #edf0f3; transition: background .14s ease; }
.alert-item:last-child { border-bottom: 0; }
.alert-item:hover { background: #fafbfc; color: inherit; }
.alert-item-icon { width: 32px; height: 32px; border-radius: 6px; display: grid; place-items: center; background: #eef2f6; color: #526071; }
.alert-critical .alert-item-icon { background: #f8e9eb; color: #a63743; }
.alert-warning .alert-item-icon { background: #fbf2df; color: #956617; }
.alert-info .alert-item-icon { background: #eaf1f8; color: #2c5f9e; }
.alert-item-copy { min-width: 0; }
.alert-item-copy strong { display: block; color: #253145; font-size: .69rem; line-height: 1.35; }
.alert-item-copy span { display: block; margin-top: 3px; color: #7b8491; font-size: .61rem; line-height: 1.42; }
.alert-item-arrow { align-self: center; color: #b1b7c0; font-size: .65rem; }
.alert-panel-foot { padding: 9px 14px; color: #9aa1ab; background: #fbfcfd; border-top: 1px solid #edf0f3; font-size: .57rem; }
.alert-empty { display: flex; gap: 10px; align-items: center; padding: 24px 16px; color: #7c8693; }
.alert-empty > i { width: 32px; height: 32px; display: grid; place-items: center; color: #31765a; background: #eaf4ef; border-radius: 50%; }
.alert-empty strong { display: block; color: #344054; font-size: .7rem; }.alert-empty span { display: block; margin-top: 2px; font-size: .61rem; }

.page-wrap { padding: 26px 28px 38px; max-width: 1680px; margin: 0 auto; }
.page-title { color: #142136; font-size: 1.55rem; letter-spacing: -.025em; font-weight: 800; }
.page-subtitle { color: #77818f; font-size: .78rem; }
.page-kicker { color: #8d7229; font-size: .58rem; letter-spacing: .13em; font-weight: 900; }
.page-head-pro { display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px; }

/* Cartes de configuration et de dossier */
.pro-section { padding: 20px; overflow: visible; }
.pro-section-head { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 18px; }
.pro-section-head h5 { margin: 0; color: #202c3f; font-size: .86rem; font-weight: 800; }
.pro-section-head p { margin: 3px 0 0; color: #858e9a; font-size: .64rem; line-height: 1.45; }
.section-mark { flex: 0 0 auto; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #e0e4e9; border-radius: 5px; background: #f8f9fb; color: var(--cat-navy); }
.policy-example { display: flex; gap: 10px; padding: 12px 13px; border: 1px solid #e7dfc8; background: #fbf9f2; border-radius: 6px; color: #6c6552; }
.policy-example > i { color: #9a7a25; margin-top: 1px; }.policy-example strong { display:block;color:#594b28;font-size:.68rem}.policy-example span{display:block;margin-top:3px;font-size:.63rem;line-height:1.55}
.settings-summary { position: sticky; top: 94px; padding: 20px; background: var(--cat-navy); color: #fff; border-radius: 8px; border: 1px solid #102b49; }
.settings-summary-head { display: flex; gap: 11px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.12); }
.settings-summary-head > i { width: 34px; height: 34px; display:grid;place-items:center;border:1px solid rgba(196,162,74,.35);border-radius:5px;color:#dbbd69}.settings-summary-head strong{display:block;font-size:.75rem}.settings-summary-head span{display:block;margin-top:4px;color:rgba(255,255,255,.55);font-size:.61rem;line-height:1.4}
.settings-summary dl{margin:14px 0 18px}.settings-summary dl div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}.settings-summary dt{color:rgba(255,255,255,.55);font-size:.63rem;font-weight:600}.settings-summary dd{margin:0;color:#fff;font-size:.67rem;font-weight:800}

/* Chambre occupée : bloc client/compteur */
.room-card { border-radius: 8px; box-shadow: 0 1px 2px rgba(15,29,49,.035); }
.room-card-media { border-radius: 7px 7px 0 0; }
.room-live-stay { display: block; margin: 13px 0 4px; padding: 11px 12px; border: 1px solid #d8e0e8; border-left: 3px solid #4c7188; border-radius: 6px; background: #f8fafb; color: inherit; }
.room-live-stay:hover { color: inherit; background: #f5f8fa; }
.room-live-stay.state-due_soon { border-left-color: #b17a1b; background: #fcf8ef; }
.room-live-stay.state-overdue { border-left-color: #ae3d48; background: #fff7f7; }
.room-live-head, .room-live-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.room-live-head span { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155;font-size:.66rem;font-weight:750}.room-live-head span i{margin-right:6px;color:#687789}.room-live-head strong{white-space:nowrap;color:#66717f;font-size:.61rem}
.room-live-clock { display:flex;align-items:center;gap:7px;margin:8px 0 7px;color:#234565}.room-live-clock i{font-size:.72rem}.room-live-clock strong{font-size:.72rem;line-height:1.2}.room-live-stay.state-overdue .room-live-clock{color:#9e3440}.room-live-stay.state-due_soon .room-live-clock{color:#886017}
.room-live-meta { color:#8a929d;font-size:.57rem }.room-auto-state{display:inline-flex;align-items:center;gap:5px;color:#687381;background:#f2f4f6;border:1px solid #e0e4e9;border-radius:5px;padding:6px 8px;font-size:.58rem;font-weight:700}

/* Dossier séjour */
.stay-file-head { display:flex;align-items:flex-start;justify-content:space-between;gap:22px }.stay-file-head h1{margin:0;color:#172337;font-size:1.55rem;font-weight:800;letter-spacing:-.02em}.stay-file-head p{margin:5px 0 0;color:#7a8492;font-size:.73rem}.stay-file-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.stay-file-actions form{display:inline-flex}
.stay-control-strip { display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px 17px;border:1px solid #d7dfe6;border-left:4px solid #416b8a;border-radius:7px;background:#fff;box-shadow:0 1px 2px rgba(18,34,54,.025) }
.stay-control-strip.state-due_soon { border-left-color:#b57b1d;background:#fffdf8 }.stay-control-strip.state-overdue{border-left-color:#a93642;background:#fffafa}
.stay-control-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:6px;background:#edf3f7;color:#244f70;font-size:1.05rem}.state-due_soon .stay-control-icon{background:#faf1df;color:#8d6118}.state-overdue .stay-control-icon{background:#f8e9eb;color:#a23843}
.stay-control-main>span{display:block;color:#8b6f20;font-size:.55rem;font-weight:900;letter-spacing:.12em}.stay-control-main>strong{display:block;margin-top:3px;color:#1f2d42;font-size:.9rem}.stay-control-main>small{display:block;margin-top:3px;color:#7e8793;font-size:.61rem}
.stay-control-metrics{display:grid;grid-template-columns:repeat(3,minmax(88px,1fr));border-left:1px solid #e3e7ec}.stay-control-metrics>div{padding:4px 14px;border-right:1px solid #edf0f3}.stay-control-metrics>div:last-child{border-right:0}.stay-control-metrics span{display:block;color:#8b939f;font-size:.56rem}.stay-control-metrics strong{display:block;margin-top:3px;color:#263247;font-size:.75rem;font-variant-numeric:tabular-nums}
.stay-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stay-info-grid>div{padding:12px;border:1px solid #e4e7eb;border-radius:6px;background:#fbfcfd}.stay-info-grid span{display:block;color:#8b939f;font-size:.58rem}.stay-info-grid strong{display:block;margin-top:4px;color:#263247;font-size:.72rem}.stay-info-grid small{display:block;margin-top:3px;color:#8a929d;font-size:.57rem}

/* Folio */
.folio-list{border:1px solid #e4e7eb;border-radius:6px;overflow:hidden}.folio-line{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #edf0f3}.folio-line:last-child{border-bottom:0}.folio-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:5px;background:#f2f4f7;color:#4c5a6d}.folio-copy strong{display:block;color:#2a3547;font-size:.68rem}.folio-copy span{display:block;margin-top:2px;color:#8b939e;font-size:.57rem}.folio-amount{white-space:nowrap;color:#1d2b3f;font-size:.69rem;font-weight:800;font-variant-numeric:tabular-nums}.btn-icon-danger{width:29px;height:29px;display:grid;place-items:center;border:0;background:transparent;color:#a9444d;border-radius:4px}.btn-icon-danger:hover{background:#faecee}
.folio-summary{padding:19px;background:#fff;border:1px solid #dce1e7;border-top:3px solid var(--cat-navy);border-radius:7px;box-shadow:0 1px 2px rgba(15,29,49,.03)}.folio-summary-head{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid #e6e9ed}.folio-summary-head span{display:block;color:#8d7229;font-size:.55rem;font-weight:900;letter-spacing:.12em}.folio-summary-head strong{display:block;margin-top:3px;color:#203048;font-size:.82rem}.folio-summary-head>i{color:#7e8794;font-size:1rem}.folio-summary-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;color:#6d7784;font-size:.65rem;border-bottom:1px solid #eef0f3}.folio-summary-line strong{color:#344054;font-variant-numeric:tabular-nums}.folio-summary-line.paid strong{color:#276d52}.folio-summary-total{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #d9dee4;color:#172337;font-size:.78rem;font-weight:800}.folio-summary-balance{display:flex;justify-content:space-between;gap:12px;margin:11px 0 9px;padding:10px 11px;border-radius:5px;background:#fbf1e1;color:#805b18;font-size:.7rem;font-weight:800}.folio-summary-balance.settled{background:#eaf4ef;color:#1f6d4f}.folio-summary>small{display:block;margin-top:6px;color:#8c949f;font-size:.57rem}.pro-table th{font-size:.58rem;letter-spacing:.06em;color:#7d8692;text-transform:uppercase}.pro-table td{font-size:.66rem;color:#4e5968}.client-card-pro .contact-line{padding:10px 0;border-bottom:1px solid #edf0f3}.client-card-pro .contact-line:last-child{border-bottom:0}

/* Tables/KPI plus sobres */
.stat-card, .room-kpi, .reception-kpi, .planning-kpis>div, .housekeeping-kpis>div { border-radius: 7px; box-shadow:none; }
.table-card-header { border-bottom:1px solid var(--cat-border); }
.code-pill { border-radius:4px; }
.reservation-status, .hk-status, .hk-priority { border-radius: 4px; }

@media (max-width: 1199.98px) {
  .stay-control-strip { grid-template-columns: 42px minmax(0,1fr); }
  .stay-control-metrics { grid-column: 1 / -1; border-left:0; border-top:1px solid #e6e9ed; padding-top:9px; }
  .stay-info-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 991.98px) {
  .hotel-topbar { padding:0 16px; min-height:64px; }
  .page-wrap { padding:20px 16px 30px; }
  .alert-panel { position: fixed; top: 68px; right: 12px; }
  .settings-summary { position: static; }
}
@media (max-width: 767.98px) {
  .stay-file-head { flex-direction:column; }.stay-file-actions{justify-content:flex-start;width:100%}
  .stay-control-strip { grid-template-columns:36px minmax(0,1fr); padding:13px; }.stay-control-icon{width:34px;height:34px}.stay-control-metrics{grid-template-columns:repeat(3,1fr)}.stay-control-metrics>div{padding:4px 8px}.stay-control-metrics span{font-size:.52rem}.stay-control-metrics strong{font-size:.67rem}
  .stay-info-grid { grid-template-columns:1fr 1fr; }
  .folio-line { grid-template-columns:30px minmax(0,1fr) auto; }.folio-line form{grid-column:3}.folio-amount{grid-column:3;grid-row:1}
  .topbar-user-copy { display:none!important; }.topbar-user{padding-left:8px}.page-title{font-size:1.35rem}
}
@media (max-width: 479.98px) {
  .stay-info-grid { grid-template-columns:1fr; }
  .stay-control-metrics { grid-template-columns:1fr 1fr; }.stay-control-metrics>div:nth-child(3){grid-column:1/-1;border-top:1px solid #edf0f3;margin-top:5px;padding-top:9px}
  .alert-panel { left:12px; right:12px; width:auto; }
}
.reception-countdown{min-width:150px}.reception-countdown strong{display:block;color:#35556d;font-size:.66rem;font-variant-numeric:tabular-nums}.reception-countdown small{display:block;margin-top:3px;color:#8a929e;font-size:.56rem}.reception-countdown.state-due_soon strong{color:#8c6218}.reception-countdown.state-overdue strong{color:#a23944}.reception-row-warning{background:#fffdf8}.reception-row-overdue{background:#fff9f9}.reception-row-overdue td:first-child{box-shadow:inset 3px 0 0 #a83a45}.reception-kpi.kpi-alert{border-color:#e5c1c5;background:#fffafa}.reception-kpi.kpi-alert .reception-kpi-icon{background:#f8e9eb;border-color:#efcfd3;color:#a23a45}

/* ========================================================================== 
   CAT HOTEL V8 · Food & Beverage / Room Service / Kitchen
   Direction: PMS hôtelier sobre, dense et opérationnel.
   ========================================================================== */
.pro-card-head {
  min-height: 74px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--cat-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fff;
}
.pro-card-head h5 { margin: 3px 0 0; font-size: .98rem; font-weight: 780; color: #182234; }
.pro-card-head p { margin: 4px 0 0; color: var(--cat-muted); font-size: .72rem; }
.stat-money { font-size: 1.15rem !important; letter-spacing: -.02em; }
.status-chip {
  display: inline-flex; align-items: center; min-height: 25px; padding: 4px 8px;
  border-radius: 6px; font-size: .63rem; font-weight: 800; border: 1px solid #e2e5ea;
  background: #f6f7f9; color: #596273;
}
.status-chip.active { color: #1f6f50; background: #edf7f2; border-color: #cfe8dc; }
.status-chip.warning { color: #8c6410; background: #fbf5e7; border-color: #ead9a5; }
.status-chip.inactive { color: #6d7581; background: #f1f3f5; border-color: #dee2e7; }
.table-muted-row { opacity: .62; }
.empty-state.compact { width: 100%; max-width: none; min-height: 185px; justify-content: center; text-align: center; padding: 28px; }

.operation-shortcut {
  display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 12px;
  padding: 13px 0; border-bottom: 1px solid #eceef1; color: #273244;
}
.operation-shortcut:last-child { border-bottom: 0; }
.operation-shortcut > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #e1e4e9; border-radius: 8px; color: #786115; background: #fbf9f2; }
.operation-shortcut strong { display: block; font-size: .79rem; }
.operation-shortcut small { display: block; margin-top: 3px; color: #7a8492; font-size: .67rem; }
.operation-shortcut > i { color: #a0a7b1; font-size: .8rem; }
.operation-shortcut:hover { color: var(--cat-navy); }
.operation-shortcut:hover > span { border-color: #d6c88f; background: #f8f3e5; }

/* Restaurant live dashboard */
.rest-live-list { display: flex; flex-direction: column; }
.rest-live-row {
  display: grid; grid-template-columns: 42px minmax(160px,1fr) 90px 145px 105px 16px;
  gap: 12px; align-items: center; min-height: 70px; padding: 12px 18px;
  border-bottom: 1px solid #eceef1; color: #2b3443; background: #fff;
}
.rest-live-row:last-child { border-bottom: 0; }
.rest-live-row:hover { background: #fafbfc; color: #182234; }
.rest-live-icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid #e1e4e8; border-radius: 7px; color: var(--cat-navy); background: #f8f9fa; }
.rest-live-main strong, .rest-live-time strong { display: block; font-size: .76rem; }
.rest-live-main small, .rest-live-time small { display: block; margin-top: 3px; color: #848c98; font-size: .64rem; }
.rest-live-time { text-align: right; }
.rest-live-total { text-align: right; font-size: .75rem; font-weight: 800; }
.rest-live-row > i { color: #a4aab3; font-size: .73rem; }

.rest-status-pill {
  display: inline-flex; align-items: center; justify-content: center; min-height: 26px; padding: 4px 8px;
  border-radius: 6px; border: 1px solid #e0e4e9; background: #f6f7f8; color: #5b6572;
  font-size: .61rem; line-height: 1.15; font-weight: 800; text-align: center;
}
.rest-status-sent { --rest-accent:#547094; }
.rest-status-preparing { --rest-accent:#9b6815; }
.rest-status-ready { --rest-accent:#1f7454; }
.rest-status-served { --rest-accent:#44576e; }
.rest-status-closed { --rest-accent:#66707d; }
.rest-status-cancelled { --rest-accent:#a83d47; }
.rest-status-pill.rest-status-sent { color:#405d82; background:#eef3f8; border-color:#d9e3ee; }
.rest-status-pill.rest-status-preparing { color:#8a5e13; background:#faf3e4; border-color:#ead9af; }
.rest-status-pill.rest-status-ready { color:#1f6e50; background:#eaf5ef; border-color:#cfe7db; }
.rest-status-pill.rest-status-served { color:#45576b; background:#eff2f5; border-color:#dce1e6; }
.rest-status-pill.rest-status-closed { color:#626b77; background:#f2f3f5; border-color:#e1e3e6; }
.rest-status-pill.rest-status-cancelled { color:#9e3742; background:#faecee; border-color:#efcfd3; }

/* Restaurant configuration */
.config-list { border-top: 1px solid var(--cat-border); }
.config-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #eceef1; }
.config-row strong { display:block; font-size:.76rem; color:#263142; }
.config-row small { display:block; margin-top:3px; color:#8a929e; font-size:.63rem; }
.icon-button { width:33px; height:33px; border:1px solid #dde1e6; border-radius:7px; background:#fff; color:#5e6876; display:grid; place-items:center; }
.icon-button:hover { border-color:#c9ced6; color:var(--cat-navy); background:#f8f9fa; }
.rest-table-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.rest-table-card { position:relative; min-height:164px; padding:15px; border:1px solid #dfe3e8; border-top:3px solid #4f708f; border-radius:8px; background:#fff; }
.rest-table-card.status-occupied { border-top-color:#aa7b20; }
.rest-table-card.status-out_of_service { border-top-color:#7a828e; background:#f8f9fa; }
.rest-table-card.is-disabled { opacity:.57; }
.rest-table-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.rest-table-number { font-size:1rem; font-weight:820; color:#162238; }
.rest-table-meta { display:grid; gap:6px; margin-top:15px; color:#6f7885; font-size:.68rem; }
.rest-table-meta span { display:flex; align-items:center; gap:7px; }
.rest-table-meta i { width:14px; color:#8b7120; }
.rest-table-order { display:flex; align-items:center; gap:7px; margin-top:11px; padding:8px 9px; background:#fbf6e9; border:1px solid #eadcb4; border-radius:6px; color:#775c10; font-size:.66rem; }
.rest-table-actions { display:flex; align-items:center; gap:5px; margin-top:13px; padding-top:11px; border-top:1px solid #eceef1; }

/* Restaurant POS */
.restaurant-pos-wrap { max-width: 1660px; }
.restaurant-pos-layout { display:grid; grid-template-columns:minmax(0,1fr) 410px; gap:16px; align-items:start; }
.restaurant-menu-pane { min-width:0; }
.restaurant-cart-pane { position:sticky; top:78px; min-width:0; }
.rest-pos-toolbar { display:grid; grid-template-columns:minmax(0,1fr) 105px; gap:10px; }
.rest-search .form-control { min-height:42px; }
.rest-currency { min-height:42px; font-weight:800; }
.rest-category-tabs { display:flex; gap:7px; overflow-x:auto; padding-bottom:2px; scrollbar-width:thin; }
.rest-category-tabs button { white-space:nowrap; border:1px solid #dfe3e8; border-radius:6px; background:#fff; color:#5b6573; padding:7px 10px; font-size:.67rem; font-weight:750; }
.rest-category-tabs button:hover { border-color:#c9ced5; background:#f8f9fa; }
.rest-category-tabs button.active { color:#fff; background:var(--cat-navy); border-color:var(--cat-navy); }
.rest-products-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.rest-product-card { min-height:132px; padding:14px; text-align:left; border:1px solid #dfe3e8; border-radius:8px; background:#fff; color:#263142; display:flex; flex-direction:column; align-items:flex-start; transition:border-color .12s ease, box-shadow .12s ease, transform .12s ease; }
.rest-product-card:hover { border-color:#c7b66f; box-shadow:0 5px 16px rgba(30,39,58,.06); transform:translateY(-1px); }
.rest-product-card[hidden] { display:none!important; }
.rest-product-icon { width:34px; height:34px; display:grid; place-items:center; border:1px solid #e1e4e8; border-radius:7px; color:#806616; background:#fbf8ef; }
.rest-product-copy { display:block; min-width:0; margin-top:10px; }
.rest-product-copy strong { display:block; font-size:.78rem; line-height:1.3; overflow:hidden; text-overflow:ellipsis; }
.rest-product-copy small { display:block; margin-top:3px; color:#8a929e; font-size:.62rem; }
.rest-product-price { margin-top:auto; padding-top:11px; font-size:.78rem; font-weight:850; color:#0f1e39; }
.rest-cart-card { overflow:visible; }
.rest-cart-head { padding:16px 17px; border-bottom:1px solid var(--cat-border); display:flex; align-items:center; justify-content:space-between; gap:10px; }
.rest-cart-head h5 { margin:2px 0 0; font-size:.94rem; font-weight:800; }
.rest-order-type { padding:12px 14px; border-bottom:1px solid var(--cat-border); display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.rest-order-type label { margin:0; }
.rest-order-type input { position:absolute; opacity:0; pointer-events:none; }
.rest-order-type span { min-height:55px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:1px solid #dfe3e8; border-radius:7px; color:#626c79; background:#fff; font-size:.62rem; font-weight:800; cursor:pointer; }
.rest-order-type span i { font-size:.9rem; }
.rest-order-type input:checked + span { color:#fff; background:var(--cat-navy); border-color:var(--cat-navy); }
.rest-context-fields { padding:14px 15px; border-bottom:1px solid var(--cat-border); display:grid; gap:12px; background:#fbfbfc; }
.rest-context-fields [hidden] { display:none!important; }
.rest-context-fields .form-select,.rest-context-fields .form-control { min-height:40px; font-size:.78rem; }
.rest-context-fields .form-label { font-size:.7rem; margin-bottom:4px; }
.rest-context-fields .form-text { font-size:.6rem; color:#8a929e; }
.rest-cart-lines { max-height:310px; overflow-y:auto; scrollbar-width:thin; }
.rest-cart-empty { min-height:145px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; color:#9299a4; text-align:center; padding:20px; }
.rest-cart-empty[hidden] { display:none!important; }
.rest-cart-empty i { font-size:1.25rem; color:#7a8492; }
.rest-cart-empty strong { color:#586271; font-size:.76rem; }
.rest-cart-empty span { font-size:.65rem; }
.rest-cart-line { display:grid; grid-template-columns:minmax(0,1fr) 82px 88px 26px; gap:8px; align-items:center; padding:11px 14px; border-bottom:1px solid #eceef1; }
.rest-cart-line-copy { min-width:0; }
.rest-cart-line-copy strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.72rem; }
.rest-cart-line-copy small { display:block; margin-top:3px; color:#9198a3; font-size:.58rem; }
.rest-qty-control { height:30px; display:grid; grid-template-columns:28px 1fr 28px; align-items:center; border:1px solid #dfe3e8; border-radius:6px; overflow:hidden; }
.rest-qty-control button { height:100%; border:0; background:#f8f9fa; color:#3e4a5c; }
.rest-qty-control button:hover { background:#eef1f4; }
.rest-qty-control span { text-align:center; font-size:.66rem; font-weight:800; }
.rest-cart-line-total { text-align:right; font-size:.68rem; }
.rest-remove-line { width:26px; height:26px; display:grid; place-items:center; border:0; background:transparent; color:#a5abb4; font-size:.65rem; }
.rest-remove-line:hover { color:#b83f49; }
.rest-cart-summary { padding:12px 15px; border-top:1px solid var(--cat-border); background:#fbfbfc; }
.rest-cart-summary > div { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:4px 0; color:#66707e; font-size:.7rem; }
.rest-cart-summary strong { color:#2c3645; }
.rest-discount-row .input-group { width:145px; }
.rest-discount-row .form-control { min-height:32px; height:32px; font-size:.7rem; }
.rest-discount-row .input-group-text { min-height:32px; padding:4px 7px; font-size:.62rem; }
.rest-cart-summary .rest-cart-total { margin-top:6px; padding-top:10px; border-top:1px solid #dfe3e8; color:#162238; font-size:.85rem; font-weight:800; }
.rest-cart-total strong { font-size:1.02rem; }
.rest-payment-block { padding:13px 15px; border-top:1px solid var(--cat-border); }
.rest-payment-block .form-select,.rest-payment-block .form-control { min-height:40px; font-size:.78rem; }
.rest-submit-order { min-height:48px; border-radius:0 0 10px 10px; }

/* Order detail */
.rest-order-hero { min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; border:1px solid #dfe3e8; border-left:4px solid var(--rest-accent,#526a85); border-radius:8px; background:#fff; }
.rest-order-hero-main { display:flex; align-items:center; gap:13px; min-width:0; }
.rest-order-hero-icon { width:46px; height:46px; flex:0 0 auto; display:grid; place-items:center; border:1px solid #dfe3e8; border-radius:7px; background:#f8f9fa; color:var(--cat-navy); font-size:1.1rem; }
.rest-order-hero-main small { display:block; color:#8a929e; font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.rest-order-hero-main strong { display:block; margin-top:3px; color:#172337; font-size:1rem; }
.rest-order-hero-main span { display:block; margin-top:3px; color:#717a87; font-size:.7rem; }
.rest-order-hero-status { text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:5px; }
.rest-order-hero-status > strong { font-size:1.1rem; color:#111827; }
.rest-order-hero-status > small { color:#818996; font-size:.65rem; }
.rest-order-totals { width:min(360px,100%); margin-left:auto; padding:14px 18px 18px; }
.rest-order-totals > div { display:flex; justify-content:space-between; gap:15px; padding:5px 0; color:#66707f; font-size:.72rem; }
.rest-order-totals strong { color:#2b3544; }
.rest-order-totals .grand { margin-top:6px; padding-top:10px; border-top:1px solid #dfe3e8; color:#162238; font-size:.9rem; font-weight:800; }
.rest-order-note { display:flex; align-items:flex-start; gap:10px; color:#505b6a; font-size:.76rem; line-height:1.55; }
.rest-order-note i { color:#8a6f18; margin-top:2px; }
.rest-order-timeline { position:relative; display:grid; gap:0; }
.rest-order-timeline > div { position:relative; display:grid; grid-template-columns:33px 1fr; gap:10px; min-height:51px; }
.rest-order-timeline > div:not(:last-child)::after { content:""; position:absolute; left:16px; top:31px; bottom:0; width:1px; background:#dfe3e8; }
.rest-order-timeline > div > i { width:33px; height:33px; z-index:1; display:grid; place-items:center; border:1px solid #dfe3e8; border-radius:50%; background:#fff; color:#9aa1ab; font-size:.75rem; }
.rest-order-timeline > div.done > i { background:var(--cat-navy); border-color:var(--cat-navy); color:#fff; }
.rest-order-timeline strong { display:block; padding-top:2px; font-size:.72rem; color:#3c4756; }
.rest-order-timeline small { display:block; margin-top:2px; color:#9299a4; font-size:.62rem; }
.payment-status-box { display:grid; grid-template-columns:38px 1fr; gap:10px; align-items:center; padding:11px; border:1px solid #dfe3e8; border-radius:7px; background:#fafbfc; }
.payment-status-box > span { width:34px; height:34px; display:grid; place-items:center; border-radius:7px; background:#edf1f5; color:#536273; }
.payment-status-box.paid > span { background:#e9f4ef; color:#1f7454; }
.payment-status-box small { display:block; color:#858e9a; font-size:.61rem; }
.payment-status-box strong { display:block; margin-top:2px; font-size:.75rem; color:#2c3645; }
.folio-link { display:grid; grid-template-columns:33px 1fr auto; align-items:center; gap:9px; padding:10px; border:1px solid #e1e4e8; border-radius:7px; color:#2f3948; }
.folio-link > i:first-child { width:31px; height:31px; display:grid; place-items:center; border-radius:6px; background:#f7f2df; color:#7a6115; }
.folio-link small { display:block; color:#8a929e; font-size:.58rem; }
.folio-link strong { display:block; margin-top:2px; font-size:.69rem; }
.folio-link > i:last-child { color:#a6acb5; font-size:.65rem; }
.folio-detail { display:block; margin-top:4px; color:#7b8491; font-size:.62rem; line-height:1.45; }
.folio-order-link { display:inline-flex; align-items:center; gap:4px; margin-top:4px; color:#765f18; font-size:.61rem; font-weight:750; }

/* Kitchen display */
.kitchen-wrap { max-width:1720px; }
.kitchen-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; }
.kitchen-column { min-width:0; border:1px solid #dfe3e8; border-radius:8px; background:#f3f5f7; overflow:hidden; }
.kitchen-column > header { min-height:67px; padding:12px 14px; display:grid; grid-template-columns:36px 1fr 31px; gap:10px; align-items:center; background:#fff; border-bottom:1px solid #dfe3e8; }
.kitchen-column > header > span { width:34px; height:34px; display:grid; place-items:center; border:1px solid #e0e4e8; border-radius:7px; color:#53667e; background:#f7f9fa; }
.kitchen-column.status-preparing > header > span { color:#8b6118; background:#faf4e6; border-color:#eadbb6; }
.kitchen-column.status-ready > header > span { color:#1f7454; background:#eaf5ef; border-color:#d0e8dc; }
.kitchen-column > header strong { display:block; color:#273244; font-size:.78rem; }
.kitchen-column > header small { display:block; margin-top:2px; color:#8a929e; font-size:.6rem; }
.kitchen-column > header b { width:29px; height:29px; display:grid; place-items:center; border-radius:6px; background:#eef1f4; color:#374354; font-size:.68rem; }
.kitchen-cards { min-height:300px; padding:10px; display:grid; gap:9px; }
.kitchen-ticket { background:#fff; border:1px solid #dfe3e8; border-left:3px solid #71859d; border-radius:7px; overflow:hidden; }
.kitchen-column.status-preparing .kitchen-ticket { border-left-color:#b27b1f; }
.kitchen-column.status-ready .kitchen-ticket { border-left-color:#2a7c5c; }
.kitchen-ticket.is-late { border-color:#d9a8ae; border-left-color:#b33d49; }
.kitchen-ticket-head { padding:11px 12px; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; border-bottom:1px solid #eceef1; }
.kitchen-ticket-head strong { display:block; font-size:.74rem; color:#182337; }
.kitchen-ticket-head span { display:flex; align-items:center; gap:5px; margin-top:4px; color:#707a87; font-size:.64rem; }
.kitchen-ticket-head time { flex:0 0 auto; display:inline-flex; align-items:center; min-height:24px; padding:4px 7px; border-radius:5px; background:#f2f4f6; color:#596474; font-size:.61rem; font-weight:800; }
.kitchen-ticket.is-late time { color:#9b3741; background:#fae9eb; }
.kitchen-ticket-items { padding:7px 12px; }
.kitchen-ticket-items > div { display:grid; grid-template-columns:38px 1fr; gap:7px; padding:6px 0; border-bottom:1px dotted #d9dde3; }
.kitchen-ticket-items > div:last-child { border-bottom:0; }
.kitchen-ticket-items strong { color:#0f1f39; font-size:.76rem; }
.kitchen-ticket-items span { color:#323d4c; font-size:.72rem; font-weight:700; }
.kitchen-ticket-items small { display:block; margin-top:3px; color:#9a6217; font-size:.61rem; font-weight:650; }
.kitchen-note { margin:0 12px 9px; padding:8px 9px; display:flex; align-items:flex-start; gap:7px; border:1px solid #eadbb7; border-radius:6px; background:#fcf8ed; color:#6c5817; font-size:.65rem; line-height:1.45; }
.kitchen-note i { margin-top:1px; }
.kitchen-ticket-foot { padding:9px 10px; display:flex; justify-content:space-between; gap:7px; border-top:1px solid #eceef1; background:#fafbfc; }
.kitchen-ticket-foot form { margin-left:auto; }
.kitchen-empty { min-height:130px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:#969da7; font-size:.67rem; }
.kitchen-empty i { font-size:1.1rem; color:#818a96; }

@media (max-width: 1399.98px) {
  .rest-products-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .restaurant-pos-layout { grid-template-columns:minmax(0,1fr) 370px; }
  .rest-table-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1199.98px) {
  .restaurant-pos-layout { grid-template-columns:1fr; }
  .restaurant-cart-pane { position:static; }
  .rest-cart-lines { max-height:none; }
  .kitchen-board { grid-template-columns:1fr; }
  .kitchen-cards { min-height:0; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 991.98px) {
  .rest-live-row { grid-template-columns:38px minmax(0,1fr) 115px 90px 14px; }
  .rest-live-time { display:none; }
  .rest-live-total { display:none; }
  .rest-products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767.98px) {
  .rest-table-grid { grid-template-columns:1fr; }
  .rest-order-hero { align-items:flex-start; flex-direction:column; }
  .rest-order-hero-status { align-items:flex-start; text-align:left; }
  .kitchen-cards { grid-template-columns:1fr; }
  .pro-card-head { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 575.98px) {
  .rest-products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .rest-product-card { min-height:122px; padding:11px; }
  .rest-pos-toolbar { grid-template-columns:1fr 90px; }
  .rest-live-row { grid-template-columns:34px minmax(0,1fr) 105px 12px; padding:10px 12px; }
  .rest-live-row .rest-live-total { display:none; }
  .rest-cart-line { grid-template-columns:minmax(0,1fr) 78px 25px; }
  .rest-cart-line-total { display:none; }
  .rest-order-type span { min-height:52px; font-size:.57rem; }
}
.stat-icon.blue { background:#edf2f7; color:#3d6087; }

/* --------------------------------------------------------------------------
   CAT HOTEL V9 - Tarification nuit / passage
   -------------------------------------------------------------------------- */
.booking-mode-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-mode-option{border:1px solid #dce2e9;background:#fff;display:flex;align-items:center;gap:12px;padding:14px 15px;cursor:pointer;transition:.16s ease;color:#1c2b3f}.booking-mode-option>i{width:38px;height:38px;border:1px solid #dce2e9;display:grid;place-items:center;font-size:17px;color:#0b163f;background:#f7f9fb}.booking-mode-option span{display:flex;flex-direction:column;line-height:1.2}.booking-mode-option strong{font-size:13px}.booking-mode-option small{font-size:11px;color:#7a8492;margin-top:4px}.btn-check:checked+.booking-mode-option{border-color:#b28a22;box-shadow:inset 0 0 0 1px #b28a22;background:#fffdf7}.btn-check:checked+.booking-mode-option>i{border-color:#b28a22;background:#f8f2df;color:#7a5e12}.passage-end-preview{border:1px solid #dfe4ea;background:#f8fafc;display:flex;align-items:center;gap:10px;padding:11px 13px;font-size:12px;color:#677384}.passage-end-preview i{color:#a88419}.passage-end-preview strong{margin-left:auto;color:#0b163f;font-size:13px}.booking-mode-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #dfe4ea;background:#f8fafc;color:#536174;padding:3px 7px;font-size:10px;font-weight:700;letter-spacing:.01em}.booking-mode-pill.hourly{border-color:#d9c88f;background:#fffaf0;color:#705817}.room-rate-stack{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:3px}.room-rate-stack>div{display:flex;align-items:baseline;gap:5px}.room-rate-stack .hourly-price strong{color:#8a6b17}.room-rate-stack small{display:flex;align-items:center;gap:5px;color:#707b89}.plan-booking.plan-hourly{border-left:3px solid #b28a22!important;background:#fffaf0!important;color:#4c3a0b!important}.plan-booking.plan-hourly span{color:#78652c!important}.plan-booking small{display:block;font-size:9px;margin-top:2px;opacity:.8}.booking-period-block .form-control,.booking-period-block .form-select{min-height:43px}
@media(max-width:767.98px){.booking-mode-selector{grid-template-columns:1fr}.booking-mode-option{padding:12px}.passage-end-preview{align-items:flex-start;flex-wrap:wrap}.passage-end-preview strong{width:100%;margin-left:48px}}

/* --------------------------------------------------------------------------
   CAT HOTEL V10 - Tarification flexible nuitée / heure / journée
   -------------------------------------------------------------------------- */
.booking-mode-selector{grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-mode-pill.daily{border-color:#c7d5e5;background:#f2f6fb;color:#375777}
.plan-booking.plan-daily{border-left:3px solid #42698d!important;background:#f1f6fb!important;color:#1f405f!important}
.plan-booking.plan-daily span{color:#59748e!important}
.room-rate-stack .daily-price strong{color:#315a7d}
.pricing-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pricing-mode-check{position:relative;min-height:92px;border:1px solid #dce2e9;background:#fff;display:flex;align-items:flex-start;gap:12px;padding:14px;cursor:pointer;transition:.16s ease;color:#1c2b3f}
.pricing-mode-check input{position:absolute;right:12px;top:12px;width:16px;height:16px;accent-color:#0b163f}
.pricing-mode-check:has(input:checked){border-color:#a88419;box-shadow:inset 0 0 0 1px #a88419;background:#fffdf8}
.pricing-mode-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border:1px solid #dde3e9;background:#f7f9fb;color:#0b163f;font-size:16px}
.pricing-mode-check>span:last-child{display:flex;flex-direction:column;padding-right:20px}
.pricing-mode-check strong{font-size:12px;color:#15243a}
.pricing-mode-check small{font-size:10px;line-height:1.45;color:#7c8693;margin-top:4px}
.passage-end-preview.daily{border-color:#d8e2ec;background:#f5f8fb}
.passage-end-preview.daily i{color:#42698d}
@media(max-width:991.98px){.pricing-mode-grid{grid-template-columns:1fr}.booking-mode-selector{grid-template-columns:1fr}}

/* ========================================================================== 
   CAT HOTEL V11 — Identité CodeurauTop
   Palette officielle issue du logo utilisateur : bleu #0B1054, rouge #FE0000,
   blanc. Le rouge est réservé aux accents et actions fortes.
   ========================================================================== */
:root {
  --cat-navy: #0B1054;
  --cat-navy-2: #171E72;
  --cat-navy-3: #252C82;
  --cat-gold: #E61919;
  --cat-gold-dark: #B90F14;
  --cat-gold-soft: #FFF1F1;
  --cat-red: #E61919;
  --cat-red-dark: #B90F14;
  --cat-red-soft: #FFF1F1;
  --cat-bg: #F5F7FB;
  --cat-card: #FFFFFF;
  --cat-text: #1A2236;
  --cat-muted: #6D7688;
  --cat-border: #E3E7EF;
  --cat-border-dark: #CDD3DF;
  --sidebar-width: 260px;
}

body { background: var(--cat-bg); color: var(--cat-text); }
a { color: var(--cat-navy-2); }
a:hover { color: var(--cat-navy); }
.text-gold { color: #FF302C !important; }
.page-kicker, .auth-kicker { color: var(--cat-red-dark); }

/* Primary actions formerly named "gold" now follow the CodeurauTop red accent. */
.btn-gold {
  background: var(--cat-red) !important;
  border-color: var(--cat-red) !important;
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(230,25,25,.12);
}
.btn-gold:hover, .btn-gold:focus {
  background: var(--cat-red-dark) !important;
  border-color: var(--cat-red-dark) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(185,15,20,.16);
}
.btn-navy { background: var(--cat-navy) !important; border-color: var(--cat-navy) !important; }
.btn-navy:hover { background: var(--cat-navy-2) !important; border-color: var(--cat-navy-2) !important; }
.btn-outline-navy { color: var(--cat-navy); border-color: #C9CFDC; }
.btn-outline-navy:hover { color:#fff; background:var(--cat-navy); border-color:var(--cat-navy); }

/* Sidebar — compact business application treatment */
.sidebar {
  background: var(--cat-navy);
  border-right: 1px solid rgba(255,255,255,.06);
  box-shadow: 10px 0 28px rgba(11,16,84,.08);
}
.sidebar-brand {
  min-height: 82px;
  padding: 16px 15px 14px;
  gap: 11px;
  border-bottom: 1px solid rgba(255,255,255,.09);
}
.sidebar-logo-wrap {
  width: 45px;
  height: 45px;
  flex: 0 0 45px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 6px 16px rgba(0,0,0,.14);
}
.sidebar-logo {
  width: 45px !important;
  height: 45px !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
}
.sidebar-brand-copy { min-width: 0; }
.sidebar-brand-title { color:#fff; font-size:.94rem; letter-spacing:.055em; font-weight:850; }
.sidebar-brand-sub { max-width:165px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:rgba(255,255,255,.54); font-size:.61rem; letter-spacing:.035em; }
.sidebar-divider { display:none; }
.sidebar-scroll { padding: 10px 10px 94px; }
.menu-label {
  padding: 14px 10px 6px;
  color: rgba(255,255,255,.38);
  font-size: .56rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  font-weight: 850;
}
.sidebar .nav-link {
  min-height: 43px;
  margin: 2px 0;
  padding: 6px 8px;
  gap: 10px;
  border: 0;
  border-radius: 8px;
  color: rgba(255,255,255,.72);
  font-size: .73rem;
  font-weight: 650;
  position: relative;
}
.sidebar .nav-link > i {
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: rgba(255,255,255,.075);
  color: rgba(255,255,255,.72);
  font-size: .9rem;
  transition: .16s ease;
}
.sidebar .nav-link:hover { background:rgba(255,255,255,.07); color:#fff; }
.sidebar .nav-link:hover > i { background:rgba(255,255,255,.12); color:#fff; }
.sidebar .nav-link.active {
  color:#fff;
  background:#fff;
  border-left:0;
  box-shadow:0 8px 20px rgba(0,0,0,.11);
}
.sidebar .nav-link.active::before {
  content:"";
  position:absolute;
  left:-10px;
  width:4px;
  height:22px;
  top:50%;
  transform:translateY(-50%);
  background:var(--cat-red);
  border-radius:0 4px 4px 0;
}
.sidebar .nav-link.active span { color:var(--cat-navy); }
.sidebar .nav-link.active > i { color:#fff; background:var(--cat-red); }
.nav-coming {
  margin-left:auto;
  padding:2px 5px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:4px;
  color:rgba(255,255,255,.35);
  font-size:.48rem;
  font-weight:700;
  letter-spacing:.03em;
}
.sidebar .nav-link.active .nav-coming { color:#8990a0; border-color:#e4e7ec; }
.sidebar-footer { background:#080D49; border-top:1px solid rgba(255,255,255,.08); padding:10px; }
.sidebar-footer .nav-link:hover > i { background:rgba(230,25,25,.9); }

/* Top bar */
.main-content { background:var(--cat-bg); }
.topbar {
  min-height: 70px;
  background: rgba(255,255,255,.98);
  border-bottom:1px solid var(--cat-border);
  box-shadow: 0 4px 18px rgba(21,30,72,.025);
}
.topbar-title { color:var(--cat-navy); font-weight:850; }
.user-avatar { background:var(--cat-navy); border:0; box-shadow:0 0 0 3px #EEF0FA; }
.alert-bell.has-critical { color:var(--cat-red); border-color:#F1BABB; background:#FFF7F7; }
.alert-count { background:var(--cat-red) !important; }

/* Cards and dashboard */
.card-soft, .table-card, .planning-card, .pro-card, .room-card, .reservation-kpi, .info-tile {
  border-color: var(--cat-border) !important;
  box-shadow: 0 5px 18px rgba(27,35,78,.035) !important;
}
.welcome-card { border-left-color: var(--cat-red); }
.stat-icon { color:var(--cat-navy); background:#F0F2FA; }
.table thead th { background:#F8F9FC; color:#747D90; }
.table tbody tr:hover { background:#FAFBFE; }

/* Authentication pages */
.signup-page, .login-page { background:#EEF1F7; }
.signup-shell, .login-shell { box-shadow:0 20px 70px rgba(11,16,84,.10); }
.signup-aside, .login-brand-panel {
  background: var(--cat-navy);
  position: relative;
  overflow: hidden;
}
.signup-aside::before, .login-brand-panel::before {
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:5px;
  background:var(--cat-red);
}
.signup-aside::after, .login-brand-panel::after {
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  right:-190px;
  bottom:-190px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:0 0 0 55px rgba(255,255,255,.018),0 0 0 110px rgba(255,255,255,.012);
  pointer-events:none;
}
.product-mark { position:relative; z-index:1; gap:13px; }
.product-mark img {
  width:56px;
  height:56px;
  object-fit:contain;
  border-radius:9px;
  border:1px solid rgba(255,255,255,.18);
  background:var(--cat-navy);
}
.product-mark strong { font-size:1.02rem; letter-spacing:.055em; }
.eyebrow-light { color:#FF6A67; }
.signup-aside-copy, .login-copy, .aside-points, .trial-panel, .login-feature-list, .login-brand-footer { position:relative; z-index:1; }
.aside-point > i {
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.07);
  color:#fff;
}
.login-feature-list i { color:#FF5D58; }
.trial-panel-icon { background:var(--cat-red); color:#fff; }
.trial-badge { border-color:#F4C7C8; background:#FFF7F7; color:var(--cat-red-dark); }
.trial-badge small { color:#8F4A4C; }
.section-icon { background:#F0F2FA; color:var(--cat-navy); border:1px solid #E3E6F1; }
.signup-form { border-top-color:#E6E9F0; }
.form-section { border-bottom-color:#E6E9F0; }
.field-with-icon > i { color:#7C8497; }
.form-control:focus, .form-select:focus {
  border-color:#AEB5D8;
  box-shadow:0 0 0 .18rem rgba(11,16,84,.08);
}
.login-trial-note i { color:var(--cat-red); }

/* Replace remaining visual gold cues in pricing and F&B with brand accents. */
.booking-mode-option:has(+ *) { transition:.16s ease; }
.btn-check:checked + .booking-mode-option,
.pricing-mode-check:has(input:checked) {
  border-color: rgba(230,25,25,.55) !important;
  box-shadow: inset 0 0 0 1px rgba(230,25,25,.35) !important;
  background:#FFF9F9 !important;
}
.btn-check:checked + .booking-mode-option > i,
.pricing-mode-check:has(input:checked) .pricing-mode-icon {
  border-color:#F0B8BA !important;
  background:#FFF0F0 !important;
  color:var(--cat-red-dark) !important;
}
.pricing-mode-check input { accent-color:var(--cat-red); }
.booking-mode-pill.hourly { border-color:#F0C4C5; background:#FFF4F4; color:#9B292D; }
.plan-booking.plan-hourly { border-left-color:var(--cat-red) !important; background:#FFF6F6 !important; color:#7C2225 !important; }
.room-rate-stack .hourly-price strong { color:var(--cat-red-dark); }
.rest-product-icon, .folio-link > i:first-child { background:#FFF3F3; color:#A52C30; border-color:#F2D0D1; }
.rest-order-note i, .folio-order-link { color:#A52C30; }

/* A little more discipline on shapes: less template-like, more enterprise. */
.btn { border-radius:7px; font-weight:700; }
.form-control, .form-select, .input-group-text { border-radius:7px; }
.card-soft, .table-card, .planning-card, .pro-card { border-radius:9px; }
.page-title { color:#18204D; letter-spacing:-.025em; }

@media (max-width: 991.98px) {
  .sidebar { box-shadow:18px 0 40px rgba(11,16,84,.18); }
  .signup-shell, .login-shell { box-shadow:none; }
}

/* V11 finishing details */
.stat-icon.gold { background:var(--cat-red-soft) !important; color:var(--cat-red-dark) !important; }
.feature-line .dot { border-color:rgba(230,25,25,.28) !important; color:#FF5D58 !important; }
.passage-end-preview:not(.daily) i { color:var(--cat-red-dark) !important; }

/* CAT HOTEL V12 — tarification mensuelle & catalogue client */
@media(min-width:992px){
  .booking-mode-selector{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pricing-mode-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.booking-mode-pill.monthly{border-color:#c8cdf3;background:#f4f5ff;color:#303a8f}
.room-rate-stack .monthly-price strong{color:var(--cat-navy,#0B1054)}
.plan-booking.plan-monthly{border-left:3px solid var(--cat-navy,#0B1054)!important;background:#f4f5ff!important;color:#20275f!important}
.plan-booking.plan-monthly span{color:#535b93!important}
.passage-end-preview.monthly i{color:var(--cat-navy,#0B1054)}
.catalog-public-link{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:11px;word-break:break-all}

/* ========================================================================== 
   CAT HOTEL V13 — Caisse centrale, dépenses & rapports financiers
   Design volontairement sobre : dense, lisible, orienté exploitation.
   ========================================================================== */
.finance-page { max-width: 1500px; }
.finance-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; }
.finance-head-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.finance-date-form { height:40px; display:flex; align-items:center; gap:8px; padding:0 10px; border:1px solid var(--cat-border); background:#fff; border-radius:7px; color:var(--cat-navy); }
.finance-date-form input { border:0; outline:0; color:var(--cat-text); background:transparent; font-weight:700; }
.cash-day-status { min-height:40px; display:inline-flex; align-items:center; gap:7px; padding:0 11px; border:1px solid var(--cat-border); border-radius:7px; background:#fff; font-size:.76rem; font-weight:800; }
.cash-day-status.open { color:#24704f; background:#f4fbf7; border-color:#cde7d8; }
.cash-day-status.closed { color:#4f5869; background:#f7f8fa; border-color:#dce1e8; }
.cash-day-status.neutral { color:#7b8494; }

.finance-open-card { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 22px; border:1px solid #d7ddeb; border-left:4px solid var(--cat-navy); background:#fff; border-radius:8px; box-shadow:0 4px 14px rgba(20,29,73,.035); }
.finance-open-copy { display:flex; gap:13px; align-items:flex-start; min-width:280px; }
.finance-open-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:7px; background:#eef1fb; color:var(--cat-navy); font-size:1.05rem; }
.finance-open-copy strong { display:block; color:var(--cat-navy); font-size:.94rem; }
.finance-open-copy p { margin:4px 0 0; color:var(--cat-muted); font-size:.78rem; }
.finance-open-form { display:grid; grid-template-columns:170px 190px auto; gap:10px; align-items:end; }

.finance-currency-card { height:100%; background:#fff; border:1px solid var(--cat-border); border-radius:8px; overflow:hidden; box-shadow:0 5px 16px rgba(25,34,80,.03); }
.finance-currency-head { min-height:64px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--cat-border); background:#fafbfe; }
.finance-currency-head div { display:flex; flex-direction:column; }
.finance-currency-head span { color:var(--cat-muted); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.finance-currency-head strong { color:var(--cat-navy); font-size:1rem; margin-top:1px; }
.currency-tag { min-width:44px; height:28px; display:grid; place-items:center; padding:0 8px; border:1px solid #d6dbeb; border-radius:5px; background:#fff; color:var(--cat-navy)!important; letter-spacing:.04em!important; }
.finance-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.finance-kpi { min-width:0; padding:18px 16px; border-right:1px solid var(--cat-border); }
.finance-kpi:last-child { border-right:0; }
.finance-kpi span { display:block; color:#687285; font-size:.69rem; font-weight:750; }
.finance-kpi strong { display:block; margin-top:8px; color:#1d2740; font-size:1.06rem; letter-spacing:-.02em; white-space:nowrap; }
.finance-kpi small { display:block; margin-top:5px; color:#949bab; font-size:.62rem; line-height:1.35; }
.finance-kpi.emphasized { background:#f7f8fc; }
.finance-kpi.emphasized strong { color:var(--cat-navy); }

.finance-section-head { min-height:80px; }
.finance-ledger-card { min-height:440px; }
.finance-table th { white-space:nowrap; }
.finance-table td { vertical-align:middle; }
.finance-doc-type { display:inline-flex; align-items:center; gap:7px; color:#414a5e; font-size:.75rem; font-weight:720; white-space:nowrap; }
.finance-doc-type i { width:27px; height:27px; display:grid; place-items:center; border:1px solid #e0e4ec; border-radius:6px; background:#f9fafc; color:var(--cat-navy); }
.finance-doc-type.expense i { color:#9b2e33; background:#fff7f7; border-color:#f0d1d2; }
.finance-doc-type.restaurant i { color:#48578c; }
.finance-amount { font-weight:800; white-space:nowrap; }
.finance-amount.in { color:#23704f; }
.finance-amount.out { color:#a63237; }

.finance-method-list { display:grid; gap:0; }
.finance-method-row { display:grid; grid-template-columns:38px 1fr; gap:10px; align-items:center; padding:11px 0; border-bottom:1px solid #edf0f4; }
.finance-method-row:last-child { border-bottom:0; }
.finance-method-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:6px; background:#f2f4fa; color:var(--cat-navy); }
.finance-method-row strong { display:block; font-size:.8rem; }
.finance-method-row small { display:block; color:var(--cat-muted); font-size:.64rem; margin-top:2px; line-height:1.45; }

.cash-control-card { overflow:visible; }
.cash-control-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cash-control-currency { border:1px solid var(--cat-border); border-radius:7px; overflow:hidden; background:#fff; }
.cash-control-title { padding:14px 15px; display:flex; align-items:center; justify-content:space-between; gap:12px; background:#f8f9fc; border-bottom:1px solid var(--cat-border); }
.cash-control-title span { color:#626c80; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.cash-control-title strong { color:var(--cat-navy); }
.cash-control-breakdown { display:grid; grid-template-columns:repeat(3,1fr); }
.cash-control-breakdown span { padding:14px; color:#747d8f; font-size:.66rem; border-right:1px solid #edf0f4; }
.cash-control-breakdown span:last-child { border-right:0; }
.cash-control-breakdown b { display:block; margin-top:5px; color:#202a42; font-size:.76rem; }
.cash-closed-result { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--cat-border); }
.cash-closed-result span { padding:13px 14px; color:#747d8f; font-size:.68rem; }
.cash-closed-result strong { display:block; margin-top:4px; font-size:.82rem; }
.cash-closed-result.balanced { background:#f4fbf7; color:#24704f; }
.cash-closed-result.positive { background:#fffaf0; }
.cash-closed-result.negative { background:#fff6f6; }
.cash-close-form { border-top:1px solid #eef1f5; }
.cash-closure-meta { display:flex; align-items:center; gap:9px; padding:13px 18px; border-top:1px solid #e6eaf0; background:#f8fafc; color:#5f687a; font-size:.72rem; }
.cash-closure-meta i { color:#23704f; }

.finance-filter-bar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; padding:13px; overflow:visible; }
.finance-filter-bar > div:not(.finance-period-label) { display:flex; flex-direction:column; gap:4px; }
.finance-filter-bar label { color:#70798b; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.finance-filter-bar input[type="date"] { min-height:40px; border:1px solid #dce1e8; border-radius:6px; padding:0 10px; color:#273149; background:#fff; }
.finance-period-label { margin-left:auto; align-self:center; display:flex; align-items:center; gap:8px; color:#687285; font-size:.72rem; font-weight:700; }
.finance-summary-tile { height:100%; padding:18px; background:#fff; border:1px solid var(--cat-border); border-radius:8px; }
.finance-summary-tile span { display:block; color:#687285; font-size:.69rem; font-weight:780; }
.finance-summary-tile strong { display:block; color:var(--cat-navy); font-size:1.25rem; margin-top:7px; }
.finance-summary-tile small { display:block; color:#959cac; margin-top:5px; font-size:.64rem; }
.finance-row-cancelled { opacity:.58; text-decoration-color:#b7bdc8; }
.finance-row-cancelled td { background:#fafafa!important; }
.finance-cancel-note td { padding-top:6px!important; padding-bottom:10px!important; background:#fff9f9!important; color:#90565a; font-size:.68rem; }

.report-currency-card { height:100%; border:1px solid var(--cat-border); border-radius:8px; background:#fff; overflow:hidden; }
.report-currency-head { display:flex; align-items:center; justify-content:space-between; padding:13px 16px; background:#f8f9fc; border-bottom:1px solid var(--cat-border); }
.report-currency-head span { color:#667084; font-size:.72rem; font-weight:800; }
.report-currency-head strong { color:var(--cat-navy); font-size:.8rem; border:1px solid #d8ddec; border-radius:5px; padding:4px 7px; background:#fff; }
.report-currency-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.report-currency-grid > div { padding:17px 15px; border-right:1px solid #edf0f4; }
.report-currency-grid > div:last-child { border-right:0; }
.report-currency-grid span { display:block; color:#737c8e; font-size:.66rem; font-weight:740; }
.report-currency-grid strong { display:block; margin-top:7px; font-size:1rem; color:#202a42; }
.report-currency-grid small { display:block; margin-top:4px; color:#9aA1af; font-size:.6rem; line-height:1.35; }
.report-currency-grid .net { background:#f7f8fc; }
.report-currency-grid .net strong { color:var(--cat-navy); }
.report-source-row { display:grid; grid-template-columns:40px 1fr auto; gap:11px; align-items:center; padding:13px 0; border-bottom:1px solid #edf0f4; }
.report-source-row:last-child { border-bottom:0; }
.report-source-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:6px; background:#f1f3fa; color:var(--cat-navy); }
.report-source-row strong { display:block; font-size:.8rem; }
.report-source-row small { display:block; color:#7b8494; font-size:.64rem; margin-top:3px; }
.report-source-amount { display:grid; gap:3px; text-align:right; }
.report-source-amount b { font-size:.76rem; color:#343e54; }
.report-audit-kpi { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid #edf0f4; }
.report-audit-kpi span { color:#6e7789; font-size:.72rem; }
.report-audit-kpi strong { color:#202a42; }
.report-category-list > div { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid #edf0f4; }
.report-category-list > div:last-child { border-bottom:0; }
.report-category-list span { color:#606a7d; font-size:.73rem; }
.report-category-list strong { color:#242e44; font-size:.76rem; white-space:nowrap; }
.report-print-footer { display:none; }

@media (max-width: 1199.98px) {
  .finance-page-head { align-items:flex-start; flex-direction:column; }
  .finance-head-actions { justify-content:flex-start; }
  .finance-open-card { align-items:flex-start; flex-direction:column; }
  .finance-open-form { width:100%; grid-template-columns:1fr 1fr auto; }
  .finance-kpi-grid, .report-currency-grid { grid-template-columns:repeat(2,1fr); }
  .finance-kpi:nth-child(2), .report-currency-grid > div:nth-child(2) { border-right:0; }
  .finance-kpi:nth-child(-n+2), .report-currency-grid > div:nth-child(-n+2) { border-bottom:1px solid var(--cat-border); }
}
@media (max-width: 767.98px) {
  .finance-open-form { grid-template-columns:1fr; }
  .finance-kpi-grid, .report-currency-grid { grid-template-columns:1fr; }
  .finance-kpi, .report-currency-grid > div { border-right:0!important; border-bottom:1px solid var(--cat-border); }
  .finance-kpi:last-child, .report-currency-grid > div:last-child { border-bottom:0; }
  .cash-control-grid { grid-template-columns:1fr; }
  .cash-control-breakdown { grid-template-columns:1fr; }
  .cash-control-breakdown span { border-right:0; border-bottom:1px solid #edf0f4; }
  .cash-control-breakdown span:last-child { border-bottom:0; }
  .finance-filter-bar { align-items:stretch; }
  .finance-filter-bar > div:not(.finance-period-label), .finance-filter-bar input[type="date"], .finance-filter-bar .btn { width:100%; }
  .finance-period-label { margin-left:0; width:100%; }
}

@media print {
  body { background:#fff!important; }
  .sidebar,.topbar,.finance-page-head .finance-head-actions,.finance-filter-bar,.btn,.alert { display:none!important; }
  .main-content { margin-left:0!important; }
  .page-wrap { padding:0!important; max-width:none!important; }
  .surface-card,.report-currency-card,.finance-summary-tile { box-shadow:none!important; break-inside:avoid; }
  .report-print-footer { display:block; margin-top:18px; padding-top:12px; border-top:1px solid #ddd; color:#777; font-size:10px; }
}

/* ========================================================================== 
   CAT HOTEL V14 — Stock, achats, fournisseurs & minibar
   Interface volontairement sobre, dense et orientée exploitation.
   ========================================================================== */
.inventory-page { max-width: 1500px; }
.inventory-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--cat-border); border-radius:8px; overflow:hidden; background:#fff; }
.inventory-kpi { padding:17px 18px; border-right:1px solid var(--cat-border); background:#fff; }
.inventory-kpi:last-child { border-right:0; }
.inventory-kpi span { display:block; color:#687285; font-size:.69rem; font-weight:800; }
.inventory-kpi strong { display:block; color:#17204d; margin-top:7px; font-size:1.35rem; line-height:1; }
.inventory-kpi small { display:block; margin-top:6px; color:#959cac; font-size:.64rem; }
.inventory-kpi.danger strong { color:#a12e33; }
.inventory-kpi.warning strong { color:#8a681c; }
.inventory-option-row { min-height:42px; display:flex; align-items:center; flex-wrap:wrap; gap:18px; padding:9px 11px; border:1px solid #dfe3ea; border-radius:7px; background:#fafbfc; }
.inventory-option-row label { margin:0; font-size:.74rem; font-weight:700; color:#4c566b; display:flex; align-items:center; gap:7px; }
.inventory-option-row input { accent-color:var(--cat-navy); }
.inventory-filter { display:grid; grid-template-columns:minmax(220px,320px) 190px 42px; gap:7px; }
.stock-state { display:inline-flex; align-items:center; min-height:25px; padding:0 8px; border-radius:999px; font-size:.65rem; font-weight:800; border:1px solid transparent; white-space:nowrap; }
.stock-state.ok { color:#25694c; background:#f2faf6; border-color:#cfe8da; }
.stock-state.low { color:#86651c; background:#fff9ec; border-color:#ead9ad; }
.stock-state.rupture { color:#992f34; background:#fff5f5; border-color:#ebc7c9; }
.form-hint { display:block; margin-top:5px; color:#8891a1; font-size:.64rem; line-height:1.4; }

.purchase-lines { border:1px solid #dde2ea; border-radius:8px; padding:12px; background:#fbfcfe; }
.purchase-line-head, .purchase-line { display:grid; grid-template-columns:minmax(280px,1.7fr) .55fr .65fr .65fr 34px; gap:8px; align-items:center; }
.purchase-line-head { padding:0 4px 7px; color:#7a8394; font-size:.61rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.purchase-line { padding:7px 4px; border-top:1px solid #e9ecf1; }
.purchase-line:first-child { border-top:0; }
.purchase-line-amount { min-height:40px; display:flex; align-items:center; justify-content:flex-end; padding:0 10px; border:1px solid #e0e4eb; border-radius:7px; background:#fff; color:#242d44; font-size:.76rem; font-weight:800; }
.purchase-total-box { min-height:40px; display:flex; align-items:center; justify-content:flex-end; padding:0 12px; border:1px solid #ccd3e4; border-radius:7px; background:#f6f7fb; color:var(--cat-navy); font-weight:900; }
.purchase-meta { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--cat-border); border-bottom:1px solid var(--cat-border); background:#fafbfc; }
.purchase-meta > div { padding:12px 15px; border-right:1px solid #e7eaf0; }
.purchase-meta > div:last-child { border-right:0; }
.purchase-meta span { display:block; color:#7d8596; font-size:.61rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.purchase-meta strong { display:block; margin-top:4px; color:#283149; font-size:.76rem; }
.purchase-summary { margin-left:auto; width:min(100%,410px); padding:15px 18px 17px; }
.purchase-summary > div { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:5px 0; color:#616b7e; font-size:.75rem; }
.purchase-summary > div strong { color:#252e43; }
.purchase-summary .grand { margin-top:5px; padding-top:9px; border-top:1px solid #cfd5e1; color:var(--cat-navy); font-size:.9rem; }
.purchase-summary .grand strong { color:var(--cat-navy); font-size:1rem; }

.minibar-note { display:flex; gap:9px; align-items:flex-start; padding:11px 12px; border:1px solid #dfe3eb; border-radius:7px; background:#f8f9fc; color:#646e80; font-size:.7rem; line-height:1.5; }
.minibar-note i { color:var(--cat-navy); margin-top:1px; }
.status-chip.draft { background:#f6f7f9; color:#5e6879; border-color:#dfe3e8; }
.status-chip.ordered { background:#f1f4ff; color:#46558d; border-color:#d2d9f0; }
.status-chip.received { background:#f2faf6; color:#2b6c50; border-color:#cee7d9; }
.status-chip.cancelled { background:#fff5f5; color:#9d3539; border-color:#eccacc; }

@media (max-width: 1199.98px) {
  .inventory-kpi-grid { grid-template-columns:repeat(2,1fr); }
  .inventory-kpi:nth-child(2) { border-right:0; }
  .inventory-kpi:nth-child(-n+2) { border-bottom:1px solid var(--cat-border); }
  .purchase-meta { grid-template-columns:repeat(2,1fr); }
  .purchase-meta > div:nth-child(2) { border-right:0; }
  .purchase-meta > div:nth-child(-n+2) { border-bottom:1px solid #e7eaf0; }
}
@media (max-width: 767.98px) {
  .inventory-kpi-grid { grid-template-columns:1fr; }
  .inventory-kpi { border-right:0; border-bottom:1px solid var(--cat-border); }
  .inventory-kpi:last-child { border-bottom:0; }
  .inventory-filter { grid-template-columns:1fr; width:100%; }
  .purchase-line-head { display:none; }
  .purchase-line { grid-template-columns:1fr 1fr; padding:12px 4px; }
  .purchase-line select { grid-column:1 / -1; }
  .purchase-line-amount { justify-content:flex-start; }
  .purchase-line .pl-remove { justify-self:end; }
  .purchase-meta { grid-template-columns:1fr; }
  .purchase-meta > div { border-right:0; border-bottom:1px solid #e7eaf0; }
  .purchase-meta > div:last-child { border-bottom:0; }
}

/* CAT HOTEL V15 - taux de change et encaissement multidevise */
.topbar-fx{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:#111a4d;background:#f6f7fb;border:1px solid #e4e7f0;border-radius:10px;padding:.48rem .75rem;line-height:1.05}.topbar-fx>i{font-size:1.05rem;color:#d31f2a}.topbar-fx span{display:flex;flex-direction:column;gap:.18rem}.topbar-fx small{font-size:.68rem;color:#7a8099;text-transform:uppercase;letter-spacing:.06em}.topbar-fx strong{font-size:.82rem;color:#0b1054}.exchange-preview{min-height:74px;border:1px solid #e3e6ef;border-radius:10px;background:#f8f9fc;padding:.85rem 1rem;display:flex;flex-direction:column;justify-content:center}.exchange-preview small{color:#777e96}.exchange-preview strong{color:#0b1054;font-size:1.05rem;margin-top:.18rem}.exchange-preview span{font-size:.72rem;color:#8a90a5;margin-top:.15rem}.fx-payment-preview{border:1px solid #dfe3ef;background:#f8f9fc;border-radius:10px;padding:.8rem .95rem;display:flex;gap:.7rem;align-items:flex-start}.fx-payment-preview i{color:#d31f2a;font-size:1.05rem}.fx-payment-preview strong{display:block;color:#0b1054}.fx-payment-preview span{display:block;color:#747b92;font-size:.84rem;margin-top:.15rem}.fx-source-note{font-size:.76rem;color:#777e96;margin-top:.2rem}.payment-currency-badge{font-size:.72rem;font-weight:700;padding:.28rem .48rem;border-radius:6px;background:#eef0f7;color:#0b1054}


/* ========================================================================== 
   CAT HOTEL V16 — Personnel, accès et journal d’activité
   ========================================================================== */
.staff-page{max-width:1500px}.staff-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--cat-border);border-radius:8px;overflow:hidden}.staff-kpi-grid>div{padding:17px 18px;border-right:1px solid var(--cat-border)}.staff-kpi-grid>div:last-child{border-right:0}.staff-kpi-grid span{display:block;color:#697286;font-size:.69rem;font-weight:800}.staff-kpi-grid strong{display:block;margin-top:6px;color:var(--cat-navy);font-size:1.35rem;line-height:1}.staff-kpi-grid small{display:block;margin-top:6px;color:#9299a8;font-size:.64rem}.staff-filter{display:grid;grid-template-columns:minmax(260px,1fr) 190px 170px auto;gap:8px;padding:12px}.staff-search{position:relative}.staff-search>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#8a92a3;z-index:2}.staff-search .form-control{padding-left:36px}.staff-person{display:flex;align-items:center;gap:10px;min-width:235px}.staff-avatar,.profile-avatar{display:grid;place-items:center;background:#eef0f8;color:var(--cat-navy);border:1px solid #dce0ec;font-weight:900}.staff-avatar{width:36px;height:36px;border-radius:8px;font-size:.78rem;flex:0 0 36px}.staff-person strong{display:block;color:#232c43;font-size:.76rem}.staff-person small{display:block;color:#7b8495;font-size:.64rem;margin-top:2px}.staff-security-note{color:#9a641d!important;font-size:.61rem!important;margin-top:4px}.staff-form-note{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid #dfe3ec;border-radius:8px;background:#f8f9fc}.staff-form-note>i{color:var(--cat-navy);font-size:1rem;margin-top:1px}.staff-form-note strong{display:block;color:#283149;font-size:.75rem}.staff-form-note span{display:block;color:#778095;font-size:.67rem;line-height:1.45;margin-top:2px}.staff-reset-box{padding:14px 24px 20px;border-top:1px solid #e5e8ef;background:#fafbfc}.permission-group{border:1px solid #e0e4ec;border-radius:8px;overflow:hidden;margin-bottom:14px}.permission-group-head{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;background:#f6f7fa;border-bottom:1px solid #e5e8ee}.permission-group-head strong{color:#222c45;font-size:.78rem}.permission-group-head span{color:#8a92a1;font-size:.63rem}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#fff}.permission-item{position:relative;display:grid;grid-template-columns:18px 34px 1fr;gap:9px;align-items:flex-start;padding:12px 13px;border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4;cursor:pointer}.permission-item:nth-child(2n){border-right:0}.permission-item input{margin-top:8px;accent-color:var(--cat-navy)}.permission-icon{width:31px;height:31px;border-radius:7px;background:#f0f2f8;color:var(--cat-navy);display:grid;place-items:center}.permission-item strong{display:block;color:#273149;font-size:.72rem}.permission-item small{display:block;color:#81899a;font-size:.63rem;line-height:1.4;margin-top:2px}.permission-item:has(input:checked){background:#fbfcff}.permission-item:has(input:checked) .permission-icon{background:#eceffd;color:#0b1054}.audit-filter{display:grid;grid-template-columns:150px 150px 220px minmax(260px,1fr) auto;gap:8px;padding:12px;align-items:end}.audit-filter label{display:block;color:#737c8e;font-size:.62rem;font-weight:800;margin-bottom:5px}.audit-action-chip{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;border-radius:999px;background:#f1f3f8;border:1px solid #dde1eb;color:#36405b;font-size:.65rem;font-weight:800}.audit-table td{vertical-align:middle}.profile-card{overflow:hidden}.profile-head{display:flex;align-items:center;gap:14px;padding:22px;border-bottom:1px solid #e8ebf0}.profile-avatar{width:58px;height:58px;border-radius:12px;font-size:1.2rem;flex:0 0 58px}.profile-head h3{margin:3px 0 2px;color:var(--cat-navy);font-size:1.08rem}.profile-head span{color:#737c8e;font-size:.72rem}.profile-facts>div{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 18px;border-bottom:1px solid #edf0f4}.profile-facts>div:last-child{border-bottom:0}.profile-facts span{color:#7a8394;font-size:.67rem}.profile-facts strong{max-width:65%;text-align:right;color:#283149;font-size:.72rem;word-break:break-word}
@media(max-width:1199.98px){.staff-kpi-grid{grid-template-columns:repeat(2,1fr)}.staff-kpi-grid>div:nth-child(2){border-right:0}.staff-kpi-grid>div:nth-child(-n+2){border-bottom:1px solid var(--cat-border)}.staff-filter{grid-template-columns:1fr 1fr}.audit-filter{grid-template-columns:1fr 1fr}.audit-q{grid-column:1/-1}.audit-filter>.btn{width:max-content}}
@media(max-width:767.98px){.staff-kpi-grid{grid-template-columns:1fr}.staff-kpi-grid>div{border-right:0;border-bottom:1px solid var(--cat-border)}.staff-kpi-grid>div:last-child{border-bottom:0}.staff-filter,.audit-filter{grid-template-columns:1fr}.audit-q{grid-column:auto}.permission-grid{grid-template-columns:1fr}.permission-item{border-right:0}.staff-table{min-width:900px}}

/* CAT HOTEL V17 — multi-site, identité établissement & impressions */
.hotel-switcher{height:42px;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border-color,#dde3ec);background:#fff;border-radius:8px;color:#0B1054;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.hotel-switcher i{font-size:16px}.hotel-switcher select{max-width:240px;border:0;background:transparent;color:#172044;font-size:12px;font-weight:700;outline:0;cursor:pointer;padding-right:4px}
.business-logo-preview{min-height:170px;border:1px dashed #cdd5e1;background:#f8f9fc;display:flex;align-items:center;justify-content:center;padding:22px;border-radius:8px}.business-logo-preview img{max-width:100%;max-height:130px;object-fit:contain}.document-preview-mini{border:1px solid #dfe4ec;background:#fff;padding:18px 16px;font-size:11px;box-shadow:0 7px 20px rgba(15,23,42,.05)}.document-preview-mini strong,.document-preview-mini small{display:block}.document-preview-mini strong{font-size:13px;color:#0B1054;margin-bottom:3px}.document-preview-mini small{color:#667085;line-height:1.5}.document-preview-mini hr{border-top:1px dashed #98a2b3;margin:12px 0}
.report-company-print-header{display:none}.report-print-footer{display:flex;justify-content:space-between;gap:18px;color:#667085;font-size:11px;padding:18px 0 5px}
.admin-pending-dot{display:inline-flex;min-width:19px;height:19px;align-items:center;justify-content:center;border-radius:999px;background:#E61919;color:#fff;font-size:10px;font-weight:800;margin-left:auto;padding:0 5px}
@media(max-width:991.98px){.hotel-switcher{display:none!important}}
@media print{
  body{background:#fff!important}.sidebar,.topbar,.finance-filter-bar,.report-print-area>.d-flex:first-of-type .d-flex,.btn,.toast-container{display:none!important}.main-content{margin:0!important;width:100%!important}.page-wrap{padding:0!important}.report-print-area{display:block!important;padding:0!important}.report-print-area .surface-card,.report-print-area .report-currency-card{box-shadow:none!important;break-inside:avoid;border:1px solid #d8dee8!important}.report-company-print-header{display:flex!important;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:3px solid #0B1054;padding:0 0 14px;margin:0 0 18px}.report-company-brand{display:flex;gap:12px;align-items:flex-start}.report-company-brand img{width:54px;height:54px;object-fit:contain}.report-company-brand strong{display:block;font-size:17px;color:#0B1054}.report-company-brand span{display:block;font-size:9px;color:#5f6878;line-height:1.5}.report-company-doc{text-align:right}.report-company-doc b{display:block;font-size:16px;color:#0B1054}.report-company-doc span{display:block;font-size:9px;color:#667085;margin-top:3px}.report-print-footer{display:flex!important;border-top:1px solid #d8dee8;margin-top:16px;padding-top:10px;font-size:9px}.finance-page .page-head-pro,.finance-page>.d-flex:first-of-type{display:none!important}@page{size:A4;margin:10mm}
}

/* ========================================================================== 
   CAT HOTEL V18 — Abonnement SaaS / Paiement sécurisé
   ========================================================================== */
.subscription-ribbon {
  margin-left: var(--sidebar-width);
  min-height: 52px;
  padding: 9px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:#EEF2FF;
  border-bottom:1px solid #D7DDF4;
  color:#17204C;
}
.subscription-ribbon.critical { background:#FFF1F1; border-color:#F2C8C8; color:#7C2024; }
.subscription-ribbon-copy { display:flex; align-items:center; gap:11px; min-width:0; }
.subscription-ribbon-copy>i { font-size:1.12rem; flex:0 0 auto; }
.subscription-ribbon-copy div { display:flex; flex-direction:column; line-height:1.25; }
.subscription-ribbon-copy strong { font-size:.82rem; }
.subscription-ribbon-copy span { margin-top:3px; font-size:.74rem; opacity:.78; }
.subscription-ribbon .btn-light { color:#0B1054; border:1px solid rgba(11,16,84,.12); white-space:nowrap; }

.subscription-page { min-height:100vh; background:#F3F5F8; }
.subscription-shell { min-height:100vh; }
.subscription-head {
  height:72px; padding:0 max(24px,calc((100vw - 1320px)/2));
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  background:#fff; border-bottom:1px solid #E3E6EB; position:sticky; top:0; z-index:20;
}
.subscription-brand { display:flex; align-items:center; gap:12px; color:#171B3E; }
.subscription-brand img { width:48px; height:48px; object-fit:cover; border-radius:9px; border:1px solid #ECEEF2; }
.subscription-brand span { display:flex; flex-direction:column; line-height:1.12; }
.subscription-brand strong { font-size:.98rem; letter-spacing:.02em; }
.subscription-brand small { margin-top:4px; color:#777F8D; font-size:.68rem; }
.subscription-head-actions { display:flex; align-items:center; gap:10px; }
.subscription-content { max-width:1320px; margin:0 auto; padding:32px 24px 56px; }
.subscription-status-card {
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px;
  background:#fff; border:1px solid #E1E5EB; border-radius:12px; padding:24px; margin-bottom:30px;
  box-shadow:0 5px 20px rgba(20,28,58,.045);
}
.subscription-status-card.is-expired { border-left:4px solid #B4232A; }
.subscription-status-card.is-active { border-left:4px solid #0B1054; }
.subscription-status-icon { width:52px; height:52px; border-radius:10px; display:grid; place-items:center; font-size:1.3rem; background:#EEF1FF; color:#0B1054; }
.subscription-status-card.is-expired .subscription-status-icon { background:#FFF0F0; color:#B4232A; }
.subscription-status-copy h1 { margin:3px 0 5px; font-size:1.45rem; color:#191D38; font-weight:750; }
.subscription-status-copy p { margin:0; color:#667085; }
.subscription-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin:0 0 15px; }
.subscription-section-head h2 { margin:2px 0 3px; font-size:1.25rem; font-weight:750; color:#1C213B; }
.subscription-section-head p { margin:0; color:#7A8190; font-size:.82rem; }
.secure-payment-label { display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border:1px solid #DCE1EA; background:#fff; border-radius:8px; color:#3C4657; font-size:.76rem; font-weight:700; }
.plan-card { height:100%; background:#fff; border:1px solid #E0E4EA; border-radius:11px; padding:20px; box-shadow:0 4px 16px rgba(20,28,58,.035); }
.plan-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid #EFF1F4; }
.plan-card-head small { color:#8A92A0; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; }
.plan-card-head h3 { margin:2px 0 0; font-size:1.06rem; font-weight:760; color:#1B2040; }
.plan-card-head>i { color:#0B1054; font-size:1.2rem; }
.plan-prices { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:15px 0; }
.plan-prices>div { padding:11px 12px; background:#F7F8FA; border:1px solid #ECEEF2; border-radius:8px; }
.plan-prices span { display:block; color:#8A92A0; font-size:.67rem; font-weight:700; }
.plan-prices strong { display:block; margin-top:3px; color:#1C213B; font-size:.91rem; }
.plan-pay-form .btn { min-height:44px; }
.webhook-callout { display:flex; gap:12px; align-items:flex-start; padding:13px 14px; border:1px solid #DCE1EA; border-radius:9px; background:#F8F9FB; }
.webhook-callout>i { color:#B4232A; font-size:1.15rem; margin-top:2px; }
.webhook-callout div { display:flex; flex-direction:column; min-width:0; }
.webhook-callout strong { font-size:.78rem; }
.webhook-callout code { margin:3px 0; color:#0B1054; font-size:.75rem; overflow-wrap:anywhere; }
.webhook-callout span { color:#7A8190; font-size:.7rem; }
.subscription-rule-list { display:grid; gap:3px; margin-top:18px; }
.subscription-rule-list>div { display:grid; grid-template-columns:38px 1fr; gap:10px; padding:11px 0; border-bottom:1px solid #EEF0F3; }
.subscription-rule-list>div:last-child { border-bottom:0; }
.subscription-rule-list>div>span { width:32px; height:32px; display:grid; place-items:center; border-radius:8px; background:#EEF1FF; color:#0B1054; font-size:.7rem; font-weight:800; }
.subscription-rule-list p { margin:0; display:flex; flex-direction:column; }
.subscription-rule-list strong { font-size:.82rem; }
.subscription-rule-list small { color:#7A8190; margin-top:2px; }
.admin-plan-editor { height:100%; padding:18px; border:1px solid #E1E5EA; border-radius:10px; background:#fff; }
.admin-plan-editor.new-plan { background:#FAFBFC; border-style:dashed; }
.subscription-return-wrap { min-height:100vh; display:grid; place-items:center; padding:28px; }
.subscription-return-card { width:min(560px,100%); text-align:center; background:#fff; border:1px solid #E1E5EA; border-radius:14px; padding:38px; box-shadow:0 16px 45px rgba(12,18,53,.08); }
.subscription-return-logo { width:150px; max-height:70px; object-fit:contain; margin-bottom:22px; }
.subscription-result-icon { width:64px; height:64px; border-radius:50%; display:grid; place-items:center; margin:0 auto 18px; font-size:1.65rem; }
.subscription-result-icon.success { background:#E9F7F0; color:#18724F; }
.subscription-result-icon.pending { background:#FFF5E8; color:#9A6415; }
.subscription-return-card h1 { font-size:1.55rem; font-weight:780; color:#1B2040; margin:4px 0 9px; }
.subscription-return-card p { color:#6F7786; line-height:1.7; }
.subscription-verify-box { margin:18px 0; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; text-align:left; padding:13px 14px; background:#F7F8FA; border:1px solid #E7E9ED; border-radius:9px; }
.subscription-verify-box i { color:#0B1054; }
.subscription-verify-box span { font-size:.77rem; color:#717988; }
.subscription-verify-box strong { font-size:.8rem; }
.empty-panel { padding:36px; text-align:center; border:1px dashed #D8DDE5; border-radius:10px; background:#fff; display:flex; flex-direction:column; align-items:center; gap:6px; }
.empty-panel i { font-size:1.5rem; color:#0B1054; }
.empty-panel span { color:#7C8492; font-size:.78rem; }

@media (max-width:991.98px){
  .subscription-ribbon { margin-left:0; padding:9px 16px; }
  .subscription-status-card { grid-template-columns:auto 1fr; }
  .subscription-status-card>.btn { grid-column:1/-1; }
}
@media (max-width:575.98px){
  .subscription-head { height:auto; min-height:66px; padding:9px 14px; }
  .subscription-brand img { width:42px; height:42px; }
  .subscription-brand small, .subscription-head-actions .code-pill { display:none; }
  .subscription-content { padding:20px 14px 40px; }
  .subscription-status-card { grid-template-columns:1fr; padding:18px; }
  .subscription-status-icon { width:44px; height:44px; }
  .subscription-section-head { align-items:flex-start; flex-direction:column; }
  .subscription-ribbon { align-items:flex-start; flex-direction:column; gap:8px; }
  .subscription-ribbon .btn { width:100%; }
  .plan-prices { grid-template-columns:1fr; }
  .subscription-return-card { padding:28px 20px; }
}
.subscription-active-strip { margin:-4px 0 24px; padding:11px 14px; display:flex; align-items:center; justify-content:space-between; gap:16px; background:#F7F8FB; border:1px solid #E2E5EC; border-radius:9px; }
.subscription-active-strip>div { display:flex; align-items:center; gap:10px; }
.subscription-active-strip>div>i { color:#19704F; font-size:1rem; }
.subscription-active-strip span { display:flex; flex-direction:column; line-height:1.2; }
.subscription-active-strip strong { color:#273044; font-size:.78rem; }
.subscription-active-strip small { color:#7A8190; margin-top:3px; font-size:.7rem; }
.subscription-active-strip>a { font-size:.75rem; font-weight:750; color:#0B1054; white-space:nowrap; }
@media(max-width:575.98px){.subscription-active-strip{align-items:flex-start;flex-direction:column}.subscription-active-strip>a{width:100%}}

/* ========================================================================== 
   CAT HOTEL V19 — Interface CodeurauTop / Front Desk professionnel
   ========================================================================== */
:root{
  --cat-navy:#11165b;
  --cat-navy-2:#0b1046;
  --cat-gold:#ff1b17;          /* compatibilité anciens composants : devient rouge CodeurauTop */
  --cat-gold-dark:#c91614;
  --cat-gold-soft:#fff0ef;
  --cat-red:#ff1b17;
  --cat-red-dark:#c91412;
  --cat-bg:#f4f6f9;
  --cat-card:#fff;
  --cat-border:#e1e5eb;
  --cat-text:#1a2233;
  --sidebar-width:276px;
}
body{background:var(--cat-bg);color:var(--cat-text)}
.text-gold{color:#ff413d!important}
.page-kicker,.auth-kicker{color:#c91412}
.btn-gold,.btn-primary-pro{background:var(--cat-red);border:1px solid var(--cat-red);color:#fff!important}
.btn-gold:hover,.btn-gold:focus,.btn-primary-pro:hover,.btn-primary-pro:focus{background:var(--cat-red-dark);border-color:var(--cat-red-dark);color:#fff!important}
.form-control:focus,.form-select:focus{border-color:#6e75bc;box-shadow:0 0 0 3px rgba(17,22,91,.10)}

.sidebar{background:var(--cat-navy-2);border-right:0;box-shadow:8px 0 24px rgba(11,16,70,.08)}
.sidebar-brand{padding:18px 16px 16px;border-bottom:1px solid rgba(255,255,255,.075)}
.sidebar-logo{width:44px;height:44px;border-radius:6px}
.sidebar-brand-title{font-size:.96rem;letter-spacing:.02em}.sidebar-brand-title .text-gold{color:#ff3733!important}
.sidebar-brand-sub{color:rgba(255,255,255,.48)}
.menu-label{padding:17px 10px 7px;color:rgba(255,255,255,.34);font-size:.59rem;letter-spacing:.14em}
.sidebar .nav-link{min-height:44px;padding:.55rem .62rem;border-left:0;border-radius:7px;color:rgba(255,255,255,.72);gap:.7rem;font-size:.83rem}
.sidebar .nav-link i{width:34px;height:32px;display:grid;place-items:center;border-radius:7px;background:rgba(255,255,255,.055);color:rgba(255,255,255,.72);font-size:1rem;flex:0 0 34px}
.sidebar .nav-link:hover{background:rgba(255,255,255,.055);color:#fff}
.sidebar .nav-link:hover i{background:rgba(255,255,255,.10);color:#fff}
.sidebar .nav-link.active{background:#fff;color:var(--cat-navy);font-weight:720;border-left:0;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.sidebar .nav-link.active i{background:#fff0ef;color:var(--cat-red)}
.sidebar-footer{background:var(--cat-navy-2)}

.topbar{min-height:70px;box-shadow:0 1px 0 rgba(20,31,55,.03)}
.user-avatar{background:#f1f2f8;border-color:#dfe1ef;color:var(--cat-navy)}

/* Dashboard */
.dashboard-v19{padding-top:22px}
.dashboard-head,.pro-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}
.dashboard-head h1{font-size:1.72rem;margin:5px 0 4px;font-weight:780;letter-spacing:-.03em}
.dashboard-head p{margin:0;color:var(--cat-muted)}
.dashboard-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#70798b;font-size:.64rem;font-weight:800;letter-spacing:.13em}
.dashboard-eyebrow i{color:var(--cat-red)}
.dashboard-head-actions{display:flex;gap:9px;flex-wrap:wrap}

.ops-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:22px}
.ops-kpi{min-width:0;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--cat-border);border-radius:10px;padding:14px;color:var(--cat-text);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.ops-kpi:hover{color:var(--cat-text);border-color:#c9ced8;box-shadow:0 5px 18px rgba(20,31,55,.06);transform:translateY(-1px)}
.ops-kpi.attention{border-color:#efc2c0;background:#fffafa}
.ops-kpi-icon{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:#eef0f7;color:var(--cat-navy);font-size:1rem;flex:0 0 40px}
.ops-kpi-icon.available{background:#eaf6ef;color:#1f7a54}.ops-kpi-icon.occupied{background:#eef0f9;color:#252d7d}.ops-kpi-icon.arrivals{background:#eef5fb;color:#22619b}.ops-kpi-icon.walkin{background:#fff0ef;color:#d11a17}.ops-kpi-icon.overdue{background:#fbeceb;color:#b82d2a}.ops-kpi-icon.hk{background:#f4effb;color:#6a48a6}
.ops-kpi-copy{display:flex;flex-direction:column;min-width:0}.ops-kpi-copy small{font-size:.7rem;color:#737c8d;font-weight:700;white-space:nowrap}.ops-kpi-copy strong{font-size:1.48rem;line-height:1.08;margin-top:2px;color:#151c2b}.ops-kpi-copy em{font-style:normal;color:#9aa1ad;font-size:.64rem;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.command-card{background:#fff;border:1px solid var(--cat-border);border-radius:11px;overflow:hidden;box-shadow:0 2px 10px rgba(20,31,55,.025)}
.command-card-head{min-height:70px;padding:15px 18px;border-bottom:1px solid #e9ecf1;display:flex;align-items:center;justify-content:space-between;gap:16px}
.command-card-head h2{margin:3px 0 0;font-size:1rem;font-weight:770}.command-card-head>a{font-size:.74rem;font-weight:700;color:#576173}.command-card-head>a:hover{color:var(--cat-red)}
.section-tag{display:flex;align-items:center;gap:6px;font-size:.6rem;letter-spacing:.12em;color:#8b93a2;font-weight:800}.section-tag i{color:var(--cat-red)}
.room-status-board{display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:20px 18px 16px}.room-status-board>div{display:grid;place-items:center;text-align:center;border-right:1px solid #edf0f3}.room-status-board>div:last-child{border-right:0}.room-status-board strong{font-size:1.4rem;margin-top:8px}.room-status-board small{color:#7c8594;font-size:.69rem;margin-top:2px}
.status-ring{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:.9rem}.status-ring.available{background:#e8f5ee;color:#1e7a54}.status-ring.reserved{background:#fff4dc;color:#a7670d}.status-ring.occupied{background:#eef0f9;color:#2c347f}.status-ring.cleaning{background:#eaf4fb;color:#276d9d}.status-ring.maintenance{background:#f1f2f4;color:#505967}
.occupancy-bar{height:5px;background:#eef0f4;margin:0 18px;border-radius:8px;overflow:hidden}.occupancy-bar span{display:block;height:100%;background:var(--cat-navy);border-radius:8px}.occupancy-caption{display:flex;justify-content:space-between;padding:8px 18px 17px;color:#7d8694;font-size:.7rem}.occupancy-caption strong{color:var(--cat-navy)}
.pro-table thead th{background:#fafbfc}.pro-table tbody td{padding:12px 14px}.pro-table td strong{font-size:.78rem}.pro-table td small{display:block;color:#8992a1;font-size:.65rem;margin-top:2px}
.room-number-chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:30px;border-radius:7px;background:#f0f2f6;color:#1d2750;font-weight:800;font-size:.75rem}
.entry-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid #dfe3e9;background:#fafbfc;color:#5d6675;border-radius:16px;padding:4px 8px;font-size:.64rem;font-weight:700}.entry-badge.walkin{border-color:#f0c4c1;background:#fff4f3;color:#b92825}.entry-badge i{font-size:.72rem}
.money-ok{color:#247855;font-size:.72rem;font-weight:750}.money-due{color:#bc2d29;font-size:.73rem;font-weight:800}.icon-action{width:31px;height:31px;border:1px solid #e0e4ea;border-radius:7px;display:inline-grid;place-items:center;color:#5e6878}.icon-action:hover{border-color:#bfc5cf;color:var(--cat-red);background:#fafbfc}
.empty-row{display:flex;align-items:center;justify-content:center;gap:8px;color:#929aa6;padding:20px 0}

.pro-action-list{padding:6px 12px 12px}.pro-action-list>a{display:grid;grid-template-columns:40px 1fr 20px;align-items:center;gap:11px;padding:11px 5px;border-bottom:1px solid #edf0f3;color:var(--cat-text)}.pro-action-list>a:last-child{border-bottom:0}.pro-action-list>a:hover strong{color:var(--cat-red)}.pro-action-list>a>i{color:#a2a9b4;font-size:.75rem}.pro-action-list strong{display:block;font-size:.78rem}.pro-action-list small{display:block;color:#8b93a1;font-size:.65rem;margin-top:2px}.action-icon{width:38px;height:38px;border-radius:8px;background:#f0f2f7;color:var(--cat-navy);display:grid;place-items:center}.action-icon.primary{background:#fff0ef;color:var(--cat-red)}
.arrival-list{padding:4px 13px 12px}.arrival-list>a{display:grid;grid-template-columns:48px 1fr 18px;align-items:center;gap:10px;padding:11px 4px;border-bottom:1px solid #edf0f3;color:var(--cat-text)}.arrival-list>a:last-child{border-bottom:0}.arrival-time{font-weight:800;color:var(--cat-navy);font-size:.77rem}.arrival-list strong{display:block;font-size:.77rem}.arrival-list small{display:block;color:#8d95a2;font-size:.65rem;margin-top:2px}.arrival-list>a>i{color:#a0a7b2;font-size:.7rem}
.money-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#edf0f3;border-bottom:1px solid #edf0f3}.money-grid>div{background:#fff;padding:17px}.money-grid small{display:block;color:#848d9a;font-size:.65rem}.money-grid strong{display:block;margin-top:4px;font-size:1.05rem;color:#19213a}.mini-alert-line{display:grid;grid-template-columns:24px 1fr auto;align-items:center;padding:12px 16px;color:#687180;font-size:.68rem}.mini-alert-line.warning{background:#fff9ee;color:#8b5a10}.mini-alert-line a{font-weight:750}

/* Direct entry */
.pro-page-head h1{margin:.18rem 0 .24rem;font-size:1.55rem;font-weight:780;letter-spacing:-.025em}.section-title-row{display:flex;gap:11px;align-items:center;margin-bottom:15px}.section-title-row h5{margin:0;font-size:.98rem;font-weight:780}.section-title-row small{display:block;color:#8a92a0;font-size:.69rem;margin-top:3px}.section-icon-pro{width:38px;height:38px;border-radius:8px;background:#f0f2f8;color:var(--cat-navy);display:grid;place-items:center;font-size:1rem}.section-subtitle{display:flex;align-items:center;gap:8px;font-weight:780;color:#333d4d;font-size:.82rem;margin-bottom:2px}.section-subtitle i{color:var(--cat-red)}
.walkin-submit-bar{margin:24px -24px -24px;padding:14px 18px;border-top:1px solid #e7eaef;background:#fafbfc;display:flex;align-items:center;justify-content:space-between;gap:14px}.walkin-submit-bar>div{display:flex;align-items:center;gap:8px;color:#737c89;font-size:.68rem}.walkin-submit-bar>div i{color:#247855}
.walkin-list>a{display:grid;grid-template-columns:56px 1fr 18px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f3;color:var(--cat-text)}.walkin-list>a:last-child{border-bottom:0}.walkin-room{background:#f0f2f7;color:var(--cat-navy);border-radius:7px;padding:6px 5px;text-align:center;font-weight:800;font-size:.67rem}.walkin-list strong{display:block;font-size:.76rem}.walkin-list small{display:block;color:#89919e;font-size:.64rem;margin-top:2px}.walkin-list>a>i{color:#a2a9b4;font-size:.7rem}
.empty-state.compact{padding:24px 12px}

/* Admin / security */
.admin-pending-dot{margin-left:auto;min-width:22px;height:20px;border-radius:12px;background:#ff3a36;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.61rem;font-weight:800;padding:0 6px}.nav-coming{margin-left:auto;color:rgba(255,255,255,.32);font-size:.58rem}
.security-score{display:flex;align-items:center;gap:14px}.security-score-ring{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;border:7px solid #e7ebf1;color:var(--cat-navy);font-weight:800}.security-score-ring.good{border-color:#cce8db;color:#217753}.security-score-ring.warn{border-color:#f2d8a7;color:#9a6616}.security-score-ring.bad{border-color:#efc0bf;color:#b62c29}

@media(max-width:1399.98px){.ops-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:991.98px){.dashboard-head,.pro-page-head{flex-direction:column}.dashboard-head-actions{width:100%}.ops-kpi-grid{grid-template-columns:repeat(2,1fr)}.room-status-board{grid-template-columns:repeat(3,1fr);row-gap:18px}.room-status-board>div{border-right:0}.walkin-submit-bar{flex-direction:column;align-items:stretch}.walkin-submit-bar .btn{width:100%}}
@media(max-width:575.98px){.ops-kpi-grid{grid-template-columns:1fr}.ops-kpi{padding:12px}.room-status-board{grid-template-columns:repeat(2,1fr)}.dashboard-v19{padding-left:14px;padding-right:14px}.dashboard-head h1{font-size:1.48rem}.command-card-head{align-items:flex-start}.money-grid{grid-template-columns:1fr}.sidebar .nav-link i{width:32px;height:30px;flex-basis:32px}}

/* CAT HOTEL V19 — administration centrale */
.admin-ops-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-attention-list{display:grid;gap:0;padding:0 22px 18px}
.admin-attention-list>a{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #e9ecf4;color:#17203a;text-decoration:none}
.admin-attention-list>a:last-child{border-bottom:0}.admin-attention-list a:hover strong{color:var(--cat-navy)}
.admin-attention-list strong{display:block;font-size:.92rem}.admin-attention-list small{display:block;color:#778096;margin-top:2px}.admin-attention-list b{min-width:28px;height:28px;border-radius:8px;background:#f0f2f8;display:grid;place-items:center;font-size:.8rem;color:var(--cat-navy)}
.admin-expiry-list{padding:2px 22px 18px}.admin-expiry-list>a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid #e9ecf4;text-decoration:none;color:#17203a}.admin-expiry-list>a:last-child{border-bottom:0}.admin-expiry-list strong,.admin-expiry-list small{display:block}.admin-expiry-list small{font-size:.75rem;color:#8a91a4;margin-top:2px}.admin-expiry-list span{font-size:.78rem;font-weight:700;color:#4e5870;white-space:nowrap}
@media(max-width:1199.98px){.admin-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.admin-ops-grid{grid-template-columns:1fr}.admin-attention-list{padding-inline:16px}.admin-expiry-list{padding-inline:16px}}

/* CAT HOTEL V20 FINAL PRODUCTION */
.production-command{border:1px solid #e3e7ef;background:#f8f9fc;padding:14px 16px;border-radius:10px}.production-command strong{display:block;color:#0b1054;margin-bottom:7px}.production-command code{display:block;background:#0b1054;color:#fff;padding:9px 11px;border-radius:7px;overflow-wrap:anywhere;font-size:.78rem}.production-command small{display:block;color:#6b7280;margin-top:7px}.walkin-room-loading{opacity:.65;pointer-events:none}


/* CAT HOTEL V20.2 — visual polish online */
.topbar.hotel-topbar{
  background:linear-gradient(135deg,#040814 0%, #0b1054 58%, #112a79 100%);
  border-bottom:0;
  box-shadow:0 10px 28px rgba(7,11,42,.16);
}
.topbar.hotel-topbar .topbar-title,
.topbar.hotel-topbar .topbar-sub,
.topbar.hotel-topbar .topbar-user-copy strong,
.topbar.hotel-topbar .topbar-user-copy span,
.topbar.hotel-topbar .topbar-fx strong,
.topbar.hotel-topbar .topbar-fx small,
.topbar.hotel-topbar .topbar-menu,
.topbar.hotel-topbar .topbar-fx,
.topbar.hotel-topbar .topbar-fx>i{ color:#fff !important; }
.topbar.hotel-topbar .topbar-sub,
.topbar.hotel-topbar .topbar-user-copy span,
.topbar.hotel-topbar .topbar-fx small{ opacity:.74; }
.topbar.hotel-topbar .topbar-user{ border-left-color:rgba(255,255,255,.14); }
.topbar.hotel-topbar .user-avatar{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); color:#fff; }
.topbar.hotel-topbar .topbar-fx{ background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.14); }
.topbar.hotel-topbar .topbar-menu,
.topbar.hotel-topbar .notification-trigger,
.topbar.hotel-topbar .alert-sound-toggle{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.14); color:#fff; }
.topbar.hotel-topbar .notification-trigger:hover,
.topbar.hotel-topbar .alert-sound-toggle:hover,
.topbar.hotel-topbar .topbar-menu:hover{ background:rgba(255,255,255,.16); color:#fff; }
.subscription-ribbon{ box-shadow:0 10px 24px rgba(10,16,66,.08); }
.dashboard-head{padding:4px 0 2px;}
.dashboard-head h1{ color:var(--cat-navy); font-size:1.82rem; }
.dashboard-head p{ font-size:.86rem; max-width:720px; }
.dashboard-head-actions .btn{ min-width:150px; }
.ops-kpi-grid{ gap:14px; }
.ops-kpi{ position:relative; overflow:hidden; border:0; box-shadow:0 12px 28px rgba(11,16,84,.07); border-radius:14px; padding:16px; }
.ops-kpi::after{ content:""; position:absolute; inset:0 auto 0 0; width:5px; background:var(--cat-navy); opacity:.9; }
.ops-kpi .ops-kpi-copy small{ font-size:.73rem; text-transform:uppercase; letter-spacing:.04em; }
.ops-kpi .ops-kpi-copy strong{ font-size:1.62rem; }
.ops-kpi .ops-kpi-copy em{ font-size:.68rem; }
.ops-kpi-icon{ width:46px; height:46px; border-radius:12px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.22); }
.ops-kpi.kpi-available{ background:linear-gradient(135deg,#ebf9f1 0%, #ffffff 78%); }
.ops-kpi.kpi-available::after{ background:#1f7a54; }
.ops-kpi.kpi-inhouse{ background:linear-gradient(135deg,#eef1fe 0%, #ffffff 78%); }
.ops-kpi.kpi-inhouse::after{ background:#28338e; }
.ops-kpi.kpi-arrivals{ background:linear-gradient(135deg,#eef7ff 0%, #ffffff 78%); }
.ops-kpi.kpi-arrivals::after{ background:#1d6fa8; }
.ops-kpi.kpi-walkin{ background:linear-gradient(135deg,#fff2f2 0%, #ffffff 78%); }
.ops-kpi.kpi-walkin::after{ background:#d31f2a; }
.ops-kpi.kpi-overdue{ background:linear-gradient(135deg,#fff1ee 0%, #ffffff 78%); }
.ops-kpi.kpi-overdue::after{ background:#c23931; }
.ops-kpi.kpi-hk{ background:linear-gradient(135deg,#f4efff 0%, #ffffff 78%); }
.ops-kpi.kpi-hk::after{ background:#6a48a6; }
.ops-kpi.attention{ box-shadow:0 14px 30px rgba(191,57,49,.12); }
.command-card{ border:0; border-radius:14px; box-shadow:0 14px 30px rgba(13,21,58,.06); }
.command-card-head{ position:relative; padding:17px 18px 16px; background:linear-gradient(180deg,#ffffff 0%, #fbfcff 100%); }
.command-card-head::before{ content:""; position:absolute; left:18px; top:0; width:54px; height:3px; background:linear-gradient(90deg,var(--cat-red), var(--cat-navy)); border-radius:0 0 6px 6px; }
.command-card-head h2{ color:#121a2e; font-size:1.04rem; }
.command-card-head > a{ display:inline-flex; align-items:center; gap:6px; color:var(--cat-navy); }
.section-tag{ color:#8a91a3; }
.room-status-board{ padding:22px 18px 18px; }
.room-status-board>div{ padding:0 10px; }
.room-status-board strong{ color:#121a2e; }
.occupancy-bar{ margin:0 18px 4px; height:8px; background:#e8edf5; }
.occupancy-bar span{ background:linear-gradient(90deg,var(--cat-red), var(--cat-navy)); }
.occupancy-caption{ padding-top:6px; }
.pro-table thead th{ background:#f5f7fc; color:#677088; border-bottom:1px solid #e5e9f0; }
.pro-table tbody tr:hover{ background:#fbfcff; }
.room-number-chip{ min-width:48px; height:32px; background:#eef2fa; }
.icon-action{ width:34px; height:34px; }
.pro-action-list>a, .arrival-list>a{ transition:background .15s ease, border-color .15s ease, transform .15s ease; }
.pro-action-list>a:hover, .arrival-list>a:hover{ background:#fbfcff; transform:translateX(2px); }
.action-icon{ width:42px; height:42px; border-radius:11px; background:#eef2fb; }
.action-icon.primary{ background:#fff0ef; }
.money-grid>div{ background:linear-gradient(180deg,#ffffff 0%, #fbfcff 100%); }
.money-grid strong{ font-size:1.14rem; }
.mini-alert-line{ border-top:1px solid #edf0f4; }
@media(max-width:575.98px){ .command-card{ border-radius:12px; } .ops-kpi{ border-radius:12px; } }

/* ======================================================================
   CAT HOTEL V20.3 — PREMIUM CODEURAUTOP UI
   Palette volontairement limitée à la charte CodeurauTop :
   bleu nuit / bleu profond / rouge / blanc.
   ====================================================================== */
:root{
  --cat-navy:#0b1054;
  --cat-navy-2:#080d3d;
  --cat-blue:#1b3690;
  --cat-blue-2:#274aa8;
  --cat-red:#e31b23;
  --cat-red-dark:#a81219;
  --cat-gold:#e31b23;
  --cat-gold-dark:#a81219;
  --cat-gold-soft:#fff0f1;
  --cat-bg:#f3f5fa;
}
body{background:var(--cat-bg)}
.text-gold{color:var(--cat-red)!important}
.btn-gold,.btn-primary-pro{
  background:var(--cat-red)!important;
  border-color:var(--cat-red)!important;
  color:#fff!important;
  box-shadow:0 7px 18px rgba(227,27,35,.18)!important;
}
.btn-gold:hover,.btn-primary-pro:hover{
  background:#c9141c!important;
  border-color:#c9141c!important;
  color:#fff!important;
  transform:translateY(-1px);
}

/* Entête application : noir bleuté / bleu nuit, signature rouge discrète. */
.main-content>.topbar,
.topbar.hotel-topbar{
  min-height:72px;
  background:linear-gradient(90deg,#02040d 0%,#080d3d 42%,#0b1054 100%)!important;
  color:#fff;
  border:0!important;
  border-bottom:3px solid var(--cat-red)!important;
  box-shadow:0 9px 24px rgba(3,7,33,.16)!important;
}
.main-content>.topbar .topbar-title,
.main-content>.topbar .topbar-sub,
.main-content>.topbar .fw-bold,
.main-content>.topbar .user-meta,
.main-content>.topbar .topbar-user-copy strong,
.main-content>.topbar .topbar-user-copy span,
.main-content>.topbar .topbar-fx,
.main-content>.topbar .topbar-fx strong,
.main-content>.topbar .topbar-fx small,
.main-content>.topbar .topbar-fx>i{color:#fff!important}
.main-content>.topbar .topbar-sub,
.main-content>.topbar .topbar-user-copy span,
.main-content>.topbar .topbar-fx small{opacity:.72}
.main-content>.topbar .user-avatar{
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.04);
}
.main-content>.topbar .btn-soft,
.main-content>.topbar .topbar-menu,
.main-content>.topbar .alert-bell,
.main-content>.topbar .notification-trigger,
.main-content>.topbar .alert-sound-toggle{
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(255,255,255,.16)!important;
  color:#fff!important;
}
.main-content>.topbar .btn-soft:hover,
.main-content>.topbar .topbar-menu:hover,
.main-content>.topbar .alert-bell:hover,
.main-content>.topbar .notification-trigger:hover,
.main-content>.topbar .alert-sound-toggle:hover{background:rgba(255,255,255,.16)!important;color:#fff!important}
.main-content>.topbar .topbar-fx,
.main-content>.topbar .hotel-switcher{
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.14)!important;
}
.main-content>.topbar .hotel-switcher select{color:#fff!important;background:transparent!important}
.main-content>.topbar .hotel-switcher option{color:#111827;background:#fff}

/* Sidebar : icônes réellement mises en avant, sans quitter la charte. */
.sidebar{
  background:linear-gradient(180deg,#080d3d 0%,#0b1054 72%,#070b35 100%)!important;
  box-shadow:8px 0 28px rgba(7,11,52,.12)!important;
}
.sidebar-brand{border-bottom:1px solid rgba(255,255,255,.10)!important}
.sidebar-logo-wrap{box-shadow:0 0 0 3px rgba(255,255,255,.08),0 7px 16px rgba(0,0,0,.16)}
.sidebar .menu-label{color:rgba(255,255,255,.48)!important;letter-spacing:.12em!important}
.sidebar .nav-link{
  min-height:47px!important;
  border-radius:9px!important;
  padding:.52rem .62rem!important;
  color:rgba(255,255,255,.78)!important;
  gap:.72rem!important;
}
.sidebar .nav-link>i{
  width:36px!important;
  height:36px!important;
  flex:0 0 36px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.07)!important;
  color:#fff!important;
  font-size:1.06rem!important;
  transition:.18s ease;
}
.sidebar .nav-link:hover{background:rgba(255,255,255,.07)!important;color:#fff!important}
.sidebar .nav-link:hover>i{background:rgba(227,27,35,.92)!important;border-color:rgba(255,255,255,.12)!important;transform:translateY(-1px)}
.sidebar .nav-link.active{
  background:#fff!important;
  color:var(--cat-navy)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.13)!important;
}
.sidebar .nav-link.active::before{background:var(--cat-red)!important}
.sidebar .nav-link.active span{color:var(--cat-navy)!important}
.sidebar .nav-link.active>i{
  background:var(--cat-red)!important;
  border-color:var(--cat-red)!important;
  color:#fff!important;
  box-shadow:0 5px 12px rgba(227,27,35,.24);
}
.sidebar-footer{background:#05092f!important}

/* Bandeau de dashboard : aspect logiciel métier, pas template décoratif. */
.dashboard-v19>.dashboard-head{
  position:relative;
  overflow:hidden;
  padding:22px 24px!important;
  margin-bottom:18px!important;
  border-radius:14px;
  background:linear-gradient(105deg,#070b35 0%,#0b1054 64%,#162b7c 100%);
  border:1px solid rgba(255,255,255,.05);
  border-left:5px solid var(--cat-red);
  box-shadow:0 14px 32px rgba(8,13,61,.14);
}
.dashboard-v19>.dashboard-head::after{
  content:"";
  position:absolute;
  width:220px;height:220px;right:-95px;top:-125px;
  border:30px solid rgba(255,255,255,.035);
  border-radius:50%;pointer-events:none;
}
.dashboard-v19>.dashboard-head h1{color:#fff!important;font-size:1.78rem!important;margin-top:6px}
.dashboard-v19>.dashboard-head p{color:rgba(255,255,255,.70)!important;max-width:720px}
.dashboard-v19>.dashboard-head .dashboard-eyebrow{color:#fff!important}
.dashboard-v19>.dashboard-head .dashboard-eyebrow i{color:#ff4d53!important}
.dashboard-v19>.dashboard-head .btn-soft{background:#fff!important;border-color:#fff!important;color:var(--cat-navy)!important}
.dashboard-v19>.dashboard-head .btn-soft:hover{background:#f3f5ff!important}
.dashboard-v19>.dashboard-head .btn-primary-pro{box-shadow:0 8px 18px rgba(0,0,0,.14)!important}

/* KPI : couleurs fortes, exclusivement des nuances CodeurauTop. */
.ops-kpi-grid{gap:14px!important}
.ops-kpi{
  border:0!important;
  border-radius:14px!important;
  box-shadow:0 11px 25px rgba(8,13,61,.09)!important;
  padding:16px!important;
  color:#fff!important;
  min-height:92px;
}
.ops-kpi::after{width:4px!important;background:#fff!important;opacity:.85!important}
.ops-kpi:hover{color:#fff!important;transform:translateY(-3px)!important;box-shadow:0 16px 32px rgba(8,13,61,.16)!important}
.ops-kpi .ops-kpi-copy small,
.ops-kpi .ops-kpi-copy strong,
.ops-kpi .ops-kpi-copy em{color:#fff!important}
.ops-kpi .ops-kpi-copy small{opacity:.78;letter-spacing:.045em}
.ops-kpi .ops-kpi-copy em{opacity:.67}
.ops-kpi-icon,
.ops-kpi-icon.available,
.ops-kpi-icon.occupied,
.ops-kpi-icon.arrivals,
.ops-kpi-icon.walkin,
.ops-kpi-icon.overdue,
.ops-kpi-icon.hk,
.ops-kpi-icon.reserved{
  width:48px!important;height:48px!important;flex:0 0 48px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.13)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  color:#fff!important;font-size:1.12rem!important;
  box-shadow:none!important;
}
.ops-kpi.kpi-available{background:linear-gradient(135deg,#0b1054,#162574)!important}
.ops-kpi.kpi-inhouse{background:linear-gradient(135deg,#111c67,#274aa8)!important}
.ops-kpi.kpi-arrivals{background:linear-gradient(135deg,#091142,#1b3690)!important}
.ops-kpi.kpi-walkin{background:linear-gradient(135deg,#b10f18,#e31b23)!important}
.ops-kpi.kpi-overdue{background:linear-gradient(135deg,#741017,#b6161e)!important}
.ops-kpi.kpi-hk{background:linear-gradient(135deg,#14215f,#3154b0)!important}
.ops-kpi.attention{outline:2px solid rgba(227,27,35,.24)!important;outline-offset:2px}

/* Dashboard admin : même famille visuelle, variations bleu/rouge uniquement. */
.admin-ops-grid .ops-kpi:nth-child(1){background:linear-gradient(135deg,#0b1054,#1a2f86)!important}
.admin-ops-grid .ops-kpi:nth-child(2){background:linear-gradient(135deg,#15256f,#3154b0)!important}
.admin-ops-grid .ops-kpi:nth-child(3){background:linear-gradient(135deg,#b10f18,#e31b23)!important}
.admin-ops-grid .ops-kpi:nth-child(4){background:linear-gradient(135deg,#091142,#203d9a)!important}
.admin-ops-grid .ops-kpi:nth-child(5){background:linear-gradient(135deg,#831018,#c31921)!important}
.admin-ops-grid .ops-kpi:nth-child(6){background:linear-gradient(135deg,#111b57,#253d92)!important}

/* Cartes de contenu : plus de profondeur, titres plus nets. */
.command-card,
.surface-card,
.table-card{
  border:1px solid #e6e9f1!important;
  border-radius:14px!important;
  box-shadow:0 10px 28px rgba(11,16,84,.065)!important;
}
.command-card-head{
  padding:17px 19px 15px!important;
  background:linear-gradient(180deg,#fff 0%,#f8f9fd 100%)!important;
  border-bottom:1px solid #edf0f6!important;
}
.command-card-head::before{
  width:58px!important;height:3px!important;
  background:linear-gradient(90deg,var(--cat-red),var(--cat-navy))!important;
}
.command-card-head h2{font-size:1.06rem!important;color:#0d1535!important}
.section-tag{color:#65708a!important;font-weight:800!important}
.pro-table thead th{background:#f3f5fb!important;color:#4d5872!important}
.pro-table tbody tr:hover{background:#f9faff!important}
.action-icon{background:#eef1fb!important;color:var(--cat-navy)!important}
.action-icon.primary{background:#fff0f1!important;color:var(--cat-red)!important}
.room-number-chip{background:#eef1fb!important;color:var(--cat-navy)!important}
.occupancy-bar span{background:linear-gradient(90deg,var(--cat-red),var(--cat-navy))!important}

/* État des chambres : on reste dans les teintes de la marque. */
.status-ring.available{background:#edf0ff!important;color:#0b1054!important}
.status-ring.reserved{background:#e7ecff!important;color:#274aa8!important}
.status-ring.occupied{background:#fff0f1!important;color:#e31b23!important}
.status-ring.cleaning{background:#edf2ff!important;color:#1b3690!important}
.status-ring.maintenance{background:#fbeaec!important;color:#a81219!important}

/* Petits détails qui donnent une finition produit. */
.page-wrap{padding-top:24px}
.form-control:focus,.form-select:focus{border-color:#5567b8!important;box-shadow:0 0 0 3px rgba(11,16,84,.10)!important}
.badge,.entry-badge{font-weight:750}
.alert{box-shadow:0 6px 16px rgba(11,16,84,.04)}

@media(max-width:991.98px){
  .main-content>.topbar,.topbar.hotel-topbar{min-height:66px}
  .dashboard-v19>.dashboard-head{padding:18px!important}
  .dashboard-v19>.dashboard-head h1{font-size:1.5rem!important}
}
@media(max-width:575.98px){
  .ops-kpi{min-height:82px!important;padding:13px!important}
  .ops-kpi-icon,.ops-kpi-icon.available,.ops-kpi-icon.occupied,.ops-kpi-icon.arrivals,.ops-kpi-icon.walkin,.ops-kpi-icon.overdue,.ops-kpi-icon.hk,.ops-kpi-icon.reserved{width:44px!important;height:44px!important;flex-basis:44px!important}
  .dashboard-v19>.dashboard-head{border-radius:12px}
}

/* =========================================================
   CAT HOTEL V20.4 — UI PRO / BOOTSTRAP ICONS / NO GRADIENTS
   - Header bleu nuit uni
   - Sidebar entièrement scrollable, aucun menu masqué
   - Vraies Bootstrap Icons
   - Dashboard plus premium sans dégradés
   ========================================================= */

:root{
  --cat-navy:#0B1054;
  --cat-navy-deep:#05082f;
  --cat-navy-soft:#151c66;
  --cat-blue:#2147a6;
  --cat-red:#e5252a;
  --cat-red-dark:#be171c;
  --cat-white:#ffffff;
  --cat-bg:#f4f6fa;
  --cat-border:#e1e5ec;
  --cat-text:#182235;
  --cat-muted:#748094;
}

/* 1. Bootstrap Icons : on force le rendu de la vraie police d'icônes. */
.bi::before,
[class^="bi-"]::before,
[class*=" bi-"]::before{
  font-family:"bootstrap-icons" !important;
  font-style:normal !important;
  font-weight:normal !important;
  font-variant:normal !important;
  text-transform:none !important;
  line-height:1 !important;
  -webkit-font-smoothing:antialiased !important;
  -moz-osx-font-smoothing:grayscale !important;
}

/* 2. Sidebar : aucune fonctionnalité ne doit être cachée. */
.sidebar{
  display:flex !important;
  flex-direction:column !important;
  height:100vh !important;
  overflow:hidden !important;
  background:var(--cat-navy-deep) !important;
}
.sidebar-brand{
  flex:0 0 auto !important;
  background:var(--cat-navy-deep) !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}
.sidebar-scroll{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:10px 10px 16px !important;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.22) transparent;
}
.sidebar-scroll::-webkit-scrollbar{width:6px}
.sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:8px}
.sidebar-footer{
  position:static !important;
  flex:0 0 auto !important;
  background:#030624 !important;
  border-top:1px solid rgba(255,255,255,.09) !important;
  padding:9px 10px 10px !important;
}
.menu-label{
  margin:13px 8px 5px !important;
  padding:0 !important;
  color:rgba(255,255,255,.45) !important;
  font-size:.61rem !important;
  font-weight:800 !important;
  letter-spacing:.13em !important;
}
.sidebar .nav-link{
  min-height:43px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:2px 0 !important;
  padding:7px 9px !important;
  border-radius:8px !important;
  color:rgba(255,255,255,.78) !important;
  background:transparent !important;
  border:1px solid transparent !important;
  font-size:.80rem !important;
  font-weight:620 !important;
}
.sidebar .nav-link > i{
  width:31px !important;
  height:31px !important;
  flex:0 0 31px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:7px !important;
  background:rgba(255,255,255,.07) !important;
  color:#fff !important;
  font-size:1rem !important;
  box-shadow:none !important;
}
.sidebar .nav-link:hover{
  color:#fff !important;
  background:rgba(255,255,255,.07) !important;
  border-color:rgba(255,255,255,.05) !important;
}
.sidebar .nav-link:hover > i{
  background:rgba(255,255,255,.13) !important;
  color:#fff !important;
}
.sidebar .nav-link.active{
  background:#fff !important;
  color:var(--cat-navy) !important;
  border-color:#fff !important;
  box-shadow:0 5px 14px rgba(0,0,0,.12) !important;
}
.sidebar .nav-link.active > i{
  background:#fff0f0 !important;
  color:var(--cat-red) !important;
}
.sidebar-brand-title .text-gold{color:var(--cat-red) !important}

/* 3. Header : bleu nuit UNI, pas de dégradé et aucun bloc important masqué. */
.main-content > .topbar,
.topbar.hotel-topbar{
  background:var(--cat-navy-deep) !important;
  background-image:none !important;
  min-height:72px !important;
  height:auto !important;
  padding:10px 20px !important;
  border-bottom:3px solid var(--cat-red) !important;
  box-shadow:0 6px 18px rgba(5,8,47,.13) !important;
  overflow:visible !important;
  flex-wrap:wrap !important;
  gap:9px 18px !important;
}
.topbar.hotel-topbar .topbar-title,
.topbar.hotel-topbar .topbar-user-copy strong,
.main-content > .topbar .topbar-title,
.main-content > .topbar .fw-bold{color:#fff !important}
.topbar.hotel-topbar .topbar-sub,
.topbar.hotel-topbar .topbar-user-copy span,
.main-content > .topbar .topbar-sub{color:rgba(255,255,255,.68) !important}
.topbar-leading{flex:1 1 220px !important;min-width:0 !important}
.topbar-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  gap:8px !important;
  overflow:visible !important;
}
.hotel-switcher{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  min-width:0 !important;
  height:39px !important;
  padding:0 9px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:rgba(255,255,255,.08) !important;
  border-radius:8px !important;
  color:#fff !important;
}
.hotel-switcher > i{color:#fff !important;font-size:.95rem !important}
.hotel-switcher select{
  display:block !important;
  max-width:205px !important;
  min-width:125px !important;
  color:#fff !important;
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  font-size:.72rem !important;
  font-weight:700 !important;
}
.hotel-switcher select option{color:#111827 !important;background:#fff !important}
.topbar-fx{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  min-height:39px !important;
  padding:5px 10px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:rgba(255,255,255,.08) !important;
  border-radius:8px !important;
  color:#fff !important;
}
.topbar-fx > i{color:#fff !important;font-size:1rem !important}
.topbar-fx small{color:rgba(255,255,255,.62) !important;font-size:.55rem !important}
.topbar-fx strong{color:#fff !important;font-size:.67rem !important}
.alert-bell,
.topbar-menu{
  width:39px !important;
  height:39px !important;
  display:grid !important;
  place-items:center !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:8px !important;
}
.alert-bell > i,.topbar-menu > i{font-size:1rem !important;color:#fff !important}
.topbar-user{border-left:1px solid rgba(255,255,255,.16) !important}
.user-avatar{
  border:1px solid rgba(255,255,255,.20) !important;
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
}

/* 4. Dashboard : cartes colorées mais strictement dans la charte, aucun dégradé. */
.dashboard-head{
  padding:4px 0 3px !important;
}
.dashboard-head h1{
  color:var(--cat-navy) !important;
  font-size:1.78rem !important;
  font-weight:820 !important;
  letter-spacing:-.025em !important;
}
.dashboard-eyebrow,
.section-tag{
  color:var(--cat-red) !important;
  font-weight:850 !important;
}
.dashboard-eyebrow i,
.section-tag i{color:var(--cat-red) !important}
.ops-kpi-grid{gap:13px !important}
.ops-kpi{
  position:relative !important;
  overflow:hidden !important;
  border:1px solid var(--cat-border) !important;
  border-top:4px solid var(--cat-navy) !important;
  border-radius:11px !important;
  padding:15px !important;
  background:#fff !important;
  background-image:none !important;
  box-shadow:0 7px 20px rgba(14,26,58,.07) !important;
}
.ops-kpi::after{display:none !important}
.ops-kpi:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 10px 26px rgba(14,26,58,.11) !important;
}
.ops-kpi.kpi-available{background:#f6f7ff !important;border-top-color:var(--cat-navy) !important}
.ops-kpi.kpi-inhouse{background:#f2f5ff !important;border-top-color:var(--cat-blue) !important}
.ops-kpi.kpi-arrivals{background:#f7f8fc !important;border-top-color:#334b93 !important}
.ops-kpi.kpi-walkin{background:#fff5f5 !important;border-top-color:var(--cat-red) !important}
.ops-kpi.kpi-overdue{background:#fff1f1 !important;border-top-color:var(--cat-red-dark) !important}
.ops-kpi.kpi-hk{background:#f6f7fa !important;border-top-color:#27365f !important}
.ops-kpi-icon{
  width:45px !important;
  height:45px !important;
  flex:0 0 45px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:9px !important;
  background:#fff !important;
  border:1px solid rgba(11,16,84,.13) !important;
  color:var(--cat-navy) !important;
  box-shadow:none !important;
}
.ops-kpi-icon i{font-size:1.18rem !important;color:inherit !important}
.ops-kpi-icon.available{color:var(--cat-navy) !important;background:#fff !important}
.ops-kpi-icon.occupied{color:var(--cat-blue) !important;background:#fff !important}
.ops-kpi-icon.arrivals{color:#334b93 !important;background:#fff !important}
.ops-kpi-icon.walkin{color:var(--cat-red) !important;background:#fff !important}
.ops-kpi-icon.overdue{color:var(--cat-red-dark) !important;background:#fff !important}
.ops-kpi-icon.hk{color:#27365f !important;background:#fff !important}
.ops-kpi-copy small{color:#6f798b !important;font-size:.69rem !important}
.ops-kpi-copy strong{color:#131b2d !important;font-size:1.58rem !important}
.ops-kpi-copy em{color:#8b94a3 !important}

.command-card{
  border:1px solid var(--cat-border) !important;
  border-radius:10px !important;
  box-shadow:0 6px 18px rgba(14,26,58,.055) !important;
  overflow:hidden !important;
}
.command-card-head{
  background:#fff !important;
  background-image:none !important;
  border-bottom:1px solid var(--cat-border) !important;
}
.command-card-head::before{
  width:46px !important;
  background:var(--cat-red) !important;
  background-image:none !important;
}
.occupancy-bar span{
  background:var(--cat-navy) !important;
  background-image:none !important;
}
.money-grid > div{
  background:#fff !important;
  background-image:none !important;
  border:1px solid var(--cat-border) !important;
}

/* Boutons cohérents avec CodeurauTop. */
.btn-primary-pro{
  background:var(--cat-red) !important;
  border-color:var(--cat-red) !important;
  color:#fff !important;
  box-shadow:none !important;
}
.btn-primary-pro:hover{
  background:var(--cat-red-dark) !important;
  border-color:var(--cat-red-dark) !important;
}
.btn-soft{
  background:#fff !important;
  border:1px solid #d9deea !important;
  color:var(--cat-navy) !important;
}
.btn-soft:hover{background:#f6f7fb !important;color:var(--cat-navy) !important}

/* 5. Responsive : ne pas cacher le switch établissement ni le taux. */
@media (max-width:1199.98px){
  .hotel-switcher select{max-width:160px !important}
  .topbar-fx{padding:5px 8px !important}
  .topbar-fx span{display:block !important}
}
@media (max-width:991.98px){
  .sidebar{z-index:1055 !important}
  .main-content > .topbar,
  .topbar.hotel-topbar{padding:9px 13px !important}
  .topbar-actions{
    flex:1 1 100% !important;
    justify-content:flex-start !important;
    width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    padding-bottom:1px !important;
  }
  .hotel-switcher{flex:1 1 190px !important;max-width:290px !important}
  .hotel-switcher select{max-width:none !important;width:100% !important}
  .topbar-fx{flex:0 0 auto !important}
  .topbar-user{margin-left:auto !important}
}
@media (max-width:575.98px){
  .main-content > .topbar,
  .topbar.hotel-topbar{gap:8px !important}
  .topbar-leading{flex-basis:100% !important}
  .topbar-actions{gap:6px !important}
  .hotel-switcher{min-width:160px !important;max-width:220px !important;height:38px !important}
  .hotel-switcher select{font-size:.66rem !important}
  .topbar-fx{min-height:38px !important}
  .topbar-fx span{display:none !important}
  .alert-bell,.topbar-menu{width:38px !important;height:38px !important}
  .ops-kpi-grid{grid-template-columns:1fr !important}
  .ops-kpi{min-height:82px !important}
}

/* ======================================================================
   CAT HOTEL V20.5 — DASHBOARD MÉTIER & TRAÇABILITÉ
   Aucun dégradé. Bootstrap Icons uniquement.
   ====================================================================== */
.dashboard-v205{max-width:1700px;margin:0 auto}
.dashboard-head-role{margin-bottom:18px!important}
.role-context{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.role-context span{display:inline-flex;align-items:center;gap:7px;min-height:31px;padding:5px 10px;border:1px solid #dde2ee;border-radius:7px;background:#fff;color:#46516a;font-size:.72rem;font-weight:750}
.role-context i{color:var(--cat-navy);font-size:.88rem}

.executive-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}
.executive-kpi{display:flex;align-items:center;gap:12px;min-height:94px;padding:14px;border:1px solid #dfe4ef;border-top:4px solid var(--cat-navy);border-radius:10px;background:#fff;color:#111827;text-decoration:none;box-shadow:0 6px 18px rgba(14,26,58,.055);transition:.16s ease}
.executive-kpi:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(14,26,58,.09);color:#111827}
.executive-kpi.tone-blue{border-top-color:#24479e;background:#f7f9ff}
.executive-kpi.tone-red{border-top-color:var(--cat-red);background:#fff8f8}
.executive-kpi.tone-slate{border-top-color:#4b5a78;background:#f8f9fb}
.executive-kpi.tone-navy{border-top-color:var(--cat-navy);background:#f8f8fd}
.executive-kpi-icon{width:43px;height:43px;flex:0 0 43px;display:grid;place-items:center;border-radius:9px;border:1px solid #d9dfeb;background:#fff;color:var(--cat-navy);font-size:1.08rem}
.executive-kpi.tone-red .executive-kpi-icon{color:var(--cat-red)}
.executive-kpi.tone-blue .executive-kpi-icon{color:#24479e}
.executive-kpi>span:last-child{min-width:0;display:flex;flex-direction:column}
.executive-kpi small{font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em;color:#778195}
.executive-kpi strong{font-size:1.55rem;line-height:1.1;color:#111827;margin:3px 0}
.executive-kpi em{font-size:.68rem;color:#8791a4;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.finance-summary-card{border:1px solid #dfe4ef;border-left:4px solid var(--cat-navy);border-radius:10px;background:#fff;box-shadow:0 6px 18px rgba(14,26,58,.055);padding:18px}
.finance-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}
.finance-summary-head h2{font-size:1.05rem;margin:3px 0;color:#161f36;font-weight:800}
.finance-summary-head p{margin:0;color:#7a8599;font-size:.75rem}
.finance-summary-head>a{font-size:.74rem;font-weight:800;color:var(--cat-navy);text-decoration:none;white-space:nowrap}
.finance-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.finance-period{border:1px solid #e1e6ef;border-radius:9px;padding:13px;background:#f8f9fc}
.finance-period.finance-expense{background:#fff8f8;border-color:#f0d9dc}
.finance-period-label{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:#4c5870;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.finance-period-label i{color:var(--cat-navy);font-size:1rem}
.finance-expense .finance-period-label i{color:var(--cat-red)}
.finance-money{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.finance-money>div{background:#fff;border:1px solid #e2e6ee;border-radius:8px;padding:9px 10px}
.finance-money small{display:block;color:#8b94a5;font-size:.61rem;font-weight:850;letter-spacing:.06em}
.finance-money strong{display:block;color:#10182b;font-size:.93rem;margin-top:2px;white-space:nowrap}

.role-work-card{border-top:4px solid var(--cat-navy)!important}
.personal-metrics{padding:6px 18px 15px}
.personal-metrics>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf0f5}
.personal-metrics>div:last-child{border-bottom:0}
.personal-metrics span{display:flex;align-items:center;gap:9px;color:#59657a;font-size:.76rem;font-weight:700}
.personal-metrics i{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;background:#f2f4fa;color:var(--cat-navy)}
.personal-metrics strong{font-size:1.05rem;color:#111827}

.activity-feed{padding:4px 18px 12px}
.activity-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f5}
.activity-row:last-child{border-bottom:0}
.activity-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;border:1px solid #e0e4ed;background:#f7f8fb;color:#55617a}
.activity-icon.tone-navy{color:var(--cat-navy);background:#f4f5fb}
.activity-icon.tone-blue{color:#24479e;background:#f3f6ff}
.activity-icon.tone-red{color:var(--cat-red);background:#fff3f4}
.activity-icon.tone-green{color:#157347;background:#f1faf5}
.activity-copy{min-width:0}
.activity-copy>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.activity-copy strong{font-size:.77rem;color:#172033}
.activity-copy>div span{font-size:.66rem;font-weight:750;color:#6f7b90;padding:2px 6px;border-radius:5px;background:#f2f4f8}
.activity-copy small{display:block;margin-top:3px;color:#818b9d;font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-row time{font-size:.64rem;color:#8c96a8;font-weight:700;white-space:nowrap}
.admin-global-feed .activity-row{grid-template-columns:38px minmax(0,1fr) 74px}

.team-activity-list{padding:5px 17px 13px}
.team-activity-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f5}
.team-activity-row:last-child{border-bottom:0}
.small-avatar{width:34px!important;height:34px!important;min-width:34px!important;font-size:.76rem!important}
.team-activity-row>div{min-width:0}
.team-activity-row>div strong{display:block;font-size:.76rem;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-activity-row>div small{display:block;font-size:.65rem;color:#8791a2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.team-activity-row>b{display:flex;flex-direction:column;align-items:flex-end;color:var(--cat-navy);font-size:.96rem}
.team-activity-row>b small{font-size:.58rem;color:#8a93a3;font-weight:650}

.attention-metrics{padding:8px 16px 14px;display:grid;gap:8px}
.attention-metrics a{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid #e2e6ef;border-radius:8px;background:#fafbfc;color:#293248;text-decoration:none}
.attention-metrics a>i{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;background:#fff;border:1px solid #e3e7ee;color:var(--cat-navy)}
.attention-metrics span{font-size:.72rem;font-weight:720}
.attention-metrics strong{font-size:.9rem;color:#111827}

.platform-activity-summary{border:1px solid #dfe4ef;border-left:4px solid var(--cat-red);border-radius:10px;background:#fff;box-shadow:0 6px 18px rgba(14,26,58,.055);padding:18px}
.platform-activity-head h2{font-size:1.05rem;font-weight:800;margin:3px 0;color:#161f36}
.platform-activity-head p{font-size:.75rem;color:#7a8599;margin:0 0 14px}
.platform-activity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.platform-activity-grid>div{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px;border:1px solid #e1e6ef;border-radius:9px;background:#f8f9fc}
.platform-icon{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:#fff;border:1px solid #dfe4ed;color:var(--cat-navy)}
.platform-activity-grid small{font-size:.64rem;color:#778296;font-weight:750}
.platform-activity-grid strong{font-size:1.2rem;color:#111827;line-height:1.05}

@media(max-width:1499.98px){.executive-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1199.98px){.finance-summary-grid{grid-template-columns:1fr 1fr}.finance-period.finance-expense{grid-column:1/-1}.platform-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.executive-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-summary-head{flex-direction:column}.finance-summary-grid{grid-template-columns:1fr}.finance-period.finance-expense{grid-column:auto}.platform-activity-grid{grid-template-columns:1fr 1fr}.activity-row{grid-template-columns:36px minmax(0,1fr)}.activity-row time{grid-column:2;margin-top:-7px}.admin-global-feed .activity-row{grid-template-columns:36px minmax(0,1fr)}}
@media(max-width:479.98px){.executive-kpi-grid{grid-template-columns:1fr}.platform-activity-grid{grid-template-columns:1fr}.finance-money{grid-template-columns:1fr}.role-context{gap:5px}.role-context span{font-size:.66rem}.dashboard-head h1{font-size:1.52rem!important}}

/* ========================================================================== 
   CAT HOTEL V20.6 - Abonnements directs & communications CAT
   ========================================================================== */
.topbar-communication-btn{
    width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:9px;
    display:grid;place-items:center;position:relative;color:#fff;background:#11194f;
    text-decoration:none;flex:0 0 auto;transition:.18s ease;
}
.topbar-communication-btn:hover{color:#fff;background:#182263;border-color:rgba(255,255,255,.28)}
.topbar-communication-btn>i{font-size:1.05rem}
.topbar-communication-btn>span{
    position:absolute;top:-5px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;
    display:grid;place-items:center;background:#d7262f;color:#fff;border:2px solid #0b1054;
    font-size:.62rem;font-weight:800;line-height:1;
}
.topbar-communication-btn.has-unread{box-shadow:0 0 0 3px rgba(215,38,47,.12)}
.direct-payment-banner{
    display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
    background:#fff;border:1px solid #dde2ed;border-left:4px solid #d7262f;border-radius:12px;padding:20px 22px;
    box-shadow:0 10px 28px rgba(11,16,84,.06);
}
.direct-payment-banner-icon{width:50px;height:50px;border-radius:10px;background:#0b1054;color:#fff;display:grid;place-items:center;font-size:1.25rem}
.direct-payment-banner-copy h2{font-size:1.12rem;margin:3px 0 4px;color:#171d45;font-weight:800}
.direct-payment-banner-copy p{margin:0;color:#697188;font-size:.82rem;line-height:1.55}
.manual-payment-config{padding:15px;border:1px solid #dfe3ed;border-radius:10px;background:#f8f9fc}
.manual-activate-card{border-top:3px solid #0b1054}
.admin-action-pop{min-width:230px;padding:10px;background:#fff;border:1px solid #dfe3ea;border-radius:9px;box-shadow:0 12px 30px rgba(11,16,84,.1)}
.direct-pay-card{border-top:3px solid #d7262f}
.payment-instructions{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:15px;margin:17px 0;background:#f7f8fc;border:1px solid #dde2ee;border-radius:10px;color:#252c50}
.payment-instructions-icon{width:38px;height:38px;border-radius:8px;background:#0b1054;color:#fff;display:grid;place-items:center;font-size:1rem}
.payment-instructions strong{display:block;margin-bottom:5px;font-size:.82rem}
.payment-instructions div div{white-space:normal;line-height:1.65;color:#60687e;font-size:.78rem}
.announcement-admin-list{padding:0 18px 18px}
.announcement-admin-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid #eceef3}
.announcement-admin-row:last-child{border-bottom:0}
.announcement-admin-icon{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:#eef1fb;color:#0b1054;font-size:1rem}
.announcement-admin-row.priority-important .announcement-admin-icon{background:#fff3e4;color:#9a5b00}
.announcement-admin-row.priority-critical .announcement-admin-icon{background:#fff0f1;color:#b3232d}
.announcement-admin-copy p{margin:7px 0;color:#61697c;font-size:.8rem;line-height:1.55}
.announcement-admin-copy small{color:#8a91a1;font-size:.7rem}
.announcement-client-list{display:grid;gap:12px}
.announcement-client-card{display:grid;grid-template-columns:auto 1fr;gap:14px;background:#fff;border:1px solid #dfe3ed;border-left:4px solid #0b1054;border-radius:11px;padding:18px 20px;box-shadow:0 8px 24px rgba(11,16,84,.05)}
.announcement-client-card.priority-important{border-left-color:#c37a09}.announcement-client-card.priority-critical{border-left-color:#d7262f}
.announcement-client-icon{width:42px;height:42px;border-radius:9px;background:#eef1fb;color:#0b1054;display:grid;place-items:center;font-size:1.05rem}
.priority-important .announcement-client-icon{background:#fff3e5;color:#9a5b00}.priority-critical .announcement-client-icon{background:#fff0f1;color:#b3232d}
.announcement-client-card h3{font-size:.96rem;margin:0;color:#1f2646;font-weight:800}
.announcement-client-card p{font-size:.82rem;line-height:1.62;color:#596176;margin:9px 0}
.announcement-client-card small{font-size:.7rem;color:#8a91a1}
.service-request-list{padding:0 18px 18px}
.service-request-row{display:grid;grid-template-columns:auto 1fr;gap:13px;padding:16px 0;border-bottom:1px solid #eceef3}
.service-request-row:last-child{border-bottom:0}
.service-request-icon{width:40px;height:40px;border-radius:9px;background:#eef1fb;color:#0b1054;display:grid;place-items:center}
.service-request-copy>small{display:block;color:#8a91a1;margin-top:4px;font-size:.7rem}.service-request-copy>p{margin:8px 0 0;color:#5e667a;font-size:.8rem;line-height:1.55}
.cat-reply{margin-top:12px;padding:11px 13px;background:#f6f8fb;border-left:3px solid #0b1054;border-radius:0 8px 8px 0}.cat-reply span{font-size:.72rem;font-weight:800;color:#0b1054}.cat-reply p{margin:5px 0 0;font-size:.78rem;color:#4f586e}
@media(max-width:991.98px){.direct-payment-banner{grid-template-columns:auto 1fr}.direct-payment-banner>a{grid-column:1/-1;width:100%}.announcement-admin-row{grid-template-columns:auto 1fr}.announcement-admin-row>form{grid-column:2}}
@media(max-width:575.98px){.direct-payment-banner{grid-template-columns:1fr;padding:17px}.direct-payment-banner-icon{width:44px;height:44px}.announcement-client-card{grid-template-columns:1fr;padding:16px}.announcement-client-icon{width:38px;height:38px}.service-request-row{grid-template-columns:1fr}.topbar-communication-btn{width:38px;height:38px}}


/* ========================================================================== 
   CAT HOTEL V20.7 — TOPBAR RESPONSIVE + JOURS RESTANTS
   Mobile : les outils secondaires sont repliés. Le J-x reste visible.
   ========================================================================== */
.topbar-actions{position:relative}
.topbar-utility-cluster{display:flex;align-items:center;gap:8px;min-width:0}
.topbar-utilities-toggle{
  width:39px;height:39px;position:relative;place-items:center;border-radius:8px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;
}
.topbar-utilities-toggle i{font-size:1rem}
.topbar-tools-dot{position:absolute;right:6px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--cat-red);box-shadow:0 0 0 2px #0b1054}
.topbar-action-text{display:none;font-size:.7rem;font-weight:800;letter-spacing:0}
.topbar-access-badge{
  min-height:40px;display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:8px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);color:#fff!important;
  text-decoration:none;white-space:nowrap;transition:.16s ease;
}
.topbar-access-badge:hover{background:rgba(255,255,255,.15);color:#fff!important}
.topbar-access-badge>i{font-size:1rem;color:#fff}
.topbar-access-copy{display:flex;flex-direction:column;line-height:1.05}
.topbar-access-copy small{font-size:.52rem;color:rgba(255,255,255,.64);font-weight:750;text-transform:uppercase;letter-spacing:.045em}
.topbar-access-copy strong{margin-top:3px;font-size:.72rem;color:#fff;font-weight:900;letter-spacing:.025em}
.topbar-access-badge.is-urgent{border-color:rgba(255,209,105,.55);background:rgba(255,187,46,.12)}
.topbar-access-badge.is-expired{border-color:rgba(255,117,117,.55);background:rgba(215,38,47,.18)}

@media(max-width:991.98px){
  .main-content>.topbar,.topbar.hotel-topbar{min-height:64px!important;padding:8px 11px!important;gap:8px!important;flex-wrap:nowrap!important}
  .topbar-leading{flex:1 1 auto!important;min-width:0!important}
  .topbar-page-copy{min-width:0}
  .topbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:36vw}
  .topbar-sub{display:none}
  .topbar-actions{flex:0 0 auto!important;width:auto!important;overflow:visible!important;padding:0!important;gap:6px!important;margin-left:auto!important}
  .topbar-user{margin-left:0!important;padding-left:6px!important}
  .topbar-access-badge{min-height:38px;padding:5px 8px;gap:6px}
  .topbar-access-copy small{display:none}
  .topbar-access-copy strong{margin:0;font-size:.72rem}
  .topbar-utilities-toggle{display:grid!important;width:38px;height:38px}
  .topbar-utility-cluster{
    display:none;position:fixed;z-index:1080;top:72px;right:12px;left:12px;padding:10px;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;background:#fff;color:#172337;
    border:1px solid #dfe3ec;border-radius:11px;box-shadow:0 18px 45px rgba(6,12,52,.20)
  }
  .topbar-utility-cluster.is-open{display:grid!important}
  .topbar-utility-cluster .hotel-switcher{
    display:flex!important;grid-column:1/-1!important;width:100%!important;max-width:none!important;min-height:42px!important;
    background:#f7f8fc!important;border:1px solid #e0e4ed!important;color:var(--cat-navy)!important;border-radius:8px!important;padding:6px 9px!important
  }
  .topbar-utility-cluster .hotel-switcher>i{color:var(--cat-navy)!important}
  .topbar-utility-cluster .hotel-switcher select{width:100%!important;max-width:none!important;color:var(--cat-navy)!important;font-size:.72rem!important}
  .topbar-utility-cluster .topbar-fx{
    display:flex!important;grid-column:1/-1!important;width:100%!important;min-height:42px!important;
    background:#f7f8fc!important;border:1px solid #e0e4ed!important;color:var(--cat-navy)!important;border-radius:8px!important;padding:6px 10px!important
  }
  .topbar-utility-cluster .topbar-fx>i,.topbar-utility-cluster .topbar-fx strong{color:var(--cat-navy)!important}
  .topbar-utility-cluster .topbar-fx small{color:#798197!important;opacity:1!important}
  .topbar-utility-cluster .topbar-fx span{display:flex!important}
  .topbar-utility-cluster .topbar-communication-btn,
  .topbar-utility-cluster .alert-bell{
    width:100%!important;height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
    border:1px solid #e0e4ed!important;background:#f7f8fc!important;color:var(--cat-navy)!important;border-radius:8px!important
  }
  .topbar-utility-cluster .topbar-communication-btn>i,
  .topbar-utility-cluster .alert-bell>i{color:var(--cat-navy)!important}
  .topbar-utility-cluster .topbar-action-text{display:inline!important;color:var(--cat-navy)!important}
  .topbar-utility-cluster .alert-center{width:100%}
  .topbar-utility-cluster .alert-count{border-color:#f7f8fc!important}
  .alert-panel{position:fixed!important;top:126px!important;left:12px!important;right:12px!important;width:auto!important;max-height:calc(100vh - 142px)!important}
  .subscription-ribbon{margin-left:0!important}
}
@media(max-width:575.98px){
  .topbar-title{max-width:28vw;font-size:.78rem!important}
  .topbar-menu,.topbar-utilities-toggle,.user-avatar{width:36px!important;height:36px!important}
  .topbar-access-badge{min-height:36px;padding:4px 7px}
  .topbar-access-badge>i{display:none}
  .topbar-access-copy strong{font-size:.68rem}
  .topbar-utility-cluster{top:67px;right:8px;left:8px}
  .alert-panel{top:120px!important;left:8px!important;right:8px!important}
  .subscription-ribbon{padding:8px 11px!important}
  .subscription-ribbon-copy span{font-size:.68rem!important}
}

/* V20.7 : couleurs pleines, conformément à la charte CodeurauTop. */
.main-content>.topbar,.topbar.hotel-topbar{background:#070b35!important}
.sidebar{background:#080d3d!important}

/* ========================================================================== 
   CAT HOTEL V20.8 — RÉCUPÉRATION DE COMPTE + RESPONSIVE MOBILE FINAL
   ========================================================================== */
.forgot-password-link{display:inline-flex;align-items:center;gap:5px;color:var(--cat-navy);font-size:.7rem;font-weight:800;text-decoration:none;white-space:nowrap}
.forgot-password-link:hover{color:var(--cat-red);text-decoration:none}
.recovery-card-wrap{max-width:520px}
.recovery-help-card,.password-rule-card,.reset-invalid-card{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid #dde3ed;border-radius:9px;background:#f8f9fc;margin-top:18px;color:#34405a}
.recovery-help-card>i,.password-rule-card>i,.reset-invalid-card>i{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:7px;background:#eef1f8;color:var(--cat-navy);font-size:.95rem}
.recovery-help-card strong,.password-rule-card strong,.reset-invalid-card strong{display:block;color:#1e2942;font-size:.75rem}
.recovery-help-card span,.password-rule-card span,.reset-invalid-card span{display:block;margin-top:3px;color:#778196;font-size:.67rem;line-height:1.5}
.recovery-help-card a{color:var(--cat-navy);font-weight:800}
.recovery-back-link{display:inline-flex;align-items:center;gap:7px;margin-top:22px;color:#667188;font-size:.72rem;font-weight:800;text-decoration:none}
.recovery-back-link:hover{color:var(--cat-navy)}

/* Les pages métiers ne doivent jamais élargir le viewport sur téléphone. */
html,body{max-width:100%;overflow-x:hidden}
.main-content,.page-wrap,.surface-card,.command-card,.table-card,.pro-card,.modal-content{min-width:0}
.table-responsive{width:100%;max-width:100%;-webkit-overflow-scrolling:touch}
img,svg,video,canvas{max-width:100%}

@media(max-width:767.98px){
  /* En-tête mobile : une ligne stable, les outils secondaires restent dans le panneau. */
  .main-content>.topbar,.topbar.hotel-topbar{position:sticky!important;top:0!important;z-index:1040!important;display:flex!important;align-items:center!important;min-height:58px!important;padding:7px 9px!important;gap:7px!important}
  .topbar-leading{display:flex!important;align-items:center!important;gap:7px!important;flex:1 1 auto!important;min-width:0!important}
  .topbar-page-copy{flex:1 1 auto!important;min-width:0!important}
  .topbar-title{max-width:none!important;width:100%!important;font-size:.76rem!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .topbar-actions{display:flex!important;align-items:center!important;flex:0 0 auto!important;gap:5px!important;width:auto!important;min-width:0!important;margin:0!important}
  .topbar-access-badge{flex:0 0 auto!important;min-width:46px!important;justify-content:center!important;padding:4px 7px!important;border-radius:7px!important}
  .topbar-access-copy strong{font-size:.67rem!important}
  .topbar-utilities-toggle,.topbar-menu,.user-avatar{flex:0 0 35px!important;width:35px!important;height:35px!important;border-radius:7px!important}
  .topbar-user{flex:0 0 auto!important;margin:0!important;padding:0!important;border-left:0!important}

  /* Contenu : rythme régulier, aucune carte collée au bord. */
  .page-wrap,.dashboard-v19,.dashboard-v205,.staff-page{width:100%!important;max-width:100%!important;padding-left:11px!important;padding-right:11px!important;margin-left:auto!important;margin-right:auto!important}
  .page-wrap{padding-top:14px!important;padding-bottom:24px!important}
  .dashboard-head,.pro-page-head,.page-header,.section-header,.table-card-header,.pro-card-head,.command-card-head{gap:10px!important}
  .dashboard-head,.pro-page-head,.page-header{align-items:flex-start!important}
  .dashboard-head-actions,.pro-page-actions,.page-actions{display:flex!important;flex-wrap:wrap!important;width:100%!important;gap:7px!important}
  .dashboard-head-actions>.btn,.pro-page-actions>.btn,.page-actions>.btn{flex:1 1 150px!important;justify-content:center!important}
  .dashboard-head h1,.pro-page-head h1,.page-header h1{font-size:1.35rem!important;line-height:1.18!important}
  .dashboard-head p,.pro-page-head p,.page-header p{font-size:.72rem!important;line-height:1.5!important}

  /* Cartes KPI : 2 colonnes sur la plupart des téléphones pour une lecture compacte. */
  .executive-kpi-grid,.ops-kpi-grid,.admin-ops-grid,.platform-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .executive-kpi,.ops-kpi{min-height:88px!important;padding:11px!important;gap:9px!important}
  .executive-kpi-icon,.ops-kpi-icon{width:38px!important;height:38px!important;flex-basis:38px!important}
  .executive-kpi strong,.ops-kpi strong{font-size:1.25rem!important}
  .executive-kpi small,.ops-kpi small{font-size:.59rem!important}
  .executive-kpi em,.ops-kpi em{font-size:.62rem!important}

  /* Cartes et formulaires : rayon/espacement cohérents, boutons utilisables au pouce. */
  .surface-card,.command-card,.table-card,.pro-card,.finance-summary-card{border-radius:9px!important}
  .surface-card>.p-4,.command-card>.p-4,.table-card>.p-4,.pro-card>.p-4{padding:14px!important}
  .form-control,.form-select,.input-group-text{min-height:43px!important;font-size:.78rem!important}
  textarea.form-control{min-height:92px!important}
  .btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
  .modal-dialog{margin:8px!important;max-width:calc(100% - 16px)!important}
  .modal-content{max-height:calc(100vh - 16px);overflow:auto;border-radius:10px!important}

  /* Les tableaux restent lisibles sans casser toute la page. */
  .table-responsive,.stay-table-wrap{overflow-x:auto!important;overscroll-behavior-inline:contain}
  .pro-table,.staff-table,.audit-table{min-width:760px!important;margin-bottom:0!important}
  .table>:not(caption)>*>*{padding:.68rem .66rem!important;font-size:.69rem!important;white-space:nowrap}
  .table td small{white-space:normal;min-width:120px}

  /* Listes métier : retour propre à la ligne. */
  .activity-row,.team-activity-row,.arrival-list>a,.attention-metrics>a,.personal-metrics>div{min-width:0!important}
  .activity-copy,.team-activity-row>div,.arrival-list>a>span{min-width:0!important}
  .activity-copy small,.team-activity-row small{white-space:normal!important;overflow-wrap:anywhere}

  /* Panneau d'outils mobile : une seule colonne = pas de chevauchements. */
  .topbar-utility-cluster{grid-template-columns:1fr!important;top:64px!important;left:8px!important;right:8px!important;max-height:calc(100vh - 76px)!important;overflow:auto!important;padding:9px!important}
  .topbar-utility-cluster .hotel-switcher,.topbar-utility-cluster .topbar-fx,.topbar-utility-cluster .topbar-communication-btn,.topbar-utility-cluster .alert-center{grid-column:1!important;width:100%!important}
  .alert-panel{top:112px!important;left:8px!important;right:8px!important;width:auto!important;max-height:calc(100vh - 124px)!important}

  /* Ruban abonnement : pas de bouton qui sort de l'écran. */
  .subscription-ribbon{display:flex!important;align-items:flex-start!important;gap:9px!important;flex-direction:column!important;padding:9px 11px!important}
  .subscription-ribbon>a{width:100%!important}
  .subscription-ribbon-copy{min-width:0!important}

  /* Authentification / récupération : aucune colonne latérale sur mobile. */
  .login-shell,.recovery-shell{min-height:100dvh!important;height:auto!important;display:block!important}
  .login-brand-panel,.recovery-brand-panel{display:none!important}
  .login-main{min-height:100dvh!important;padding:20px 13px!important;align-items:flex-start!important}
  .login-card-wrap,.recovery-card-wrap{width:100%!important;max-width:520px!important;margin:0 auto!important;padding:12px 2px 24px!important}
  .login-heading h2{font-size:1.55rem!important}
  .login-heading p{font-size:.76rem!important;line-height:1.55!important}
  .forgot-password-link{font-size:.66rem!important}
}

@media(max-width:419.98px){
  .topbar-title{display:none!important}
  .topbar-leading{flex:0 0 auto!important}
  .topbar-actions{margin-left:auto!important}
  .executive-kpi-grid,.ops-kpi-grid,.admin-ops-grid,.platform-activity-grid{grid-template-columns:1fr!important}
  .executive-kpi,.ops-kpi{min-height:78px!important}
  .dashboard-head-actions>.btn,.pro-page-actions>.btn,.page-actions>.btn{flex-basis:100%!important}
  .forgot-password-link i{display:none}
}

/* ========================================================================== */
/* CAT HOTEL V20.9 - Tableau de bord collaborateur                            */
/* ========================================================================== */
.staff-dashboard-v209{padding-bottom:42px}
.staff-dashboard-hero{background:#0B1054;color:#fff;border-radius:18px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 14px 36px rgba(11,16,84,.16);border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}
.staff-dashboard-hero:after{content:"";position:absolute;right:-70px;bottom:-90px;width:240px;height:240px;border-radius:50%;border:36px solid rgba(255,255,255,.045);pointer-events:none}
.staff-hero-identity{display:flex;align-items:center;gap:20px;min-width:0;position:relative;z-index:1}
.staff-hero-avatar{width:70px;height:70px;border-radius:18px;background:#fff;color:#0B1054;display:grid;place-items:center;font-weight:900;font-size:30px;box-shadow:0 8px 24px rgba(0,0,0,.18);flex:0 0 auto}
.staff-hero-kicker{font-size:11px;font-weight:800;letter-spacing:.13em;color:#bfc7ff;display:flex;align-items:center;gap:7px}
.staff-dashboard-hero h1{font-size:30px;margin:5px 0 4px;font-weight:800}.staff-dashboard-hero p{margin:0;color:#d7dcff;font-size:14px}
.staff-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:13px}.staff-hero-meta span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.08);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:650;color:#fff}.staff-hero-meta i{color:#ff5b67}
.staff-hero-actions{position:relative;z-index:1;flex:0 0 auto}.staff-hero-actions .btn{font-weight:750;border-radius:10px;padding:10px 14px}
.staff-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.staff-kpi-card{background:#fff;border:1px solid #e8eaf3;border-radius:14px;padding:18px;display:flex;align-items:center;gap:14px;min-height:116px;box-shadow:0 7px 22px rgba(28,35,80,.055);position:relative;overflow:hidden}
.staff-kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#0B1054}.staff-kpi-card.blue:before{background:#2438a5}.staff-kpi-card.red:before{background:#d92032}.staff-kpi-card.slate:before{background:#606985}
.staff-kpi-icon{width:46px;height:46px;border-radius:12px;background:#f1f3ff;color:#0B1054;display:grid;place-items:center;font-size:21px;flex:0 0 auto}.staff-kpi-card.red .staff-kpi-icon{background:#fff0f1;color:#c51929}.staff-kpi-card.blue .staff-kpi-icon{background:#eef2ff;color:#2438a5}.staff-kpi-card.slate .staff-kpi-icon{background:#f2f4f8;color:#596078}
.staff-kpi-card>div{min-width:0}.staff-kpi-card small{display:block;color:#667085;font-weight:750;font-size:12px;margin-bottom:4px}.staff-kpi-card strong{display:block;color:#11142f;font-size:28px;line-height:1;font-weight:900}.staff-kpi-card>div>span{display:block;color:#8a90a8;font-size:11px;font-weight:650;margin-top:7px;white-space:normal}
.staff-performance-card .command-card-head p{margin:3px 0 0;color:#7b8197;font-size:12px}.staff-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 18px 18px}
.staff-work-grid>div{border:1px solid #e9ebf3;border-radius:12px;padding:16px;background:#fbfcff;min-height:132px;display:flex;flex-direction:column;align-items:flex-start}.staff-work-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#eef0ff;color:#0B1054;font-size:17px;margin-bottom:12px}.staff-work-grid small{color:#70768d;font-weight:700;font-size:12px}.staff-work-grid strong{font-size:27px;color:#11142f;font-weight:900;line-height:1.1;margin:4px 0}.staff-work-grid em{font-style:normal;color:#8c91a4;font-size:11px;font-weight:650}
.staff-quick-grid{padding:0 14px 14px;display:grid;gap:8px}.staff-quick-grid>a{display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:11px;text-decoration:none;color:#1b1f39;padding:11px;border:1px solid #e9ebf3;border-radius:11px;background:#fff;transition:.16s ease}.staff-quick-grid>a:hover{border-color:#c8cdee;background:#f9faff;transform:translateY(-1px)}.staff-quick-grid>a>span{width:42px;height:42px;border-radius:10px;background:#eef0ff;color:#0B1054;display:grid;place-items:center;font-size:18px}.staff-quick-grid strong{display:block;font-size:13px}.staff-quick-grid small{display:block;color:#858aa0;font-size:10.5px;margin-top:2px}.staff-quick-grid>a>.bi-chevron-right{color:#a2a7b7;font-size:12px}
.staff-task-list{padding:0 14px 14px;display:grid;gap:8px}.staff-task-list>a{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border:1px solid #e9ebf3;border-radius:11px;padding:10px;text-decoration:none;color:#1c2038;background:#fff}.task-priority{width:38px;height:38px;border-radius:10px;background:#f1f3f8;color:#4e566f;display:grid;place-items:center}.task-priority.urgent{background:#fff0f1;color:#c4182a}.task-priority.high{background:#fff5eb;color:#b85d13}.staff-task-list strong{display:block;font-size:12.5px}.staff-task-list small{display:block;color:#868ba0;font-size:10.5px}
.staff-attention-list{padding:0 14px 14px;display:grid;gap:8px}.staff-attention-list a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid #e9ebf3;border-radius:10px;text-decoration:none;color:#2b3048;background:#fff}.staff-attention-list a>i{width:34px;height:34px;border-radius:9px;background:#f1f3ff;color:#0B1054;display:grid;place-items:center}.staff-attention-list a span{font-size:12px;font-weight:700}.staff-attention-list a strong{font-size:17px;color:#11142f}.staff-attention-list a.danger{border-color:#f2c7cb;background:#fff9fa}.staff-attention-list a.danger>i,.staff-attention-list a.danger strong{color:#c9192c}.staff-attention-list a.danger>i{background:#ffecef}
.staff-personal-feed .activity-row{grid-template-columns:42px 1fr auto}
@media(max-width:1199.98px){.staff-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.staff-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.staff-dashboard-v209{padding-left:12px!important;padding-right:12px!important}.staff-dashboard-hero{padding:20px;border-radius:14px;align-items:flex-start}.staff-hero-identity{align-items:flex-start}.staff-hero-avatar{width:52px;height:52px;border-radius:14px;font-size:22px}.staff-dashboard-hero h1{font-size:23px}.staff-dashboard-hero p{font-size:12px}.staff-hero-actions{display:none}.staff-hero-meta{gap:6px}.staff-hero-meta span{font-size:10px;padding:5px 8px}.staff-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.staff-kpi-card{padding:13px;min-height:105px;align-items:flex-start;gap:10px}.staff-kpi-icon{width:38px;height:38px;font-size:17px}.staff-kpi-card strong{font-size:22px}.staff-kpi-card small{font-size:10.5px}.staff-kpi-card>div>span{font-size:9.5px}.staff-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 12px 12px;gap:8px}.staff-work-grid>div{padding:12px;min-height:118px}.staff-work-grid strong{font-size:23px}.staff-personal-feed .activity-row{grid-template-columns:36px 1fr}.staff-personal-feed .activity-row time{grid-column:2;margin-top:2px}}
@media(max-width:430px){.staff-dashboard-hero{padding:17px 15px}.staff-hero-avatar{width:46px;height:46px}.staff-dashboard-hero h1{font-size:21px}.staff-hero-meta span:nth-child(3){display:none}.staff-kpi-grid{grid-template-columns:1fr}.staff-kpi-card{min-height:auto}.staff-work-grid{grid-template-columns:1fr}.staff-work-grid>div{min-height:auto}.staff-quick-grid>a{grid-template-columns:38px 1fr 14px}.staff-quick-grid>a>span{width:38px;height:38px}}


/* ========================================================================== */
/* CAT HOTEL V20.10 · Dashboard collaborateur pro                             */
/* ========================================================================== */
.staff-dashboard-v210{padding-bottom:42px}
.staff-pro-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:#0B1054;border:1px solid #101866;border-radius:18px;padding:28px 30px;color:#fff;box-shadow:0 14px 34px rgba(11,16,84,.16)}
.staff-pro-hero__identity{display:flex;gap:18px;min-width:0;align-items:flex-start}.staff-pro-hero__avatar{width:72px;height:72px;border-radius:18px;background:#fff;color:#0B1054;display:grid;place-items:center;font-size:28px;font-weight:900;flex:0 0 auto;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.staff-pro-hero__copy{min-width:0}.staff-pro-hero__eyebrow{display:inline-flex;align-items:center;gap:7px;color:#d5dcff;font-size:11px;letter-spacing:.12em;font-weight:900}.staff-pro-hero__copy h1{margin:6px 0 5px;font-size:29px;font-weight:900;letter-spacing:-.02em}.staff-pro-hero__copy p{margin:0;color:#d9def6;font-size:14px;line-height:1.55}
.staff-pro-hero__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.staff-pro-hero__meta span{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);font-size:12px;font-weight:700}.staff-pro-hero__meta i{color:#ff6b76}.staff-pro-hero__actions .btn{border-radius:10px;font-weight:700;padding:10px 14px}
.staff-summary-row{margin-bottom:4px}.staff-summary-card{position:relative;height:100%;background:#fff;border:1px solid #e8ebf3;border-radius:16px;padding:18px 18px 18px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 22px rgba(18,28,61,.055);overflow:hidden}.staff-summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#0B1054}.staff-summary-card.tone-blue:before{background:#2447b8}.staff-summary-card.tone-red:before{background:#d22031}.staff-summary-card.tone-slate:before{background:#6b7287}
.staff-summary-card__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;font-size:20px;background:#eef2ff;color:#0B1054}.staff-summary-card.tone-red .staff-summary-card__icon{background:#fff0f2;color:#c9172a}.staff-summary-card.tone-slate .staff-summary-card__icon{background:#f2f4f8;color:#5f667d}
.staff-summary-card__copy small{display:block;color:#697185;font-size:12px;font-weight:800;margin-bottom:5px}.staff-summary-card__copy strong{display:block;color:#10162e;font-size:30px;line-height:1;font-weight:900}.staff-summary-card__copy span{display:block;color:#8b92a6;font-size:11px;font-weight:700;margin-top:7px}
.staff-panel{background:#fff;border:1px solid #e8ebf3;border-radius:16px;box-shadow:0 8px 22px rgba(18,28,61,.05);overflow:hidden}.staff-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 18px 14px;border-bottom:1px solid #edf0f5}.staff-panel__tag{display:inline-flex;align-items:center;gap:7px;color:#6e778b;font-size:11px;letter-spacing:.12em;font-weight:900}.staff-panel__head h2{margin:5px 0 3px;color:#142136;font-size:1.04rem;font-weight:900}.staff-panel__head p{margin:0;color:#7c8596;font-size:.71rem;line-height:1.55}.staff-panel__link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:.72rem;font-weight:800;color:#0B1054}
.staff-metric-grid{padding:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.staff-metric-tile{background:#fbfcff;border:1px solid #e9edf5;border-radius:14px;padding:16px;min-height:132px;display:flex;flex-direction:column;align-items:flex-start}.staff-metric-tile__icon{width:40px;height:40px;border-radius:11px;background:#eef2ff;color:#0B1054;display:grid;place-items:center;font-size:17px;margin-bottom:12px}.staff-metric-tile small{color:#70788b;font-size:12px;font-weight:800}.staff-metric-tile strong{margin:6px 0 4px;color:#10162e;font-size:28px;line-height:1;font-weight:900}.staff-metric-tile em{font-style:normal;color:#8b92a6;font-size:11px;font-weight:700}
.staff-feed{display:grid;gap:0;padding:0 16px 16px}.staff-feed__item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start;padding:13px 0;border-bottom:1px solid #edf0f5}.staff-feed__item:last-child{border-bottom:0}.staff-feed__copy strong{display:block;color:#1a2437;font-size:.77rem}.staff-feed__copy small{display:block;margin-top:4px;color:#81899a;font-size:.67rem;line-height:1.45}.staff-feed__item time{color:#9aa0ae;font-size:.63rem;font-weight:700;white-space:nowrap;margin-top:2px}
.staff-shortcuts,.staff-task-mini,.staff-focus-list{display:grid;gap:10px;padding:0 16px 16px}.staff-shortcuts__item,.staff-task-mini>a,.staff-focus-list>a{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;text-decoration:none;border:1px solid #e9edf5;border-radius:12px;background:#fff;color:#1b2335;padding:11px 12px;transition:.15s ease}.staff-shortcuts__item:hover,.staff-task-mini>a:hover,.staff-focus-list>a:hover{border-color:#ced6ea;background:#fbfcff;color:#0B1054;transform:translateY(-1px)}
.staff-shortcuts__item>span,.staff-focus-list>a>i,.task-priority{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#eef2ff;color:#0B1054;flex:0 0 auto}.task-priority{background:#f1f4f8;color:#4b5368}.task-priority.urgent{background:#fff0f2;color:#c9172a}.task-priority.high{background:#fff6eb;color:#b45e15}
.staff-shortcuts__item strong,.staff-task-mini strong,.staff-focus-list>a span{display:block;font-size:13px;font-weight:800}.staff-shortcuts__item small,.staff-task-mini small{display:block;margin-top:2px;color:#858d9d;font-size:10.8px}.staff-shortcuts__item>.bi-chevron-right{font-size:12px;color:#a1a8b7}.staff-focus-list>a strong{font-size:19px;font-weight:900;color:#11172f}.staff-focus-list>a.danger{border-color:#f1c6cb;background:#fff8f9}.staff-focus-list>a.danger>i,.staff-focus-list>a.danger strong{background:#ffecef;color:#c9172a}
@media(max-width:1199.98px){.staff-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.staff-dashboard-v210{padding-left:12px!important;padding-right:12px!important}.staff-pro-hero{padding:18px;flex-direction:column}.staff-pro-hero__avatar{width:56px;height:56px;border-radius:15px;font-size:22px}.staff-pro-hero__copy h1{font-size:24px}.staff-pro-hero__copy p{font-size:12px}.staff-pro-hero__meta span{font-size:10px;padding:5px 8px}.staff-summary-card{padding:14px 14px 14px 16px}.staff-summary-card__icon{width:42px;height:42px;font-size:18px}.staff-summary-card__copy strong{font-size:24px}.staff-panel__head{padding:16px 14px 13px}.staff-metric-grid{padding:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.staff-metric-tile{padding:13px;min-height:118px}.staff-metric-tile strong{font-size:23px}.staff-feed{padding:0 14px 14px}.staff-feed__item{grid-template-columns:38px 1fr}.staff-feed__item time{grid-column:2;margin-top:3px}.staff-shortcuts,.staff-task-mini,.staff-focus-list{padding:0 14px 14px}}
@media(max-width:430px){.staff-pro-hero__meta span:nth-child(3){display:none}.staff-metric-grid{grid-template-columns:1fr}.staff-shortcuts__item,.staff-task-mini>a,.staff-focus-list>a{grid-template-columns:38px 1fr auto;padding:10px}.staff-shortcuts__item>span,.staff-focus-list>a>i,.task-priority{width:38px;height:38px}}
