.dashboard-grid-single {
    grid-template-columns: minmax(0, 1fr);
}

.dashboard-grid-single .panel-wide {
    grid-row: auto;
    min-height: 420px;
}

.account-dialog {
    width: min(1040px, calc(100% - 24px));
    max-height: calc(100vh - 24px);
    padding: 0;
    border: 0;
    border-radius: 26px;
    color: var(--app-text);
    background: transparent;
}

.account-dialog::backdrop {
    background: rgba(4, 8, 18, .76);
    backdrop-filter: blur(9px);
}

.account-shell {
    max-height: calc(100vh - 24px);
    overflow: auto;
    background: color-mix(in srgb, var(--app-bg) 90%, white 10%);
    border: 1px solid var(--app-panel-border);
    border-radius: 26px;
    box-shadow: var(--app-shadow);
}

.account-dialog-head {
    position: sticky;
    top: 0;
    z-index: 4;
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
    padding: 26px 28px 18px;
    background: color-mix(in srgb, var(--app-bg) 94%, transparent);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--app-panel-border);
}

.account-dialog-head .eyebrow {
    margin-bottom: 8px;
}

.account-dialog-head h2 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    letter-spacing: -.035em;
}

.account-dialog-head p:last-child {
    margin: 8px 0 0;
    color: var(--app-muted);
}

.account-tabs {
    position: sticky;
    top: 127px;
    z-index: 3;
    display: flex;
    gap: 8px;
    padding: 12px 28px;
    background: color-mix(in srgb, var(--app-bg) 94%, transparent);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--app-panel-border);
}

.account-tab {
    border: 1px solid var(--app-panel-border);
    background: transparent;
    color: var(--app-muted);
    border-radius: 999px;
    padding: 10px 15px;
    cursor: pointer;
}

.account-tab.active {
    color: #0d1323;
    background: linear-gradient(135deg, var(--app-primary), var(--app-secondary));
    border-color: transparent;
    font-weight: 800;
}

.account-pane {
    padding: 24px 28px 30px;
}

.account-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.account-card {
    padding: 22px;
    border: 1px solid var(--app-panel-border);
    background: var(--app-panel);
    border-radius: var(--app-radius-large);
}

.account-card-wide {
    grid-column: 1 / -1;
}

.account-card-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.account-card h3 {
    margin: 8px 0 0;
    font-size: 1.18rem;
}

.account-card-lead {
    margin: 8px 0 20px;
    color: var(--app-muted);
    line-height: 1.55;
}

.plan-badge {
    border: 1px solid var(--app-panel-border);
    border-radius: 999px;
    padding: 6px 10px;
    color: var(--app-primary);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .09em;
}

.form-grid {
    display: grid;
    gap: 15px;
}

.form-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-grid .full {
    grid-column: 1 / -1;
}

.form-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.protocol-preference-list {
    display: grid;
    gap: 8px;
    margin: 18px 0;
}

.protocol-preference-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid var(--app-panel-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--app-panel) 82%, transparent);
}

.protocol-enable,
.protocol-default {
    display: flex;
    gap: 10px;
    align-items: center;
    cursor: pointer;
}

.protocol-enable span {
    display: grid;
    gap: 3px;
}

.protocol-enable small,
.protocol-default {
    color: var(--app-muted);
}

.storage-choice {
    display: grid;
    gap: 8px;
}

.choice-card {
    display: flex !important;
    grid-template-columns: unset !important;
    align-items: flex-start;
    gap: 10px !important;
    padding: 13px;
    border: 1px solid var(--app-panel-border);
    border-radius: 14px;
    cursor: pointer;
}

.choice-card span {
    display: grid;
    gap: 4px;
}

.inline-check {
    display: flex !important;
    grid-template-columns: unset !important;
    align-items: center;
    gap: 8px !important;
}

.ai-connection-list {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.ai-connection-item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid var(--app-panel-border);
    border-radius: 14px;
}

