.login-bg{--lg-bg:#f0eee9;--lg-paper:#fff;--lg-paper2:#faf7f0;--lg-ink:#1f1b16;--lg-ink2:#4a3f33;--lg-ink3:#7a6b58;--lg-ink4:#b3a995;--lg-line:#1f1b161a;--lg-accent:#765be6;--lg-accent-soft:#765be61a;background-color:var(--lg-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cline x1='0' y1='0' x2='0' y2='48' stroke='rgba(31%2C27%2C22%2C.09)' stroke-width='1'/%3E%3Cline x1='0' y1='0' x2='48' y2='0' stroke='rgba(31%2C27%2C22%2C.09)' stroke-width='1'/%3E%3Cline x1='24' y1='0' x2='24' y2='48' stroke='rgba(31%2C27%2C22%2C.05)' stroke-width='1' stroke-dasharray='3 3'/%3E%3Cline x1='0' y1='24' x2='48' y2='24' stroke='rgba(31%2C27%2C22%2C.05)' stroke-width='1' stroke-dasharray='3 3'/%3E%3C/svg%3E");background-size:48px 48px;justify-content:center;align-items:center;min-height:100dvh;padding:16px 16px 52px;display:flex}.login-card{background:var(--lg-paper);border:1px solid var(--lg-line);text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:40px 36px 36px;display:flex;box-shadow:0 12px 48px #00000017,0 2px 8px #0000000f}.login-logo-wrap{margin-bottom:20px}.login-logo{width:auto;height:36px;display:block}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/cormorant-garamond-300-latin.woff2)format("woff2")}.login-title{letter-spacing:.18em;text-transform:uppercase;color:var(--lg-ink4);margin:0 0 6px;font-family:Cormorant Garamond,Times New Roman,Georgia,serif;font-size:27px;font-weight:300;line-height:1}.login-subtitle{color:var(--lg-ink3);letter-spacing:.02em;margin:0 0 20px;font-size:12.5px}.login-form{flex-direction:column;gap:0;width:100%;display:flex}.login-field{text-align:left;margin-bottom:16px}.login-label{color:var(--lg-ink3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.login-input{border:1px solid var(--lg-line);width:100%;color:var(--lg-ink);background:var(--lg-paper2);box-sizing:border-box;border-radius:9px;outline:none;padding:10px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-input:focus{border-color:var(--lg-accent);box-shadow:0 0 0 3px var(--lg-accent-soft)}.login-hint{color:var(--lg-ink4);margin:6px 0 0;font-size:12px;line-height:1.5}.login-error{color:#dc2626;text-align:left;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:9px 12px;font-size:13px}.login-btn-primary{background:var(--lg-ink);color:#fff;cursor:pointer;border:none;border-radius:9px;width:100%;margin-bottom:10px;padding:11px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s,transform .1s}.login-btn-primary:hover:not(:disabled){background:var(--lg-ink2)}.login-btn-primary:active:not(:disabled){transform:scale(.98)}.login-btn-primary:disabled{opacity:.55;cursor:not-allowed}.login-dots{justify-content:center;gap:10px;margin-top:18px;display:flex}.login-dots button{cursor:pointer;background:var(--lg-line);border:none;border-radius:50%;width:7px;height:7px;padding:0;transition:background .15s,transform .15s}.login-dots button:hover{background:var(--lg-ink4)}.login-dots button.active{background:var(--lg-ink3);transform:scale(1.15)}.login-footer{color:var(--lg-ink4);letter-spacing:.01em;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 0;padding:12px 16px 14px;font-size:11px;display:flex;position:fixed;bottom:0;left:0;right:0}.login-footer-sep{opacity:.5;margin:0 5px}.login-footer-link{color:var(--lg-ink4);text-decoration:none}.login-footer-link:hover{color:var(--lg-ink3)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{overscroll-behavior:none;width:100%;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Microsoft YaHei,sans-serif}::selection{background:color-mix(in srgb, var(--brand-primary) 25%, transparent)}.row-failed td{opacity:.55}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
