/* Scoped password forms: keep controls separate, with a full 44px touch target. */
.password-control{display:flex;align-items:stretch;gap:8px;width:100%;min-width:0;margin:0}
.password-control>input{flex:1 1 0;width:0;min-width:0;max-width:100%;min-height:46px;margin:0!important;border:1px solid #afc9c1;border-radius:8px;padding:11px 12px;background:#fff;color:#214b40;font:inherit;box-sizing:border-box}
.password-control>.password-toggle{flex:0 0 auto;min-width:64px;min-height:46px;margin:0;padding:10px 12px;position:static;border:1px solid #a6c7bb;border-radius:8px;background:#e7f3ed;color:#285b49;font:inherit;cursor:pointer}
.password-control>.password-toggle:hover{background:#d8ede1}
.password-control>:focus-visible{outline:3px solid #298369;outline-offset:2px}
.password-control>input[aria-invalid=true]{border-color:#b95044;background:#fff8f6}
.password-field>input{min-height:54px;padding-right:76px}
.password-field>button{min-width:64px;min-height:44px!important;height:44px;top:5px;right:5px}
.password-settings-page{font-size:16px;background:#edf5ee;min-height:100vh;color:#244d40;padding:32px 16px;box-sizing:border-box}
.password-settings-page>.password-settings{display:block;max-width:620px;width:100%;min-height:0;padding:30px;margin:0 auto;background:#fffffff2;border:1px solid #c6d9cc;border-radius:18px;box-shadow:0 12px 35px #2d655c0d;overflow:visible;box-sizing:border-box}
.password-settings h1{margin:0 0 12px;font-size:26px;line-height:1.4;font-weight:650;color:#244d40}
.password-settings .password-intro{margin:0 0 18px;line-height:1.65;font-size:15px;color:#466658}
.password-settings .password-note{margin:0 0 22px;padding:10px 12px;border:1px solid #e4d2a5;border-radius:8px;background:#fff7e3;color:#795d23;font-size:13px;line-height:1.6}
.password-settings form{display:grid;gap:18px}
.password-settings [hidden]{display:none!important}
.password-settings .password-group{min-width:0}
.password-settings label{margin:0 0 8px;font-size:15px;line-height:1.5}
.password-settings .password-show-all{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;cursor:pointer}
.password-settings .password-show-all input{width:20px;height:20px;min-height:0;padding:0;margin:0;flex:0 0 20px;accent-color:#287657}
.password-settings [data-password-group]>.password-group>input,.password-settings .recovery-input{width:100%;min-height:46px;padding:11px 12px;border:1px solid #afc9c1;border-radius:8px;background:#fff;color:#214b40;font:inherit;box-sizing:border-box}
.password-settings input:focus-visible,.password-settings .password-show-all:focus-within{outline:3px solid #298369;outline-offset:2px}
.password-settings .recovery-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.password-settings .recovery-success{padding:12px;border:1px solid #b5d2bd;background:#e6f2ea;border-radius:8px;color:#315e49;font-size:15px;line-height:1.65}
.login-panel .forgot-password-link{display:block;width:fit-content;min-height:44px;line-height:44px;color:#366e57;text-underline-offset:4px;margin-top:6px}
.password-settings .password-rules{margin:8px 0 0;font-size:13px;line-height:1.6;color:#507163}
.password-settings #message{font-size:14px;line-height:1.6;margin:0;color:#a43d31;overflow-wrap:anywhere}
.password-settings #message:empty{display:none}
.password-settings .primary{background:#287657;border:1px solid #246b50;border-radius:8px;min-height:48px;font-size:16px;color:#fff}
.password-settings .primary:hover{background:#205f46}
.password-settings .password-back{display:inline-block;margin-top:22px;color:#366e57;min-height:44px;line-height:44px;text-underline-offset:4px;font-size:14px}
.password-reset-dialog{width:min(620px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:90dvh;overflow:auto;padding:24px;box-sizing:border-box;background:#f7fbf8;color:#274d40}
.password-reset-dialog h2{margin:0 0 12px;line-height:1.4;font-size:22px}
.password-reset-dialog p{line-height:1.6;overflow-wrap:anywhere}
.password-reset-dialog .password-default-card{background:#e6f2ea;border:1px solid #b5d2bd;border-radius:10px;padding:16px;margin:18px 0}
.password-reset-dialog .password-default-card p{margin:0 0 12px;color:#416750}
.password-reset-dialog .password-default-card button{min-height:46px;width:100%;background:#287657;border-color:#246b50;color:#fff}
.password-reset-dialog .password-default-value{font-family:ui-monospace,monospace;overflow-wrap:anywhere}
.password-reset-dialog details{padding:0;margin:16px 0;border:0}
.password-reset-dialog summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:#315e49;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.password-reset-dialog form{display:grid;gap:12px}
.password-reset-dialog label{margin:0 0 6px}
.password-reset-dialog .dialog-actions{position:static;margin:8px 0 0;padding:12px 0 0;display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #c8d9cb;background:transparent}
.password-reset-dialog .dialog-actions button{min-height:44px;flex:1}
.password-reset-dialog .password-reset-status{margin:0;font-size:14px;color:#a43d31}
.password-reset-dialog .password-reset-status:empty{display:none}
@media(max-width:600px){.password-settings-page{padding:18px 12px}.password-settings-page>.password-settings{padding:22px 18px;border-radius:14px}.password-settings h1{font-size:23px}.password-reset-dialog{padding:20px}.password-control>.password-toggle{min-width:60px;padding:10px}}

/* Recovery branding stays within the existing green password form theme. */
.password-settings .recovery-brand{margin:0 0 8px;color:#366e57;font-size:14px;font-weight:600;letter-spacing:.04em}
.password-settings .recovery-hint{margin:0 0 20px;padding:10px 12px;background:#f0f7f3;border:1px solid #c6d9cc;border-radius:8px;color:#507163;font-size:13px;line-height:1.6}
.password-settings #link-message{font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.password-settings #link-message:empty{display:none}
.password-settings .recovery-footer{margin-top:24px;padding-top:16px;border-top:1px solid #d4e1d9;color:#507163;font-size:13px;line-height:1.6}
.password-settings-page{padding-top:calc(32px + env(safe-area-inset-top,0px));padding-right:calc(16px + env(safe-area-inset-right,0px));padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));padding-left:calc(16px + env(safe-area-inset-left,0px))}
@media(max-width:600px){.password-settings-page{padding-top:calc(18px + env(safe-area-inset-top,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));padding-left:calc(12px + env(safe-area-inset-left,0px))}}

.login-panel .signup-link{display:flex;flex-direction:column;gap:4px;margin:16px 0 4px;padding:12px 16px;min-height:48px;box-sizing:border-box;background:#e6f2ea;border:1px solid #82b5a5;border-radius:10px;color:#285b49;text-decoration:none}
.login-panel .signup-link strong{font-size:17px}.login-panel .signup-link span{font-size:13px;line-height:1.5}.login-panel .signup-link:hover{background:#d8ede1}.login-panel .signup-link:focus-visible{outline:3px solid #298369;outline-offset:2px}

.auth-captcha{margin:10px 0;padding:12px;border:1px solid #afc9c1;border-radius:10px;background:#f0f7f3;color:#244d40}.auth-captcha[hidden]{display:none!important}.auth-captcha-image{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.auth-captcha img{max-width:100%;height:auto;border-radius:6px}.auth-captcha button{min-height:44px;font-size:15px}.auth-captcha label{display:block;font-size:15px;margin:8px 0}.auth-captcha input{width:100%;max-width:100%;min-height:46px;box-sizing:border-box;padding:10px 12px;border:1px solid #afc9c1;border-radius:8px;background:#fff;color:#244d40;font:inherit;letter-spacing:.12em}.auth-captcha p{font-size:13px;line-height:1.6;margin:8px 0 0}