.ai-connection-item > div {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.ai-connection-item small {
    color: var(--app-muted);
    overflow-wrap: anywhere;
}

.btn-small {
    padding: 7px 10px;
}

.account-empty,
.transient-ai-box {
    padding: 14px;
    border: 1px dashed var(--app-panel-border);
    border-radius: 14px;
    color: var(--app-muted);
}

.transient-ai-box {
    display: grid;
    gap: 4px;
    margin-top: 10px;
}

.transient-ai-box strong {
    color: var(--app-text);
}

@media (max-width: 760px) {
    .account-dialog {
        width: calc(100% - 10px);
        max-height: calc(100vh - 10px);
    }

    .account-shell {
        max-height: calc(100vh - 10px);
        border-radius: 18px;
    }

    .account-dialog-head {
        padding: 18px 16px 14px;
    }

    .account-tabs {
        top: 111px;
        padding: 10px 16px;
        overflow-x: auto;
    }

    .account-tab {
        white-space: nowrap;
    }

    .account-pane {
        padding: 16px;
    }

    .account-settings-grid,
    .form-grid.two {
        grid-template-columns: 1fr;
    }

    .account-card-wide,
    .form-grid .full {
        grid-column: auto;
    }

    .protocol-preference-row {
        grid-template-columns: 1fr;
    }
}


.ai-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.api-test-status {
    min-height: 1.4em;
    margin: 0;
    font-size: .91rem;
    line-height: 1.45;
}

.api-test-status.success,
.saved-test-result.success {
    color: var(--app-success);
}

.api-test-status.warning,
.saved-test-result.warning {
    color: #ffd37c;
}

.api-test-status.error,
.saved-test-result.error {
    color: var(--app-danger);
}

.ai-connection-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap;
}

.saved-test-result {
    display: block;
    margin-top: 4px;
}

.transient-ai-box {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
}

.transient-ai-box > div {
    display: grid;
    gap: 4px;
}

@media (max-width: 760px) {
    .ai-form-actions,
    .ai-connection-actions {
        width: 100%;
    }

    .ai-form-actions .btn,
    .ai-connection-actions .btn {
        flex: 1 1 auto;
    }

    .transient-ai-box {
        grid-template-columns: 1fr;
    }
}


.demographic-card {
    margin-top: 14px;
}

.demographic-consent {
    margin-top: 6px;
}

.privacy-note {
    margin-top: 4px;
    padding: 13px 14px;
    border: 1px solid color-mix(in srgb, var(--app-primary) 30%, var(--app-panel-border));
    border-radius: 14px;
    background: color-mix(in srgb, var(--app-primary) 7%, var(--app-panel));
}

.privacy-note strong {
    display: block;
    margin-bottom: 5px;
}

.privacy-note p {
    margin: 0;
    color: var(--app-muted);
    line-height: 1.5;
}

/* v0.10.12 - AI upload privacy */
.ai-upload-access-setting {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid rgba(123, 154, 202, .28);
    border-radius: 14px;
    background: rgba(255,255,255,.035);
}
.ai-upload-access-setting > span {
    display: grid;
    gap: 4px;
}
.ai-upload-access-setting small {
    opacity: .78;
    line-height: 1.45;
}

/* v0.10.13 - identity + thematic AI preferences */
.account-topic-block {
    display: grid;
    gap: 7px;
    min-width: 0;
}
.account-topic-block > label { min-width: 0; }
.account-readonly-field {
    opacity: .78;
}
.ai-preferences-topics {
    display: grid;
    gap: 12px;
    width: 100%;
}
.ai-pref-topic {
    display: grid;
    gap: 9px;
    width: 100%;
    padding: 13px 14px;
    border: 1px solid var(--app-panel-border);
    border-radius: 13px;
    background: color-mix(in srgb, var(--app-panel) 92%, transparent);
}
.ai-pref-topic > strong { font-size: .9rem; }
.ai-pref-topic .checkbox-card { width: 100%; box-sizing: border-box; }
.ai-pref-nested {
    display: grid;
    gap: 7px;
    margin-left: 28px;
    padding-left: 11px;
    border-left: 2px solid color-mix(in srgb, var(--app-primary) 26%, var(--app-panel-border));
}
.ai-pref-nested.is-disabled { opacity: .5; }
#accountUsernameHint { display: block; line-height: 1.4; }
@media (max-width: 680px) {
    .ai-pref-nested { margin-left: 8px; }
}

