:root{--bg:#fff;--surface:#fff;--text:#111418;--text-muted:#5f6672;--border:#d9dde3;--border-strong:#b8bec8;--primary:#1f2937;--primary-hover:#111827;--primary-text:#fff;--focus:#1f29372e;--danger:#c0262d;--danger-bg:#fdecec;--radius:12px;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);margin:0}#root{min-height:100dvh}button,input{font:inherit;color:inherit}.loader{place-items:center;min-height:100dvh;display:grid}.loader__spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite loader-spin}@keyframes loader-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loader__spinner{animation-duration:2s}}.home{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.home__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;max-width:960px;margin:0 auto;padding-bottom:16px;display:flex}.home__user{flex-direction:column;min-width:0;display:flex}.home__username{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.home__meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.home__logout{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;touch-action:manipulation;flex-shrink:0;height:44px;padding:0 16px;font-size:.9375rem;font-weight:500}.home__logout:hover:not(:disabled){border-color:var(--border-strong)}.home__logout:focus-visible{box-shadow:0 0 0 4px var(--focus);outline:none}.home__logout:disabled{opacity:.6;cursor:default}.login{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex}.login__card{flex-direction:column;gap:20px;width:100%;max-width:400px;display:flex}.login__title{letter-spacing:-.02em;color:var(--text);margin:0 0 4px;font-size:1.625rem;font-weight:600;line-height:1.2}.login__error{border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);padding:12px 14px;font-size:.9375rem}.login__field{flex-direction:column;gap:8px;display:flex}.login__label{color:var(--text-muted);font-size:.875rem;font-weight:500}.login__input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);appearance:none;outline:none;width:100%;height:52px;padding:0 16px;font-size:16px;transition:border-color .15s,box-shadow .15s}.login__input:hover:not(:disabled){border-color:var(--border-strong)}.login__input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--focus)}.login__input[aria-invalid=true]{border-color:var(--danger)}.login__input:disabled{opacity:.6}.login__password{position:relative}.login__input--password{padding-right:52px}.login__toggle{border-radius:var(--radius);width:52px;height:52px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;right:0}.login__toggle:hover:not(:disabled){color:var(--text)}.login__toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-6px}.login__submit{border-radius:var(--radius);background:var(--primary);height:52px;color:var(--primary-text);cursor:pointer;touch-action:manipulation;border:0;justify-content:center;align-items:center;gap:10px;margin-top:4px;font-size:1rem;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.login__submit:hover:not(:disabled){background:var(--primary-hover)}.login__submit:active:not(:disabled){transform:scale(.99)}.login__submit:focus-visible{box-shadow:0 0 0 4px var(--focus);outline:none}.login__submit:disabled{opacity:.7;cursor:default}.login__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite login-spin}@keyframes login-spin{to{transform:rotate(360deg)}}@media (width>=640px){.login__card{border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:40px 36px}}@media (prefers-reduced-motion:reduce){.login__spinner{animation-duration:2s}.login__input,.login__submit{transition:none}}
