#account-open { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: .64rem 1rem .64rem .86rem; border: 1px solid #3d7b5a; border-radius: 10px; background: linear-gradient(180deg, #f9fffb 0%, #eaf7ef 100%); color: #0d5a35; box-shadow: inset 0 1px 0 #ffffffcc, 0 6px 18px #0a2f1c16; font: inherit; font-size: .9rem; font-weight: 780; letter-spacing: .01em; cursor: pointer; white-space: nowrap; transition: transform .16s ease, background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease; }
#account-open::before { content: ''; width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; background-color: #175c39; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 14px 14px; box-shadow: inset 0 0 0 1px #ffffff1f; transition: background-color .16s ease, transform .16s ease; }
#account-open::after { content: '›'; margin-left: 1px; color: currentColor; font-size: 1.1rem; font-weight: 800; line-height: 1; opacity: .62; transform: translateY(-1px); transition: transform .16s ease, opacity .16s ease; }
#account-open:hover { background: linear-gradient(180deg, #1d6b43 0%, #145331 100%); border-color: #55a979; color: #fff; box-shadow: inset 0 1px 0 #ffffff1f, 0 8px 22px #061d122e; transform: translateY(-1px); }
#account-open:hover::before { background-color: #0b3d24; transform: scale(1.03); }
#account-open:hover::after { opacity: .9; transform: translate(2px, -1px); }
#account-open:active { transform: translateY(0); box-shadow: inset 0 2px 5px #071f142e, 0 3px 10px #061d121f; }
.account-dialog { width: min(470px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: 24px; border: 1px solid #cbd9cf; border-radius: 18px; color: #17261e; background: #fff; box-shadow: 0 24px 60px #10251b33; }
.account-dialog:has(#account-signed-in:not([hidden])) { width: min(860px, calc(100% - 32px)); }
.account-dialog::backdrop { background: #10251bb3; backdrop-filter: blur(2px); }
.account-dialog .account-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid #e3ebe6; }
.account-dialog .account-heading button { width: 38px; height: 38px; padding: 0; border-radius: 50%; font-size: 1.35rem; line-height: 1; }
.account-dialog h2, .account-dialog h3, .account-dialog h4 { margin: 0; }
.account-dialog h3 { font-size: 1.45rem; }
.account-dialog h4 { font-size: 1.05rem; }
.account-dialog form { display: grid; gap: 14px; margin: 18px 0; }
.account-dialog [hidden] { display: none !important; }
.account-dialog .account-auth-view { display: grid; gap: 14px; }
.account-dialog .account-auth-intro { display: grid; gap: 6px; margin-bottom: 2px; }
.account-dialog .account-auth-intro p { margin: 0; color: #5a6b61; }
.account-dialog .account-eyebrow { color: #187447 !important; font-size: .75rem; font-weight: 800; letter-spacing: .11em; }
.account-dialog label { display: grid; gap: 6px; font-weight: 700; }
.account-dialog input { width: 100%; min-width: 0; box-sizing: border-box; padding: 11px 12px; border: 1px solid #a9bfb0; border-radius: 8px; background: #fff; color: #17261e; font: inherit; transition: border-color .15s ease, box-shadow .15s ease; }
.account-dialog input:focus { border-color: #187447; box-shadow: 0 0 0 3px #1874471f; outline: none; }
.account-dialog button { padding: 10px 14px; border: 1px solid #347354; border-radius: 8px; background: #edf5ef; color: #175c39; font: inherit; font-weight: 650; cursor: pointer; }
.account-dialog button:disabled { opacity: .55; cursor: not-allowed; }
.account-dialog .account-primary-action { width: 100%; margin-top: 2px; background: #175c39; color: #fff; border-color: #175c39; }
.account-dialog .account-primary-action:not(:disabled):hover { background: #11482d; border-color: #11482d; }
.account-dialog .account-secondary-action { width: 100%; background: #fff; }
.account-dialog .account-back-action { justify-self: start; padding: 0; border: 0; background: transparent; color: #175c39; font-weight: 700; }
.account-dialog .account-forgot-link { justify-self: end; margin-top: -7px; padding: 0; border: 0; background: transparent; color: #175c39; font-size: .87rem; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.account-dialog .account-switch-copy { margin: 6px 0 -6px; text-align: center; color: #5a6b61; font-size: .9rem; }
.account-dialog :focus-visible, #account-open:focus-visible { outline: 3px solid #187447; outline-offset: 3px; }
.account-dialog p { line-height: 1.5; overflow-wrap: anywhere; }
.account-dialog #account-status { margin: 14px 0 0; padding: 10px 12px; border-radius: 8px; background: #f4f8f5; color: #425348; font-size: .9rem; }
.account-dialog .account-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.account-dialog .account-note { margin: 0; font-size: .85rem; color: #64746a; }
.account-dialog .account-password-strength { display: grid; gap: 7px; margin-top: -4px; }
.account-dialog .account-strength-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .82rem; color: #5e7065; }
.account-dialog .account-strength-heading strong { color: #6b5b3f; font-size: .82rem; }
.account-dialog .account-strength-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e7ede9; }
.account-dialog .account-strength-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: #a96c38; transition: width .2s ease, background-color .2s ease; }
.account-dialog .account-password-strength small { color: #68786e; line-height: 1.35; }
.account-dialog .account-password-strength[data-level="1"] .account-strength-track span { width: 20%; }
.account-dialog .account-password-strength[data-level="2"] .account-strength-track span { width: 40%; }
.account-dialog .account-password-strength[data-level="3"] .account-strength-track span { width: 60%; background: #ad8a32; }
.account-dialog .account-password-strength[data-level="4"] .account-strength-track span { width: 80%; background: #4d8b5e; }
.account-dialog .account-password-strength[data-level="5"] .account-strength-track span { width: 100%; background: #17623b; }
.account-dialog .account-password-strength[data-level="3"] .account-strength-heading strong { color: #8a6b19; }
.account-dialog .account-password-strength[data-level="4"] .account-strength-heading strong,
.account-dialog .account-password-strength[data-level="5"] .account-strength-heading strong { color: #17623b; }
.account-dialog .account-requirements { padding: 12px 14px; border: 1px solid #d8e3db; border-radius: 10px; background: #f8fbf9; }
.account-dialog .account-requirements > p { margin: 0 0 8px; font-size: .85rem; font-weight: 800; color: #34473c; }
.account-dialog .account-requirements ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.account-dialog .account-requirements li { display: flex; align-items: center; gap: 8px; color: #755b35; font-size: .86rem; }
.account-dialog .account-requirements li span { display: inline-grid; place-items: center; width: 18px; height: 18px; flex: 0 0 18px; border-radius: 50%; background: #f1e8dc; font-weight: 800; }
.account-dialog .account-requirements li[data-valid="true"] { color: #17623b; }
.account-dialog .account-requirements li[data-valid="true"] span { background: #dcefe3; color: #17623b; }
.account-confirmation-email { padding: 12px 14px; border: 1px solid #d8e3db; border-radius: 9px; background: #f8fbf9; font-weight: 750; overflow-wrap: anywhere; }
#account-signed-in { margin-top: 18px; }
.account-session-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.account-session-heading > div { display: grid; gap: 4px; }
.account-current-email { margin: 0; color: #52675b; font-weight: 750; text-align: right; }
.account-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.account-settings-card { min-width: 0; padding: 16px; border: 1px solid #dce6df; border-radius: 14px; background: #fbfdfb; }
.account-settings-card form { margin: 14px 0 0; }
.account-section-heading { display: flex; align-items: flex-start; gap: 11px; }
.account-section-heading > span { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; background: #e3f1e8; color: #17623b; font-size: .77rem; font-weight: 850; }
.account-section-heading > div { display: grid; gap: 3px; }
.account-section-heading p { margin: 0; color: #6b7b71; font-size: .84rem; }
.account-saved-card { grid-column: 1 / -1; }
.account-saved-list { display: grid; gap: 9px; margin-top: 14px; }
.account-saved-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 12px; border: 1px solid #e0e9e3; border-radius: 10px; background: #fff; }
.account-saved-item > div:first-child { display: grid; gap: 2px; min-width: 0; }
.account-saved-item span { color: #718078; font-size: .77rem; text-transform: uppercase; letter-spacing: .04em; }
.account-saved-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-saved-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.account-saved-actions a { padding: 7px 9px; border-radius: 7px; color: #175c39; background: #edf5ef; font-size: .82rem; font-weight: 750; text-decoration: none; }
.account-saved-actions button { padding: 7px 9px; background: #fff; font-size: .82rem; }
.account-saved-empty { padding: 18px; border: 1px dashed #cbd9cf; border-radius: 10px; text-align: center; color: #53665a; }
.account-saved-empty p { margin: 4px 0 0; font-size: .86rem; }
#account-sync-status { min-height: 1.4em; color: #607168; font-size: .86rem; }
.account-footer-actions { justify-content: flex-end; padding-top: 8px; border-top: 1px solid #e3ebe6; }
.saved-account-prompt { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 18px 0 22px; padding: 22px 24px; border: 1px solid #b8d4c2; border-radius: 16px; background: linear-gradient(135deg, #eef8f1, #f8fbf9); box-shadow: 0 10px 28px #173f2920; }
.saved-account-prompt[hidden] { display: none !important; }
.saved-account-prompt-copy { display: flex; align-items: center; gap: 16px; min-width: 0; }
.saved-account-prompt-copy > div { display: grid; gap: 4px; }
.saved-account-prompt-copy p { margin: 0; color: #187447; font-size: .74rem; font-weight: 850; letter-spacing: .11em; }
.saved-account-prompt-copy h2 { margin: 0; color: #173d2a; font-size: 1.25rem; }
.saved-account-prompt-copy span { color: #587064; line-height: 1.45; }
.saved-account-prompt-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: 14px; background: #175c39; color: #fff; font-size: 1.45rem; }
.saved-account-prompt-action { flex: 0 0 auto; min-width: 190px; padding: 12px 16px; border: 1px solid #175c39; border-radius: 10px; background: #175c39; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.saved-account-prompt-action:hover { background: #11482d; border-color: #11482d; }
.saved-account-prompt-action:focus-visible { outline: 3px solid #187447; outline-offset: 3px; }
.guest-save-notice { position: fixed; right: 24px; bottom: 24px; z-index: 80; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 16px; width: min(430px, calc(100vw - 32px)); padding: 18px; border: 1px solid #b8d4c2; border-radius: 18px; background: #fff; color: #17261e; box-shadow: 0 20px 55px #10251b38; transform: translateY(18px) scale(.98); opacity: 0; pointer-events: none; transition: transform .22s ease, opacity .22s ease; }
.guest-save-notice.show { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }
.guest-save-notice-heart { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: #175c39; color: #fff; font-size: 1.4rem; box-shadow: inset 0 0 0 1px #ffffff18; }
.guest-save-notice-copy { display: grid; gap: 3px; padding-right: 22px; }
.guest-save-notice-copy > span { color: #187447; font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.guest-save-notice-copy strong { font-size: 1.02rem; line-height: 1.25; }
.guest-save-notice-copy p { margin: 2px 0 0; color: #5e7065; font-size: .86rem; line-height: 1.45; }
.guest-save-notice-action { grid-column: 1 / -1; width: 100%; padding: 11px 14px; border: 1px solid #175c39; border-radius: 10px; background: #175c39; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.guest-save-notice-action:hover { background: #11482d; border-color: #11482d; }
.guest-save-notice-close { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #66776d; font-size: 1.25rem; cursor: pointer; }
.guest-save-notice-close:hover { background: #eef5f0; color: #173d2a; }
.guest-save-notice-action:focus-visible, .guest-save-notice-close:focus-visible { outline: 3px solid #187447; outline-offset: 3px; }
@media (max-width: 700px) {
  .topbar { flex-wrap: wrap; }
  #account-open { margin-left: auto; min-height: 42px; padding: .58rem .8rem; gap: 7px; }
  #account-open::before { width: 22px; height: 22px; flex-basis: 22px; background-size: 13px 13px; }
  #account-open::after { font-size: 1rem; }
  .account-dialog, .account-dialog:has(#account-signed-in:not([hidden])) { width: calc(100% - 20px); max-height: calc(100dvh - 20px); padding: 18px; border-radius: 14px; }
  .account-dialog .account-heading { padding-bottom: 14px; }
  .account-dialog h3 { font-size: 1.3rem; }
  .account-dialog .account-actions { display: grid; grid-template-columns: 1fr; }
  .account-dialog .account-strength-heading { align-items: flex-start; flex-direction: column; gap: 2px; }
  .account-session-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .account-current-email { text-align: left; }
  .account-settings-grid { grid-template-columns: 1fr; }
  .account-saved-card { grid-column: auto; }
  .account-saved-item { align-items: flex-start; flex-direction: column; }
  .account-saved-item strong { white-space: normal; }
  .account-saved-actions { width: 100%; }
  .account-saved-actions a, .account-saved-actions button { flex: 1 1 0; text-align: center; }
  .saved-account-prompt { align-items: stretch; flex-direction: column; gap: 16px; padding: 18px; }
  .saved-account-prompt-copy { align-items: flex-start; }
  .saved-account-prompt-action { width: 100%; min-width: 0; }
  .guest-save-notice { right: 12px; bottom: 12px; width: calc(100vw - 24px); padding: 16px; border-radius: 16px; }
  .guest-save-notice-copy { padding-right: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  #account-open, #account-open::before, #account-open::after { transition: none; }
  #account-open:hover { transform: none; }
}