.login-modal{border:0;background:transparent;padding:0;max-width:none;max-height:none;width:100%;height:100%;display:none;position:fixed;inset:0;z-index:var(--z-menu)}
.login-modal[open]{display:block}
.login-modal__backdrop{position:absolute;inset:0;background:rgba(13,13,15,.72);backdrop-filter:blur(4px)}
.login-modal__panel{position:relative;z-index:1;width:min(28rem,calc(100% - 2rem));margin:clamp(3rem,12vh,8rem) auto 0;padding:clamp(1.5rem,4vw,2.5rem);border-radius:var(--radius-l);background:var(--surface);box-shadow:var(--shadow)}
.login-modal__close{position:absolute;top:.8rem;right:.8rem;width:2.4rem;height:2.4rem;border:0;border-radius:var(--radius-s);background:transparent;cursor:pointer;transition:background var(--speed) var(--ease)}
.login-modal__close:hover{background:var(--surface-2)}
.login-modal__close::before,.login-modal__close::after{content:"";position:absolute;top:50%;left:50%;width:1.1rem;height:2px;background:var(--ink);transform:translate(-50%,-50%) rotate(45deg)}
.login-modal__close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.login-modal__header{margin-bottom:1.5rem}
.login-modal__title{font-size:clamp(1.5rem,4vw,2rem);line-height:1.1;letter-spacing:-.025em}
.login-modal__form{display:grid;gap:1rem}
.login-modal__field{display:grid;gap:.4rem}
.login-modal__field label{font-size:.82rem;font-weight:700;color:var(--ink)}
.login-modal__field input{width:100%;border:var(--border);border-radius:var(--radius-s);background:var(--paper);color:var(--ink);padding:.8rem .9rem;min-height:2.9rem;font:inherit}
.login-modal__field input:focus{border-color:var(--accent);background:var(--white);outline:none;box-shadow:0 0 0 3px rgba(207,64,51,.12)}
.login-modal__field input[aria-invalid="true"]{border-color:var(--warning)}
.login-modal__password-wrap{position:relative}
.login-modal__toggle-pass{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border:0;background:transparent;cursor:pointer}
.login-modal__toggle-pass::after{content:"";display:block;width:1.15rem;height:1.15rem;background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
.login-modal__toggle-pass[data-visible="true"]::after{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E") center/contain no-repeat}
.login-modal__error{min-height:1.1em;color:var(--warning);font-size:.78rem}
.login-modal__actions{display:flex;justify-content:flex-end}
.login-modal__forgot{font-size:.82rem;color:var(--accent-dark);text-decoration:underline;text-underline-offset:2px}
.login-modal__submit{width:100%;margin-top:.5rem}
.login-modal__status{min-height:1.4rem;font-size:.86rem;text-align:center}
.login-modal__status[data-type="error"]{color:var(--warning)}
.login-modal__status[data-type="success"]{color:var(--ok)}
.login-modal__footer{margin-top:1.5rem;padding-top:1.2rem;border-top:var(--border);text-align:center;font-size:.82rem;color:var(--ink-soft)}
.login-modal__footer a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:2px}
@media(max-width:480px){.login-modal__panel{margin-top:2rem}}
