html,body{margin:0;padding:0;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}#root{min-height:100vh}*{box-sizing:border-box}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{animation:fadeIn .2s ease-out}.modal-content{animation:slideUp .25s ease-out}.more-menu{animation:slideUp .2s ease-out}.reservas-page{--app-bg: #f7f6f3;--app-fg: #1c1c1c;--surface: #ffffff;--surface-2: #faf9f7;--border: rgba(0,0,0,.07);--border-strong: rgba(0,0,0,.14);--muted: rgba(0,0,0,.56);--muted-2: rgba(0,0,0,.4);--accent: #1d4ed8;--accent-fg: #ffffff;--danger: #c44639;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 6px 24px rgba(0,0,0,.08);--shadow-lg: 0 18px 50px rgba(0,0,0,.14);--busy-bg: #fde9e3;--busy-bg-2: #fbd8ce;--busy-fg: #8a3b29;--busy-icon: #b54e35;--free-bg: #e7f0db;--free-bg-2: #d9e8c5;--free-fg: #2f5a30;--free-num: #1f4423;background:var(--app-bg);color:var(--app-fg);font-family:Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;margin:-16px -16px -80px;padding-bottom:140px;min-height:calc(100dvh - 60px)}.reservas-page button{font-family:inherit}.reservas-page .topbar{padding:22px 20px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.reservas-page .topbar-main{display:flex;flex-direction:column;gap:2px}.reservas-page .topbar-title{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.15}.reservas-page .topbar-sub{font-size:12px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}.reservas-page .topbar-icon{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--app-fg);display:grid;place-items:center;cursor:pointer;font-size:16px}.reservas-page .topbar-icon:hover{background:var(--surface-2)}.reservas-page .window-nav{margin:0 20px 6px;padding:6px;display:flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}.reservas-page .window-nav-btn{appearance:none;width:30px;height:30px;border:0;background:transparent;color:var(--app-fg);cursor:pointer;border-radius:8px;display:grid;place-items:center;flex-shrink:0;font-size:18px;line-height:1}.reservas-page .window-nav-btn:hover{background:var(--surface)}.reservas-page .window-nav-range{appearance:none;border:0;background:transparent;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:600;letter-spacing:-.005em;font-variant-numeric:tabular-nums;color:var(--app-fg);cursor:pointer;border-radius:8px;padding:5px 10px;position:relative}.reservas-page .window-nav-range:hover{background:var(--surface)}.reservas-page .window-nav-date{position:absolute;inset:0;opacity:0;pointer-events:none;width:100%;height:100%;border:0;padding:0}.reservas-page .window-nav-today{appearance:none;background:var(--accent);color:var(--accent-fg);border:0;border-radius:7px;padding:5px 11px;font-size:11.5px;font-weight:600;letter-spacing:-.005em;cursor:pointer}.reservas-page .window-nav-today:hover{opacity:.88}.reservas-page .window-nav-today:disabled{background:var(--surface);color:var(--muted-2);cursor:not-allowed}.reservas-page .window-nav-today:disabled:hover{opacity:1}.reservas-page .day-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:0 20px}.reservas-page .day-tab{appearance:none;background:transparent;border:1px solid transparent;border-radius:14px;padding:10px 8px 11px;text-align:left;cursor:pointer;color:var(--app-fg);transition:background .14s,border-color .14s}.reservas-page .day-tab:hover{background:var(--surface-2)}.reservas-page .day-tab.is-active{background:var(--surface-2);border-color:var(--border)}.reservas-page .day-tab-base{font-size:14px;font-weight:600;letter-spacing:-.01em}.reservas-page .day-tab-sub{font-size:11px;color:var(--muted-2);margin-top:2px;font-variant-numeric:tabular-nums}.reservas-page .day-tab-count{font-size:11px;color:var(--muted);margin-top:6px}.reservas-page .filters{padding:14px 20px 8px;display:flex;flex-direction:column;gap:10px}.reservas-page .filter-row{display:flex;flex-direction:column;gap:6px}.reservas-page .filter-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.reservas-page .filter-row-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.reservas-page .filter-clear{appearance:none;background:transparent;border:0;color:var(--muted);font-size:11px;font-weight:500;cursor:pointer;padding:2px 6px;border-radius:6px}.reservas-page .filter-clear:hover{background:var(--surface-2);color:var(--app-fg)}.reservas-page .filter-row--reveal{animation:reservasFilterReveal .22s cubic-bezier(.2,.7,.2,1)}@keyframes reservasFilterReveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.reservas-page .chip-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px 2px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%)}.reservas-page .chip-row::-webkit-scrollbar{display:none}.reservas-page .chip-row--masters{margin-top:6px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;overflow:visible;mask-image:none;-webkit-mask-image:none;padding:0}.reservas-page .chip-row--masters .chip{flex-shrink:1;min-width:0;text-align:center;padding-left:4px;padding-right:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reservas-page .chip{appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:7px 12px;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--app-fg);cursor:pointer;white-space:nowrap;letter-spacing:-.005em;transition:background .12s,border-color .12s,color .12s;flex-shrink:0}.reservas-page .chip:hover{background:var(--surface-2);border-color:var(--border-strong)}.reservas-page .chip.is-on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.reservas-page .chip--master{font-weight:500}.reservas-page .schedule-loading{padding:20px;text-align:center;color:var(--muted);font-size:13px}.reservas-page .wnd-list{display:flex;flex-direction:column;gap:7px;padding:12px 20px 24px;animation:reservasSchedFade .22s cubic-bezier(.2,.7,.2,1)}@keyframes reservasSchedFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.reservas-page .wnd-card{appearance:none;text-align:left;border:1px solid var(--free-bg-2);border-radius:16px;padding:12px 14px;cursor:pointer;background:var(--free-bg);color:var(--free-fg);display:flex;flex-direction:column;gap:9px;transition:transform .12s,box-shadow .12s,border-color .12s;width:100%}.reservas-page .wnd-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--free-fg)}.reservas-page .wnd-card:active{transform:translateY(0)}.reservas-page .wnd-card.is-match{background:var(--free-bg);border-color:var(--free-fg);box-shadow:0 0 0 2px color-mix(in oklab,var(--free-fg) 18%,transparent),var(--shadow-sm)}.reservas-page .wnd-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.reservas-page .wnd-card-time{font-size:17px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--app-fg)}.reservas-page .wnd-card-time span{font-weight:400;opacity:.5;padding:0 2px}.reservas-page .wnd-card-len{font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--free-fg);background:color-mix(in oklab,var(--free-fg) 12%,transparent);padding:4px 9px;border-radius:999px;font-variant-numeric:tabular-nums}.reservas-page .wnd-card-intro{font-size:12px;font-weight:500;color:var(--free-fg);opacity:.85;line-height:1.35}.reservas-page .wnd-card-main{display:flex;align-items:center;gap:14px}.reservas-page .wnd-card-num{font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1;color:var(--free-num);font-variant-numeric:tabular-nums}.reservas-page .wnd-card-main-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.reservas-page .wnd-card-num-lbl{font-size:13px;font-weight:500;color:var(--free-fg);letter-spacing:-.01em;opacity:.85}.reservas-page .wnd-card-masters{display:flex;flex-wrap:wrap;gap:4px}.reservas-page .wnd-master{display:inline-flex;align-items:center;font-size:11.5px;font-weight:500;color:var(--free-fg);background:color-mix(in oklab,var(--free-fg) 10%,transparent);padding:3px 9px;border-radius:999px;letter-spacing:-.005em}.reservas-page .wnd-master--none{color:var(--muted);background:var(--surface-2)}.reservas-page .wnd-card-locs{display:flex;gap:4px;flex-wrap:nowrap}.reservas-page .wnd-loc{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:500;padding:4px 5px;border-radius:7px;letter-spacing:-.01em}.reservas-page .wnd-loc-icon{flex-shrink:0;font-size:12px}.reservas-page .wnd-loc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.reservas-page .wnd-loc.is-free{background:color-mix(in oklab,var(--free-fg) 14%,transparent);color:var(--free-fg)}.reservas-page .wnd-loc.is-busy{background:var(--surface);color:var(--muted-2);opacity:.7}.reservas-page .wnd-loc.is-busy .wnd-loc-name{text-decoration:line-through;text-decoration-thickness:1px}.reservas-page .wnd-loc-count{display:inline-grid;place-items:center;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:var(--busy-bg);color:var(--busy-fg);font-size:9.5px;font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}.reservas-page .wnd-busy{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;overflow:hidden;padding:0}.reservas-page .wnd-busy-toggle{appearance:none;width:100%;background:transparent;border:0;padding:11px 14px;display:flex;align-items:center;gap:8px;color:var(--app-fg);cursor:pointer;text-align:left}.reservas-page .wnd-busy-toggle:hover{background:var(--surface)}.reservas-page .wnd-busy.is-open .wnd-busy-toggle{border-bottom:1px solid var(--border)}.reservas-page .wnd-busy-time{font-size:13px;font-weight:600;letter-spacing:-.005em;font-variant-numeric:tabular-nums;color:var(--app-fg)}.reservas-page .wnd-busy-dot{width:4px;height:4px;border-radius:50%;background:var(--muted-2)}.reservas-page .wnd-busy-label{font-size:12px;color:var(--muted);letter-spacing:-.005em;flex:1}.reservas-page .wnd-busy-count{min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--busy-bg);color:var(--busy-fg);font-size:10.5px;font-weight:600;display:grid;place-items:center;font-variant-numeric:tabular-nums}.reservas-page .wnd-busy-chev{font-size:10px;color:var(--muted);transition:transform .18s}.reservas-page .wnd-busy-bookings{padding:8px;display:flex;flex-direction:column;gap:4px}.reservas-page .wnd-busy-booking{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:7px 10px;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--app-fg);letter-spacing:-.005em;text-align:left}.reservas-page .wnd-busy-booking-icon{color:var(--busy-icon);display:inline-flex;align-items:center;font-size:14px}.reservas-page .wnd-busy-booking-svc{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reservas-page .wnd-busy-booking-master{color:var(--muted);font-weight:500;font-size:11.5px;white-space:nowrap}.reservas-page .wnd-busy-booking-time{color:var(--app-fg);font-variant-numeric:tabular-nums;font-weight:600;font-size:11.5px;letter-spacing:-.01em;white-space:nowrap}.reservas-page .wnd-busy-booking-time span{opacity:.4;padding:0 1px}.reservas-page .now-marker{display:flex;align-items:center;gap:7px;margin:2px;padding:0 2px}.reservas-page .now-marker-dot{width:7px;height:7px;border-radius:50%;background:var(--danger);flex-shrink:0;box-shadow:0 0 0 3px color-mix(in oklab,var(--danger) 25%,transparent)}.reservas-page .now-marker-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--danger);font-variant-numeric:tabular-nums}.reservas-page .now-marker-line{flex:1;height:1px;background:color-mix(in oklab,var(--danger) 35%,transparent)}.reservas-page .empty-state{padding:28px 20px 24px;margin:12px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--surface-2);border:1px solid var(--border);border-radius:18px;gap:4px}.reservas-page .empty-state-emoji{width:42px;height:42px;border-radius:50%;background:var(--surface);color:var(--muted);display:grid;place-items:center;margin-bottom:8px;font-size:20px}.reservas-page .empty-state-title{font-size:16px;font-weight:600;letter-spacing:-.015em;color:var(--app-fg)}.reservas-page .empty-state-sub{font-size:12px;color:var(--muted);margin-bottom:8px}.reservas-page .empty-state-hint{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);margin-top:12px;margin-bottom:4px}.reservas-page .empty-state-probes{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:4px}.reservas-page .probe-chip{appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:500;color:var(--app-fg);cursor:pointer;letter-spacing:-.005em;text-align:left;transition:background .12s,border-color .12s,transform .12s}.reservas-page .probe-chip:hover{background:var(--surface-2);border-color:var(--border-strong);transform:translateY(-1px)}.reservas-page .probe-chip-n{background:var(--free-bg);color:var(--free-num);font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;font-variant-numeric:tabular-nums;flex-shrink:0}.reservas-page .fab{position:fixed;left:16px;right:16px;bottom:72px;max-width:calc(100vw - 32px);margin:0 auto;height:52px;background:var(--accent);color:var(--accent-fg);border:0;border-radius:14px;font-size:14.5px;font-weight:600;letter-spacing:-.005em;cursor:pointer;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;gap:4px;z-index:40;font-family:inherit}.reservas-page .fab:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}