/* v0.10.16a - moderation as a real account tab */
.account-dialog.account-moderation-active{width:min(1480px,calc(100% - 24px))}
.account-moderation-pane{min-width:0}
.account-moderation-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.account-moderation-head h3{margin:.2rem 0 .35rem;font-size:1.45rem}
.account-moderation-head p:last-child{margin:0;color:var(--app-muted)}
.account-moderation-host{min-width:0}
.account-moderation-host .signal-social-detail{min-height:48vh}
@media(max-width:700px){.account-moderation-head{flex-direction:column}.account-moderation-head .btn{align-self:flex-start}}

/* v0.10.17 method experience + role profile */
.account-method-profiles{display:grid;gap:10px}.account-method-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,.55fr) minmax(320px,1fr);gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--app-panel-border);border-radius:14px;background:color-mix(in srgb,var(--app-panel) 91%,transparent)}.account-method-name{display:grid;gap:3px}.account-method-name small{color:var(--app-muted)}.account-method-roles{display:flex;gap:8px;flex-wrap:wrap}.account-method-roles label{display:flex;align-items:center;gap:5px;font-size:.9rem}.method-support-badge{font-size:.72rem;padding:3px 7px;border:1px solid var(--app-panel-border);border-radius:999px;color:var(--app-muted)}@media(max-width:900px){.account-method-row{grid-template-columns:1fr}.account-method-roles{gap:12px}}

/* v0.10.17 - account as page, not modal */
.account-page{position:fixed;inset:0;z-index:1750;width:100%;height:100dvh;max-height:none;padding:0;border:0;background:var(--app-bg);overflow:auto}.account-page.hidden{display:none!important}.account-page .account-shell{width:100%;max-width:none;min-height:100dvh;max-height:none;border-radius:0}.account-page::backdrop{display:none}body.account-page-open{overflow:hidden}


