:root{--bg:#f8fafc;--surface:#fff;--surface-alt:#eff6ff;--ink:#0f172a;--ink-soft:#64748b;--ink-faint:#94a3b8;--primary:#2563eb;--primary-dark:#1d4ed8;--accent:#38bdf8;--accent-ink:#0c4a6e;--warning:#f5a524;--danger:#ef5d70;--border:#e2e8f0;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);margin:0}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600}button,input,select{font-family:inherit;font-size:1rem}button{font-family:var(--font-display);font-weight:600}.auth-screen{background:radial-gradient(circle at 15% 15%, #dbeafe 0%, var(--bg) 45%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-screen--split{background:var(--bg);justify-content:flex-start;align-items:stretch;min-height:100vh;padding:0;display:flex}.auth-brand{color:#fff;background:linear-gradient(150deg,#0f172a 0%,#1e3a8a 100%);flex-direction:column;flex:50%;justify-content:center;padding:4rem 3.5rem;display:flex;position:relative;overflow:hidden}.auth-brand__content{z-index:1;position:relative}.auth-brand__logo{font-family:var(--font-display);opacity:.95;align-items:center;gap:.6rem;margin-bottom:3rem;font-size:1.1rem;font-weight:700;display:flex}.auth-brand__logo-mark{background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:3px;width:.6rem;height:.6rem}.auth-brand h2{font-family:var(--font-display);color:#fff;max-width:24ch;margin:0 0 2.5rem;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1.3}.auth-brand__features{color:#ffffffd1;flex-direction:column;gap:1.1rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.auth-brand__features li{align-items:center;gap:.7rem;display:flex}.auth-brand__features svg{width:1.15rem;height:1.15rem;color:var(--accent);flex-shrink:0}.auth-brand__blob{background:radial-gradient(circle, var(--primary) 0%, transparent 70%);opacity:.4;filter:blur(20px);pointer-events:none;border-radius:50%;width:460px;height:460px;position:absolute;bottom:-200px;right:-140px}.auth-panel{flex:50%;justify-content:center;align-items:center;padding:2rem;display:flex}@media (width<=900px){.auth-brand{display:none}}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);flex-direction:column;gap:.4rem;width:100%;max-width:380px;padding:2.5rem;display:flex;box-shadow:0 20px 45px -12px #1d4ed838}.auth-card h1{font-family:var(--font-display);color:var(--ink);margin:0}.auth-subtitle{color:var(--ink-soft);margin:0 0 1.2rem}.auth-card label{color:var(--ink-soft);font-size:.85rem;font-family:var(--font-display);margin-top:.6rem}.auth-card input{border:1px solid var(--border);border-radius:6px;margin-top:.3rem;padding:.6rem .7rem}.auth-card button{background:var(--primary);color:var(--surface);cursor:pointer;border:none;border-radius:9px;margin-top:1.5rem;padding:.75rem;font-weight:600;transition:background .15s,transform .1s;box-shadow:0 8px 20px -6px #1d4ed88c}.auth-card button:hover{background:var(--primary-dark);transform:translateY(-1px)}.auth-card button:disabled{opacity:.6;cursor:default}.auth-error,.page-error{color:var(--danger);font-size:.9rem}.shell{align-items:stretch;min-height:100vh;display:flex}.sidebar{background:#0f172a;flex-direction:column;flex-shrink:0;width:250px;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.sidebar__brand{font-family:var(--font-display);color:#fff;letter-spacing:-.01em;align-items:center;gap:.5rem;margin-bottom:2rem;padding:0 .6rem;font-size:1.1rem;font-weight:700;display:flex}.sidebar__brand:before{content:"";background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:3px;flex-shrink:0;width:.6rem;height:.6rem}.sidebar__nav{flex-direction:column;flex:1;gap:.2rem;display:flex}.sidebar__link{color:#94a3b8;font-size:.92rem;font-family:var(--font-sans);border-radius:9px;align-items:center;gap:.7rem;padding:.65rem .7rem;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar__link:hover{color:#fff;background:#ffffff0f}.sidebar__link.is-active{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;font-weight:600;box-shadow:0 6px 16px -4px #1d4ed899}.sidebar__link-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar__link-icon svg{width:1.15rem;height:1.15rem}.sidebar__footer{border-top:1px solid #ffffff1a;flex-direction:column;gap:.4rem;padding-top:1rem;display:flex}.sidebar__usuario{color:#94a3b8;margin:0;padding:0 .6rem;font-size:.85rem}.sidebar__footer .link-button{color:#93c5fd;padding:0 .6rem}.shell__main{flex:1;min-width:0;overflow-x:hidden}.impersonando-banner{background:var(--warning);color:#3a2a00;justify-content:center;align-items:center;gap:.75rem;padding:.6rem 1.5rem;font-size:.85rem;display:flex}.impersonando-banner .link-button{color:#3a2a00;font-weight:700}.page{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.page__header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.page__header h1{color:var(--primary-dark);margin:0 0 .2rem}.page__header p{color:var(--ink-soft);font-family:var(--font-sans);margin:0}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.3rem;padding:1.1rem 1.25rem;display:flex}.stat-tile__valor{font-family:var(--font-mono);color:var(--ink);font-size:2rem;font-weight:700;line-height:1}.stat-tile__etiqueta{color:var(--ink-soft);font-size:.85rem}.stat-tile--critical{border-left-color:var(--danger)}.stat-tile--critical .stat-tile__valor{color:var(--danger)}.stat-tile--warning{border-left-color:var(--warning)}.stat-tile--warning .stat-tile__valor{color:var(--warning)}.stat-tile--good{border-left-color:var(--primary)}.stat-tile--good .stat-tile__valor{color:var(--primary-dark)}.stat-tile--neutral{border-left-color:var(--border)}.calendar__header{font-family:var(--font-display);justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.calendar__header strong{text-align:center;text-transform:capitalize;min-width:11ch}.calendar__nav{background:var(--surface-alt);border:1px solid var(--border);cursor:pointer;width:2rem;height:2rem;color:var(--ink);border-radius:6px;font-size:1rem;line-height:1}.calendar__nav:hover{background:var(--border)}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.calendar__grid--dias{margin-bottom:.35rem}.calendar__dia-semana{text-align:center;font-family:var(--font-display);color:var(--ink-soft);padding-bottom:.2rem;font-size:.75rem}.calendar__cell{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);cursor:pointer;min-height:3.2rem;font-family:var(--font-sans);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.3rem;display:flex}.calendar__cell:hover{background:var(--surface-alt)}.calendar__cell.is-fuera-de-mes{opacity:.35}.calendar__cell.is-hoy{border-color:var(--primary)}.calendar__cell.is-seleccionado{background:var(--surface-alt);border-color:var(--primary-dark);box-shadow:inset 0 0 0 1px var(--primary-dark)}.calendar__cell-numero{color:var(--ink);font-size:.85rem}.calendar__cell-dots{gap:.25rem;display:flex}.calendar__dot{font-family:var(--font-display);color:var(--surface);border-radius:999px;justify-content:center;align-items:center;min-width:1.1rem;height:1.1rem;padding:0 .25rem;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex}.calendar__dot--pendiente{background:var(--warning)}.calendar__dot--confirmada{background:var(--primary)}.calendar__detalle{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.25rem}.calendar__detalle h3{color:var(--ink);text-transform:capitalize;margin:0 0 .75rem;font-size:.95rem}.calendar__sin-reservas{color:var(--ink-soft);margin:0;font-size:.9rem}.calendar__cell-barra{border-radius:999px;align-self:stretch;margin-top:.15rem;display:flex;overflow:hidden}.calendar__cell-barra-seg{flex-grow:1;flex-basis:0;min-width:2px}.calendar__cell-barra-seg--pendiente{background:var(--warning)}.calendar__cell-barra-seg--confirmada{background:var(--primary)}.calendar__timeline{border-top:1px solid var(--border);border-left:1px solid var(--border);border-radius:6px;column-gap:.5rem;margin-top:.6rem;padding-top:.6rem;display:grid;position:relative;overflow:hidden}.calendar__timeline-hora{border-top:1px solid var(--border);position:relative}.calendar__timeline-hora-label{font-family:var(--font-mono);color:var(--ink-faint);background:var(--bg);padding-right:.3rem;font-size:.68rem;position:absolute;top:-.55rem;left:0}.calendar__timeline-bloque{color:var(--surface);cursor:default;border-radius:6px;flex-direction:column;gap:.1rem;margin:1px 2px;padding:.25rem .4rem;font-size:.72rem;line-height:1.2;display:flex;overflow:hidden}.calendar__timeline-bloque strong{font-size:.75rem}.calendar__timeline-bloque span{opacity:.9;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar__timeline-bloque--pendiente{background:var(--warning)}.calendar__timeline-bloque--confirmada{background:var(--primary)}.calendar__detalle-inactivas{opacity:.7;margin-top:1rem}.week__header{font-family:var(--font-display);justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.week__rango{text-align:center;text-transform:capitalize;min-width:14ch}.week__grid{border:1px solid var(--border);border-radius:8px;display:flex;overflow-x:auto}.week__col{border-left:1px solid var(--border);flex:1 1 0;min-width:6.5rem}.week__col:first-child{border-left:none}.week__col--horas{flex:0 0 3.2rem;min-width:3.2rem}.week__col.is-hoy .week__col-header{background:var(--surface-alt);color:var(--primary-dark)}.week__col-header{border-bottom:1px solid var(--border);height:3rem;font-family:var(--font-display);flex-direction:column;justify-content:center;align-items:center;font-size:.72rem;display:flex}.week__col-header-dia{text-transform:uppercase;color:var(--ink-faint);letter-spacing:.04em}.week__col-header-num{color:var(--ink);font-size:.9rem;font-weight:600}.week__col-body{position:relative}.week__hora-row{border-top:1px solid var(--border)}.week__hora-label{font-family:var(--font-mono);color:var(--ink-faint);border-top:1px solid var(--border);box-sizing:border-box;justify-content:flex-end;align-items:flex-start;padding-top:.15rem;padding-right:.4rem;font-size:.65rem;display:flex}.week__bloque{color:var(--surface);cursor:default;border-radius:5px;flex-direction:column;gap:.05rem;padding:.2rem .35rem;font-size:.65rem;line-height:1.25;display:flex;position:absolute;overflow:hidden}.week__bloque strong{white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.week__bloque--pendiente{background:var(--warning)}.week__bloque--confirmada{background:var(--primary)}.week__acceso-mes{text-align:right;margin-top:1rem}@media (width<=760px){.shell{flex-direction:column}.sidebar{flex-direction:row;align-items:center;gap:1rem;width:100%;height:auto;padding:.75rem 1rem;position:static}.sidebar__brand{margin-bottom:0}.sidebar__nav{flex-direction:row;flex:1;overflow-x:auto}.sidebar__link{white-space:nowrap}.sidebar__footer{border-top:none;flex-direction:row;padding-top:0}.sidebar__usuario{display:none}.form-grid{grid-template-columns:1fr}}.link-button{color:var(--primary-dark);cursor:pointer;font-size:.9rem;font-family:var(--font-display);background:0 0;border:none;padding:0;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 1px 2px #1c18300a}.card h2{font-family:var(--font-display);color:var(--ink);margin-top:0;font-size:1.1rem}.plain-list{color:var(--ink-soft);font-family:var(--font-sans);flex-direction:column;gap:.4rem;margin:0 0 1.2rem;padding:0;list-style:none;display:flex}.form-grid{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:.9rem;padding-top:1.2rem;display:grid}.form-grid-full{grid-column:1/-1}.form-grid label{color:var(--ink-soft);font-size:.85rem;font-family:var(--font-display);flex-direction:column;gap:.3rem;display:flex}.form-grid .checkbox-label{flex-direction:row;align-items:center;gap:.5rem}.form-grid input,.form-grid select{border:1px solid var(--border);color:var(--ink);font-family:var(--font-sans);border-radius:6px;padding:.55rem .6rem}.form-grid button{background:var(--primary);color:var(--surface);cursor:pointer;border:none;border-radius:8px;padding:.7rem;font-weight:600;transition:background .12s,transform .1s}.form-grid button:hover{background:var(--primary-dark);transform:translateY(-1px)}.form-grid button:disabled{opacity:.6;cursor:default}.form-grid__botones{gap:.75rem;display:flex}.form-grid__botones button{flex:1}.btn-secundario{color:var(--ink-soft)!important;border:1px solid var(--border)!important;background:0 0!important}.btn-secundario:hover{background:var(--surface-alt)!important;color:var(--ink)!important}.plain-list--filas li,.plain-list__fila{justify-content:space-between;align-items:center;gap:1rem;display:flex}.plain-list__item--inactivo{opacity:.55}.plain-list__acciones{flex-shrink:0;gap:.75rem;display:flex}.link-button--danger{color:var(--danger)}.icon-btn-group{gap:.25rem}.icon-btn{width:2.15rem;height:2.15rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex;position:relative}.icon-btn svg{width:1.05rem;height:1.05rem}.icon-btn:hover,.icon-btn:focus-visible{background:var(--surface-alt);color:var(--ink)}.icon-btn:disabled{opacity:.45;cursor:default}.icon-btn:disabled:hover{color:var(--ink-soft);background:0 0}.icon-btn--danger:hover,.icon-btn--danger:focus-visible{color:var(--danger);background:#ef5d701f}.icon-btn:after{content:attr(data-tooltip);background:var(--ink);color:#fff;font-family:var(--font-sans);white-space:nowrap;opacity:0;pointer-events:none;z-index:30;border-radius:6px;padding:.35rem .6rem;font-size:.72rem;font-weight:500;line-height:1.3;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.icon-btn:hover:after,.icon-btn:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.inline-icon{align-items:center;gap:.4rem;display:inline-flex}.inline-icon svg{flex-shrink:0;width:1em;height:1em}.card__ayuda{color:var(--ink-soft);margin:-.4rem 0 1rem;font-size:.85rem}.invitacion-link{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem}.invitacion-link p{color:var(--ink-soft);margin:0 0 .5rem;font-size:.9rem}.invitacion-link__fila{align-items:stretch;gap:.6rem;display:flex}.invitacion-link__fila code{background:var(--surface-alt);border:1px solid var(--border);white-space:nowrap;border-radius:6px;flex:1;padding:.6rem .75rem;font-size:.8rem;overflow-x:auto}.invitacion-link__fila button{flex-shrink:0;padding:0 1.1rem}.reserva-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.reserva-item{border-left:4px solid var(--border);background:var(--surface-alt);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.reserva-item div:first-child{flex-direction:column;gap:.15rem;display:flex}.reserva-meta{align-items:center;gap:.6rem;display:flex}.badge{font-family:var(--font-display);letter-spacing:.02em;background:var(--surface);color:var(--ink-soft);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge svg{flex-shrink:0;width:.85rem;height:.85rem}.badge--danger{background:var(--danger);color:var(--surface);border-color:var(--danger)}.propietarios__filtro{font-family:var(--font-display);color:var(--ink-soft);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.propietarios__filtro select{border:1px solid var(--border);font-family:var(--font-sans);border-radius:6px;padding:.4rem .6rem}.propietarios__lista li{border-bottom:1px solid var(--border);padding:.9rem 0}.propietarios__lista li:last-child{border-bottom:none}.propietarios__fila{justify-content:space-between;align-items:center;gap:1rem;display:flex}.propietarios__contacto{color:var(--ink-soft);font-size:.85rem}.propietarios__reservas{border-top:1px dashed var(--border);margin-top:.9rem;padding-top:.9rem}.reserva-item.estado-confirmada{border-left-color:var(--primary)}.reserva-item.estado-pendiente{border-left-color:var(--warning)}.reserva-item.estado-rechazada,.reserva-item.estado-cancelada{border-left-color:var(--danger);opacity:.7}.btn-approve,.btn-reject{cursor:pointer;color:var(--surface);border:none;border-radius:6px;padding:.45rem .9rem;font-weight:600}.btn-approve{background:var(--primary)}.btn-approve:hover{background:var(--primary-dark)}.btn-reject{background:var(--danger)}.btn-reject:hover{opacity:.9}.btn-approve:disabled,.btn-reject:disabled{opacity:.5;cursor:default}
