/* ---------- My profile (every user type on the new layout) ---------- */

/* A taller hero that the cards overlap */
.ui-page:has(.ui-account-layout) .ui-hero {
    padding-bottom: 84px;
}

.ui-page:has(.ui-account-layout) > .ui-page__body {
    margin-top: -72px;
}

.ui-account-layout {
    display: grid;
    grid-template-columns: 316px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.ui-account-sections {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

/* Summary card */
.ui-account-summary {
    position: sticky;
    top: 76px;
    overflow: hidden;
    padding: 0 0 10px;
}

.ui-account-summary > .ui-skeleton {
    margin: 24px;
}

.ui-account-summary__person {
    padding: 22px 20px 18px;
    border-bottom: 1px solid var(--ui-border-subtle);
    background: linear-gradient(180deg, var(--ui-primary-soft) 0%, var(--ui-surface) 70%);
    text-align: center;
}

.ui-account-summary__photo {
    position: relative;
    display: inline-block;
}

.ui-account-summary__photo .ui-avatar {
    width: 104px;
    height: 104px;
    border: 4px solid var(--ui-surface);
    box-shadow: 0 8px 24px rgba(47, 107, 240, 0.25);
    font-size: 32px;
}

.ui-account-summary__online {
    position: absolute;
    left: 9px;
    bottom: 9px;
    width: 14px;
    height: 14px;
    border: 3px solid var(--ui-surface);
    border-radius: 50%;
    background: #4caf27;
}

.ui-account-summary__upload {
    position: absolute;
    right: -2px;
    bottom: 6px;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid var(--ui-border);
    border-radius: 50%;
    background: var(--ui-surface);
    color: var(--ui-primary);
    box-shadow: var(--ui-shadow);
    cursor: pointer;
}

.ui-account-summary__upload:hover {
    background: var(--ui-primary-soft);
}

.ui-account-summary__upload:focus-visible {
    outline: none;
    box-shadow: var(--ui-focus);
}

.ui-account-summary__name {
    margin: 12px 0 2px;
    color: var(--ui-text);
    font-size: 21px;
    font-weight: 600;
}

.ui-account-summary__role {
    margin: 0;
    color: var(--ui-text-muted);
    font-size: 13.5px;
}

.ui-account-summary__facts {
    margin: 0;
    padding: 14px 22px;
    border-bottom: 1px solid var(--ui-border-subtle);
    list-style: none;
}

.ui-account-summary__facts li {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 4px 0;
    color: var(--ui-text);
    font-size: 14px;
}

.ui-account-summary__facts li .ui-icon {
    flex: none;
    color: var(--ui-text-faint);
}

.ui-account-summary__facts li span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ui-account-summary__links {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 10px 0;
}

.ui-account-summary__link {
    display: flex;
    gap: 10px;
    align-items: center;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-radius: var(--ui-radius-sm);
    background: none;
    color: var(--ui-text);
    font-family: var(--ui-font);
    font-size: 14.5px;
    text-align: left;
    cursor: pointer;
}

.ui-account-summary__link:hover {
    background: var(--ui-bg-subtle);
}

.ui-account-summary__link:focus-visible {
    outline: none;
    box-shadow: var(--ui-focus);
}

.ui-account-summary__link.is-active {
    background: var(--ui-primary-soft);
    color: var(--ui-primary);
}

.ui-account-summary__label {
    flex: 1;
}

.ui-account-summary__meta {
    color: var(--ui-text-faint);
    font-size: 12.5px;
}

/* Section cards */
.ui-account-section {
    scroll-margin-top: 80px;
    min-width: 0;
}

.ui-account-section > .ui-skeleton {
    margin: 24px;
}

.ui-account-section__header {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 18px 22px;
    border-bottom: 1px solid var(--ui-border-subtle);
}

.ui-account-section__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    color: #ffffff;
}

.ui-account-section__icon--violet { background: linear-gradient(150deg, #9d7bfa 0%, #6d4be8 100%); }
.ui-account-section__icon--sky { background: linear-gradient(150deg, #3cc4f5 0%, #2f86ee 100%); }
.ui-account-section__icon--amber { background: linear-gradient(150deg, #ffd65a 0%, #f5a524 100%); }
.ui-account-section__icon--green { background: linear-gradient(150deg, #b0dc63 0%, #75b938 100%); }
.ui-account-section__icon--red { background: linear-gradient(150deg, #ff8197 0%, #e5484d 100%); }

.ui-account-section__heading {
    flex: 1;
    min-width: 0;
}

.ui-shell .ui-account-section__title {
    margin: 0;
    color: var(--ui-text);
    font-size: 19px;
    font-weight: 600;
}

.ui-account-section__subtitle {
    margin: 2px 0 0;
    color: var(--ui-text-muted);
    font-size: 13.5px;
}

.ui-account-section__meta {
    color: var(--ui-text-muted);
    font-size: 13px;
    white-space: nowrap;
}

.ui-account-section__body {
    padding: 18px 22px 22px;
}

/* Form grids */
.ui-account-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px 16px;
}

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

.ui-account-section .ui-input {
    height: 44px;
}

/* Rows with an icon, two lines of text and a button */
.ui-account-rows {
    display: flex;
    flex-direction: column;
}

.ui-account-row {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--ui-border-subtle);
}

.ui-account-row:last-child {
    border-bottom: 0;
}

.ui-account-row__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--ui-primary-soft);
    color: var(--ui-primary);
}

.ui-account-row__text {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.ui-account-row__title {
    color: var(--ui-text);
    font-size: 15px;
}

.ui-account-row__sub {
    color: var(--ui-text-muted);
    font-size: 13px;
}

/* The email and password forms under their rows */
.ui-account-inset {
    margin: 0 0 12px 54px;
    padding: 14px 16px 16px;
    border-radius: var(--ui-radius-sm);
    background: var(--ui-bg-subtle);
}

.ui-account-inset .ui-input {
    height: 40px;
}

.ui-account-inset__actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.ui-account-inset__done {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 0;
    color: var(--ui-text);
    font-size: 14px;
}

.ui-account-inset__done .ui-icon {
    flex: none;
    margin-top: 2px;
    color: #4caf27;
}

.ui-account-inset .ui-modal__error {
    margin: 8px 0 0;
}

.ui-account-strength {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    margin-top: 6px;
}

.ui-account-strength__bar {
    height: 4px;
    border-radius: 2px;
    background: var(--ui-border);
}

.ui-account-strength__bar.is-on.is-1 { background: var(--ui-danger); }
.ui-account-strength__bar.is-on.is-2 { background: #f5a524; }
.ui-account-strength__bar.is-on.is-3,
.ui-account-strength__bar.is-on.is-4 { background: #8dc63f; }

.ui-account-strength__text {
    margin-top: 6px;
}

/* Notification switches */
.ui-account-notify__head,
.ui-account-notify__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px 108px;
    align-items: center;
    padding: 12px 18px;
    border-bottom: 1px solid var(--ui-border-subtle);
}

.ui-account-notify__row:last-child {
    border-bottom: 0;
}

.ui-account-notify__head {
    color: var(--ui-text-muted);
    font-size: 11.5px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.ui-account-notify__name {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ui-account-notify__col {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
}

.ui-account-notify__all {
    padding: 0;
    border: 0;
    background: none;
    color: var(--ui-primary);
    font-family: var(--ui-font);
    font-size: 12px;
    letter-spacing: 0;
    text-transform: none;
    cursor: pointer;
}

.ui-account-notify__all:hover:not(:disabled) {
    text-decoration: underline;
}

.ui-account-notify__all:disabled {
    color: var(--ui-text-faint);
    cursor: default;
}

/* Mailbox connections */
.ui-account-connections {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ui-account-connection {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 16px 18px;
    border: 1px solid var(--ui-border-subtle);
    border-radius: var(--ui-radius);
}

.ui-account-connection__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--ui-primary-soft);
    color: var(--ui-primary);
}

.ui-account-connection__name {
    color: var(--ui-text);
    font-size: 16px;
}

/* API keys */
.ui-account-newkey {
    margin-bottom: 16px;
    padding: 14px 16px 16px;
    border-radius: var(--ui-radius-sm);
    background: #eef6dd;
}

.ui-account-newkey__title {
    display: flex;
    gap: 8px;
    align-items: center;
    margin: 0 0 10px;
    color: var(--ui-text);
    font-size: 14px;
}

.ui-account-newkey__title .ui-icon {
    color: var(--ui-primary);
}

.ui-account-newkey__key {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 10px 10px 10px 14px;
    border-radius: var(--ui-radius-sm);
    background: #1b2236;
}

.ui-account-newkey__key code {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    color: #e6ebf5;
    font-size: 13.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ui-account-keys {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.ui-account-keys th {
    padding: 10px 18px;
    border-bottom: 1px solid var(--ui-border-subtle);
    color: var(--ui-text-muted);
    font-size: 11.5px;
    font-weight: 400;
    letter-spacing: 1.2px;
    text-align: left;
    text-transform: uppercase;
}

.ui-account-keys td {
    padding: 12px 18px;
    border-bottom: 1px solid var(--ui-border-subtle);
    color: var(--ui-text);
}

.ui-account-keys td .ui-badge {
    margin-left: 6px;
}

.ui-account-keys__actions {
    width: 1%;
    text-align: right;
    white-space: nowrap;
}

.ui-account-keys__empty {
    padding: 22px 18px;
    color: var(--ui-text-muted) !important;
    text-align: center;
}

.ui-account-help {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    padding: 16px 18px;
    border-radius: var(--ui-radius-sm);
    background: var(--ui-bg-subtle);
    color: var(--ui-text);
    font-size: 14px;
    line-height: 1.55;
}

.ui-account-help > .ui-icon {
    flex: none;
    margin-top: 3px;
    color: var(--ui-primary);
}

.ui-account-help p {
    margin: 0;
}

.ui-account-help__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

/* Create key panel */
.ui-account-static {
    display: block;
    padding: 10px 12px;
    border: 1px solid var(--ui-border-subtle);
    border-radius: var(--ui-radius-sm);
    background: var(--ui-bg-subtle);
    color: var(--ui-text);
    font-size: 14.5px;
}

.ui-account-note {
    display: flex;
    gap: 10px;
    margin: 8px 0 0;
    padding: 14px 16px;
    border-radius: var(--ui-radius-sm);
    background: var(--ui-bg-subtle);
    color: var(--ui-text);
    font-size: 14px;
    line-height: 1.5;
}

.ui-account-note .ui-icon {
    flex: none;
    margin-top: 2px;
    color: var(--ui-primary);
}

/* Photo dialog */
.ui-account-photo {
    display: flex;
    gap: 18px;
    align-items: center;
    margin: 6px 0 4px;
}

.ui-account-photo__preview .ui-avatar {
    width: 72px;
    height: 72px;
    font-size: 24px;
}

.ui-account-photo__pick {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.ui-account-photo__pick input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

/* The dark save bar for personal details */
.ui-save-bar--dark {
    border-color: transparent;
    background: #1b2236;
    color: #ffffff;
}

.ui-save-bar--dark .ui-btn--ghost {
    border-color: rgba(255, 255, 255, 0.4);
    background: transparent;
    color: #ffffff;
}

.ui-save-bar--dark .ui-btn--ghost:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.08);
}

.ui-save-bar--dark .ui-modal__error {
    color: #ff9ea1;
}

html[data-ui="v2"].dark .ui-account-newkey {
    background: #1f2d1a;
}

html[data-ui="v2"].dark .ui-save-bar--dark {
    border-color: var(--ui-border);
    background: #0a0f1a;
}

@media (max-width: 1100px) {
    .ui-account-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .ui-account-summary {
        position: static;
    }

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

@media (max-width: 640px) {
    .ui-page:has(.ui-account-layout) .ui-hero__actions {
        display: none;
    }

    .ui-account-grid,
    .ui-account-grid--two {
        grid-template-columns: minmax(0, 1fr);
    }

    .ui-account-section__header {
        flex-wrap: wrap;
        padding: 16px;
    }

    .ui-account-section__body {
        padding: 14px 16px 18px;
    }

    .ui-account-row {
        flex-wrap: wrap;
    }

    .ui-account-inset {
        margin-left: 0;
    }

    .ui-account-notify__head,
    .ui-account-notify__row {
        grid-template-columns: minmax(0, 1fr) 64px 64px;
        padding: 12px 4px;
    }

    .ui-account-connection {
        flex-wrap: wrap;
    }

    .ui-account-keys th:nth-child(2),
    .ui-account-keys td:nth-child(2) {
        display: none;
    }

    .ui-account-keys th,
    .ui-account-keys td {
        padding: 10px 8px;
    }
}

/* ---------- API reference (shares the My profile layout) ---------- */

/* The sticky index: search and method filters, then every area and controller */
.ui-apiref-index {
    position: sticky;
    top: 76px;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 92px);
    overflow: hidden;
}

.ui-apiref-index__filters {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
    border-bottom: 1px solid var(--ui-border-subtle);
}

.ui-apiref-index__filters .ui-searchbox {
    flex: none;
}

.ui-shell .ui-apiref-index .ui-searchbox__input {
    box-shadow: none;
}

.ui-apiref-methods {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ui-apiref-methods__chip {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding: 5px 10px;
    border: 1px solid var(--ui-border);
    border-radius: 999px;
    background: var(--ui-surface);
    color: var(--ui-text-muted);
    font-family: var(--ui-font);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.ui-apiref-methods__chip:hover {
    background: var(--ui-bg-subtle);
}

.ui-apiref-methods__chip:focus-visible {
    outline: none;
    box-shadow: var(--ui-focus);
}

.ui-apiref-methods__chip.is-active {
    border-color: var(--ui-primary);
    background: var(--ui-primary-soft);
    color: var(--ui-primary);
}

.ui-apiref-methods__count {
    color: var(--ui-text-faint);
    font-weight: 400;
}

.ui-apiref-methods__chip.is-active .ui-apiref-methods__count {
    color: inherit;
}

.ui-apiref-index__list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 0;
    padding: 10px;
    overflow-y: auto;
}

.ui-apiref-index__area {
    margin: 12px 12px 4px;
    color: var(--ui-text-faint);
    font-size: 11.5px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.ui-apiref-index .ui-account-summary__link {
    padding: 8px 12px;
    font-size: 14px;
}

/* Getting started */
.ui-apiref-start {
    color: var(--ui-text);
    font-size: 14px;
    line-height: 1.6;
}

.ui-apiref-start p {
    margin: 0 0 12px;
}

.ui-apiref-start code,
.ui-apiref-detail code,
.ui-apiref-fields code {
    padding: 1px 5px;
    border-radius: 5px;
    background: var(--ui-bg-subtle);
    font-size: 0.92em;
    overflow-wrap: anywhere;
}

.ui-apiref-code {
    margin: 0 0 12px;
    padding: 14px 16px;
    overflow-x: auto;
    border-radius: var(--ui-radius-sm);
    background: #1b2236;
    color: #e6ebf5;
    font-size: 13px;
    line-height: 1.6;
    white-space: pre;
}

.ui-apiref-code code {
    padding: 0;
    background: none;
    color: inherit;
    overflow-wrap: normal;
}

.ui-apiref-legend {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 4px 0 0;
    padding: 14px 16px;
    border-radius: var(--ui-radius-sm);
    background: var(--ui-bg-subtle);
    color: var(--ui-text-muted);
    font-size: 13.5px;
    list-style: none;
}

.ui-apiref-legend .ui-badge {
    margin-right: 6px;
}

/* A controller's endpoints */
.ui-apiref-group__header {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 16px 22px;
    border-bottom: 1px solid var(--ui-border-subtle);
}

.ui-apiref-group__area {
    margin: 0 0 2px;
    color: var(--ui-text-faint);
    font-size: 11.5px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.ui-apiref-group__rows {
    display: flex;
    flex-direction: column;
    padding: 6px 10px;
}

.ui-apiref-row {
    display: flex;
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-radius: var(--ui-radius-sm);
    background: none;
    color: var(--ui-text);
    font-family: var(--ui-font);
    text-align: left;
    cursor: pointer;
}

.ui-apiref-row + .ui-apiref-row {
    box-shadow: 0 -1px 0 var(--ui-border-subtle);
}

.ui-apiref-row:hover {
    background: var(--ui-bg-subtle);
}

.ui-apiref-row:focus-visible {
    outline: none;
    box-shadow: var(--ui-focus);
}

.ui-apiref-row__route {
    flex: 1;
    min-width: 0;
    font-size: 13.5px;
    overflow-wrap: anywhere;
}

.ui-apiref-row__meta {
    color: var(--ui-text-faint);
    font-size: 12.5px;
    white-space: nowrap;
}

.ui-apiref-row > .ui-icon {
    flex: none;
    color: var(--ui-text-faint);
}

/* GET, POST and friends */
.ui-apiref-verb {
    flex: none;
    display: inline-block;
    min-width: 62px;
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--ui-tone-grey-bg);
    color: var(--ui-tone-grey-fg);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-align: center;
}

.ui-apiref-verb--get { background: var(--ui-tone-blue-bg); color: var(--ui-tone-blue-fg); }
.ui-apiref-verb--post { background: var(--ui-tone-green-bg); color: var(--ui-tone-green-fg); }
.ui-apiref-verb--put { background: var(--ui-tone-amber-bg); color: var(--ui-tone-amber-fg); }
.ui-apiref-verb--patch { background: var(--ui-tone-violet-bg); color: var(--ui-tone-violet-fg); }
.ui-apiref-verb--delete { background: var(--ui-tone-red-bg); color: var(--ui-tone-red-fg); }

/* The endpoint drawer */
.ui-apiref-detail {
    color: var(--ui-text);
    font-size: 14px;
}

.ui-apiref-detail__url {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 12px;
}

.ui-apiref-detail__url code {
    flex: 1;
    min-width: 0;
}

.ui-shell .ui-apiref-detail__heading {
    margin: 20px 0 8px;
    color: var(--ui-text);
    font-size: 15px;
    font-weight: 600;
}

.ui-apiref-detail__none {
    margin: 0;
    color: var(--ui-text-muted);
}

.ui-apiref-fields {
    overflow-x: auto;
    border: 1px solid var(--ui-border-subtle);
    border-radius: var(--ui-radius-sm);
}

.ui-apiref-fields table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
}

.ui-apiref-fields th {
    padding: 8px 12px;
    border-bottom: 1px solid var(--ui-border-subtle);
    background: var(--ui-bg-subtle);
    color: var(--ui-text-muted);
    font-size: 11.5px;
    font-weight: 400;
    letter-spacing: 1.2px;
    text-align: left;
    text-transform: uppercase;
}

.ui-apiref-fields td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--ui-border-subtle);
    color: var(--ui-text);
    vertical-align: top;
}

.ui-apiref-fields tr:last-child td {
    border-bottom: 0;
}

.ui-apiref-fields .ui-badge {
    white-space: nowrap;
}

.ui-apiref-fields__type {
    color: var(--ui-text-muted);
}

html[data-ui="v2"].dark .ui-apiref-code {
    border: 1px solid var(--ui-border);
    background: #0a0f1a;
}

@media (max-width: 1100px) {
    .ui-apiref-index {
        position: static;
        max-height: none;
    }

    .ui-apiref-index__list {
        max-height: 320px;
    }
}

@media (max-width: 640px) {
    .ui-apiref-group__header {
        padding: 14px 16px;
    }

    .ui-apiref-group__rows {
        padding: 4px 6px;
    }

    .ui-apiref-row {
        flex-wrap: wrap;
        gap: 8px;
    }

    .ui-apiref-row__route {
        flex-basis: calc(100% - 100px);
    }

    .ui-apiref-row__meta {
        display: none;
    }
}
