:root{
  --app-primary:#0f766e;
  --app-bg:#f5f6f8;
  --app-card:#ffffff;
  --app-ink:#172033;
  --app-muted:#64748b;
  --app-border:#dbe3ec;
  --app-border-strong:#c4d0dd;
  --app-blue:#2563eb;
  --app-coral:#e85d5a;
  --app-amber:#d97706;
  --app-green:#15803d;
  --app-red:#b91c1c;
  --app-violet:#7c3aed;
  --app-radius:10px;
  --app-shadow:0 14px 32px rgba(15, 23, 42, .09);
}

*{ letter-spacing:0; }

html{ min-height:100%; }

body{
  min-height:100%;
  margin:0;
  color:var(--app-ink);
  background:linear-gradient(180deg, var(--app-bg-start, #f8fafc) 0%, var(--app-bg) 52%, var(--app-bg-end, #edf2f7) 100%);
  font-family:var(--app-font-family, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
  font-size:var(--app-font-size, 15.5px);
}

body.is-authenticated{
  font-size:calc(var(--app-font-size, 15.5px) - .5px);
}

a{ color:var(--app-link, var(--app-primary)); }
a:hover{ color:var(--app-link-hover, #0b5f58); }

.app-layout{
  min-height:100vh;
  display:grid;
  grid-template-columns:236px minmax(0, 1fr);
}

.app-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:12px 10px;
  color:#e5eef8;
  background:
    linear-gradient(180deg, var(--app-sidebar-top, #132033) 0%, var(--app-sidebar-mid, #173348) 46%, var(--app-sidebar-bottom, #0f766e) 100%);
  box-shadow:8px 0 24px rgba(15, 23, 42, .14);
  overflow:auto;
}

.sidebar-brand{
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px;
  color:var(--app-sidebar-brand-text, #fff);
  text-decoration:none;
  border-radius:12px;
  background:rgba(255,255,255,.08);
}

.sidebar-logo{
  width:42px;
  height:42px;
  object-fit:contain;
  border-radius:10px;
  background:#fff;
  padding:4px;
}

.sidebar-brand span{
  min-width:0;
  display:flex;
  flex-direction:column;
  line-height:1.05;
}

.sidebar-brand strong{
  font-size:1.05rem;
  font-weight:900;
}

.sidebar-brand small{
  margin-top:4px;
  color:var(--app-sidebar-brand-subtitle, #b8d4d0);
  font-weight:700;
}

.sidebar-create{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  color:var(--app-sidebar-new-text, #172033);
  text-decoration:none;
  font-weight:900;
  border-radius:12px;
  background:linear-gradient(135deg, var(--app-sidebar-new-start, #ffffff) 0%, var(--app-sidebar-new-end, #ffe8bf) 100%);
  box-shadow:0 12px 24px rgba(0,0,0,.18);
}

.sidebar-create:hover{
  color:var(--app-sidebar-new-text, #0f172a);
  transform:translateY(-1px);
}

.sidebar-nav{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:3px 0;
}

.nav-section{
  margin:8px 9px 3px;
  color:var(--app-sidebar-section-text, #a6bdca);
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
}

.sidebar-nav .nav-item{
  display:grid;
  grid-template-columns:30px 1fr;
  align-items:center;
  min-height:37px;
  padding:4px 8px 4px 4px;
  color:var(--app-sidebar-text, #dce8ee);
  text-decoration:none;
  border-radius:11px;
  font-weight:800;
  font-size:.92rem;
  border:1px solid transparent;
}

.sidebar-nav .nav-item i{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#ffffff;
  background:rgba(255,255,255,.10);
}

.sidebar-nav .nav-item:hover{
  color:var(--app-sidebar-text-hover, #fff);
  background:rgba(255,255,255,.10);
}

.sidebar-nav .nav-item.active{
  color:var(--app-sidebar-active-text, #102033);
  background:var(--app-sidebar-active-bg, #fff);
  border-color:rgba(255,255,255,.55);
  box-shadow:0 12px 22px rgba(0,0,0,.16);
}

.sidebar-nav .nav-item.active i{
  background:linear-gradient(135deg, var(--app-sidebar-icon-start, var(--app-primary)), var(--app-sidebar-icon-end, var(--app-blue)));
}

.sidebar-user{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.08);
}

.sidebar-user div{
  min-width:0;
  display:flex;
  flex-direction:column;
}

.sidebar-user strong{
  color:var(--app-sidebar-user-text, #fff);
  line-height:1.1;
}

.sidebar-user small{
  color:var(--app-sidebar-user-role, #b8d4d0);
  font-weight:700;
  text-transform:lowercase;
}

.icon-link{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#fff;
  border-radius:10px;
  background:rgba(255,255,255,.12);
  text-decoration:none;
}

.icon-link:hover{
  color:#172033;
  background:#fff;
}

.app-workspace{
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:8px 14px 8px;
}

.workspace-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:52px;
  padding:8px 10px;
  border:1px solid rgba(219, 227, 236, .84);
  border-radius:14px;
  background:rgba(255,255,255,.82);
  box-shadow:var(--app-shadow);
  backdrop-filter:blur(14px);
}

.workspace-topbar strong{
  display:block;
  font-size:.98rem;
  color:var(--app-topbar-title, #172033);
}

.topbar-kicker{
  display:block;
  color:var(--app-topbar-kicker, var(--app-muted));
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}

.topbar-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.topbar-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 10px;
  color:var(--app-topbar-chip-text, #334155);
  text-decoration:none;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#fff;
  font-weight:850;
}

.topbar-chip:hover,
.topbar-chip.active{
  color:var(--app-topbar-chip-hover-text, #0f172a);
  border-color:var(--app-chip-active-border, #a6d6cf);
  background:var(--app-chip-active-bg, #edfdfa);
}

.topbar-chip-primary{
  color:var(--app-topbar-primary-text, #fff);
  border-color:transparent;
  background:linear-gradient(135deg, var(--app-quick-button-start, var(--app-coral)), var(--app-quick-button-end, var(--app-amber)));
}

.topbar-chip-primary:hover{
  color:var(--app-topbar-primary-text, #fff);
  filter:brightness(.97);
}

.app-main{
  width:100%;
  max-width:1760px;
  margin:0 auto;
  padding:0 0 6px;
}

.app-main > .container{
  max-width:none;
  padding-left:0;
  padding-right:0;
}

.app-footer{
  text-align:center;
  padding:10px 0 2px;
  color:var(--app-muted);
}

.flash-stack{
  margin-bottom:12px;
}

.page-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}

.page-heading h2,
.page-heading h5{
  margin:0;
  font-size:1.22rem;
  font-weight:950;
  color:#132033;
}

.page-heading p{
  margin:2px 0 0;
  color:var(--app-muted);
  font-weight:650;
}

.page-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(260px, 1fr) auto;
  gap:14px;
  align-items:end;
  margin-bottom:16px;
  padding:18px;
  color:#fff;
  border-radius:20px;
  background:
    linear-gradient(135deg, var(--app-hero-start, #123047) 0%, var(--app-hero-mid, #0f766e) 46%, var(--app-hero-end, #2563eb) 100%);
  box-shadow:var(--app-shadow);
}

.page-hero::after{
  display:none;
}

.page-hero > *{
  position:relative;
  z-index:1;
}

.page-hero h2{
  margin:0;
  font-size:1.65rem;
  font-weight:950;
}

.page-hero p{
  margin:5px 0 0;
  color:#dceff1;
  font-weight:700;
}

.toolbar-form{
  display:flex;
  align-items:end;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.toolbar-form .form-control,
.toolbar-form .form-select{
  min-width:160px;
}

.quick-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:16px;
}

.quick-stat{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px;
  border:1px solid var(--app-border);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--app-shadow);
}

.quick-stat i{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, var(--app-blue)));
}

.quick-stat:nth-child(2) i{ background:linear-gradient(135deg, var(--app-coral), var(--app-amber)); }
.quick-stat:nth-child(3) i{ background:linear-gradient(135deg, var(--app-violet), var(--app-blue)); }

.quick-stat span{
  display:block;
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}

.quick-stat strong{
  display:block;
  font-size:1.35rem;
  line-height:1;
}

.area-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:16px;
}

.area-card{
  padding:14px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-primary-button-start, var(--app-primary));
  border-radius:16px;
  background:#fff;
  box-shadow:var(--app-shadow);
}

.area-card:nth-child(2){ border-left-color:var(--app-blue); }
.area-card:nth-child(3){ border-left-color:var(--app-coral); }
.area-card:nth-child(4){ border-left-color:var(--app-amber); }

.area-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.area-name{
  font-weight:950;
  color:#172033;
}

.area-state{
  padding:4px 8px;
  border-radius:999px;
  color:var(--app-status-confirmed, #14532d);
  background:color-mix(in srgb, var(--app-status-confirmed, #15803d) 14%, #ffffff);
  font-size:.72rem;
  font-weight:950;
}

.area-state.is-full{
  color:var(--app-status-cancelled, #7f1d1d);
  background:color-mix(in srgb, var(--app-status-cancelled, #b91c1c) 14%, #ffffff);
}

.area-numbers{
  display:flex;
  gap:16px;
  margin-top:10px;
}

.area-numbers span{
  display:block;
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:850;
}

.area-numbers strong{
  display:block;
  font-size:1.25rem;
}

.dashboard-grid{
  display:grid;
  grid-template-columns:minmax(320px, .88fr) minmax(0, 1.12fr);
  gap:14px;
}

.reservation-board{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  align-content:start;
  gap:10px;
  max-height:680px;
  overflow:auto;
  padding-right:4px;
}

.booking-card{
  position:relative;
  overflow:hidden;
  padding:11px 12px;
  border:1px solid var(--app-border);
  border-radius:15px;
  background:#fff;
  box-shadow:var(--app-shadow);
}

.booking-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:var(--app-primary-button-start, var(--app-primary));
}

.booking-card.area-porche::before{ background:var(--app-blue); }
.booking-card.area-carpas::before{ background:var(--app-coral); }
.booking-card.area-llevar::before{ background:var(--app-amber); }

.booking-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

.booking-time{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  color:#fff;
  border-radius:999px;
  background:#172033;
  font-weight:950;
}

.booking-area{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  color:#334155;
  border-radius:999px;
  background:#f1f5f9;
  font-size:.78rem;
  font-weight:900;
}

.booking-name{
  margin:9px 0 4px;
  font-size:1rem;
  font-weight:950;
}

.booking-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:7px 0 8px;
}

.booking-pill{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 7px;
  border:1px solid var(--app-border);
  border-radius:999px;
  color:#334155;
  background:#fff;
  font-size:.78rem;
  font-weight:850;
}

.booking-notes{
  display:grid;
  gap:5px;
  color:#334155;
  font-size:.82rem;
}

.booking-notes div{
  padding:6px 8px;
  border-radius:10px;
  background:#f8fafc;
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.empty-state{
  padding:22px;
  text-align:center;
  border:1px dashed var(--app-border-strong);
  border-radius:18px;
  background:#fff;
}

.empty-state i{
  display:block;
  margin-bottom:8px;
  font-size:2rem;
  color:var(--app-primary-button-start, var(--app-primary));
}

.card{
  background:var(--app-card);
  border:1px solid var(--app-border);
  border-radius:12px;
  box-shadow:0 8px 18px rgba(15, 23, 42, .06);
}

.card-body{ padding:12px; }

.card h5,
.card h6,
.card-title{
  color:#172033;
  font-weight:900;
}

.alq-title{
  display:flex;
  align-items:center;
  gap:8px;
  padding-bottom:10px;
  border-bottom:1px solid var(--app-border);
}

.form-label{
  margin-bottom:3px;
  color:#334155;
  font-weight:850;
  font-size:.82rem;
}

.form-control,
.form-select{
  min-height:36px;
  border-radius:9px;
  border-color:var(--app-border-strong);
  color:#182335;
  background-color:#fff;
}

textarea.form-control{ min-height:auto; }

.form-control:focus,
.form-select:focus,
.form-check-input:focus{
  border-color:var(--app-primary-button-start, var(--app-primary));
  box-shadow:0 0 0 .18rem color-mix(in srgb, var(--app-primary-button-start, var(--app-primary)) 16%, transparent);
}

.form-text,
.text-muted{ color:var(--app-muted) !important; }

.legacy-files{
  padding:12px 14px;
  border:1px dashed var(--app-border-strong);
  border-radius:14px;
  background:#f8fafc;
}

.legacy-files summary{
  cursor:pointer;
  color:#475569;
  font-weight:900;
}

.theme-editor{
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#f8fafc;
}

.theme-editor-title{
  margin-bottom:8px;
  color:#172033;
  font-size:.82rem;
  font-weight:950;
}

.form-control-color{
  width:100%;
  min-height:36px;
  padding:4px;
}

.appearance-section{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(360px, 440px);
  gap:14px;
  align-items:start;
}

.appearance-section > .col-12,
.appearance-section > hr{
  grid-column:1 / -1;
}

.appearance-controls,
.appearance-preview-column{
  min-width:0;
}

.appearance-preview-column{
  position:sticky;
  top:10px;
  align-self:start;
}

.appearance-preview-column #preview-card{
  max-height:calc(100vh - 96px);
  overflow:auto;
}

.theme-preview-layout{
  display:grid;
  grid-template-columns:128px minmax(0, 1fr);
  gap:10px;
  align-items:stretch;
}

.theme-preview-sidebar{
  display:grid;
  gap:6px;
  align-content:start;
  min-height:132px;
  padding:10px;
  color:#fff;
  border-radius:10px;
  background:linear-gradient(180deg, var(--app-sidebar-top), var(--app-sidebar-mid), var(--app-sidebar-bottom));
}

.theme-preview-sidebar span{
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px 7px;
  border-radius:8px;
  background:rgba(255,255,255,.12);
  font-size:.78rem;
  font-weight:850;
}

.theme-preview-sidebar span i{
  width:16px;
  height:16px;
  border-radius:5px;
  background:linear-gradient(135deg, var(--app-sidebar-icon-start, var(--app-primary)), var(--app-sidebar-icon-end, var(--app-blue)));
}

.theme-preview-content{
  display:grid;
  gap:10px;
  align-content:start;
}

.theme-preview-button{
  width:max-content;
  min-height:34px;
  padding:7px 12px;
  color:#fff;
  border:0;
  border-radius:9px;
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, #159a8e));
  font-weight:900;
}

.theme-preview-button.is-quick{
  background:linear-gradient(135deg, var(--app-quick-button-start, var(--app-coral)), var(--app-quick-button-end, var(--app-amber)));
}

.theme-preview-chip{
  width:max-content;
  padding:5px 10px;
  color:#172033;
  border:1px solid var(--app-chip-active-border, #a6d6cf);
  border-radius:999px;
  background:var(--app-chip-active-bg, #edfdfa);
  font-size:.8rem;
  font-weight:900;
}

.theme-preview-topbar{
  display:grid;
  gap:2px;
  padding:8px 10px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#fff;
}

.theme-preview-topbar strong{
  color:var(--app-topbar-title, #172033);
  font-size:.9rem;
}

.theme-preview-topbar span{
  color:var(--app-topbar-kicker, #64748b);
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
}

.theme-preview-swatches,
.theme-preview-statuses{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.theme-preview-swatches span{
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid rgba(15, 23, 42, .12);
}

.theme-preview-statuses span{
  padding:4px 8px;
  border:1px solid currentColor;
  border-radius:999px;
  background:#fff;
  font-size:.76rem;
  font-weight:900;
}

.data-health-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:8px;
}

.data-health-card{
  display:grid;
  gap:5px;
  min-height:94px;
  padding:10px;
  border:1px solid var(--app-border);
  border-left:4px solid var(--app-green);
  border-radius:12px;
  background:#fff;
}

.data-health-card.is-missing{
  border-left-color:var(--app-red);
  background:#fffafa;
}

.data-health-card span{
  display:block;
  color:var(--app-muted);
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
}

.data-health-card strong{
  display:block;
  color:#172033;
  line-height:1.1;
}

.data-health-state{
  justify-self:start;
  padding:2px 7px;
  border-radius:999px;
  color:var(--app-green) !important;
  background:#ecfdf3;
}

.data-health-card.is-missing .data-health-state{
  color:var(--app-red) !important;
  background:#fee2e2;
}

.data-health-card small{
  color:var(--app-muted);
  font-weight:750;
}

.data-health-tables{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}

.data-health-tables em{
  padding:2px 6px;
  border-radius:999px;
  color:#334155;
  background:#f1f5f9;
  font-size:.72rem;
  font-style:normal;
  font-weight:800;
}

.backup-panel{
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#f8fafc;
}

.backup-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}

.backup-panel-head strong,
.backup-panel-head span{
  display:block;
}

.backup-panel-head span{
  color:var(--app-muted);
  font-size:.82rem;
  font-weight:750;
}

.backup-list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
  gap:6px;
}

.backup-item{
  display:grid;
  grid-template-columns:28px minmax(0, 1fr);
  gap:6px 8px;
  align-items:center;
  padding:8px;
  color:#172033;
  text-decoration:none;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#fff;
}

.backup-item:hover{
  color:#172033;
  border-color:rgba(15, 118, 110, .34);
  background:#f0fdfa;
}

.backup-item i{
  grid-row:1 / 3;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:#fff;
  border-radius:8px;
  background:var(--app-primary-button-start, var(--app-primary));
}

.backup-item span,
.backup-item small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.backup-item span{
  font-weight:900;
}

.backup-item small{
  color:var(--app-muted);
  font-weight:750;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:36px;
  border-radius:9px;
  font-weight:850;
}

.btn-sm{
  min-height:34px;
  padding:.32rem .65rem;
}

.btn-primary{
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, #159a8e));
  border-color:transparent;
  box-shadow:0 10px 18px rgba(15, 118, 110, .18);
}

.btn-primary:hover,
.btn-primary:focus{
  background:linear-gradient(135deg, var(--app-primary-button-hover-start, #0b5f58), var(--app-primary-button-hover-end, #147f76));
  border-color:transparent;
}

.btn-success{
  background:linear-gradient(135deg, var(--app-green), color-mix(in srgb, var(--app-green) 78%, #ffffff));
  border-color:transparent;
}

.btn-outline-primary{
  color:var(--app-link, var(--app-primary));
  border-color:color-mix(in srgb, var(--app-link, var(--app-primary)) 42%, #ffffff);
  background:#fff;
}

.btn-outline-primary:hover{
  background:var(--app-primary-button-start, var(--app-primary));
  border-color:var(--app-primary-button-start, var(--app-primary));
}

.btn-outline-secondary{
  color:#475569;
  border-color:var(--app-border-strong);
  background:#fff;
}

.btn-outline-secondary:hover{
  color:#172033;
  background:#f1f5f9;
  border-color:#94a3b8;
}

.btn-outline-danger{
  color:var(--app-red);
  border-color:rgba(185, 28, 28, .36);
}

.alert{
  border-radius:14px;
  border-width:1px;
}

.alert-info{
  color:#0f3b57;
  background:#eaf6fb;
  border-color:#bee3f0;
}

.alert-warning{
  color:#6b4500;
  background:#fff7e6;
  border-color:#f2d49b;
}

.alert-success{
  color:#14532d;
  background:#ecfdf3;
  border-color:#bbf7d0;
}

.table-responsive{
  border:1px solid var(--app-border);
  border-radius:14px;
  background:#fff;
  overflow:auto;
}

.table{
  margin-bottom:0;
  color:#1f2937;
}

.table thead th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f8fafc;
  color:#475569;
  border-bottom:1px solid var(--app-border-strong);
  font-size:.82rem;
  text-transform:uppercase;
  white-space:nowrap;
}

.table tbody td{ vertical-align:middle; }
.table-striped > tbody > tr:nth-of-type(odd) > *{ --bs-table-bg-type:#fbfdff; }
.table-hover > tbody > tr:hover > *{ --bs-table-bg-state:#eef7f5; }

.badge{
  border-radius:999px;
  font-weight:900;
}

.status-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:24px;
  padding:3px 8px;
  border-radius:999px;
  font-size:.76rem;
  font-weight:900;
  border:1px solid transparent;
  white-space:nowrap;
}

.status-chip.is-confirmed{
  color:var(--app-status-confirmed, #15803d);
  border-color:color-mix(in srgb, var(--app-status-confirmed, #15803d) 34%, #ffffff);
  background:color-mix(in srgb, var(--app-status-confirmed, #15803d) 12%, #ffffff);
}

.status-chip.is-pending{
  color:var(--app-status-pending, #d97706);
  border-color:color-mix(in srgb, var(--app-status-pending, #d97706) 34%, #ffffff);
  background:color-mix(in srgb, var(--app-status-pending, #d97706) 12%, #ffffff);
}

.status-chip.is-cancelled{
  color:var(--app-status-cancelled, #b91c1c);
  border-color:color-mix(in srgb, var(--app-status-cancelled, #b91c1c) 34%, #ffffff);
  background:color-mix(in srgb, var(--app-status-cancelled, #b91c1c) 12%, #ffffff);
}

.status-chip.is-noshow{
  color:var(--app-status-noshow, #7c3aed);
  border-color:color-mix(in srgb, var(--app-status-noshow, #7c3aed) 34%, #ffffff);
  background:color-mix(in srgb, var(--app-status-noshow, #7c3aed) 12%, #ffffff);
}

.nav.nav-pills{
  align-items:center;
}

.nav.nav-pills .nav-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#fff;
  color:#475569;
  font-weight:850;
}

.nav.nav-pills .nav-link.active{
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, var(--app-blue)));
  border-color:transparent;
  color:#fff;
}

.card.text-center .fs-4{ color:var(--app-primary-button-start, var(--app-primary)); }

.reservation-form{
  max-width:none;
  margin:0;
}

.reservation-form > .col-md-6{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.reservation-form .card.mb-3{
  margin-bottom:0 !important;
}

.form-section-card{
  height:auto;
  min-height:0;
  border-top:5px solid var(--app-primary-button-start, var(--app-primary));
}

.form-section-card.is-contact{ border-top-color:var(--app-blue); }
.form-section-card.is-diners{ border-top-color:var(--app-coral); }
.form-section-card.is-notes{ border-top-color:var(--app-amber); }

.step-strip{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  margin-bottom:14px;
}

.step-chip{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:54px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--app-shadow);
  font-weight:900;
}

.step-chip i{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#fff;
  border-radius:11px;
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, var(--app-blue)));
}

.step-chip:nth-child(2) i{ background:linear-gradient(135deg, var(--app-blue), var(--app-violet)); }
.step-chip:nth-child(3) i{ background:linear-gradient(135deg, var(--app-coral), var(--app-amber)); }

.form-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:4px;
}

select[multiple].multi-select{
  min-height:156px;
  padding:6px;
}

select[multiple].multi-select option{
  padding:8px 10px;
  margin-bottom:4px;
  border-radius:8px;
}

.multi-select-counter{
  color:var(--app-link, var(--app-primary));
  font-weight:850;
}

.is-login{
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--app-hero-mid, #0f766e) 14%, transparent), color-mix(in srgb, var(--app-hero-end, #2563eb) 9%, transparent)),
    #f5f6f8;
}

.login-page{
  width:min(960px, calc(100% - 28px));
  min-height:100vh;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(280px, .9fr) minmax(330px, 1fr);
  align-items:center;
  gap:16px;
  padding:24px 0;
}

.login-brand-panel,
.login-card{
  border:1px solid var(--app-border);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--app-shadow);
}

.login-brand-panel{
  min-height:450px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:26px;
  color:#fff;
  background:linear-gradient(150deg, var(--app-hero-start, #123047) 0%, var(--app-hero-mid, #0f766e) 55%, var(--app-hero-end, #2563eb) 100%);
}

.login-brand-panel img{
  width:96px;
  height:96px;
  object-fit:contain;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(255,255,255,.35);
  padding:8px;
}

.login-brand-panel h1{
  margin:20px 0 8px;
  font-size:1.8rem;
  font-weight:950;
  color:#fff;
}

.login-brand-panel p{
  margin:0;
  color:#e3f4f2;
  max-width:330px;
}

.login-brand-panel .text-muted{
  color:#cfe6e4 !important;
}

.login-card{
  padding:26px;
}

.login-card h2{
  margin:0 0 4px;
  font-size:1.38rem;
  font-weight:950;
}

.login-card .btn{ width:100%; }

@media (max-width: 1180px){
  .app-layout{
    grid-template-columns:240px minmax(0, 1fr);
  }

  .area-grid{
    grid-template-columns:repeat(2, minmax(150px, 1fr));
  }

  .dashboard-grid{
    grid-template-columns:1fr;
  }

  .today-work-grid{
    grid-template-columns:1fr;
  }

  .calendar-work-grid,
  .calendar-top-panels,
  .appearance-section{
    grid-template-columns:1fr;
  }

  .appearance-preview-column{
    position:static;
  }

  .today-kpis{
    grid-template-columns:repeat(2, minmax(150px, 1fr));
  }

  .calendar-top-panels .calendar-notes-card{
    grid-column:1 / -1;
  }
}

@media (max-width: 900px){
  .app-layout{
    display:block;
  }

  .app-sidebar{
    position:relative;
    height:auto;
    border-radius:0 0 22px 22px;
  }

  .sidebar-nav{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .nav-section{
    grid-column:1 / -1;
  }

  .sidebar-user{
    margin-top:6px;
  }

  .app-workspace{
    padding:12px;
  }

  .page-heading,
  .page-hero,
  .today-head{
    align-items:stretch;
    grid-template-columns:1fr;
    flex-direction:column;
  }

  .toolbar-form{
    justify-content:stretch;
  }

  .toolbar-form .form-control,
  .toolbar-form .form-select,
  .toolbar-form .btn{
    width:100%;
    min-width:0;
  }

  .quick-stats,
  .step-strip,
  .today-kpis,
  .calendar-kpis,
  .calendar-top-panels{
    grid-template-columns:1fr;
  }

  .login-page{
    grid-template-columns:1fr;
    align-content:center;
  }

  .login-brand-panel{
    min-height:auto;
  }
}

@media (max-width: 560px){
  body{ font-size:15px; }

  .sidebar-nav{
    grid-template-columns:1fr;
  }

  .topbar-actions,
  .topbar-chip,
  .btn{
    width:100%;
  }

  .area-grid,
  .reservation-board,
  .today-action-grid{
    grid-template-columns:1fr;
  }

  .calendar-filter-row-main,
  .calendar-filter-row-secondary{
    grid-template-columns:1fr;
  }

  .pending-kpis,
  .pending-filters{
    grid-template-columns:1fr;
  }

  .today-booking-row{
    grid-template-columns:54px minmax(0, 1fr);
  }

  .today-booking-row .booking-row-tags{
    grid-column:2;
    justify-content:flex-start;
  }

  .card-body{
    padding:13px;
  }
}

.app-main > .container{
  padding-top:.25rem !important;
  padding-bottom:.25rem !important;
}

.compact-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-primary-button-start, var(--app-primary));
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .06);
}

.compact-page-head h2{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  color:#132033;
  font-size:1.18rem;
  font-weight:950;
}

.compact-page-head p{
  margin:2px 0 0;
  color:var(--app-muted);
  font-size:.86rem;
  font-weight:750;
}

.compact-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.compact-toolbar .form-control,
.compact-toolbar .form-select{
  width:auto;
  min-width:142px;
}

.calendar-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(118px, .7fr)) repeat(auto-fit, minmax(176px, 1fr));
  gap:8px;
  margin-bottom:10px;
}

.calendar-summary > div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:46px;
  padding:8px 10px;
  border:1px solid var(--app-border);
  border-radius:11px;
  background:#fff;
  box-shadow:0 6px 14px rgba(15, 23, 42, .05);
}

.calendar-summary span{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:900;
  text-transform:uppercase;
}

.calendar-summary strong{
  color:#132033;
  font-size:1rem;
  line-height:1.1;
  text-align:right;
}

.pending-page{
  max-width:1500px;
}

.pending-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.pending-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.pending-kpis article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:56px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.pending-kpis article.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}

.pending-kpis span{
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}

.pending-kpis strong{
  color:#111827;
  font-size:1.35rem;
  font-weight:950;
}

.pending-filter-card{
  margin-bottom:10px;
}

.pending-filters{
  display:grid;
  grid-template-columns:minmax(170px, .7fr) minmax(180px, .75fr) minmax(280px, 1.4fr) minmax(112px, auto) minmax(44px, auto);
  gap:8px;
  align-items:center;
}

.pending-list{
  display:grid;
  gap:8px;
}

.pending-row{
  display:grid;
  grid-template-columns:116px minmax(280px, 1fr) 74px minmax(260px, auto);
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-status-pending, #d97706);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.pending-date strong,
.pending-date span,
.pending-pax span,
.pending-pax strong{
  display:block;
}

.pending-date strong{
  color:#111827;
  font-size:.95rem;
  font-weight:950;
}

.pending-date span,
.pending-pax span{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:900;
}

.pending-main{
  min-width:0;
}

.pending-main h3{
  margin:0;
  color:#111827;
  font-size:1rem;
  font-weight:950;
}

.pending-main p{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin:2px 0 0;
  color:#475569;
  font-size:.84rem;
  font-weight:800;
}

.pending-main p span{
  padding-left:7px;
  border-left:1px solid #cbd5e1;
}

.pending-main small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:.82rem;
  font-weight:750;
}

.pending-pax{
  text-align:center;
}

.pending-pax strong{
  color:#111827;
  font-size:1.2rem;
  font-weight:950;
}

.pending-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}

.search-page{
  max-width:1500px;
}

.search-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.search-filter-card,
.search-edit-card,
.search-results-card{
  margin-bottom:10px;
}

.search-filter-card .card-body,
.search-edit-card .card-body,
.search-results-card .card-body{
  padding:12px;
}

.search-filter-grid{
  display:grid;
  grid-template-columns:minmax(160px, .7fr) minmax(170px, .72fr) minmax(280px, 1.4fr) minmax(150px, .72fr) minmax(108px, auto) minmax(44px, auto);
  gap:8px;
  align-items:end;
}

.search-filter-grid label,
.search-edit-grid label{
  display:grid;
  gap:4px;
  min-width:0;
}

.search-filter-grid label span,
.search-edit-grid label span{
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}

.search-filter-grid .btn{
  min-height:42px;
}

.search-quick-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  margin-top:9px;
}

.search-quick-row a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:6px 10px;
  color:#334155;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#f8fafc;
  font-size:.82rem;
  font-weight:900;
  text-decoration:none;
}

.search-quick-row a:hover{
  color:var(--app-primary);
  border-color:color-mix(in srgb, var(--app-primary) 35%, #ffffff);
  background:#fff;
}

.search-maintenance{
  margin-top:8px;
}

.search-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.search-kpis article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:56px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.search-kpis article.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}

.search-kpis span{
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}

.search-kpis strong{
  color:#111827;
  font-size:1.35rem;
  font-weight:950;
}

.search-edit-grid{
  display:grid;
  grid-template-columns:minmax(280px, .8fr) minmax(300px, 1.05fr);
  gap:10px;
}

.edit-section{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  align-content:start;
  min-width:0;
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#f8fafc;
}

.edit-section h6{
  grid-column:1 / -1;
  margin:0 0 2px;
  color:#111827;
  font-size:.82rem;
  font-weight:950;
  text-transform:uppercase;
}

.edit-section small{
  color:#64748b;
  font-size:.78rem;
  font-weight:750;
}

.edit-section.is-details{
  grid-row:span 2;
}

.edit-section .is-wide{
  grid-column:1 / -1;
}

.search-edit-actions{
  grid-column:1 / -1;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.search-result-list{
  display:grid;
  gap:8px;
}

.search-result-row{
  display:grid;
  grid-template-columns:112px minmax(260px, 1fr) 64px minmax(116px, auto) minmax(255px, auto);
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-primary);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.search-result-row.is-pending{
  border-left-color:var(--app-status-pending, #d97706);
}

.search-result-row.is-cancelled{
  border-left-color:var(--app-status-cancelled, #b91c1c);
  background:#fffafa;
}

.search-result-date strong,
.search-result-date span,
.search-result-pax span,
.search-result-pax strong{
  display:block;
}

.search-result-date strong{
  color:#111827;
  font-size:.94rem;
  font-weight:950;
}

.search-result-date span,
.search-result-pax span{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:900;
}

.search-result-main{
  min-width:0;
}

.search-result-main h3{
  margin:0;
  color:#111827;
  font-size:1rem;
  font-weight:950;
}

.search-result-title{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
}

.event-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  width:max-content;
  max-width:100%;
  padding:2px 7px;
  color:#6b21a8;
  border:1px solid #e9d5ff;
  border-radius:6px;
  background:#faf5ff;
  font-size:.68rem;
  font-style:normal;
  font-weight:900;
  line-height:1.25;
  text-transform:uppercase;
}

.search-result-main p{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin:2px 0 0;
  color:#475569;
  font-size:.84rem;
  font-weight:800;
}

.search-result-main p span{
  padding-left:7px;
  border-left:1px solid #cbd5e1;
}

.search-result-pax{
  text-align:center;
}

.search-result-pax strong{
  color:#111827;
  font-size:1.16rem;
  font-weight:950;
}

.search-result-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}

.security-page{
  max-width:1500px;
}

.security-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.security-kpis{
  display:grid;
  grid-template-columns:repeat(3, minmax(180px, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.security-kpis article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:56px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.security-kpis article.has-warning{
  border-color:#fecaca;
  background:#fff5f5;
}

.security-kpis span{
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}

.security-kpis strong{
  color:#111827;
  font-size:1.35rem;
  font-weight:950;
}

.security-dashboard-grid{
  display:grid;
  grid-template-columns:minmax(360px, 1fr) minmax(360px, .9fr) minmax(300px, .72fr);
  gap:10px;
  align-items:start;
  margin-bottom:10px;
}

.security-dashboard-card .card-body{
  padding:12px;
}

.security-alert-list{
  display:grid;
  gap:6px;
}

.security-alert{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:8px 9px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
  color:#334155;
  font-size:.84rem;
  font-weight:850;
}

.security-alert i{
  margin-top:1px;
}

.security-alert-ok{
  border-color:#bbf7d0;
  color:#166534;
  background:#f0fdf4;
}

.security-alert-warning{
  border-color:#fde68a;
  color:#92400e;
  background:#fffbeb;
}

.security-alert-danger{
  border-color:#fecaca;
  color:#991b1b;
  background:#fff5f5;
}

.security-quick-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}

.security-data-state{
  display:grid;
  gap:9px;
}

.security-data-state strong,
.security-data-state span{
  display:block;
}

.security-data-state strong{
  color:#111827;
  font-size:.95rem;
  font-weight:950;
}

.security-data-state span{
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:850;
}

.security-table-pills{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.security-table-pills span{
  display:inline-flex;
  gap:5px;
  align-items:center;
  padding:5px 8px;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#fff;
  color:#334155;
  font-size:.75rem;
  font-weight:900;
}

.security-table-pills b{
  color:#111827;
}

.security-critical-list{
  display:grid;
  gap:7px;
}

.security-critical-list div{
  padding:8px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#fff;
}

.security-critical-list strong,
.security-critical-list span{
  display:block;
}

.security-critical-list strong{
  color:#111827;
  font-size:.82rem;
  font-weight:950;
}

.security-critical-list span{
  margin-top:2px;
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:850;
}

.security-grid{
  display:grid;
  grid-template-columns:minmax(560px, 1fr) minmax(420px, .78fr);
  gap:10px;
  align-items:start;
}

.security-backup-card{
  margin-bottom:10px;
}

.security-users-card{
  margin-bottom:10px;
}

.security-backup-card .card-body{
  padding:12px;
}

.security-users-card .card-body{
  padding:12px;
}

.security-users-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(150px, 1fr));
  gap:8px;
}

.security-users-grid article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:58px;
  padding:9px 10px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}

.security-users-grid article.is-disabled{
  opacity:.72;
}

.security-users-grid strong,
.security-users-grid span{
  display:block;
}

.security-users-grid strong{
  color:#111827;
  font-size:.9rem;
  font-weight:950;
}

.security-users-grid span{
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:850;
}

.security-users-grid em{
  flex:0 0 auto;
  padding:4px 7px;
  border-radius:999px;
  font-size:.7rem;
  font-style:normal;
  font-weight:950;
}

.security-users-grid em.is-active{
  color:#166534;
  background:#dcfce7;
}

.security-users-grid em.is-disabled{
  color:#991b1b;
  background:#fee2e2;
}

.security-status{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border:1px solid #bbf7d0;
  border-radius:999px;
  color:#166534;
  background:#dcfce7;
  font-size:.75rem;
  font-weight:950;
}

.security-status-atencion,
.security-status-revisar{
  color:#92400e;
  border-color:#fde68a;
  background:#fef3c7;
}

.security-status-urgente,
.security-status-sin-copias{
  color:#991b1b;
  border-color:#fecaca;
  background:#fee2e2;
}

.security-backup-grid{
  display:grid;
  grid-template-columns:minmax(260px, 1fr) minmax(180px, auto);
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#f8fafc;
}

.security-backup-summary strong,
.security-backup-summary span{
  display:block;
}

.security-backup-summary strong{
  color:#111827;
  font-size:.94rem;
  font-weight:950;
}

.security-backup-summary span{
  margin-top:3px;
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:800;
  overflow-wrap:anywhere;
}

.security-backup-action{
  display:flex;
  justify-content:flex-end;
}

.security-backup-list{
  display:grid;
  grid-template-columns:repeat(4, minmax(160px, 1fr));
  gap:8px;
  margin-top:10px;
}

.security-backup-item{
  display:grid;
  gap:2px;
  min-height:52px;
  padding:8px 10px;
  border:1px solid var(--app-border);
  border-radius:10px;
  color:#111827;
  background:#fff;
  text-decoration:none;
}

.security-backup-item:hover{
  border-color:var(--app-primary);
  color:var(--app-primary);
}

.security-backup-item strong{
  font-size:.82rem;
  font-weight:950;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.security-backup-item span{
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:800;
}

.security-card .card-body{
  padding:12px;
}

.security-trash-list,
.security-audit-list{
  display:grid;
  gap:8px;
}

.security-audit-list{
  max-height:520px;
  overflow:auto;
  padding-right:4px;
}

.security-audit-filters{
  display:grid;
  grid-template-columns:repeat(2, minmax(122px, 1fr)) repeat(2, minmax(140px, 1fr));
  gap:7px;
  align-items:end;
  margin-bottom:10px;
  padding:9px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#f8fafc;
}

.security-audit-filters .is-search{
  grid-column:1 / -2;
}

.security-audit-filters label{
  display:grid;
  gap:4px;
  min-width:0;
}

.security-audit-filters label span{
  color:var(--app-muted);
  font-size:.7rem;
  font-weight:950;
  text-transform:uppercase;
}

.security-audit-filters .form-control,
.security-audit-filters .form-select{
  min-height:32px;
  font-size:.78rem;
  font-weight:800;
}

.security-audit-filter-actions{
  display:flex;
  gap:6px;
  justify-content:flex-end;
  align-self:end;
  min-width:0;
}

.security-audit-filter-actions .btn{
  min-height:32px;
  white-space:nowrap;
}

.security-trash-row{
  display:grid;
  grid-template-columns:112px minmax(260px, 1fr) minmax(210px, auto);
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-status-cancelled, #b91c1c);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.security-trash-date strong,
.security-trash-date span{
  display:block;
}

.security-trash-date strong{
  color:#111827;
  font-size:.94rem;
  font-weight:950;
}

.security-trash-date span,
.security-trash-main small{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:850;
}

.security-trash-main{
  min-width:0;
}

.security-trash-main h3{
  margin:0;
  color:#111827;
  font-size:1rem;
  font-weight:950;
}

.security-trash-main p{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin:2px 0 0;
  color:#475569;
  font-size:.84rem;
  font-weight:800;
}

.security-trash-main p span{
  padding-left:7px;
  border-left:1px solid #cbd5e1;
}

.security-trash-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}

.security-confirm-form{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}

.security-confirm-form .form-control{
  width:108px;
  min-height:31px;
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
}

.security-audit-row{
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .04);
}

.security-audit-row > div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.security-audit-row strong{
  color:#111827;
  font-size:.88rem;
  font-weight:950;
}

.security-audit-row span,
.security-audit-row small{
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:850;
}

.security-audit-row p{
  margin:4px 0;
  color:#334155;
  font-size:.84rem;
  font-weight:800;
}

.area-summary{
  border-left:4px solid var(--app-blue) !important;
}

.area-summary:nth-child(5){
  border-left-color:var(--app-coral) !important;
}

.area-summary:nth-child(6){
  border-left-color:var(--app-amber) !important;
}

.area-summary.is-full{
  background:#fff5f5;
  border-color:#fecaca !important;
}

.calendar-compact-grid{
  display:grid;
  grid-template-columns:minmax(560px, 1fr) minmax(300px, 380px);
  gap:10px;
  align-items:start;
}

.calendar-bookings-card,
.calendar-notes-card{
  min-width:0;
}

.calendar-bookings-card .card-body,
.calendar-notes-card .card-body{
  padding:10px;
}

.compact-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
  padding-bottom:7px;
  border-bottom:1px solid var(--app-border);
}

.compact-card-head h5{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  font-size:1rem;
}

.booking-list{
  display:grid;
  gap:6px;
  max-height:calc(100vh - 245px);
  min-height:280px;
  overflow:auto;
  padding-right:2px;
}

.booking-row{
  position:relative;
  display:grid;
  grid-template-columns:58px minmax(180px, 1fr) minmax(180px, .8fr);
  gap:8px;
  align-items:center;
  min-height:48px;
  padding:7px 8px 7px 12px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-primary-button-start, var(--app-primary));
  border-radius:10px;
  background:#fff;
}

.booking-row.area-salon{ border-left-color:var(--app-primary); }
.booking-row.area-porche{ border-left-color:var(--app-blue); }
.booking-row.area-carpas{ border-left-color:var(--app-coral); }
.booking-row.area-llevar{ border-left-color:var(--app-amber); }

.booking-row-time{
  display:grid;
  place-items:center;
  min-height:32px;
  color:#fff;
  border-radius:8px;
  background:#132033;
  font-size:.86rem;
  font-weight:950;
}

.booking-row-main{
  min-width:0;
}

.booking-row-main strong,
.booking-row-main span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.booking-row-main strong{
  color:#132033;
  font-size:.95rem;
  line-height:1.15;
}

.booking-row-main span{
  color:#475569;
  font-size:.8rem;
  font-weight:750;
}

.booking-row-tags{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:4px;
  min-width:0;
}

.booking-row-tags span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:190px;
  padding:3px 7px;
  overflow:hidden;
  color:#334155;
  text-overflow:ellipsis;
  white-space:nowrap;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#f8fafc;
  font-size:.75rem;
  font-weight:850;
}

.booking-row-tags .is-alert{
  color:#8a2508;
  border-color:#fed7aa;
  background:#fff7ed;
}

.booking-row-note{
  grid-column:2 / 4;
  min-width:0;
  margin-top:-2px;
  color:#64748b;
  font-size:.78rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.compact-note-editor{
  min-height:230px;
  max-height:calc(100vh - 320px);
  overflow:auto;
  border-radius:0 0 9px 9px !important;
}

.compact-quill-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:2px;
  max-height:90px;
  overflow:auto;
}

.compact-empty{
  min-height:260px;
  display:grid;
  place-items:center;
  align-content:center;
}

.calendar-page{
  max-width:1520px;
}

.calendar-main-head{
  margin-bottom:8px;
}

.calendar-kpis{
  grid-template-columns:repeat(4, minmax(150px, 1fr));
}

.today-kpi.is-full{
  position:relative;
  border-color:#fecaca;
  background:#fff5f5;
}

.today-kpi em{
  margin-left:auto;
  padding:4px 7px;
  color:#991b1b;
  border:1px solid #fecaca;
  border-radius:999px;
  background:#fff;
  font-size:.72rem;
  font-style:normal;
  font-weight:950;
}

.calendar-work-grid{
  display:grid;
  grid-template-columns:minmax(520px, .96fr) minmax(400px, .76fr);
  gap:10px;
  align-items:start;
}

.calendar-top-panels{
  display:grid;
  grid-template-columns:minmax(260px, .74fr) minmax(240px, .62fr) minmax(410px, 1fr);
  gap:10px;
  align-items:start;
  margin-bottom:10px;
}

.calendar-filter-form{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:7px;
  width:min(100%, 1320px);
}

.calendar-filter-form .form-select,
.calendar-filter-form .form-control{
  min-width:0;
  width:100%;
}

.calendar-filter-row{
  display:grid;
  gap:8px;
  align-items:center;
}

.calendar-filter-row-main{
  grid-template-columns:minmax(176px, 1.05fr) minmax(150px, .82fr) minmax(150px, .82fr) minmax(116px, auto);
}

.calendar-filter-row-secondary{
  grid-template-columns:minmax(160px, 1fr) minmax(170px, 1fr) minmax(150px, .82fr) minmax(150px, .82fr) minmax(54px, auto) minmax(116px, auto);
}

.calendar-filter-row .btn{
  white-space:nowrap;
}

.calendar-ops-card{
  margin-top:10px;
}

.calendar-view-tabs{
  display:inline-flex;
  gap:4px;
  padding:4px;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#f8fafc;
}

.calendar-view-tabs a{
  padding:5px 10px;
  color:#475569;
  border-radius:999px;
  font-size:.8rem;
  font-weight:900;
  text-decoration:none;
}

.calendar-view-tabs a.active{
  color:#fff;
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, var(--app-blue)));
}

.calendar-load-strip{
  display:flex;
  gap:8px;
  margin-bottom:10px;
  overflow:auto;
  padding-bottom:2px;
}

.load-hour{
  flex:0 0 auto;
  min-width:104px;
  padding:8px 10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
}

.load-hour strong,
.load-hour span{
  display:block;
}

.load-hour strong{
  color:#132033;
  font-size:.9rem;
}

.load-hour span{
  color:#64748b;
  font-size:.76rem;
  font-weight:800;
}

.load-hour.is-empty{
  min-width:240px;
}

.service-agenda{
  display:grid;
  gap:10px;
}

.service-block{
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}

.service-block > header{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  background:#f8fafc;
  border-bottom:1px solid var(--app-border);
}

.service-block > header strong,
.service-block > header span{
  display:block;
}

.service-block > header strong{
  color:#132033;
  font-size:.98rem;
}

.service-block > header span{
  color:#64748b;
  font-size:.8rem;
  font-weight:800;
}

.service-hours{
  display:grid;
}

.service-hour-row{
  display:grid;
  grid-template-columns:94px minmax(0, 1fr);
  gap:10px;
  padding:10px;
  border-bottom:1px solid #eef2f7;
}

.service-hour-row:last-child{
  border-bottom:0;
}

.service-hour-label{
  display:grid;
  align-content:start;
  gap:3px;
}

.service-hour-label strong{
  display:inline-grid;
  place-items:center;
  width:62px;
  min-height:34px;
  color:#fff;
  border-radius:8px;
  background:#132033;
  font-size:.9rem;
  font-weight:950;
}

.service-hour-label span{
  color:#64748b;
  font-size:.75rem;
  font-weight:850;
}

.service-zone-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:8px;
}

.service-zone{
  min-width:0;
  padding:8px;
  border:1px solid var(--app-border);
  border-top:4px solid var(--app-primary);
  border-radius:8px;
  background:#fcfdff;
}

.service-zone.area-salon{ border-top-color:var(--app-primary); }
.service-zone.area-porche{ border-top-color:var(--app-blue); }
.service-zone.area-carpas{ border-top-color:var(--app-coral); }
.service-zone.area-llevar{ border-top-color:var(--app-amber); }

.service-zone-head{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
  color:#475569;
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}

.ops-booking{
  display:grid;
  gap:2px;
  padding:7px 8px;
  margin-top:5px;
  color:#132033;
  border:1px solid var(--app-border);
  border-left:4px solid var(--app-primary);
  border-radius:8px;
  background:#fff;
  text-decoration:none;
}

.ops-booking:hover{
  color:#132033;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(15,23,42,.08);
}

.ops-booking.area-salon{ border-left-color:var(--app-primary); }
.ops-booking.area-porche{ border-left-color:var(--app-blue); }
.ops-booking.area-carpas{ border-left-color:var(--app-coral); }
.ops-booking.area-llevar{ border-left-color:var(--app-amber); }

.ops-booking strong,
.ops-booking span,
.ops-booking em{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ops-booking > .event-badge{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
}

.room-client .event-badge{
  margin-left:5px;
  vertical-align:middle;
}

.ops-booking strong{
  font-size:.82rem;
}

.ops-booking span{
  color:#475569;
  font-size:.78rem;
  font-weight:800;
}

.ops-booking em{
  color:#8a2508;
  font-size:.73rem;
  font-style:normal;
  font-weight:850;
}

.status-pill.status-confirmed,
.ops-booking.status-confirmed,
.room-row.status-confirmed{
  border-color:#bbf7d0;
}

.status-pill.status-pending,
.ops-booking.status-pending,
.room-row.status-pending{
  border-color:#fed7aa;
  background:#fff7ed;
}

.status-pill.status-cancelled,
.ops-booking.status-cancelled,
.room-row.status-cancelled{
  border-color:#fecaca;
  background:#fff5f5;
}

.status-pill.status-noshow,
.ops-booking.status-noshow,
.room-row.status-noshow{
  border-color:#ddd6fe;
  background:#f5f3ff;
}

.room-compact-list{
  display:grid;
  gap:5px;
  max-height:calc(100vh - 330px);
  overflow:auto;
}

.room-row{
  display:grid;
  grid-template-columns:58px 70px minmax(160px, 1fr) 64px 96px minmax(120px, .7fr);
  gap:8px;
  align-items:center;
  min-height:38px;
  padding:6px 8px;
  color:#132033;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-primary);
  border-radius:8px;
  background:#fff;
  text-decoration:none;
}

.room-row.area-salon{ border-left-color:var(--app-primary); }
.room-row.area-porche{ border-left-color:var(--app-blue); }
.room-row.area-carpas{ border-left-color:var(--app-coral); }
.room-row.area-llevar{ border-left-color:var(--app-amber); }

.room-row b{
  color:#fff;
  text-align:center;
  border-radius:7px;
  background:#132033;
  padding:5px 4px;
  font-size:.8rem;
}

.room-row strong,
.room-row span,
.room-row em,
.room-row small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.room-row strong{
  font-size:.88rem;
}

.room-row span{
  font-weight:850;
}

.room-row em{
  color:#475569;
  font-size:.8rem;
  font-style:normal;
  font-weight:850;
}

.room-row small{
  color:#64748b;
  font-size:.76rem;
  font-weight:800;
}

.room-row small.is-alert{
  color:#8a2508;
}

.calendar-reservations-full{
  display:block;
}

.calendar-side{
  display:grid;
  gap:10px;
  min-width:0;
}

.calendar-booking-list{
  max-height:calc(100vh - 410px);
  min-height:230px;
}

.calendar-side .card-body,
.calendar-top-panels .card-body{
  padding:10px;
}

.day-limit-form{
  padding:8px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}

.day-limit-form .form-label{
  margin-bottom:5px;
  color:#475569;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}

.today-area-item.area-total{
  border-left-color:var(--app-violet);
}

.today-area-item.area-salon{
  border-left-color:var(--app-primary);
}

.today-area-item.area-porche{
  border-left-color:var(--app-blue);
}

.today-area-item.area-carpas{
  border-left-color:var(--app-coral);
}

.today-area-item.area-llevar{
  border-left-color:var(--app-amber);
}

.today-area-item strong b{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:2px 6px;
  color:#991b1b;
  border:1px solid #fecaca;
  border-radius:999px;
  background:#fff;
  font-size:.68rem;
  font-weight:950;
}

.today-page{
  max-width:1480px;
}

.today-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  padding:11px 12px;
  border:1px solid var(--app-border);
  border-left:5px solid var(--app-quick-button-start, var(--app-coral));
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .06);
}

.today-head h2{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  color:#132033;
  font-size:1.22rem;
  font-weight:950;
}

.today-head p,
.today-kicker{
  margin:0;
  color:var(--app-muted);
  font-size:.82rem;
  font-weight:850;
}

.today-kicker{
  display:block;
  margin-bottom:2px;
  text-transform:uppercase;
}

.today-date-form .btn{
  white-space:nowrap;
}

.today-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:8px;
  margin-bottom:10px;
}

.today-kpi{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:60px;
  padding:9px 10px;
  border:1px solid var(--app-border);
  border-radius:11px;
  background:#fff;
  box-shadow:0 6px 14px rgba(15, 23, 42, .05);
}

.today-kpi i{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-primary-button-end, var(--app-blue)));
}

.today-kpi:nth-child(2) i{ background:linear-gradient(135deg, var(--app-blue), var(--app-violet)); }
.today-kpi:nth-child(3) i{ background:linear-gradient(135deg, var(--app-green), var(--app-primary)); }
.today-kpi:nth-child(4) i{ background:linear-gradient(135deg, var(--app-amber), var(--app-coral)); }

.today-kpi.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}

.today-kpi span{
  display:block;
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
}

.today-kpi strong{
  display:block;
  color:#132033;
  font-size:1.34rem;
  line-height:1;
}

.today-work-grid{
  display:grid;
  grid-template-columns:minmax(560px, 1fr) minmax(310px, 390px);
  gap:10px;
  align-items:start;
}

.today-main-card .card-body,
.today-side .card-body{
  padding:10px;
}

.today-agenda{
  display:grid;
  gap:6px;
  max-height:calc(100vh - 292px);
  min-height:300px;
  overflow:auto;
  padding-right:2px;
}

.today-booking-row{
  grid-template-columns:58px minmax(160px, 1fr) minmax(170px, .8fr);
  min-height:50px;
}

.today-booking-row:hover{
  border-color:var(--app-border-strong);
  background:#fbfdff;
}

.today-row-link{
  position:absolute;
  inset:0;
  border-radius:10px;
}

.today-side{
  display:grid;
  gap:10px;
}

.today-action-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
}

.today-action-grid a{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:8px 10px;
  color:#172033;
  text-decoration:none;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#fff;
  font-size:.84rem;
  font-weight:900;
}

.today-action-grid a:hover{
  color:var(--app-link-hover);
  border-color:var(--app-chip-active-border);
  background:var(--app-chip-active-bg);
}

.today-action-grid i{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  color:#fff;
  border-radius:8px;
  background:linear-gradient(135deg, var(--app-sidebar-icon-start, var(--app-primary)), var(--app-sidebar-icon-end, var(--app-blue)));
}

.today-area-list{
  display:grid;
  gap:6px;
}

.today-area-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:38px;
  padding:7px 9px;
  border:1px solid var(--app-border);
  border-left:4px solid var(--app-primary-button-start, var(--app-primary));
  border-radius:9px;
  background:#fff;
}

.today-area-item.area-total{ border-left-color:var(--app-violet); }
.today-area-item.area-salon{ border-left-color:var(--app-primary); }
.today-area-item.area-porche{ border-left-color:var(--app-blue); }
.today-area-item.area-carpas{ border-left-color:var(--app-coral); }
.today-area-item.area-llevar{ border-left-color:var(--app-amber); }

.today-area-item.is-full{
  color:#7f1d1d;
  border-color:#fecaca;
  background:#fff5f5;
}

.today-area-item span{
  color:#132033;
  font-size:.8rem;
  font-weight:950;
}

.today-area-item strong{
  color:#334155;
  font-size:.82rem;
  text-align:right;
}

.today-note{
  max-height:128px;
  overflow:auto;
  padding:9px 10px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
  color:#172033;
  font-size:.86rem;
}

.today-note p:last-child{
  margin-bottom:0;
}

.today-muted-box{
  padding:12px;
  color:var(--app-muted);
  border:1px dashed var(--app-border-strong);
  border-radius:10px;
  background:#fff;
  font-weight:800;
}

.today-rice-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.today-rice-list span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  padding:5px 8px;
  color:#334155;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#f8fafc;
  font-size:.8rem;
  font-weight:850;
}

.today-rice-list strong{
  color:#132033;
}

.reservation-compact{
  display:block;
}

.reservation-entry-grid{
  display:grid;
  grid-template-columns:minmax(360px, .95fr) minmax(280px, .72fr) minmax(420px, 1.15fr);
  gap:10px;
  align-items:start;
}

.reservation-entry-grid .card-body{
  padding:10px;
}

.compact-section-title{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0 0 9px;
  padding-bottom:7px;
  border-bottom:1px solid var(--app-border);
  font-size:.98rem;
}

.compact-input-group .btn{
  min-width:42px;
}

.compact-textarea{
  min-height:58px;
  resize:vertical;
}

.compact-alert{
  margin:0;
  padding:8px 10px;
}

.smart-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:54px;
  padding:9px 10px;
  border:1px solid var(--app-border);
  border-left:4px solid var(--app-violet);
  border-radius:10px;
  background:#f8fafc;
}

.smart-panel.has-selection{
  border-left-color:var(--app-green);
}

.smart-panel strong,
.smart-panel span{
  display:block;
}

.smart-panel strong{
  color:#172033;
  font-size:.88rem;
}

.smart-panel span{
  color:var(--app-muted);
  font-size:.8rem;
  font-weight:750;
}

.smart-alert-stack{
  display:grid;
  gap:7px;
}

.smart-client-box{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:8px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}

.smart-client-box span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  max-width:100%;
  padding:4px 7px;
  overflow:hidden;
  color:#334155;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#fff;
  font-size:.78rem;
  font-weight:850;
}

.smart-client-box .is-alert{
  color:#991b1b;
  border-color:#fecaca;
  background:#fff5f5;
}

.smart-client-box .is-incident{
  color:#7f1d1d;
  border-color:#fca5a5;
  background:#fef2f2;
  box-shadow:0 0 0 2px rgba(239,68,68,.08);
}

.reservation-summary-modal dl{
  display:grid;
  grid-template-columns:110px minmax(0, 1fr);
  gap:8px 10px;
  margin:0 0 10px;
}

.reservation-summary-modal dt{
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:950;
  text-transform:uppercase;
}

.reservation-summary-modal dd{
  margin:0;
  color:#172033;
  font-weight:850;
}

.clientes-page{
  max-width:1600px;
}

.clients-toolbar{
  display:grid;
  grid-template-columns:minmax(260px, .8fr) minmax(360px, 1.2fr);
  gap:16px;
  align-items:end;
  margin-bottom:14px;
}

.clients-search{
  width:100%;
}

.clients-workspace{
  display:grid;
  grid-template-columns:minmax(360px, .85fr) minmax(520px, 1.15fr);
  gap:14px;
  align-items:start;
}

.client-panel{
  background:var(--app-card-bg, #fff);
  border:1px solid var(--app-border, #dbe4ee);
  border-radius:8px;
  padding:14px;
  box-shadow:var(--app-card-shadow, 0 10px 24px rgba(15,23,42,.06));
}

.client-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.client-panel-head h6{
  margin:0;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:800;
}

.client-panel-head span{
  display:block;
  color:var(--app-muted, #64748b);
  font-size:.84rem;
  margin-top:2px;
}

.client-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.client-form-grid .span-2{
  grid-column:1 / -1;
}

.client-tag-options{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.client-check{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--app-border, #dbe4ee);
  background:#f8fafc;
  border-radius:999px;
  padding:6px 10px;
  color:#334155;
  font-size:.86rem;
  font-weight:800;
}

.client-check input{
  width:14px;
  height:14px;
}

.client-metrics{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.client-metric{
  min-height:76px;
  padding:10px;
  border:1px solid var(--app-border, #dbe4ee);
  border-radius:8px;
  background:linear-gradient(180deg, #fff, #f8fafc);
}

.client-metric span{
  display:block;
  color:var(--app-muted, #64748b);
  font-size:.78rem;
  font-weight:850;
  text-transform:uppercase;
}

.client-metric strong{
  display:block;
  margin-top:8px;
  color:var(--app-text, #0f172a);
  font-size:1.05rem;
}

.client-history-table{
  max-height:460px;
  overflow:auto;
}

.client-history-table thead th,
.clients-list-table thead th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f8fafc;
}

.client-observation-cell{
  max-width:280px;
  white-space:normal;
}

.client-tags-inline{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.client-tags-inline span,
.client-row-note{
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid var(--app-chip-active-border, #a6d6cf);
  background:var(--app-chip-active-bg, #edfdfa);
  color:var(--app-primary, #0f766e);
  border-radius:999px;
  padding:3px 8px;
  font-size:.78rem;
  font-weight:850;
}

.client-row-note{
  max-width:360px;
  margin-top:4px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  border-color:#e2e8f0;
  background:#f8fafc;
  color:#475569;
}

.client-row-note.is-alert{
  color:#991b1b;
  border-color:#fecaca;
  background:#fff5f5;
}

.client-row-note.is-incident{
  color:#7f1d1d;
  border-color:#fca5a5;
  background:#fef2f2;
}

.compact-save-bar{
  position:sticky;
  bottom:8px;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  padding:9px 10px;
  border:1px solid color-mix(in srgb, var(--app-primary-button-start, var(--app-primary)) 22%, #ffffff);
  border-radius:12px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 24px rgba(15, 23, 42, .10);
  backdrop-filter:blur(12px);
}

.compact-save-bar span{
  color:#475569;
  font-size:.86rem;
  font-weight:800;
}

.table-map-page{
  max-width:1680px;
}
.table-map-head{
  margin-bottom:10px;
}
.table-map-filters{
  display:grid !important;
  grid-template-columns:170px minmax(170px, 1fr) minmax(150px, .8fr) minmax(150px, .72fr) minmax(88px, auto) minmax(46px, auto);
  gap:8px;
  align-items:end;
  width:min(900px, 100%);
}
.table-map-filters .form-control,
.table-map-filters .form-select,
.table-map-filters .btn{
  width:100%;
  min-width:0;
}
.table-map-view-switch{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 10px;
}
.table-map-view-switch .btn{
  min-height:40px;
  font-weight:850;
}
.layout-editor-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  padding:10px 12px;
  border:1px solid #bfdbfe;
  border-radius:8px;
  background:#eff6ff;
}
.layout-editor-bar strong,
.layout-editor-bar span{
  display:block;
}
.layout-editor-bar strong{
  color:#1e3a8a;
}
.layout-editor-bar span{
  color:#475569;
  font-size:.84rem;
  font-weight:800;
}
.layout-editor-bar form{
  flex:0 0 auto;
}
.table-map-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:10px;
  margin-bottom:10px;
}
.table-map-kpis article{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:70px;
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.06);
}
.table-map-kpis article.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}
.table-map-kpis i{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  color:#fff;
  border-radius:8px;
  background:linear-gradient(135deg, var(--app-primary), var(--app-blue));
}
.table-map-kpis span,
.table-map-kpis strong{
  display:block;
}
.table-map-kpis span{
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:850;
  text-transform:uppercase;
}
.table-map-kpis strong{
  color:#132033;
  font-size:1.35rem;
}
.table-map-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, 360px);
  gap:12px;
  align-items:start;
}
.table-map-board{
  display:grid;
  gap:12px;
}
.table-zone{
  border:1px solid var(--app-border);
  border-top:5px solid var(--app-primary);
  border-radius:8px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 10px 22px rgba(15,23,42,.06);
}
.table-zone.area-salon{ border-top-color:var(--app-primary); }
.table-zone.area-porche{ border-top-color:var(--app-blue); }
.table-zone.area-carpas{ border-top-color:var(--app-coral); }
.table-zone.area-llevar{ border-top-color:var(--app-amber); }
.table-zone > header{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid var(--app-border);
  background:#f8fafc;
}
.table-zone > header strong,
.table-zone > header span{
  display:block;
}
.table-zone > header strong{
  color:#132033;
  font-size:1rem;
}
.table-zone > header span{
  color:#64748b;
  font-size:.82rem;
  font-weight:800;
}
.table-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(132px, 1fr));
  gap:8px;
  padding:10px;
}
.table-grid.is-layout-canvas{
  position:relative;
  display:block;
  min-height:520px;
  margin:10px;
  padding:0;
  overflow:hidden;
  border:1px dashed #bfdbfe;
  border-radius:10px;
  background:
    linear-gradient(#e2e8f0 1px, transparent 1px),
    linear-gradient(90deg, #e2e8f0 1px, transparent 1px),
    #f8fafc;
  background-size:32px 32px;
}
.table-tile{
  position:relative;
  display:grid;
  grid-template-rows:auto auto 1fr auto;
  gap:4px;
  min-height:122px;
  padding:10px;
  text-align:left;
  color:#132033;
  border:1px solid var(--app-border);
  border-left:5px solid #94a3b8;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
}
.is-layout-canvas .table-tile{
  position:absolute;
  min-height:0;
  min-width:0;
  padding:7px 7px 6px;
  user-select:none;
}
.is-operational-canvas .table-tile{
  grid-template-rows:auto minmax(0, 1fr) auto;
  align-content:start;
  gap:2px;
  min-height:88px;
  cursor:pointer;
}
.is-operational-canvas .table-tile .table-number{
  min-width:34px;
  min-height:25px;
  padding:3px 7px;
  font-size:.82rem;
}
.is-operational-canvas .table-capacity{
  top:7px;
  right:7px;
  font-size:.66rem;
}
.is-operational-canvas .table-reservation-name{
  margin-top:4px;
  padding-right:2px;
  overflow:visible;
  color:#111827;
  font-size:.69rem;
  line-height:1.08;
  text-overflow:clip;
  white-space:normal;
  word-break:normal;
}
.is-operational-canvas .table-reservation-meta{
  overflow:visible;
  color:#475569;
  font-size:.64rem;
  line-height:1.1;
  text-overflow:clip;
  white-space:normal;
}
.is-layout-editor .table-tile{
  touch-action:none;
  cursor:grab;
}
.is-layout-canvas .table-tile.is-dragging{
  z-index:20;
  cursor:grabbing;
  opacity:.92;
}
.is-layout-canvas .table-tile strong{
  font-size:.8rem;
}
.is-layout-canvas .table-tile small{
  font-size:.72rem;
}
.is-layout-canvas .table-capacity{
  font-size:.68rem;
}
.is-layout-canvas.is-operational-canvas .table-tile .table-reservation-name{
  font-size:.69rem;
  line-height:1.08;
  white-space:normal;
}
.is-layout-canvas.is-operational-canvas .table-tile .table-reservation-meta{
  font-size:.64rem;
  line-height:1.1;
  white-space:normal;
}
.is-layout-canvas.is-layout-editor .table-tile .table-reservation-name{
  font-size:.69rem;
  line-height:1.08;
  white-space:normal;
}
.is-layout-canvas.is-layout-editor .table-tile .table-reservation-meta{
  font-size:.64rem;
  line-height:1.1;
  white-space:normal;
}
.is-layout-editor .table-reservation-name{
  white-space:normal;
  text-overflow:clip;
}

.table-event-badge{
  display:inline-block;
  margin:0 4px 2px 0;
  padding:1px 4px;
  color:#6b21a8;
  border:1px solid #e9d5ff;
  border-radius:4px;
  background:#faf5ff;
  font-size:.56rem;
  font-weight:950;
  line-height:1.2;
  text-transform:uppercase;
  vertical-align:1px;
}
.is-layout-canvas .table-tile[data-shape="round"]{
  border-radius:999px;
}
.table-tile:hover,
.table-tile.is-selected{
  transform:translateY(-1px);
  box-shadow:0 12px 22px rgba(15,23,42,.1);
}
.table-tile.is-selected{
  outline:3px solid rgba(37,99,235,.16);
}
.table-tile.area-salon{ border-left-color:var(--app-primary); }
.table-tile.area-porche{ border-left-color:var(--app-blue); }
.table-tile.area-carpas{ border-left-color:var(--app-coral); }
.table-tile.area-llevar{ border-left-color:var(--app-amber); }
.table-tile.is-free{
  background:#f8fafc;
}
.table-tile.is-free .table-number{
  color:#166534;
  background:#dcfce7;
}
.table-tile.status-pending{
  border-color:#fed7aa;
  background:#fff7ed;
}
.table-tile.status-cancelled{
  border-color:#fecaca;
  background:#fff5f5;
}
.table-tile.status-noshow{
  border-color:#ddd6fe;
  background:#f5f3ff;
}
.table-number{
  display:inline-grid;
  place-items:center;
  width:max-content;
  min-width:42px;
  min-height:30px;
  padding:4px 8px;
  color:#fff;
  border-radius:8px;
  background:#132033;
  font-size:.95rem;
  font-weight:950;
}
.table-capacity{
  position:absolute;
  top:9px;
  right:9px;
  color:#475569;
  font-size:.75rem;
  font-weight:850;
}
.table-tile strong{
  display:block;
  margin-top:4px;
  overflow:hidden;
  color:#132033;
  font-size:.88rem;
  line-height:1.18;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.table-tile small{
  display:block;
  overflow:hidden;
  color:#64748b;
  font-size:.78rem;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.table-tile em{
  display:inline-flex;
  width:max-content;
  padding:2px 6px;
  color:#7c2d12;
  border:1px solid #fed7aa;
  border-radius:999px;
  background:#fff;
  font-size:.7rem;
  font-style:normal;
  font-weight:900;
}
.table-detail-panel{
  position:sticky;
  top:14px;
  min-height:360px;
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 22px rgba(15,23,42,.06);
}
.table-detail-empty{
  display:grid;
  place-items:center;
  align-content:center;
  min-height:260px;
  gap:6px;
  color:#64748b;
  text-align:center;
}
.table-detail-empty i{
  font-size:2rem;
  color:var(--app-primary);
}
.detail-table-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px;
  margin-bottom:10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#f8fafc;
}
.detail-table-title strong{
  color:#132033;
  font-size:1.1rem;
}
.detail-table-title span{
  color:#64748b;
  font-size:.82rem;
  font-weight:850;
}
.table-detail-content dl{
  display:grid;
  grid-template-columns:92px minmax(0, 1fr);
  gap:8px 10px;
  margin:0 0 12px;
}
.table-detail-content dt{
  color:#64748b;
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}
.table-detail-content dd{
  margin:0;
  min-width:0;
  color:#132033;
  font-size:.86rem;
  font-weight:800;
  overflow-wrap:anywhere;
}
.table-map-actions{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.table-action-card{
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#f8fafc;
}
.table-action-card .form-label{
  margin-bottom:5px;
  color:#475569;
  font-size:.76rem;
  font-weight:950;
  text-transform:uppercase;
}
.table-action-muted{
  padding:8px;
  color:#64748b;
  border:1px dashed var(--app-border);
  border-radius:8px;
  background:#fff;
  font-size:.82rem;
  font-weight:800;
}
.table-capacity-warning{
  margin-top:8px;
  padding:8px;
  color:#8a2508;
  border:1px solid #fed7aa;
  border-radius:8px;
  background:#fff7ed;
  font-size:.8rem;
  font-weight:850;
}

select[multiple].form-select{
  min-height:128px;
  padding:5px;
}

select[multiple].form-select option{
  padding:6px 8px;
  margin-bottom:3px;
  border-radius:7px;
}

.nav.nav-pills{
  gap:6px !important;
  padding:6px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#f8fafc;
}

.nav.nav-pills .nav-link{
  min-height:34px;
  padding:6px 10px;
  font-size:.88rem;
}

.card.p-3{
  padding:12px !important;
}

.row.g-3{
  --bs-gutter-x:.65rem;
  --bs-gutter-y:.65rem;
}

.row.g-2{
  --bs-gutter-x:.5rem;
  --bs-gutter-y:.45rem;
}

.table-responsive{
  max-height:calc(100vh - 240px);
}

.table.table-sm > :not(caption) > * > *{
  padding:.36rem .45rem;
}

.print-page{
  display:grid;
  gap:10px;
}
.print-head{
  border-left:5px solid var(--app-primary);
}
.print-mode-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(145px, 1fr));
  gap:10px;
}
.print-mode-card{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:72px;
  padding:11px;
  color:#132033;
  text-decoration:none;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.06);
}
.print-mode-card:hover,
.print-mode-card.active{
  color:#132033;
  border-color:var(--app-primary);
  background:#f0fdfa;
  transform:translateY(-1px);
}
.print-mode-card i{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  color:#fff;
  border-radius:8px;
  background:linear-gradient(135deg, var(--app-primary), var(--app-blue));
}
.print-mode-card strong,
.print-mode-card span{
  display:block;
}
.print-mode-card strong{
  font-size:.95rem;
  line-height:1.1;
}
.print-mode-card span{
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:800;
}
.print-panel{
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 22px rgba(15,23,42,.06);
}
.print-filter-bar{
  display:grid;
  grid-template-columns:minmax(170px, 220px) minmax(170px, 220px) minmax(130px, 160px) minmax(150px, 190px);
  gap:8px;
  align-items:end;
  margin-bottom:10px;
}
.print-summary-grid{
  display:grid;
  grid-template-columns:repeat(8, minmax(95px, 1fr));
  gap:8px;
  margin-bottom:10px;
}
.print-summary-grid article{
  padding:8px 10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#f8fafc;
}
.print-summary-grid article.has-alert{
  border-color:#fecaca;
  background:#fff5f5;
}
.print-summary-grid span,
.print-summary-grid strong{
  display:block;
}
.print-summary-grid span{
  color:var(--app-muted);
  font-size:.72rem;
  font-weight:850;
  text-transform:uppercase;
}
.print-summary-grid strong{
  color:#132033;
  font-size:1.2rem;
  line-height:1.15;
}
.print-day-note{
  margin-bottom:10px;
  padding:8px 10px;
  border:1px solid #fde68a;
  border-left:5px solid #f59e0b;
  border-radius:8px;
  background:#fffbeb;
  color:#713f12;
  font-weight:750;
}
.print-part-preview{
  display:grid;
  gap:10px;
}
.print-zone-preview{
  overflow:hidden;
  border:1px solid var(--app-border);
  border-radius:8px;
}
.print-zone-preview > header{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  color:#132033;
  background:#f8fafc;
  border-bottom:1px solid var(--app-border);
}
.print-zone-preview > header strong{
  font-size:1rem;
}
.print-zone-preview > header span{
  color:var(--app-muted);
  font-size:.82rem;
  font-weight:850;
}
.print-zone-preview td strong,
.print-zone-preview td small{
  display:block;
}
.print-zone-preview td small{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:750;
}
.kitchen-preview-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(280px, .9fr);
  gap:10px;
  margin-bottom:10px;
}
.kitchen-summary-card,
.kitchen-menu-card{
  overflow:hidden;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
}
.kitchen-summary-card > header,
.kitchen-menu-card > header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-bottom:1px solid var(--app-border);
  background:#f8fafc;
}
.kitchen-summary-card > header strong,
.kitchen-menu-card > header strong,
.kitchen-summary-card > header span,
.kitchen-menu-card > header span{
  display:block;
}
.kitchen-summary-card > header strong,
.kitchen-menu-card > header strong{
  color:#132033;
}
.kitchen-summary-card > header span,
.kitchen-menu-card > header span{
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:800;
}
.kitchen-menu-card > header em{
  flex:0 0 auto;
  padding:4px 8px;
  color:#075985;
  border-radius:999px;
  background:#e0f2fe;
  font-size:.78rem;
  font-style:normal;
  font-weight:900;
}
.kitchen-summary-card .table-responsive,
.kitchen-menu-card .table-responsive{
  max-height:none;
}
.kitchen-review-list,
.kitchen-reservation-list{
  display:grid;
  gap:6px;
  padding:10px;
}
.kitchen-review-list div{
  padding:7px 8px;
  border:1px solid #fed7aa;
  border-radius:7px;
  background:#fff7ed;
}
.kitchen-review-list strong,
.kitchen-review-list span,
.kitchen-reservation-list span{
  display:block;
}
.kitchen-review-list span,
.kitchen-reservation-list span{
  color:var(--app-muted);
  font-size:.8rem;
  font-weight:750;
}
.kitchen-menu-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(280px, 1fr));
  gap:10px;
}
.kitchen-menu-card details{
  padding:0 10px 10px;
}
.kitchen-menu-card summary{
  cursor:pointer;
  color:var(--app-muted);
  font-size:.82rem;
  font-weight:850;
}
.rice-workspace{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(340px, .9fr);
  gap:10px;
  margin-bottom:10px;
}
.rice-secondary-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.rice-review-list,
.rice-empty-list{
  display:grid;
  gap:7px;
  padding:10px;
}
.rice-review-list div{
  padding:8px;
  border:1px solid #fed7aa;
  border-radius:7px;
  background:#fff7ed;
}
.rice-review-list strong,
.rice-review-list span,
.rice-review-list small,
.rice-empty-list span{
  display:block;
}
.rice-review-list span{
  color:#132033;
  font-size:.84rem;
  font-weight:800;
}
.rice-review-list small,
.rice-empty-list span{
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:750;
}
.labels-config-panel{
  display:grid;
  gap:10px;
  margin-bottom:12px;
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#f8fafc;
}
.labels-config-grid{
  display:grid;
  grid-template-columns:minmax(160px, 1fr) minmax(150px, 1fr) minmax(150px, .8fr) minmax(140px, .8fr) minmax(90px, .45fr);
  gap:8px;
  align-items:end;
}
.labels-options-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  padding:8px 10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
}
.labels-options-row .form-check{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:28px;
  margin:0;
  font-weight:850;
}
.labels-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.labels-preview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
  gap:10px;
}
.label-preview-card{
  min-height:130px;
  padding:10px;
  text-align:center;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.05);
}
.label-preview-card strong{
  display:block;
  color:#132033;
  font-size:1rem;
  line-height:1.1;
  text-transform:uppercase;
}
.label-preview-card div{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:3px 8px;
  margin-top:5px;
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:800;
}
.label-preview-card p{
  margin:7px 0 0;
  color:#132033;
  font-weight:900;
  line-height:1.18;
}
.label-preview-card em{
  display:block;
  margin-top:7px;
  color:#b91c1c;
  font-style:normal;
  font-weight:950;
  line-height:1.15;
}

.options-admin-grid{
  display:grid;
  grid-template-columns:minmax(260px, 360px) minmax(0, 1fr);
  gap:12px;
}
.options-secondary-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.4fr) minmax(300px, .8fr);
  gap:12px;
  margin-top:12px;
}
.options-panel{
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:var(--app-card);
  box-shadow:0 12px 26px rgba(15,23,42,.06);
}
.options-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.options-panel-head h5{
  margin:0;
  color:var(--app-ink);
  font-size:1rem;
  font-weight:950;
}
.options-panel-head span{
  min-width:34px;
  padding:4px 8px;
  border-radius:999px;
  color:#fff;
  background:var(--app-primary);
  font-size:.78rem;
  font-weight:900;
  text-align:center;
}
.options-group-title{
  margin:12px 0 6px;
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.options-list{
  display:grid;
  gap:6px;
}
.option-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px;
  border:1px solid var(--app-border);
  border-radius:8px;
  color:var(--app-ink);
  background:#fff;
  text-decoration:none;
}
.option-row:hover,
.option-row.active{
  border-color:var(--app-primary);
  background:var(--app-chip-active-bg);
}
.option-row strong,
.option-row small{
  display:block;
}
.option-row strong{
  font-size:.88rem;
  line-height:1.1;
}
.option-row small{
  margin-top:2px;
  color:var(--app-muted);
  font-size:.72rem;
  font-weight:800;
}
.option-row em{
  flex:0 0 auto;
  padding:3px 7px;
  border-radius:999px;
  font-size:.7rem;
  font-style:normal;
  font-weight:900;
}
.option-row em.is-on{
  color:#166534;
  background:#dcfce7;
}
.option-row em.is-off{
  color:#7f1d1d;
  background:#fee2e2;
}
.options-form-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(130px, 1fr));
  gap:9px;
}
.options-form-grid .span-2{
  grid-column:span 2;
}
.option-switch{
  display:flex;
  align-items:end;
  gap:8px;
  padding-bottom:8px;
  color:var(--app-ink);
  font-weight:900;
}
.option-switch input{
  width:18px;
  height:18px;
}
.rice-config-list{
  display:grid;
  gap:6px;
}
.rice-config-row{
  display:grid;
  grid-template-columns:76px 34px minmax(160px, .8fr) minmax(220px, 1.2fr);
  gap:6px;
  align-items:center;
}
.mini-check{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  margin:0;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
}
.mini-check input{
  width:17px;
  height:17px;
}
.quick-option-row{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:6px;
}
.quick-option-chip{
  padding:3px 8px;
  border:1px solid var(--app-border);
  border-radius:999px;
  color:var(--app-ink);
  background:#fff;
  font-size:.74rem;
  font-weight:850;
  line-height:1.2;
}
.quick-option-chip:hover{
  border-color:var(--app-primary);
  color:var(--app-primary);
  background:var(--app-chip-active-bg);
}
.template-helper{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, .75fr);
  gap:12px;
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}
.template-helper h6,
.template-helper p{
  margin:0;
}
.template-helper p{
  margin-top:3px;
  color:var(--app-muted);
  font-size:.84rem;
  font-weight:800;
}
.template-var-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.template-var-chip{
  padding:4px 8px;
  border:1px solid var(--app-border);
  border-radius:999px;
  color:var(--app-ink);
  background:#fff;
  font-size:.75rem;
  font-weight:900;
}
.template-var-chip:hover{
  border-color:var(--app-primary);
  color:var(--app-primary);
}
.template-preview-box{
  min-height:92px;
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  color:var(--app-ink);
  background:#fff;
  font-size:.86rem;
  font-weight:750;
  white-space:pre-wrap;
}
.role-options-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(150px, 1fr));
  gap:8px;
  margin-bottom:8px;
}
.role-options-grid article{
  min-height:86px;
  padding:10px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}
.role-options-grid strong,
.role-options-grid span{
  display:block;
}
.role-options-grid strong{
  color:var(--app-ink);
  font-size:.86rem;
  font-weight:950;
}
.role-options-grid span{
  margin-top:4px;
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:800;
  line-height:1.25;
}
.communication-quick{
  display:grid;
  grid-template-columns:repeat(3, minmax(190px, 1fr));
  gap:10px;
}
.communication-quick a{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:50px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:10px;
  color:var(--app-ink);
  background:var(--app-card);
  text-decoration:none;
  font-weight:950;
  box-shadow:0 10px 20px rgba(15,23,42,.05);
}
.communication-quick a:hover{
  border-color:var(--app-primary);
  color:var(--app-primary);
  background:var(--app-chip-active-bg);
}
.communication-quick i{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:9px;
  color:#fff;
  background:linear-gradient(135deg, var(--app-primary), var(--app-blue));
}
.communication-filters{
  display:grid;
  grid-template-columns:repeat(5, minmax(145px, 1fr));
  gap:10px;
  align-items:end;
}
.communication-filters .span-full{
  grid-column:1 / -1;
}
.communication-check{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:7px 10px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  font-weight:850;
}
.communication-check input{
  width:17px;
  height:17px;
}
.communication-kpis{
  display:grid;
  grid-template-columns:repeat(4, minmax(120px, 1fr));
  gap:10px;
}
.communication-kpis article{
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:var(--app-card);
  box-shadow:0 10px 20px rgba(15,23,42,.05);
}
.communication-kpis span,
.communication-kpis strong{
  display:block;
}
.communication-kpis span{
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
}
.communication-kpis strong{
  color:var(--app-ink);
  font-size:1.3rem;
  line-height:1.05;
}
.communication-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.communication-toolbar strong,
.communication-toolbar span{
  display:block;
}
.communication-toolbar span{
  color:var(--app-muted);
  font-size:.82rem;
  font-weight:800;
}
.communication-list{
  display:grid;
  gap:8px;
}
.communication-row{
  display:grid;
  grid-template-columns:28px minmax(190px, .8fr) minmax(260px, 1.2fr) minmax(150px, .55fr);
  gap:9px;
  align-items:start;
  padding:9px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#fff;
}
.communication-row > input[type="checkbox"]{
  margin-top:8px;
}
.communication-person strong,
.communication-person small{
  display:block;
}
.communication-person strong{
  color:var(--app-ink);
  font-size:.94rem;
  line-height:1.15;
}
.communication-person small{
  margin-top:3px;
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:800;
}
.communication-message{
  min-height:76px;
  resize:vertical;
}
.communication-actions{
  display:flex;
  align-items:stretch;
  flex-direction:column;
  gap:6px;
}
.communication-last{
  padding:5px 7px;
  border-radius:8px;
  color:#166534;
  background:#dcfce7;
  font-size:.72rem;
  font-weight:900;
  line-height:1.2;
}
.communication-last.is-pending{
  color:#92400e;
  background:#fef3c7;
}

.reports-page,
.stats-page{
  max-width:1500px;
}

.reports-kpis,
.stats-kpis,
.stats-rice-summary{
  display:grid;
  gap:10px;
  margin-bottom:10px;
}

.reports-kpis{
  grid-template-columns:repeat(6, minmax(132px, 1fr));
}

.stats-kpis{
  grid-template-columns:repeat(4, minmax(160px, 1fr));
}

.stats-rice-summary{
  grid-template-columns:repeat(3, minmax(180px, 1fr));
}

.reports-kpis article,
.stats-kpis article,
.stats-rice-summary article{
  min-height:58px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.reports-kpis article,
.stats-rice-summary article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.stats-kpis article{
  display:grid;
  grid-template-columns:42px minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
}

.stats-kpis i{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(135deg, var(--app-primary-button-start, var(--app-primary)), var(--app-blue));
  font-size:1.15rem;
}

.stats-kpis article:nth-child(2) i{ background:linear-gradient(135deg, var(--app-blue), var(--app-violet)); }
.stats-kpis article:nth-child(3) i{ background:linear-gradient(135deg, var(--app-green), var(--app-primary)); }
.stats-kpis article:nth-child(4) i{ background:linear-gradient(135deg, var(--app-amber), var(--app-coral)); }

.reports-kpis article.has-warning,
.stats-data-card.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}

.reports-kpis span,
.stats-kpis span,
.stats-rice-summary span,
.reports-side-panel span{
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:950;
  text-transform:uppercase;
}

.reports-kpis strong,
.stats-kpis strong,
.stats-rice-summary strong,
.reports-side-panel strong{
  color:#111827;
  font-size:1.32rem;
  font-weight:950;
  line-height:1.1;
}

.reports-workspace{
  display:grid;
  grid-template-columns:minmax(520px, 1fr) minmax(260px, .42fr);
  gap:10px;
  align-items:stretch;
  margin-bottom:10px;
}

.reports-form-card,
.reports-side-panel,
.reports-table-card,
.stats-filter-panel,
.stats-chart-card,
.stats-data-card{
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.reports-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding-bottom:9px;
  margin-bottom:9px;
  border-bottom:1px solid var(--app-border);
}

.reports-card-head h3{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  color:#132033;
  font-size:1.02rem;
  font-weight:950;
}

.reports-card-head p{
  margin:2px 0 0;
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:800;
}

.reports-form-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(150px, 1fr));
  gap:10px;
  align-items:end;
}

.reports-form-grid .btn{
  width:100%;
  min-height:38px;
}

.reports-form-grid label,
.stats-filter-grid label{
  display:grid;
  gap:4px;
}

.reports-form-grid label span,
.stats-filter-grid label span{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:950;
  text-transform:uppercase;
}

.reports-side-panel{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.reports-side-panel div{
  padding:9px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}

.reports-side-panel span,
.reports-side-panel strong{
  display:block;
}

.reports-table{
  margin-bottom:0;
}

.reports-table thead th,
.stats-data-card thead th{
  color:var(--app-muted);
  font-size:.73rem;
  font-weight:950;
  text-transform:uppercase;
  white-space:nowrap;
}

.reports-table tbody td,
.stats-data-card tbody td{
  color:#172033;
  font-size:.86rem;
  font-weight:750;
}

.stats-filter-panel{
  margin-bottom:10px;
}

.stats-filter-grid{
  display:grid;
  grid-template-columns:minmax(150px, .8fr) minmax(150px, .8fr) minmax(160px, .8fr) minmax(160px, .8fr) minmax(120px, auto);
  gap:8px;
  align-items:end;
}

.stats-block-selector{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:9px;
}

.stats-block-selector label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:5px 9px;
  border:1px solid var(--app-border);
  border-radius:999px;
  background:#f8fafc;
  color:#334155;
  font-size:.78rem;
  font-weight:900;
  cursor:pointer;
}

.stats-block-selector input{
  width:14px;
  height:14px;
  accent-color:var(--app-primary);
}

.stats-chart-card,
.stats-grid-2,
.stats-grid-3{
  margin-bottom:10px;
}

.stats-grid-2,
.stats-grid-3{
  display:grid;
  gap:10px;
  align-items:start;
}

.stats-grid-2{
  grid-template-columns:repeat(2, minmax(320px, 1fr));
}

.stats-grid-3{
  grid-template-columns:repeat(3, minmax(260px, 1fr));
}

.stats-chart-wrap{
  position:relative;
  width:100%;
  height:260px;
}

.stats-chart-wrap.is-small{
  height:230px;
  margin-bottom:8px;
}

.stats-chart-wrap canvas{
  width:100% !important;
  height:100% !important;
}

.stats-pill-list{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.stats-pill-list span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border:1px solid #fed7aa;
  border-radius:999px;
  background:#fff;
  color:#92400e;
  font-size:.82rem;
  font-weight:900;
}

.stats-pill-list b{
  display:inline-grid;
  place-items:center;
  min-width:24px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  color:#fff;
  background:#f97316;
}

.maintenance-page{
  max-width:1500px;
}

.maintenance-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.maintenance-kpis{
  display:grid;
  grid-template-columns:repeat(6, minmax(135px, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.maintenance-kpis article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:58px;
  padding:10px 12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.maintenance-kpis article.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}

.maintenance-kpis span{
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:950;
  text-transform:uppercase;
}

.maintenance-kpis strong{
  color:#111827;
  font-size:1.25rem;
  font-weight:950;
  line-height:1.1;
}

.maintenance-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:start;
  margin-bottom:10px;
}

.maintenance-panel,
.maintenance-action-card{
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 23, 42, .05);
}

.maintenance-check-list,
.maintenance-schema-list,
.maintenance-file-list,
.maintenance-deps-list{
  display:grid;
  gap:7px;
}

.maintenance-check,
.maintenance-schema-row,
.maintenance-file-list div,
.maintenance-deps-list div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 9px;
  border:1px solid var(--app-border);
  border-radius:10px;
  background:#f8fafc;
}

.maintenance-check{
  justify-content:flex-start;
}

.maintenance-check i{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:9px;
  color:#fff;
  background:var(--app-green);
  flex:0 0 auto;
}

.maintenance-check.is-warning i{
  background:var(--app-amber);
}

.maintenance-check.is-danger i{
  background:var(--app-red);
}

.maintenance-check strong,
.maintenance-schema-row strong,
.maintenance-file-list strong,
.maintenance-deps-list strong,
.maintenance-action-card h3{
  display:block;
  margin:0;
  color:#132033;
  font-size:.92rem;
  font-weight:950;
}

.maintenance-check span,
.maintenance-schema-row span,
.maintenance-file-list span,
.maintenance-deps-list span,
.maintenance-action-card p{
  display:block;
  margin:2px 0 0;
  color:var(--app-muted);
  font-size:.78rem;
  font-weight:800;
}

.maintenance-schema-row em{
  flex:0 0 auto;
  padding:4px 8px;
  border-radius:999px;
  color:#166534;
  background:#dcfce7;
  font-style:normal;
  font-size:.72rem;
  font-weight:950;
}

.maintenance-schema-row.has-warning,
.maintenance-file-list div.has-warning,
.maintenance-deps-list div.has-warning{
  border-color:#fed7aa;
  background:#fff7ed;
}

.maintenance-schema-row.has-warning em{
  color:#92400e;
  background:#fef3c7;
}

.maintenance-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  align-items:end;
}

.maintenance-form label{
  display:grid;
  gap:4px;
}

.maintenance-form label span{
  color:var(--app-muted);
  font-size:.75rem;
  font-weight:950;
  text-transform:uppercase;
}

.maintenance-form button{
  min-height:42px;
}

.maintenance-action-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(210px, 1fr));
  gap:10px;
  margin-bottom:10px;
}

.maintenance-action-card{
  display:grid;
  grid-template-columns:44px minmax(0, 1fr);
  gap:10px;
  align-items:start;
}

.maintenance-action-card > i{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(135deg, var(--app-primary), var(--app-blue));
  font-size:1.2rem;
}

.maintenance-action-card form{
  grid-column:1 / -1;
}

.maintenance-action-card button{
  width:100%;
}

.maintenance-action-card.is-important{
  border-color:#bfdbfe;
  background:#eff6ff;
}

.maintenance-action-card.is-danger{
  border-color:#fecaca;
  background:#fff5f5;
}

.maintenance-action-card.is-danger > i{
  background:linear-gradient(135deg, var(--app-red), var(--app-coral));
}

.maintenance-checklist{
  margin:0;
  padding-left:20px;
}

.maintenance-checklist li{
  margin-bottom:6px;
  color:#334155;
  font-size:.86rem;
  font-weight:850;
}

.maintenance-backup-list{
  display:grid;
  grid-template-columns:repeat(4, minmax(180px, 1fr));
  gap:8px;
}

.maintenance-backup-list a{
  display:block;
  padding:9px;
  border:1px solid var(--app-border);
  border-radius:10px;
  color:inherit;
  background:#f8fafc;
  text-decoration:none;
}

.maintenance-backup-list strong,
.maintenance-backup-list span{
  display:block;
}

.maintenance-backup-list strong{
  color:#132033;
  font-size:.84rem;
  font-weight:950;
}

.maintenance-backup-list span{
  margin-top:3px;
  color:var(--app-muted);
  font-size:.74rem;
  font-weight:800;
}

@media (max-width: 1280px){
  .app-layout{
    grid-template-columns:218px minmax(0, 1fr);
  }

  .reservation-entry-grid{
    grid-template-columns:minmax(340px, 1fr) minmax(340px, 1fr);
  }

  .reservation-entry-grid .is-diners{
    grid-column:1 / -1;
  }

  .calendar-compact-grid{
    grid-template-columns:1fr;
  }

  .calendar-notes-card{
    max-width:none;
  }

  .calendar-filter-form{
    width:100%;
  }

  .calendar-filter-row-main,
  .calendar-filter-row-secondary{
    grid-template-columns:repeat(3, minmax(150px, 1fr));
  }

  .pending-kpis{
    grid-template-columns:repeat(2, minmax(150px, 1fr));
  }

  .pending-filters{
    grid-template-columns:repeat(2, minmax(170px, 1fr));
  }

  .pending-row{
    grid-template-columns:104px minmax(220px, 1fr) 70px;
  }

  .pending-actions{
    grid-column:2 / -1;
  }

  .search-filter-grid{
    grid-template-columns:repeat(3, minmax(160px, 1fr));
  }

  .search-kpis{
    grid-template-columns:repeat(2, minmax(150px, 1fr));
  }

  .search-edit-grid{
    grid-template-columns:1fr;
  }

  .search-result-row{
    grid-template-columns:104px minmax(220px, 1fr) 64px minmax(112px, auto);
  }

  .search-result-actions{
    grid-column:2 / -1;
  }

  .security-grid{
    grid-template-columns:1fr;
  }

  .security-dashboard-grid{
    grid-template-columns:1fr;
  }

  .security-kpis{
    grid-template-columns:repeat(3, minmax(140px, 1fr));
  }

  .security-backup-list{
    grid-template-columns:repeat(2, minmax(160px, 1fr));
  }

  .security-users-grid{
    grid-template-columns:repeat(2, minmax(160px, 1fr));
  }

  .service-zone-grid{
    grid-template-columns:repeat(2, minmax(170px, 1fr));
  }

  .room-row{
    grid-template-columns:58px 70px minmax(150px, 1fr) 64px 90px;
  }

  .room-row small.is-alert{
    grid-column:3 / -1;
  }

  .table-map-layout{
    grid-template-columns:1fr;
  }

  .print-mode-grid{
    grid-template-columns:repeat(3, minmax(180px, 1fr));
  }

  .print-summary-grid{
    grid-template-columns:repeat(4, minmax(120px, 1fr));
  }

  .kitchen-preview-grid,
  .kitchen-menu-list,
  .rice-workspace,
  .rice-secondary-grid,
  .template-helper,
  .communication-quick,
  .communication-kpis,
  .communication-filters,
  .role-options-grid,
  .options-admin-grid,
  .options-secondary-grid,
  .labels-config-grid{
    grid-template-columns:1fr;
  }

  .communication-row{
    grid-template-columns:28px minmax(180px, .75fr) minmax(260px, 1.25fr);
  }

  .communication-actions{
    grid-column:2 / -1;
    flex-direction:row;
    flex-wrap:wrap;
  }

  .reports-kpis{
    grid-template-columns:repeat(3, minmax(150px, 1fr));
  }

  .reports-form-grid{
    grid-template-columns:repeat(3, minmax(150px, 1fr));
  }

  .stats-grid-3{
    grid-template-columns:1fr 1fr;
  }

  .maintenance-kpis{
    grid-template-columns:repeat(3, minmax(150px, 1fr));
  }

  .maintenance-action-grid{
    grid-template-columns:1fr 1fr;
  }

  .maintenance-backup-list{
    grid-template-columns:repeat(2, minmax(180px, 1fr));
  }

  .layout-editor-bar{
    align-items:stretch;
    flex-direction:column;
  }

  .layout-editor-bar .btn{
    width:100%;
  }

  .table-detail-panel{
    position:relative;
    top:auto;
  }

  .clients-workspace{
    grid-template-columns:1fr;
  }
}

@media (max-width: 920px){
  .clients-toolbar{
    grid-template-columns:1fr;
  }

  .compact-page-head,
  .compact-save-bar{
    align-items:stretch;
    flex-direction:column;
  }

  .compact-toolbar,
  .compact-toolbar .form-control,
  .compact-toolbar .form-select,
  .compact-toolbar .btn{
    width:100%;
  }

  .calendar-summary,
  .reservation-entry-grid{
    grid-template-columns:1fr;
  }

  .calendar-filter-form{
    width:100%;
  }

  .calendar-filter-row-main,
  .calendar-filter-row-secondary{
    grid-template-columns:1fr 1fr;
  }

  .pending-head-actions,
  .pending-head-actions .btn{
    width:100%;
  }

  .pending-row{
    grid-template-columns:1fr;
  }

  .pending-pax{
    text-align:left;
  }

  .pending-actions{
    grid-column:auto;
    justify-content:flex-start;
  }

  .search-head-actions,
  .search-head-actions .btn{
    width:100%;
  }

  .search-filter-grid{
    grid-template-columns:1fr 1fr;
  }

  .search-result-row{
    grid-template-columns:1fr;
  }

  .search-result-pax{
    text-align:left;
  }

  .search-result-actions{
    grid-column:auto;
    justify-content:flex-start;
  }

  .security-head-actions,
  .security-head-actions .btn{
    width:100%;
  }

  .security-trash-row{
    grid-template-columns:1fr;
  }

  .security-trash-actions{
    justify-content:flex-start;
  }

  .security-backup-grid{
    grid-template-columns:1fr;
  }

  .security-backup-action{
    justify-content:flex-start;
  }

  .service-hour-row{
    grid-template-columns:1fr;
  }

  .service-hour-label{
    display:flex;
    align-items:center;
    gap:8px;
  }

  .service-zone-grid{
    grid-template-columns:1fr;
  }

  .room-row{
    grid-template-columns:56px 62px minmax(120px, 1fr) 58px;
  }

  .room-row small{
    display:none;
  }

  .table-map-filters{
    grid-template-columns:1fr 1fr;
  }

  .table-map-kpis{
    grid-template-columns:1fr 1fr;
  }

  .print-filter-bar{
    grid-template-columns:1fr 1fr;
  }

  .print-summary-grid{
    grid-template-columns:1fr 1fr;
  }

  .print-mode-grid{
    grid-template-columns:repeat(2, minmax(160px, 1fr));
  }

  .reservation-entry-grid .is-diners{
    grid-column:auto;
  }

  .booking-row{
    grid-template-columns:54px minmax(0, 1fr);
  }

  .booking-row-tags,
  .booking-row-note{
    grid-column:2;
    justify-content:flex-start;
  }

  .reports-workspace,
  .stats-grid-2,
  .stats-grid-3{
    grid-template-columns:1fr;
  }

  .stats-filter-grid{
    grid-template-columns:1fr 1fr;
  }

  .stats-filter-grid .btn{
    grid-column:1 / -1;
  }

  .stats-kpis,
  .stats-rice-summary{
    grid-template-columns:1fr 1fr;
  }

  .maintenance-head-actions,
  .maintenance-head-actions .btn{
    width:100%;
  }

  .maintenance-grid,
  .maintenance-action-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 560px){
  .client-form-grid,
  .client-metrics{
    grid-template-columns:1fr;
  }

  .calendar-filter-form{
    grid-template-columns:1fr;
  }

  .calendar-view-tabs{
    width:100%;
    justify-content:space-between;
  }

  .table-map-filters,
  .table-map-kpis{
    grid-template-columns:1fr;
  }

  .print-mode-grid,
  .print-filter-bar,
  .print-summary-grid,
  .communication-row,
  .options-form-grid,
  .reports-kpis,
  .reports-form-grid,
  .reports-side-panel,
  .stats-filter-grid,
  .stats-kpis,
  .stats-rice-summary,
  .maintenance-kpis,
  .maintenance-form,
  .maintenance-backup-list,
  .search-filter-grid,
  .search-kpis,
  .security-kpis,
  .security-dashboard-grid,
  .security-backup-list,
  .security-users-grid,
  .rice-config-row{
    grid-template-columns:1fr;
  }

  .security-confirm-form,
  .security-confirm-form .form-control,
  .security-confirm-form .btn{
    width:100%;
  }

  .search-edit-actions,
  .search-edit-actions .btn{
    width:100%;
  }

  .communication-row > input[type="checkbox"]{
    margin-top:0;
  }

  .communication-actions{
    grid-column:auto;
    flex-direction:column;
  }

  .stats-kpis article{
    grid-template-columns:42px minmax(0, 1fr);
  }

  .stats-kpis strong{
    grid-column:2;
  }

  .options-form-grid .span-2{
    grid-column:1;
  }

  .print-zone-preview > header{
    align-items:flex-start;
    flex-direction:column;
  }

  .table-grid{
    grid-template-columns:repeat(auto-fill, minmax(116px, 1fr));
  }

  .table-detail-content dl{
    grid-template-columns:1fr;
  }

  .compact-page-head{
    padding:9px;
  }

  .booking-row{
    grid-template-columns:1fr;
    padding:8px;
  }

  .booking-row-time{
    width:max-content;
    min-width:54px;
  }

  .booking-row-tags,
  .booking-row-note{
    grid-column:auto;
  }
}
