/* Cistercan visual refresh - additive, reversible */
:root {
  --cister-bg: #f6f3ef;
  --cister-surface: #ffffff;
  --cister-text: #292621;
  --cister-muted: #6f6962;
  --cister-border: #ded8d1;
  --cister-brand: #a8673d;
  --cister-brand-dark: #875033;
  --cister-brand-soft: #f4e8df;
  --cister-focus: #2f73c9;
  --cister-info: #dcecff;
  --cister-radius: 9px;
  --cister-shadow: 0 2px 12px rgba(49, 38, 29, .07);
}

html { scrollbar-gutter: stable; }
body {
  background: var(--cister-bg);
  color: var(--cister-text);
  font-family: "Noto Sans", "Cabin", system-ui, sans-serif;
}

header {
  min-height: 54px;
  height: auto;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--cister-border);
  box-shadow: 0 2px 10px rgba(52, 42, 34, .08);
  backdrop-filter: blur(8px);
}
header > .w-max { padding: 0 14px; }
#logo { height: 38px; width: auto; object-fit: contain; }
header nav {
  gap: 3px;
  margin: 0 0 0 16px;
  padding: 7px 0;
  align-items: center;
  overflow-x: auto;
  scrollbar-width: thin;
}
header nav > a:not(.btn-text) {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 10px;
  border-radius: 8px;
  color: #403b36;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.15;
  white-space: nowrap;
  transition: background-color .16s ease, color .16s ease;
}
header nav > a:not(.btn-text):hover {
  color: var(--cister-brand-dark);
  background: var(--cister-brand-soft);
}

a { color: #42698b; text-underline-offset: 2px; }
a:hover { color: #244e72; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(47,115,201,.3);
  outline-offset: 2px;
}

main { background: var(--cister-bg); }
.bloque, .bloque-nh {
  background: var(--cister-surface);
  border-color: var(--cister-border);
  border-radius: var(--cister-radius);
  box-shadow: var(--cister-shadow);
}

input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  border: 1px solid #c9c2ba;
  border-radius: 8px;
  background: #fff;
  color: var(--cister-text);
  transition: border-color .16s ease, box-shadow .16s ease;
}
input:not([type="checkbox"]):not([type="radio"]):hover, select:hover, textarea:hover {
  border-color: #a99e94;
}
input:not([type="checkbox"]):not([type="radio"]):focus, select:focus, textarea:focus {
  border-color: var(--cister-focus);
  box-shadow: 0 0 0 3px rgba(47,115,201,.12);
}
input::placeholder, textarea::placeholder { color: #87817a; opacity: 1; }

button, .btn, .btn-text, .filtro-fecha-submit {
  border-radius: 8px;
  transition: transform .12s ease, box-shadow .12s ease, background-color .16s ease;
}
button:hover, .btn:hover, .btn-text:hover, .filtro-fecha-submit:hover {
  box-shadow: 0 2px 7px rgba(55,43,34,.15);
}
button:active, .btn:active, .btn-text:active { transform: translateY(1px); }
.btn-text {
  background: #fff;
  border: 1px solid var(--cister-border);
  color: #3f3a35;
}
.swal-button { background: var(--cister-brand); border-radius: 8px; }
.swal-button:hover { background: var(--cister-brand-dark) !important; }

#index-lista-animales {
  padding: 8px !important;
  border-radius: 0 10px 10px 0;
}
#index-lista-animales .filtro { min-height: 34px; padding: 6px 9px; }
#index-lista-animales .lista-item {
  margin-top: 6px !important;
  padding: 9px !important;
  background: #fff;
  border-color: var(--cister-border) !important;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(55,43,34,.04);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
#index-lista-animales .lista-item:hover {
  border-color: #b9987f !important;
  box-shadow: 0 3px 10px rgba(55,43,34,.10);
  transform: translateY(-1px);
}
#index-lista-animales .lista-item a { color: #34302c; }

