.login[data-v-8743e1e5]{--tint: var(--accent);--tint-pressed: var(--accent-pressed);--field-bg: var(--panel);--field-text: var(--text);--separator: var(--border);--placeholder: var(--muted);--secondary: var(--muted);--danger: var(--up);display:flex;flex-direction:column;justify-content:center;min-height:100vh;min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased;background:var(--bg)}.hero[data-v-8743e1e5]{display:flex;flex-direction:column;align-items:center;margin-bottom:36px;text-align:center}.app-icon[data-v-8743e1e5]{display:grid;place-items:center;width:76px;height:76px;margin-bottom:20px;border-radius:22.5%;background:linear-gradient(145deg,#a48bff,#7c5cff 55%,#5b3ee0);box-shadow:0 10px 24px #7c5cff59,inset 0 1px #ffffff40}.badge[data-v-8743e1e5]{margin-bottom:10px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint);font-size:12px;font-weight:700;letter-spacing:.04em}h1[data-v-8743e1e5]{margin:0;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.subtitle[data-v-8743e1e5]{margin:6px 0 0;font-size:15px;color:var(--secondary)}.form[data-v-8743e1e5]{display:flex;flex-direction:column;align-self:center;width:75%}.group[data-v-8743e1e5]{overflow:hidden;border-radius:10px;background:var(--field-bg);transition:box-shadow .2s}.group.invalid[data-v-8743e1e5]{box-shadow:0 0 0 1px var(--danger)}.row[data-v-8743e1e5]{position:relative;display:flex;align-items:center;min-height:44px;padding:0 14px}.row+.row[data-v-8743e1e5]:before{content:"";position:absolute;top:0;left:14px;right:0;height:.5px;background:var(--separator)}.row input[data-v-8743e1e5]{flex:1;min-width:0;height:44px;padding:0;border:none;border-radius:0;outline:none;background:transparent;color:var(--field-text);font-size:16px;font-weight:500;letter-spacing:-.01em;caret-color:var(--tint)}.row input[data-v-8743e1e5]:focus{box-shadow:none}.row input[data-v-8743e1e5]::placeholder{color:var(--placeholder);font-size:14px;font-weight:400}.row input[data-v-8743e1e5]:-webkit-autofill{-webkit-text-fill-color:var(--field-text);-webkit-box-shadow:0 0 0 100px var(--field-bg) inset;transition:background-color 9999s}.reveal[data-v-8743e1e5]{display:grid;place-items:center;width:36px;height:36px;margin-right:-8px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--secondary)}.error[data-v-8743e1e5]{min-height:20px;margin:10px 4px 14px;font-size:13px;color:var(--danger);text-align:center}.submit[data-v-8743e1e5]{display:flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0;border:none;border-radius:10px;background:var(--tint);color:var(--on-accent);font-size:16px;font-weight:600;letter-spacing:-.01em;transition:background .15s,transform .1s,opacity .2s}.submit[data-v-8743e1e5]:active:not(:disabled){background:var(--tint-pressed);transform:scale(.98)}.submit[data-v-8743e1e5]:disabled{opacity:.35;cursor:default}.spinner[data-v-8743e1e5]{width:16px;height:16px;border:2px solid color-mix(in srgb,currentColor 35%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin-8743e1e5 .8s linear infinite}.footnote[data-v-8743e1e5]{margin:24px 0 0;font-size:12px;color:var(--secondary);text-align:center}.sr-only[data-v-8743e1e5]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shake[data-v-8743e1e5]{animation:shake-8743e1e5 .4s cubic-bezier(.36,.07,.19,.97)}@keyframes shake-8743e1e5{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-8px)}40%,60%{transform:translate(8px)}}@keyframes spin-8743e1e5{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.shake[data-v-8743e1e5],.spinner[data-v-8743e1e5]{animation:none}}.form[data-v-cb17b3d6]{display:flex;flex-direction:column;gap:8px}.form input[data-v-cb17b3d6]{width:100%;padding:10px;font-size:14px}.hidden[data-v-cb17b3d6]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.submit[data-v-cb17b3d6]{padding:10px 14px;border:none;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:600}.submit[data-v-cb17b3d6]:disabled{opacity:.5}.hint[data-v-cb17b3d6]{margin:10px 0 0;font-size:12px;line-height:1.5}.logout[data-v-fef01985]{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text);font-size:14px}:root{--bg: #0f1117;--surface: #181b24;--border: #2a2e3a;--text: #eceef3;--muted: #8b90a0;--accent: #7c5cff;--accent-pressed: #6a4ae8;--on-accent: #fff;--panel: var(--surface);--up: #f04452;--down: #3182f6}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif;touch-action:pan-x pan-y}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:720px;margin:0 auto}.app-header{display:flex;align-items:center;gap:8px;height:56px;padding:0 16px;border-bottom:1px solid var(--border)}.app-title{flex:1;margin:0;font-size:18px}.app-main{flex:1;padding:16px}.app-nav{position:sticky;bottom:0;display:flex;border-top:1px solid var(--border);background:var(--surface)}.nav-item{flex:1;height:52px;border:0;background:none;color:var(--muted);font:inherit;cursor:pointer}.nav-item.active{color:var(--accent);font-weight:600}.icon-button{display:inline-flex;padding:4px;border:0;background:none;color:var(--text);cursor:pointer}.status{font-size:13px;color:var(--muted)}.status.on{color:var(--accent)}.status.off{color:var(--up)}.card{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.card-title{margin:0 0 8px;font-size:16px}.muted{margin:0;color:var(--muted)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000080}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dialog{width:100%;max-width:360px;padding:20px;border-radius:12px;background:var(--surface)}.dialog-title{margin:0 0 8px;font-size:16px}.dialog-message{margin:0;white-space:pre-line;line-height:1.5}.dialog-details{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.button{padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:none;color:var(--text);font:inherit;cursor:pointer}.button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.button.danger{border-color:var(--up);background:var(--up);color:#fff}
