@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.navbar[data-v-7c3041e1]{background:#fff;border-bottom:1px solid #f0f0f0;padding:0 24px;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2}.nav-content[data-v-7c3041e1]{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;height:64px}.nav-left[data-v-7c3041e1]{display:flex;align-items:center;gap:32px}.nav-links[data-v-7c3041e1]{display:flex;align-items:center;gap:4px;background:#f5f5f5;border-radius:10px;padding:4px}.nav-right[data-v-7c3041e1]{display:flex;align-items:center;gap:12px}.nav-logo[data-v-7c3041e1]{font-size:1.2rem;font-weight:800;color:#f57c00;text-decoration:none;letter-spacing:-.02em;white-space:nowrap;display:flex;align-items:center;gap:8px}.logo-icon[data-v-7c3041e1]{font-size:1.4rem}.nav-link[data-v-7c3041e1]{color:#666;text-decoration:none;padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:500;transition:all .2s ease;white-space:nowrap}.nav-link[data-v-7c3041e1]:hover{color:#222;background:#0000000a}.nav-link-active[data-v-7c3041e1]{background:#fff;color:#222;font-weight:600;box-shadow:0 1px 3px #00000014}.lang-btn[data-v-7c3041e1]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:none;border-radius:10px;cursor:pointer;font-size:.75rem;font-weight:700;color:#666;transition:all .2s ease;letter-spacing:.03em}.lang-btn[data-v-7c3041e1]:hover{background:#eee;color:#222}.nav-user[data-v-7c3041e1]{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border:1px solid #eee;border-radius:28px;cursor:default;transition:all .2s ease}.nav-user[data-v-7c3041e1]:hover{border-color:#ddd;box-shadow:0 2px 8px #0000000a}.user-avatar[data-v-7c3041e1]{width:30px;height:30px;background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.user-name[data-v-7c3041e1]{font-size:.85rem;font-weight:500;color:#333;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-pill[data-v-7c3041e1]{font-size:.65rem;font-weight:700;color:#f57c00;background:#fff3e0;padding:2px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.05em}.logout-btn[data-v-7c3041e1]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:none;border-radius:10px;cursor:pointer;color:#999;transition:all .2s ease}.logout-btn[data-v-7c3041e1]:hover{background:#fee;color:#c13515}.user-dropdown[data-v-7c3041e1]{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 8px 30px #0000001a;min-width:180px;padding:6px;z-index:200}.dropdown-item[data-v-7c3041e1]{display:block;width:100%;padding:10px 14px;background:none;border:none;border-radius:8px;font-size:.85rem;font-family:inherit;color:#333;cursor:pointer;text-align:left;transition:background .15s ease}.dropdown-item[data-v-7c3041e1]:hover{background:#f5f5f5}.modal-overlay[data-v-7c3041e1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:300;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card[data-v-7c3041e1]{background:#fff;border-radius:20px;padding:36px;max-width:400px;width:100%;box-shadow:0 20px 60px #0000001f}.modal-card h3[data-v-7c3041e1]{font-size:1.2rem;font-weight:700;color:#1a1a1a;margin-bottom:24px}.modal-form[data-v-7c3041e1]{display:flex;flex-direction:column;gap:16px}.modal-field label[data-v-7c3041e1]{display:block;margin-bottom:6px;color:#555;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.modal-field input[data-v-7c3041e1]{width:100%;padding:12px 14px;border:1px solid #e5e5e5;border-radius:10px;font-size:.95rem;font-family:inherit;box-sizing:border-box;background:#fafafa;color:#1a1a1a;transition:all .2s ease}.modal-field input[data-v-7c3041e1]:focus{outline:none;border-color:#f57c00;box-shadow:0 0 0 3px #f57c001a;background:#fff}.modal-error[data-v-7c3041e1]{color:#c13515;font-size:.85rem;background:#fff0f0;padding:10px 14px;border-radius:10px;margin:0}.modal-success[data-v-7c3041e1]{color:#2e7d32;font-size:.85rem;background:#e8f5e9;padding:10px 14px;border-radius:10px;margin:0}.modal-actions[data-v-7c3041e1]{display:flex;gap:10px;margin-top:8px}.modal-btn-cancel[data-v-7c3041e1]{flex:1;padding:12px;background:#f5f5f5;border:none;border-radius:10px;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;color:#666;transition:background .2s ease}.modal-btn-cancel[data-v-7c3041e1]:hover{background:#eee}.modal-btn-submit[data-v-7c3041e1]{flex:1;padding:12px;background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px #f57c0040}.modal-btn-submit[data-v-7c3041e1]:hover:not(:disabled){box-shadow:0 6px 20px #f57c0059}.modal-btn-submit[data-v-7c3041e1]:disabled{opacity:.6;cursor:not-allowed}.spinner[data-v-7c3041e1]{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-7c3041e1 .6s linear infinite}@keyframes spin-7c3041e1{to{transform:rotate(360deg)}}.fade-enter-active[data-v-7c3041e1],.fade-leave-active[data-v-7c3041e1]{transition:opacity .25s ease}.fade-enter-from[data-v-7c3041e1],.fade-leave-to[data-v-7c3041e1]{opacity:0}@media (max-width: 768px){.navbar[data-v-7c3041e1]{padding:0 16px}.nav-content[data-v-7c3041e1]{height:56px}.nav-left[data-v-7c3041e1]{gap:16px}.nav-links[data-v-7c3041e1]{gap:2px;padding:3px}.nav-link[data-v-7c3041e1]{padding:6px 12px;font-size:.8rem}.nav-user[data-v-7c3041e1]{display:none}.nav-right[data-v-7c3041e1]{gap:8px}}@media (max-width: 480px){.nav-logo[data-v-7c3041e1]{font-size:1rem}.logo-icon[data-v-7c3041e1]{font-size:1.1rem}.nav-link[data-v-7c3041e1]{padding:6px 10px;font-size:.75rem}}.login-container[data-v-56867610]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fafafa;padding:24px}.login-card[data-v-56867610]{background:#fff;border-radius:20px;padding:48px;border:1px solid #f0f0f0;max-width:420px;width:100%;box-shadow:0 8px 40px #0000000a;animation:card-enter-56867610 .5s ease-out both}@keyframes card-enter-56867610{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-icon[data-v-56867610]{text-align:center;font-size:2.5rem;margin-bottom:8px}h1[data-v-56867610]{text-align:center;color:#f57c00;font-size:1.8rem;font-weight:800;letter-spacing:-.03em;margin-bottom:6px}.subtitle[data-v-56867610]{text-align:center;color:#999;font-size:.9rem;margin-bottom:36px}.form-group[data-v-56867610]{margin-bottom:20px}label[data-v-56867610]{display:block;margin-bottom:8px;color:#555;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}input[data-v-56867610]{width:100%;padding:14px 16px;border:1px solid #e5e5e5;border-radius:12px;font-size:1rem;font-family:inherit;transition:all .2s ease;box-sizing:border-box;color:#1a1a1a;background:#fafafa}input[data-v-56867610]::placeholder{color:#ccc}input[data-v-56867610]:focus{outline:none;border-color:#f57c00;box-shadow:0 0 0 3px #f57c001a;background:#fff}.login-btn[data-v-56867610]{width:100%;padding:14px;background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 14px #f57c0040}.login-btn[data-v-56867610]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #f57c0059}.login-btn[data-v-56867610]:active:not(:disabled){transform:translateY(0)}.login-btn[data-v-56867610]:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-loading[data-v-56867610]{display:flex;align-items:center;justify-content:center}.spinner[data-v-56867610]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-56867610 .6s linear infinite}@keyframes spin-56867610{to{transform:rotate(360deg)}}.error[data-v-56867610]{color:#c13515;text-align:center;margin-top:16px;font-size:.875rem;background:#fff0f0;padding:12px;border-radius:12px}.fade-enter-active[data-v-56867610],.fade-leave-active[data-v-56867610]{transition:opacity .25s ease}.fade-enter-from[data-v-56867610],.fade-leave-to[data-v-56867610]{opacity:0}.forgot-link[data-v-56867610]{display:block;margin:20px auto 0;background:none;border:none;color:#999;font-size:.85rem;cursor:pointer;font-family:inherit;transition:color .2s ease}.forgot-link[data-v-56867610]:hover{color:#f57c00}.forgot-link[data-v-56867610]:disabled{opacity:.5;cursor:not-allowed}.success[data-v-56867610]{color:#2e7d32;text-align:center;margin-top:16px;font-size:.875rem;background:#e8f5e9;padding:12px;border-radius:12px}@media (max-width: 480px){.login-card[data-v-56867610]{padding:36px 24px;border-radius:16px}h1[data-v-56867610]{font-size:1.5rem}}.page[data-v-629f75de]{min-height:calc(100vh - 64px);background:#fafafa;padding:32px 24px}.container[data-v-629f75de]{max-width:1120px;margin:0 auto}@keyframes card-enter-629f75de{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card-animate[data-v-629f75de]{animation:card-enter-629f75de .4s ease-out both;animation-delay:var(--delay, 0s)}.fade-enter-active[data-v-629f75de],.fade-leave-active[data-v-629f75de]{transition:opacity .25s ease}.fade-enter-from[data-v-629f75de],.fade-leave-to[data-v-629f75de]{opacity:0}.slide-down-enter-active[data-v-629f75de]{transition:all .35s ease-out}.slide-down-leave-active[data-v-629f75de]{transition:all .25s ease-in}.slide-down-enter-from[data-v-629f75de],.slide-down-leave-to[data-v-629f75de]{opacity:0;transform:translateY(-12px)}.list-enter-active[data-v-629f75de]{transition:all .3s ease-out}.list-leave-active[data-v-629f75de]{transition:all .2s ease-in}.list-enter-from[data-v-629f75de]{opacity:0;transform:translate(-12px)}.list-leave-to[data-v-629f75de]{opacity:0;transform:translate(12px)}.list-move[data-v-629f75de]{transition:transform .3s ease}.toast-enter-active[data-v-629f75de]{transition:all .35s cubic-bezier(.34,1.56,.64,1)}.toast-leave-active[data-v-629f75de]{transition:all .25s ease-in}.toast-enter-from[data-v-629f75de]{opacity:0;transform:translateY(20px) scale(.95)}.toast-leave-to[data-v-629f75de]{opacity:0;transform:translate(40px)}.heating-banner[data-v-629f75de]{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#e65100;padding:16px 20px;border-radius:14px;font-size:.9rem;font-weight:600;margin-bottom:28px;box-shadow:0 2px 12px #f57c001a}.heating-banner-dot[data-v-629f75de]{width:10px;height:10px;border-radius:50%;background:#f57c00;animation:pulse-dot-629f75de 1.5s ease-in-out infinite;flex-shrink:0}@keyframes pulse-dot-629f75de{0%,to{transform:scale(1);opacity:1;box-shadow:0 0 #f57c0066}50%{transform:scale(1.2);opacity:.8;box-shadow:0 0 0 6px #f57c0000}}.hero[data-v-629f75de]{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;animation:card-enter-629f75de .4s ease-out both}.hero h1[data-v-629f75de]{font-size:1.8rem;font-weight:800;color:#1a1a1a;letter-spacing:-.03em;margin:0;line-height:1.2}.hero-sub[data-v-629f75de]{color:#888;font-size:.9rem;margin-top:4px}.hero-right[data-v-629f75de]{display:flex;align-items:center}.time-display[data-v-629f75de]{font-size:1.4rem;font-weight:700;color:#1a1a1a;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.stat-row[data-v-629f75de]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;animation:card-enter-629f75de .4s ease-out both;animation-delay:.03s}.stat-card[data-v-629f75de]{background:#fff;border:1px solid #f0f0f0;border-radius:16px;padding:20px;display:flex;align-items:center;gap:14px;transition:all .25s ease;cursor:default}.stat-card[data-v-629f75de]:hover{border-color:#e0e0e0;box-shadow:0 4px 16px #0000000a;transform:translateY(-1px)}.stat-icon[data-v-629f75de]{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon-balance[data-v-629f75de]{background:#fff3e0;color:#f57c00}.stat-icon-prepaid[data-v-629f75de]{background:#e8f5e9;color:#2e7d32}.stat-icon-cost[data-v-629f75de]{background:#fff0f0;color:#c13515}.stat-icon-sessions[data-v-629f75de]{background:#e3f2fd;color:#1565c0}.stat-info[data-v-629f75de]{display:flex;flex-direction:column;gap:2px;min-width:0}.stat-label[data-v-629f75de]{font-size:.75rem;color:#999;font-weight:500;white-space:nowrap}.stat-value[data-v-629f75de]{font-size:1.15rem;font-weight:700;color:#1a1a1a;font-variant-numeric:tabular-nums}.stat-negative[data-v-629f75de]{color:#c13515}.content-grid[data-v-629f75de]{display:grid;grid-template-columns:1fr 380px;gap:24px}.card[data-v-629f75de]{background:#fff;border:1px solid #f0f0f0;border-radius:16px;padding:28px;margin-bottom:20px;transition:box-shadow .3s ease}.card[data-v-629f75de]:hover{box-shadow:0 4px 20px #00000008}.card-header[data-v-629f75de]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h2[data-v-629f75de]{font-size:1.1rem;font-weight:700;color:#1a1a1a;margin:0}.form-row[data-v-629f75de]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group[data-v-629f75de]{margin-bottom:16px}label[data-v-629f75de]{display:block;margin-bottom:8px;color:#555;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.input-row[data-v-629f75de]{display:flex;gap:8px;align-items:center}.input-row input[data-v-629f75de]{flex:1;min-width:0}input[type=date][data-v-629f75de],input[type=time][data-v-629f75de]{padding:12px 14px;border:1px solid #e5e5e5;border-radius:12px;font-size:.95rem;font-family:inherit;color:#1a1a1a;transition:all .2s ease;box-sizing:border-box;background:#fafafa}input[data-v-629f75de]:focus,.duration-select[data-v-629f75de]:focus{outline:none;border-color:#f57c00;box-shadow:0 0 0 3px #f57c001a;background:#fff}.duration-select[data-v-629f75de]{width:100%;padding:12px 14px;border:1px solid #e5e5e5;border-radius:12px;font-size:.95rem;font-family:inherit;color:#1a1a1a;background:#fafafa;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.duration-hint[data-v-629f75de]{display:block;margin-top:6px;font-size:.75rem;color:#bbb}.pill-btn[data-v-629f75de]{padding:10px 16px;background:#fff;color:#555;border:1px solid #e5e5e5;border-radius:10px;font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;white-space:nowrap}.pill-btn[data-v-629f75de]:hover{background:#f5f5f5;border-color:#ccc;color:#1a1a1a}.pill-btn[data-v-629f75de]:active{transform:scale(.97)}.preview-banner[data-v-629f75de]{background:linear-gradient(135deg,#fff8f0,#fff3e0);border:1px solid #FFE0B2;border-radius:12px;padding:16px 18px;margin-bottom:20px;font-size:.875rem}.info-banner[data-v-629f75de]{background:#f5f5f5;border-radius:12px;padding:16px 18px;margin-bottom:20px;color:#888;font-size:.875rem;line-height:1.5}.preview-row[data-v-629f75de]{display:flex;justify-content:space-between;padding:5px 0;color:#888}.preview-row strong[data-v-629f75de]{color:#1a1a1a}.primary-btn[data-v-629f75de]{width:100%;padding:14px;background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 14px #f57c0040}.primary-btn[data-v-629f75de]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #f57c0059}.primary-btn[data-v-629f75de]:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #f57c0033}.primary-btn[data-v-629f75de]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.msg[data-v-629f75de]{text-align:center;margin-top:16px;font-size:.875rem;padding:12px;border-radius:12px}.msg-error[data-v-629f75de]{color:#c13515;background:#fff0f0}.empty[data-v-629f75de]{text-align:center;color:#ccc;padding:40px 20px;font-size:.9rem}.calendar-nav[data-v-629f75de]{display:flex;gap:4px}.cal-nav-btn[data-v-629f75de]{padding:6px 12px;background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.85rem;color:#555;transition:all .2s ease}.cal-nav-btn[data-v-629f75de]:hover{background:#eee;color:#1a1a1a}.cal-today-btn[data-v-629f75de]{font-weight:600}.calendar-grid[data-v-629f75de]{display:flex;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px;border:1px solid #f0f0f0}.cal-time-col[data-v-629f75de]{flex-shrink:0;width:50px}.cal-day-col[data-v-629f75de]{flex:1;min-width:80px;border-left:1px solid #f0f0f0;transition:background .2s ease}.cal-day-col.is-today[data-v-629f75de]{background:#fffbf5}.cal-day-header[data-v-629f75de]{text-align:center;padding:10px 4px;border-bottom:1px solid #f0f0f0}.cal-day-name[data-v-629f75de]{display:block;font-size:.7rem;color:#999;text-transform:uppercase;letter-spacing:.06em;font-weight:500}.cal-day-num[data-v-629f75de]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:.85rem;font-weight:600;color:#333;border-radius:50%;margin-top:2px;transition:all .2s ease}.today-num[data-v-629f75de]{background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;box-shadow:0 2px 8px #f57c004d}.cal-time-label[data-v-629f75de]{height:40px;font-size:.65rem;color:#ccc;text-align:right;padding-right:8px;line-height:40px}.cal-day-body[data-v-629f75de]{position:relative;height:600px}.cal-event[data-v-629f75de]{position:absolute;left:2px;right:2px;background:#fff3e0;border-left:3px solid #F57C00;border-radius:6px;padding:2px 6px;overflow:hidden;font-size:.65rem;color:#e65100;cursor:default;transition:transform .15s ease}.cal-event[data-v-629f75de]:hover{transform:scale(1.02)}.cal-event.cal-mine[data-v-629f75de]{background:#e8f5e9;border-left-color:#2e7d32;color:#1b5e20}.cal-event.cal-heating[data-v-629f75de]{background:#fff8e1;border-left-color:#ffa000;color:#f57f17;opacity:.7;z-index:0}.cal-event-time[data-v-629f75de]{font-weight:600}.booking-list[data-v-629f75de]{display:flex;flex-direction:column}.booking-row[data-v-629f75de]{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #f5f5f5;transition:background .15s ease}.booking-row[data-v-629f75de]:last-child{border-bottom:none}.booking-row[data-v-629f75de]:hover{background:#fafafa;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}.booking-dot[data-v-629f75de]{width:8px;height:8px;border-radius:50%;background:#e0e0e0;flex-shrink:0;transition:all .3s ease}.booking-dot.active[data-v-629f75de]{background:#f57c00;box-shadow:0 0 0 3px #f57c0026;animation:pulse-dot-629f75de 1.5s ease-in-out infinite}.booking-detail[data-v-629f75de]{display:flex;flex-direction:column;flex:1;gap:1px}.booking-date[data-v-629f75de]{font-weight:600;font-size:.88rem;color:#1a1a1a}.booking-time[data-v-629f75de]{font-size:.82rem;color:#999}.booking-email[data-v-629f75de]{font-size:.78rem;color:#ccc}.user-booking-card[data-v-629f75de]{padding:18px;border:1px solid #f0f0f0;border-radius:14px;margin-bottom:12px;transition:all .25s ease}.user-booking-card[data-v-629f75de]:hover{border-color:#e0e0e0}.user-booking-card.is-active[data-v-629f75de],.user-booking-card.is-heating[data-v-629f75de]{border-color:#f57c00;background:linear-gradient(135deg,#fffbf5,#fff3e0);box-shadow:0 2px 12px #f57c0014}.user-booking-card.is-loading[data-v-629f75de]{opacity:.5;pointer-events:none}.user-booking-info[data-v-629f75de]{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}.active-label[data-v-629f75de],.heating-label[data-v-629f75de]{font-size:.78rem;font-weight:600;color:#f57c00;margin-top:4px}.spinner-wrap[data-v-629f75de]{display:flex;justify-content:center;padding:8px}.spinner[data-v-629f75de]{width:20px;height:20px;border:2px solid #f0f0f0;border-top-color:#f57c00;border-radius:50%;animation:spin-629f75de .6s linear infinite}@keyframes spin-629f75de{to{transform:rotate(360deg)}}.btn-loading[data-v-629f75de]{display:flex;align-items:center;justify-content:center;gap:8px}.btn-loading .spinner[data-v-629f75de]{width:16px;height:16px;border-width:2px;border-color:#ffffff4d;border-top-color:#fff}.user-booking-actions[data-v-629f75de]{display:flex;gap:8px}.action-btn[data-v-629f75de]{flex:1;padding:10px 14px;border-radius:10px;font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;border:none}.action-warn[data-v-629f75de]{background:#fff8e1;color:#f57c00}.action-warn[data-v-629f75de]:hover:not(:disabled){background:#fff0c2;transform:translateY(-1px)}.action-danger[data-v-629f75de]{background:#fff0f0;color:#c13515}.action-danger[data-v-629f75de]:hover:not(:disabled){background:#ffe0e0;transform:translateY(-1px)}.action-btn[data-v-629f75de]:disabled{opacity:.5;cursor:not-allowed}.action-btn[data-v-629f75de]:active:not(:disabled){transform:translateY(0)}.past-booking-card[data-v-629f75de]{padding:16px;border:1px solid #f5f5f5;border-radius:12px;margin-bottom:10px;transition:all .2s ease}.past-booking-card[data-v-629f75de]:hover{border-color:#e8e8e8}.past-booking-top[data-v-629f75de]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.past-booking-bottom[data-v-629f75de]{display:flex;align-items:center;justify-content:space-between}.past-energy[data-v-629f75de]{display:flex;gap:12px;font-size:.8rem;color:#999;align-items:center}.energy-kwh[data-v-629f75de]{background:#f5f5f5;padding:3px 10px;border-radius:6px;font-weight:500}.energy-cost[data-v-629f75de]{font-weight:600;color:#1a1a1a}.energy-na[data-v-629f75de]{color:#ccc}.past-duration[data-v-629f75de]{font-size:.78rem;color:#ccc;font-weight:500;background:#f5f5f5;padding:3px 10px;border-radius:6px}.action-sm[data-v-629f75de]{padding:6px 14px;font-size:.78rem;flex:none}.toast-container[data-v-629f75de]{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}.toast[data-v-629f75de]{padding:14px 22px;border-radius:14px;font-size:.88rem;font-weight:500;box-shadow:0 8px 30px #0000001f;max-width:380px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast-success[data-v-629f75de]{background:#1a1a1af2;color:#fff}.toast-error[data-v-629f75de]{background:#c13515f2;color:#fff}.toast-info[data-v-629f75de]{background:#1565c0f2;color:#fff}@media (max-width: 768px){.page[data-v-629f75de]{padding:16px 14px}.content-grid[data-v-629f75de],.form-row[data-v-629f75de]{grid-template-columns:1fr}.stat-row[data-v-629f75de]{grid-template-columns:repeat(2,1fr);gap:12px}.hero[data-v-629f75de]{flex-direction:column;align-items:flex-start;gap:8px}.hero h1[data-v-629f75de]{font-size:1.4rem}.hero-right[data-v-629f75de]{width:100%;justify-content:flex-end}.time-display[data-v-629f75de]{font-size:1.1rem}.card[data-v-629f75de]{padding:20px 16px;border-radius:14px}.input-row[data-v-629f75de]{flex-wrap:wrap}.input-row input[data-v-629f75de]{width:100%}.pill-btn[data-v-629f75de]{padding:8px 12px;font-size:.82rem}.calendar-grid[data-v-629f75de]{overflow-x:auto}.cal-day-col[data-v-629f75de]{min-width:60px}.cal-time-col[data-v-629f75de]{width:40px}.booking-row[data-v-629f75de]{flex-wrap:wrap;gap:8px}.booking-email[data-v-629f75de]{width:100%}.toast-container[data-v-629f75de]{left:14px;right:14px;bottom:14px}.toast[data-v-629f75de]{max-width:none}}@media (max-width: 480px){.hero h1[data-v-629f75de]{font-size:1.25rem}.stat-row[data-v-629f75de]{grid-template-columns:1fr 1fr}.stat-card[data-v-629f75de]{padding:14px;gap:10px}.stat-icon[data-v-629f75de]{width:36px;height:36px;border-radius:10px}.stat-icon svg[data-v-629f75de]{width:16px;height:16px}.stat-value[data-v-629f75de]{font-size:1rem}}.page[data-v-343ac7a6]{min-height:calc(100vh - 64px);background:#f7f7f7;padding:32px 24px}.container[data-v-343ac7a6]{max-width:1080px;margin:0 auto}.page-header[data-v-343ac7a6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.page-header h1[data-v-343ac7a6]{font-size:2rem;font-weight:800;color:#222;letter-spacing:-.02em;margin:0}.refresh-btn[data-v-343ac7a6]{padding:10px 20px;background:#fff;color:#222;border:1px solid #ddd;border-radius:24px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.refresh-btn[data-v-343ac7a6]:hover:not(:disabled){border-color:#222;background:#f7f7f7}.refresh-btn[data-v-343ac7a6]:disabled{opacity:.5;cursor:not-allowed}.error-banner[data-v-343ac7a6]{background:#fff0f0;color:#c13515;padding:14px 18px;border-radius:12px;margin-bottom:24px;font-size:.875rem}.stats-row[data-v-343ac7a6]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card[data-v-343ac7a6]{background:#fff;border:1px solid #ebebeb;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:8px}.stat-label[data-v-343ac7a6]{font-size:.8rem;font-weight:500;color:#717171;text-transform:uppercase;letter-spacing:.04em}.stat-value[data-v-343ac7a6]{font-size:2rem;font-weight:800;color:#222}.stat-active[data-v-343ac7a6]{color:#f57c00}.section-grid[data-v-343ac7a6]{display:flex;flex-direction:column;gap:24px}.card[data-v-343ac7a6]{background:#fff;border:1px solid #ebebeb;border-radius:16px;padding:28px}.card h2[data-v-343ac7a6]{font-size:1.25rem;font-weight:700;color:#222;margin:0 0 20px}.card-header[data-v-343ac7a6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h2[data-v-343ac7a6]{margin:0}.filter-select[data-v-343ac7a6]{padding:8px 16px;border:1px solid #ddd;border-radius:24px;font-size:.85rem;font-family:inherit;color:#222;background:#fff;cursor:pointer}.filter-select[data-v-343ac7a6]:focus{outline:none;border-color:#222}.empty[data-v-343ac7a6]{text-align:center;color:#b0b0b0;padding:40px;font-size:.9rem}.table-wrap[data-v-343ac7a6]{overflow-x:auto}.data-table[data-v-343ac7a6]{width:100%;border-collapse:collapse}.data-table th[data-v-343ac7a6]{text-align:left;padding:12px 16px;font-size:.75rem;font-weight:600;color:#717171;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #ebebeb}.data-table td[data-v-343ac7a6]{padding:14px 16px;font-size:.9rem;border-bottom:1px solid #f5f5f5}.data-table tr:last-child td[data-v-343ac7a6]{border-bottom:none}.data-table tr:hover td[data-v-343ac7a6]{background:#fafafa}.user-cell[data-v-343ac7a6]{font-weight:500}.booking-list[data-v-343ac7a6]{display:flex;flex-direction:column;gap:12px}.booking-card[data-v-343ac7a6]{border:1px solid #ebebeb;border-radius:12px;padding:18px;transition:border-color .2s}.booking-card[data-v-343ac7a6]:hover{border-color:#ddd}.booking-card.is-active[data-v-343ac7a6]{border-color:#f57c00;background:snow}.booking-top[data-v-343ac7a6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.booking-user[data-v-343ac7a6]{display:flex;align-items:center;gap:8px}.booking-email[data-v-343ac7a6]{font-weight:600;font-size:.9rem;color:#222}.active-pill[data-v-343ac7a6]{font-size:.7rem;font-weight:600;color:#f57c00;background:#fff0f0;padding:3px 10px;border-radius:12px}.booking-meta[data-v-343ac7a6]{display:flex;gap:16px;font-size:.85rem;color:#717171}.cancel-btn[data-v-343ac7a6]{padding:6px 14px;background:#fff0f0;color:#c13515;border:none;border-radius:8px;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s}.cancel-btn[data-v-343ac7a6]:hover:not(:disabled){background:#ffe0e0}.cancel-btn[data-v-343ac7a6]:disabled{opacity:.5;cursor:not-allowed}.booking-actions[data-v-343ac7a6]{display:flex;gap:8px}.delete-btn[data-v-343ac7a6]{background:#f7f7f7;color:#717171}.delete-btn[data-v-343ac7a6]:hover:not(:disabled){background:#ebebeb}.invite-row[data-v-343ac7a6]{display:flex;gap:12px;align-items:center}.invite-input[data-v-343ac7a6]{flex:1;padding:12px 16px;border:1px solid #ebebeb;border-radius:12px;font-size:.9rem;font-family:inherit;color:#222;background:#f7f7f7;outline:none}.pill-btn[data-v-343ac7a6]{padding:10px 20px;background:#fff;color:#222;border:1px solid #ddd;border-radius:24px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap}.pill-btn[data-v-343ac7a6]:hover:not(:disabled){border-color:#222;background:#f7f7f7}.pill-btn[data-v-343ac7a6]:disabled{opacity:.5;cursor:not-allowed}.pill-btn.primary[data-v-343ac7a6]{background:#f57c00;color:#fff;border-color:#f57c00}.pill-btn.primary[data-v-343ac7a6]:hover:not(:disabled){background:#e04e53;border-color:#e04e53}.pill-btn.small[data-v-343ac7a6]{padding:6px 14px;font-size:.8rem}.billing-row[data-v-343ac7a6]{display:flex;gap:16px;align-items:flex-end}.billing-label[data-v-343ac7a6]{display:flex;flex-direction:column;gap:6px}.billing-label-text[data-v-343ac7a6]{font-size:.8rem;font-weight:500;color:#717171;text-transform:uppercase;letter-spacing:.04em}.billing-input[data-v-343ac7a6]{padding:12px 16px;border:1px solid #ebebeb;border-radius:12px;font-size:.9rem;font-family:inherit;color:#222;width:140px;outline:none;transition:border-color .2s}.billing-input[data-v-343ac7a6]:focus{border-color:#222}.success-msg[data-v-343ac7a6]{color:#008a05;font-size:.85rem;margin:12px 0 0}.payment-cell[data-v-343ac7a6]{display:flex;gap:8px;align-items:center}.payment-input[data-v-343ac7a6]{padding:8px 12px;border:1px solid #ebebeb;border-radius:10px;font-size:.85rem;font-family:inherit;color:#222;width:90px;outline:none;transition:border-color .2s}.payment-input[data-v-343ac7a6]:focus{border-color:#222}.amount-positive[data-v-343ac7a6]{color:#008a05;font-weight:600}.amount-negative[data-v-343ac7a6]{color:#c13515;font-weight:600}.type-pill[data-v-343ac7a6]{display:inline-block;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.03em}.type-payment[data-v-343ac7a6]{color:#008a05;background:#f0fff0}.type-usage[data-v-343ac7a6]{color:#717171;background:#f7f7f7}.desc-cell[data-v-343ac7a6]{color:#717171;font-size:.85rem}@media (max-width: 768px){.stats-row[data-v-343ac7a6]{grid-template-columns:repeat(2,1fr)}.booking-meta[data-v-343ac7a6]{flex-direction:column;gap:4px}.invite-row[data-v-343ac7a6]{flex-direction:column}.billing-row[data-v-343ac7a6]{flex-direction:column;align-items:stretch}.billing-input[data-v-343ac7a6]{width:100%}.payment-cell[data-v-343ac7a6]{flex-direction:column;align-items:flex-start}}.page[data-v-da753d1c]{min-height:calc(100vh - 64px);background:#f7f7f7;padding:32px 24px}.container[data-v-da753d1c]{max-width:1080px;margin:0 auto}.page-header[data-v-da753d1c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.page-header h1[data-v-da753d1c]{font-size:2rem;font-weight:800;color:#222;letter-spacing:-.02em;margin:0}.refresh-btn[data-v-da753d1c]{padding:10px 20px;background:#fff;color:#222;border:1px solid #ddd;border-radius:24px;font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.refresh-btn[data-v-da753d1c]:hover:not(:disabled){border-color:#222}.refresh-btn[data-v-da753d1c]:disabled{opacity:.5;cursor:not-allowed}.devices-grid[data-v-da753d1c]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.device-card[data-v-da753d1c]{background:#fff;border:1px solid #ebebeb;border-radius:16px;padding:24px}.device-header[data-v-da753d1c]{display:flex;justify-content:space-between;align-items:center}.device-header h3[data-v-da753d1c]{font-size:1.1rem;font-weight:700;color:#222;margin:0}.status-pill[data-v-da753d1c]{font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:12px;background:#fff0f0;color:#c13515}.status-pill.online[data-v-da753d1c]{background:#f0fff0;color:#008a05}.device-id[data-v-da753d1c]{font-family:SF Mono,Fira Code,monospace;font-size:.75rem;color:#b0b0b0;margin:4px 0 16px}.switches[data-v-da753d1c]{display:flex;flex-direction:column;gap:16px}.switch-row[data-v-da753d1c]{padding-top:16px;border-top:1px solid #f0f0f0}.switch-header[data-v-da753d1c]{display:flex;align-items:center;gap:8px;margin-bottom:10px}.switch-label[data-v-da753d1c]{font-weight:600;font-size:.9rem;color:#222}.switch-channel[data-v-da753d1c]{font-size:.7rem;color:#b0b0b0}.switch-state[data-v-da753d1c]{margin-left:auto;font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:8px;background:#f7f7f7;color:#717171}.switch-state.on[data-v-da753d1c]{background:#f0fff0;color:#008a05}.switch-btns[data-v-da753d1c]{display:flex;gap:8px}.sw-btn[data-v-da753d1c]{flex:1;padding:8px;border:none;border-radius:10px;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.sw-on[data-v-da753d1c]{background:#f0fff0;color:#008a05}.sw-on[data-v-da753d1c]:hover:not(:disabled){background:#e0ffe0}.sw-off[data-v-da753d1c]{background:#fff0f0;color:#c13515}.sw-off[data-v-da753d1c]:hover:not(:disabled){background:#ffe0e0}.sw-btn[data-v-da753d1c]:disabled{opacity:.4;cursor:not-allowed}.result[data-v-da753d1c]{margin:8px 0 0;font-size:.8rem;color:#008a05}.result-error[data-v-da753d1c]{color:#c13515}.card[data-v-da753d1c]{background:#fff;border:1px solid #ebebeb;border-radius:16px;padding:28px}.card h2[data-v-da753d1c]{font-size:1.25rem;font-weight:700;color:#222;margin:0 0 8px}.bulk-card[data-v-da753d1c]{text-align:center}.bulk-desc[data-v-da753d1c]{font-size:.8rem;color:#b0b0b0;margin-bottom:20px}.bulk-btns[data-v-da753d1c]{display:flex;gap:12px;justify-content:center}.bulk-btn[data-v-da753d1c]{padding:12px 32px;border:none;border-radius:12px;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.bulk-on[data-v-da753d1c]{background:#f57c00;color:#fff}.bulk-on[data-v-da753d1c]:hover:not(:disabled){background:#e0484d}.bulk-off[data-v-da753d1c]{background:#222;color:#fff}.bulk-off[data-v-da753d1c]:hover:not(:disabled){background:#444}.bulk-btn[data-v-da753d1c]:disabled{opacity:.5;cursor:not-allowed}.bulk-result[data-v-da753d1c]{margin-top:20px;padding:16px 20px;border-radius:12px;text-align:left}.bulk-result.success[data-v-da753d1c]{background:#f0fff0;border:1px solid #c8e6c9}.bulk-result.warning[data-v-da753d1c]{background:#fff8e1;border:1px solid #FFE082}.bulk-title[data-v-da753d1c]{margin:0 0 8px;font-weight:700;font-size:.875rem;color:#222}.bulk-item[data-v-da753d1c]{display:flex;gap:8px;font-size:.85rem;padding:3px 0;color:#717171}.bulk-device[data-v-da753d1c]{font-weight:600;color:#222}.bulk-fail[data-v-da753d1c]{color:#c13515;font-weight:600}@media (max-width: 768px){.devices-grid[data-v-da753d1c]{grid-template-columns:1fr}}.register-container[data-v-c1042d9d]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f7f7f7;padding:24px}.register-card[data-v-c1042d9d]{background:#fff;border-radius:16px;padding:48px;border:1px solid #ebebeb;max-width:440px;width:100%}h1[data-v-c1042d9d]{text-align:center;color:#f57c00;font-size:2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.subtitle[data-v-c1042d9d]{text-align:center;color:#717171;font-size:.95rem;margin-bottom:32px}.form-group[data-v-c1042d9d]{margin-bottom:20px}label[data-v-c1042d9d]{display:block;margin-bottom:6px;color:#222;font-weight:600;font-size:.85rem}input[data-v-c1042d9d]{width:100%;padding:14px 16px;border:1px solid #b0b0b0;border-radius:12px;font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;color:#222}input[data-v-c1042d9d]::placeholder{color:#b0b0b0}input[data-v-c1042d9d]:focus{outline:none;border-color:#222;box-shadow:0 0 0 2px #2222221a}.register-btn[data-v-c1042d9d]{width:100%;padding:14px;background:#f57c00;color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s,transform .1s}.register-btn[data-v-c1042d9d]:hover:not(:disabled){background:#e66a00}.register-btn[data-v-c1042d9d]:active:not(:disabled){transform:scale(.98)}.register-btn[data-v-c1042d9d]:disabled{opacity:.6;cursor:not-allowed}.error[data-v-c1042d9d]{color:#c13515;text-align:center;margin-top:16px;font-size:.875rem;background:#fff0f0;padding:12px;border-radius:12px}.success[data-v-c1042d9d]{color:#008a05;text-align:center;margin-top:16px;font-size:.875rem;background:#f0fff0;padding:12px;border-radius:12px}.login-link[data-v-c1042d9d]{text-align:center;margin-top:24px;font-size:.875rem;color:#717171}.login-link a[data-v-c1042d9d]{color:#f57c00;text-decoration:none;font-weight:600}.login-link a[data-v-c1042d9d]:hover{text-decoration:underline}.back-link[data-v-c1042d9d]{display:block;text-align:center;color:#f57c00;text-decoration:none;font-weight:600;font-size:.95rem}.back-link[data-v-c1042d9d]:hover{text-decoration:underline}@media (max-width: 480px){.register-card[data-v-c1042d9d]{padding:32px 24px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#222;background:#f7f7f7}#app{min-height:100vh}
