:root { color-scheme: light; font-family: Georgia, "Times New Roman", serif; color: #222824; background: #fcfbf8; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; display: grid; place-items: center; padding: 24px; }
.login { width: 100%; max-width: 460px; background: #fcfbf8; border: 1px solid #dcded9; border-radius: 4px; padding: 36px; }
.identity { display: flex; gap: 14px; align-items: center; color: #5e625f; font-size: 16px; overflow-wrap: anywhere; }
.identity img { flex-shrink: 0; }
h1 { font-size: 32px; line-height: 1.2; margin: 26px 0 12px; color: #174e40; }
.description { color: #5e625f; font-size: 18px; line-height: 1.55; margin: 0 0 28px; }
label { font-size: 18px; font-weight: 600; }
.password-row { position: relative; margin-top: 9px; }
#password { font: inherit; font-size: 18px; width: 100%; min-height: 48px; padding: 12px 100px 12px 14px; background: white; border: 1px solid #c9cdc6; border-radius: 4px; color: inherit; }
button { font: inherit; cursor: pointer; border: 0; }
.reveal { position: absolute; right: 8px; top: 5px; min-height: 38px; background: transparent; color: #174e40; font-size: 16px; padding: 7px; }
.error { color: #9c2c27; font-size: 17px; line-height: 1.5; margin: 10px 0 0; }
.error:empty { display: none; }
.remember { display: flex; align-items: center; gap: 12px; min-height: 48px; margin: 16px 0; font-size: 17px; font-weight: 400; line-height: 1.4; cursor: pointer; }
.remember input { width: 20px; height: 20px; flex-shrink: 0; margin: 0; accent-color: #174e40; }
.submit { width: 100%; min-height: 48px; border-radius: 4px; background: #174e40; color: white; font-size: 18px; font-weight: 600; }
.submit:hover { background: #23634f; }
.submit:disabled { opacity: .6; cursor: wait; }
:focus-visible { outline: 3px solid #33745f; outline-offset: 3px; }
@media (max-width: 400px) { body { padding: 16px; } .login { padding: 24px; } h1 { font-size: 28px; } }
