@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #E8EAEF;--surface: #FFFFFF;--accent: #C4622D;--accent-light: #E07B45;--accent-bg: #FDF0E8;--ocre: #D4A853;--text: #0F1117;--text-sec: #3D4250;--muted: #6B7280;--hint: #9CA3AF;--border: rgba(0,0,0,.08);--border-md: rgba(0,0,0,.13);--white: #FFFFFF;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 4px rgba(0,0,0,.07), 0 0 0 1px rgba(0,0,0,.04);--shadow-lg: 0 4px 20px rgba(0,0,0,.1), 0 0 0 1px rgba(0,0,0,.04)}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.content-area{flex:1;overflow-y:auto;padding:20px}.content-area--cal{padding:0;overflow:hidden;display:flex;flex-direction:column}.topnav{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;gap:32px;height:56px;flex-shrink:0;box-shadow:var(--shadow);z-index:50}.topnav-logo{display:flex;flex-direction:column;justify-content:center;flex-shrink:0;margin-right:8px}.topnav-logo-name{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.3px;line-height:1.2}.topnav-logo-sub{font-size:11px;color:var(--hint);letter-spacing:.8px;text-transform:uppercase;font-weight:500}.topnav-links{display:flex;align-items:center;gap:4px;flex:1}.topnav-item{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius-sm);cursor:pointer;color:var(--muted);font-size:14px;font-weight:500;transition:background .12s,color .12s;white-space:nowrap;text-decoration:none;border:none;background:none;font-family:inherit}.topnav-item:hover{background:#f3f4f6;color:var(--text-sec)}.topnav-item.active{background:var(--accent-bg);color:var(--accent)}.topnav-item svg{width:16px;height:16px;stroke:currentColor;flex-shrink:0}.topnav-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.hamburger{display:none;background:none;border:none;cursor:pointer;color:var(--text);font-size:20px;padding:4px;flex-shrink:0}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:10px}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar-title h2{font-size:17px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.2px}.topbar-title p{font-size:12px;color:var(--hint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.topbar-actions{display:flex;gap:8px;flex-shrink:0}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;letter-spacing:-.1px;transition:background .15s;font-family:inherit;white-space:nowrap;box-shadow:0 2px 6px #c4622d47}.btn-primary:hover{background:var(--accent-light)}.btn-secondary{background:var(--surface);color:var(--text-sec);border:1px solid var(--border-md);border-radius:var(--radius-sm);padding:9px 16px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s;white-space:nowrap}.btn-secondary:hover{background:#f9fafb}.btn-danger{background:#fef2f2;color:#991b1b;border:1px solid #FCA5A5;border-radius:var(--radius-sm);padding:9px 14px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit}.btn-sm{padding:6px 12px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}.card-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:14px}.stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.stat-card{background:var(--surface);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.stat-num{font-size:30px;font-weight:300;color:var(--text);line-height:1;letter-spacing:-1.5px}.stat-label{font-size:12px;font-weight:600;color:var(--hint);margin-top:6px;text-transform:uppercase;letter-spacing:.8px}.stat-sub{font-size:13px;margin-top:4px;font-weight:500}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge-libre{background:#dcfce7;color:#15803d;border:1px solid #86EFAC}.badge-ocupado{background:#fef2f2;color:#b91c1c;border:1px solid #FCA5A5}.badge-limpieza{background:#fffbeb;color:#b45309;border:1px solid #FCD34D}.badge-mantenimiento{background:#f3e8ff;color:#7e22ce;border:1px solid #D8B4FE}.badge-pendiente{background:#eff6ff;color:#1d4ed8;border:1px solid #93C5FD}.badge-bloqueado{background:#f1f5f9;color:#475569;border:1px solid #CBD5E1}.badge-confirmada{background:#dcfce7;color:#15803d;border:1px solid #86EFAC}.badge-cancelada{background:#fdf2f8;color:#9d174d;border:1px solid #F9A8D4}.badge-no-show{background:#f1f5f9;color:#475569;border:1px solid #CBD5E1}.badge-checked-in{background:#dcfce7;color:#166534;border:1px solid #86EFAC}.badge-checked-out{background:#faf5ff;color:#6b21a8;border:1px solid #D8B4FE}.badge-pagado{background:#dcfce7;color:#15803d;border:1px solid #86EFAC}.badge-parcial{background:#fffbeb;color:#b45309;border:1px solid #FCD34D}.badge-esperando{background:#eff6ff;color:#1d4ed8;border:1px solid #93C5FD}.badge-contactado{background:#fffbeb;color:#b45309;border:1px solid #FCD34D}.badge-confirmado{background:#dcfce7;color:#15803d;border:1px solid #86EFAC}.badge-perdido{background:#fdf2f8;color:#9d174d;border:1px solid #F9A8D4}.badge-expirado{background:#f1f5f9;color:#475569;border:1px solid #CBD5E1}.badge-agencia{background:#fff7ed;color:#c2410c;border:1px solid #FDBA74}.badge-regular{background:#faf5ff;color:#6b21a8;border:1px solid #D8B4FE}.badge-especial{background:#dcfce7;color:#166534;border:1px solid #86EFAC}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:14px}th{padding:11px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;border-bottom:1px solid var(--border-md);background:#f9fafb;white-space:nowrap}td{padding:13px 16px;border-bottom:1px solid var(--border);vertical-align:middle}tr:hover td{background:#f9fafb}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.room-card{border-radius:var(--radius);padding:16px;cursor:pointer;transition:transform .15s,box-shadow .15s;border:1px solid;box-shadow:var(--shadow)}.room-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.room-card.libre{background:#f0fdf4;border-color:#86efac}.room-card.ocupado{background:#fef2f2;border-color:#fca5a5}.room-card.limpieza{background:#fffbeb;border-color:#fcd34d}.room-card.mantenimiento{background:#f3e8ff;border-color:#d8b4fe}.room-card.pendiente{background:#eff6ff;border-color:#93c5fd}.room-card.bloqueado{background:#f1f5f9;border-color:#cbd5e1}.room-num{font-size:22px;font-weight:600;color:var(--text);letter-spacing:-.5px}.room-type{font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-top:2px}.room-guest{font-size:12px;color:var(--muted);margin-top:8px;font-weight:500}.filter-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.filter-pill{padding:7px 16px;border-radius:20px;border:1px solid var(--border-md);background:var(--surface);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.filter-pill.active{border-color:var(--accent);background:var(--accent);color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:16px;padding:28px 32px;width:100%;max-width:780px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3{font-size:18px;font-weight:600;color:var(--text);letter-spacing:-.3px}.modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--hint);line-height:1;padding:4px;transition:color .1s}.modal-close:hover{color:var(--text)}.modal-footer{display:flex;gap:10px;margin-top:20px;padding-bottom:8px}.modal-footer .btn-secondary{flex:1}.modal-footer .btn-primary{flex:2}.form-group{margin-bottom:16px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:13px;font-weight:600;color:var(--text-sec);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--border-md);border-radius:var(--radius-sm);font-size:14px;color:var(--text);background:#fafafa;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c4622d1f;background:var(--surface)}textarea{resize:vertical}.section-header{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px;margin-top:20px;padding-bottom:8px;border-bottom:1px solid var(--border)}.cal-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.cal-table{border-collapse:collapse;min-width:100%;font-size:14px}.cal-room-col{padding:10px 14px;text-align:left;font-weight:600;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;border-bottom:1px solid var(--border-md);min-width:100px;background:#f9fafb;white-space:nowrap}.cal-day-col{padding:8px 4px;text-align:center;font-size:12px;font-weight:500;border-bottom:1px solid var(--border-md);min-width:44px;background:#f9fafb}.cal-day-col.today{background:#fff7ed;color:var(--accent);font-weight:700}.cal-row-even{background:var(--surface)}.cal-row-odd{background:#fafafa}.cal-room-cell{padding:8px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.cal-cell{padding:0;border-bottom:1px solid var(--border);border-right:1px solid var(--border);height:44px;overflow:visible;position:relative}.cal-cell.today-col{background:#fff7ed}.cal-block{border-radius:5px;padding:3px 8px;font-size:13px;font-weight:600;color:#fff;height:100%;display:flex;align-items:center;overflow:hidden;white-space:nowrap;box-shadow:0 1px 3px #0000002e}.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--hint);font-size:14px;font-weight:500}.empty{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--hint);font-size:14px;font-weight:500}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dash-full{grid-column:1 / -1}.dash-item{padding:12px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;transition:background .1s}.dash-item:last-child{border-bottom:none}.dash-item:hover{background:#f9fafb;margin:0 -22px;padding:12px 22px}.dash-item-name{font-size:14px;font-weight:600;line-height:1.3;color:var(--text)}.dash-item-sub{font-size:13px;color:var(--hint);margin-top:2px;font-weight:500}@media (max-width: 768px){.topnav{padding:0 14px;gap:0;overflow-x:auto}.topnav-links{gap:0}.topnav-item{padding:8px 10px;font-size:13px}.topnav-item span,.topnav-logo-sub{display:none}.topbar{padding:10px 14px}.topbar-title h2{font-size:15px}.topbar-title p{display:none}.content-area{padding:14px}.stats-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.stat-card{padding:14px}.stat-num{font-size:26px}.stat-label{font-size:11px}.stat-sub{font-size:12px}.dash-grid{grid-template-columns:1fr;gap:12px}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:16px 16px 0 0;max-height:95vh;padding:20px 16px}.form-grid-2{grid-template-columns:1fr;gap:10px}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.room-num{font-size:18px}.table-wrap{margin:0 -14px;padding:0 14px}}@media (max-width: 400px){.stats-row{grid-template-columns:1fr 1fr}}.app-layout{display:flex;flex-direction:row;height:100vh;overflow:hidden}.sidebar-collapse{width:56px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .22s cubic-bezier(.4,0,.2,1);z-index:50;box-shadow:var(--shadow)}.sidebar-collapse.expanded{width:210px;box-shadow:2px 0 16px #0000001a}.sidebar-collapse-logo{display:flex;align-items:center;gap:10px;padding:14px 12px;border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden;min-height:56px}.sidebar-collapse-logo-icon{width:32px;height:32px;background:#1f2937;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700;flex-shrink:0;letter-spacing:-.5px}.sidebar-collapse-logo-text{display:flex;flex-direction:column;overflow:hidden;opacity:0;transition:opacity .15s ease;white-space:nowrap}.sidebar-collapse.expanded .sidebar-collapse-logo-text{opacity:1}.sidebar-collapse-logo-name{font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.2px;line-height:1.2}.sidebar-collapse-logo-sub{font-size:11px;color:var(--hint);text-transform:uppercase;letter-spacing:.8px;font-weight:500;margin-top:1px}.sidebar-collapse-nav{flex:1;padding:8px;display:flex;flex-direction:column;gap:2px;overflow:hidden}.sidebar-collapse-item{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:8px;cursor:pointer;background:none;border:none;font-family:inherit;font-size:14px;font-weight:500;color:var(--muted);transition:background .12s,color .12s;white-space:nowrap;overflow:hidden;width:100%;text-align:left;min-height:40px}.sidebar-collapse-item:hover{background:#f3f4f6;color:var(--text-sec)}.sidebar-collapse-item.active{background:#1f2937;color:#fff}.sidebar-collapse-item.active svg{stroke:#fff}.sidebar-collapse-logout{color:var(--hint)}.sidebar-collapse-logout:hover{background:#fef2f2;color:#b91c1c}.sidebar-collapse-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.sidebar-collapse-icon svg{width:18px;height:18px}.sidebar-collapse-label{opacity:0;transition:opacity .15s ease;pointer-events:none}.sidebar-collapse.expanded .sidebar-collapse-label{opacity:1}.sidebar-collapse-footer{padding:8px 8px 12px;border-top:1px solid var(--border);flex-shrink:0}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.sidebar-collapse-reserva{padding:4px 8px 0;border-top:1px solid var(--border)}.sidebar-collapse-item--reserva{background:var(--accent)!important;color:#fff!important;font-weight:600}.sidebar-collapse-item--reserva:hover{background:var(--accent-light)!important;color:#fff!important}.sidebar-collapse-item--reserva svg{stroke:#fff!important}@media (max-width: 768px){.sidebar-collapse{position:fixed;left:0;top:0;bottom:0;width:260px!important;z-index:100;transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);pointer-events:none}.sidebar-collapse.mobile-open{transform:translate(0);box-shadow:4px 0 32px #00000038;pointer-events:auto}.sidebar-collapse .sidebar-collapse-label,.sidebar-collapse .sidebar-collapse-logo-text{opacity:1!important;pointer-events:auto}.sidebar-overlay{z-index:99}.main-area{margin-left:0!important;width:100%}}.topbar-hamburger{display:none;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text);padding:6px 8px;border-radius:var(--radius-sm);flex-shrink:0;transition:background .15s;margin-right:4px}.topbar-hamburger:hover{background:#0000000d}@media (max-width: 768px){.topbar-hamburger{display:flex}.topbar-actions .btn-secondary{display:none}}@media (max-width: 1024px){.dash-grid[style]{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 768px){.dash-grid[style]{grid-template-columns:1fr!important}}@media (max-width: 768px){.cal-leyenda,.cal-hint{display:none!important}}.content-area{padding:28px 32px}.stat-card{padding:24px 26px;border-radius:16px;border-left:4px solid transparent}.stat-num{font-size:36px;letter-spacing:-2px}.card{border-radius:16px;padding:22px 24px}@media (max-width: 768px){.content-area{padding:14px}.stat-card{padding:16px 18px;border-radius:12px}.stat-num{font-size:26px}.card{border-radius:12px;padding:16px}}
