/* Shared account controls and contact form; each component owns its layout. */
.settings-dialog,.contact-dialog { box-sizing:border-box; --settings-line:#253c50; --settings-muted:#a9bdcf; color-scheme:dark; color:#edf5fc; background:#0b1724; border:1px solid #345066; border-radius:22px; padding:0; box-shadow:0 32px 140px #000b; font:1rem/1.5 Inter,"Segoe UI",sans-serif; }
.settings-dialog { width:min(1000px,calc(100vw - 64px)); max-width:none; height:min(750px,calc(100dvh - 64px)); max-height:none; overflow:hidden; }
.settings-dialog[open] { display:flex;flex-direction:column; }
.settings-dialog::backdrop,.contact-dialog::backdrop { background:#020811c9; backdrop-filter:blur(6px); }
.settings-dialog *, .contact-dialog * { box-sizing:border-box; }
.settings-dialog button,.contact-dialog button { font:inherit; cursor:pointer; }
.settings-dialog button:disabled,.contact-dialog button:disabled { opacity:.55; cursor:default; }
.settings-dialog [hidden],.contact-dialog [hidden] { display:none!important; }
.settings-dialog :focus-visible,.contact-dialog :focus-visible { outline:2px solid #8fe1f5; outline-offset:3px; }
.settings-heading { display:flex; flex-shrink:0; align-items:flex-start; justify-content:space-between; gap:18px; padding:26px 32px; border-bottom:1px solid var(--settings-line); }
.settings-heading h2 { margin:3px 0 0; font-size:1.625rem; line-height:1.3; letter-spacing:-.025em; color:#f1f7fc; }
.settings-eyebrow { color:#92bfd0; font-size:.75rem; font-weight:650; letter-spacing:.15em; margin:0; }
.settings-close { display:grid;place-items:center;width:44px; height:44px; flex-shrink:0; border:1px solid var(--settings-line); background:transparent; color:#bed0de; border-radius:12px; font-size:1.6rem!important; }
.settings-close > svg {width:20px;height:20px;flex:none}
.settings-close:hover { background:#14283a; }
.settings-frame { display:grid; grid-template-columns:224px minmax(0,1fr); flex:1;min-height:0; }
.settings-navigation { display:flex; flex-direction:column; padding:24px 16px; gap:5px; min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin; border-right:1px solid var(--settings-line); background:#08131f; }
.settings-tab { flex-shrink:0;display:flex; align-items:center; gap:12px; text-align:left; min-height:48px; padding:11px 15px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--settings-muted); font-size:.875rem!important; }
.settings-tab svg { width:20px;height:20px;flex-shrink:0; }
.settings-tab-short { display:none; }
.settings-tab[aria-selected=true] { color:#c6f2ff; background:#122c3e; border-color:#23495d; }
.settings-tab:hover { color:#e8f5fc; background:#102333; }
.settings-content { min-height:0;margin:0 6px 8px;padding:30px 30px 22px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; min-width:0; }
.settings-content h3 { font-size:1.25rem; letter-spacing:-.02em; margin:0 0 8px; }
.settings-content p { margin:0 0 18px; }
.settings-lead,.settings-note,.contact-meta { color:var(--settings-muted); }
.settings-content .settings-lead { margin-bottom:26px; }
.settings-identity { display:flex; align-items:center; gap:18px; padding:8px 0 28px; }
.settings-avatar { width:64px;height:64px;display:grid;place-items:center;flex-shrink:0;border:1px solid #3d7287;border-radius:19px;background:linear-gradient(145deg,#244d64,#102535);font-size:1.5rem;color:#caf2ff;font-weight:650; }
.settings-identity>div { min-width:0; }
.settings-identity strong { display:block;overflow-wrap:anywhere;font-weight:600; }
.settings-plan { display:inline-flex;align-items:center;gap:6px;padding:4px 9px;margin-top:8px;border:1px solid #315568;border-radius:6px;letter-spacing:.08em;color:#bbebff;font-size:.75rem;background:#152e40; }
.settings-rows { margin:0 0 28px; }
.settings-row { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-top:1px solid var(--settings-line);padding:17px 0; }
.settings-row dt { color:var(--settings-muted);font-size:.875rem; }
.settings-row dd { margin:0;text-align:right;overflow-wrap:anywhere;min-width:0; }
.settings-divider { border:0;border-top:1px solid var(--settings-line);margin:28px 0; }
.settings-field { display:grid;gap:8px;margin-bottom:18px;min-width:0; }
.settings-field label { font-size:.875rem;font-weight:550; }
.settings-field input,.settings-field select,.settings-field textarea { width:100%;min-width:0;min-height:46px;padding:11px 13px;border:1px solid #324b60;border-radius:9px;background:#071320;color:#f0f6fc;font:inherit;font-size:1rem;line-height:1.5; }
.settings-field textarea { resize:vertical;line-height:1.6; }
.settings-password-wrap { display:flex;gap:8px; }
.settings-password-wrap input { flex:1; }
.settings-password-wrap button { background:transparent;border:1px solid #324b60;border-radius:9px;color:#c1d4e3;font-size:.875rem;padding:0 12px;min-width:66px; }
.settings-button { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 17px;border:1px solid #355166;border-radius:9px;color:#d7e7f1;background:#102334;font:600 .875rem/1.5 Inter,"Segoe UI",sans-serif!important;text-decoration:none; }
.settings-button:hover { background:#1a354a; }
.settings-button--primary { color:#06202d;background:#9bdeef;border-color:#9bdeef; }
.settings-button--primary:hover { background:#b7effa; }
.settings-button--danger { color:#ffc2c7;border-color:#794651;background:#301c27; }
.settings-note { font-size:.875rem;line-height:1.6; }
.settings-note a,.settings-heading a,.contact-body>a { color:#bceaff;text-decoration:underline;text-underline-offset:3px; }
.settings-status { font-size:.875rem;white-space:pre-line;color:#aceddc; }
.settings-status:empty { display:none; }
.settings-status.is-error { color:#ffb9bd; }
.settings-actions { display:flex;flex-wrap:wrap;gap:10px; }
.settings-links { display:flex;flex-wrap:wrap;gap:14px; }
.settings-danger { border:0;border-top:1px solid #63404a;border-radius:0;background:transparent;margin-top:30px;padding:22px 0 0; }
.settings-danger summary { color:#ffc1c6;cursor:pointer;min-height:44px;font-size:.875rem;font-weight:600; }
.settings-check { display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:.875rem; }
.settings-check input { width:18px;height:18px;flex-shrink:0;accent-color:#9bdeef; }
.settings-sidebar-toggle { min-height:44px;align-items:center;cursor:pointer; }
.settings-sidebar-toggle input { appearance:none;position:relative;width:44px;height:26px;margin:0;border:1px solid #637d92;border-radius:20px;background:#132536;cursor:pointer; }
.settings-sidebar-toggle input::before { content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#d5e4ee; }
.settings-sidebar-toggle input:checked { background:#9bdeef;border-color:#9bdeef; }
.settings-sidebar-toggle input:checked::before { transform:translateX(18px);background:#06202d; }
.settings-sidebar-toggle input:disabled { opacity:.55;cursor:wait; }
@media (forced-colors:active) { .settings-sidebar-toggle input { appearance:auto; } .settings-sidebar-toggle input::before { display:none; } }
.settings-discard,.discard-note { flex-shrink:0;padding:16px 24px;background:#342d1f;border-bottom:1px solid #71603d;font-size:.875rem; }
.settings-discard button { margin-right:8px; }
.contact-dialog { width:min(640px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;overflow:hidden; }
.contact-dialog[open] { display:flex;flex-direction:column; }
.contact-body { margin:0 6px 8px;padding:26px 26px 18px;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#36536d #0b1724; }
.contact-form { position:relative; }
.contact-trap { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden; }
.contact-meta { display:flex;justify-content:space-between;gap:12px;font-size:.75rem; }
#contact-counter { white-space:nowrap; }
body:has(.contact-dialog[open]),body:has(.settings-dialog[open]) { overflow:hidden; }
.contact-nav { border:0;background:transparent;font-family:inherit;cursor:pointer; }
.contact-footer { padding:0;border:0;background:transparent;text-align:left;color:var(--text-muted,#a9bdcf);font:inherit;font-size:.875rem;cursor:pointer; }
.contact-footer:hover { color:var(--text-primary,#edf5fc); }
@media (max-width:700px) {
  .settings-dialog { width:100%;height:100dvh;border:0;border-radius:0;margin:0; }
  .settings-heading { padding:20px; }
  .settings-heading h2 { font-size:1.4rem; }
  .settings-frame { display:flex;flex-direction:column; }
  .settings-navigation { display:grid;grid-template-columns:repeat(6,minmax(max-content,1fr));overflow-x:auto;flex-shrink:0;padding:10px 6px;border-right:0;border-bottom:1px solid var(--settings-line);gap:2px; }
  .settings-tab { flex-direction:column;justify-content:center;gap:5px;padding:9px 3px;min-width:0;min-height:66px;font-size:.8125rem!important;text-align:center;overflow-wrap:anywhere; }
  .settings-tab-label { display:none; }
  .settings-tab-short { display:inline;white-space:nowrap; }
  .settings-content { padding:24px 14px 16px;flex:1; }
  .settings-identity { gap:14px; }
  .settings-identity strong { font-size:.9375rem; }
  .settings-row { flex-wrap:wrap;gap:8px; }
  .settings-row dd { text-align:left; }
  .settings-actions .settings-button { flex:1; }
  .contact-dialog { width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:16px; }
  .contact-body { padding:22px 14px 14px; }
  .contact-meta { flex-direction:column;gap:4px; }
}
@media (prefers-reduced-motion:reduce) { .settings-dialog *,.contact-dialog * { scroll-behavior:auto;transition:none; } }