/* v0.10.17 admin management / staged deletion */
.admin-user-manage{grid-column:1/-1;margin-top:6px;border-top:1px solid var(--app-panel-border);padding-top:6px}.admin-user-manage>summary{cursor:pointer;font-weight:800;list-style:none;width:max-content}.admin-user-manage>summary::-webkit-details-marker{display:none}.admin-user-manage>summary::before{content:'▸ ';}.admin-user-manage[open]>summary::before{content:'▾ ';}.admin-special-permissions{display:grid;gap:8px}.admin-special-master{font-weight:700}.admin-target-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px}.account-danger-card{border-color:color-mix(in srgb,#c33 45%,var(--app-panel-border))}.account-danger-actions{align-items:center}

/* v0.10.17 - constrained identity labels */
.admin-user-name{min-width:0}.admin-user-name strong,.admin-user-name small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* ================================================================
   SIGNALREITER v0.10.18c - contacts & privacy account pane
   ================================================================ */
.account-tabs{overflow-x:auto;scrollbar-width:thin}
.account-tab{flex:0 0 auto;white-space:nowrap}
.account-email-friend-choice{align-self:end;min-height:100%;box-sizing:border-box}
.account-contact-code{margin-top:8px;padding:16px;border:1px solid var(--app-panel-border);border-radius:16px;background:color-mix(in srgb,var(--app-panel) 88%,transparent)}
.account-contact-code.hidden{display:none!important}
.account-contact-code h4{margin:0 0 8px;font-size:1rem}
.account-contact-code p{margin:0 0 12px;color:var(--app-muted);line-height:1.5}
.account-contact-code-row{display:grid;grid-template-columns:minmax(90px,.45fr) minmax(150px,.55fr);gap:8px;max-width:430px}
.account-contact-code-row input,.account-contact-code-row select{width:100%;box-sizing:border-box}
.account-contact-code-current{display:grid;gap:3px;margin-top:12px;padding:11px 12px;border-radius:12px;background:color-mix(in srgb,var(--app-panel) 75%,transparent);overflow-wrap:anywhere}
.account-contact-code-current small{color:var(--app-muted)}
@media(max-width:760px){.account-contact-code-row{grid-template-columns:minmax(80px,.42fr) minmax(120px,.58fr);max-width:none}}

/* v0.10.18f - contact code management moved to Friends */
.account-email-friend-choice{align-self:end}


/* ================================================================
   SIGNALREITER v0.11.39 - account settings as a full page
   The account surface keeps the existing forms and APIs; only the
   presentation/navigation changes from floating modal to full page.
   ================================================================ */
.account-dialog.account-page {
    position: fixed;
    inset: 0;
    z-index: 1750;
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--app-bg);
    overflow: hidden;
}
.account-dialog.account-page::backdrop {
    background: transparent;
    backdrop-filter: none;
}
.account-dialog.account-page .account-shell {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    height: 100dvh;
    max-height: none;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: auto;
    overscroll-behavior: contain;
}
.account-dialog.account-page .account-dialog-head {
    border-radius: 0;
}
body.account-page-open {
    overflow: hidden;
}

/* Moderation AI is a subpage of account settings, not another dialog. */
.account-subpage.hidden { display: none !important; }
.account-dialog.account-subpage-open .account-dialog-head,
.account-dialog.account-subpage-open .account-tabs,
.account-dialog.account-subpage-open [data-account-pane] {
    display: none !important;
}
.account-moderation-ai-subpage {
    min-height: 100dvh;
    width: 100%;
    background: var(--app-bg);
}
.account-moderation-ai-subpage.signal-mod-ai-direct-embedded .signal-mod-ai-direct-shell {
    width: 100%;
    min-height: 100dvh;
    background: var(--app-bg);
}
.account-moderation-ai-subpage .signal-mod-ai-direct-head {
    padding: 24px 28px 18px;
    background: color-mix(in srgb, var(--app-bg) 96%, transparent);
}
.account-moderation-ai-subpage .signal-mod-ai-direct-body {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 28px 0 48px;
}
.account-subpage-loading,
.account-subpage-error {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 34px 0;
    color: var(--app-muted);
}
.account-subpage-error { color: var(--app-danger); }
@media (max-width: 760px) {
    .account-dialog.account-page {
        width: 100vw;
        height: 100dvh;
        max-height: none;
    }
    .account-dialog.account-page .account-shell {
        height: 100dvh;
        max-height: none;
        border-radius: 0;
    }
    .account-moderation-ai-subpage .signal-mod-ai-direct-head {
        padding: 18px 16px 14px;
    }
    .account-moderation-ai-subpage .signal-mod-ai-direct-body,
    .account-subpage-loading,
    .account-subpage-error {
        width: calc(100% - 32px);
    }
}

/* ================================================================
   SIGNALREITER v0.11.40 - account is a real workspace page
   No dialog overlay: the existing account shell is mounted as a normal
   workspace panel between the global header and footer.
   ================================================================ */
.account-page-view {
    width: 100%;
    min-width: 0;
}
.account-page-view.hidden {
    display: none !important;
}
.account-page-view .account-shell {
    width: 100%;
    max-width: none;
    max-height: none;
    min-height: 0;
    overflow: visible;
    margin: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.account-page-view .account-dialog-head {
    position: relative;
    top: auto;
    z-index: 1;
    padding: 0 0 20px;
    background: transparent;
    backdrop-filter: none;
    border-bottom: 1px solid var(--app-panel-border);
}
.account-page-view .account-tabs {
    position: relative;
    top: auto;
    z-index: 1;
    padding: 12px 0;
    background: transparent;
    backdrop-filter: none;
}
.account-page-view .account-pane {
    padding: 22px 0 34px;
}
.account-page-back-button {
    flex: 0 0 auto;
    align-self: flex-start;
    min-width: auto;
    white-space: nowrap;
}
body.account-page-open {
    overflow: auto !important;
}

/* Moderation AI is an account subpage and does not depend on messages/social UI. */
.account-page-view.account-subpage-open .account-dialog-head,
.account-page-view.account-subpage-open .account-tabs,
.account-page-view.account-subpage-open [data-account-pane] {
    display: none !important;
}
.account-moderation-ai-subpage {
    width: 100%;
    min-height: 0;
    background: transparent;
}
.account-mod-ai-head {
    display: grid;
    gap: 18px;
    padding: 0 0 20px;
    border-bottom: 1px solid var(--app-panel-border);
}
.account-mod-ai-head .eyebrow {
    margin: 0 0 7px;
}
.account-mod-ai-head h2 {
    margin: 0;
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    letter-spacing: -.025em;
}
.account-mod-ai-head p:last-child {
    margin: 8px 0 0;
    color: var(--app-muted);
    line-height: 1.5;
}
.account-mod-ai-card {
    margin-top: 22px;
}
.account-mod-ai-card .form-grid > label:not(.checkbox-card) {
    display: grid;
    gap: 7px;
}
.account-mod-ai-card small {
    color: var(--app-muted);
    line-height: 1.4;
}
.account-mod-ai-model-list {
    margin-top: 7px;
}
.account-mod-ai-card .form-status {
    flex: 1 1 260px;
}
@media (max-width: 760px) {
    .account-page-view .account-dialog-head {
        gap: 14px;
        padding-bottom: 16px;
    }
    .account-page-view .account-tabs {
        padding: 10px 0;
    }
    .account-page-view .account-pane {
        padding: 18px 0 28px;
    }
    .account-page-back-button {
        font-size: .9rem;
    }
}


/* ================================================================
   SIGNALREITER v0.11.41 - hard guarantee: account is NOT a popup
   Only account presentation is affected. Messages/workspace/protocol
   styles are intentionally untouched.
   ================================================================ */
#accountDialog {
    display: none !important;
}
.account-page-view {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    display: block;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.account-page-view.hidden { display: none !important; }
.account-page-view .account-shell {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
body.account-page-open { overflow: auto !important; }

/* ================================================================
   SIGNALREITER v0.11.43 - account is a real page in document flow
   Scope: account only. No workspace/message/protocol/autosave rules.
   ================================================================ */
#accountPageView.account-page-view {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    display: block;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
#accountPageView.account-page-view.hidden { display: none !important; }
#accountPageView.account-page-view .account-shell {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
#accountPageView .account-dialog-head,
#accountPageView .account-tabs {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    backdrop-filter: none !important;
}
#accountPageView .account-dialog-head {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
#accountPageView .account-tabs,
#accountPageView .account-pane {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
#accountPageView #accountClose {
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    border-radius: 10px !important;
    font-size: inherit !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
body.account-inline-open,
body.account-inline-open.account-page-open { overflow: auto !important; }


/* SIGNALREITER v0.11.44 - account settings as a real in-flow page */
#accountDialog.account-inline-page,
#accountPageView.account-inline-page {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    display: block;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    box-shadow: none !important;
}
#accountDialog.account-inline-page.hidden,
#accountPageView.account-inline-page.hidden {
    display: none !important;
}
#accountDialog.account-inline-page::backdrop,
#accountPageView.account-inline-page::backdrop {
    display: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
}
#accountDialog.account-inline-page .account-shell,
#accountPageView.account-inline-page .account-shell {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border-radius: var(--app-radius-large) !important;
    box-sizing: border-box;
}
#accountDialog.account-inline-page .account-dialog-head,
#accountPageView.account-inline-page .account-dialog-head,
#accountDialog.account-inline-page .account-tabs,
#accountPageView.account-inline-page .account-tabs {
    position: static !important;
    top: auto !important;
}
#accountDialog.account-inline-page #accountClose,
#accountPageView.account-inline-page #accountClose {
    position: static !important;
    width: auto !important;
    height: auto !important;
    border-radius: 999px !important;
    padding: 9px 14px !important;
    line-height: 1.2 !important;
}
body.account-inline-open,
body.account-inline-open.account-page-open {
    overflow: auto !important;
}
