:root{--bg:#0b1222;--bg-soft:#131d31;--surface:#151f35c7;--surface-soft:#10192a85;--text:#f6f1e5;--text-muted:#c7bb9b;--primary:#bd8b1b;--primary-600:#8c6513;--accent:#d9b65c;--ok:#40c27a;--warn:#f2b447;--danger:#f07a63;--border:#2230488c;--shadow:0 18px 44px #05091266;--radius:12px;--trans:180ms ease}[data-theme=light]{--bg:#fff9ee;--bg-soft:#fff4dc;--surface:#ffffffeb;--surface-soft:#fef0d4b8;--text:#3e2a10;--text-muted:#7b6641;--primary:#bd8b1b;--primary-600:#8c6513;--border:#f1dcb3a6;--shadow:0 14px 32px #bd8b1b24}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--app-logo:none;background-attachment:fixed,fixed;background-color:#0b1222;background-color:var(--bg);background-image:radial-gradient(ellipse 75% 52% at 82% -18%,color-mix(in oklab,#d9b65c 46%,#fff4d6a6),#0000 72%),linear-gradient(180deg,color-mix(in oklab,#0b1222 68%,#ffffff29),color-mix(in oklab,#131d31 48%,#ffffff38));background-image:radial-gradient(ellipse 75% 52% at 82% -18%,color-mix(in oklab,var(--accent) 46%,#fff4d6a6),#0000 72%),linear-gradient(180deg,color-mix(in oklab,var(--bg) 68%,#ffffff29),color-mix(in oklab,var(--bg-soft) 48%,#ffffff38));background-position:78% -18vh,50%;background-repeat:no-repeat,no-repeat;background-size:160% 140%,cover;color:#f6f1e5;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji;margin:0;position:relative;z-index:0}body:before{background-image:var(--app-logo);background-position:center calc(50vh - 260px);background-repeat:no-repeat;background-size:min(900px,80vw) auto;content:"";filter:drop-shadow(0 0 140px color-mix(in oklab,#d9b65c 55%,transparent));filter:drop-shadow(0 0 140px color-mix(in oklab,var(--accent) 55%,transparent));inset:0;mix-blend-mode:screen;opacity:.12;pointer-events:none;position:fixed;z-index:-1}a{color:#bd8b1b;color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}*{scrollbar-color:#2230488c #0000;scrollbar-color:var(--border) #0000;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:#2230488c;background:var(--border);border-radius:8px}::-webkit-scrollbar-track{background:#0000}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:var(--bg);color:var(--text);display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:var(--primary)}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.App{text-align:center}.App-header{display:none}.card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in oklab,var(--surface) 38%,#0000);border:1px solid color-mix(in oklab,var(--border) 48%,#0000);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px}.card-content{padding:16px;text-align:left}.input-group{display:flex;gap:8px;margin-bottom:8px}.input{background:color-mix(in oklab,var(--surface-soft) 72%,#0000);border:1px solid color-mix(in oklab,var(--border) 55%,#0000);border-radius:10px;color:var(--text);flex:1 1;padding:10px 12px;transition:border-color var(--trans),box-shadow var(--trans),background var(--trans)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 25%,#0000);outline:none}.btn{align-items:center;background:linear-gradient(180deg,var(--primary),var(--primary-600));border:none;border-radius:10px;box-shadow:0 6px 18px color-mix(in oklab,var(--primary) 25%,#0000);color:#fff;cursor:pointer;display:inline-flex;font-weight:700;justify-content:center;letter-spacing:.2px;padding:10px 14px;text-decoration:none;transition:transform var(--trans),box-shadow var(--trans),opacity var(--trans);width:auto}.btn:hover{box-shadow:0 10px 28px color-mix(in oklab,var(--primary) 35%,#0000);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}.btn-secondary{background:linear-gradient(180deg,color-mix(in oklab,var(--primary) 70%,#fff 15%),var(--primary))}.btn-outline{background:#0000;border:1px solid color-mix(in oklab,var(--border) 60%,#0000);box-shadow:none;color:var(--text)}.btn-outline:hover{border-color:color-mix(in oklab,var(--primary) 55%,#0000);box-shadow:none;color:var(--primary)}.btn-neutral{background:linear-gradient(180deg,color-mix(in oklab,var(--surface-soft) 65%,#0000),color-mix(in oklab,var(--surface) 80%,#0000));box-shadow:0 6px 18px #00000014;color:var(--text)}.btn-neutral:hover{color:var(--primary)}.data-table{border-collapse:collapse;min-width:640px;width:100%}.data-table td,.data-table th{border-bottom:1px solid color-mix(in oklab,var(--border) 55%,#0000);color:var(--text);font-size:13px;padding:10px 12px;text-align:left}.data-table th{color:#5f6368;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.navbar{align-items:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:color-mix(in oklab,var(--surface) 72%,#0000);border:1px solid color-mix(in oklab,var(--border) 65%,#0000);border-radius:18px;box-shadow:var(--shadow);display:flex;gap:16px;justify-content:space-between;margin:12px auto 28px;padding:10px 16px;position:sticky;top:12px;transition:transform .25s ease,opacity .2s ease,box-shadow var(--trans);width:min(1080px,calc(100% - 24px));z-index:15}.navbar.navbar-hidden{opacity:0;pointer-events:none;transform:translateY(-140%)}.nav-links{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.nav-icon-wrapper{position:relative}.nav-icon-button{align-items:center;background:color-mix(in oklab,var(--surface-soft) 52%,#0000);border:1px solid color-mix(in oklab,var(--border) 50%,#0000);border-radius:14px;color:var(--text);cursor:pointer;display:flex;font-size:1.35rem;height:46px;justify-content:center;transition:transform var(--trans),background var(--trans),border-color var(--trans),box-shadow var(--trans);width:46px}.nav-icon-button:hover{background:color-mix(in oklab,var(--primary) 16%,#0000);border-color:color-mix(in oklab,var(--primary) 50%,#0000);transform:translateY(-1px)}.nav-icon-button:active{transform:translateY(0)}.nav-icon-button.is-active{background:color-mix(in oklab,var(--primary) 25%,#0000);border-color:color-mix(in oklab,var(--primary) 70%,#0000);box-shadow:0 8px 20px color-mix(in oklab,var(--primary) 22%,#0000);color:#fff}.nav-icon-button.is-open{box-shadow:0 10px 24px color-mix(in oklab,var(--primary) 18%,#0000)}.nav-palette{background:color-mix(in oklab,var(--surface) 42%,#0000);border:1px solid color-mix(in oklab,var(--border) 50%,#0000);border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;left:50%;min-width:180px;opacity:0;padding:12px;pointer-events:none;position:absolute;top:calc(100% + 12px);transform:translate(-50%,-10px) scale(.96);transition:opacity var(--trans),transform var(--trans)}.nav-palette:before{background:inherit;border:1px solid color-mix(in oklab,var(--border) 60%,#0000);border-bottom:none;border-right:none;box-shadow:-2px -2px 6px #0f172a40;content:"";height:16px;left:50%;position:absolute;top:-8px;transform:translate(-50%,50%) rotate(45deg);width:16px}.nav-palette.open{opacity:1;pointer-events:auto;transform:translate(-50%) scale(1)}.nav-palette-heading{color:var(--text-muted);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.nav-items{display:flex;flex-direction:column;gap:6px}.nav-link{border-radius:12px;color:var(--text);font-weight:600;padding:8px 10px;text-align:left;text-decoration:none;transition:background var(--trans),color var(--trans)}.nav-link:hover{background:color-mix(in oklab,var(--primary) 18%,#0000);color:#fff}.nav-link-active{background:color-mix(in oklab,var(--primary) 24%,#0000);color:#fff}.theme-button{align-items:center;background:color-mix(in oklab,var(--surface-soft) 50%,#0000);border:none;border-radius:12px;color:var(--text);cursor:pointer;display:flex;font-size:1.1rem;height:36px;justify-content:center;transition:background var(--trans),transform var(--trans);width:36px}.theme-button:hover{background:color-mix(in oklab,var(--primary) 18%,#0000);transform:translateY(-1px)}.theme-button:active{transform:translateY(0)}.nav-right{gap:10px}.nav-right,.user-chip{align-items:center;display:flex}.user-chip{background:color-mix(in oklab,var(--primary) 15%,#0000);border-radius:12px;color:var(--text);font-size:.85rem;gap:6px;letter-spacing:.02em;padding:6px 12px}.user-chip .user-name{font-weight:600}.user-chip .user-role{color:var(--text-muted);font-size:.7rem;text-transform:uppercase}.nav-btn{white-space:nowrap}.table-scroll{overflow-x:auto;width:100%}.table-scroll table{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in oklab,var(--surface) 26%,#0000);border:1px solid color-mix(in oklab,var(--border) 42%,#0000);border-collapse:initial;border-radius:16px;border-spacing:0;min-width:480px;overflow:hidden;width:100%}.table-scroll table td,.table-scroll table th{background:#0000}.table-scroll table tr:nth-child(2n) td{background:color-mix(in oklab,var(--surface) 20%,#0000)}.table-scroll table tr:hover td{background:color-mix(in oklab,var(--surface-soft) 26%,#0000)}.calendar-day{background:color-mix(in oklab,var(--surface) 60%,#0000);color:var(--text);transition:background var(--trans),border-color var(--trans),box-shadow var(--trans)}.calendar-day:hover{background:color-mix(in oklab,var(--surface-soft) 55%,#0000)}.calendar-day .event-pill{background:color-mix(in oklab,var(--primary) 22%,#0000);border:1px solid color-mix(in oklab,var(--primary) 38%,#0000);color:var(--text)}[data-theme=light] .calendar-day .event-pill{background:color-mix(in oklab,var(--primary) 18%,#fff 82%);border-color:color-mix(in oklab,var(--primary) 30%,#0000)}.calendar-day .event-pill strong{color:inherit}.calendar-day .event-time{color:color-mix(in oklab,var(--text) 55%,#0000)}.calendar-day .event-location{color:color-mix(in oklab,var(--primary) 70%,var(--text-muted))}[data-theme=light] .calendar-day .event-location{color:color-mix(in oklab,var(--primary) 60%,var(--text))}.calendar-day.selected{border-color:var(--ok);box-shadow:0 0 0 2px color-mix(in oklab,var(--ok) 35%,#0000)}.calendar-day.today{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--primary) 45%,#0000)}@media (max-width:960px){.navbar{align-items:stretch;flex-direction:column;margin:10px auto 24px;top:8px;width:calc(100% - 20px)}.nav-links,.nav-right{justify-content:center}.nav-right{display:flex;flex-wrap:wrap;gap:8px;width:100%}.nav-btn{width:100%}}@media (max-width:600px){.nav-links{gap:8px;justify-content:center}.nav-icon-button{font-size:1.25rem;height:42px;width:42px}.nav-palette{left:50%;transform:translate(-50%,-8px) scale(.96)}.nav-right{align-items:stretch;flex-direction:column}.table-scroll table{font-size:.9rem;min-width:360px}.card-content{padding:14px}.input{width:100%}}.light-card{background:color-mix(in oklab,var(--surface) 46%,#0000);border-color:color-mix(in oklab,var(--border) 48%,#0000)}.light-card,.light-card .card-content{color:var(--text)}.light-card .input,.light-card input[type=date],.light-card input[type=number]{background:color-mix(in oklab,var(--surface) 42%,#0000);border-color:color-mix(in oklab,var(--border) 48%,#0000);color:var(--text)}.light-card input::placeholder{color:var(--text-muted)}.thermostat-card{display:flex;flex-direction:column;gap:14px}.thermostat-header{display:flex;flex-direction:column;gap:2px;padding:0 4px}.thermostat-header__zone{color:var(--text);font-size:1.05rem;font-weight:600;letter-spacing:.04em;text-transform:capitalize}.thermostat-header__type{color:color-mix(in oklab,var(--text) 60%,#0000);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.thermostat-panel{background:color-mix(in oklab,var(--surface-soft) 70%,#0000);border:1px solid color-mix(in oklab,var(--border) 55%,#0000);border-radius:18px;box-shadow:inset 0 1px color-mix(in oklab,var(--surface) 40%,#0000);padding:14px}.thermostat-display{background:color-mix(in oklab,var(--surface) 80%,#0000);border:1px solid color-mix(in oklab,var(--border) 60%,#0000);border-radius:12px;padding:12px 14px}.thermostat-display__row{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.thermostat-display__row--temps{color:color-mix(in oklab,var(--text) 60%,#0000);font-size:.85rem;letter-spacing:.05em;margin-top:6px}.thermostat-display__value{align-items:flex-start;display:flex;font-size:2.6rem;font-weight:600;gap:4px;letter-spacing:.05em}.thermostat-display__unit{font-size:1rem;margin-top:6px}.thermostat-display__mode{font-size:.95rem;font-weight:600;letter-spacing:.08em;margin-bottom:6px;text-align:center}.thermostat-symbols{align-items:center;color:color-mix(in oklab,var(--text) 65%,#0000);display:flex;font-size:1.1rem;gap:6px}.thermostat-symbols--right{justify-content:flex-end}.thermostat-symbols--placeholder{justify-content:flex-end;min-width:44px}.thermostat-symbol--ambient,.thermostat-symbol--water{font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.thermostat-fanbar{display:flex;gap:4px;justify-content:center;margin-top:4px}.thermostat-fanbar__segment{background:color-mix(in oklab,var(--border) 60%,#0000);border-radius:3px;height:6px;opacity:.35;width:16px}.thermostat-fanbar__segment.is-active{background:var(--primary);opacity:1}.thermostat-buttons{display:flex;gap:8px;justify-content:space-between;margin-top:12px}.thermostat-button{background:color-mix(in oklab,var(--surface) 70%,#0000);border:none;border-radius:999px;box-shadow:inset 0 -2px color-mix(in oklab,var(--border) 40%,#0000);color:var(--text);cursor:pointer;flex:1 1;font-weight:700;letter-spacing:.08em;padding:10px 0;transition:transform var(--trans),box-shadow var(--trans),background var(--trans)}.thermostat-button:hover{background:color-mix(in oklab,var(--primary) 18%,var(--surface));transform:translateY(-1px)}.thermostat-button:disabled{cursor:not-allowed;opacity:.6}.thermostat-button.is-active{background:linear-gradient(180deg,color-mix(in oklab,var(--primary) 45%,#0000),color-mix(in oklab,var(--primary) 15%,#0000));color:#fff}.thermostat-command-strip{display:flex;flex-direction:column;gap:6px;margin-top:12px}.thermostat-command-strip label{color:color-mix(in oklab,var(--text) 60%,#0000);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.thermostat-command-strip__row{display:flex;flex-wrap:wrap;gap:8px}.thermostat-command-strip__row input{background:color-mix(in oklab,var(--surface) 70%,#0000);border:1px solid color-mix(in oklab,var(--border) 60%,#0000);border-radius:8px;flex:1 1;min-width:140px;padding:6px 8px}.thermostat-preset-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.thermostat-body{background:color-mix(in oklab,var(--surface) 60%,#0000);border:1px solid color-mix(in oklab,var(--border) 45%,#0000);border-radius:14px;padding:12px}.toast-stack{display:flex;flex-direction:column;gap:12px;pointer-events:none;position:fixed;right:16px;top:16px;z-index:2000}.toast{animation:toast-enter .25s ease forwards;background:color-mix(in oklab,var(--surface) 80%,#0000);border-left:4px solid var(--primary);border-radius:12px;box-shadow:0 12px 24px #00000040;color:var(--text);max-width:320px;min-width:240px;opacity:0;padding:12px 40px 12px 16px;pointer-events:auto;position:relative;transform:translateY(-6px)}.toast--success{border-color:#2e7d32}.toast--error{border-color:#c62828}.toast--info{border-color:#0277bd}.toast__content{font-size:.9rem;line-height:1.3}.toast-dismiss{background:#0000;border:none;color:currentColor;cursor:pointer;font-size:1.2rem;line-height:1;padding:2px;position:absolute;right:8px;top:6px}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.command-status{border:1px solid #0000;border-radius:8px;font-size:.78rem;margin-top:8px;padding:6px 10px}.command-status--pending{background:#fbc02d26;border-color:#fbc02d66;color:#b26a00}.command-status--ok{background:#2e7d3226;border-color:#2e7d3266;color:#2e7d32}.command-status--err{background:#b71c1c26;border-color:#b71c1c59;color:#b71c1c}.command-status__time{font-size:.7rem;opacity:.7}.light-surface{color:var(--text)}.light-surface a{color:var(--primary)}.light-surface .btn{background:linear-gradient(180deg,var(--primary),var(--primary-600))}.light-surface .btn-outline{border-color:color-mix(in oklab,var(--border) 50%,#0000);color:var(--text)}.danger-row{background:color-mix(in oklab,var(--danger) 14%,#0000);color:var(--text)}.danger-row .input,.danger-row td,.danger-row th{border-color:color-mix(in oklab,var(--danger) 35%,#0000);color:var(--text)}.danger-row .input{background:color-mix(in oklab,var(--surface) 45%,#0000)}.danger-row input[type=date],.danger-row input[type=number]{background:color-mix(in oklab,var(--surface) 45%,#0000);border-color:color-mix(in oklab,var(--danger) 35%,#0000);color:var(--text)}.danger-row input::placeholder{color:var(--text-muted)}.danger-row .btn{background:linear-gradient(180deg,color-mix(in oklab,var(--danger) 80%,#fff 20%),var(--danger));box-shadow:0 6px 18px color-mix(in oklab,var(--danger) 30%,#0000)}.page-container{margin:0 auto;max-width:960px;padding:0 16px 32px;text-align:left}.unit-command-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.unit-command-row .btn{border-radius:12px;font-size:.82rem;padding:8px 12px}.unit-status-row{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.8rem;gap:8px}.unit-status-chip{background:color-mix(in oklab,var(--surface-soft) 50%,#0000);border:1px solid color-mix(in oklab,var(--border) 50%,#0000);border-radius:999px;padding:4px 10px}.unit-command-icons{display:flex;flex-direction:column;gap:12px;margin-bottom:8px}.unit-power-row{display:flex;flex-wrap:wrap;gap:18px}.power-button{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex-direction:column;font-weight:600;gap:6px;padding:0}.power-button:disabled{cursor:not-allowed;opacity:.5}.power-button__circle{align-items:center;border:2px solid #0000;border-radius:50%;box-shadow:inset 0 -4px 12px #0006,0 8px 18px #00000059;color:#fff;display:flex;height:72px;justify-content:center;transition:transform var(--trans),box-shadow var(--trans);width:72px}.power-button--off .power-button__circle{background:radial-gradient(circle at 30% 30%,#ffe5e9,#e53935 60%,#8e0000);border-color:#8e0000}.power-button--on .power-button__circle{background:radial-gradient(circle at 30% 30%,#e6ffed,#2e7d32 60%,#0f4d19);border-color:#0f4d19}.power-button.is-active .power-button__circle{box-shadow:inset 0 -2px 8px #00000059,0 10px 24px #00000073;transform:translateY(-2px)}.power-button__label{color:color-mix(in oklab,var(--text) 80%,#0000);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.power-button--off .power-button__label{color:#ff8a80}.power-button--on .power-button__label{color:#b2dfdb}.icon-power{height:32px;width:32px}.unit-mode-row{display:flex;flex-wrap:wrap;gap:12px}.mode-button{align-items:center;background:color-mix(in oklab,var(--surface-soft) 55%,#0000);border:1px solid color-mix(in oklab,var(--border) 60%,#0000);border-radius:999px;color:var(--text);cursor:pointer;display:flex;font-weight:600;gap:8px;padding:10px 18px;transition:transform var(--trans),box-shadow var(--trans),border-color var(--trans),background var(--trans)}.mode-button:disabled{cursor:not-allowed;opacity:.5}.mode-button--heat{border-color:color-mix(in oklab,#ff9800 45%,#0000);color:#ffcc80}.mode-button--cool{border-color:color-mix(in oklab,#29b6f6 45%,#0000);color:#80d8ff}.mode-button.is-active{background:color-mix(in oklab,currentColor 20%,#0000);box-shadow:0 6px 16px color-mix(in oklab,currentColor 35%,#0000);color:#fff}.icon-mode{height:26px;width:26px}.fc-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.fancoil-card{min-height:140px}.fc-actions{display:flex;gap:10px}.form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-grid label{color:var(--text);display:flex;flex-direction:column;font-weight:600;gap:6px}.status-chip{align-items:center;background:color-mix(in oklab,currentColor 10%,#0000);border:1px solid;border-radius:999px;display:inline-flex;font-size:.8rem;font-weight:600;gap:6px;padding:4px 10px}.status-chip:before{background:currentColor;border-radius:50%;content:"";height:8px;width:8px}.guest-form{gap:16px}.guest-form,.guest-section{display:flex;flex-direction:column}.guest-section{background:color-mix(in oklab,var(--surface) 36%,#0000);border:1px solid color-mix(in oklab,var(--border) 52%,#0000);border-radius:var(--radius);box-shadow:var(--shadow);gap:12px;padding:12px 16px}.guest-section h3{color:var(--text);font-size:1.05rem;margin:0}.field-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.field-block{color:var(--text);display:flex;flex-direction:column;font-weight:600;gap:6px}.field-block span,.privacy-row{font-size:.9rem}.privacy-row{align-items:flex-start;display:flex;gap:8px}.privacy-row input{margin-top:4px}.form-message{border-radius:var(--radius);font-size:.9rem;padding:10px 12px}.form-error{background:color-mix(in oklab,var(--danger) 18%,#0000);border:1px solid color-mix(in oklab,var(--danger) 70%,#0000);color:color-mix(in oklab,var(--danger) 82%,var(--text))}.form-success{background:color-mix(in oklab,var(--ok) 16%,#0000);border:1px solid color-mix(in oklab,var(--ok) 70%,#0000);color:color-mix(in oklab,var(--ok) 75%,var(--text))}.form-actions{display:flex;justify-content:flex-end}.breakfast-card{background:color-mix(in oklab,var(--surface) 35%,#0000);border:1px solid color-mix(in oklab,var(--border) 50%,#0000);border-radius:var(--radius);padding:12px 14px}.field-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px}.checkbox-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.checkbox-card{align-items:center;background:color-mix(in oklab,var(--surface-soft) 48%,#0000);border:1px solid color-mix(in oklab,var(--border) 48%,#0000);border-radius:var(--radius);display:flex;font-size:.95rem;gap:8px;padding:8px 10px}.checkbox-card input{margin:0}@media (max-width:520px){.field-grid{grid-template-columns:1fr}.field-row{align-items:stretch;flex-direction:column}.form-grid{grid-template-columns:1fr}}.wifi-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:32px 16px}.wifi-card{background:color-mix(in oklab,var(--surface) 58%,#0000);border:1px solid color-mix(in oklab,var(--border) 55%,#0000);border-radius:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px;padding:28px 24px;text-align:left;width:min(480px,100%)}.wifi-title{color:var(--text);font-size:1.8rem;margin:0;text-align:center}.wifi-subtitle{font-size:1rem}.wifi-status,.wifi-subtitle{color:var(--text-muted);margin:0;text-align:center}.wifi-error{align-items:center;color:var(--danger);display:flex;flex-direction:column;gap:16px;text-align:center}.wifi-qr-wrapper{display:flex;justify-content:center}.wifi-qr-image{background:#fff;border:8px solid color-mix(in oklab,var(--surface-soft) 70%,#0000);border-radius:12px;height:240px;object-fit:contain;width:240px}.wifi-refresh{align-self:center}.wifi-info{background:color-mix(in oklab,var(--surface-soft) 65%,#0000);border:1px solid color-mix(in oklab,var(--border) 42%,#0000);border-radius:14px;display:flex;flex-direction:column;gap:8px;padding:12px 14px}.wifi-label{color:var(--text-muted);font-weight:600;margin-right:6px}.wifi-value{color:var(--text);font-weight:600}.wifi-steps{color:var(--text);display:flex;flex-direction:column;gap:8px;margin:0;padding-left:20px}.wifi-steps li{line-height:1.4}.wifi-portal{display:flex;flex-direction:column;gap:12px;text-align:center}@media (max-width:520px){.wifi-card{padding:24px 20px}.wifi-qr-image{height:200px;width:200px}}.wifi-portal-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:48px 16px}.wifi-portal-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:color-mix(in oklab,var(--surface) 68%,#0000);border:1px solid color-mix(in oklab,var(--border) 55%,#0000);border-radius:22px;box-shadow:var(--shadow);gap:22px;padding:32px 28px;width:min(520px,100%)}.wifi-portal-card,.wifi-portal-header{display:flex;flex-direction:column;text-align:left}.wifi-portal-header{gap:12px}.wifi-portal-header h1{color:var(--text);font-size:2rem;margin:0}.wifi-portal-header p{color:color-mix(in oklab,var(--text) 78%,var(--text-muted));line-height:1.5;margin:0}.wifi-portal-badge{align-self:flex-start;background:color-mix(in oklab,var(--primary) 65%,#0000);border-radius:999px;color:#0b1222;font-size:.75rem;font-weight:700;letter-spacing:.08em;padding:4px 10px;text-transform:uppercase}.wifi-portal-status{align-items:center;border-radius:15px;display:flex;font-weight:600;gap:12px;line-height:1.4;padding:12px 16px}.wifi-portal-status .dot{background:currentColor;border-radius:50%;box-shadow:0 0 12px currentColor;height:10px;width:10px}.wifi-portal-status.checking{background:color-mix(in oklab,var(--primary) 18%,#0000);border:1px solid color-mix(in oklab,var(--primary) 35%,#0000);color:var(--primary)}.wifi-portal-status.ok{background:color-mix(in oklab,var(--ok) 14%,#0000);border:1px solid color-mix(in oklab,var(--ok) 40%,#0000);color:var(--ok)}.wifi-portal-status.error{background:color-mix(in oklab,var(--danger) 14%,#0000);border:1px solid color-mix(in oklab,var(--danger) 40%,#0000);color:var(--danger)}.wifi-portal-alert{background:color-mix(in oklab,var(--danger) 20%,#0000);border:1px solid color-mix(in oklab,var(--danger) 60%,#0000);border-radius:14px;color:color-mix(in oklab,var(--danger) 80%,var(--text));font-weight:600;padding:12px 14px}.wifi-portal-info{grid-gap:12px;background:color-mix(in oklab,var(--surface-soft) 62%,#0000);border:1px solid color-mix(in oklab,var(--border) 52%,#0000);border-radius:16px;display:grid;gap:12px;padding:14px 16px}.wifi-portal-info .label{color:var(--text-muted);display:block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.wifi-portal-info .value{color:var(--text);font-size:1.1rem;font-weight:700}.wifi-portal-steps{display:flex;flex-direction:column;gap:8px}.wifi-portal-steps h2{color:var(--text-muted);font-size:1.1rem;letter-spacing:.1em;margin:0;text-transform:uppercase}.wifi-portal-steps ol{color:var(--text);display:flex;flex-direction:column;gap:6px;margin:0;padding-left:20px}.wifi-portal-hint{color:color-mix(in oklab,var(--text) 70%,var(--danger));font-size:.9rem;margin:0}.wifi-portal-actions{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.wifi-portal-connect{min-width:160px}.wifi-portal-actions small{color:var(--text-muted)}.wifi-portal-tabs{background:color-mix(in oklab,var(--surface-soft) 55%,#0000);border-radius:999px;display:flex;gap:8px;padding:6px}.wifi-portal-tab{background:#0000;border:none;border-radius:999px;color:var(--text-muted);cursor:pointer;flex:1 1;font-weight:600;padding:10px 16px;transition:background var(--trans),color var(--trans),transform var(--trans)}.wifi-portal-tab:hover{color:var(--text);transform:translateY(-1px)}.wifi-portal-tab.active{background:color-mix(in oklab,var(--primary) 35%,#0000);box-shadow:0 8px 22px color-mix(in oklab,var(--primary) 25%,#0000);color:#0b1222}.wifi-portal-form{display:flex;flex-direction:column;gap:16px}.wifi-portal-copy{color:color-mix(in oklab,var(--text) 82%,var(--text-muted));line-height:1.6;margin:0}.wifi-portal-field{color:var(--text);display:flex;flex-direction:column;font-weight:600;gap:6px}.wifi-portal-field input{background:color-mix(in oklab,var(--surface-soft) 65%,#0000);border:1px solid color-mix(in oklab,var(--border) 58%,#0000);border-radius:12px;color:var(--text);font-weight:500;padding:10px 12px;transition:border-color var(--trans),box-shadow var(--trans)}.wifi-portal-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 28%,#0000);outline:none}.wifi-portal-remember{align-items:center;color:var(--text);display:flex;font-size:.95rem;gap:10px}.wifi-portal-remember input{height:16px;width:16px}.wifi-portal-inline{background:none;border:none;color:var(--primary);cursor:pointer;font-weight:600;padding:0}.wifi-portal-inline:hover{text-decoration:underline}.wifi-portal-inline:focus-visible{outline:2px solid color-mix(in oklab,var(--primary) 65%,#0000);outline-offset:2px}.wifi-portal-inline:disabled{color:var(--text-muted);cursor:default;text-decoration:none}@media (max-width:520px){.wifi-portal-card{padding:28px 22px}}
/*# sourceMappingURL=main.62af45ca.css.map*/