*{box-sizing:border-box}body{margin:0;background:var(--page-bg,#f6f3ee);color:var(--text,#2d2926);font-family:var(--body-font,Inter,Arial,sans-serif);font-weight:var(--body-weight,400)}h1,h2,h3,h4{font-family:var(--heading-font,var(--heading,Georgia,serif));font-weight:var(--heading-weight,700);font-style:var(--heading-style,normal)}.container{max-width:1180px;margin:auto;padding:20px}.brand-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;flex:1}.header-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}.header-nav{margin:0;justify-content:flex-end;flex:0 1 auto;flex-wrap:nowrap;gap:7px}.header-nav .btn{padding:8px 11px;font-size:13px;white-space:nowrap}.header-nav .btn.secondary{border-radius:calc(var(--radius) - 5px)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);font-weight:800;font-size:22px;min-width:300px;max-width:42%}.brand-logo{width:96px;height:96px;display:grid;place-items:center;flex:0 0 96px}.brand-logo img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius);display:block}.brand-name{line-height:1.12;overflow-wrap:anywhere}.header-actions{display:flex;align-items:center;gap:8px}.user-chip{font-size:13px;color:var(--muted);background:var(--soft);padding:7px 10px;border-radius:999px}.install-btn{border:1px solid var(--primary);background:var(--surface);color:var(--primary);padding:8px 11px;border-radius:999px;font-weight:700;cursor:pointer}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.topbar h1{margin:0 0 5px}.topbar p{margin:0;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.room-card{min-height:110px}.room-name{font-weight:700}.status{margin-top:25px;display:inline-block;padding:6px 10px;border-radius:999px;font-size:13px}.free{background:#e4f3e8;color:#23633a}.busy{background:#f9e2e2;color:#8a2c2c}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.btn{display:inline-block;border:0;border-radius:calc(var(--radius) - 5px);padding:10px 15px;background:var(--primary);color:#fff;text-decoration:none;cursor:pointer;font-weight:700}.btn:hover{filter:brightness(.96)}.btn.secondary{background:var(--secondary)}.btn.danger{background:#a34747}.btn.small{padding:7px 9px;font-size:12px}.panel{margin:18px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:13px}td{font-size:14px}.tag{color:white;padding:4px 8px;border-radius:999px;font-size:12px;display:inline-block}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}label small{font-weight:400;color:var(--muted)}.full{grid-column:1/-1}input,select,textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:calc(var(--radius) - 5px);background:var(--surface);color:var(--text);font:inherit}textarea{min-height:80px}.success,.error{padding:12px 14px;border-radius:calc(var(--radius) - 4px);margin:12px 0}.success{background:#e4f3e8;color:#23633a}.error{background:#f9e2e2;color:#8a2c2c}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%);background:var(--surface);padding:30px;border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;border:1px solid var(--border)}.login-card h1{margin:0}.login-card small{color:var(--muted)}.login-logo{width:84px;height:84px;object-fit:contain;align-self:center;border-radius:var(--radius)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);margin-top:15px}.cal-head{background:var(--surface-alt);padding:9px;text-align:center;font-weight:700}.cal-cell{background:var(--surface);min-height:100px;padding:7px}.cal-cell.empty{background:var(--surface-alt)}.event{margin-top:8px;padding:5px 6px;border-left:5px solid;border-radius:5px;background:var(--surface-alt);font-size:12px}.inline-form{display:flex;gap:10px;flex-wrap:wrap}.inline-form>*{width:auto}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.list-row{padding:8px 0;border-bottom:1px solid var(--border)}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:7px}.guest-box{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin:10px 0;background:var(--surface-alt)}.guest-detail{padding:12px 0;border-bottom:1px solid var(--border)}.guest-detail h3{margin-top:0}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.detail-grid>div{display:flex;flex-direction:column;gap:5px}.actions-cell{display:flex;gap:6px;flex-wrap:wrap}.actions-cell form{margin:0}.calendar-filter{align-items:center}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0}.calendar-v2{background:var(--border);border-radius:var(--radius);overflow:hidden}.calendar-v2 .cal-cell{position:relative;min-height:125px}.cal-day-number{font-weight:700;margin-bottom:5px}.calendar-event{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--text);background:var(--surface-alt);border-left:5px solid var(--event-color);border-radius:6px;padding:6px;margin-top:5px;font-size:12px;overflow:hidden}.calendar-event:hover{filter:brightness(.97)}.calendar-event small{color:var(--muted)}.calendar-event.full{min-height:34px}.turnover-events{display:grid;grid-template-columns:1fr 1fr;gap:5px}.calendar-event.half{min-height:70px;margin-top:0;padding:5px}.calendar-event.outgoing{border-left-width:4px;background:linear-gradient(90deg,var(--surface-alt),var(--surface))}.calendar-event.incoming{border-left-width:4px;background:linear-gradient(90deg,var(--soft),var(--surface))}.event-kind{font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--muted)}.calendar-free{display:block;color:var(--muted);font-size:12px;margin-top:10px}.calendar-help{color:var(--muted);font-size:13px;margin:14px 0 0}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.muted{color:var(--muted);margin-top:4px}.today-badge{background:var(--surface-alt);padding:8px 12px;border-radius:999px;font-size:12px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:16px}.room-dashboard{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));min-height:320px;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--body-font,Arial,sans-serif)}.room-dashboard.is-busy{border-left:5px solid #a34747}.room-dashboard.is-free{border-left:5px solid #4c8069}.room-dashboard-head{grid-row:1;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:0 16px;border-bottom:1px solid var(--border);font-family:var(--body-font,Arial,sans-serif)}.room-dashboard-head strong{font-family:var(--body-font,Arial,sans-serif);font-size:16px;font-weight:800}.dashboard-main{display:flex;flex-direction:column;gap:5px;margin:16px 0}.dashboard-main span{font-size:13px;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.stat-card{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.stat-card span{display:block;color:var(--muted);font-size:13px}.stat-card strong{display:block;font-size:26px;margin-top:7px}.total-row td{background:var(--surface-alt)}.accounting-note{font-size:13px;color:var(--muted);margin-top:16px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.permission-toggle{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:calc(var(--radius) - 4px);background:var(--surface-alt);cursor:pointer}.permission-toggle input{position:absolute;opacity:0;pointer-events:none}.permission-switch{grid-row:1/3;width:42px;height:24px;border-radius:999px;background:#b9b1aa;position:relative;transition:.2s}.permission-knob{position:absolute;width:18px;height:18px;top:3px;left:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.permission-toggle input:checked+.permission-switch{background:var(--primary)}.permission-toggle input:checked+.permission-switch .permission-knob{transform:translateX(18px)}.permission-label{font-weight:700}.permission-toggle:has(input:checked){border-color:var(--accent);background:var(--soft)}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.theme-option{position:relative;border:1px solid var(--border);border-radius:var(--radius);padding:14px;cursor:pointer;background:var(--surface);transition:.2s}.theme-option input{position:absolute;opacity:0;pointer-events:none}.theme-option:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px var(--accent)}.theme-option strong,.theme-option small{display:block}.theme-option small{color:var(--muted);font-weight:400;margin-top:4px}.theme-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;align-items:center;padding:10px;border-radius:calc(var(--radius) - 4px);margin-bottom:10px;background:var(--surface-alt)}.theme-preview i{height:38px;border-radius:6px}.theme-preview b{position:absolute;right:22px;bottom:58px;font-size:18px}.theme-natural .theme-preview i:nth-child(1){background:#2f5d50}.theme-natural .theme-preview i:nth-child(2){background:#81766d}.theme-natural .theme-preview i:nth-child(3){background:#b7cfc5}.theme-costero .theme-preview i:nth-child(1){background:#21677b}.theme-costero .theme-preview i:nth-child(2){background:#5d7d88}.theme-costero .theme-preview i:nth-child(3){background:#a9d5df}.theme-boutique .theme-preview i:nth-child(1){background:#8a4f3d}.theme-boutique .theme-preview i:nth-child(2){background:#77645c}.theme-boutique .theme-preview i:nth-child(3){background:#d9ad9c}.font-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.font-option{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:calc(var(--radius) - 4px);background:var(--surface-alt);cursor:pointer;min-height:110px}.font-option input{position:absolute;opacity:0;pointer-events:none}.font-option:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px var(--accent);background:var(--soft)}.font-preview{font-size:32px;line-height:1;margin-bottom:5px}.font-option strong{font-size:13px}.font-option small{font-size:10px;color:var(--muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.branding-current{display:flex;align-items:center;gap:12px;margin-top:15px;padding-top:15px;border-top:1px solid var(--border)}.branding-current img{width:64px;height:64px;object-fit:contain;border-radius:var(--radius)}@media(max-width:900px){.brand-bar{gap:14px}.brand{min-width:240px;max-width:46%}.header-right{gap:7px}.header-nav{gap:5px}.header-nav .btn{padding:7px 9px;font-size:12px}}@media(max-width:700px){.container{padding:12px}.topbar{align-items:flex-start}.form-grid,.detail-grid{grid-template-columns:1fr}.calendar{font-size:12px}.cal-cell{min-height:75px;padding:4px}.cal-head{padding:6px}.actions .btn{flex:1;text-align:center}.calendar-nav{flex-wrap:wrap}.calendar-nav strong{order:-1;width:100%;text-align:center}.calendar-v2 .cal-cell{min-height:105px}.turnover-events{grid-template-columns:1fr}.calendar-event.half{min-height:0}.section-title{flex-direction:column}.stats-grid{grid-template-columns:1fr}.stat-card strong{font-size:22px}.permission-grid,.theme-grid{grid-template-columns:1fr}.font-grid{grid-template-columns:repeat(2,1fr)}.brand{font-size:18px;min-width:0;max-width:48%;flex:0 0 auto}.brand-logo{width:72px;height:72px;flex-basis:72px}.user-chip{display:none}.header-right{min-width:0;overflow:hidden}.header-nav{overflow-x:auto;overflow-y:hidden;justify-content:flex-start;flex:1;min-width:0;scrollbar-width:none;padding-bottom:2px}.header-nav::-webkit-scrollbar{display:none}.header-nav .btn{flex:0 0 auto;padding:7px 8px;font-size:11px}.install-btn{font-size:11px;padding:7px 8px;flex:0 0 auto}}

/* Bloque 14: header desktop + menu hamburguesa móvil */
.header-right{flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:8px}
.header-meta{justify-content:flex-end;width:100%}
.header-nav{width:auto}
.menu-toggle{display:none;border:1px solid var(--border);background:var(--surface);color:var(--text);width:42px;height:38px;border-radius:calc(var(--radius) - 4px);padding:8px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.menu-toggle span{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:.2s}
@media(max-width:700px){
  .brand-bar{align-items:center;gap:12px;position:relative}
  .brand{max-width:68%;flex:1 1 auto}
  .header-right{flex:0 0 auto;width:auto;min-width:0;align-items:flex-end;gap:7px}
  .header-meta{width:auto;gap:7px}
  .user-chip{display:none}
  .menu-toggle{display:flex}
  .header-nav{display:none;position:absolute;top:calc(100% + 4px);right:0;z-index:30;width:min(280px,calc(100vw - 24px));padding:10px;margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:7px}
  .header-nav.is-open{display:flex}
  .header-nav .btn{width:100%;text-align:left;padding:10px 12px;font-size:13px}
  .install-btn{font-size:11px;padding:7px 8px}
}

/* Bloque 16: estado de hoy con salidas y entradas */
.dashboard-flow{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.dashboard-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}
.dashboard-label{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--muted)}
.dashboard-info{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}
.dashboard-info strong{min-width:0;overflow-wrap:anywhere}
.dashboard-nobody{color:var(--muted);font-weight:600}
.dashboard-detail{flex:0 0 auto;white-space:nowrap}
.dashboard-row-current{grid-template-columns:110px minmax(0,1fr)}
.dashboard-row-current .dashboard-label{line-height:1.15}
@media(max-width:700px){.dashboard-row-current{grid-template-columns:92px minmax(0,1fr)}}
@media(max-width:700px){
  .dashboard-grid{grid-template-columns:1fr;gap:12px}
  .room-dashboard{padding:14px}
  .dashboard-row{grid-template-columns:54px minmax(0,1fr);padding:9px 0}
  .dashboard-info{gap:6px}
  .dashboard-detail{padding:6px 8px;font-size:11px}
}

.dashboard-info{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dashboard-origin{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;color:var(--text);background:var(--surface);border:1px solid var(--origin-color);box-shadow:inset 3px 0 0 var(--origin-color)}
@media (max-width:700px){.dashboard-origin{font-size:10px;padding:3px 7px}.dashboard-info{gap:5px}}

/* Bloque 18 v5: origen visible como globito */
.dashboard-origin{display:inline-flex!important;align-items:center;justify-content:center;padding:4px 9px!important;border-radius:999px!important;font-size:11px!important;font-weight:800!important;color:var(--text)!important;background:var(--surface)!important;border:2px solid var(--origin-color)!important;box-shadow:inset 4px 0 0 var(--origin-color)!important;white-space:nowrap!important}


/* Bloque 18: calendario responsive y detalle */
.calendar-filter{display:grid;grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(120px,170px);gap:10px;align-items:end}
.calendar-filter select{width:100%}
.detail-topbar h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.detail-origin-label{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:2px solid var(--origin-color);box-shadow:inset 4px 0 0 var(--origin-color);font-size:.58em;line-height:1;font-family:var(--body-font,Inter,Arial,sans-serif);font-weight:800}
@media(max-width:700px){
  .calendar-filter{grid-template-columns:1fr 1fr 1fr;gap:7px}
  .calendar-filter select{font-size:12px;padding:9px 7px}
  .calendar-v2{grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;width:100%;overflow:hidden}
  .calendar-v2 .cal-head{min-width:0;padding:7px 2px;font-size:11px;white-space:nowrap}
  .calendar-v2 .cal-cell{min-width:0;min-height:92px;padding:4px;overflow:hidden}
  .calendar-v2 .cal-day-number{font-size:11px}
  .calendar-v2 .calendar-event{min-width:0;font-size:10px;padding:5px 3px;border-left-width:3px}
  .calendar-v2 .calendar-event span,.calendar-v2 .calendar-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .calendar-v2 .turnover-events{grid-template-columns:1fr;gap:3px}
  .calendar-v2 .calendar-event.half{min-height:44px}
  .calendar-v2 .event-kind{font-size:8px}
  .calendar-help{font-size:12px}
}
@media(max-width:420px){
  .calendar-filter{grid-template-columns:1fr 1fr 1fr}
  .calendar-filter select{font-size:11px}
  .calendar-v2 .cal-head{font-size:10px}
  .calendar-v2 .cal-cell{min-height:82px;padding:3px}
  .calendar-v2 .calendar-event{font-size:9px;padding:4px 2px}
}


/* Bloque 19: Estado de hoy unificado en laptop y móvil.
   Conserva el diseño aprobado en móvil y evita que huésped, origen y Detalle se amontonen. */
.room-dashboard{
  overflow:hidden;
}
.room-dashboard-head{
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.dashboard-flow{
  gap:0;
  margin-top:0;
}
.dashboard-row{
  grid-template-columns:62px minmax(0,1fr);
  gap:12px;
  min-height:58px;
}
.dashboard-row-current{
  grid-template-columns:110px minmax(0,1fr);
}
.dashboard-info{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:9px;
  min-width:0;
  flex-wrap:nowrap!important;
}
.dashboard-info strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-origin{
  flex:0 0 auto;
}
.dashboard-detail{
  justify-self:end;
}
@media(max-width:700px){
  .dashboard-row{
    grid-template-columns:54px minmax(0,1fr);
    gap:9px;
    min-height:58px;
  }
  .dashboard-row-current{
    grid-template-columns:92px minmax(0,1fr);
  }
  .dashboard-info{
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:6px;
  }
  .dashboard-origin{
    font-size:10px!important;
    padding:4px 7px!important;
  }
}
@media(max-width:430px){
  .dashboard-row-current{
    grid-template-columns:88px minmax(0,1fr);
  }
  .dashboard-info{
    gap:5px;
  }
  .dashboard-info strong{
    font-size:13px;
  }
  .dashboard-origin{
    font-size:9px!important;
    padding:3px 6px!important;
  }
  .dashboard-detail{
    padding:6px 7px!important;
    font-size:10px!important;
  }
}

/* Bloque 19: rendimiento por habitación en Contabilidad. */
.room-performance-head{
  margin-top:28px;
  margin-bottom:12px;
}
.room-performance-head h2{
  margin:0 0 4px;
}
.room-performance-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;
}
.room-performance-card{
  background:var(--surface-alt);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:15px;
}
.room-performance-card h3{
  margin:0 0 12px;
}
.room-performance-card>div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-top:1px solid var(--border);
}
.room-performance-card span{
  color:var(--muted);
  font-size:13px;
}
.room-performance-card strong{
  font-size:15px;
}
.month-room-head{
  margin-top:32px;
}
@media(max-width:700px){
  .room-performance-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .room-performance-card{
    padding:12px;
  }
  .room-performance-card h3{
    font-size:16px;
  }
  .room-performance-card>div{
    display:block;
  }
  .room-performance-card span,
  .room-performance-card strong{
    display:block;
  }
  .room-performance-card strong{
    margin-top:2px;
  }
}
@media(max-width:430px){
  .room-performance-grid{
    grid-template-columns:1fr;
  }
}

/* Bloque 20.1: selector de idioma en acceso. */
.login-language{position:fixed;top:18px;right:18px;display:flex;gap:5px;z-index:20}.login-language .lang-btn{display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:5px 8px;border-radius:5px;font-size:12px}@media(max-width:700px){.login-language{top:10px;right:10px}}


/* BLOQUE 26 — Estado de hoy: cinco filas iguales y simétricas. */
.dashboard-grid{align-items:stretch}
.room-dashboard{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));padding:0;min-height:310px;background:var(--surface);font-family:var(--body-font,Arial,sans-serif)}
.room-dashboard-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--border);min-height:0}
.room-dashboard-head strong{font-family:var(--body-font,Arial,sans-serif);font-size:18px;font-weight:800;color:var(--text)}
.room-dashboard-head .status{margin:0;padding:7px 12px;font-family:var(--body-font,Arial,sans-serif);font-weight:700}
.dashboard-five-lines{display:contents}
.dashboard-line{display:flex;align-items:center;min-width:0;padding:0 16px;border-bottom:1px solid var(--border);font-family:var(--body-font,Arial,sans-serif);font-size:14px;line-height:1.2;min-height:0}
.dashboard-line:last-child{border-bottom:0}
.dashboard-line-state,.dashboard-line-event{justify-content:space-between;gap:8px}
.dashboard-line-name{justify-content:flex-start}
.dashboard-line-name strong{font-family:var(--body-font,Arial,sans-serif);font-size:15px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span{font-family:var(--body-font,Arial,sans-serif);font-weight:800;font-size:13px;color:var(--text);letter-spacing:.01em}
.dashboard-line-actions{justify-content:space-between;gap:10px}
.dashboard-origin{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:6px 10px;border-radius:999px;background:var(--origin-color,var(--primary));color:#fff;font-family:var(--body-font,Arial,sans-serif);font-size:11px;font-weight:800;line-height:1}
.dashboard-detail{margin-left:auto;flex:0 0 auto;background:var(--surface);color:var(--primary);border:1px solid var(--primary);padding:6px 10px!important;font-family:var(--body-font,Arial,sans-serif);font-weight:800}
.dashboard-nobody{margin-left:auto;color:var(--muted);font-family:var(--body-font,Arial,sans-serif);font-size:13px}
.room-dashboard.is-busy{border-left:5px solid #a34747}.room-dashboard.is-free{border-left:5px solid #4c8069}


/* Final design fixes: five equal rows, real palette previews, single translated file control. */
.theme-azules .theme-preview i:nth-child(1){background:#1f6fb2!important}.theme-azules .theme-preview i:nth-child(2){background:#5f7f98!important}.theme-azules .theme-preview i:nth-child(3){background:#a9cde8!important}
.file-upload{display:flex;align-items:center;gap:12px;width:100%;min-width:0}.file-upload-control{position:relative!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;width:auto!important;height:auto!important;padding:0!important;margin:0!important;cursor:pointer!important}.file-upload-control span{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:9px 13px!important;border-radius:8px!important;background:var(--secondary)!important;color:#fff!important;white-space:nowrap!important;font-weight:700!important}.file-upload-control input[type=file]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer!important}.file-upload-name{min-width:0;margin-left:2px;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Custom file controls — hides the browser-native duplicate button. */
.file-upload{display:flex;align-items:center;gap:10px;width:100%;min-width:0}
.file-upload-control{display:inline-flex!important;position:relative;flex:0 0 auto!important;flex-direction:row!important;align-items:center;justify-content:center;gap:0;padding:0!important;margin:0!important;font-weight:700!important;font-size:13px!important;cursor:pointer!important}
.file-upload-control span{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:8px;background:var(--secondary);color:#fff;white-space:nowrap}
.file-upload-control input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;pointer-events:auto}
.file-upload-name{min-width:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* New palette previews */
.theme-azules .theme-preview i:nth-child(1){background:#1f6fb2}.theme-azules .theme-preview i:nth-child(2){background:#5f7f98}.theme-azules .theme-preview i:nth-child(3){background:#a9cde8}
.theme-option{overflow:hidden}
@media(max-width:700px){
  .room-dashboard{min-height:300px}
  .room-dashboard-head{padding:0 12px}.room-dashboard-head strong{font-size:16px}
  .dashboard-line{padding:0 12px;font-size:13px}.dashboard-line-name strong{font-size:14px}.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span{font-size:12px}
  .dashboard-origin{font-size:10px;padding:5px 8px}.dashboard-detail{font-size:11px;padding:5px 8px!important}
  .file-upload{gap:8px}.file-upload-name{font-size:12px}
}


/* BLOQUE 27 — correcciones finales de diseño e idioma. */
.room-dashboard{display:grid!important;grid-template-rows:repeat(5,minmax(0,1fr))!important;min-height:320px!important;padding:0!important;overflow:hidden!important;background:var(--surface)!important;font-family:var(--body-font,Arial,sans-serif)!important}
.room-dashboard-head{grid-row:1!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:0 16px!important;border-bottom:1px solid var(--border)!important;min-height:0!important;font-family:var(--body-font,Arial,sans-serif)!important}
.room-dashboard-head strong{font-family:var(--body-font,Arial,sans-serif)!important;font-size:16px!important;font-weight:800!important}
.room-dashboard-head .status{margin:0!important;font-family:var(--body-font,Arial,sans-serif)!important;font-weight:700!important}
.dashboard-five-lines{display:contents!important}
.dashboard-line{display:flex!important;align-items:center!important;min-width:0!important;min-height:0!important;padding:0 16px!important;border-bottom:1px solid var(--border)!important;font-family:var(--body-font,Arial,sans-serif)!important;font-size:14px!important;line-height:1.2!important}
.dashboard-line:last-child{border-bottom:0!important}
.dashboard-line-name strong,.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span,.dashboard-origin,.dashboard-detail,.dashboard-nobody{font-family:var(--body-font,Arial,sans-serif)!important}
.dashboard-line-name strong{font-size:15px!important;font-weight:600!important}
.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span{font-size:13px!important;font-weight:800!important}
.file-upload{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;min-width:0!important}
.file-picker{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;padding:9px 13px!important;border:0!important;border-radius:8px!important;background:var(--secondary)!important;color:#fff!important;font:inherit!important;font-size:13px!important;font-weight:700!important;cursor:pointer!important;white-space:nowrap!important}
.file-picker:hover{filter:brightness(.96)}
.file-picker-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.file-upload-name{min-width:0!important;margin-left:2px!important;color:var(--muted)!important;font-size:13px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.theme-preview i{display:block!important;height:38px!important;border-radius:6px!important}
@media(max-width:700px){.room-dashboard{min-height:300px!important}.room-dashboard-head{padding:0 12px!important}.dashboard-line{padding:0 12px!important;font-size:13px!important}.dashboard-line-name strong{font-size:14px!important}.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span{font-size:12px!important}.dashboard-origin{font-size:10px!important;padding:5px 8px!important}.dashboard-detail{font-size:11px!important;padding:5px 8px!important}.file-upload{gap:8px!important}.file-upload-name{font-size:12px!important}}

/* BLOQUE 28 — componentes aislados para evitar interferencias de estilos heredados. */
.today-room-card-v28{display:grid!important;grid-template-rows:repeat(5,minmax(0,1fr))!important;min-height:320px!important;padding:0!important;overflow:hidden!important;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;font-family:var(--body-font,Arial,sans-serif)!important}
.today-room-card-v28.is-busy{border-left:5px solid #a34747!important}.today-room-card-v28.is-free{border-left:5px solid #4c8069!important}
.today-row-v28{min-width:0!important;display:flex!important;align-items:center!important;padding:0 16px!important;border-bottom:1px solid var(--border)!important;font-family:var(--body-font,Arial,sans-serif)!important;font-size:14px!important;line-height:1.2!important}
.today-row-v28:last-child{border-bottom:0!important}.today-row-head-v28{justify-content:space-between!important;gap:10px!important}.today-row-head-v28 strong{font-family:var(--body-font,Arial,sans-serif)!important;font-size:17px!important;font-weight:800!important}.today-row-head-v28 .status{margin:0!important;font-family:var(--body-font,Arial,sans-serif)!important;font-weight:700!important}
.today-row-label-v28{justify-content:flex-start!important}.today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important;font-weight:800!important;color:var(--text)!important;letter-spacing:.01em}
.today-row-name-v28{justify-content:flex-start!important}.today-row-name-v28 span{font-family:var(--body-font,Arial,sans-serif)!important;font-size:15px!important;font-weight:500!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.today-row-meta-v28,.today-row-event-v28{justify-content:space-between!important;gap:10px!important}.today-event-right-v28{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;min-width:0!important}.dashboard-origin-v28{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;padding:6px 10px!important;border-radius:999px!important;background:var(--origin-color,var(--primary))!important;color:#fff!important;font-family:var(--body-font,Arial,sans-serif)!important;font-size:11px!important;font-weight:800!important;line-height:1!important}.today-detail-v28{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;padding:6px 10px!important;border-radius:8px!important;border:1px solid var(--primary)!important;background:var(--surface)!important;color:var(--primary)!important;text-decoration:none!important;font-family:var(--body-font,Arial,sans-serif)!important;font-size:11px!important;font-weight:800!important}.today-nobody-v28{color:var(--muted)!important;font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important}
.file-picker-v28{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;min-width:0!important}.file-picker-button-v28{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;padding:9px 13px!important;border:0!important;border-radius:8px!important;background:var(--secondary)!important;color:#fff!important;font:inherit!important;font-size:13px!important;font-weight:700!important;cursor:pointer!important;white-space:nowrap!important}.file-picker-input-v28{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.file-picker-name-v28{min-width:0!important;margin-left:2px!important;color:var(--muted)!important;font-size:13px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
@media(max-width:700px){.today-room-card-v28{min-height:300px!important}.today-row-v28{padding:0 12px!important;font-size:13px!important}.today-row-head-v28 strong{font-size:16px!important}.today-row-name-v28 span{font-size:14px!important}.today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-size:12px!important}.dashboard-origin-v28{font-size:10px!important;padding:5px 8px!important}.today-detail-v28{font-size:11px!important;padding:5px 8px!important}.today-event-right-v28{gap:7px!important}.file-picker-v28{gap:8px!important}.file-picker-name-v28{font-size:12px!important}}


/* BLOQUE 29 — ajuste final de proporciones, filtros y controles de archivo. */
.today-room-card-v28{min-height:280px!important}
.today-row-v28{padding:0 12px!important;font-size:13px!important}
.today-row-head-v28 strong{font-size:16px!important}
.today-row-name-v28 span{font-size:14px!important;font-weight:500!important}
.today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-size:12px!important}
.dashboard-origin-v28{font-size:10px!important;padding:5px 8px!important}
.today-detail-v28{font-size:10px!important;padding:5px 8px!important;border-radius:7px!important}
.today-event-right-v28{gap:7px!important}
.reservation-period-filter{align-items:flex-end;margin:12px 0 4px}
.reservation-period-filter label{min-width:150px}
.guest-detail p{display:grid;grid-template-columns:minmax(190px,34%) minmax(0,1fr);gap:6px 16px;margin:8px 0;align-items:baseline}
.guest-detail p strong{font-weight:700}
.guest-detail p span{min-width:0;overflow-wrap:anywhere}
.file-upload-v29{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;min-width:0!important}
.file-picker-v29{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;padding:9px 13px!important;border:0!important;border-radius:8px!important;background:var(--secondary)!important;color:#fff!important;font:inherit!important;font-size:13px!important;font-weight:700!important;cursor:pointer!important;white-space:nowrap!important}
.file-picker-v29:hover{filter:brightness(.96)}
.file-picker-input-v29{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.file-upload-name-v29{min-width:0!important;margin-left:2px!important;color:var(--muted)!important;font-size:13px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
@media(max-width:700px){
  .today-room-card-v28{min-height:260px!important}
  .today-row-v28{padding:0 10px!important}
  .today-row-head-v28 strong{font-size:15px!important}
  .today-row-name-v28 span{font-size:13px!important}
  .today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-size:11px!important}
  .dashboard-origin-v28{font-size:9px!important;padding:4px 7px!important}
  .today-detail-v28{font-size:9px!important;padding:4px 7px!important}
  .reservation-period-filter{align-items:stretch}
  .reservation-period-filter label{min-width:0;flex:1}
  .guest-detail p{grid-template-columns:1fr;gap:2px;margin:10px 0}
  .guest-detail p strong{font-size:12px}
  .guest-detail p span{font-size:14px}
  .file-upload-v29{gap:8px!important}
  .file-picker-v29{font-size:12px!important;padding:8px 11px!important}
  .file-upload-name-v29{font-size:12px!important}
}


/* BLOQUE 30 — Estado de hoy más compacto, manteniendo la estructura simétrica. */
.today-room-card-v28{min-height:238px!important}
.today-row-v28{padding:0 11px!important}
.today-row-head-v28 strong{font-size:15px!important}
.today-row-name-v28 span{font-size:13px!important}
.today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-size:11px!important}
.dashboard-origin-v28{font-size:9px!important;padding:4px 7px!important}
.today-detail-v28{font-size:9px!important;padding:4px 7px!important}
.today-event-right-v28{gap:6px!important}
.audit-table-wrap{width:100%;overflow-x:auto;margin-top:14px}
.audit-table{width:100%;border-collapse:separate;border-spacing:0;min-width:860px;font-size:13px}
.audit-table th,.audit-table td{padding:10px 9px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.audit-table th{font-weight:800;color:var(--text);background:var(--surface-alt)}
.audit-table td{color:var(--text);line-height:1.35}
.audit-table tbody tr:last-child td{border-bottom:0}
.audit-table th:first-child,.audit-table td:first-child{white-space:nowrap}
@media(max-width:700px){
  .today-room-card-v28{min-height:238px!important}
  .today-row-v28{padding:0 9px!important}
  .today-row-head-v28 strong{font-size:14px!important}
  .today-row-name-v28 span{font-size:12px!important}
  .today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-size:10px!important}
  .dashboard-origin-v28{font-size:8.5px!important;padding:4px 6px!important}
  .today-detail-v28{font-size:8.5px!important;padding:4px 6px!important}
  .today-event-right-v28{gap:5px!important}
  .audit-table{min-width:0;font-size:13px}
  .audit-table thead{display:none}
  .audit-table,.audit-table tbody,.audit-table tr,.audit-table td{display:block;width:100%}
  .audit-table tr{padding:11px 0;border-bottom:1px solid var(--border)}
  .audit-table tr:last-child{border-bottom:0}
  .audit-table td{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:5px 0;border:0;white-space:normal}
  .audit-table td::before{content:attr(data-label);font-weight:800;color:var(--muted)}
}


/* BLOQUE 32 — consolidación visual e internacionalización */
.reservation-list-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}
.reservation-list-head h2{margin-bottom:4px}
.reservation-period-filter{display:flex;align-items:flex-end;gap:10px;flex:0 0 auto}
.reservation-period-filter label{min-width:120px}
.reservation-period-filter select{width:100%}
.file-upload-v32{display:flex;align-items:center;gap:10px;width:100%;min-width:0;margin-top:5px}
.file-picker-v32{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:9px 13px;border:0;border-radius:8px;background:var(--secondary);color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.file-picker-v32:hover{filter:brightness(.96)}
.file-picker-input-v32{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.file-picker-name-v32{min-width:0;margin-left:2px;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-chain{display:grid;gap:8px;margin-top:12px}
.history-chain-item{display:grid;grid-template-columns:auto 1fr 1fr;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt)}
.history-chain-item.is-current{border-color:var(--secondary);box-shadow:inset 3px 0 0 var(--secondary)}
/* Todas las filas de Estado de hoy comparten exactamente la misma base tipográfica. */
.room-dashboard,.room-dashboard-head,.dashboard-line,.dashboard-line-name strong,.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span,.dashboard-origin,.dashboard-detail{font-family:var(--body-font,Arial,sans-serif)!important}
.dashboard-line{font-size:13px!important;line-height:1.2!important;font-weight:400!important}
.dashboard-line-name strong,.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span{font-size:13px!important;line-height:1.2!important;font-weight:700!important}
.dashboard-origin,.dashboard-detail{font-size:13px!important;line-height:1.2!important;font-weight:700!important;padding:6px 9px!important}
.dashboard-line-event{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}
.dashboard-line-event .dashboard-origin,.dashboard-line-event .dashboard-detail{margin-left:auto}
.dashboard-line-event .dashboard-label{margin-right:auto}
@media(max-width:700px){
 .reservation-list-head{align-items:stretch;flex-direction:column;gap:8px}
 .reservation-period-filter{width:100%;gap:8px}
 .reservation-period-filter label{flex:1;min-width:0}
 .file-upload-v32{gap:8px}
 .file-picker-v32{font-size:12px;padding:8px 11px}
 .file-picker-name-v32{font-size:12px}
 .history-chain-item{grid-template-columns:1fr;gap:4px}
 .dashboard-line,.dashboard-line-name strong,.dashboard-label,.dashboard-line-state span,.dashboard-line-checkout span,.dashboard-origin,.dashboard-detail{font-size:12px!important}
}


/* BLOQUE 35 — normalización de filas de Estado de hoy y seis previsualizaciones. */
.today-row-v28{font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important;line-height:1.25!important;min-height:0!important}
.today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span{font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important;font-weight:700!important;line-height:1.2!important}
.today-row-name-v28 span{font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important;font-weight:500!important;line-height:1.2!important}
.today-row-head-v28 strong{font-family:var(--body-font,Arial,sans-serif)!important;font-size:15px!important;line-height:1.2!important}
.theme-azules .theme-preview i:nth-child(1){background:#1f6fb2}.theme-azules .theme-preview i:nth-child(2){background:#5f7f98}.theme-azules .theme-preview i:nth-child(3){background:#a9cde8}
@media(max-width:700px){.today-row-v28{font-size:12px!important}.today-row-label-v28 strong,.today-row-event-v28>span:first-child,.today-row-date-v28 span,.today-row-name-v28 span{font-size:12px!important}.today-row-head-v28 strong{font-size:14px!important}}

/* Paletas activas del panel: seis opciones. */
.theme-boutique .theme-preview i:nth-child(1){background:#8a4f3d!important}.theme-boutique .theme-preview i:nth-child(2){background:#77645c!important}.theme-boutique .theme-preview i:nth-child(3){background:#d9ad9c!important}
.theme-azules .theme-preview i:nth-child(1){background:#1f6fb2!important}.theme-azules .theme-preview i:nth-child(2){background:#5f7f98!important}.theme-azules .theme-preview i:nth-child(3){background:#a9cde8!important}
.theme-amarillo_mostaza .theme-preview i:nth-child(1){background:#b58a16!important}.theme-amarillo_mostaza .theme-preview i:nth-child(2){background:#95824d!important}.theme-amarillo_mostaza .theme-preview i:nth-child(3){background:#e7cd78!important}
.theme-verdes_vivos .theme-preview i:nth-child(1){background:#279447!important}.theme-verdes_vivos .theme-preview i:nth-child(2){background:#6b936e!important}.theme-verdes_vivos .theme-preview i:nth-child(3){background:#a8d9b1!important}
.theme-amarillo_mostaza .theme-preview i:nth-child(1){background:#b58a16!important}.theme-amarillo_mostaza .theme-preview i:nth-child(2){background:#95824d!important}.theme-amarillo_mostaza .theme-preview i:nth-child(3){background:#e7cd78!important}
.theme-verdes_vivos .theme-preview i:nth-child(1){background:#279447!important}.theme-verdes_vivos .theme-preview i:nth-child(2){background:#6b936e!important}.theme-verdes_vivos .theme-preview i:nth-child(3){background:#a8d9b1!important}


/* Bloque 37: dashboard badge sizing and custom color palette controls. */
.today-row-meta-v28{justify-content:flex-end!important}
.dashboard-origin-v28,.today-detail-v28{font-size:13px!important;padding:6px 10px!important;line-height:1!important;min-height:27px!important}
.theme-color-labels{display:block;font-size:10px;line-height:1.35;margin-top:6px!important;white-space:normal}
.custom-colors-panel{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-alt)}
.custom-colors-panel h4{margin:0 0 4px}
.custom-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px}
.custom-color-grid label{font-size:13px;gap:8px}
.custom-color-grid input[type=color]{width:100%;height:46px;padding:4px;cursor:pointer}
.theme-personalizado .custom-theme-preview i{height:38px}
@media(max-width:700px){.dashboard-origin-v28,.today-detail-v28{font-size:13px!important;padding:6px 10px!important;min-height:27px!important}.custom-color-grid{grid-template-columns:1fr}}

/* Keep custom palette text legible on light flag colors such as yellow. */
.btn{color:var(--primary-contrast,#fff)}.btn.secondary{color:var(--secondary-contrast,#fff)}.file-picker-v32{color:var(--secondary-contrast,#fff)}
.custom-colors-panel[hidden]{display:none!important}
.btn.danger{color:#fff}
.today-detail-v28,.install-btn{color:var(--primary-dark)!important}


/* BLOQUE 37_v1 — dimensiones comunes para Libre/Ocupada, Origen y Detalle. */
.today-room-card-v28 .today-row-head-v28 .status,
.today-room-card-v28 .dashboard-origin-v28,
.today-room-card-v28 .today-detail-v28{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;min-height:27px!important;padding:6px 10px!important;
  font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important;
  font-weight:700!important;line-height:1!important;white-space:nowrap!important;
}
.today-room-card-v28 .today-row-meta-v28{justify-content:flex-end!important}
.today-room-card-v28 .today-row-meta-v28>.today-event-right-v28{width:100%!important;justify-content:flex-end!important}

/* Guest selector: honor hidden state even with component display styles. */
.guest-box[hidden]{display:none!important}


/* BLOQUE 41 — robustez de formularios y consistencia visual de Estado de hoy. */
.guest-box[hidden]{display:none!important}
.today-room-card-v28 .today-row-v28{box-sizing:border-box!important;min-width:0!important;font-family:var(--body-font,Arial,sans-serif)!important;line-height:1.2!important}
.today-room-card-v28 .today-row-label-v28 strong,.today-room-card-v28 .today-row-event-v28>span:first-child,.today-room-card-v28 .today-row-date-v28 span,.today-room-card-v28 .today-row-name-v28 span{font-family:var(--body-font,Arial,sans-serif)!important;font-size:13px!important;line-height:1.2!important}
.today-room-card-v28 .today-row-label-v28 strong,.today-room-card-v28 .today-row-event-v28>span:first-child,.today-room-card-v28 .today-row-date-v28 span{font-weight:700!important}
.today-room-card-v28 .today-row-name-v28 span{font-weight:500!important;overflow-wrap:anywhere!important}
.file-picker-input-v32{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:700px){.today-room-card-v28 .today-row-label-v28 strong,.today-room-card-v28 .today-row-event-v28>span:first-child,.today-room-card-v28 .today-row-date-v28 span,.today-room-card-v28 .today-row-name-v28 span{font-size:12px!important}}

/* Bloque 40: ajustes de lectura y marca, conservando el diseño existente */
.login-logo{width:168px;height:168px;max-width:100%;object-fit:contain}
.brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0}
.brand-logo{width:192px;height:192px;flex:0 0 192px}
.brand-name{display:block;font-size:22px;line-height:1.15}
.today-room-card-v28 .today-row-name-v28 span{font-size:16.25px!important}
@media(max-width:700px){.login-logo{width:144px;height:144px}.brand{max-width:42%;gap:4px}.brand-logo{width:112px;height:112px;flex:0 0 112px}.brand-name{font-size:16px;overflow-wrap:anywhere}.today-room-card-v28 .today-row-name-v28 span{font-size:15px!important}}
@media(max-width:420px){.brand-logo{width:88px;height:88px;flex-basis:88px}.brand-name{font-size:14px}.brand{max-width:38%}}

.theme-option .theme-color-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%;font-size:9px;line-height:1.15;text-align:center;color:var(--muted);font-weight:600}.theme-option .theme-color-labels span{overflow-wrap:anywhere}.theme-option .theme-preview{width:100%;}
@media(max-width:700px){.theme-option .theme-color-labels{font-size:8px;gap:2px}}


/* BLOQUE 41 — reparación controlada de identidad visual y Administración. */
.brand{gap:0!important}
.brand-name{margin-top:-5px!important}
.login-logo{margin-bottom:-9px!important}
.logo-field-v41{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:14px;font-weight:600}
.logo-field-v41>small{font-size:12px;font-weight:400;color:var(--muted)}
.file-upload-v32{display:flex;align-items:center;gap:10px;width:100%;min-width:0}
.file-picker-v32{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:9px 13px;border:0;border-radius:8px;background:var(--secondary);color:var(--secondary-contrast,#fff);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;text-decoration:none}
.file-picker-v32:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.file-picker-input-v32{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.file-picker-name-v32{min-width:0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.theme-option .theme-color-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:100%;font-size:10px;line-height:1.25;text-align:center;color:var(--muted);font-weight:600}
.theme-option .theme-color-labels span{overflow-wrap:anywhere}
.admin-typography-section-v41{display:block!important;visibility:visible!important;height:auto!important;overflow:visible!important;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.admin-maintenance-panel-v41{display:block!important;visibility:visible!important;height:auto!important;overflow:visible!important;margin-top:22px}
@media(max-width:700px){
  .brand{gap:0!important}
  .brand-name{margin-top:-4px!important;font-size:15px!important;line-height:1.1!important}
  .login-card{gap:12px}
  .login-logo{margin-bottom:-7px!important}
  .file-upload-v32{gap:8px}
  .file-picker-v32{font-size:12px;padding:8px 10px}
  .file-picker-name-v32{font-size:12px}
  .theme-option .theme-color-labels{font-size:9px;gap:3px}
  .custom-color-grid{grid-template-columns:1fr!important}
}

/* Bloque 42: ajuste real de identidad y selector de logo */
.brand{gap:2px!important}
.brand-logo{width:112px!important;height:112px!important;flex:0 0 112px!important}
.brand-name{margin-top:0!important;line-height:1.08!important}
.login-card{gap:9px!important}
.login-logo{width:120px!important;height:120px!important;margin-bottom:0!important}
.file-picker-v32{appearance:none}
.file-picker-input-v32{left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;pointer-events:auto!important}
@media(max-width:700px){.brand{gap:1px!important;max-width:48%!important}.brand-logo{width:72px!important;height:72px!important;flex-basis:72px!important}.brand-name{font-size:15px!important;line-height:1.08!important}.login-logo{width:96px!important;height:96px!important}.login-card{gap:8px!important}}
@media(max-width:420px){.brand{max-width:45%!important}.brand-logo{width:64px!important;height:64px!important;flex-basis:64px!important}.brand-name{font-size:14px!important}}

/* BLOQUE 49: asegurar que la paleta personalizada y los paneles inferiores se rendericen. */
#theme-personalizado-card{display:flex!important;flex-direction:column!important;visibility:visible!important;opacity:1!important;min-width:0!important;min-height:150px!important;position:relative!important;}
#theme-personalizado-card .theme-color-labels{display:block!important;visibility:visible!important;}
#theme-personalizado-card .custom-theme-preview{display:grid!important;visibility:visible!important;}
#admin-typography-section-v41,#admin-typography.admin-typography-section-v41{display:block!important;visibility:visible!important;height:auto!important;max-height:none!important;overflow:visible!important;opacity:1!important;}
#admin-maintenance.admin-maintenance-panel-v41{display:block!important;visibility:visible!important;height:auto!important;max-height:none!important;overflow:visible!important;opacity:1!important;}
#customColorsPanel[hidden]{display:none!important;}
#customColorsPanel:not([hidden]){display:block!important;visibility:visible!important;height:auto!important;overflow:visible!important;}
@media(max-width:700px){#theme-personalizado-card{min-height:130px!important;}#customColorsPanel .custom-color-grid{grid-template-columns:1fr!important;}}


/* BLOQUE 50 — visibilidad explícita y limitada a Administración. */
#theme-personalizado-card{display:flex!important;flex-direction:column!important;visibility:visible!important;opacity:1!important;min-height:150px!important;height:auto!important;max-height:none!important;overflow:visible!important;}
#theme-personalizado-card input[type=radio]{display:block!important;position:absolute!important;opacity:0!important;}
#theme-personalizado-card .theme-color-labels{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;visibility:visible!important;opacity:1!important;}
#theme-personalizado-card .custom-theme-preview{display:grid!important;visibility:visible!important;opacity:1!important;}
#admin-typography.admin-typography-section-v41{display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;max-height:none!important;overflow:visible!important;}
#admin-maintenance.admin-maintenance-panel-v41{display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;max-height:none!important;overflow:visible!important;}
#customColorsPanel[hidden]{display:none!important;}
#customColorsPanel.custom-colors-active-v50{display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;max-height:none!important;overflow:visible!important;}
#customColorsPanel .custom-color-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
@media(max-width:700px){#theme-personalizado-card{min-height:130px!important;}#customColorsPanel .custom-color-grid{grid-template-columns:1fr!important;}}

/* BLOQUE 51 — Administración: secciones explícitas, sin depender de selectores anteriores */
#theme-personalizado-card,
.theme-grid > .theme-personalizado{display:flex!important;flex-direction:column!important;visibility:visible!important;opacity:1!important;min-width:0!important;height:auto!important;max-height:none!important;overflow:visible!important;}
#theme-personalizado-card input[type="radio"]{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;}
#customColorsPanel{grid-column:1/-1!important;width:100%!important;min-width:0!important;box-sizing:border-box!important;}
#customColorsPanel:not([hidden]){display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;max-height:none!important;overflow:visible!important;}
#customColorsPanel[hidden]{display:none!important;}
#customColorsPanel .custom-color-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important;}
#customColorsPanel input[type="color"]{display:block!important;width:100%!important;min-height:48px!important;padding:4px!important;cursor:pointer!important;}
#admin-typography{display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;max-height:none!important;overflow:visible!important;grid-column:1/-1!important;margin-top:20px!important;padding-top:18px!important;border-top:1px solid var(--border)!important;}
#admin-maintenance{display:block!important;visibility:visible!important;opacity:1!important;height:auto!important;max-height:none!important;overflow:visible!important;clear:both!important;margin:22px 0!important;}
#admin-maintenance form{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;align-items:end!important;}
#admin-maintenance form label{min-width:0!important;}
@media(max-width:700px){#customColorsPanel .custom-color-grid{grid-template-columns:1fr!important;}#admin-maintenance form{grid-template-columns:1fr!important;}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:420px){.theme-grid{grid-template-columns:1fr!important;}}

/* BLOQUE 60: marca compacta, centrado del login y actualización de paletas */
.login-card{align-items:stretch}
.login-card .login-logo,.login-card h1{align-self:center;text-align:center}
.login-card .login-logo{margin-bottom:0!important}
.login-card h1{width:100%;margin-top:0}
.brand{gap:0!important}
.brand-logo{margin-bottom:-8px!important}
.brand-name{margin-top:0!important;line-height:1.08!important}
.insurance-detail[hidden]{display:none!important}
@media(max-width:700px){.brand{gap:0!important}.brand-logo{margin-bottom:-5px!important}.brand-name{margin-top:0!important}}

.insurance-choice{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;align-items:center;gap:18px;min-width:0}
.insurance-choice legend{font-weight:600;padding:0 4px}
.insurance-choice label{display:flex;align-items:center;gap:6px;font-weight:500}
.insurance-choice input{width:auto}

/* Bloque 62: registro de servicios adicionales, manteniendo la adaptación móvil existente. */
.additional-services-panel .additional-service-form{display:grid;grid-template-columns:minmax(180px,2fr) minmax(100px,.7fr) minmax(150px,1fr) minmax(150px,1fr);gap:12px;align-items:end;margin:18px 0 22px}
.additional-service-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem}
.additional-service-form input{width:100%;min-width:0}
.additional-service-form .service-notes-field{grid-column:span 3}
.additional-service-form .service-submit{display:flex;align-items:end}
.additional-services-panel .table-wrap{margin-top:14px}
.services-table{min-width:850px}
.services-table .service-voided{opacity:.62}
.services-table .service-voided td{text-decoration-color:currentColor}
.services-table tfoot th{text-align:right;padding-top:14px}
@media(max-width:900px){.additional-services-panel .additional-service-form{grid-template-columns:repeat(2,minmax(0,1fr))}.additional-service-form .service-notes-field{grid-column:1/-1}.additional-service-form .service-submit{grid-column:1/-1}}
@media(max-width:560px){.additional-services-panel .additional-service-form{grid-template-columns:1fr}.additional-service-form .service-notes-field,.additional-service-form .service-submit{grid-column:auto}.additional-services-panel .actions{align-items:stretch}}
.services-table .service-audit{display:block;margin-top:5px;font-size:.78rem;line-height:1.4;color:var(--muted,#667085);font-weight:400}

/* Bloque 68: etiquetas de Estado de hoy y aviso de cobro. */
.today-room-card-v28 .today-row-event-v28 .dashboard-origin-v28,.today-room-card-v28 .today-row-event-v28 .today-detail-v28,.today-room-card-v28 .today-row-event-v28 .today-debt-v68{font-size:9.5px!important;padding:5px 8px!important;min-height:24px!important}
.today-debt-v68{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid #b7791f;background:#fff4d6;color:#805500;text-decoration:none;font-weight:800;line-height:1}
.today-event-right-v28{flex-wrap:wrap}
#servicios{scroll-margin-top:90px}

.service-pay-form{display:flex;flex-wrap:wrap;align-items:end;gap:6px}.service-pay-qty{font-size:11px;display:flex;flex-direction:column;gap:3px}.service-pay-qty input{width:82px;padding:5px}


/* BLOQUE 70 — redistribución compacta de servicios y dimensiones uniformes de Estado de hoy. */
.additional-services-panel .services-table-wrap{width:100%;overflow-x:auto;}
.additional-services-panel table.services-table{
  width:100%;min-width:1080px;table-layout:fixed;border-collapse:collapse;
}
.additional-services-panel table.services-table col.col-service-date{width:8%;}
.additional-services-panel table.services-table col.col-service-name{width:10%;}
.additional-services-panel table.services-table col.col-service-qty{width:6%;}
.additional-services-panel table.services-table col.col-service-unit{width:9%;}
.additional-services-panel table.services-table col.col-service-total{width:9%;}
.additional-services-panel table.services-table col.col-service-notes{width:13%;}
.additional-services-panel table.services-table col.col-service-status{width:17%;}
.additional-services-panel table.services-table col.col-service-actions{width:28%;}
.additional-services-panel table.services-table th,
.additional-services-panel table.services-table td{
  padding:9px 7px;vertical-align:top;white-space:normal;overflow-wrap:anywhere;
}
.additional-services-panel table.services-table td:nth-child(3){text-align:center;}
.additional-services-panel table.services-table td:nth-child(4),
.additional-services-panel table.services-table td:nth-child(5){text-align:right;white-space:nowrap;}
.additional-services-panel table.services-table td.service-actions-cell{
  min-width:0;padding:8px 7px;vertical-align:top;
}
.additional-services-panel .service-actions-main{
  display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:nowrap;
  width:100%;margin:0 0 7px;
}
.additional-services-panel .service-actions-main form{display:inline-flex;margin:0;}
.additional-services-panel .service-actions-cell .btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:29px;
  padding:6px 9px;font-size:11px;line-height:1.1;white-space:nowrap;
}
.additional-services-panel .service-edit-details{display:inline-block;position:relative;margin:0;}
.additional-services-panel .service-edit-details>summary{cursor:pointer;list-style:none;}
.additional-services-panel .service-edit-details>summary::-webkit-details-marker{display:none;}
.additional-services-panel .service-pay-form{
  display:flex;align-items:flex-end;justify-content:flex-start;flex-wrap:nowrap;gap:7px;
  width:100%;margin:0;padding:0;border:0;background:transparent;
}
.additional-services-panel .service-pay-qty{
  display:flex;flex:0 0 76px;flex-direction:column;gap:3px;min-width:0;
  font-size:10px;line-height:1.1;font-weight:700;white-space:nowrap;
}
.additional-services-panel .service-pay-qty input{
  box-sizing:border-box;width:58px;max-width:58px;min-width:58px;height:30px;min-height:30px;
  padding:4px 5px;font-size:12px;text-align:center;
}
.additional-services-panel .service-pay-form button{flex:0 0 auto;margin:0;padding:6px 8px;min-height:30px;font-size:10px;}
.additional-services-panel .service-annul-form{display:inline-flex;flex:0 0 auto;margin:0;}
.additional-services-panel .service-edit-form{
  display:grid;grid-template-columns:minmax(0,1fr);gap:8px;box-sizing:border-box;
  width:min(330px,calc(100vw - 48px));min-width:0;margin:8px 0 0;padding:12px;
  border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);
}
.additional-services-panel .service-edit-form label{min-width:0;font-size:12px;}
.additional-services-panel .service-edit-form input,
.additional-services-panel .service-edit-form select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;}
.additional-services-panel input[name="cantidad"],
.additional-services-panel input[name="cantidad_pago"]{-moz-appearance:textfield!important;appearance:textfield!important;}
.additional-services-panel input[name="cantidad"]::-webkit-inner-spin-button,
.additional-services-panel input[name="cantidad"]::-webkit-outer-spin-button,
.additional-services-panel input[name="cantidad_pago"]::-webkit-inner-spin-button,
.additional-services-panel input[name="cantidad_pago"]::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important;}

/* Mantener las dimensiones originales grandes en Origen, Detalle y Debe, sin excepciones por fila. */
.dashboard-today-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;}
.today-room-card-v28 .dashboard-origin-v28,
.today-room-card-v28 .today-detail-v28,
.today-room-card-v28 .today-debt-v70{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;flex:0 0 auto!important;min-height:27px!important;
  padding:6px 10px!important;font-family:var(--body-font,Arial,sans-serif)!important;
  font-size:13px!important;font-weight:700!important;line-height:1!important;white-space:nowrap!important;
}
.today-room-card-v28 .today-debt-v70{
  border:1px solid var(--primary)!important;border-radius:8px!important;
  background:var(--surface)!important;color:var(--primary)!important;
  text-decoration:none!important;
}
.today-room-card-v28 .today-row-event-uniform-v70{justify-content:space-between!important;gap:8px!important;}
.today-room-card-v28 .today-row-event-uniform-v70 .today-event-right-v28{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:6px!important;min-width:0!important;flex-wrap:nowrap!important;
}
@media(max-width:900px){
  .additional-services-panel table.services-table{min-width:1080px;}
}
@media(max-width:700px){
  .dashboard-today-grid{grid-template-columns:minmax(0,1fr)!important;}
  .today-room-card-v28 .dashboard-origin-v28,
  .today-room-card-v28 .today-detail-v28,
  .today-room-card-v28 .today-debt-v70{font-size:13px!important;padding:6px 10px!important;min-height:27px!important;}
  .today-room-card-v28 .today-row-event-uniform-v70 .today-event-right-v28{gap:7px!important;}
  .additional-services-panel table.services-table{min-width:1080px;}
  .additional-services-panel .service-actions-cell{min-width:0;}
}
/* BLOQUE 70 — última prioridad para que la fila SALE/ENTRA conserve el tamaño común. */
.today-room-card-v28 .today-row-event-uniform-v70 .dashboard-origin-v28,
.today-room-card-v28 .today-row-event-uniform-v70 .today-detail-v28,
.today-room-card-v28 .today-row-event-uniform-v70 .today-debt-v70{
  min-height:27px!important;padding:6px 10px!important;font-size:13px!important;
}
@media(max-width:700px){
  .today-room-card-v28 .today-row-event-uniform-v70 .dashboard-origin-v28,
  .today-room-card-v28 .today-row-event-uniform-v70 .today-detail-v28,
  .today-room-card-v28 .today-row-event-uniform-v70 .today-debt-v70{
    min-height:27px!important;padding:6px 10px!important;font-size:13px!important;
  }
}


/* BLOQUE 69 — edición pendiente en panel amplio, fuera de la celda estrecha de Acción. */
.additional-services-panel .service-edit-details[open]::before{
  content:"";position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:1000;
}
.additional-services-panel .service-edit-details[open] > .service-edit-form{
  position:fixed!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;
  z-index:1001!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;width:min(760px,calc(100vw - 36px))!important;max-width:760px!important;
  max-height:calc(100vh - 36px)!important;overflow-y:auto!important;box-sizing:border-box!important;
  margin:0!important;padding:22px!important;border:1px solid var(--border)!important;
  border-radius:14px!important;background:var(--surface)!important;box-shadow:0 18px 60px rgba(0,0,0,.28)!important;
}
.additional-services-panel .service-edit-heading{
  grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-bottom:10px;border-bottom:1px solid var(--border);font-size:16px;
}
.additional-services-panel .service-edit-close{flex:0 0 auto;border:1px solid var(--border);border-radius:8px;
  background:var(--surface);color:var(--text);padding:7px 12px;cursor:pointer;font:inherit;font-size:13px;}
.additional-services-panel .service-edit-details[open] .service-edit-form label{
  display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px;line-height:1.35;overflow-wrap:normal;word-break:normal;
}
.additional-services-panel .service-edit-details[open] .service-edit-form input,
.additional-services-panel .service-edit-details[open] .service-edit-form select{
  width:100%!important;min-width:0!important;max-width:100%!important;min-height:42px!important;
  box-sizing:border-box!important;padding:9px 10px!important;font-size:14px!important;line-height:1.3!important;
}
.additional-services-panel .service-edit-details[open] .service-edit-form > button[type="submit"]{
  grid-column:1/-1;justify-self:start;min-height:40px;padding:9px 18px;font-size:14px;
}
@media(max-width:600px){
  .additional-services-panel .service-edit-details[open] > .service-edit-form{
    grid-template-columns:minmax(0,1fr)!important;width:calc(100vw - 24px)!important;
    max-height:calc(100vh - 24px)!important;padding:16px!important;gap:11px!important;
  }
  .additional-services-panel .service-edit-heading,
  .additional-services-panel .service-edit-details[open] .service-edit-form > button[type="submit"]{grid-column:1!important;}
}


/* BLOQUE 70 — sistema tipográfico común y formularios numéricos de entrada manual. */
:root{
  --type-page-title:22px;
  --type-section-title:18px;
  --type-subtitle:16px;
  --type-body:14px;
  --type-secondary:12px;
  --type-metadata:11px;
}
body{font-size:var(--type-body)!important;line-height:1.45;}
.topbar h1,.detail-topbar h1{font-size:var(--type-page-title)!important;line-height:1.25;}
.panel h2,.section-title h2{font-size:var(--type-section-title)!important;line-height:1.3;}
.card h3,.panel h3,.guest-detail h3{font-size:var(--type-subtitle)!important;line-height:1.35;}
.panel p,.card p,.detail-grid,.guest-detail p,td,.list-row,.room-name,.dashboard-main strong{font-size:var(--type-body)!important;}
th,.form-grid label,.panel label,.additional-services-panel label,.service-edit-form label{font-size:var(--type-body)!important;}
input,select,textarea,.btn:not(.small){font-size:var(--type-body)!important;}
.btn.small,.tag,.status,.today-badge,.muted,.accounting-note,.calendar-help,.service-audit,.guest-detail p small{font-size:var(--type-secondary)!important;}
.event-kind,.audit-table small,.metadata,.meta-text{font-size:var(--type-metadata)!important;}
.guest-detail p{display:grid;grid-template-columns:minmax(120px, .38fr) minmax(0,1fr);gap:10px;align-items:start;line-height:1.45;}
.guest-detail p strong,.guest-detail p span{font-size:var(--type-body)!important;line-height:1.45!important;}
.additional-services-panel .service-edit-form{font-size:var(--type-body)!important;}
.additional-services-panel .service-edit-form .muted{grid-column:1/-1;}
.additional-services-panel .service-edit-form label{font-size:var(--type-body)!important;}
.additional-services-panel .service-edit-form input,
.additional-services-panel .service-edit-form select{font-size:var(--type-body)!important;}
.additional-services-panel input[inputmode="numeric"]{font-variant-numeric:tabular-nums;}
@media(max-width:600px){
  .topbar h1,.detail-topbar h1{font-size:20px!important;}
  .guest-detail p{grid-template-columns:1fr;gap:2px;}
  .guest-detail p strong,.guest-detail p span{font-size:var(--type-body)!important;}
}

/* BLOQUE 79: patrón modal compartido y correcciones de tabla. */
.service-edit-details{position:relative;margin:0;}
.service-edit-details>summary{cursor:pointer;list-style:none;}
.service-edit-details>summary::-webkit-details-marker{display:none;}
.service-edit-details[open]{position:fixed!important;inset:0!important;z-index:10000!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:18px!important;box-sizing:border-box!important;background:rgba(15,23,42,.52)!important;overflow-y:auto!important;}
.service-edit-details[open]::before{content:none!important;display:none!important;}
.service-edit-details[open]>summary{display:none!important;}
.service-edit-details[open]>.service-edit-form{position:relative!important;inset:auto!important;left:auto!important;top:auto!important;transform:none!important;z-index:1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;width:min(760px,calc(100vw - 36px))!important;max-width:760px!important;max-height:calc(100vh - 36px)!important;overflow-y:auto!important;margin:auto!important;padding:22px!important;box-sizing:border-box!important;border:1px solid var(--border)!important;border-radius:14px!important;background:var(--surface)!important;box-shadow:0 18px 60px rgba(0,0,0,.28)!important;}
.service-edit-details[open]>.service-edit-form .service-edit-heading{grid-column:1/-1!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding-bottom:10px!important;border-bottom:1px solid var(--border)!important;}
.service-edit-details[open]>.service-edit-form .service-edit-close{flex:0 0 auto!important;border:1px solid var(--border)!important;border-radius:8px!important;background:var(--surface)!important;color:var(--text)!important;padding:7px 12px!important;cursor:pointer!important;font:inherit!important;font-size:13px!important;}
.service-edit-details[open]>.service-edit-form label{display:flex!important;flex-direction:column!important;gap:6px!important;min-width:0!important;}
.service-edit-details[open]>.service-edit-form input,.service-edit-details[open]>.service-edit-form select{width:100%!important;min-width:0!important;max-width:100%!important;min-height:42px!important;box-sizing:border-box!important;padding:9px 10px!important;font-size:14px!important;}
.service-edit-details[open]>.service-edit-form>button[type=submit]{grid-column:1/-1!important;justify-self:start!important;}
.today-debt-details{display:inline-block;position:relative;margin:0;}
.today-debt-details>summary{cursor:pointer;list-style:none;}
.today-debt-details>summary::-webkit-details-marker{display:none;}
.today-debt-details .today-debt-line-v75{grid-column:1/-1!important;padding:10px 0;border-bottom:1px solid var(--border);line-height:1.45;}
.today-debt-details .today-debt-line-v75 small{color:var(--muted);}
.today-debt-details .service-edit-form>strong,.today-debt-details .service-edit-form>a{grid-column:1/-1!important;}
.today-event-right-v28{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.additional-services-panel .table-wrap.services-table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important;}
.additional-services-panel table.services-table{width:100%!important;min-width:1180px!important;table-layout:fixed!important;}
.additional-services-panel table.services-table col.col-service-date{width:9%!important;}
.additional-services-panel table.services-table col.col-service-name{width:13%!important;}
.additional-services-panel table.services-table col.col-service-qty{width:8%!important;}
.additional-services-panel table.services-table col.col-service-unit{width:11%!important;}
.additional-services-panel table.services-table col.col-service-total{width:9%!important;}
.additional-services-panel table.services-table col.col-service-notes{width:12%!important;}
.additional-services-panel table.services-table col.col-service-status{width:17%!important;}
.additional-services-panel table.services-table col.col-service-actions{width:21%!important;}
.additional-services-panel table.services-table th{white-space:nowrap!important;}
.additional-services-panel table.services-table th:nth-child(3),.additional-services-panel table.services-table td:nth-child(3){width:94px!important;min-width:94px!important;text-align:center!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;}
.additional-services-panel table.services-table td:nth-child(4),.additional-services-panel table.services-table td:nth-child(5){white-space:nowrap!important;text-align:right!important;}
.additional-services-panel table.services-table td.service-actions-cell{min-width:0!important;text-align:right!important;padding-right:14px!important;}
.additional-services-panel .service-actions-main{display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:flex-start!important;flex-wrap:nowrap!important;gap:8px!important;width:100%!important;min-width:0!important;margin:0!important;}
.additional-services-panel .service-actions-main>.service-pay-form,.additional-services-panel .service-actions-main>.service-edit-details,.additional-services-panel .service-actions-main>.service-annul-form{display:flex!important;flex-direction:column!important;align-items:flex-end!important;justify-content:flex-start!important;width:100%!important;margin:0!important;}
.additional-services-panel .service-actions-main>.service-pay-form{gap:6px!important;padding:0!important;border:0!important;background:transparent!important;}
.additional-services-panel .service-actions-main>.service-pay-form .service-pay-qty{display:flex!important;flex-direction:column!important;align-items:flex-end!important;width:auto!important;white-space:nowrap!important;margin:0 0 5px!important;}
.additional-services-panel .service-actions-main .service-pay-qty input{width:90px!important;min-width:90px!important;max-width:90px!important;}
.additional-services-panel .service-actions-main>.service-pay-form button,.additional-services-panel .service-actions-main>.service-edit-details>summary,.additional-services-panel .service-actions-main>.service-annul-form button{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:136px!important;min-width:136px!important;white-space:nowrap!important;}
.additional-services-panel .service-actions-main>.service-edit-details{display:flex!important;}
.additional-services-panel .service-actions-main>.service-edit-details>summary{align-self:flex-end!important;}
.additional-services-panel .service-totals-scroll{width:100%!important;overflow-x:auto!important;padding-bottom:5px!important;}
.additional-services-panel .service-totals-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;width:100%!important;min-width:800px!important;margin-top:16px!important;}
.additional-services-panel .service-total-card{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:7px!important;min-width:0!important;padding:13px 14px!important;border:1px solid var(--border)!important;border-radius:10px!important;background:var(--surface)!important;}
.additional-services-panel .service-total-card strong{font-size:12px!important;line-height:1.3!important;color:var(--muted)!important;}
.additional-services-panel .service-total-card span{font-size:16px!important;font-weight:750!important;line-height:1.25!important;white-space:nowrap!important;}
@media(max-width:600px){.service-edit-details[open]{padding:12px!important;}.service-edit-details[open]>.service-edit-form{grid-template-columns:minmax(0,1fr)!important;width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px)!important;padding:16px!important;gap:11px!important;}.service-edit-details[open]>.service-edit-form .service-edit-heading,.service-edit-details[open]>.service-edit-form>button[type=submit]{grid-column:1!important;}.additional-services-panel table.services-table{min-width:1180px!important;}.additional-services-panel .service-totals-grid{grid-template-columns:repeat(4,minmax(180px,1fr))!important;min-width:780px!important;}}

/* BLOQUE 80 — ajustes cosméticos finales solicitados. */
/* Logo: duplicar el área visible y acercar el nombre sin alterar el resto del encabezado. */
.brand{gap:0!important;}
.brand-logo{width:224px!important;height:224px!important;flex:0 0 224px!important;margin-bottom:-18px!important;}
.brand-name{margin-top:0!important;line-height:1.05!important;}
.login-card{gap:8px!important;}
.login-logo{width:240px!important;height:240px!important;margin-bottom:-16px!important;}
.login-card h1{margin-top:0!important;}
@media(max-width:700px){
  .brand{gap:0!important;}
  .brand-logo{width:144px!important;height:144px!important;flex-basis:144px!important;margin-bottom:-12px!important;}
  .brand-name{font-size:15px!important;line-height:1.05!important;}
  .login-logo{width:192px!important;height:192px!important;margin-bottom:-14px!important;}
}
@media(max-width:420px){
  .brand-logo{width:128px!important;height:128px!important;flex-basis:128px!important;}
  .brand-name{font-size:14px!important;}
  .login-logo{width:168px!important;height:168px!important;}
}

/* Tabla de servicios: reparto proporcional compacto; scroll solo en viewports estrechos. */
.additional-services-panel .table-wrap.services-table-wrap{overflow-x:auto!important;width:100%!important;max-width:100%!important;}
.additional-services-panel table.services-table{width:100%!important;min-width:0!important;table-layout:fixed!important;}
.additional-services-panel table.services-table col.col-service-date{width:9%!important;}
.additional-services-panel table.services-table col.col-service-name{width:17%!important;}
.additional-services-panel table.services-table col.col-service-qty{width:6%!important;}
.additional-services-panel table.services-table col.col-service-unit{width:12%!important;}
.additional-services-panel table.services-table col.col-service-total{width:10%!important;}
.additional-services-panel table.services-table col.col-service-notes{width:12%!important;}
.additional-services-panel table.services-table col.col-service-status{width:17%!important;}
.additional-services-panel table.services-table col.col-service-actions{width:17%!important;}
.additional-services-panel table.services-table th,
.additional-services-panel table.services-table td{padding:8px 6px!important;overflow-wrap:anywhere;}
.additional-services-panel table.services-table th:nth-child(3),
.additional-services-panel table.services-table td:nth-child(3){width:6%!important;min-width:0!important;white-space:nowrap!important;text-align:center!important;word-break:normal!important;overflow-wrap:normal!important;}
.additional-services-panel table.services-table th:nth-child(4),
.additional-services-panel table.services-table td:nth-child(4),
.additional-services-panel table.services-table th:nth-child(5),
.additional-services-panel table.services-table td:nth-child(5){white-space:nowrap!important;}
.additional-services-panel .service-actions-cell{min-width:0!important;text-align:right!important;padding:8px 8px 8px 4px!important;}
.additional-services-panel .service-actions-main{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:8px!important;width:100%!important;margin:0!important;}
.additional-services-panel .service-actions-main>.service-pay-form,
.additional-services-panel .service-actions-main>.service-edit-details,
.additional-services-panel .service-actions-main>.service-annul-form,
.additional-services-panel .service-actions-main>.service-delete-form{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:8px!important;width:100%!important;margin:0!important;}
.additional-services-panel .service-actions-main>.service-pay-form{padding:0!important;border:0!important;background:transparent!important;}
.additional-services-panel .service-actions-main>.service-pay-form .service-pay-qty{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:4px!important;margin:0!important;white-space:nowrap!important;}
.additional-services-panel .service-actions-main .service-pay-qty input{width:88px!important;min-width:88px!important;max-width:88px!important;}
.additional-services-panel .service-actions-main .btn,
.additional-services-panel .service-actions-main .service-edit-details>summary{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:136px!important;min-width:0!important;max-width:100%!important;white-space:nowrap!important;margin:0!important;}
.additional-services-panel .service-actions-main>.service-edit-details{width:100%!important;}
.additional-services-panel .service-actions-main>.service-edit-details>summary{align-self:flex-end!important;}
.additional-services-panel .service-actions-paid{gap:8px!important;}
@media(max-width:900px){
  .additional-services-panel table.services-table{min-width:960px!important;}
}
@media(max-width:600px){
  .additional-services-panel table.services-table{min-width:960px!important;}
}