#mascotasCanil > .flex-center-center {
  background: #fbf8f4 !important;
  border: 1px dashed #d9cfc5;
  border-radius: 10px;
  color: var(--cister-muted) !important;
}
.celda {
  border-color: #cfc6bd;
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.celda:hover {
  border-color: #9d7a61;
  box-shadow: 0 2px 7px rgba(55,43,34,.13);
  transform: translateY(-1px);
}
.celda-ocupada { background: var(--cister-info); }
.celda-seleccionada {
  background: #bcdcff;
  outline: 3px solid rgba(47,115,201,.38);
  outline-offset: 1px;
}
.btn-animalesCanilSeleccionado {
  border-color: var(--cister-border);
  border-radius: 9px;
  box-shadow: 0 2px 8px rgba(55,43,34,.07);
}

.filtro-fecha { min-height: 34px; }
.filtro-fecha-submit {
  min-height: 34px;
  border-color: var(--cister-brand);
  background: var(--cister-brand);
}
.paginacion { border-radius: 6px; }
.paginacion-activo { background: var(--cister-brand); color: #fff; }

table { border-collapse: separate; border-spacing: 0; }
th { color: #4f4841; background: #f3efeb; }
tr:hover td { background-color: #fcfaf8; }

#guardando, #guardado { border-radius: 0 0 8px 8px; box-shadow: var(--cister-shadow); }

@media (max-width: 1180px) {
  header nav { gap: 1px; margin-left: 10px; }
  header nav > a:not(.btn-text) { padding-inline: 7px; font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Header fit refinement */
header > .w-max { gap: 8px; }
header nav {
  width: auto !important;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 6px;
  scrollbar-width: none;
}
header nav::-webkit-scrollbar { display: none; }
header nav > a:not(.btn-text) { padding-inline: 8px; font-weight: 500; }

/* Active navigation state */
header nav > a[aria-current="page"] {
  color: #fff !important;
  background: var(--cister-brand);
  box-shadow: 0 2px 8px rgba(135, 80, 51, .22);
}
header nav > a[aria-current="page"]:hover { color:#fff !important; background:var(--cister-brand-dark); }

@media (max-width: 1450px) {
  header > .w-max { padding-inline: 8px; gap: 4px; }
  #logo { height: 34px; }
  header nav { margin-left: 2px; }
  header nav > a:not(.btn-text) { padding: 6px; font-size: .78rem; }
}

.invoice-create-card { display:flex; align-items:flex-start; gap:18px; width:min(720px,100%); margin:18px auto; padding:24px; border:1px solid var(--cister-border); border-radius:14px; background:#fff; box-shadow:var(--cister-shadow); }
.invoice-create-icon { display:grid; place-items:center; flex:0 0 50px; height:50px; border-radius:13px; background:var(--cister-brand-soft); color:var(--cister-brand-dark); font-size:1.45rem; font-weight:700; }
.invoice-create-copy h2 { margin:0 0 7px; font-size:1.25rem; line-height:1.25; }
.invoice-create-copy p { max-width:590px; margin:0; color:var(--cister-muted); line-height:1.5; }
.invoice-create-actions { display:flex; align-items:center; gap:10px; margin-top:18px; flex-wrap:wrap; }
.invoice-create-primary,.invoice-create-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 14px; border-radius:9px; font-weight:700; }
.invoice-create-primary { border:1px solid var(--cister-brand); background:var(--cister-brand); color:#fff; }
.invoice-create-primary:hover { background:var(--cister-brand-dark); }
.invoice-create-secondary { border:1px solid var(--cister-border); background:#fff; color:#4b4540; }
.invoice-create-secondary:hover { background:#f8f5f2; color:#302c29; }
@media(max-width:650px){.invoice-create-card{padding:18px;gap:12px}.invoice-create-icon{flex-basis:42px;height:42px}.invoice-create-actions{align-items:stretch;flex-direction:column}.invoice-create-actions>*{width:100%}.invoice-create-primary,.invoice-create-secondary{width:100%}}

.nav-toggle { display:none; min-height:38px; padding:7px 11px; border:1px solid var(--cister-border); border-radius:8px; background:#fff; color:#403b36; font-weight:700; cursor:pointer; }
.header-logout {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  padding:7px 10px;
  border:1px solid var(--cister-border);
  border-radius:9px;
  background:#fff;
  color:#6f3424 !important;
  font-size:.82rem;
  font-weight:750;
  white-space:nowrap;
}
.header-logout:hover,
.header-logout:focus-visible { border-color:#c89678; background:#fff7f1; color:#8e462d !important; }
.header-logout .icono { width:18px; height:18px; }

/* En portátiles y ventanas medianas, la navegación pasa a una segunda fila bajo demanda.
   La empresa activa y Salir permanecen siempre visibles. */
@media (min-width: 851px) and (max-width: 1750px) {
  header { height:auto; min-height:58px; }
  header > .w-max { width:100%; min-height:58px; padding:7px 12px; flex-wrap:wrap; }
  header > .w-max > a:first-child { order:1; }
  header .active-company-context { order:2; margin-left:auto; }
  header .header-logout { order:3; }
  header #navToggle { display:inline-flex; order:4; align-items:center; justify-content:center; margin-left:2px; }
  header nav#app-nav {
    display:none !important;
    order:5;
    grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
    flex:0 0 100%;
    width:100% !important;
    margin:5px 0 0;
    padding:8px;
    gap:5px;
    overflow:visible;
    border-top:1px solid var(--cister-border);
    background:#fff;
  }
  header nav#app-nav.is-open { display:grid !important; }
  header nav#app-nav > a:not(.btn-text) { justify-content:flex-start; min-height:40px; padding:9px 10px; font-size:.84rem; }
  header nav#app-nav .global-search-open { width:100%; justify-content:center; }
}
@media (max-width: 850px) {
  header { min-height:54px; height:auto; }
  header > .w-max { width:100%; min-height:54px; padding:6px 10px; flex-wrap:wrap; }
  #logo { height:36px; }
  header > .w-max > a:first-child { order:1; }
  header .active-company-context { order:2; margin-left:auto; }
  header .header-logout { order:3; width:38px; min-height:38px; padding:7px; }
  header .header-logout span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  header #navToggle { display:inline-flex; order:4; align-items:center; margin-left:0; }
  header nav#app-nav { display:none !important; order:5; grid-template-columns:repeat(2,minmax(0,1fr)); flex:0 0 100%; width:100% !important; max-height:calc(100vh - 70px); margin:6px 0 0; padding:8px; gap:5px; overflow-y:auto; border-top:1px solid var(--cister-border); background:#fff; }
  header nav#app-nav.is-open { display:grid !important; }
  header nav#app-nav > a:not(.btn-text) { justify-content:flex-start; min-height:40px; padding:9px 10px; font-size:.86rem; }
}

/* Buscador global */
.global-search-open{display:inline-flex;align-items:center;gap:.38rem;border:1px solid #dde4e8;background:#fff;color:#18354c;border-radius:9px;padding:.45rem .7rem;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:.18s ease}
.global-search-open:hover,.global-search-open:focus-visible{border-color:#b86f3c;color:#a75f2f;box-shadow:0 4px 14px rgba(31,54,69,.1)}
.global-search-open>span:first-child{font-size:1.2rem;line-height:1}
.global-search-dialog[hidden]{display:none!important}
.global-search-dialog{position:fixed;inset:0;z-index:9998;background:rgba(15,29,38,.58);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:8vh 1rem 2rem}
.global-search-card{width:min(680px,100%);max-height:78vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(7,22,31,.3);padding:1.15rem}
.global-search-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.global-search-card-head small{display:block;color:#b86f3c;font-weight:800;letter-spacing:.09em;margin-bottom:.2rem}
.global-search-card-head h2{margin:0;color:#142d3e;font-size:1.35rem}
.global-search-card-head button{border:0;background:#eff3f5;color:#29485d;border-radius:50%;width:36px;height:36px;font-size:1.45rem;line-height:1;cursor:pointer}
.global-search-card-head button:hover{background:#e4eaed}
.global-search-field{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;border:2px solid #dbe3e7;border-radius:12px;padding:.55rem .75rem;background:#fff}
.global-search-field:focus-within{border-color:#b86f3c;box-shadow:0 0 0 4px rgba(184,111,60,.13)}
.global-search-field>span{font-size:1.4rem;color:#647985}
.global-search-field input{border:0!important;box-shadow:none!important;outline:0;width:100%;min-width:0;font-size:1rem;padding:.35rem 0;background:transparent}
.global-search-field kbd{font:inherit;font-size:.72rem;color:#657783;background:#f1f4f5;border:1px solid #dce2e5;border-radius:5px;padding:.2rem .42rem}
.global-search-results{position:static!important;margin-top:.7rem;box-shadow:none!important;border:1px solid #e0e6e9!important;border-radius:12px!important;max-height:48vh;overflow:auto}
body.global-search-open{overflow:hidden}
@media(max-width:850px){.global-search-open{width:100%;justify-content:center;margin:.25rem 0}.global-search-dialog{padding-top:3vh}.global-search-card{border-radius:14px}.global-search-field kbd{display:none}}

.global-search-results .dashboard-search-result{display:flex;align-items:center;gap:11px;min-height:60px;padding:10px 13px;border-bottom:1px solid #f0ece8;color:#213848;text-decoration:none}
.global-search-results .dashboard-search-result:last-child{border-bottom:0}
.global-search-results .dashboard-search-result:hover,.global-search-results .dashboard-search-result:focus{color:#213848;background:#faf7f4;outline:none}
.global-search-results .dashboard-search-type{flex:0 0 62px;padding:5px 7px;border-radius:7px;background:#f6ebe3;color:#9b5427;text-align:center;font-size:.68rem;font-weight:700;text-transform:uppercase}
.global-search-results .dashboard-search-result-copy{display:flex;flex:1;flex-direction:column;min-width:0}
.global-search-results .dashboard-search-result-copy strong,.global-search-results .dashboard-search-result-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-search-results .dashboard-search-result-copy strong{font-size:.88rem}
.global-search-results .dashboard-search-result-copy small{margin-top:2px;color:#6c7d87;font-size:.76rem}
.global-search-results .dashboard-search-arrow{margin-left:auto;color:#b86f3c;font-size:1.1rem}
.global-search-results .dashboard-search-message{padding:20px;color:#6c7d87;text-align:center}

/* Residencia · renovación visual */
.page-residencia{background:#f3f6f7}
.page-residencia main{display:grid!important;grid-template-columns:minmax(260px,290px) minmax(0,1fr);gap:16px;align-items:start!important;padding:16px!important;min-height:calc(100vh - 54px)}
.page-residencia main>#index-lista-animales{position:sticky;top:68px;width:auto!important;height:calc(100vh - 86px);padding:12px!important;overflow:hidden;border:1px solid #dfe6e9;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(28,48,61,.08)}
.residencia-sidebar-heading{padding:2px 2px 12px;border-bottom:1px solid #edf1f3;margin-bottom:10px}
.residencia-sidebar-heading h2{margin:0;color:#173247;font-size:1.15rem;line-height:1.2}
.residencia-sidebar-heading small{display:block;margin-top:4px;color:#75858e;font-size:.73rem}
.page-residencia #index-lista-animales>.flex-bet-start.w-100{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;height:auto!important;margin-bottom:8px}
.page-residencia #index-lista-animales .filtro{width:100%!important;height:38px;border:1px solid #dce4e8;border-radius:10px;padding:0 11px;background:#f9fbfb;font-size:.85rem}
.page-residencia #index-lista-animales .filtro:focus{border-color:#b86f3c;background:#fff;box-shadow:0 0 0 3px rgba(184,111,60,.12)}
.page-residencia #index-lista-animales>div[style*="overflow-y"]{max-height:calc(100% - 132px)!important;padding:0 3px 8px 0;scrollbar-color:#c4ced3 transparent;scrollbar-width:thin}
.page-residencia #index-lista-animales .lista-item{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;width:100%;padding:10px!important;margin-top:7px!important;border:1px solid #e3e9ec!important;border-radius:11px;background:#fff;box-shadow:0 2px 8px rgba(32,54,68,.045);cursor:grab;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.page-residencia #index-lista-animales .lista-item:hover{transform:translateY(-1px);border-color:#c8d5db!important;box-shadow:0 6px 14px rgba(32,54,68,.09)}
.page-residencia #index-lista-animales .lista-item:active{cursor:grabbing}
.page-residencia #index-lista-animales .lista-item>a:first-child{width:auto!important;color:#173247;font-size:.88rem}
.page-residencia #index-lista-animales .lista-item>div{align-self:center;color:#71818b!important;font-size:.72rem!important;white-space:nowrap}
.page-residencia #index-lista-animales .lista-item>a:last-child{grid-column:1/-1;width:auto!important;margin-top:2px!important;color:#4d6676;font-size:.75rem;line-height:1.25}
.page-residencia #index-lista-animales .lista-item .icono{opacity:.72;margin-right:4px}
.page-residencia #residencia-add-animal{position:absolute;left:12px;right:12px;bottom:12px;width:calc(100% - 24px)!important;min-height:42px;border:0;border-radius:11px;background:linear-gradient(135deg,#b86f3c,#9f5728);box-shadow:0 7px 16px rgba(159,87,40,.22);font-weight:700;letter-spacing:.01em}
.page-residencia main>.w-80{display:grid;width:auto!important;min-width:0;padding-left:0!important;gap:12px}
.residencia-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border:1px solid #e0e7ea;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fbf8f5 100%);box-shadow:0 7px 22px rgba(28,48,61,.06)}
.residencia-heading-copy small{display:block;color:#a75f2f;font-size:.67rem;font-weight:800;letter-spacing:.1em}
.residencia-heading-copy h1{margin:2px 0 2px;color:#142f42;font-size:1.55rem;line-height:1.1}
.residencia-heading-copy p{margin:0;color:#6e808b;font-size:.8rem}
.residencia-stats{display:flex;gap:8px}
.residencia-stat{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:4px 7px;min-width:92px;padding:10px 12px;border-radius:12px}
.residencia-stat strong{font-size:1.25rem;line-height:1}
.residencia-stat small{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.residencia-stat-occupied{background:#e9f3ff;color:#2b6698}
.residencia-stat-free{background:#edf8f1;color:#3d7953}
.page-residencia #index-top{display:block!important;width:100%;height:auto!important;min-height:235px;max-height:320px;padding:14px;border:1px solid #e0e7ea;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(28,48,61,.06);overflow:hidden}
.page-residencia #index-top>.w-100.mb-05{display:flex!important;align-items:center!important;gap:10px;margin:0 0 11px!important;padding-bottom:10px;border-bottom:1px solid #edf1f3}
.page-residencia #mascotasCanilTitulo{color:#19364a;font-size:1rem}
.page-residencia #mascotasCanilPDF{order:2;margin-left:auto!important;margin-right:0!important}
.page-residencia #mascotasCanil{display:block!important;height:auto!important;min-height:165px!important;max-height:240px!important;overflow-y:auto!important;padding-right:3px}
.page-residencia .btn-animalesCanilSeleccionado{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;min-height:142px!important;max-height:none!important;padding:11px;border:1px solid #e2e8eb;border-radius:13px;background:#fbfcfc;box-shadow:0 3px 11px rgba(30,50,62,.05)}
.page-residencia .btn-animalesCanilSeleccionado+.btn-animalesCanilSeleccionado{margin-top:9px}
.page-residencia .btn-animalesCanilSeleccionado>.w-70{display:grid!important;grid-template-columns:minmax(84px,100px) minmax(120px,1.25fr) minmax(110px,1fr) minmax(110px,.9fr) minmax(90px,1fr) minmax(30px,.35fr);align-items:center;gap:12px;width:auto!important}
.page-residencia .btn-animalesCanilSeleccionado>.w-70>*{width:auto!important;min-width:0}
.page-residencia .btn-animalesCanilSeleccionado>.w-70>img{width:100%!important;height:105px;max-height:105px!important;border-radius:10px;object-fit:cover;background:#eef2f3}
.page-residencia .btn-animalesCanilSeleccionado>.w-70>div{font-size:.78rem;line-height:1.35;color:#506774}
.page-residencia .btn-animalesCanilSeleccionado>.w-70>div:nth-child(2){color:#19364a;font-weight:600}
.page-residencia .btn-animalesCanilSeleccionado .observacion{padding:8px!important;border:1px solid #f0e1a3;border-radius:9px!important;background:#fff8d7!important;color:#66551d;font-size:.74rem}
.page-residencia .btn-animalesCanilSeleccionado>.w-25{width:auto!important;min-width:106px;gap:7px}
.page-residencia .btn-animalesCanilSeleccionado>.w-25 .btn-text{display:flex!important;align-items:center;justify-content:flex-start;width:106px!important;min-height:31px;margin:0!important;padding:6px 9px;border:1px solid #dce4e8;border-radius:8px;background:#fff;color:#29485c;font-size:.74rem}
.page-residencia .btn-animalesCanilSeleccionado>.w-25 .btn-text:hover{border-color:#bdcbd2;background:#f7f9fa}
.page-residencia main>.w-80>div[style*="height: 5vh"]{display:flex!important;align-items:center!important;height:auto!important;min-height:48px;margin:0!important;padding:8px 12px;border:1px solid #e0e7ea;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(28,48,61,.045)}
.page-residencia #fecha-estancias{height:34px;border:1px solid #dbe3e7;border-radius:8px;padding:0 9px;background:#f9fbfb}
.page-residencia #imprimir-listado{margin-left:9px!important}
.page-residencia main>.w-80>div.flex-bet-start.w-100:last-child{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(180px,220px);align-items:start!important;gap:13px;padding:14px;border:1px solid #e0e7ea;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(28,48,61,.06);overflow:auto}
.page-residencia #canil-cont,.page-residencia #parque-cont{gap:8px 5px!important}
.page-residencia .celda.canil{border:1px solid #d9e1e5!important;border-radius:8px!important;background:#fdfefe!important;color:#2f4959;font-weight:700;box-shadow:0 2px 5px rgba(31,52,65,.06);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease}
.page-residencia .celda.canil:hover{z-index:4;transform:translateY(-2px);border-color:#9eb2bd!important;box-shadow:0 7px 14px rgba(31,52,65,.14)}
.page-residencia .celda.canil.celda-ocupada{border-color:#b7d0e2!important;background:linear-gradient(180deg,#eaf5ff,#dcecff)!important;color:#1e5c8c}
.page-residencia .celda.canil.celda-seleccionada{z-index:3;border:2px solid #b86f3c!important;background:linear-gradient(180deg,#fff8f2,#f5ddcb)!important;color:#8e4c22;box-shadow:0 0 0 3px rgba(184,111,60,.16),0 7px 14px rgba(31,52,65,.12)}
.page-residencia .raya-negra{border-radius:999px;box-shadow:0 1px 3px rgba(0,0,0,.14)}
.page-residencia .punto-amarillo{border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.8)}
.page-residencia #canil-cont>div[style*="position: absolute"]{gap:8px!important;max-height:110px!important}
.page-residencia #salehoy,.page-residencia #salemanana,.page-residencia #saliaayer{overflow:auto;border-radius:10px;box-shadow:0 4px 12px rgba(30,50,62,.09)}
@media(max-width:1050px){.page-residencia main{grid-template-columns:245px minmax(0,1fr)}.residencia-heading-copy p{display:none}.page-residencia .btn-animalesCanilSeleccionado>.w-70{grid-template-columns:80px 1.2fr 1fr .9fr}.page-residencia .btn-animalesCanilSeleccionado>.w-70>div:nth-last-child(-n+2){display:none}.page-residencia main>.w-80>div.flex-bet-start.w-100:last-child{grid-template-columns:1fr}.page-residencia #parque-cont{margin-top:4px}}
@media(max-width:850px){.page-residencia main{display:block!important;padding:10px!important}.page-residencia main>#index-lista-animales{position:relative;top:auto;height:350px;margin-bottom:12px}.page-residencia main>.w-80{display:block}.residencia-heading{margin-bottom:12px}.page-residencia #index-top{margin-bottom:12px;max-height:none}.page-residencia main>.w-80>div[style*="height: 5vh"]{margin-bottom:12px!important}.page-residencia .btn-animalesCanilSeleccionado{grid-template-columns:1fr}.page-residencia .btn-animalesCanilSeleccionado>.w-25{display:flex!important;flex-direction:row!important}.page-residencia .btn-animalesCanilSeleccionado>.w-25 .btn-text{width:auto!important}.residencia-heading-copy p{display:none}}
.page-residencia #index-lista-animales .lista-item[hidden]{display:none!important}

/* Directorios de clientes y mascotas */
.page-clientes,.page-animales,.page-estancia{background:#f3f6f7}
.directory-page{padding-top:18px!important;padding-bottom:55px!important}
.directory-heading{display:flex!important;align-items:center!important;gap:12px;margin-bottom:14px;padding:18px 20px;border:1px solid #e0e7ea;border-radius:16px;background:linear-gradient(135deg,#fff,#fbf8f5);box-shadow:0 7px 22px rgba(28,48,61,.06)}
.directory-heading-copy{min-width:0}
.directory-heading-copy h1{margin:0;color:#142f42;font-size:1.7rem;line-height:1.1}
.directory-heading-copy p{margin:5px 0 0;color:#71828c;font-size:.82rem}
.directory-heading form{margin-left:0!important}
.directory-heading .btn-main{min-height:40px;padding:0 18px;border:0;border-radius:10px;background:linear-gradient(135deg,#b86f3c,#9f5728);box-shadow:0 6px 15px rgba(159,87,40,.22);font-weight:700}
.directory-count{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:5px;margin-left:auto;padding:9px 12px;border-radius:11px;background:#eaf3f8;color:#285f80}
.directory-count strong{font-size:1.15rem;line-height:1}
.directory-count small{font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.directory-list{display:block}
.directory-filters{position:sticky;top:52px;z-index:7;display:grid!important;grid-template-columns:1.25fr .95fr .85fr 1.1fr auto;align-items:center!important;gap:10px;width:100%;margin-bottom:10px!important;padding:11px!important;border:1px solid #e0e7ea;border-radius:14px!important;background:rgba(255,255,255,.96)!important;box-shadow:0 7px 20px rgba(28,48,61,.08);backdrop-filter:blur(8px)}
.directory-filters>div{width:100%!important}
.directory-filters .filtro{width:100%!important;height:39px;border:1px solid #dbe3e7;border-radius:9px;padding:0 11px;background:#f9fbfb;font-size:.82rem}
.directory-filters .filtro:focus{border-color:#b86f3c;background:#fff;box-shadow:0 0 0 3px rgba(184,111,60,.12)}
.directory-clear{height:39px;border:1px solid #dce4e8;border-radius:9px;padding:0 12px;background:#fff;color:#4b6473;font-size:.76rem;font-weight:700;cursor:pointer}
.directory-clear:hover{border-color:#b9c8cf;background:#f5f8f9}
.directory-list>.lista-item{position:relative;display:grid!important;grid-template-columns:1.3fr .9fr .85fr 1.05fr;align-items:center;gap:16px;min-height:58px;width:100%;margin-bottom:7px!important;padding:11px 42px 11px 15px!important;border:1px solid #e0e7ea!important;border-radius:12px!important;background:#fff!important;color:#4e6878;box-shadow:0 3px 10px rgba(31,52,65,.045);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.directory-list>.lista-item::after{content:'→';position:absolute;right:15px;top:50%;transform:translateY(-50%);color:#b86f3c;font-size:1.05rem;opacity:.7}
.directory-list>.lista-item:hover,.directory-list>.lista-item:focus{transform:translateY(-1px);border-color:#bdccd3!important;box-shadow:0 7px 17px rgba(31,52,65,.1);color:#29485a;outline:none}
.directory-list>.lista-item>div{width:auto!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}
.directory-list>.lista-item>div:first-child{color:#1e4057;font-size:.88rem;font-weight:700!important}
.directory-list>.lista-item[hidden],.directory-empty[hidden]{display:none!important}
.directory-list>.directory-row-incomplete{border-style:dashed!important;background:#fffaf2!important}
.directory-list>.directory-row-incomplete>div:first-child{color:#9a602f}
.directory-empty{padding:35px;border:1px dashed #cfd9de;border-radius:13px;background:#fff;color:#70828c;text-align:center;font-size:.88rem}

/* Ficha de estancia */
.stay-page{padding-top:18px!important;padding-bottom:55px!important}
.stay-heading{display:flex!important;align-items:center!important;gap:12px;margin:0 0 14px!important;padding:17px 19px;border:1px solid #e0e7ea;border-radius:16px;background:linear-gradient(135deg,#fff,#fbf8f5);box-shadow:0 7px 22px rgba(28,48,61,.06)}
.stay-heading h1{margin:0;color:#142f42;font-size:1.55rem;line-height:1.2}
.stay-heading>a{margin-left:0!important;border:1px solid #d9e2e6;border-radius:9px;padding:7px 10px;background:#fff}
.stay-save-badge{margin-left:auto;padding:7px 10px;border-radius:999px;background:#eaf7ef;color:#397653;font-size:.71rem;font-weight:800}
.stay-save-badge::before{content:'●';margin-right:5px;font-size:.62rem}
.stay-page .form-formato{display:grid!important;grid-template-columns:minmax(0,1fr) 330px;align-items:start!important;gap:16px}
.stay-main-column,.stay-side-column{width:auto!important;min-width:0}
.stay-main-column{display:grid!important;grid-template-columns:1fr 1fr;gap:14px}
.stay-main-column>.w-100:first-child,.stay-main-column>.w-100:nth-child(2),.stay-main-column>.w-100:last-child{grid-column:1/-1}
.stay-main-column>.w-100:first-child{display:grid!important;grid-template-columns:1fr 1fr;gap:14px}
.stay-main-column>.w-100:first-child>.bloque{width:auto!important;margin:0!important;border:1px solid #e0e7ea!important;border-radius:14px!important;background:#fff!important;box-shadow:0 5px 16px rgba(28,48,61,.055)}
.stay-page .bloque{border:1px solid #e0e7ea!important;border-radius:14px!important;background:#fff!important;box-shadow:0 5px 16px rgba(28,48,61,.055)}
.stay-main-column>.bloque{width:auto!important;margin:0!important;padding:15px!important}
.stay-section-title{width:100%;margin:0 0 14px;color:#19364a;font-size:1rem;line-height:1.2}
.stay-section-title::before{content:'';display:inline-block;width:4px;height:15px;margin-right:8px;border-radius:4px;background:#b86f3c;vertical-align:-2px}
.stay-page label{color:#425d6d;font-size:.76rem;font-weight:700}
.stay-page input,.stay-page select,.stay-page textarea{border:1px solid #d7e0e4!important;border-radius:9px!important;background:#fbfcfc!important}
.stay-page input:focus,.stay-page select:focus,.stay-page textarea:focus{border-color:#b86f3c!important;background:#fff!important;box-shadow:0 0 0 3px rgba(184,111,60,.11)!important}
.stay-page textarea{min-height:68px}
.stay-page #form-insertmedicamento{padding:11px;border:1px dashed #d5dfe3;border-radius:10px;background:#f8fafb}
.stay-side-column{position:sticky;top:68px}
.stay-side-column>.bloque{padding:15px!important}
.stay-side-column>.bloque:first-child{border-color:#edc9c9!important;background:#fffafa!important}
.stay-side-column>.bloque:nth-child(2){border-color:#d3e4ef!important;background:#f8fcff!important}
.stay-side-column #precioEstancia,.stay-side-column #precioTotal{color:#174e70;font-size:1.05rem}
.stay-side-column h2{margin-top:0;color:#19364a;font-size:1.15rem}
.stay-side-column>.flex-end-center{padding:8px 0}
@media(max-width:900px){.directory-filters{position:static;grid-template-columns:1fr 1fr}.directory-list>.lista-item{grid-template-columns:1fr 1fr}.stay-page .form-formato{grid-template-columns:1fr}.stay-side-column{position:static}.stay-main-column{grid-template-columns:1fr}.stay-main-column>.w-48{grid-column:1/-1}.stay-heading{align-items:flex-start!important;flex-wrap:wrap}.stay-save-badge{margin-left:0}.stay-heading>a{margin-left:auto!important}}
@media(max-width:620px){.directory-page{padding:10px!important}.directory-heading{align-items:flex-start!important;flex-wrap:wrap}.directory-heading-copy{width:100%}.directory-count{margin-left:0}.directory-heading form{margin-left:auto!important}.directory-filters{grid-template-columns:1fr}.directory-list>.lista-item{grid-template-columns:1fr;padding-right:38px!important}.directory-list>.lista-item>div:empty{display:none}.stay-main-column>.w-100:first-child{grid-template-columns:1fr}.stay-heading h1{font-size:1.25rem}.stay-save-badge{order:3}}
/* Histórico, facturas y planificación de ocupación */
.page-historico-estancias,.page-facturas,.page-tabla{background:#f3f6f7}
.history-page,.invoice-page,.occupancy-page{padding-top:18px!important;padding-bottom:58px!important}
.workspace-hero{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:18px 20px;border:1px solid #e0e7ea;border-radius:17px;background:linear-gradient(135deg,#fff,#fbf8f5);box-shadow:0 8px 24px rgba(28,48,61,.065)}
.workspace-hero-copy{min-width:0}
.workspace-hero-copy>small{display:block;margin-bottom:4px;color:#a35c2e;font-size:.65rem;font-weight:900;letter-spacing:.11em}
.workspace-hero h1{margin:0;color:#142f42;font-size:1.65rem;line-height:1.12}
.workspace-hero p{margin:5px 0 0;color:#70818b;font-size:.82rem}
.workspace-count{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:5px;margin-left:auto;padding:9px 12px;border-radius:11px;background:#eaf3f8;color:#285f80;white-space:nowrap}
.workspace-count strong{font-size:1.1rem;line-height:1}
.workspace-count small{font-size:.63rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.workspace-primary-action{margin:0!important}
.workspace-primary-action .btn-main{min-height:40px;padding:0 17px;border:0;border-radius:10px;background:linear-gradient(135deg,#b86f3c,#9f5728);box-shadow:0 6px 15px rgba(159,87,40,.2);font-size:.78rem;font-weight:800}
.workspace-clear{height:39px;border:1px solid #d9e3e7;border-radius:9px;padding:0 12px;background:#fff;color:#486170;font-size:.74rem;font-weight:800;white-space:nowrap;cursor:pointer}
.workspace-clear:hover{border-color:#b9c8cf;background:#f4f8f9}

/* Histórico de estancias */
.history-workspace{margin-top:0!important}
.history-toolbar{position:sticky;top:52px;z-index:8;display:grid!important;grid-template-columns:repeat(5,minmax(100px,1fr));align-items:end!important;gap:9px;width:100%;margin-bottom:10px;padding:12px!important;border:1px solid #dfe7ea!important;border-radius:15px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 8px 22px rgba(28,48,61,.08);backdrop-filter:blur(8px)}
.history-filter-field{display:grid;gap:4px;min-width:0}
.history-filter-field>span{padding-left:2px;color:#607581;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em}
.history-filter-field>.filtro{width:100%!important;height:38px;border:1px solid #d8e1e5!important;border-radius:9px!important;padding:0 10px;background:#f9fbfb!important;color:#294655;font-size:.78rem}
.history-filter-field>.filtro:focus{border-color:#b86f3c!important;background:#fff!important;box-shadow:0 0 0 3px rgba(184,111,60,.11)!important}
.history-clear{grid-column:5;justify-self:end}
.history-rows{display:block!important}
.history-row{position:relative;display:grid!important;grid-template-columns:.85fr .85fr .45fr .6fr .5fr .75fr .85fr 1fr .55fr .9fr;align-items:center!important;gap:12px;min-height:58px;width:100%;margin:0 0 7px!important;padding:10px 14px!important;border:1px solid #e0e7ea!important;border-radius:12px!important;background:#fff!important;box-shadow:0 3px 10px rgba(31,52,65,.045);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}
.history-row:hover{transform:translateY(-1px);border-color:#bccbd2!important;box-shadow:0 7px 17px rgba(31,52,65,.09)}
.history-row>div{width:auto!important;min-width:0;color:#526b78;font-size:.77rem;overflow:hidden;text-overflow:ellipsis}
.history-row>div:nth-child(7){font-weight:700;text-align:center}
.history-row>div:nth-child(8){color:#21475e;font-weight:750}
.history-row>div:last-child{color:#80613e;font-size:.68rem;font-weight:750}
.history-row a{color:#9d5a2f;font-weight:750;text-decoration:none}
.history-row[hidden],.history-row[style*="display: none"]{display:none!important}

/* Facturas */
.invoice-period{display:flex!important;align-items:center!important;gap:9px;margin:0 0 11px!important;padding:11px 13px;border:1px solid #e0e7ea;border-radius:13px;background:#fff;box-shadow:0 4px 13px rgba(28,48,61,.045)}
.invoice-period .filtro-fecha{height:37px;border:1px solid #d8e1e5!important;border-radius:9px!important;background:#f9fbfb!important}
.invoice-period .filtro-fecha-submit{height:37px;border-radius:9px!important}
.invoice-period .invoice-export-link{margin-left:auto!important}
.invoice-period .btn-main{margin-left:0!important;border-radius:9px!important;background:#9f5c31!important;box-shadow:0 5px 13px rgba(159,92,49,.18)}
.invoice-overview{display:block!important;width:100%!important;margin-top:0!important}
.invoice-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.48fr);align-items:stretch;gap:11px;width:100%;margin-bottom:11px}
.invoice-filters{position:static;display:grid!important;grid-template-columns:.65fr .9fr 1.25fr 1fr;align-items:center!important;gap:9px;width:100%!important;margin:0!important;padding:12px!important;border:1px solid #dfe7ea!important;border-radius:15px!important;background:#fff!important;box-shadow:0 8px 22px rgba(28,48,61,.08)}
.invoice-filters>div{width:auto!important;min-width:0}
.invoice-filters .filtro{width:100%!important;height:38px;border:1px solid #d8e1e5!important;border-radius:9px!important;padding:0 10px;background:#f9fbfb!important;color:#294655;font-size:.77rem}
.invoice-filters .filtro:focus{border-color:#b86f3c!important;background:#fff!important;box-shadow:0 0 0 3px rgba(184,111,60,.11)!important}
.invoice-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;padding:9px;border:1px solid #dfe7ea;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(28,48,61,.06)}
.invoice-summary-card{align-self:stretch;display:flex!important;flex-direction:column;justify-content:center;min-width:0!important;min-height:84px;padding:10px 11px;border-radius:11px;background:#f2f7f9;color:#36586b;text-align:left!important}
.invoice-summary-card#destino-cobrado{background:#eef8f0;color:#2f7547}
.invoice-summary-card#destino-pendiente{background:#fff3f1;color:#a6463d}
.invoice-summary-card>div{width:auto!important;text-align:left!important}
.invoice-summary-card span{display:inline-block;line-height:1.3}
.invoice-summary-card span:nth-of-type(2){margin-top:3px;font-size:1rem!important}
.invoice-summary-card p{margin:0!important;font-size:.68rem!important;line-height:1.35}
.invoice-clear{height:38px}
.invoice-summary-source{display:none!important}
.invoice-rows{display:block!important;width:100%!important;margin-top:0}
.invoice-row{position:relative;display:grid!important;grid-template-columns:.55fr .78fr 1.35fr .9fr .62fr .72fr .76fr .6fr .62fr .58fr;align-items:center!important;gap:9px;min-height:60px;width:100%;margin:0 0 7px!important;padding:10px 12px!important;border:1px solid #e0e7ea!important;border-left:4px solid #76a85c!important;border-radius:12px!important;background:#fff!important;box-shadow:0 3px 10px rgba(31,52,65,.045);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.invoice-row-pending{border-left-color:#d17a58!important;background:#fffdfb!important}
.invoice-row:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(31,52,65,.09)}
.invoice-row>div,.invoice-row>a,.invoice-row>button{width:auto!important;min-width:0;font-size:.77rem}
.invoice-row>div:nth-child(1){color:#23475c;font-weight:800}
.invoice-row>div:nth-child(5){color:#173f57;font-weight:800;text-align:right}
.invoice-row>div:nth-child(6){justify-self:start;border-radius:999px;padding:5px 10px;background:#eaf6e8!important;color:#347346!important;font-size:.69rem;font-weight:850;text-align:center}
.invoice-row-pending>div:nth-child(6){background:#fff0ec!important;color:#a84c40!important}
.invoice-row .btn-text{display:inline-flex!important;align-items:center;justify-content:center;gap:4px;min-height:34px;border:1px solid #dbe3e6!important;border-radius:8px!important;padding:6px 7px!important;background:#fff!important;color:#496372!important;text-align:center;white-space:nowrap}
.invoice-row .btn-text:hover{border-color:#b7c8cf!important;background:#f5f8f9!important}
.invoice-row[hidden],.invoice-row[style*="display: none"]{display:none!important}

/* Reservas y ocupación */
.occupancy-hero{flex-wrap:wrap}
.occupancy-stats{display:flex;gap:8px;margin-left:auto}
.occupancy-stats .workspace-count{margin-left:0}
.occupancy-stats .workspace-count:first-child{background:#fff0e6;color:#9c572c}
.occupancy-legend{display:flex;gap:12px;width:100%;padding-top:10px;border-top:1px solid #e6ecef;color:#637681;font-size:.7rem;font-weight:750}
.occupancy-legend span{display:flex;align-items:center;gap:5px}
.occupancy-legend i{display:block;width:12px;height:12px;border:1px solid #d7e1e5;border-radius:4px;background:#fff}
.occupancy-legend i.is-busy{border-color:#edb7b7;background:#ffd4d4}
.occupancy-month{overflow:hidden;margin:0 0 10px!important;padding:0!important;border:1px solid #dfe7ea!important;border-radius:13px!important;background:#fff!important;box-shadow:0 4px 13px rgba(28,48,61,.05)}
.occupancy-month>div:first-child{display:flex!important;align-items:center!important;min-height:54px;padding:0 14px;background:linear-gradient(90deg,#fff,#fbfcfc)}
.occupancy-month h2,.occupancy-month h3{margin:0;color:#243f50;font-size:.9rem}
.occupancy-toggle{margin-left:auto;border:1px solid #d8e2e6!important;border-radius:8px!important;padding:6px 11px!important;background:#fff!important;color:#496372!important;font-size:.72rem;font-weight:800;cursor:pointer}
.occupancy-toggle:hover{border-color:#b86f3c!important;color:#9b572d!important}
.occupancy-month:has(.occupancy-table:not([style*="display: none"])){border-color:#cab7aa!important;box-shadow:0 8px 21px rgba(76,55,42,.09)}
.occupancy-table{display:table;width:max-content;min-width:100%;margin:0!important;border-collapse:separate!important;border-spacing:0!important;font-size:.68rem}
.occupancy-table th{position:sticky;top:52px;z-index:4;background:#eaf0f3!important;color:#345261!important;font-weight:850}
.occupancy-table th:first-child,.occupancy-table td:first-child{position:sticky;left:0;z-index:3;background:#edf2f4!important;color:#294857;font-weight:850}
.occupancy-table th:first-child{z-index:5}
.occupancy-table td{min-width:42px;height:34px;border-color:#e1e7ea!important;vertical-align:top}
.occupancy-table td:not(:empty){background:#ffd8d8!important;color:#703c3c}
.occupancy-table td a{color:inherit;text-decoration:none}

@media(max-width:1180px){.history-toolbar{grid-template-columns:repeat(3,minmax(120px,1fr))}.history-clear{grid-column:auto}.history-row{grid-template-columns:repeat(5,1fr)}.invoice-toolbar{grid-template-columns:1fr}.invoice-filters{grid-template-columns:repeat(4,1fr)}.invoice-summary-card{min-height:68px}.invoice-row{grid-template-columns:repeat(5,1fr)}.invoice-row>[data-label]{display:grid;gap:3px}.invoice-row>[data-label]::before{content:attr(data-label);color:#788991;font-size:.59rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.invoice-row>.btn-text{justify-self:stretch}.workspace-hero{flex-wrap:wrap}.workspace-count{margin-left:auto}.occupancy-stats{order:3;width:100%;margin-left:0}.occupancy-legend{order:4}}
@media(max-width:700px){.history-page,.invoice-page,.occupancy-page{padding:10px!important}.workspace-hero{align-items:flex-start;padding:15px}.workspace-hero-copy{width:100%}.workspace-hero h1{font-size:1.35rem}.workspace-count{margin-left:0}.workspace-primary-action{margin-left:auto!important}.history-toolbar{position:static;grid-template-columns:1fr 1fr}.history-row,.invoice-row{grid-template-columns:1fr 1fr}.history-row>div:empty,.invoice-row>div:empty{display:none}.invoice-period{flex-wrap:wrap}.invoice-period .invoice-export-link{margin-left:0!important}.invoice-period .btn-main{width:auto;margin-left:0!important}.invoice-filters{grid-template-columns:1fr 1fr}.invoice-summary-grid{grid-template-columns:1fr}.invoice-summary-card{min-height:58px}.occupancy-stats{display:grid;grid-template-columns:1fr 1fr}.occupancy-stats .workspace-count:last-child{grid-column:1/-1}.occupancy-table th{top:0}}
@media(max-width:470px){.invoice-period>*{width:100%!important;margin:0!important}.invoice-period .invoice-export-link,.invoice-period .btn-main{justify-content:center}.invoice-filters,.invoice-row{grid-template-columns:1fr}.invoice-row{padding:13px}.invoice-row .btn-text{width:100%!important}.invoice-hero .workspace-primary-action,.invoice-hero .workspace-count{margin-left:0!important}}
.history-rows{margin-top:52px!important}
/* CisterCan admin insights v1 */
.cc-admin-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:16px 0 20px;padding:25px 28px;border:1px solid #eadfd5;border-radius:20px;background:linear-gradient(135deg,#fff 0%,#fbf6f1 72%,#f0dfd0 100%);box-shadow:0 10px 30px rgba(58,36,19,.07)}
.cc-admin-hero h1{margin:4px 0 5px;font-size:clamp(26px,3vw,38px);line-height:1.08;color:#30271f}.cc-admin-hero p{margin:0;color:#6f6257;font-size:15px}.cc-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#ad6633}.cc-safe-badge{flex:0 0 auto;padding:9px 13px;border-radius:999px;background:#edf7ef;color:#2b7641;font-size:12px;font-weight:800}
.cc-original-title{display:none!important}.cc-section-nav{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}.cc-section-nav a{padding:9px 13px;border:1px solid #e1d8d0;border-radius:10px;background:#fff;color:#5e5045;font-weight:700;text-decoration:none}.cc-section-nav a:hover{border-color:#bc7543;color:#9d5525}.cc-autosave-note{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:11px 14px;border-radius:12px;background:#edf7ef;color:#355c40}.cc-autosave-note strong{font-size:13px}.cc-autosave-note span{font-size:12px;color:#587060}
.page-configuracion .form-formato.bloque{border-radius:18px!important;border:1px solid #e8dfd7!important;box-shadow:0 7px 22px rgba(58,36,19,.055)!important}.page-configuracion .form-formato h2{display:flex;justify-content:space-between;align-items:center;gap:12px}.page-configuracion .form-formato h2 small{padding:5px 9px;border-radius:999px;background:#f4ede7;color:#87684f;font-size:11px;font-weight:700}.page-configuracion textarea{line-height:1.45}.page-configuracion input.ajax:focus,.page-configuracion textarea.ajax:focus{border-color:#b96f3d!important;box-shadow:0 0 0 3px rgba(185,111,61,.13)!important}
.page-tablas-auxiliares main.w-max{display:grid;grid-template-columns:1fr 1fr;gap:16px}.page-tablas-auxiliares .cc-admin-hero{grid-column:1/-1;margin-bottom:0}.page-tablas-auxiliares .form-formato.bloque{width:auto!important;margin:0!important;border-radius:18px!important;border:1px solid #e8dfd7!important;box-shadow:0 7px 22px rgba(58,36,19,.055)!important}.page-tablas-auxiliares .form-formato[data-section="veterinarios"]{grid-column:1/-1}.cc-list-tools{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 14px;padding:13px;border-radius:13px;background:#f8f4f0}.cc-list-tools label{display:grid;gap:5px;width:min(480px,75%)}.cc-list-tools label span{font-size:12px;font-weight:800;color:#6d5b4d}.cc-list-tools input{width:100%!important}.cc-list-tools strong{color:#a75f2d;font-size:13px;white-space:nowrap}.cc-vet-head{display:grid;grid-template-columns:35fr 20fr 20fr 20fr;gap:2.5%;padding:0 0 8px;color:#84766b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.page-tablas-auxiliares [id^="veterinario"]{padding:6px 0;border-top:1px solid #f0e9e3}.page-tablas-auxiliares [id^="veterinario"]:hover{background:#fdfaf8}.page-tablas-auxiliares .cc-danger-action{color:#a83f38!important;background:#fff4f3!important;border-color:#efd1cf!important}.page-tablas-auxiliares .cc-danger-action:hover{background:#a83f38!important;color:#fff!important}
.cc-stats-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:-4px 0 18px}.cc-stats-kpis article{display:grid;gap:5px;padding:17px 18px;border:1px solid #e8dfd7;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(58,36,19,.05)}.cc-stats-kpis article span{color:#786b60;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.cc-stats-kpis article strong{font-size:24px;color:#342a23}.cc-stats-kpis article small{color:#91877f}.cc-stats-kpis .is-positive{border-top:3px solid #4d9c62}.cc-stats-kpis .is-warning{border-top:3px solid #da8b42}.page-estadisticas .bloque,.page-estadisticas-year .bloque{border-radius:18px!important;border:1px solid #e8dfd7!important;box-shadow:0 7px 22px rgba(58,36,19,.055)!important}.page-estadisticas .bloque h2,.page-estadisticas-year .bloque h2{font-size:21px}.cc-chart-scroll{width:100%;overflow-x:auto;scrollbar-width:thin}.cc-chart-scroll>div{min-width:860px}
@media(max-width:800px){.cc-admin-hero{align-items:flex-start;padding:20px}.cc-safe-badge{display:none}.page-tablas-auxiliares main.w-max{display:block}.page-tablas-auxiliares .form-formato.bloque{margin-bottom:14px!important}.cc-stats-kpis{grid-template-columns:1fr 1fr}.cc-vet-head{display:none}.page-tablas-auxiliares [id^="veterinario"]{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.page-tablas-auxiliares [id^="veterinario"]>*{width:100%!important}.cc-list-tools{align-items:stretch;flex-direction:column}.cc-list-tools label{width:100%}}
@media(max-width:480px){.cc-stats-kpis{grid-template-columns:1fr}.cc-admin-hero h1{font-size:27px}}

/* CisterCan admin insights layout fix v1 */
.page-tablas-auxiliares main.w-max>section.flex-bet-start{grid-column:1/-1;display:grid!important;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:800px){.page-tablas-auxiliares main.w-max>section.flex-bet-start{display:block!important}}

/* CisterCan group billing v1 */
.cc-group-invoice{margin:18px 0;padding:20px;border:1px solid #d8e7dc;border-radius:18px;background:linear-gradient(135deg,#f5fbf6,#fff);box-shadow:0 8px 25px rgba(43,94,57,.08)}.cc-group-invoice-head>span{display:inline-flex;margin-bottom:6px;padding:5px 9px;border-radius:999px;background:#e4f3e8;color:#347248;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.cc-group-invoice h3{margin:0 0 5px;color:#2f3a32;font-size:20px}.cc-group-invoice p{margin:0 0 15px;color:#68766c}.cc-group-main,.cc-group-dog{display:flex;align-items:center;gap:12px;margin:8px 0;padding:11px 13px;border:1px solid #e4e9e5;border-radius:12px;background:#fff}.cc-group-main{justify-content:space-between;border-color:#d1e5d6}.cc-group-dog{cursor:pointer}.cc-group-dog input{width:18px!important;height:18px;accent-color:#4d8b5d}.cc-group-dog span{display:grid;gap:2px}.cc-group-dog small,.cc-group-main small{color:#7a867d}.cc-group-submit{width:100%;margin-top:12px}.cc-group-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#8b8178;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.cc-group-divider:before,.cc-group-divider:after{content:"";height:1px;flex:1;background:#e2d9d1}@media(max-width:600px){.cc-group-invoice{padding:15px}.cc-group-main{align-items:flex-start;flex-direction:column;gap:3px}}

/* CisterCan safe intake v1 */
#modalNuevoAnimal .modal-front,
#modalNuevaEstancia .modal-front{width:min(1080px,94vw)!important;max-height:92vh;overflow:auto;border:0;border-radius:18px;box-shadow:0 24px 70px rgba(28,42,48,.28);padding:24px;background:#fbfaf8}
#modalNuevoAnimal .modal-titulo,
#modalNuevaEstancia .modal-titulo{font-size:1.35rem;font-weight:800;color:#243942;letter-spacing:-.02em}
#modalNuevoAnimal form,
#modalNuevaEstancia form{gap:12px}
#modalNuevoAnimal form>div,
#modalNuevaEstancia form>div{border-color:#e4ded4!important}
#modalNuevoAnimal label,
#modalNuevaEstancia label{font-weight:700;color:#3d5058;margin-bottom:5px;display:block}
#modalNuevoAnimal input,
#modalNuevoAnimal select,
#modalNuevoAnimal textarea,
#modalNuevaEstancia input,
#modalNuevaEstancia select,
#modalNuevaEstancia textarea{border:1px solid #d7dedf;border-radius:9px;background:#fff;min-height:40px;padding:8px 10px;transition:border-color .18s,box-shadow .18s}
#modalNuevoAnimal input:focus,
#modalNuevoAnimal select:focus,
#modalNuevoAnimal textarea:focus,
#modalNuevaEstancia input:focus,
#modalNuevaEstancia select:focus,
#modalNuevaEstancia textarea:focus{border-color:#b56938;box-shadow:0 0 0 3px rgba(181,105,56,.12);outline:0}
#modalNuevoAnimal input:required:invalid:not(:placeholder-shown),
#modalNuevaEstancia input:required:invalid:not(:placeholder-shown){border-color:#d17b6e}
.intake-intro{width:100%;display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:12px;background:#eef5f3;color:#304a50;border:1px solid #d9e8e4}
.intake-intro strong{font-size:1.02rem}.intake-intro span{font-size:.88rem;color:#60747a}
.intake-message{width:100%;padding:11px 14px;border-radius:10px;font-weight:700;font-size:.9rem}
.intake-message--error{background:#fff0ed;color:#8b352b;border:1px solid #f2c4bd}
.intake-message--success{background:#edf8f1;color:#29633c;border:1px solid #bfe2ca}
.field-counter{display:block;margin-top:4px;text-align:right;color:#78878b;font-size:.72rem}
#modalNuevaEstancia #button-recogida{border:1px solid #cbbcad!important;background:#fff8ef!important;color:#8a4e27;border-radius:999px;padding:7px 13px;font-weight:800}
#modalNuevaEstancia #datos-recogida{background:#fff;border-color:#e4ded4!important;border-radius:12px!important;padding:14px!important}
.stay-intake-summary{width:100%;margin-top:14px;padding:16px;border:1px solid #dce6e5;border-radius:14px;background:linear-gradient(135deg,#f3f8f7,#fffaf4)}
.stay-intake-summary__title{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#62767b;margin-bottom:10px}
.stay-intake-summary__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.stay-intake-summary__grid>div{min-width:0;padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.88);border:1px solid rgba(218,226,225,.9)}
.stay-intake-summary__grid span{display:block;color:#7a898d;font-size:.71rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
.stay-intake-summary__grid strong{display:block;color:#2d4148;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modalNuevoAnimal button[type="submit"],
#modalNuevaEstancia button[form="form-nuevaEstancia"]{min-width:190px;min-height:44px;border-radius:10px;font-weight:900;box-shadow:0 8px 20px rgba(160,91,47,.18)}
#modalNuevoAnimal button:disabled,
#modalNuevaEstancia button:disabled{opacity:.65;cursor:wait}
@media (max-width:800px){
  #modalNuevoAnimal .modal-front,#modalNuevaEstancia .modal-front{width:96vw!important;padding:16px}
  #modalNuevoAnimal form>[class*="w-"],#modalNuevaEstancia form>[class*="w-"]{width:100%!important;margin-left:0!important;padding-left:0!important}
  .stay-intake-summary__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* CisterCan clients and history v1 */
#modalNuevoCliente .modal-front{width:min(1080px,94vw)!important;max-height:92vh;overflow:auto;border:0;border-radius:18px;box-shadow:0 24px 70px rgba(28,42,48,.28);padding:24px;background:#fbfaf8}
#modalNuevoCliente .modal-titulo{font-size:1.35rem;font-weight:850;color:#243942}
#modalNuevoCliente form>.form-formato{border:0!important;padding:0!important}
#modalNuevoCliente h2{font-size:1rem;color:#4a5e65;margin:14px 0 9px}
#modalNuevoCliente label{font-weight:700;color:#40535a;margin-bottom:5px;display:block}
#modalNuevoCliente input{border:1px solid #d7dedf;border-radius:9px;background:#fff;min-height:40px;padding:8px 10px}
#modalNuevoCliente input:focus{border-color:#b56938;box-shadow:0 0 0 3px rgba(181,105,56,.12);outline:0}
#modalNuevoCliente button[type="submit"]{min-width:190px;min-height:44px;border-radius:10px;font-weight:900}
.client-intake-intro{margin-bottom:8px}
.client-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 14px}
.client-kpi{padding:13px 15px;border:1px solid #e1e6e5;background:#fff;border-radius:12px;box-shadow:0 4px 16px rgba(43,57,62,.045)}
.client-kpi span{display:block;font-size:.7rem;color:#74858a;text-transform:uppercase;letter-spacing:.06em;font-weight:800;margin-bottom:4px}
.client-kpi strong{display:block;font-size:1.15rem;color:#283d45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-kpi small{display:block;color:#8b6a50;margin-top:2px}
.client-save-status{display:inline-flex;align-items:center;gap:7px;margin-right:13px;padding:7px 10px;border-radius:999px;background:#eef5f3;color:#466069;font-size:.77rem;white-space:nowrap}
.client-save-status span{width:8px;height:8px;border-radius:50%;background:#69a27b}.client-save-status--pending span{background:#d79a42}.client-save-status--saving span{background:#4b8ec2;animation:clientPulse 1s infinite}.client-save-status--error{background:#fff0ed;color:#8b352b}.client-save-status--error span{background:#c95f50}
@keyframes clientPulse{50%{opacity:.35}}
.client-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin:-3px 0 16px}
.client-quick-actions a,.client-quick-actions button{display:flex;flex-direction:column;align-items:flex-start;min-width:170px;padding:10px 12px;border:1px solid #dfe5e4;border-radius:10px;background:#fff;color:#566a70;font-size:.72rem;text-decoration:none;cursor:pointer}
.client-quick-actions strong{font-size:.83rem;color:#253d45;margin-top:2px}
.client-quick-actions a:hover,.client-quick-actions button:hover{border-color:#c99b7c;background:#fffaf4}
.directory-pager,.history-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:13px 16px;border:1px solid #dfe6e5;border-radius:12px;background:#f8fbfa;color:#62757b}
.directory-pager button,.history-pager button{border:1px solid #cbbcad;background:#fff8ef;color:#8a4e27;border-radius:9px;padding:8px 13px;font-weight:800;cursor:pointer}
.history-pager>div{display:flex;flex-direction:column;gap:2px}.history-pager strong{color:#344b53}.history-pager span{font-size:.77rem;color:#9b6045}
.history-row--warning{border:1px solid #e9b18f!important;background:#fff8f2!important;position:relative}
.history-row--warning:before{content:'Revisar fechas';position:absolute;left:9px;top:5px;padding:2px 6px;border-radius:999px;background:#f5d3bd;color:#8b482b;font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:900px){.client-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.client-save-status{order:3;width:100%;margin:8px 0 0}.client-quick-actions>*{flex:1 1 160px}}
@media(max-width:600px){#modalNuevoCliente .modal-front{width:96vw!important;padding:16px}.client-overview{grid-template-columns:1fr 1fr}.directory-pager,.history-pager{align-items:flex-start;flex-direction:column}.directory-pager button,.history-pager button{width:100%}}



@media(max-width:520px){.residencia-heading{align-items:stretch;flex-wrap:wrap;gap:10px;padding:14px}.residencia-heading-copy{width:100%;min-width:0}.residencia-stats{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.residencia-stat{min-width:0;padding:9px 10px;justify-content:center}}


/* Estadisticas: cierre visual y resumen ejecutivo - 2026-09-11 */
.multires-app.page-estadisticas .cc-stats-insights,.multires-app.page-estadisticas-year .cc-stats-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:-6px 0 20px}
.multires-app.page-estadisticas .cc-stats-insights article,.multires-app.page-estadisticas-year .cc-stats-insights article{position:relative;display:grid;gap:5px;min-width:0;padding:15px 17px 15px 20px;overflow:hidden;border:1px solid #e1e9e5;border-radius:15px;background:linear-gradient(145deg,#f8fbf9 0%,#fff 72%);box-shadow:0 6px 18px rgba(23,56,44,.045)}
.multires-app.page-estadisticas .cc-stats-insights article::before,.multires-app.page-estadisticas-year .cc-stats-insights article::before{position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#3f7f60,#b46b38);content:""}
.multires-app.page-estadisticas .cc-stats-insights span,.multires-app.page-estadisticas-year .cc-stats-insights span{color:#718078;font-size:.68rem;font-weight:850;letter-spacing:.065em;text-transform:uppercase}
.multires-app.page-estadisticas .cc-stats-insights strong,.multires-app.page-estadisticas-year .cc-stats-insights strong{overflow:hidden;color:#233b32;font-size:1.18rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.multires-app.page-estadisticas .cc-stats-insights small,.multires-app.page-estadisticas-year .cc-stats-insights small{color:#7b8882;font-size:.78rem}
.multires-app.page-estadisticas .stats-billing-tabs,.multires-app.page-estadisticas-year .stats-billing-tabs{display:inline-flex;gap:4px;margin:5px 0 13px;padding:4px;border:1px solid #dbe6e0;border-radius:12px;background:#edf3f0}
.multires-app.page-estadisticas .stats-billing-tabs button,.multires-app.page-estadisticas-year .stats-billing-tabs button{min-height:36px;padding:7px 15px;border:0;border-radius:9px;background:transparent;color:#526b60;cursor:pointer;font:inherit;font-size:.8rem;font-weight:800;transition:background .16s ease,color .16s ease,box-shadow .16s ease}
.multires-app.page-estadisticas .stats-billing-tabs button:hover,.multires-app.page-estadisticas-year .stats-billing-tabs button:hover{color:#8f4d26}
.multires-app.page-estadisticas .stats-billing-tabs button.is-active,.multires-app.page-estadisticas-year .stats-billing-tabs button.is-active{background:#fff;color:#9b552c;box-shadow:0 4px 12px rgba(23,56,44,.09)}
.multires-app.page-estadisticas .stats-billing-tabs button:focus-visible,.multires-app.page-estadisticas-year .stats-billing-tabs button:focus-visible{outline:3px solid rgba(65,115,91,.18);outline-offset:1px}
.multires-app.page-estadisticas .is-stats-hidden,.multires-app.page-estadisticas-year .is-stats-hidden{display:none!important}
.multires-app.page-estadisticas .stats-chart-heading,.multires-app.page-estadisticas-year .stats-chart-heading{margin:0 0 9px!important;color:#526b60!important;font-size:.78rem!important;text-transform:uppercase;letter-spacing:.055em}
.multires-app.page-estadisticas-year .stats-return-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.multires-app.page-estadisticas-year .stats-return-panel>h2{grid-column:1/-1;margin-bottom:4px!important}
.multires-app.page-estadisticas-year .stats-return-panel .stats-return-item{box-sizing:border-box;margin:0!important;padding:11px 13px!important;border:1px solid #e4ebe7;border-radius:12px;background:#fafcfb}
@media(max-width:800px){.multires-app.page-estadisticas .cc-stats-insights,.multires-app.page-estadisticas-year .cc-stats-insights{grid-template-columns:repeat(2,minmax(0,1fr))}.multires-app.page-estadisticas .cc-stats-insights article:last-child,.multires-app.page-estadisticas-year .cc-stats-insights article:last-child{grid-column:1/-1}.multires-app.page-estadisticas .stats-billing-tabs,.multires-app.page-estadisticas-year .stats-billing-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;box-sizing:border-box}.multires-app.page-estadisticas .stats-billing-tabs button,.multires-app.page-estadisticas-year .stats-billing-tabs button{padding-inline:8px}.multires-app.page-estadisticas-year .stats-return-panel{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.multires-app.page-estadisticas .cc-stats-insights,.multires-app.page-estadisticas-year .cc-stats-insights{grid-template-columns:minmax(0,1fr)}.multires-app.page-estadisticas .cc-stats-insights article:last-child,.multires-app.page-estadisticas-year .cc-stats-insights article:last-child{grid-column:auto}}

/* Catálogos: estructura clara y lista de centros controlada - 2026-09-11 */
.multires-app.page-tablas-auxiliares .cc-catalog-note{margin:-2px 0 14px;color:#6f7f7a;font-size:.84rem;line-height:1.45}
.multires-app.page-tablas-auxiliares .cc-vet-add-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:2px 0 14px;padding:14px 16px;border:1px solid #dce8e2;border-radius:13px;background:linear-gradient(135deg,#f1f7f4,#fffaf5)}
.multires-app.page-tablas-auxiliares .cc-vet-add-panel>div{display:grid;gap:2px;min-width:175px}.multires-app.page-tablas-auxiliares .cc-vet-add-panel>div strong{color:#2f4a40;font-size:.86rem}.multires-app.page-tablas-auxiliares .cc-vet-add-panel>div span{color:#7d8a85;font-size:.72rem}
.multires-app.page-tablas-auxiliares .cc-vet-add-form{display:grid!important;grid-template-columns:minmax(220px,1.6fr) minmax(130px,.75fr) minmax(150px,.9fr) auto;gap:9px;align-items:center;flex:1;margin:0!important}
.multires-app.page-tablas-auxiliares .cc-vet-add-form>*{box-sizing:border-box;width:100%!important;margin:0!important}.multires-app.page-tablas-auxiliares .cc-vet-add-form button{min-width:92px}
.multires-app.page-tablas-auxiliares .cc-list-actions{display:flex;align-items:center;gap:10px}.multires-app.page-tablas-auxiliares .cc-list-toggle{min-height:36px;padding:7px 12px;border:1px solid #cbbcad;border-radius:9px;background:#fff;color:#8b512e;cursor:pointer;font:inherit;font-size:.78rem;font-weight:850}.multires-app.page-tablas-auxiliares .cc-list-toggle:hover{background:#fff8ef}
.multires-app.page-tablas-auxiliares [id^="veterinario"][hidden]{display:none!important}
@media(max-width:980px){.multires-app.page-tablas-auxiliares .cc-vet-add-panel{align-items:stretch;flex-direction:column}.multires-app.page-tablas-auxiliares .cc-vet-add-form{grid-template-columns:1fr 1fr}.multires-app.page-tablas-auxiliares .cc-vet-add-form button{grid-column:1/-1}}
@media(max-width:600px){.multires-app.page-tablas-auxiliares .cc-vet-add-form{grid-template-columns:1fr}.multires-app.page-tablas-auxiliares .cc-vet-add-form button{grid-column:auto}.multires-app.page-tablas-auxiliares .cc-list-actions{justify-content:space-between}.multires-app.page-tablas-auxiliares .cc-list-toggle{min-width:110px}}

/* Centros veterinarios: agenda independiente de Catálogos - 2026-09-11 */
.multires-app a[data-vet-directory][aria-current="page"]{background:var(--nav-active-bg,#f3e9df);color:var(--nav-active-color,#8e4f26)}
.multires-app.page-centros-veterinarios main.w-max{display:block!important}
.multires-app.page-centros-veterinarios main.w-max>section.flex-bet-start{display:block!important;width:100%!important}
.multires-app.page-centros-veterinarios .cc-admin-hero{margin-bottom:16px}
.multires-app.page-centros-veterinarios .form-formato.bloque[data-section="veterinarios"]{display:block!important;box-sizing:border-box;width:100%!important;max-width:1240px;margin:0 auto!important;padding:22px!important;border:1px solid #dfe8e4!important;border-radius:18px!important;background:#fff;box-shadow:0 10px 28px rgba(45,67,57,.07)!important}
.multires-app.page-centros-veterinarios .form-formato[data-section="veterinarios"]>h2{margin:0 0 4px;color:#253d34;font-size:1.35rem}
.multires-app.page-centros-veterinarios .cc-catalog-note{margin:0 0 16px;color:#6f7f7a;font-size:.88rem;line-height:1.45}
.multires-app.page-centros-veterinarios .cc-vet-add-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:15px 16px;border:1px solid #dce8e2;border-radius:13px;background:linear-gradient(135deg,#f1f7f4,#fffaf5)}
.multires-app.page-centros-veterinarios .cc-vet-add-panel>div{display:grid;gap:2px;min-width:190px}.multires-app.page-centros-veterinarios .cc-vet-add-panel>div strong{color:#2f4a40;font-size:.86rem}.multires-app.page-centros-veterinarios .cc-vet-add-panel>div span{color:#7d8a85;font-size:.72rem}
.multires-app.page-centros-veterinarios .cc-vet-add-form{display:grid!important;grid-template-columns:minmax(240px,1.6fr) minmax(150px,.8fr) minmax(180px,1fr) 100px;gap:10px;align-items:center;flex:1;margin:0!important}
.multires-app.page-centros-veterinarios .cc-vet-add-form>*{box-sizing:border-box;width:100%!important;margin:0!important}
.multires-app.page-centros-veterinarios .cc-list-tools{align-items:center;margin-bottom:10px;background:#f7f4f1}
.multires-app.page-centros-veterinarios .cc-list-actions{display:flex;align-items:center;gap:10px}
.multires-app.page-centros-veterinarios .cc-list-toggle{min-height:36px;padding:7px 12px;border:1px solid #cbbcad;border-radius:9px;background:#fff;color:#8b512e;cursor:pointer;font:inherit;font-size:.78rem;font-weight:850}
.multires-app.page-centros-veterinarios .cc-vet-head{grid-template-columns:minmax(240px,1.6fr) minmax(150px,.8fr) minmax(180px,1fr) 110px;gap:12px;padding:8px 10px;color:#667a72;background:#edf4f1;border:1px solid #dce8e2;border-radius:10px}
.multires-app.page-centros-veterinarios [id^="veterinario"]{display:grid!important;grid-template-columns:minmax(240px,1.6fr) minmax(150px,.8fr) minmax(180px,1fr) 110px;gap:12px;align-items:center;margin:0!important;padding:8px 10px!important;border-top:0!important;border-bottom:1px solid #edf1ef}
.multires-app.page-centros-veterinarios [id^="veterinario"]:hover{background:#fbfdfc}
.multires-app.page-centros-veterinarios [id^="veterinario"]>*{box-sizing:border-box;width:100%!important;margin:0!important}
.multires-app.page-centros-veterinarios [id^="veterinario"][hidden]{display:none!important}
.multires-app.page-centros-veterinarios .cc-danger-action{color:#a83f38!important;background:#fff4f3!important;border-color:#efd1cf!important}
@media(max-width:980px){.multires-app.page-centros-veterinarios .cc-vet-add-panel{align-items:stretch;flex-direction:column}.multires-app.page-centros-veterinarios .cc-vet-add-form{grid-template-columns:1fr 1fr}.multires-app.page-centros-veterinarios .cc-vet-add-form button{grid-column:1/-1}.multires-app.page-centros-veterinarios .cc-vet-head,.multires-app.page-centros-veterinarios [id^="veterinario"]{grid-template-columns:minmax(210px,1.4fr) minmax(130px,.8fr) minmax(150px,1fr) 95px}}
@media(max-width:700px){.multires-app.page-centros-veterinarios .form-formato.bloque[data-section="veterinarios"]{padding:14px!important}.multires-app.page-centros-veterinarios .cc-vet-add-form{grid-template-columns:1fr}.multires-app.page-centros-veterinarios .cc-vet-add-form button{grid-column:auto}.multires-app.page-centros-veterinarios .cc-list-tools{align-items:stretch}.multires-app.page-centros-veterinarios .cc-list-actions{justify-content:space-between}.multires-app.page-centros-veterinarios .cc-vet-head{display:none}.multires-app.page-centros-veterinarios [id^="veterinario"]{grid-template-columns:1fr;padding:12px 0!important}.multires-app.page-centros-veterinarios [id^="veterinario"] input{min-height:42px}.multires-app.page-centros-veterinarios [id^="veterinario"] .cc-danger-action{min-height:38px}}

/* Directorios en tarjetas: clientes, mascotas y centros veterinarios - 2026-09-11 */
.multires-app.page-clientes .directory-list,
.multires-app.page-animales .directory-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}
.multires-app.page-clientes .directory-list>.directory-filters,
.multires-app.page-animales .directory-list>.directory-filters,
.multires-app.page-clientes .directory-list>.directory-columns,
.multires-app.page-animales .directory-list>.directory-columns,
.multires-app.page-clientes .directory-list>.directory-pager,
.multires-app.page-animales .directory-list>.directory-pager,
.multires-app.page-clientes .directory-list>.directory-empty,
.multires-app.page-animales .directory-list>.directory-empty{
  grid-column:1/-1;
}
.multires-app.page-clientes .directory-list>.directory-columns,
.multires-app.page-animales .directory-list>.directory-columns{display:none!important}
.multires-app.page-clientes .directory-list>.multires-directory-card,
.multires-app.page-animales .directory-list>.multires-directory-card{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-auto-rows:min-content;
  align-content:start;
  align-items:start;
  gap:13px 16px!important;
  box-sizing:border-box;
  min-height:154px;
  margin:0!important;
  padding:16px 50px 16px 17px!important;
  border:1px solid #dce6e1!important;
  border-left:4px solid #7fa58e!important;
  border-radius:16px!important;
  background:linear-gradient(145deg,#fff 0%,#fbfdfc 100%)!important;
  box-shadow:0 5px 18px rgba(23,56,44,.06)!important;
}
.multires-app.page-animales .directory-list>.multires-directory-card{border-left-color:#b87849!important}
.multires-app.page-clientes .directory-list>.multires-directory-card:hover,
.multires-app.page-animales .directory-list>.multires-directory-card:hover,
.multires-app.page-clientes .directory-list>.multires-directory-card:focus-visible,
.multires-app.page-animales .directory-list>.multires-directory-card:focus-visible{
  border-color:#b8cbc1!important;
  box-shadow:0 11px 28px rgba(23,56,44,.11)!important;
  transform:translateY(-2px);
}
.multires-app.page-clientes .directory-list>.multires-directory-card[hidden],
.multires-app.page-animales .directory-list>.multires-directory-card[hidden]{display:none!important}
.multires-app.page-clientes .directory-list>.multires-directory-card::after,
.multires-app.page-animales .directory-list>.multires-directory-card::after{top:16px;transform:none}
.multires-app.page-clientes .directory-list>.multires-directory-card:hover::after,
.multires-app.page-animales .directory-list>.multires-directory-card:hover::after{transform:translateX(2px)}
.multires-app.page-clientes .directory-list>.multires-directory-card>div,
.multires-app.page-animales .directory-list>.multires-directory-card>div{
  box-sizing:border-box;
  width:auto!important;
  min-width:0;
  overflow:visible;
  color:#425c51;
  font-size:.8rem;
  line-height:1.35;
  overflow-wrap:anywhere;
  white-space:normal;
}
.multires-app.page-clientes .directory-list>.multires-directory-card>div:first-child,
.multires-app.page-animales .directory-list>.multires-directory-card>div:first-child{
  grid-column:1/-1;
  padding:0 34px 12px 0;
  border-bottom:1px solid #e4ebe7;
  color:#193d30;
  font-size:.98rem;
  line-height:1.25;
}
.multires-app.page-clientes .directory-list>.multires-directory-card>div:last-child,
.multires-app.page-animales .directory-list>.multires-directory-card>div:last-child{grid-column:1/-1}
.multires-app.page-clientes .directory-list>.multires-directory-card>div:not(:first-child)::before,
.multires-app.page-animales .directory-list>.multires-directory-card>div:not(:first-child)::before{
  display:block;
  margin-bottom:4px;
  color:#7b8982;
  content:attr(data-label);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.multires-app.page-clientes .directory-list>.multires-directory-card>div:empty::after,
.multires-app.page-animales .directory-list>.multires-directory-card>div:empty::after{
  color:#a4ada8;
  content:'Sin dato';
  font-style:italic;
}
.multires-app.page-centros-veterinarios .cc-vet-head{display:none!important}
.multires-app.page-centros-veterinarios .cc-vet-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.multires-app.page-centros-veterinarios .cc-vet-card-grid>.cc-vet-card{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  box-sizing:border-box;
  min-width:0;
  margin:0!important;
  padding:15px!important;
  border:1px solid #dce7e2!important;
  border-left:4px solid #72a184!important;
  border-radius:15px;
  background:linear-gradient(145deg,#fff 0%,#f9fcfa 100%);
  box-shadow:0 5px 17px rgba(23,56,44,.055);
}
.multires-app.page-centros-veterinarios .cc-vet-card-grid>.cc-vet-card:focus-within{
  border-color:#a9c2b4!important;
  box-shadow:0 10px 25px rgba(23,56,44,.1);
  transform:translateY(-1px);
}
.multires-app.page-centros-veterinarios .cc-vet-card[hidden]{display:none!important}
.multires-app.page-centros-veterinarios .cc-vet-card-field{
  display:grid;
  gap:5px;
  min-width:0;
}
.multires-app.page-centros-veterinarios .cc-vet-card-field:first-child{grid-column:1/-1}
.multires-app.page-centros-veterinarios .cc-vet-card-field>span{
  color:#73847c;
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.multires-app.page-centros-veterinarios .cc-vet-card-field>input{
  box-sizing:border-box;
  width:100%!important;
  min-width:0;
  min-height:43px;
  margin:0!important;
  padding:9px 11px;
  border:1px solid #d4e0da;
  border-radius:10px;
  background:#fff;
}
.multires-app.page-centros-veterinarios .cc-vet-card>.cc-danger-action{
  grid-column:1/-1;
  justify-self:end;
  width:auto!important;
  min-width:96px;
  min-height:36px;
  margin:0!important;
}
@media(max-width:1180px){
  .multires-app.page-clientes .directory-list,
  .multires-app.page-animales .directory-list,
  .multires-app.page-centros-veterinarios .cc-vet-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .multires-app.page-clientes .directory-list,
  .multires-app.page-animales .directory-list,
  .multires-app.page-centros-veterinarios .cc-vet-card-grid{grid-template-columns:minmax(0,1fr)}
  .multires-app.page-clientes .directory-list>.multires-directory-card,
  .multires-app.page-animales .directory-list>.multires-directory-card{min-height:0}
}
@media(max-width:430px){
  .multires-app.page-clientes .directory-list>.multires-directory-card,
  .multires-app.page-animales .directory-list>.multires-directory-card{padding:14px 44px 14px 14px!important}
  .multires-app.page-centros-veterinarios .cc-vet-card-grid>.cc-vet-card{grid-template-columns:minmax(0,1fr)!important}
  .multires-app.page-centros-veterinarios .cc-vet-card>.cc-danger-action{grid-column:auto;width:100%!important}
}
/* Pantallas de trabajo a ancho completo - 2026-09-12 */
.multires-app main.w-max{box-sizing:border-box;width:100%!important;max-width:none!important;margin-inline:0!important;padding-left:clamp(12px,2vw,32px)!important;padding-right:clamp(12px,2vw,32px)!important}
.multires-app.page-residencia main.w-max,.multires-app.page-tabla main.w-max{padding-left:12px!important;padding-right:12px!important}
.multires-app.page-facturas .invoice-overview,.multires-app.page-historico-estancias .history-workspace{width:100%;max-width:none}
.invoice-new-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin-left:auto;padding:9px 17px;border-radius:10px;background:#a85e30;color:#fff!important;font-size:.86rem;font-weight:850;text-decoration:none;box-shadow:0 7px 17px rgba(140,76,36,.2)}
.invoice-new-action:hover{background:#8e4c26;color:#fff!important}
.invoice-row-legacy{border-left:4px solid #9aa8a1!important}.invoice-row-draft{border-left:4px solid #d99a38!important}
.invoice-legacy-note{display:flex;align-items:center;gap:12px;margin:10px 0;padding:11px 14px;border:1px solid #dce4e0;border-radius:11px;background:#f8faf9;color:#607069;font-size:.78rem}.invoice-legacy-note strong{color:#344b41;white-space:nowrap}.invoice-legacy-note span{line-height:1.4}

/* Nueva factura: selección clara de flujo y cliente */
.page-nueva-factura{background:#f3f6f5}.invoice-new-page{padding-top:20px!important;padding-bottom:60px!important}
.invoice-new-hero{display:flex;align-items:center;gap:18px;padding:24px 26px;border:1px solid #dce7e2;border-radius:18px;background:linear-gradient(135deg,#f5faf7,#fffaf5);box-shadow:0 10px 30px rgba(35,58,48,.07)}
.invoice-new-hero>div{min-width:0}.invoice-new-hero small,.invoice-client-picker__head small{display:block;margin-bottom:5px;color:#a45b2e;font-size:.68rem;font-weight:900;letter-spacing:.11em}.invoice-new-hero h1{margin:0;color:#233c33;font-size:clamp(1.7rem,3vw,2.35rem)}.invoice-new-hero p{max-width:720px;margin:7px 0 0;color:#64766f;line-height:1.45}.invoice-new-back{margin-left:auto;padding:9px 13px;border:1px solid #cfdcd6;border-radius:9px;background:#fff;color:#365548;font-weight:800;text-decoration:none;white-space:nowrap}
.invoice-new-alert{margin:14px 0;padding:13px 15px;border:1px solid #efc6bf;border-radius:12px;background:#fff1ee;color:#8b352b;font-weight:750}
.invoice-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.invoice-path{position:relative;padding:21px;border:1px solid #dfe7e3;border-radius:17px;background:#fff;box-shadow:0 7px 22px rgba(38,57,49,.05)}.invoice-path--recommended{border-color:#bedac9;background:linear-gradient(145deg,#f2faf5,#fff)}.invoice-path>span{display:inline-flex;margin-bottom:9px;padding:4px 8px;border-radius:999px;background:#edf3f0;color:#60736a;font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.invoice-path--recommended>span{background:#dff1e6;color:#34714c}.invoice-path h2{margin:0 0 6px;color:#294238;font-size:1.15rem}.invoice-path p{margin:0 0 16px;color:#697a73;line-height:1.45}.invoice-path a{display:inline-flex;padding:9px 13px;border-radius:9px;background:#315d4b;color:#fff;font-weight:850;text-decoration:none}.invoice-path:not(.invoice-path--recommended) a{background:#fff5ec;color:#955226;border:1px solid #e6c7af}
.invoice-client-picker{overflow:hidden;border:1px solid #dce6e2;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(35,58,48,.06)}.invoice-client-picker__head{display:flex;align-items:end;gap:22px;padding:20px 22px;border-bottom:1px solid #e3ebe7;background:#fafcfb}.invoice-client-picker__head>div{min-width:0}.invoice-client-picker__head h2{margin:0;color:#294238;font-size:1.3rem}.invoice-client-picker__head p{margin:5px 0 0;color:#6b7b74}.invoice-client-search{display:grid;gap:5px;width:min(390px,42%);margin-left:auto}.invoice-client-search span{color:#60736a;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.invoice-client-search input{box-sizing:border-box;width:100%;min-height:42px;padding:9px 11px!important}
.invoice-client-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:54vh;padding:14px;overflow:auto;scrollbar-width:thin}.invoice-client-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:11px;min-width:0;padding:11px 13px;border:1px solid #e1e8e5;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.invoice-client-row:hover{border-color:#b7cfc3;background:#fbfdfc}.invoice-client-row.is-selected{border-color:#5f9b78;background:#f1f8f4;box-shadow:0 0 0 2px rgba(73,135,98,.11)}.invoice-client-row[hidden]{display:none}.invoice-client-row input{width:17px;height:17px;accent-color:#497f62}.invoice-client-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:#e5f0eb;color:#315d4b;font-weight:900}.invoice-client-main{display:grid;min-width:0;gap:2px}.invoice-client-main strong,.invoice-client-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-client-main strong{color:#2b4037}.invoice-client-main small{color:#74837d;font-size:.75rem}.invoice-client-meta{display:grid;min-width:55px;text-align:center}.invoice-client-meta strong{color:#315d4b}.invoice-client-meta small{color:#7a8983;font-size:.65rem}.invoice-client-check{padding:6px 9px;border-radius:999px;background:#f2f5f4;color:#708078;font-size:.68rem;font-weight:850}.invoice-client-row.is-selected .invoice-client-check{background:#dceee4;color:#2f6c48}
.invoice-client-footer{display:flex;align-items:center;gap:15px;padding:14px 18px;border-top:1px solid #e3ebe7;background:#f8fbf9}.invoice-client-footer>span{color:#64766e;font-weight:750}.invoice-client-footer button{min-height:42px;margin-left:auto;padding:9px 16px;border:0;border-radius:10px;background:#a85e30;color:#fff;font-weight:850;cursor:pointer}.invoice-client-footer button:disabled{background:#c9cecb;color:#717a76;cursor:not-allowed;box-shadow:none}.invoice-client-empty{display:flex;align-items:center;gap:14px;padding:24px}.invoice-client-empty a{margin-left:auto;font-weight:800}

/* Editor de factura: lectura y conceptos adaptables */
.multires-app.page-factura main.w-max{padding-top:18px!important}.page-factura main>.flex-bet-center:first-of-type{gap:14px;padding:18px 20px;border:1px solid #dce6e2;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(35,58,48,.06)}.page-factura main>.flex-bet-center:first-of-type h1{margin:0}.page-factura main>.form-formato{width:100%!important;max-width:none!important}.page-factura .vf-status{margin-top:6px}.page-factura .invoice-create-card{max-width:none}.page-factura .calc-total,.page-factura [id^="base-total-"],.page-factura [id^="iva-total-"],.page-factura [id^="total-total-"]{font-variant-numeric:tabular-nums}
@media(max-width:900px){.invoice-paths{grid-template-columns:1fr}.invoice-client-list{grid-template-columns:1fr}.invoice-client-picker__head{align-items:stretch;flex-direction:column}.invoice-client-search{width:100%;margin-left:0}.page-factura main>.form-formato>.flex-bet-start{align-items:stretch!important;flex-direction:column}.page-factura main>.form-formato>.flex-bet-start>[class*="w-"]{width:100%!important}}
@media(max-width:650px){.multires-app main.w-max{padding-left:8px!important;padding-right:8px!important}.invoice-new-page{padding-top:10px!important}.invoice-new-hero{align-items:flex-start;flex-direction:column;padding:17px}.invoice-new-back{margin-left:0}.invoice-path{padding:16px}.invoice-client-list{max-height:none;padding:8px}.invoice-client-row{grid-template-columns:auto auto minmax(0,1fr)}.invoice-client-meta{display:none}.invoice-client-check{grid-column:2/-1;text-align:center}.invoice-client-footer,.invoice-legacy-note{align-items:stretch;flex-direction:column}.invoice-client-footer button{width:100%;margin-left:0}.invoice-legacy-note strong{white-space:normal}}

/* Foto de mascota: cámara bajo demanda, galería y alta guiada */
.pet-photo-card{box-sizing:border-box!important;padding:16px!important;border:1px solid #dce7e2;border-radius:18px;background:linear-gradient(145deg,#f7fbf9,#fffaf5);box-shadow:0 9px 25px rgba(35,58,48,.07)}
.pet-photo-preview{display:grid;width:100%;min-height:240px;place-items:center;overflow:hidden;border-radius:14px;background:#e8f0ec}.pet-photo-preview img{display:block;width:100%;height:clamp(240px,30vw,390px);object-fit:cover}.pet-photo-placeholder{display:grid;min-height:240px;place-items:center;font-size:4rem}
.pet-photo-copy{display:grid;gap:3px;margin:13px 0}.pet-photo-copy strong,.pet-intake-photo__body>strong{color:#294238}.pet-photo-copy span,.pet-intake-photo__body>span{color:#687b73;font-size:.82rem;line-height:1.4}
.pet-photo-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pet-photo-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin:0!important;padding:9px 14px!important;border:1px solid #cddbd5!important;border-radius:10px!important;background:#fff!important;color:#365548!important;font:inherit;font-weight:850!important;cursor:pointer}.pet-photo-button--primary{border-color:#a85e30!important;background:#a85e30!important;color:#fff!important}.pet-photo-button:disabled{opacity:.6;cursor:wait}.pet-photo-file{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0!important}
.pet-camera{margin-top:12px;padding:10px;border:1px solid #d6e2dc;border-radius:14px;background:#17231f}.pet-camera[hidden]{display:none!important}.pet-camera video{display:block;width:100%;max-height:56vh;border-radius:10px;background:#0d1512;object-fit:contain}.pet-camera .pet-photo-actions{justify-content:center}.pet-camera-status{display:block;min-height:1.25em;margin:9px 0 0;color:#48705e;font-size:.78rem}.pet-camera-status.is-error{color:#a33a2e}
.pet-intake-photo{box-sizing:border-box;display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;width:100%;margin:8px 0 12px;padding:13px;border:1px solid #dce7e2;border-radius:14px;background:#f8fbf9}.pet-intake-photo__preview{display:grid;width:110px;height:110px;place-items:center;overflow:hidden;border-radius:12px;background:#e6efeb;font-size:2.5rem}.pet-intake-photo__preview img{width:100%;height:100%;object-fit:cover}.pet-intake-photo__body{display:grid;align-content:center;min-width:0}.pet-intake-photo .pet-camera{grid-column:1/-1}
@media(max-width:760px){.page-animal main>.flex-bet-start{align-items:stretch!important;flex-direction:column}.page-animal main>.flex-bet-start>[class*="w-"]{width:100%!important}.pet-photo-card{width:100%!important}.pet-photo-actions>.pet-photo-button{flex:1 1 140px}.pet-intake-photo{grid-template-columns:78px minmax(0,1fr);gap:10px;padding:10px}.pet-intake-photo__preview{width:78px;height:78px}.pet-intake-photo__body>span{font-size:.75rem}.pet-intake-photo .pet-photo-actions{grid-column:1/-1}}
/* Residencia · mapa de espacios claro y adaptable */
.page-residencia .kennel-board{align-content:start}
.page-residencia .kennel-toolbar{box-sizing:border-box;display:flex!important;align-items:center!important;gap:10px;height:auto!important;min-height:54px!important;padding:9px 12px!important}
.kennel-toolbar-label{color:#4c6259;font-size:.72rem;font-weight:850;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}
.kennel-legend{display:flex;align-items:center;gap:13px;margin-left:auto;color:#5e7168;font-size:.72rem;font-weight:750;white-space:nowrap}
.kennel-legend>span{display:inline-flex;align-items:center;gap:5px}
.kennel-legend-dot{display:inline-block;width:10px;height:10px;border:1px solid #c9d7d1;border-radius:50%;background:#fff}
.kennel-legend-dot.is-occupied{border-color:#91b7d0;background:#dcecff}
.kennel-legend-dot.is-selected{border:2px solid #a85e30;background:#fff2e7}
.residence-space-map{box-sizing:border-box;display:grid;gap:12px;min-width:0;padding:13px;border:1px solid #dde7e2;border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(28,48,61,.065)}
.residence-space-section{box-sizing:border-box;min-width:0;padding:12px;border:1px solid #e3ebe7;border-radius:14px;background:#fbfdfc}
.residence-space-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px;padding:0 2px 9px;border-bottom:1px solid #e5ece8}
.residence-space-heading>div{min-width:0}.residence-space-heading h2{margin:2px 0 0;color:#243f35;font-size:1rem;line-height:1.15}
.residence-space-heading>span{color:#71827a;font-size:.71rem;font-weight:750;white-space:nowrap}
.residence-space-kicker{display:block;color:#a85e30;font-size:.6rem;font-weight:900;letter-spacing:.1em}
.page-residencia #canil-cont,.page-residencia #parque-cont{position:relative!important;box-sizing:border-box;display:grid!important;align-items:stretch;gap:7px!important;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.page-residencia #canil-cont{grid-template-columns:repeat(auto-fill,minmax(46px,1fr))}
.page-residencia #parque-cont{grid-template-columns:repeat(auto-fill,minmax(86px,1fr))}
.page-residencia .celda.canil,.page-residencia .celda.parque{box-sizing:border-box;display:flex!important;align-items:flex-start;justify-content:flex-start;width:auto!important;min-width:0!important;height:58px!important;min-height:58px!important;margin:0!important;padding:8px!important;overflow:hidden;border-radius:10px!important;font-variant-numeric:tabular-nums}
.page-residencia .celda.parque{height:62px!important;min-height:62px!important;border:1px solid #dfd0c5!important;background:linear-gradient(180deg,#fffaf6,#f8eee7)!important;color:#775039;font-weight:800;box-shadow:0 2px 6px rgba(78,49,30,.06)}
.page-residencia .celda.parque:hover{transform:translateY(-2px);border-color:#bf8a66!important;box-shadow:0 7px 14px rgba(78,49,30,.13)}
.page-residencia .raya-negra{max-width:calc(100% - 14px)}
.residence-day-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0}
.residence-day-summary>div{box-sizing:border-box;min-width:0;max-width:none!important;max-height:150px!important;margin:0!important;overflow:auto!important;border:1px solid #dfe8e4;border-radius:12px!important;background:#fff;box-shadow:0 5px 15px rgba(30,50,62,.055)!important}
.residence-day-summary>div:empty{display:none}
.residence-day-summary #pendientepago{grid-column:1/-1}
@media(max-width:1180px){.page-residencia #canil-cont{grid-template-columns:repeat(auto-fill,minmax(43px,1fr))}.residence-day-summary{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.kennel-toolbar-label{display:none}.kennel-legend{gap:8px}.residence-day-summary{grid-template-columns:1fr}.residence-space-map{padding:10px}.residence-space-section{padding:10px}}
@media(max-width:850px){.page-residencia .kennel-workspace{padding:8px!important}.page-residencia main>#index-lista-animales{height:300px;margin-bottom:10px}.page-residencia #index-lista-animales>div[style*="overflow-y"]{max-height:196px!important}.page-residencia .kennel-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;margin-bottom:10px!important}.page-residencia #fecha-estancias{width:100%}.page-residencia #imprimir-listado{margin-left:0!important}.kennel-legend{grid-column:1/-1;justify-content:flex-start;margin-left:0}.page-residencia #canil-cont{grid-template-columns:repeat(auto-fill,minmax(42px,1fr))}}
@media(max-width:520px){.page-residencia main>#index-lista-animales{height:260px}.page-residencia #index-lista-animales>div[style*="overflow-y"]{max-height:156px!important}.residence-space-heading{align-items:flex-start;flex-direction:column;gap:4px}.page-residencia #canil-cont{grid-template-columns:repeat(5,minmax(0,1fr))}.page-residencia #parque-cont{grid-template-columns:repeat(2,minmax(0,1fr))}.page-residencia .celda.canil{height:54px!important;min-height:54px!important}.kennel-legend{white-space:normal;flex-wrap:wrap}}
/* Residencia · estado vacío compacto */
.page-residencia #index-top:has(#mascotasCanil>.flex-center-center){min-height:82px!important;max-height:82px!important;padding:10px 12px!important}
.page-residencia #index-top:has(#mascotasCanil>.flex-center-center)>.w-100.mb-05{display:none!important}
.page-residencia #index-top:has(#mascotasCanil>.flex-center-center) #mascotasCanil{height:60px!important;min-height:60px!important;max-height:60px!important;padding:0!important;overflow:hidden!important}
.page-residencia #index-top:has(#mascotasCanil>.flex-center-center) #mascotasCanil>.flex-center-center{box-sizing:border-box;height:60px!important;min-height:60px!important;border:1px dashed #d8e1dd;border-radius:11px;background:#faf8f4!important;color:#66766f!important}
/* Residencia · densidad, contadores y zonas plegables */
.kennel-legend-count{display:inline-grid;min-width:18px;height:18px;padding:0 4px;place-items:center;border-radius:999px;background:#1f6d5a;color:#fff;font-size:.62rem;font-style:normal;font-weight:900;line-height:18px}
.residence-space-heading small{display:block;margin-top:3px;color:#75867e;font-size:.7rem;font-weight:600}
.page-residencia #canil-cont.is-dense{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px!important}
.page-residencia #canil-cont.is-dense .celda.canil{height:52px!important;min-height:52px!important;padding:7px!important}
.page-residencia .celda.canil,.page-residencia .celda.parque{position:relative}
.page-residencia .raya-negra{width:18px!important;max-width:18px!important;height:5px!important;margin-top:2px!important;border-radius:999px!important;background:#1f6d5a!important;box-shadow:none!important}
.page-residencia .kennel-count-badge{position:absolute;top:5px;right:5px;z-index:3;display:grid;min-width:19px;height:19px;padding:0 4px;place-items:center;border:2px solid #fff;border-radius:999px;background:#1f6d5a;color:#fff;font-size:.64rem;font-weight:900;line-height:1;box-shadow:0 2px 7px rgba(28,73,60,.24)}
.page-residencia .celda.is-reserved .kennel-count-badge{background:#d99a2b}
.page-residencia .punto-rojo,.page-residencia .punto-fucsia,.page-residencia .punto-amarillo{z-index:4}
.residence-zones{padding:0!important;overflow:hidden}
.residence-zones>.residence-space-heading{align-items:center;margin:0;padding:11px 14px;border:0;cursor:pointer;list-style:none;user-select:none}
.residence-zones>.residence-space-heading::-webkit-details-marker{display:none}
.residence-zones>.residence-space-heading>span{display:flex;align-items:center;gap:8px}
.residence-zones-action{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid #d9c6b8;border-radius:999px;background:#fff;color:#8f5634;font-size:.68rem;font-weight:850}
.residence-zones-action::after{content:'›';font-size:1rem;line-height:.6;transform:rotate(90deg);transition:transform .18s ease}
.residence-zones[open] .residence-zones-action::after{transform:rotate(-90deg)}
.residence-zones>#parque-cont{padding:0 12px 12px}
@media(min-width:851px){
  .page-residencia #index-top:not(:has(#mascotasCanil>.flex-center-center)){min-height:190px;max-height:245px;padding:12px}
  .page-residencia #index-top:not(:has(#mascotasCanil>.flex-center-center)) #mascotasCanil{min-height:120px!important;max-height:175px!important}
  .page-residencia #index-top:not(:has(#mascotasCanil>.flex-center-center)) .btn-animalesCanilSeleccionado{min-height:112px!important;padding:9px}
  .page-residencia #index-top:not(:has(#mascotasCanil>.flex-center-center)) .btn-animalesCanilSeleccionado>.w-70>img{height:84px;max-height:84px!important}
}

/* Residencia · leyenda completa y cambio de canil táctil */
.kennel-alert-legend{display:flex;align-items:center;gap:13px;min-height:34px;margin:-4px 0 9px;padding:6px 11px;border:1px solid #e2e9e5;border-radius:11px;background:#fbfcfb;color:#53685f;font-size:.69rem;line-height:1.25;flex-wrap:wrap}
.kennel-alert-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.kennel-alert-legend>strong{margin-left:auto;color:#36594b;font-size:.68rem;font-weight:750}
.kennel-alert-dot{display:inline-block;width:10px;height:10px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(41,65,55,.16)}
.kennel-alert-dot.is-observation{background:#f0d62d}.kennel-alert-dot.is-medication{background:#e600e6}.kennel-alert-dot.is-payment{background:#d84c45}
.kennel-departure-label{display:inline-grid;min-width:25px;height:16px;padding:0 3px;place-items:center;border:1px solid #cddbd5;border-radius:4px;background:#fff;color:#a23d33;font-size:.52rem;font-style:normal;font-weight:900;line-height:14px}
.page-residencia .kennel-move-button{border-color:#c8ddd4!important;background:#edf6f2!important;color:#195e49!important;font-weight:750}
.kennel-move-dialog{width:min(92vw,430px);padding:0;border:0;border-radius:20px;background:transparent;box-shadow:0 24px 70px rgba(18,48,38,.3)}.kennel-move-dialog::backdrop{background:rgba(15,39,31,.5);backdrop-filter:blur(2px)}
.kennel-move-dialog__card{padding:20px;border:1px solid #d9e6e0;border-radius:20px;background:#fff}.kennel-move-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.kennel-move-dialog__head small{color:#a85e30;font-size:.66rem;font-weight:850;letter-spacing:.13em}.kennel-move-dialog__head h2{margin:.15rem 0 .25rem;color:#173f34}.kennel-move-dialog__close{width:34px;height:34px;border:1px solid #d8e3de;border-radius:50%;background:#f7faf8;color:#31584a;font-size:1.35rem;line-height:1;cursor:pointer}.kennel-move-dialog p{margin:.6rem 0 1rem;color:#60746b}.kennel-move-dialog label{display:block;margin-bottom:.35rem;color:#415d52;font-size:.75rem;font-weight:800}.kennel-move-dialog select{width:100%;min-height:46px;padding:.65rem .75rem;border:1px solid #cbdcd4;border-radius:10px;background:#fff;color:#173f34;font-size:1rem}.kennel-move-dialog__error{min-height:20px;margin-top:.45rem;color:#a33d35;font-size:.78rem}.kennel-move-dialog__actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:.8rem}.kennel-move-dialog__actions .btn-text,.kennel-move-dialog__actions .btn-main{min-width:128px;justify-content:center}
@media(max-width:850px){.kennel-alert-legend{margin-top:0}.kennel-alert-legend>strong{flex-basis:100%;margin-left:0}.page-residencia .btn-animalesCanilSeleccionado>.w-25{flex-wrap:wrap}.page-residencia .kennel-move-button{order:-1}}
@media(max-width:520px){.kennel-alert-legend{gap:8px}.kennel-move-dialog__actions{flex-direction:column-reverse}.kennel-move-dialog__actions .btn-text,.kennel-move-dialog__actions .btn-main{width:100%!important}}
