:root{--ink: #373a36;--ink-light: #5b6b6f;--teal: #4f9fa6;--teal-dark: #3e8d93;--sky: #9bd3dd;--line: #d7e2e6;--mist: #eaf5f8;--paper: #ffffff;--danger: #c75050;--danger-bg: #fff4f4}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;place-items:center;font-family:Outfit,system-ui,sans-serif;color:var(--ink);background:linear-gradient(180deg,#f7fbfc,#fff 40%,#f9f7f5)}.login-shell{width:min(520px,calc(100% - 28px));border:1px solid var(--line);background:var(--paper);box-shadow:0 14px 30px #0d253f1a}.login-head{padding:22px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.brand-icon{width:44px;height:44px;border:1px solid var(--line);display:grid;place-items:center;background:var(--mist)}.brand-icon img{width:28px;height:28px}.login-head h1{margin:0;font-family:Ibarra Real Nova,serif;color:var(--sky);letter-spacing:.08em;text-transform:uppercase;font-size:1.3rem}.login-head p{margin:2px 0 0;color:var(--ink-light);font-size:.88rem}.login-body{padding:22px;display:grid;gap:10px}.local-form{display:grid;gap:8px}.field{display:grid;gap:4px}.field label{color:var(--ink-light);font-size:.82rem}.input{width:100%;min-height:42px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 10px;font:inherit}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);min-height:44px;padding:10px 12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;transition:border-color .2s,color .2s,transform .2s}.btn:hover{border-color:var(--teal);color:var(--teal-dark);transform:translateY(-1px)}.btn-primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff}.error{border:1px solid #e2b9b9;background:var(--danger-bg);color:var(--danger);padding:9px 10px;font-size:.86rem}.divider{display:flex;align-items:center;gap:10px;color:var(--ink-light);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;margin:2px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}
