:root{color-scheme:light;--background: #ffffff;--foreground: #2c332f;--muted: #8a918c;--muted-2: #a8aea9;--card: #ffffff;--card-fg: #2c332f;--popover: #ffffff;--border: rgb(44 51 47 / .11);--input: #f4f6f4;--ring: #3f8f56;--primary: #3f8f56;--primary-fg: #f7fbf8;--primary-2: #2d6b41;--primary-soft: #eaf5ed;--accent: #3f8f56;--accent-2: #2d6b41;--destructive: #d15a52;--ok: #2f7a48;--bg: var(--background);--surface: var(--card);--surface-2: var(--input);--text: #5c6360;--text-strong: var(--foreground);--shadow: 0 16px 40px rgb(40 60 45 / .08);--shadow-sm: 0 6px 18px rgb(40 60 45 / .05);--radius: .9rem;--radius-lg: 1.25rem;--radius-full: 999px;--font: "Beer UI", system-ui, sans-serif;--display: "Beer Display", Georgia, serif;--ease: cubic-bezier(.22, 1, .36, 1);font-family:var(--font);line-height:1.5;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--background)}a{color:var(--primary)}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:100;background:var(--card);padding:.5rem 1rem;border-radius:8px;color:var(--foreground)}.muted{color:var(--muted)}.visually-hidden,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:var(--radius-full);padding:.58rem 1.15rem;cursor:pointer;background:var(--input);color:var(--foreground);font:inherit;font-weight:550;letter-spacing:-.01em;text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s ease,background .2s ease,border-color .2s ease,filter .2s ease}.btn:hover{filter:brightness(.98)}@media(prefers-reduced-motion:no-preference){.btn:hover{transform:translateY(-1px)}}.btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.btn:disabled{opacity:.55;cursor:wait;transform:none}.btn--primary{background:linear-gradient(150deg,#52a366,var(--primary-2));color:var(--primary-fg);box-shadow:0 8px 20px #3f8f5638}.btn--primary:hover{filter:brightness(1.04)}.btn--ghost{background:transparent;border-color:var(--border);color:var(--muted)}.btn--ghost:hover{color:var(--foreground);background:var(--card);border-color:#3f8f5647}.btn--glass{background:#ffffffb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--border);color:var(--foreground)}.btn--lg{padding:.78rem 1.4rem;font-size:1.02rem}.btn--block{width:100%}.btn--xs{padding:.28rem .65rem;font-size:.8rem}.field{display:grid;gap:.35rem;font-size:.92rem;color:var(--muted)}.field>span{color:var(--muted);font-weight:500}input,textarea,select,button{font:inherit}input,textarea,select{width:100%;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);padding:.65rem .85rem;background:var(--input);color:var(--foreground);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:#3f8f5673;background:#fff;box-shadow:0 0 0 4px #3f8f561a}input::placeholder,textarea::placeholder{color:var(--muted-2)}.checkbox{display:flex;align-items:center;gap:.5rem;color:var(--text);font-size:.92rem}.checkbox input{width:auto}.icon-btn{border:none;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer;border-radius:8px;padding:.2rem .5rem}.icon-btn:hover{color:var(--foreground)}.panel,.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.login-page{min-height:100dvh;display:grid;place-items:center;padding:2rem 1rem;position:relative;background:#fff}.login__bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 45% 40% at 90% 10%,rgb(63 143 86 / .12),transparent 60%),radial-gradient(ellipse 40% 35% at 10% 90%,rgb(63 143 86 / .08),transparent 55%),#fff}.login__back{position:absolute;top:1.25rem;left:1.25rem;color:var(--muted);text-decoration:none;font-size:.95rem;z-index:2;font-weight:500}.login__back:hover{color:var(--text-strong)}.login-card{width:min(400px,100%);padding:2rem;border-radius:calc(var(--radius-lg) + .2rem);background:#ffffffeb;border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:card-in .5s var(--ease) both}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.login-card__brand{text-align:center;margin-bottom:1.75rem}.login-card__brand span{width:3rem;height:3rem;margin:0 auto .75rem;display:grid;place-items:center;border-radius:.95rem;background:linear-gradient(150deg,#52a366,var(--primary-2));box-shadow:0 10px 22px #3f8f5638;font-size:0}.login-card__brand span:before{content:"";width:1.1rem;height:1.25rem;background:#ffffffe6;border-radius:40% 40% 45% 45%;clip-path:polygon(50% 0,100% 35%,82% 100%,18% 100%,0 35%)}.login-card__brand h1{margin:0 0 .35rem;font-size:1.45rem;color:var(--text-strong);letter-spacing:-.02em}.login-card__brand .muted{margin:0;font-size:.9rem}.login-form{display:grid;gap:1rem}.login-error{color:var(--destructive);font-size:.9rem;margin:0}.login-hint{margin:1.25rem 0 0;font-size:.85rem;text-align:center;color:var(--muted)}.login-card--wide{width:min(440px,100%)}.login-success{color:var(--ok);font-size:.9rem;margin:0;white-space:pre-wrap}.step-panel[hidden]{display:none!important}.totp-qr{display:block;margin:0 auto 1rem;border-radius:12px;border:1px solid var(--border);background:#fff;padding:8px}.login-remember{margin-top:-.25rem}.password-field{display:flex;align-items:stretch;gap:.35rem}.password-field input{flex:1}.password-toggle{flex-shrink:0;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--input);color:var(--muted);cursor:pointer;padding:0 .75rem;font-size:.95rem;line-height:1}.password-toggle:hover{color:var(--text-strong);border-color:#3f8f5659}.password-toggle[aria-pressed=true]{color:var(--primary)}.login-hint a{color:var(--primary);font-weight:550}#btn-login:disabled{opacity:.6;cursor:wait}@media(prefers-reduced-motion:reduce){.login-card{animation:none}}
