@charset "UTF-8";:root{--felt-dark: #0f3d26;--felt: #1a5c38;--felt-light: #24704a;--gold: #d4af37;--gold-light: #e6c866;--cream: #f5efe0;--text-dark: #1c2b22;--text-light: #f5efe0;--danger: #c0392b;--danger-bg: rgba(192, 57, 43, .12);--success: #3fa66a;--border-subtle: rgba(212, 175, 55, .35);--shadow-card: 0 20px 45px rgba(0, 0, 0, .35);--radius-lg: 20px;--radius-md: 12px;--radius-sm: 8px;--font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;font-family:var(--font-stack);color:var(--text-dark)}body{background:var(--felt-dark)}h1,h2,h3,p{margin:0}button{font-family:inherit}.auth-shell{min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem;background-color:var(--felt-dark);background-image:radial-gradient(circle at 15% 20%,rgba(255,255,255,.06),transparent 45%),radial-gradient(circle at 85% 80%,rgba(255,255,255,.05),transparent 45%),url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22140%22%20height%3D%22140%22%3E%3Ctext%20x%3D%2210%22%20y%3D%2255%22%20font-family%3D%22Georgia%2C%20serif%22%20font-size%3D%2248%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.06%22%3E%E2%99%A0%3C%2Ftext%3E%3Ctext%20x%3D%2275%22%20y%3D%22120%22%20font-family%3D%22Georgia%2C%20serif%22%20font-size%3D%2248%22%20fill%3D%22%23ffffff%22%20opacity%3D%220.06%22%3E%E2%99%A5%3C%2Ftext%3E%3C%2Fsvg%3E);background-repeat:no-repeat,no-repeat,repeat;background-size:cover,cover,140px 140px}.auth-card{width:100%;max-width:420px;background:var(--cream);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);padding:2.25rem 2rem;position:relative}.auth-card__brand{text-align:center;margin-bottom:1.5rem}.auth-card__brand h1{font-size:1.5rem;color:var(--felt);letter-spacing:.02em}.auth-card__brand span{color:var(--gold)}.auth-card__logo{display:block;margin:0 auto;width:auto;height:auto;max-height:132px;max-width:70%}.auth-card h2{margin:0 0 1.5rem;font-size:1.15rem;color:var(--text-dark);text-align:center;font-weight:600}.auth-card__subtitle{text-align:center;font-size:.9rem;color:#000000a6;margin:-.75rem 0 1.25rem}.form-field{margin-bottom:1.1rem;display:flex;flex-direction:column;gap:.35rem}.form-field label{font-size:.85rem;font-weight:600;color:var(--text-dark)}.form-field input{border:1px solid rgba(0,0,0,.15);border-radius:var(--radius-sm);padding:.65rem .75rem;font-size:.95rem;font-family:inherit;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.form-field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3740}.form-field input.invalid{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.8rem}.form-banner{border-radius:var(--radius-sm);padding:.65rem .85rem;font-size:.85rem;margin-bottom:1rem}.form-banner--error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(192,57,43,.3)}.form-banner--info{background:#1a5c3814;color:var(--felt);border:1px solid rgba(26,92,56,.2)}.btn-primary{width:100%;border:none;border-radius:var(--radius-sm);padding:.75rem 1rem;background:var(--felt);color:var(--cream);font-weight:600;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s ease,opacity .15s ease}.btn-primary:hover:not(:disabled){background:var(--felt-light)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--felt);font-weight:600;cursor:pointer;padding:0;font-size:.85rem;text-decoration:underline}.btn-link:disabled{color:#00000059;cursor:not-allowed;text-decoration:none}.auth-card__footer{margin-top:1.5rem;text-align:center;font-size:.85rem;color:#000000a6}.auth-card__footer a{color:var(--felt);font-weight:600;text-decoration:none}.auth-card__footer a:hover{text-decoration:underline}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.code-inputs{display:flex;gap:.6rem;justify-content:center;margin-bottom:1.25rem}.code-inputs input{width:2.6rem;height:3.1rem;text-align:center;font-size:1.4rem;font-weight:700;border:1px solid rgba(0,0,0,.15);border-radius:var(--radius-sm);background:#fff}.code-inputs input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #d4af3740}
