@layer legacy {
:root { --surface:#fff; --surface-soft:#f5f7fa; --text:#17202a; --muted:#65717d; --line:#dbe1e7; --primary:#165d8f; --primary-hover:#0f4c77; --danger:#aa2e25; --danger-soft:#fff0ef; --success:#176b45; --success-soft:#edf8f2; --radius:.8rem; color-scheme:light; }
* { box-sizing:border-box; }
body { margin:0; background:var(--surface-soft); color:var(--text); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body.catalog-open { overflow:hidden; }
#app-shell { min-height:100vh; }
.app-header { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem max(1rem,calc((100vw - 92rem)/2)); background:color-mix(in srgb,var(--surface) 96%,transparent); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.brand-block h1 { margin:0; font-size:clamp(1.3rem,2vw,1.8rem); }
.brand-block p { margin:.2rem 0 0; color:var(--muted); }
.eyebrow { margin:0 0 .2rem!important; color:var(--primary)!important; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.header-actions { display:flex; align-items:center; gap:.6rem; }
.module-trigger { display:inline-flex; align-items:center; gap:.45rem; }
.global-logout { border-color:var(--danger); background:var(--danger-soft); color:var(--danger); }
#module-stage { width:min(92rem,100%); margin:0 auto; padding:1.25rem 1rem 5rem; }
.ui-module { display:none!important; margin:0; }
.ui-module.ui-active { display:block!important; }
.ui-module>h2,.screen-heading h2 { margin:0; font-size:clamp(1.45rem,3vw,2rem); }
.ui-module>h2+p { color:var(--muted); }
.screen-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:1rem; }
section,.ui-module>section { border:1px solid var(--line); border-radius:var(--radius); padding:1rem; background:var(--surface); box-shadow:0 1px 2px #1018200a; }
.ui-home { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.ui-home:not(.ui-active) { display:none!important; }
.ui-home .screen-heading { grid-column:1/-1; }
.home-context { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.home-context div { padding:.8rem; border:1px solid var(--line); border-radius:.65rem; background:var(--surface); }
.home-context span { display:block; color:var(--muted); font-size:.8rem; }
.home-context strong { display:block; margin-top:.2rem; }
.module-pergola.ui-active { display:grid!important; grid-template-columns:minmax(20rem,.75fr) minmax(34rem,1.4fr); gap:1rem; align-items:start; }
.module-polls #poll-list,.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:.85rem; }
.module-polls #poll-list .row,.card { min-width:0; border:1px solid var(--line)!important; border-radius:var(--radius); padding:1rem!important; background:var(--surface); display:grid; gap:.55rem; }
.module-access #access-form,.module-users #user-form { margin-bottom:1rem; }
#gate-devices-panel { margin-top:1rem; background:var(--surface-soft); }
.ui-form { display:grid!important; grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr)); gap:.8rem!important; align-items:end; }
.ui-form label { min-width:0!important; display:grid; gap:.35rem; color:var(--muted); font-size:.88rem; font-weight:650; }
input,select,textarea { width:100%; min-width:0; min-height:2.75rem; border:1px solid #b9c3cd; border-radius:.55rem; padding:.6rem .7rem; background:var(--surface); color:var(--text); font:inherit; }
textarea { min-height:7rem; resize:vertical; }
button { min-height:2.75rem; border:1px solid var(--primary); border-radius:.55rem; padding:.58rem .85rem; background:var(--primary); color:white; font:inherit; font-weight:700; cursor:pointer; }
button:hover { background:var(--primary-hover); }
button:disabled { opacity:.56; cursor:not-allowed; }
button.button-secondary { background:var(--surface); color:var(--primary); }
button.button-danger { border-color:var(--danger); background:var(--danger-soft); color:var(--danger); }
.card>button { justify-self:stretch!important; }
.badge,.status { display:inline-flex; width:fit-content; border-radius:999px; padding:.25rem .55rem; background:#e8eef4; font-size:.78rem; font-weight:800; }
.muted { color:var(--muted); opacity:1!important; }
.notice { width:min(92rem,calc(100% - 2rem)); margin:.75rem auto 0; border-radius:.6rem; padding:.7rem 1rem; font-weight:650; }
.notice-success { background:var(--success-soft); color:var(--success); }
.notice-error { background:var(--danger-soft); color:var(--danger); }
.ui-legacy-message,.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.qr { display:grid; place-items:center; padding:.8rem; background:white; border-radius:.7rem; }
.qr svg { width:min(100%,20rem)!important; }
table { width:100%; }
td:last-child { display:flex; flex-wrap:wrap; gap:.4rem; }
#module-catalog { width:min(72rem,calc(100vw - 2rem)); max-height:min(48rem,calc(100vh - 2rem)); padding:0; border:0; border-radius:1rem; color:var(--text); background:transparent; }
#module-catalog::backdrop { background:#14223380; backdrop-filter:blur(3px); }
#module-catalog.catalog-fallback-open { position:fixed; inset:1rem; display:block; margin:auto; z-index:40; }
.catalog-surface { overflow:auto; max-height:inherit; border:1px solid var(--line); border-radius:1rem; padding:1.25rem; background:var(--surface); box-shadow:0 1.5rem 4rem #14223340; }
.catalog-header { display:flex; justify-content:space-between; gap:1rem; align-items:start; margin-bottom:1rem; }
.catalog-header h2 { margin:0; font-size:1.7rem; }
.catalog-header p:not(.eyebrow) { margin:.25rem 0 0; color:var(--muted); }
.catalog-header button { width:2.75rem; padding:0; font-size:1.5rem; }
.module-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.module-card { position:relative; display:grid; grid-template-columns:2.6rem 1fr; grid-template-rows:auto auto; width:100%; min-height:7.4rem; padding:.85rem; text-align:left; border-color:var(--line); background:var(--surface); color:var(--text); }
.module-card:hover:not(:disabled),.module-card.active { border-color:var(--primary); background:#eef6fb; }
.module-card:disabled { color:var(--muted); background:var(--surface-soft); }
.module-icon { grid-row:1/-1; display:grid; place-items:center; width:2.2rem; height:2.2rem; border-radius:.6rem; background:#e8eef4; color:var(--primary); font-size:1.2rem; }
.module-card-copy { display:grid; gap:.2rem; }
.module-card-copy small { color:var(--muted); font-weight:500; }
.module-state { justify-self:start; margin-top:.45rem; border-radius:999px; padding:.18rem .45rem; font-size:.7rem; font-weight:800; }
.module-state.enabled { background:var(--success-soft); color:var(--success); }
.module-state.disabled { background:#e8eef4; color:var(--muted); }
.catalog-footer { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }
@media(max-width:760px) {
  .app-header { position:sticky; align-items:start; padding:.8rem .75rem; }
  .brand-block h1 { font-size:1.25rem; }
  .header-actions { flex-direction:column; align-items:stretch; }
  .header-actions button { min-height:2.65rem; white-space:nowrap; }
  .global-logout { font-size:.78rem; }
  .module-trigger { justify-content:center; }
  #module-stage { padding:.8rem .65rem 6rem; }
  .ui-home,.module-pergola.ui-active { display:grid!important; grid-template-columns:1fr; }
  .ui-home:not(.ui-active),.module-pergola:not(.ui-active) { display:none!important; }
  .home-context { grid-template-columns:1fr 1fr; }
  section,.ui-module>section,.card { padding:.85rem; }
  .ui-form { grid-template-columns:1fr; }
  button { width:100%; min-height:3rem; }
  table,thead,tbody,tr,th,td { display:block; width:100%; }
  thead { display:none; }
  tr { border:1px solid var(--line); border-radius:var(--radius); margin:.7rem 0; padding:.7rem; background:var(--surface); }
  td { border:0!important; padding:.3rem!important; }
  td:last-child { display:grid; }
  #module-catalog { width:100vw; max-width:none; max-height:100vh; height:100vh; border-radius:0; }
  #module-catalog.catalog-fallback-open { inset:0; }
  .catalog-surface { min-height:100vh; border-radius:0; padding:1rem; }
  .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
  .module-card { min-height:8rem; grid-template-columns:1fr; grid-template-rows:auto auto auto; }
  .module-icon { grid-row:auto; }
  .module-state { margin-top:.15rem; }
  .catalog-header button { width:3rem; min-height:3rem; }
}

/* UI-3: cascarón de producto. Los módulos conservan sus propios contenidos. */
:root { --ink:#15263a; --blue:#1667a9; --navy:#123b61; --mist:#eef4f8; --shadow:0 18px 48px #102c4617; }
.brand-lockup { display:flex; align-items:center; gap:.75rem; }
.brand-mark,.login-mark { display:grid; place-items:center; flex:0 0 auto; color:#fff; background:linear-gradient(145deg,#1e78b9,#145283); box-shadow:0 8px 18px #14528335; }
.brand-mark { width:2.55rem; height:2.55rem; border-radius:.75rem; font-size:1.45rem; }
.brand-block h1 { color:var(--ink); font-size:1.2rem; letter-spacing:-.02em; }
.brand-block .eyebrow { margin:.05rem 0!important; font-size:.62rem; }
.brand-block #ui-identity { font-size:.76rem; }
.app-header { min-height:4.75rem; background:#fffefdf2; box-shadow:0 1px 0 #dce6ed; }
.module-trigger { border-color:#c7dae8; background:#edf6fb; color:#155a8c; }
.module-trigger:hover { background:#dceef9; }
.global-logout { box-shadow:none; }
.unauthenticated { min-height:100dvh; background:radial-gradient(circle at 50% -15%,#dceffb 0,transparent 42%),#f5f8fa; }
.unauthenticated .app-header,.unauthenticated #ui-message { display:none; }
.unauthenticated #module-stage { display:grid; min-height:100dvh; width:100%; padding:1.25rem; place-items:center; }
.unauthenticated .ui-home { display:block!important; width:min(100%,28rem); }
.unauthenticated .ui-home .screen-heading,.unauthenticated #home-context,.unauthenticated #session-panel { display:none!important; }
.unauthenticated #login-panel { display:block!important; margin:0; border:0; border-radius:1.3rem; padding:2rem; background:#fff; box-shadow:var(--shadow); }
.login-heading { margin-bottom:1.7rem; text-align:center; }
.login-mark { width:4rem; height:4rem; margin:0 auto .9rem; border-radius:1.1rem; font-size:2rem; }
.login-brand { margin:0 0 .2rem; color:var(--blue); font-size:.87rem; font-weight:800; letter-spacing:.03em; }
#login-panel h2 { margin:0; color:var(--ink); font-size:1.8rem; letter-spacing:-.03em; }
.login-heading>p:last-child { margin:.45rem 0 0; color:var(--muted); }
#login-form { display:grid; gap:1rem; }
#login-form label { display:grid; gap:.4rem; color:#425466; font-size:.84rem; font-weight:750; }
#login-form input { min-height:3.15rem; border-color:#c9d6df; border-radius:.7rem; padding:.7rem .8rem; }
#login-form input:focus { border-color:#2780bd; outline:3px solid #2780bd26; }
#login-form button { min-height:3.2rem; border:0; border-radius:.78rem; background:linear-gradient(135deg,#176aa8,#145687); box-shadow:0 8px 18px #14568730; }
#login-form button:hover { background:linear-gradient(135deg,#155e98,#104b78); }
.catalog-surface { border:0; border-radius:1.25rem; padding:1.45rem; background:linear-gradient(180deg,#fff,#f8fbfd); box-shadow:0 24px 65px #102c4645; }
.catalog-header { padding-bottom:1rem; border-bottom:1px solid #e0e9ef; }
.catalog-header h2 { color:var(--ink); font-size:1.9rem; letter-spacing:-.03em; }
.catalog-header button { border-color:#dce6ed; background:#f0f5f8; color:#4b6172; }
.module-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding:.3rem 0; }
.module-card { min-height:8.6rem; grid-template-columns:1fr; grid-template-rows:auto 1fr auto; align-content:start; gap:.55rem; border:1px solid #dce6ed; border-radius:1rem; padding:1rem; box-shadow:0 2px 5px #102c4608; }
.module-card:hover:not(:disabled),.module-card.active { border-color:#8ec2e3; background:#f0f8fd; box-shadow:0 8px 18px #14568712; transform:translateY(-1px); }
.module-icon { grid-row:auto; width:2.65rem; height:2.65rem; border-radius:.8rem; background:#e4f1f9; color:#176aa8; font-size:1.35rem; }
.module-card-copy strong { color:var(--ink); font-size:1rem; }
.module-card-copy small { line-height:1.25; }
.module-card:disabled { border-style:dashed; background:#f8fafb; }
.catalog-footer { color:#647889; }
@media (max-width:760px) {
  .unauthenticated #module-stage { padding:1rem; align-items:center; }
  .unauthenticated #login-panel { padding:1.7rem 1.35rem; border-radius:1.1rem; }
  .app-header { min-height:4.45rem; }
  .brand-mark { width:2.3rem; height:2.3rem; border-radius:.7rem; font-size:1.25rem; }
  .brand-block #ui-identity { display:none; }
  .catalog-surface { padding:1.15rem; }
  .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .module-card { min-height:8.25rem; padding:.85rem; }
}

/* Pérgola: módulo piloto del sistema visual GEN2. */
.module-pergola.ui-active { --pergola-card-max:26rem; display:grid!important; inline-size:min(100%,var(--content-max)); grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "management" "planning" "reservations"; gap:var(--space-6); margin-inline:auto; align-items:start; font-family:var(--font-product); }
.pergola-heading { grid-area:heading; padding:var(--space-1); }.pergola-heading h2 { margin:0; color:var(--text); font-size:var(--text-page-title); font-weight:var(--weight-semibold); letter-spacing:-.025em; line-height:1.15; }.pergola-heading p:not(.eyebrow) { margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
.module-pergola>section,.pergola-planning>section { margin:0!important; border:1px solid var(--border)!important; border-radius:var(--radius-surface)!important; padding:var(--space-5)!important; background:var(--surface)!important; box-shadow:var(--shadow-subtle)!important; }
.pergola-management { grid-area:management; }.pergola-planning { grid-area:planning; display:grid; min-width:0; grid-template-columns:minmax(34rem,1.3fr) minmax(20rem,.7fr); gap:var(--space-4); }.pergola-reservations-card { grid-area:reservations; }
.pergola-availability-heading { grid-column:1/-1; padding:var(--space-2) var(--space-1) 0; }.pergola-availability-heading h3 { margin:0; color:var(--text); font-size:var(--text-section-title); font-weight:var(--weight-semibold); letter-spacing:-.015em; }.pergola-availability-heading p:not(.eyebrow) { margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
.pergola-management-header,.pergola-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-4); }.pergola-management-header { padding-bottom:var(--space-4); border-bottom:1px solid var(--border); }.pergola-management h3,.pergola-section-heading h3 { margin:0; color:var(--text); font-size:var(--text-section-title); font-weight:var(--weight-semibold); letter-spacing:-.015em; line-height:1.25; }.pergola-management-header p:not(.eyebrow),.pergola-section-heading p { margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
.module-pergola .pergola-action { display:inline-flex; width:auto; min-height:var(--touch-target); align-items:center; justify-content:center; border-radius:var(--radius-control); padding:var(--space-2) var(--space-4); font-weight:var(--weight-semibold); line-height:1.2; box-shadow:none; transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast); }.module-pergola .pergola-action--primary { border-color:var(--brand-600); background:var(--brand-600); color:var(--surface); }.module-pergola .pergola-action--primary:hover:not(:disabled) { border-color:var(--brand-700); background:var(--brand-700); }.module-pergola .pergola-action--secondary { border-color:var(--border-strong); background:var(--surface); color:var(--brand-700); }.module-pergola .pergola-action--secondary:hover:not(:disabled) { border-color:color-mix(in srgb,var(--brand-600) 42%,var(--border)); background:var(--brand-50); }.module-pergola .pergola-action--danger { border-color:color-mix(in srgb,var(--danger) 35%,var(--border)); background:var(--surface); color:var(--danger); }.module-pergola .pergola-action--danger:hover:not(:disabled) { border-color:var(--danger); background:var(--danger-soft); }
.pergola-management-groups { margin-top:var(--space-2); }.pergola-accordion { margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }.pergola-accordion+.pergola-accordion { border-top:1px solid var(--border)!important; }.pergola-accordion-top { display:flex; min-width:0; align-items:center; gap:var(--space-4); }.pergola-accordion-trigger { display:flex!important; width:100%!important; min-height:3.75rem!important; flex:1 1 auto; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-3) var(--space-1)!important; border:0!important; border-radius:var(--radius-control)!important; background:transparent!important; color:var(--text)!important; text-align:left; box-shadow:none!important; }.pergola-accordion-trigger:hover { background:var(--surface-muted)!important; }.pergola-accordion-copy { display:grid; min-width:0; gap:var(--space-1); }.pergola-accordion-copy strong { font-size:.9375rem; font-weight:var(--weight-semibold); }.pergola-accordion-copy small { color:var(--text-secondary); font-size:var(--text-caption); font-weight:400; }.pergola-accordion-meta { display:flex; flex:0 0 auto; align-items:center; gap:var(--space-2); }.pergola-accordion-count { min-width:1.75rem; color:var(--text-secondary); font-size:var(--text-secondary-size); font-variant-numeric:tabular-nums; font-weight:var(--weight-semibold); text-align:center; }.pergola-accordion-chevron { display:grid; width:var(--touch-target); height:var(--touch-target); place-items:center; border-radius:var(--radius-control); color:var(--text-secondary); transition:transform var(--transition-fast); }.pergola-accordion-chevron svg { width:1.25rem; height:1.25rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.75; }.pergola-accordion.is-open .pergola-accordion-chevron { transform:rotate(180deg); }.pergola-accordion-content { display:grid; grid-template-rows:0fr; visibility:hidden; opacity:0; transition:grid-template-rows var(--transition-normal),opacity var(--transition-fast),visibility 0s var(--transition-normal); }.pergola-accordion-content__inner { min-height:0; overflow:hidden; }.pergola-accordion.is-open .pergola-accordion-content { grid-template-rows:1fr; visibility:visible; opacity:1; transition:grid-template-rows var(--transition-normal),opacity var(--transition-fast); }.pergola-work-list,#pergola-admin-reservations-slot { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),var(--pergola-card-max))); justify-content:center; gap:var(--space-3); padding:0 var(--space-1) var(--space-4); }.pergola-stage-empty,.pergola-empty { grid-column:1/-1; margin:0; padding:var(--space-3) 0; color:var(--text-secondary); font-size:var(--text-secondary-size); text-align:left; }
.pergola-admin-filter-slot { flex:0 0 12rem; }.pergola-accordion:not(.is-open) .pergola-admin-filter-slot { display:none; }#pergola-filter { display:grid; min-width:10rem; gap:var(--space-1); color:var(--text); font-size:var(--text-caption); font-weight:var(--weight-semibold); }#pergola-filter select { min-height:var(--touch-target); border-color:var(--border-strong); border-radius:var(--radius-control); background:var(--surface-muted); color:var(--text); }
.pergola-section-heading { margin-bottom:var(--space-4); }.pergola-section-heading label { display:grid; min-width:10rem; gap:var(--space-1); color:var(--text); font-size:var(--text-caption); font-weight:var(--weight-semibold); }.pergola-section-heading select { min-height:var(--touch-target); border-color:var(--border-strong); border-radius:var(--radius-control); background:var(--surface-muted); color:var(--text); }
.pergola-icon { display:grid; width:2.75rem; height:2.75rem; flex:0 0 2.75rem; place-items:center; border-radius:var(--radius-control); background:var(--brand-50); color:var(--brand-600); }.pergola-icon svg { width:1.4rem; height:1.4rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.75; }
.pergola-create-card #create-form { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3)!important; align-items:end; }.pergola-create-card #create-form label { display:grid; min-width:0; gap:var(--space-2); color:var(--text); font-size:var(--text-label); font-weight:var(--weight-medium); }.pergola-create-card #create-form input,.pergola-create-card #create-form select { min-height:var(--control-height); border-color:var(--border-strong); border-radius:var(--radius-control); background:var(--surface-muted); color:var(--text); font-size:1rem; }.pergola-feedback { min-height:1.4rem; margin:var(--space-3) 0 0; color:var(--brand-700); font-size:var(--text-secondary-size); font-weight:var(--weight-medium); }.pergola-feedback:empty { min-height:0; margin:0; }.pergola-help { margin:var(--space-4) 0 0; padding:var(--space-3) var(--space-4); border-left:3px solid color-mix(in srgb,var(--brand-600) 42%,var(--border)); border-radius:var(--space-1); background:var(--brand-50); color:var(--text-secondary); font-size:var(--text-caption); line-height:1.5; }
.pergola-calendar-nav { display:grid; grid-template-columns:var(--touch-target) 1fr var(--touch-target); align-items:center; gap:var(--space-2); padding-bottom:var(--space-4); border-bottom:1px solid var(--border); text-align:center; }.pergola-calendar-nav h3 { margin:0; color:var(--text); font-size:var(--text-section-title); font-weight:var(--weight-semibold); text-transform:capitalize; }.pergola-calendar-nav p:not(.eyebrow) { margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-caption); }.pergola-calendar-step { width:var(--touch-target)!important; min-height:var(--touch-target)!important; padding:0!important; border:1px solid var(--border)!important; border-radius:var(--radius-control)!important; background:var(--surface-muted)!important; color:var(--brand-700)!important; font-size:1.65rem!important; font-weight:400!important; line-height:1!important; box-shadow:none!important; }.pergola-calendar-step:hover:not(:disabled) { border-color:color-mix(in srgb,var(--brand-600) 38%,var(--border))!important; background:var(--brand-50)!important; }
.pergola-weekdays,.pergola-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:var(--space-1); }.pergola-weekdays { margin-top:var(--space-4); color:var(--text-secondary); font-size:var(--text-caption); font-weight:var(--weight-semibold); text-align:center; }.pergola-calendar-grid { margin-top:var(--space-2); }.pergola-calendar-grid>span,.pergola-day { min-height:clamp(3.5rem,6vw,4.75rem); }.pergola-day { display:flex; min-width:0; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-1); padding:var(--space-1)!important; border:1px solid var(--border)!important; border-radius:calc(var(--radius-control) - .125rem)!important; background:var(--surface)!important; color:var(--text-secondary)!important; text-align:center; box-shadow:none!important; transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast); }.pergola-day strong { color:inherit; font-size:.875rem; font-variant-numeric:tabular-nums; font-weight:var(--weight-semibold); line-height:1; }.pergola-day small { max-width:100%; overflow:hidden; color:inherit; font-size:.625rem; font-weight:var(--weight-medium); line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }.pergola-day.available { border-color:color-mix(in srgb,var(--brand-600) 30%,var(--border))!important; background:var(--brand-50)!important; color:var(--brand-700)!important; }.pergola-day.available:hover { border-color:var(--brand-600)!important; background:var(--brand-100)!important; }.pergola-day.pending { border-color:color-mix(in srgb,var(--warning) 34%,var(--border))!important; background:var(--warning-soft)!important; color:var(--warning)!important; }.pergola-day.approved { border-color:color-mix(in srgb,var(--success) 30%,var(--border))!important; background:var(--success-soft)!important; color:var(--success)!important; }.pergola-day.blocked { background:var(--surface-muted)!important; color:color-mix(in srgb,var(--text-secondary) 72%,white)!important; }.pergola-day:disabled { cursor:default; opacity:1; }
.pergola-calendar-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-2) var(--space-4); margin-top:var(--space-4); color:var(--text-secondary); font-size:var(--text-caption); }.pergola-calendar-legend span { display:inline-flex; align-items:center; gap:var(--space-1); }.pergola-calendar-legend i { display:inline-block; width:.625rem; height:.625rem; border-radius:50%; }.pergola-calendar-legend .available { background:var(--brand-600); }.pergola-calendar-legend .pending { background:var(--warning); }.pergola-calendar-legend .approved { background:var(--success); }.pergola-calendar-legend .blocked { background:var(--border-strong); }
.pergola-reservation-list,.pergola-reservation-group__list { display:grid; gap:var(--space-3); }.pergola-reservation-card { display:grid; gap:var(--space-3); min-width:0; padding:var(--space-4); border:1px solid var(--border); border-left-width:3px; border-radius:var(--radius-control); background:var(--surface); box-shadow:none; }.pergola-reservation-card.status-pending { border-left-color:var(--warning); }.pergola-reservation-card.status-approved { border-left-color:var(--success); }.pergola-reservation-card.status-denied { border-left-color:var(--danger); }.pergola-reservation-card.status-cancelled,.pergola-reservation-card.status-closed { border-left-color:var(--border-strong); background:var(--surface-muted); }.pergola-reservation-head { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); }.pergola-reservation-identity { display:grid; min-width:0; gap:var(--space-1); }.pergola-reservation-identity strong { color:var(--text); font-size:1rem; font-weight:var(--weight-semibold); }.pergola-reservation-identity span,.pergola-reservation-meta { color:var(--text-secondary); font-size:var(--text-secondary-size); }.pergola-reservation-identity span { font-variant-numeric:tabular-nums; }.pergola-reservation-meta { margin:0; line-height:1.45; }
.pergola-status { display:inline-flex; width:fit-content; flex:0 0 auto; align-items:center; border:1px solid; border-radius:var(--radius-pill); padding:var(--space-1) var(--space-2); font-size:var(--text-caption); font-weight:var(--weight-semibold); }.pergola-status.pending { border-color:color-mix(in srgb,var(--warning) 28%,var(--border)); background:var(--warning-soft); color:var(--warning); }.pergola-status.approved { border-color:color-mix(in srgb,var(--success) 26%,var(--border)); background:var(--success-soft); color:var(--success); }.pergola-status.denied { border-color:color-mix(in srgb,var(--danger) 26%,var(--border)); background:var(--danger-soft); color:var(--danger); }.pergola-status.cancelled,.pergola-status.closed { border-color:var(--border); background:var(--surface-muted); color:var(--text-secondary); }
.pergola-requirements { display:flex; flex-wrap:wrap; gap:var(--space-2); }.pergola-requirement { display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:var(--radius-pill); padding:var(--space-1) var(--space-2); background:var(--surface-muted); color:var(--text-secondary); font-size:var(--text-caption); font-weight:var(--weight-medium); }.pergola-requirement.complete { border-color:color-mix(in srgb,var(--success) 24%,var(--border)); background:var(--success-soft); color:var(--success); }.pergola-requirement.pending { border-color:color-mix(in srgb,var(--warning) 26%,var(--border)); background:var(--warning-soft); color:var(--warning); }.pergola-denial-reason { flex-basis:100%; color:var(--danger); font-size:var(--text-caption); }
.pergola-actions { display:flex; flex-wrap:wrap; gap:var(--space-2); padding-top:var(--space-3); border-top:1px solid var(--border); }.pergola-actions .pergola-action { flex:1 1 9rem; min-height:var(--touch-target); padding-inline:var(--space-3); font-size:var(--text-secondary-size); }
.pergola-reservation-list--grouped { gap:var(--space-5); }.pergola-reservation-group { margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }.pergola-reservation-group+.pergola-reservation-group { padding-top:var(--space-5)!important; border-top:1px solid var(--border)!important; }.pergola-reservation-group__heading { margin-bottom:var(--space-3); }.pergola-reservation-group__heading h4 { margin:0; color:var(--text); font-size:1rem; font-weight:var(--weight-semibold); }.pergola-reservation-group__heading p { margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-caption); }
.pergola-sheet { width:min(48rem,calc(100vw - (var(--space-4) * 2))); max-height:min(42rem,calc(100dvh - (var(--space-4) * 2))); padding:0; border:0; border-radius:var(--radius-dialog); background:transparent; }.pergola-sheet::backdrop { background:color-mix(in srgb,var(--text) 48%,transparent); }.pergola-sheet>section { max-height:inherit; overflow:auto; border:1px solid var(--border); border-radius:var(--radius-dialog); padding:var(--space-5); background:var(--surface); box-shadow:var(--shadow-dialog); }.pergola-sheet header { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-4); padding-bottom:var(--space-4); border-bottom:1px solid var(--border); }.pergola-sheet h3 { margin:0; color:var(--text); font-weight:var(--weight-semibold); }.pergola-sheet header p:not(.eyebrow) { margin:var(--space-1) 0 0; color:var(--text-secondary); }.pergola-sheet header button { width:var(--touch-target); min-height:var(--touch-target); padding:0; border-color:var(--border); background:var(--surface-muted); color:var(--text-secondary); font-size:1.4rem; }.pergola-sheet>section>label { display:grid; gap:var(--space-2); margin:var(--space-4) 0; color:var(--text); font-size:var(--text-label); font-weight:var(--weight-medium); }.pergola-sheet-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:var(--space-3); }.pergola-sheet-list article { display:grid; gap:var(--space-1); padding:var(--space-3); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--surface-muted); }.pergola-sheet-list span { color:var(--text-secondary); font-size:var(--text-caption); }.pergola-sheet-list b { color:var(--brand-700); font-size:var(--text-secondary-size); font-weight:var(--weight-semibold); }
@media (max-width:52rem) { .module-pergola.ui-active,.module-pergola.ui-active:has(.pergola-management:not(.hidden)) { grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "management" "planning" "reservations"; }.pergola-management.hidden { display:none!important; } }
@media (max-width:47.5rem) { .module-pergola.ui-active,.pergola-planning { gap:var(--space-3); }.module-pergola>section,.pergola-planning>section { padding:var(--space-4)!important; }.pergola-management-header,.pergola-section-heading { align-items:stretch; flex-direction:column; }.pergola-create-card .pergola-section-heading { flex-direction:row; }.pergola-management-header .pergola-action { width:100%; }.pergola-section-heading label { width:100%; min-width:0; }.pergola-create-card #create-form { grid-template-columns:minmax(0,1fr); }.pergola-work-list { grid-template-columns:minmax(0,1fr); }.pergola-calendar-nav { grid-template-columns:var(--touch-target) minmax(0,1fr) var(--touch-target); }.pergola-calendar-nav p:not(.eyebrow) { display:none; }.pergola-weekdays,.pergola-calendar-grid { gap:2px; }.pergola-calendar-grid>span,.pergola-day { min-height:3.25rem; }.pergola-day { border-radius:.5rem!important; }.pergola-day strong { font-size:.8125rem; }.pergola-day small { font-size:.5625rem; }.pergola-calendar-legend { justify-content:flex-start; gap:var(--space-2) var(--space-3); }.pergola-reservation-head { flex-wrap:wrap; }.pergola-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.pergola-actions .pergola-action { width:100%; }.pergola-actions .pergola-action--primary { grid-column:1/-1; }.pergola-sheet { width:100vw; max-width:none; height:100dvh; max-height:none; border-radius:0; }.pergola-sheet>section { min-height:100dvh; border-radius:0; padding:var(--space-4); } }
@media (max-width:23.5rem) { .module-pergola>section,.pergola-planning>section { padding:var(--space-3)!important; }.pergola-calendar-grid>span,.pergola-day { min-height:3rem; }.pergola-day small { font-size:.5rem; }.pergola-actions { grid-template-columns:minmax(0,1fr); } }

/* Pérgola 02: jerarquía de gestión y disponibilidad. */
.pergola-create-card #create-form { grid-template-columns:minmax(0,1fr); }
#pergola-admin-reservations-slot { display:block; padding:0 var(--space-1) var(--space-4); }
#pergola-admin-reservations-slot .pergola-reservation-list,.pergola-reservation-group__list { grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),var(--pergola-card-max))); justify-content:center; }
@media (max-width:60rem) { .pergola-planning { grid-template-columns:minmax(0,1fr); } }
@media (max-width:47.5rem) { .module-pergola.ui-active { gap:var(--space-5); }.pergola-accordion-top { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }.pergola-accordion-trigger { min-height:var(--touch-target)!important; padding-block:var(--space-2)!important; }.pergola-accordion:not(.is-open) .pergola-accordion-copy small { display:none; }.pergola-admin-filter-slot { width:100%; padding:0 var(--space-1) var(--space-3); }.pergola-section-heading label,#pergola-filter { width:100%; min-width:0; }#pergola-admin-reservations-slot .pergola-reservation-list,.pergola-reservation-group__list { grid-template-columns:minmax(0,1fr); } }

/* Finanzas: workspace operativo de cuentas por cobrar. */
.module-finance.ui-active { display:grid!important; inline-size:min(100%,var(--content-max)); gap:var(--space-5); margin-inline:auto; color:var(--text); font-family:var(--font-product); }
.finance-heading { align-items:start; margin:0; padding:var(--space-1); }.finance-heading h2 { color:var(--text); font-size:var(--text-page-title); font-weight:var(--weight-semibold); letter-spacing:-.025em; line-height:1.15; }.finance-heading p:not(.eyebrow) { max-width:40rem; margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
#finance-app { display:grid; min-width:0; gap:0; }.module-finance #finance-notice:empty { display:none; }.module-finance #finance-notice { width:100%; margin:0 0 var(--space-5); }
.finance-nav { display:flex; min-width:0; flex-wrap:wrap; align-items:end; gap:var(--space-1); padding:var(--space-1) var(--space-1) 0; border-bottom:1px solid var(--border); }.module-finance .finance-nav__item { position:relative; z-index:0; display:inline-flex; width:auto; min-height:var(--touch-target); align-items:center; justify-content:center; gap:var(--space-2); border:1px solid transparent; border-bottom:0; border-radius:var(--radius-control) var(--radius-control) 0 0; padding:var(--space-2) var(--space-4); background:transparent; color:var(--text-secondary); font-size:var(--text-secondary-size); font-weight:var(--weight-semibold); line-height:1.25; white-space:nowrap; box-shadow:none; transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast); }.module-finance .finance-nav__icon { width:1.125rem; height:1.125rem; flex:0 0 auto; fill:currentColor; }.module-finance .finance-nav__item:hover { background:var(--surface-muted); color:var(--brand-700); }.module-finance .finance-nav__item.active { z-index:1; min-height:calc(var(--touch-target) + 1px); margin-bottom:-1px; border-color:var(--border); border-bottom:1px solid var(--surface); background:var(--surface); color:var(--brand-600); }.module-finance .finance-nav__item.active::after { content:none; }
.finance-workspace { display:grid; min-width:0; inline-size:min(100%,76rem); gap:var(--space-5); margin-inline:auto!important; padding:var(--space-5) 0 0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }
.finance-section-heading h3,.finance-section h3,.finance-operation h3,.finance-movement-filters h3,.finance-tools h3 { margin:0; color:var(--text); font-size:var(--text-section-title); font-weight:var(--weight-semibold); letter-spacing:-.015em; }.finance-section-heading { margin-bottom:var(--space-4); }.finance-section-heading .eyebrow { margin-bottom:var(--space-1)!important; }
.finance-query,.finance-operation,.finance-movement-filters,.finance-tools,.finance-section { margin:0!important; border:1px solid var(--border)!important; border-radius:var(--radius-surface)!important; padding:var(--space-5)!important; background:var(--surface)!important; box-shadow:var(--shadow-subtle)!important; }
.finance-query__controls { display:grid; grid-template-columns:minmax(16rem,1fr) auto; align-items:end; gap:var(--space-3); max-width:42rem; }.finance-query__controls label,.finance-operation label,.finance-movement-filters label,.finance-tools label,.finance-dialog label { display:grid; min-width:0; gap:var(--space-2); color:var(--text); font-size:var(--text-label); font-weight:var(--weight-medium); }.module-finance input,.module-finance select,.finance-dialog input,.finance-dialog select,.finance-dialog textarea { min-height:var(--control-height); border-color:var(--border-strong); border-radius:var(--radius-control); background:var(--surface-muted); color:var(--text); font-size:var(--text-body)!important; }.module-finance input:focus-visible,.module-finance select:focus-visible,.finance-dialog input:focus-visible,.finance-dialog select:focus-visible,.finance-dialog textarea:focus-visible { border-color:var(--brand-600); outline:3px solid color-mix(in srgb,var(--brand-600) 18%,transparent); }
.module-finance #finance-query,.module-finance .finance-operation form>button,.module-finance .finance-movement-filters form>button,.module-finance #finance-confirm-auto { min-height:var(--control-height); border-color:var(--brand-600); border-radius:var(--radius-control); background:var(--brand-600); color:var(--surface); box-shadow:none; }.module-finance #finance-query:hover,.module-finance .finance-operation form>button:hover,.module-finance .finance-movement-filters form>button:hover,.module-finance #finance-confirm-auto:hover { border-color:var(--brand-700); background:var(--brand-700); }
.finance-secondary-action,.module-finance [data-view-receipt],.module-finance #finance-timeline-open,.module-finance [data-movement-detail] { width:auto!important; border-color:var(--border-strong)!important; background:var(--surface)!important; color:var(--brand-700)!important; box-shadow:none!important; }.finance-secondary-action { margin-top:var(--space-4); }
#finance-statement { display:grid; gap:var(--space-4); margin-top:var(--space-5); }.finance-summary { display:grid; grid-template-columns:1.5fr repeat(2,minmax(0,1fr)); gap:var(--space-3); padding:0!important; border:0!important; background:transparent!important; box-shadow:none!important; }.finance-metric { display:grid; min-width:0; gap:var(--space-2); padding:var(--space-4); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--surface); }.finance-metric strong { color:var(--text-secondary); font-size:var(--text-caption); font-weight:var(--weight-medium); text-transform:uppercase; letter-spacing:.035em; }.finance-metric b { color:var(--text); font-size:clamp(1.35rem,3vw,1.75rem); font-variant-numeric:tabular-nums; font-weight:var(--weight-semibold); letter-spacing:-.025em; }.finance-metric--primary { border-color:color-mix(in srgb,var(--brand-600) 28%,var(--border)); background:var(--brand-50); }.finance-metric--primary b { color:var(--brand-700); }.finance-metric--positive b { color:var(--success); }
.finance-amount,.finance-metric,.module-finance td,.module-finance li { font-variant-numeric:tabular-nums; }.finance-status { display:inline-flex; width:fit-content; align-items:center; border:1px solid var(--border); border-radius:var(--radius-pill); padding:var(--space-1) var(--space-2); background:var(--surface-muted); color:var(--text-secondary); font-size:var(--text-caption); font-weight:var(--weight-semibold); white-space:nowrap; }.finance-status--positive { border-color:color-mix(in srgb,var(--success) 24%,var(--border)); background:var(--success-soft); color:var(--success); }.finance-status--warning { border-color:color-mix(in srgb,var(--warning) 26%,var(--border)); background:var(--warning-soft); color:var(--warning); }
.finance-section table { border-collapse:collapse; }.finance-section th,.finance-section td { padding:var(--space-3); border-bottom:1px solid var(--border); color:var(--text-secondary); font-size:var(--text-secondary-size); text-align:left; vertical-align:middle; }.finance-section th { color:var(--text-secondary); font-size:var(--text-caption); font-weight:var(--weight-semibold); text-transform:uppercase; letter-spacing:.035em; }.finance-section tbody tr:last-child td { border-bottom:0; }.finance-section td:nth-child(3) { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }.finance-section td:last-child { justify-content:flex-end; }.finance-section ul,.finance-account-details ol { margin:var(--space-3) 0; padding:0; list-style:none; }.finance-section li,.finance-account-details ol li { padding:var(--space-3) 0; border-bottom:1px solid var(--border); color:var(--text-secondary); font-size:var(--text-secondary-size); line-height:1.5; }.finance-section li:last-child,.finance-account-details ol li:last-child { border-bottom:0; }.finance-ledger h4,.finance-account-details h3:not(:first-child) { margin:var(--space-5) 0 var(--space-2); color:var(--text); font-size:1rem; font-weight:var(--weight-semibold); }
.finance-operation { max-width:56rem; }.finance-operation form,.finance-movement-filters form,.finance-workspace[data-finance-current="config"] form,.finance-dialog form { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3)!important; align-items:end; }.finance-operation form>button,.finance-movement-filters form>button,.finance-workspace[data-finance-current="config"] form>button { align-self:end; }.finance-operation form>button { grid-column:1/-1; justify-self:start; min-width:13rem; }
.finance-movement-filters form { grid-template-columns:repeat(4,minmax(0,1fr)); }.finance-movement-results { padding:0!important; border:1px solid var(--border)!important; border-radius:var(--radius-surface)!important; background:var(--surface)!important; box-shadow:none!important; }.finance-movement-results ul { margin:0; padding:0; list-style:none; }.finance-movement-results li { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:var(--space-3); padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--border); color:var(--text-secondary); font-size:var(--text-secondary-size); }.finance-movement-results li:last-child { border-bottom:0; }.finance-movement-results>.actions { justify-content:flex-end; padding:var(--space-3) var(--space-4); border-top:1px solid var(--border); }
.finance-tool-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-3); }.finance-tool-groups>section { display:grid; align-content:start; gap:var(--space-3); margin:0; padding:var(--space-4); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--surface-muted); box-shadow:none; }.finance-tool-groups h4 { margin:0; color:var(--text); font-size:1rem; font-weight:var(--weight-semibold); }.finance-tool-groups .actions { display:grid; gap:var(--space-2); }.finance-tool-groups button { width:100%; min-height:var(--touch-target); border-color:var(--border-strong); background:var(--surface); color:var(--brand-700); text-align:left; box-shadow:none; }.finance-tool-groups button:hover { border-color:color-mix(in srgb,var(--brand-600) 40%,var(--border)); background:var(--brand-50); }.finance-tool-unit { padding-bottom:var(--space-3); border-bottom:1px solid var(--border); }
.finance-workspace[data-finance-current="config"] { grid-template-columns:repeat(2,minmax(0,1fr)); }.finance-workspace[data-finance-current="config"]>.card { align-content:start; margin:0; border-color:var(--border)!important; border-radius:var(--radius-surface); padding:var(--space-5)!important; box-shadow:var(--shadow-subtle); }.finance-workspace[data-finance-current="config"]>.card:last-child { grid-column:1/-1; }.finance-workspace[data-finance-current="config"] ul { padding-left:var(--space-5); color:var(--text-secondary); }
.finance-dialog { width:min(48rem,calc(100vw - (var(--space-4) * 2))); max-height:calc(100dvh - (var(--space-4) * 2)); padding:0; border:0; border-radius:var(--radius-dialog); background:transparent; }.finance-dialog::backdrop { background:color-mix(in srgb,var(--text) 48%,transparent); }.finance-dialog__surface { max-height:inherit; overflow:auto; margin:0; border:1px solid var(--border)!important; border-radius:var(--radius-dialog)!important; padding:var(--space-5)!important; background:var(--surface)!important; box-shadow:var(--shadow-dialog)!important; }.finance-dialog__surface>header { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding-bottom:var(--space-4); border-bottom:1px solid var(--border); }.finance-dialog__surface>header h3 { margin:0; }.finance-dialog__surface>header button { width:auto; min-height:var(--touch-target); border-color:var(--border); background:var(--surface-muted); color:var(--text-secondary); }.finance-dialog #finance-parity-body { display:grid; gap:var(--space-3); margin-top:var(--space-4); }.finance-dialog .card { box-shadow:none; }
@media (max-width:64rem) { .finance-movement-filters form { grid-template-columns:repeat(2,minmax(0,1fr)); }.finance-tool-groups { grid-template-columns:minmax(0,1fr); }.finance-workspace[data-finance-current="config"] { grid-template-columns:minmax(0,1fr); }.finance-workspace[data-finance-current="config"]>.card:last-child { grid-column:auto; } }
@media (max-width:47.5rem) { .module-finance.ui-active,.finance-workspace { gap:var(--space-4); }.module-finance #finance-app { gap:0; }.finance-heading { padding-inline:var(--space-1); }.finance-nav { flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; padding-inline:var(--space-1); -webkit-overflow-scrolling:touch; scrollbar-width:none; }.finance-nav::-webkit-scrollbar { display:none; }.module-finance .finance-nav__item { flex:0 0 auto; padding-inline:var(--space-3); }.finance-query,.finance-operation,.finance-movement-filters,.finance-tools,.finance-section { padding:var(--space-4)!important; }.finance-query__controls,.finance-operation form,.finance-movement-filters form,.finance-workspace[data-finance-current="config"] form,.finance-dialog form { grid-template-columns:minmax(0,1fr); }.finance-query__controls button,.finance-operation form>button { width:100%; min-width:0; }.finance-summary { grid-template-columns:minmax(0,1fr); }.finance-metric { padding:var(--space-3) var(--space-4); }.finance-section table,.finance-section thead,.finance-section tbody,.finance-section tr,.finance-section th,.finance-section td { display:block; width:100%; }.finance-section thead { display:none; }.finance-section tr { margin:0; padding:var(--space-3) 0; border:0; border-bottom:1px solid var(--border); border-radius:0; }.finance-section tbody tr:last-child { border-bottom:0; }.finance-section td { padding:var(--space-1) 0; border:0; }.finance-section td:last-child { display:grid; grid-template-columns:minmax(0,1fr); justify-content:stretch; margin-top:var(--space-2); }.finance-section td:last-child button { width:100%; }.finance-movement-results li { grid-template-columns:minmax(0,1fr) auto; gap:var(--space-2); }.finance-movement-results li>span:first-child { grid-column:1/-1; }.finance-movement-results li button { grid-column:1/-1; width:100%!important; }.finance-secondary-action { width:100%!important; }.finance-dialog { width:100vw; max-width:none; height:100dvh; max-height:none; border-radius:0; }.finance-dialog__surface { min-height:100dvh; border-radius:0!important; padding:var(--space-4)!important; } }

/* UI-5: Encuestas reproduce el recorrido público → administración → editor. */
.module-polls.ui-active { display:block!important; max-width:70rem; margin-inline:auto; }.polls-heading,.poll-admin-heading,.poll-editor-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:start; gap:1rem; margin-bottom:1.25rem; }.polls-heading h2,.poll-admin-heading h3,.poll-editor-heading h3 { margin:0; color:var(--ink); font-size:clamp(1.5rem,3vw,2rem); letter-spacing:-.035em; }.polls-heading p:not(.eyebrow),.poll-admin-heading p:not(.eyebrow),.poll-editor-heading p:not(.eyebrow) { margin:.3rem 0 0; color:var(--muted); }.polls-heading #poll-admin-open { background:#243b58; border-color:#243b58; }.polls-heading #poll-admin-open:hover { background:#182c46; }
#poll-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr)); gap:1rem; }.poll-public-card,.poll-admin-card { display:flex; flex-direction:column; gap:.9rem; min-width:0; padding:1.15rem; border:1px solid #dce6ed; border-radius:1rem; background:#fff; box-shadow:0 3px 12px #102c460a; }.poll-public-card h3,.poll-admin-card h4 { margin:0 0 .55rem; color:var(--ink); font-size:1.08rem; }.poll-public-card>button { margin-top:auto; }.poll-status { display:inline-flex; width:fit-content; padding:.28rem .55rem; border-radius:.5rem; font-size:.75rem; font-weight:800; }.poll-status.active { color:#176b45; background:#edf8f2; }.poll-status.draft { color:#61717d; background:#edf1f4; }.poll-status.closed { color:#885d0b; background:#fff7dd; }.poll-public-card p,.poll-admin-card p,.poll-note { margin:.45rem 0 0; color:var(--muted); font-size:.84rem; line-height:1.5; }.poll-note { padding:.7rem; border-radius:.6rem; background:#f5f8fa; }.poll-empty { grid-column:1/-1; margin:0; padding:2.3rem 1rem; border:1px dashed #cbd7df; border-radius:1rem; color:var(--muted); text-align:center; }
#poll-admin-view,#poll-editor,#poll-vote { max-width:70rem; margin-inline:auto; }.poll-admin-heading { padding:1.2rem; border:1px solid #d9e2ea; border-radius:1rem; background:#f8fbfd; }.poll-admin-heading>div:last-child { display:flex; flex-wrap:wrap; gap:.55rem; }.poll-admin-heading #poll-new { background:#176aa8; }.poll-admin-heading #poll-admin-back,.poll-editor-heading>#poll-editor-back { color:#476272; background:#fff; border-color:#cbd9e2; }.poll-admin-heading #poll-new,.poll-admin-heading #poll-admin-back { width:auto; }.poll-admin-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(13rem,.55fr); align-items:start; margin-bottom:.75rem; }.poll-admin-actions { display:flex; flex-wrap:wrap; gap:.45rem; padding-left:.8rem; border-left:1px solid #e2eaf0; }.poll-admin-actions button { flex:1 1 6.5rem; min-height:2.45rem; }.poll-editor-heading { padding-bottom:1rem; border-bottom:1px solid #dce6ed; }.poll-editor-heading>#poll-editor-back { width:auto; order:2; }.module-polls #poll-editor-form { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem!important; padding:1.2rem; border:1px solid #dce6ed; border-radius:1rem; background:#fff; }.module-polls #poll-editor-form label:nth-of-type(1),.module-polls #poll-editor-form label:nth-of-type(2),.module-polls #poll-editor-form label:nth-of-type(6) { grid-column:1/-1; }.module-polls #poll-editor-form button { align-self:end; }.module-polls #poll-vote { max-width:44rem; }.module-polls #poll-vote-title { margin:0; color:var(--ink); font-size:1.5rem; }.module-polls #poll-vote-intro { color:var(--muted); line-height:1.55; }.module-polls #poll-vote-form { display:grid; gap:1rem; margin:1rem 0; }.module-polls #poll-vote-form>label { display:grid; gap:.65rem; padding:1rem; border:1px solid #dce6ed; border-radius:.9rem; background:#fff; color:var(--ink); font-weight:750; }.module-polls #poll-vote-form select,.module-polls #poll-vote-form textarea { margin-top:.25rem; }.module-polls #poll-vote-cancel { color:#476272; background:#fff; border-color:#cbd9e2; }
@media(max-width:760px) { .polls-heading,.poll-admin-heading,.poll-editor-heading { align-items:stretch; }.polls-heading #poll-admin-open,.poll-admin-heading #poll-new,.poll-admin-heading #poll-admin-back,.poll-editor-heading>#poll-editor-back { width:100%; }.poll-admin-heading>div:last-child { display:grid; }.poll-admin-card { grid-template-columns:1fr; }.poll-admin-actions { padding:.8rem 0 0; border-top:1px solid #e2eaf0; border-left:0; }.module-polls #poll-editor-form { grid-template-columns:1fr; }.module-polls #poll-editor-form label { grid-column:auto!important; } }

/* Fase 7B: importación XLSX aislada al editor ADMIN. */
.poll-xlsx-tools { grid-column:1/-1; display:grid; gap:.7rem; padding:1rem; border:1px dashed #a9c9dd; border-radius:.8rem; background:#f5faff; }.poll-xlsx-tools h4 { margin:0; color:var(--ink); }.poll-xlsx-tools p { margin:.3rem 0 0; color:var(--muted); font-size:.82rem; }.poll-xlsx-actions { display:flex; flex-wrap:wrap; gap:.55rem; }.poll-xlsx-actions button,.poll-xlsx-import,.poll-xlsx-tools>#poll-xlsx-apply { width:auto; min-height:2.5rem; }.poll-xlsx-import { display:inline-flex; align-items:center; justify-content:center; padding:.58rem .85rem; border:1px solid #176aa8; border-radius:.55rem; color:#176aa8; background:#fff; font-weight:700; cursor:pointer; }.poll-xlsx-import input { position:absolute; width:1px; height:1px; opacity:0; }.poll-xlsx-import:focus-within { outline:3px solid #2780bd26; }.poll-xlsx-tools>#poll-xlsx-apply { justify-self:start; }.poll-xlsx-tools #poll-xlsx-preview { padding:.75rem .9rem; border-radius:.65rem; color:#38586c; background:#fff; font-size:.84rem; }.poll-xlsx-tools #poll-xlsx-preview strong { color:var(--ink); }.poll-xlsx-tools #poll-xlsx-preview ul,.poll-xlsx-tools #poll-xlsx-preview ol { margin:.45rem 0 0; padding-left:1.25rem; }.poll-xlsx-tools #poll-xlsx-preview li+li { margin-top:.2rem; }
@media(max-width:760px) { .poll-xlsx-actions { display:grid; }.poll-xlsx-actions button,.poll-xlsx-import,.poll-xlsx-tools>#poll-xlsx-apply { width:100%; } }
.poll-question-editor { grid-column:1/-1; display:grid; gap:.85rem; }.poll-question-editor>header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:start; gap:.75rem; }.poll-question-editor h4,.poll-question-editor h5 { margin:0; color:var(--ink); }.poll-question-editor>header p { margin:.25rem 0 0; color:var(--muted); font-size:.82rem; }.poll-question-editor>header button { width:auto; }.poll-question-editor>#poll-question-list { display:grid; gap:.8rem; }.poll-question-card { padding:1rem; border:1px solid #d9e5ec; border-radius:.85rem; background:#fbfdfe; }.poll-question-card>header { display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding-bottom:.75rem; border-bottom:1px solid #e5edf2; }.poll-question-card>header strong { color:#295b7a; }.poll-question-actions { display:flex; flex-wrap:wrap; gap:.35rem; }.poll-question-actions button { width:auto; min-height:2.25rem; padding:.38rem .6rem; color:#476272; background:#fff; border-color:#cbd9e2; }.poll-question-actions button:last-child { color:#a33131; border-color:#e4aaaa; background:#fff1f1; }.poll-question-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin-top:.8rem; }.poll-question-fields>label { display:grid; gap:.35rem; color:#4d6271; font-size:.8rem; font-weight:750; }.poll-question-fields>label:first-child,.poll-question-fields>label:nth-child(2),.poll-option-editor { grid-column:1/-1; }.poll-question-fields textarea { min-height:5rem; }.poll-option-editor { display:grid; gap:.55rem; padding:.8rem; border:1px solid #dce8ee; border-radius:.7rem; background:#f4f9fc; }.poll-option-list { display:grid; gap:.45rem; }.poll-option-list>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.45rem; }.poll-option-list button,.poll-option-editor>button { width:auto; min-height:2.3rem; padding:.4rem .6rem; color:#476272; background:#fff; border-color:#cbd9e2; }.poll-question-empty { margin:0; padding:1rem; border:1px dashed #cbd7df; border-radius:.7rem; color:var(--muted); text-align:center; }
@media(max-width:760px) { .poll-question-editor>header button,.poll-question-actions button,.poll-option-editor>button,.poll-option-list button { width:100%; }.poll-question-fields { grid-template-columns:1fr; }.poll-question-fields>label:first-child,.poll-question-fields>label:nth-child(2),.poll-option-editor { grid-column:auto; }.poll-question-card>header { align-items:stretch; flex-direction:column; }.poll-question-actions { display:grid; grid-template-columns:1fr 1fr; }.poll-question-actions button:last-child { grid-column:1/-1; }.poll-option-list>div { grid-template-columns:1fr; } }
.poll-report-dialog { width:min(72rem,calc(100vw - 2rem)); max-height:min(48rem,calc(100dvh - 2rem)); padding:0; border:0; border-radius:1rem; background:transparent; }.poll-report-dialog::backdrop { background:#14223385; backdrop-filter:blur(3px); }.poll-report-dialog>section { max-height:inherit; overflow:auto; border:0; border-radius:1rem; padding:1.25rem; background:#fff; box-shadow:0 24px 65px #102c4645; }.poll-report-dialog header { display:flex; justify-content:space-between; gap:1rem; align-items:start; padding-bottom:1rem; border-bottom:1px solid #dce6ed; }.poll-report-dialog h3 { margin:0; color:var(--ink); }.poll-report-dialog header p:not(.eyebrow) { margin:.3rem 0 0; color:var(--muted); }.poll-report-dialog header button { width:2.65rem; min-height:2.65rem; padding:0; color:#526776; background:#f2f6f8; border-color:#dce6ed; font-size:1.4rem; }.poll-report-dialog footer { display:flex; justify-content:end; margin-top:1rem; }.poll-report-list { display:grid; gap:.5rem; margin:1rem 0 0; padding:0; list-style:none; }.poll-report-list li { padding:.75rem .85rem; border:1px solid #dce6ed; border-radius:.65rem; color:#40596b; background:#f9fbfc; }.poll-report-table-wrap { margin-top:1rem; overflow:auto; border:1px solid #dce6ed; border-radius:.7rem; }.poll-report-table-wrap table { min-width:max(100%,40rem); border-collapse:collapse; }.poll-report-table-wrap th,.poll-report-table-wrap td { padding:.7rem; border-bottom:1px solid #e6edf1; text-align:left; vertical-align:top; white-space:pre-wrap; }.poll-report-table-wrap th { position:sticky; top:0; color:var(--ink); background:#eef5f9; }.poll-report-table-wrap tr:last-child td { border-bottom:0; }
@media(max-width:760px) { .poll-report-dialog { width:100vw; max-width:none; height:100dvh; max-height:none; border-radius:0; }.poll-report-dialog>section { min-height:100dvh; border-radius:0; padding:1rem; }.poll-report-dialog footer button { width:100%; } }

/* Visitas: credenciales y actividad con metadata semántica compacta. */
.module-access.ui-active { display:grid!important; gap:var(--space-5); max-width:var(--content-task); margin-inline:auto; font-family:var(--font-product); }
.module-access .access-heading { display:grid; gap:var(--space-1); padding-inline:var(--space-1); }
.module-access .access-heading h2 { margin:0; color:var(--text); font-size:var(--text-page-title); font-weight:var(--weight-semibold); letter-spacing:-.025em; line-height:1.15; }
.module-access .access-heading p:not(.eyebrow) { margin:0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
.module-access .access-section { display:grid; gap:var(--space-4); margin:0; padding:var(--space-5); border:1px solid var(--border); border-radius:var(--radius-surface); background:var(--surface); box-shadow:var(--shadow-subtle); }
.module-access .access-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-4); padding-bottom:var(--space-3); border-bottom:1px solid var(--border); }
.module-access .access-section-heading h3 { margin:0; color:var(--text); font-size:var(--text-section-title); font-weight:var(--weight-semibold); letter-spacing:-.015em; }
.module-access .access-section-heading p:not(.eyebrow) { margin:var(--space-1) 0 0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
.module-access #access-form { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3)!important; align-items:end; margin:0; }
.module-access #access-form label,.module-access #access-history-filters label { display:grid; min-width:0; gap:var(--space-2); color:var(--text); font-size:var(--text-label); font-weight:var(--weight-medium); }
.module-access #access-form button { justify-self:start; min-width:13rem; }
.module-access #access-history-filters { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-3)!important; align-items:end; margin:0; }
.module-access #access-history-filters button { align-self:end; }
.module-access .access-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr)); gap:var(--space-3); }
.module-access .access-card { display:grid; min-width:0; gap:var(--space-3); margin:0; padding:var(--space-4)!important; border:1px solid var(--border)!important; border-left:3px solid var(--border-strong)!important; border-radius:var(--radius-control)!important; background:var(--surface)!important; box-shadow:none!important; }
.module-access .access-card--active,.module-access .access-card--upcoming { border-left-color:var(--brand-600)!important; }
.module-access .access-card--consumed { border-left-color:var(--success)!important; }
.module-access .access-card--cancelled,.module-access .access-card--revoked,.module-access .access-card--entry_denied { border-left-color:var(--danger)!important; }
.module-access .access-card--upcoming { background:color-mix(in srgb,var(--surface) 97%,var(--warning))!important; }
.module-access .access-card__header { display:flex; min-width:0; align-items:flex-start; justify-content:space-between; gap:var(--space-3); }
.module-access .access-card__identity { display:grid; min-width:0; gap:var(--space-1); }
.module-access .access-card__identity strong { overflow:hidden; color:var(--text); font-size:1rem; font-weight:var(--weight-semibold); text-overflow:ellipsis; white-space:nowrap; }
.module-access .access-card__identity span,.module-access .access-card__detail { color:var(--text-secondary); font-size:var(--text-secondary-size); }
.module-access .access-card__detail { margin:0; line-height:1.45; }
.module-access .access-card__chips { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.module-access .access-chip { display:inline-flex; width:max-content; max-width:100%; align-items:center; border:1px solid var(--border); border-radius:var(--radius-pill); padding:var(--space-1) var(--space-2); background:var(--surface-muted); color:var(--text-secondary); font-size:var(--text-caption); font-weight:var(--weight-semibold); line-height:1.25; }
.module-access .access-chip--positive { border-color:color-mix(in srgb,var(--success) 24%,var(--border)); background:var(--success-soft); color:var(--success); }
.module-access .access-chip--warning { border-color:color-mix(in srgb,var(--warning) 28%,var(--border)); background:var(--warning-soft); color:var(--warning); }
.module-access .access-chip--danger { border-color:color-mix(in srgb,var(--danger) 24%,var(--border)); background:var(--danger-soft); color:var(--danger); }
.module-access .access-chip--info { border-color:color-mix(in srgb,var(--brand-600) 24%,var(--border)); background:var(--brand-50); color:var(--brand-700); }
.module-access .access-card__qr { display:grid; min-height:12rem; place-items:center; padding:var(--space-3); border:1px solid var(--border); background:var(--surface-muted); }
.module-access .access-card__qr svg { width:min(100%,12rem)!important; height:auto; }
.module-access .access-card__actions { display:flex; flex-wrap:wrap; gap:var(--space-2); padding-top:var(--space-3); border-top:1px solid var(--border); }
.module-access .access-card__actions button { flex:1 1 8rem; min-height:var(--touch-target); padding-inline:var(--space-3); font-size:var(--text-secondary-size); }
.module-access #access-history-more { justify-self:start; }
@media (max-width:64rem) { .module-access #access-form { grid-template-columns:repeat(2,minmax(0,1fr)); }.module-access #access-history-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:47.5rem) { .module-access.ui-active { gap:var(--space-4); }.module-access .access-section { padding:var(--space-4); }.module-access #access-form,.module-access #access-history-filters { grid-template-columns:minmax(0,1fr); }.module-access #access-form button { width:100%; min-width:0; }.module-access .access-card-grid { grid-template-columns:minmax(0,1fr); }.module-access .access-card__header { align-items:stretch; flex-direction:column; }.module-access .access-card__actions { display:grid; grid-template-columns:minmax(0,1fr); }.module-access .access-card__actions button { width:100%; }.module-access .access-card__qr { min-height:10rem; } }

/* Visitas 02: centro de accesos, identidad y profundidad específicas del módulo. */
.module-access { --access-brand:#2563eb; --access-brand-strong:#1d4ed8; --access-ink:#1e293b; --access-muted:#64748b; --access-line:#cbd5e1; --access-canvas:#f4f7fb; --access-soft:#f8fbff; --access-positive:#166534; --access-positive-bg:#ecfdf3; --access-positive-line:#86efac; --access-info:#175cd3; --access-info-bg:#eff8ff; --access-info-line:#93c5fd; --access-warning:#b54708; --access-warning-bg:#fffaeb; --access-warning-line:#fcd34d; --access-danger:#c01048; --access-danger-bg:#fff1f3; --access-danger-line:#fda29b; --access-neutral:#475467; --access-neutral-bg:#f8fafc; --access-neutral-line:#d0d5dd; }
.module-access.ui-active { gap:1.5rem; padding:2rem; border:0!important; border-radius:1.5rem!important; background:var(--access-canvas)!important; box-shadow:none!important; }
.module-access .access-heading { gap:.5rem; padding:1.5rem; border:1px solid color-mix(in srgb,var(--access-brand) 16%,var(--access-line)); border-radius:1.25rem; background:linear-gradient(120deg,#fff 0%,var(--access-soft) 100%); box-shadow:0 8px 24px rgb(15 23 42 / .04); }
.module-access .access-heading .eyebrow,.module-access .access-section .eyebrow { color:var(--access-brand-strong)!important; font-size:.75rem; font-weight:700; letter-spacing:.09em; }
.module-access .access-heading h2 { color:var(--access-ink); font-size:clamp(2rem,3vw,2.5rem); font-weight:700; letter-spacing:-.035em; }
.module-access .access-heading p:not(.eyebrow) { max-width:42rem; color:var(--access-muted); font-size:1rem; font-weight:500; line-height:1.55; }
.module-access .access-section { min-width:0; gap:1rem; padding:1.5rem; border-color:var(--access-line); border-radius:1.25rem; box-shadow:0 8px 24px rgb(15 23 42 / .04); }
.module-access .access-section--new { border-top:1px solid var(--access-line); background:var(--access-soft); }
.module-access .access-section-heading { padding-bottom:.75rem; border-bottom-color:color-mix(in srgb,var(--access-line) 70%,transparent); }
.module-access .access-section-heading h3 { color:var(--access-ink); font-size:1.75rem; font-weight:700; letter-spacing:-.025em; }
.module-access .access-section-heading p:not(.eyebrow) { margin-top:.125rem; color:var(--access-muted); font-size:.9375rem; font-weight:500; }
.module-access #access-form label,.module-access #access-history-filters label { color:var(--access-ink); font-size:.875rem; font-weight:600; }
.module-access #access-unit-label[hidden],.module-access #access-history-unit-label[hidden],.module-access #access-history-visitor-label[hidden] { display:none!important; }
.module-access #access-form input,.module-access #access-form select,.module-access #access-form textarea,.module-access #access-history-filters input,.module-access #access-history-filters select { min-height:3rem; border-color:var(--access-line); border-radius:.875rem; background:#fff; color:var(--access-ink); font-size:1rem; font-weight:500; }
.module-access #access-form textarea { min-height:6rem; padding-block:.75rem; resize:vertical; }
.module-access #access-form :is(input,select,textarea):focus,.module-access #access-history-filters :is(input,select):focus { border-color:var(--access-brand); outline:3px solid color-mix(in srgb,var(--access-brand) 18%,transparent); outline-offset:1px; }
.module-access .access-notes-field { grid-column:span 2; }
.module-access .access-visitor-field { order:1; }.module-access .access-unit-field { order:2; }.module-access .access-date-field { order:3; }.module-access .access-guests-field { order:4; }.module-access .access-modality-field { order:5; }.module-access .access-parking-field { order:6; }.module-access .access-notes-field { order:7; }.module-access .access-generate-button { order:8; }.module-access .access-form-note { order:9; }
.module-access:not(.is-access-manager) .access-visitor-field { grid-column:1/-1; }
.module-access #access-form button { min-height:3rem; border-color:var(--access-brand); border-radius:.875rem; background:var(--access-brand); color:#fff; font-weight:700; box-shadow:0 4px 12px rgb(37 99 235 / .18); }
.module-access #access-form button:hover { border-color:var(--access-brand-strong); background:var(--access-brand-strong); }
.module-access .access-form-note { align-self:center; margin:0; padding:0; border:0; background:transparent; color:var(--access-muted); font-size:.8125rem; font-weight:500; line-height:1.45; }
.module-access #access-form .access-generate-button { grid-column:1/-1; justify-self:stretch; width:100%; min-width:0; min-height:50px; }
.module-access:not(.is-access-manager) .access-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.module-access #access-history-filters { padding:.875rem; border:1px solid color-mix(in srgb,var(--access-line) 78%,transparent); border-radius:1rem; background:var(--access-soft); }
.module-access #access-history-filters button { min-height:3rem; border-color:var(--access-brand); border-radius:.875rem; background:var(--access-brand); color:#fff; font-weight:700; }
.module-access .access-card { gap:1rem; border-color:color-mix(in srgb,var(--access-line) 82%,white)!important; border-left-width:4px!important; border-radius:1.125rem!important; padding:1rem!important; box-shadow:0 4px 16px rgb(15 23 42 / .05)!important; transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast); }
.module-access .access-card--active { border-left-color:var(--access-positive-line)!important; }.module-access .access-card--upcoming { border-left-color:var(--access-warning-line)!important; background:#fff!important; }.module-access .access-card--consumed { border-left-color:var(--access-positive-line)!important; }.module-access .access-card--claimed { border-left-color:var(--access-info-line)!important; }.module-access .access-card--cancelled,.module-access .access-card--revoked,.module-access .access-card--entry_denied { border-left-color:var(--access-danger-line)!important; }
.module-access .access-card__identity strong { color:var(--access-ink); font-size:1.0625rem; font-weight:700; }.module-access .access-card__identity span,.module-access .access-card__detail { color:var(--access-muted); font-size:.9375rem; font-weight:500; }.module-access .access-card__detail { padding-top:.75rem; border-top:1px solid color-mix(in srgb,var(--access-line) 64%,transparent); }
.module-access .access-chip { border-radius:999px; padding:.375rem .625rem; border-color:var(--access-neutral-line); background:var(--access-neutral-bg); color:var(--access-neutral); font-size:.8125rem; font-weight:600; }
.module-access .access-chip--positive { border-color:var(--access-positive-line); background:var(--access-positive-bg); color:var(--access-positive); }.module-access .access-chip--info { border-color:var(--access-info-line); background:var(--access-info-bg); color:var(--access-info); }.module-access .access-chip--warning { border-color:var(--access-warning-line); background:var(--access-warning-bg); color:var(--access-warning); }.module-access .access-chip--danger { border-color:var(--access-danger-line); background:var(--access-danger-bg); color:var(--access-danger); }
.module-access .access-card__qr { border-color:var(--access-info-line); border-radius:.875rem; background:var(--access-soft); }.module-access .access-card__actions { gap:.5rem; border-top-color:color-mix(in srgb,var(--access-line) 68%,transparent); }.module-access .access-card__actions button { min-height:3rem; border-color:var(--access-line); border-radius:.875rem; background:#fff; color:var(--access-brand-strong); font-weight:600; box-shadow:none; }.module-access .access-card__actions button:first-child { border-color:var(--access-brand); background:var(--access-brand); color:#fff; }.module-access .access-card__actions button:last-child.button-danger { border-color:var(--access-danger-line); background:var(--access-danger-bg); color:var(--access-danger); }
@media (hover:hover) and (pointer:fine) { .module-access .access-card:hover { border-color:var(--access-info-line)!important; box-shadow:0 10px 24px rgb(15 23 42 / .08)!important; transform:translateY(-2px); } }
/* El resultado se vuelve la superficie operativa inmediatamente después de crear el pase. */
.module-access .access-title-mobile { display:none; }
.module-access .access-created-result { display:grid; min-width:0; gap:1rem; padding-top:.25rem; scroll-margin-top:5.5rem; }
.module-access .access-created-result:focus { outline:none; }
.module-access #access-created-pass { min-width:0; }
.module-access .access-created-result__heading { display:grid; gap:.25rem; }
.module-access .access-created-result__heading h4 { margin:0; color:var(--access-ink); font-size:1.25rem; font-weight:700; letter-spacing:-.02em; }
.module-access .access-created-result__heading p:not(.eyebrow) { margin:0; color:var(--access-muted); font-size:.9375rem; font-weight:500; }
.module-access .access-created-result .access-card { width:min(100%,52rem); margin-inline:auto; }
.module-access .access-created-result .access-card--created { display:grid; grid-template-columns:minmax(0,1fr) minmax(18.75rem,21.25rem); align-items:start; gap:var(--space-5); padding:var(--space-4)!important; border:1px solid color-mix(in srgb,var(--access-line) 82%,white)!important; border-left:1px solid color-mix(in srgb,var(--access-line) 82%,white)!important; border-radius:var(--radius-surface)!important; background:var(--surface); box-shadow:var(--shadow-surface)!important; }
.module-access .access-created-context { display:grid; min-width:0; gap:var(--space-3); align-content:start; }
.module-access .access-created-details-toggle { display:flex; width:100%; min-height:3rem; align-items:center; justify-content:space-between; gap:var(--space-3); padding:var(--space-2) 0; border:0; border-bottom:1px solid color-mix(in srgb,var(--access-line) 72%,transparent); background:transparent; color:var(--access-ink); text-align:left; }
.module-access .access-created-details-copy { display:grid; gap:.125rem; min-width:0; }.module-access .access-created-details-copy strong { font-size:1rem; font-weight:var(--weight-semibold); }.module-access .access-created-details-copy small { overflow:hidden; color:var(--access-muted); font-size:var(--text-secondary-size); font-weight:var(--weight-medium); text-overflow:ellipsis; white-space:nowrap; }.module-access .access-created-details-icon { display:grid; flex:0 0 auto; width:1.125rem; height:1.125rem; color:var(--access-brand-strong); transition:transform var(--transition-fast); }.module-access .access-created-details-icon svg { width:100%; height:100%; }.module-access .access-created-details-toggle[aria-expanded="true"] .access-created-details-icon { transform:rotate(180deg); }
.module-access .access-created-details { padding-top:var(--space-1); }.module-access .access-created-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2); margin:0; }.module-access .access-created-detail-grid > div { min-width:0; padding:.625rem .75rem; border:1px solid color-mix(in srgb,var(--access-line) 64%,transparent); border-radius:var(--radius-control); background:var(--surface-muted); }.module-access .access-created-detail-grid dt { color:var(--access-muted); font-size:.75rem; font-weight:var(--weight-semibold); }.module-access .access-created-detail-grid dd { margin:.1875rem 0 0; overflow-wrap:anywhere; color:var(--access-ink); font-size:var(--text-secondary-size); font-weight:var(--weight-medium); }.module-access .access-created-detail-grid > div:last-child:nth-child(odd) { grid-column:1/-1; }
.module-access .access-created-qr-panel { display:grid; justify-items:center; gap:var(--space-3); width:100%; max-width:21.25rem; padding:var(--space-3); border:1px solid color-mix(in srgb,var(--access-line) 72%,white); border-radius:var(--radius-surface); background:var(--surface-muted); }.module-access .access-created-qr-panel .access-card__qr { width:100%; min-height:0; padding:var(--space-2); border:1px solid color-mix(in srgb,var(--access-line) 60%,transparent); border-radius:var(--radius-control); background:var(--surface); }.module-access .access-created-qr-panel .access-card__qr svg { width:min(100%,13rem)!important; height:auto; }
.module-access .access-created-qr-panel .access-card__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:var(--space-2); padding:0; border:0; }.module-access .access-created-qr-panel .access-card__actions button { min-width:0; min-height:3rem; padding-inline:var(--space-2); white-space:normal; }.module-access .access-created-qr-panel .access-card__actions button:first-child { grid-column:auto; border-color:var(--access-brand); background:var(--access-brand); color:var(--surface); }.module-access .access-created-qr-panel .access-card__actions button:nth-child(3) { grid-column:1/-1; }
.module-access .access-created-manage { display:grid; gap:var(--space-2); padding-top:var(--space-2); border-top:1px solid color-mix(in srgb,var(--access-line) 64%,transparent); }.module-access .access-created-manage:empty { display:none; }.module-access .access-created-manage button { min-height:3rem; border-color:var(--access-danger-line); border-radius:var(--radius-control); background:transparent; color:var(--access-danger); font-weight:var(--weight-semibold); }
.module-access #access-create-another { justify-self:center; min-height:3rem; padding-inline:var(--space-4); border-color:var(--access-info-line); border-radius:.875rem; background:#fff; color:var(--access-brand-strong); font-weight:600; box-shadow:none; }
.module-access #access-create-another:hover { border-color:var(--access-brand); background:var(--access-info-bg); }
.module-access .access-section--new.is-showing-result > .access-section-heading,.module-access .access-section--new.is-showing-result > #access-form { display:none!important; }
.module-access .access-section--new.is-showing-result { background:var(--surface); }
@media (max-width:47.5rem) { .module-access.ui-active { gap:1.5rem; padding:1.25rem; border-radius:0!important; }.module-access .access-heading,.module-access .access-section { padding:1.25rem; border-radius:1.25rem; }.module-access .access-heading h2 { font-size:2rem; }.module-access .access-title-desktop { display:none; }.module-access .access-title-mobile { display:inline; }.module-access .access-heading p:not(.eyebrow) { font-size:.9375rem; line-height:1.45; }.module-access .access-section-heading h3 { font-size:1.5rem; }.module-access #access-form { grid-template-columns:repeat(2,minmax(0,1fr))!important; }.module-access #access-form > label:has(#access-visitor),.module-access #access-unit-label,.module-access .access-notes-field,.module-access #access-form > button,.module-access .access-form-note { grid-column:1/-1; }.module-access #access-unit-label { order:-2; }.module-access #access-form > label:has(#access-date) { order:1; }.module-access #access-form > label:has(#access-guests) { order:2; }.module-access #access-form > label:has(#access-modality) { order:3; }.module-access #access-form > label:has(#access-parking) { order:4; }.module-access .access-notes-field { order:5; }.module-access #access-form > button { order:6; }.module-access .access-form-note { order:7; }.module-access #access-form button { width:100%; min-width:0; }.module-access:not(.is-access-manager) .access-card-grid { grid-template-columns:minmax(0,1fr); }.module-access #access-history-filters { padding:.75rem; }.module-access .access-card__chips { gap:.5rem; }.module-access .access-created-result .access-card--created { grid-template-columns:minmax(0,1fr); gap:var(--space-3); padding:var(--space-3)!important; }.module-access .access-created-qr-panel { order:-1; max-width:none; }.module-access .access-created-qr-panel .access-card__qr svg { width:min(100%,12rem)!important; }.module-access .access-created-detail-grid { grid-template-columns:minmax(0,1fr); }.module-access .access-created-detail-grid > div:last-child:nth-child(odd) { grid-column:auto; }.module-access #access-create-another { width:100%; }.module-access .access-section--new.is-showing-result { gap:1.25rem; } }
@media (max-width:26rem) { .module-access .access-created-qr-panel .access-card__actions { grid-template-columns:minmax(0,1fr); }.module-access .access-created-qr-panel .access-card__actions button:first-child,.module-access .access-created-qr-panel .access-card__actions button:nth-child(3) { grid-column:auto; } }
}

/* Tickets 01: estructura operativa; el diseño fino queda deliberadamente acotado. */
.module-tickets.ui-active { display:grid!important; width:min(100%,var(--content-standard)); gap:var(--space-5); margin-inline:auto; font-family:var(--font-product); }
.module-tickets>section { display:grid; gap:var(--space-4); margin:0; padding:var(--space-5); border:1px solid var(--border); border-radius:var(--radius-surface); background:var(--surface); box-shadow:var(--shadow-subtle); }
.module-tickets .screen-heading { margin:0; padding-inline:var(--space-1); }
.module-tickets .section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-4); padding-bottom:var(--space-3); border-bottom:1px solid var(--border); }
.module-tickets .section-heading h3,.module-tickets h4 { margin:0; color:var(--text); font-weight:var(--weight-semibold); }
.module-tickets .section-heading p:not(.eyebrow),.module-tickets small { color:var(--text-secondary); }
.module-tickets #ticket-form,.module-tickets #tickets-filters { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3)!important; align-items:end; }
.module-tickets #ticket-form label,.module-tickets #tickets-filters label,.module-tickets .ticket-manage label { display:grid; min-width:0; gap:var(--space-2); color:var(--text); font-size:var(--text-label); font-weight:var(--weight-medium); }
.module-tickets #ticket-form label:has(textarea),.module-tickets #ticket-form label:has(input[type="file"]),.module-tickets .ticket-confidential,.module-tickets #ticket-form>button { grid-column:1/-1; }
.module-tickets #ticket-form :is(input,select,textarea),.module-tickets #tickets-filters :is(input,select),.module-tickets .ticket-manage :is(select,textarea) { min-height:var(--control-height); border-color:var(--border-strong); border-radius:var(--radius-control); background:var(--surface-muted); color:var(--text); }
.module-tickets #ticket-form textarea,.module-tickets .ticket-manage textarea { min-height:6rem; }
.module-tickets .ticket-confidential { grid-template-columns:auto minmax(0,1fr); align-items:start; padding:var(--space-3); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--surface-muted); }
.module-tickets .ticket-confidential input { width:auto; min-height:var(--space-5); margin-top:.125rem; }
.module-tickets .ticket-confidential span { display:grid; gap:var(--space-1); }
.module-tickets #tickets-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
.module-tickets #tickets-kpis .card strong { color:var(--text-secondary); font-size:var(--text-caption); text-transform:uppercase; letter-spacing:.04em; }
.module-tickets #tickets-kpis .card span { color:var(--text); font-size:1.25rem; font-weight:var(--weight-semibold); }
.module-tickets .ticket-card { align-content:start; gap:var(--space-3); border-left:3px solid var(--border-strong)!important; }
.module-tickets .ticket-card--new { border-left-color:var(--brand-600)!important; }.module-tickets .ticket-card--in_review { border-left-color:var(--warning)!important; }.module-tickets .ticket-card--resolved { border-left-color:var(--success)!important; }.module-tickets .ticket-card--closed { border-left-color:var(--border-strong)!important; }
.module-tickets .ticket-card>header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-3); }
.module-tickets .ticket-status--new { background:var(--brand-50); color:var(--brand-700); }.module-tickets .ticket-status--in_review { background:var(--warning-soft); color:var(--warning); }.module-tickets .ticket-status--resolved { background:var(--success-soft); color:var(--success); }.module-tickets .ticket-status--closed { background:var(--surface-muted); color:var(--text-secondary); }
.module-tickets .ticket-detail { display:grid; gap:var(--space-3); padding-top:var(--space-3); border-top:1px solid var(--border); }.module-tickets .ticket-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-2); margin:0; padding:0; list-style:none; }.module-tickets .ticket-progress li { min-width:0; color:var(--text-secondary); font-size:var(--text-caption); }.module-tickets .ticket-progress .is-reached { color:var(--brand-700); font-weight:var(--weight-semibold); }.module-tickets .ticket-progress .is-current { color:var(--text); }
.module-tickets .ticket-response { padding:var(--space-3); border-radius:var(--radius-control); background:var(--surface-muted); }.module-tickets .ticket-response p { margin:var(--space-1) 0 0; }
.module-tickets .ticket-evidence { display:grid; grid-template-columns:repeat(auto-fit,minmax(8rem,1fr)); gap:var(--space-2); }.module-tickets .ticket-evidence img { width:100%; aspect-ratio:1.25; object-fit:cover; border-radius:var(--radius-control); }
.module-tickets .ticket-manage { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); padding-top:var(--space-3); border-top:1px solid var(--border); }.module-tickets .ticket-manage label:nth-child(2),.module-tickets .ticket-manage button { grid-column:1/-1; }
@media (max-width:47.5rem) { .module-tickets.ui-active { gap:var(--space-4); }.module-tickets>section { padding:var(--space-4); }.module-tickets .section-heading { align-items:stretch; flex-direction:column; }.module-tickets #ticket-new { width:100%; }.module-tickets #ticket-form,.module-tickets #tickets-filters,.module-tickets .ticket-manage { grid-template-columns:minmax(0,1fr); }.module-tickets #tickets-kpis { grid-template-columns:minmax(0,1fr); }.module-tickets .ticket-progress { grid-template-columns:repeat(2,minmax(0,1fr)); }.module-tickets #tickets-more { width:100%; } }

/* Tickets 03: atención humana, disclosure y operación móvil. */
.module-tickets .tickets-heading { padding:0 var(--space-1); }.module-tickets .tickets-heading h2 { font-size:var(--text-page-title); }
.module-tickets .tickets-create-closed { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); }.module-tickets .tickets-create-closed h3,.module-tickets #ticket-form h3 { margin:0; font-size:var(--text-section-title); }.module-tickets .tickets-create-closed p:not(.eyebrow) { margin:var(--space-1) 0 0; color:var(--text-secondary); }
.module-tickets .ticket-primary-action,.module-tickets .ticket-refresh { display:inline-flex; width:auto; min-height:var(--touch-target); align-items:center; justify-content:center; gap:var(--space-2); white-space:nowrap; }.module-tickets .ticket-primary-action svg,.module-tickets .ticket-refresh svg,.module-tickets .ticket-upload-control svg { width:1.15rem; height:1.15rem; }
.module-tickets .ticket-refresh { border-color:var(--text); background:var(--text); color:var(--surface); }.module-tickets .ticket-refresh:hover:not(:disabled) { border-color:var(--text); background:color-mix(in srgb,var(--text) 88%,var(--surface)); }
.module-tickets #ticket-form { margin-top:0; }.module-tickets #ticket-form>header,.module-tickets .ticket-description-field,.module-tickets .ticket-photo-field,.module-tickets .ticket-confidential,.module-tickets .ticket-form-actions { grid-column:1/-1; }.module-tickets #ticket-form>header { padding-bottom:var(--space-2); border-bottom:1px solid var(--border); }.module-tickets #ticket-form>header .eyebrow { margin-bottom:var(--space-1)!important; }
.module-tickets #ticket-evidence { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }.module-tickets .ticket-upload-control { display:flex; width:100%; min-height:var(--touch-target); align-items:center; justify-content:flex-start; gap:var(--space-3); border:1px dashed var(--border-strong); background:var(--surface-muted); color:var(--text); text-align:left; }.module-tickets .ticket-upload-control span { display:grid; gap:2px; }.module-tickets .ticket-upload-control small { font-weight:400; }
.module-tickets .ticket-file-summary { display:grid; gap:var(--space-2); margin-top:var(--space-2); }.module-tickets .ticket-file-summary>div { display:flex; min-width:0; align-items:center; justify-content:space-between; gap:var(--space-2); padding:var(--space-2) var(--space-3); border-radius:var(--radius-control); background:var(--surface-muted); color:var(--text-secondary); font-size:var(--text-secondary-size); }.module-tickets .ticket-file-summary button { width:auto; min-height:2rem; padding:var(--space-1) var(--space-2); border-color:var(--border); background:var(--surface); color:var(--text-secondary); }
.module-tickets .ticket-confidential { grid-template-columns:auto auto minmax(0,1fr); gap:var(--space-2); align-items:start; padding:var(--space-3); background:var(--surface-muted); }.module-tickets .ticket-confidential svg { width:1rem; height:1rem; color:var(--brand-700); }.module-tickets .ticket-confidential input { margin:0.125rem 0 0; }.module-tickets .ticket-form-actions { display:grid; grid-template-columns:1fr auto; gap:var(--space-2); }.module-tickets .ticket-form-actions button { min-height:var(--touch-target); }.module-tickets .ticket-form-actions button:last-child { border-color:var(--border); background:var(--surface); color:var(--text-secondary); }
.module-tickets #tickets-created-result { display:grid; gap:var(--space-3); scroll-margin-top:var(--space-6); }.module-tickets .ticket-created-confirmation { display:grid; gap:2px; padding:var(--space-3); border:1px solid color-mix(in srgb,var(--success) 25%,var(--border)); border-radius:var(--radius-control); background:var(--success-soft); color:var(--success); }.module-tickets .ticket-created-confirmation span { color:var(--text-secondary); font-size:var(--text-secondary-size); }
.module-tickets .tickets-kpis { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); }.module-tickets .ticket-kpi { display:grid; gap:var(--space-1); padding:var(--space-3); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--surface-muted); }.module-tickets .ticket-kpi strong,.module-tickets .ticket-kpi small { color:var(--text-secondary); font-size:var(--text-caption); }.module-tickets .ticket-kpi b { color:var(--text); font-size:1.35rem; font-variant-numeric:tabular-nums; }.module-tickets .tickets-ranking { display:grid; gap:var(--space-2); }.module-tickets .tickets-ranking h4,.module-tickets .tickets-ranking p { margin:0; }.module-tickets .tickets-ranking p { color:var(--text-secondary); font-size:var(--text-secondary-size); }.module-tickets #tickets-ranking-list { display:grid; gap:1px; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius-control); }.module-tickets .ticket-ranking-row { display:flex; align-items:center; justify-content:space-between; padding:var(--space-2) var(--space-3); background:var(--surface-muted); }.module-tickets .ticket-ranking-row span { min-width:1.75rem; color:var(--brand-700); font-weight:var(--weight-semibold); text-align:center; }
.module-tickets #tickets-filters { grid-template-columns:minmax(0,1fr) auto; }.module-tickets .ticket-search-field { grid-column:1; }.module-tickets #tickets-filters-toggle { display:none; }.module-tickets #tickets-filters-toggle > svg.ticket-icon { width:1.15rem; height:1.15rem; flex:0 0 1.15rem; }.module-tickets .ticket-filter-fields { display:grid; grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-3); }.module-tickets .ticket-filter-actions { display:flex; gap:var(--space-2); align-items:end; }.module-tickets .ticket-filter-actions button { min-height:var(--touch-target); }.module-tickets .ticket-filter-actions button:last-child { border-color:var(--border); background:var(--surface); color:var(--text-secondary); }
.module-tickets .tickets-list { display:grid; gap:var(--space-3); }.module-tickets .ticket-card { padding:var(--space-4)!important; cursor:default; }.module-tickets .ticket-card>header h4 { outline:none; }.module-tickets .ticket-card>header p,.module-tickets .ticket-card-meta,.module-tickets .ticket-excerpt { margin:0; }.module-tickets .ticket-card>header p,.module-tickets .ticket-card-meta { color:var(--text-secondary); font-size:var(--text-secondary-size); }.module-tickets .ticket-excerpt { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.5; }.module-tickets .ticket-open { width:100%; min-height:var(--touch-target); border-color:var(--border); background:var(--surface-muted); color:var(--brand-700); }.module-tickets .ticket-detail-host { display:grid; gap:var(--space-3); }.module-tickets .ticket-progress { position:relative; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }.module-tickets .ticket-progress li { display:grid; gap:var(--space-1); color:var(--text-secondary); text-align:center; }.module-tickets .ticket-progress li b { display:grid; width:1.4rem; height:1.4rem; place-self:center; place-items:center; border-radius:999px; background:var(--surface-muted); font-size:.75rem; }.module-tickets .ticket-progress .is-reached b { background:var(--brand-600); color:var(--surface); }.module-tickets .ticket-progress .is-current { color:var(--text); }.module-tickets .ticket-full-description { margin:0; line-height:var(--leading-body); }.module-tickets .ticket-response { border:1px solid color-mix(in srgb,var(--success) 22%,var(--border)); background:var(--success-soft); }.module-tickets .ticket-metadata { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-2); margin:0; }.module-tickets .ticket-metadata div { padding:var(--space-2); border-radius:var(--radius-control); background:var(--surface-muted); }.module-tickets .ticket-metadata dt { color:var(--text-secondary); font-size:var(--text-caption); }.module-tickets .ticket-metadata dd { margin:var(--space-1) 0 0; font-size:var(--text-secondary-size); }
.module-tickets .ticket-disclosure { display:flex; width:100%; min-height:var(--touch-target); align-items:center; justify-content:space-between; border:0; background:transparent; color:var(--text); text-align:left; }.module-tickets .ticket-disclosure>span { display:grid; gap:2px; }.module-tickets .ticket-disclosure strong { font-size:var(--text-section-title); }.module-tickets .ticket-disclosure small { color:var(--text-secondary); }.module-tickets .ticket-disclosure-icon { width:1.25rem; height:1.25rem; transition:transform var(--transition-fast); }.module-tickets .ticket-disclosure[aria-expanded="true"] .ticket-disclosure-icon { transform:rotate(180deg); }.module-tickets .ticket-disclosure-content { display:grid; gap:var(--space-3); }
.module-tickets .ticket-refreshed-at { min-height:1rem; margin:-.5rem 0 0; color:var(--text-secondary); font-size:var(--text-caption); }.module-tickets .ticket-count { display:inline-grid; min-width:1.5rem; place-items:center; border-radius:var(--radius-pill); padding:0 var(--space-1); background:var(--surface-muted); color:var(--text-secondary); font-size:var(--text-secondary-size); vertical-align:middle; }.module-tickets .ticket-empty { margin:0; padding:var(--space-3) 0; color:var(--text-secondary); font-size:var(--text-secondary-size); }
@media (max-width:47.5rem) { .module-tickets .tickets-create-closed { align-items:stretch; flex-direction:column; }.module-tickets .ticket-primary-action { width:100%; }.module-tickets #ticket-form { grid-template-columns:repeat(2,minmax(0,1fr)); }.module-tickets #ticket-form>header,.module-tickets #ticket-implicated-label,.module-tickets .ticket-description-field,.module-tickets .ticket-photo-field,.module-tickets .ticket-confidential,.module-tickets .ticket-form-actions { grid-column:1/-1; }.module-tickets .tickets-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.module-tickets .ticket-refresh { width:auto; }.module-tickets #tickets-filters { grid-template-columns:minmax(0,1fr) auto; }.module-tickets #tickets-filters-toggle { display:inline-flex; width:auto; min-height:var(--touch-target); align-items:center; gap:var(--space-1); border-color:var(--border); background:var(--surface-muted); color:var(--text-secondary); }.module-tickets .ticket-filter-fields { display:none; grid-template-columns:minmax(0,1fr); }.module-tickets .ticket-filter-fields.is-open { display:grid; }.module-tickets .ticket-filter-actions { display:grid; grid-template-columns:1fr 1fr; }.module-tickets .ticket-progress { grid-template-columns:repeat(4,minmax(0,1fr)); }.module-tickets .ticket-progress li { font-size:.625rem; }.module-tickets .ticket-metadata { grid-template-columns:minmax(0,1fr); } }
@media (max-width:23rem) { .module-tickets #ticket-form { grid-template-columns:minmax(0,1fr); }.module-tickets #ticket-form>label { grid-column:1/-1; }.module-tickets .ticket-form-actions { grid-template-columns:minmax(0,1fr); }.module-tickets .tickets-kpis { grid-template-columns:minmax(0,1fr); } }

/* Tickets 04: una sola entrada por acción y secciones secundarias compactas. */
.module-tickets .tickets-create-closed h3 { margin:0; }.module-tickets .tickets-create-closed p { margin:var(--space-1) 0 0; color:var(--text-secondary); }.module-tickets #ticket-form>header { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); }.module-tickets #ticket-cancel { width:auto; min-height:var(--touch-target); border-color:var(--border); background:var(--surface-muted); color:var(--text-secondary); }.module-tickets .ticket-form-actions { grid-template-columns:minmax(0,1fr); }.module-tickets .ticket-form-actions button { width:100%; }.module-tickets #tickets-resident-history { gap:0; padding:0; border:0; background:transparent; box-shadow:none; }.module-tickets #tickets-resident-history .ticket-disclosure { padding:var(--space-2) var(--space-1); }.module-tickets .ticket-filter-fields .ticket-search-field { grid-column:span 2; }.module-tickets #tickets-filters { grid-template-columns:minmax(0,1fr); }.module-tickets #tickets-filters-toggle { justify-self:start; }.module-tickets .ticket-filter-fields { grid-template-columns:repeat(4,minmax(0,1fr)); }.module-tickets .ticket-filter-actions { grid-column:span 2; }
@media (max-width:47.5rem) { .module-tickets .ticket-filter-fields .ticket-search-field,.module-tickets .ticket-filter-actions { grid-column:auto; }.module-tickets #tickets-filters-toggle { justify-self:stretch; width:100%; justify-content:space-between; }.module-tickets .ticket-disclosure strong { font-size:1rem; }.module-tickets .tickets-create-closed { gap:var(--space-3); } }
