/* The HighK portal refinements layered over the shared visual foundation. */

/* Light mode must include the application chrome, not only the page body. */
:root[data-theme="light"] .portal-topbar {
    color: #14301f;
    background:
        radial-gradient(circle at 86% 0%, rgba(39, 200, 117, 0.15), transparent 22rem),
        linear-gradient(90deg, #f8f1ce 0%, #edf1d4 100%);
    border-bottom-color: rgba(18, 83, 47, 0.18);
    box-shadow: 0 10px 28px rgba(43, 63, 35, 0.12);
}

:root[data-theme="light"] .portal-brand,
:root[data-theme="light"] .portal-brand:hover {
    color: #0b2818;
}

:root[data-theme="light"] .brand-mark-wrap {
    background: rgba(17, 89, 48, 0.07);
    border-color: rgba(17, 89, 48, 0.20);
}

:root[data-theme="light"] .brand-copy small,
:root[data-theme="light"] .topbar-user-copy small {
    color: #5d7464;
}

:root[data-theme="light"] .icon-button {
    color: #20442d;
    background: rgba(255, 255, 255, 0.52);
    border-color: rgba(17, 89, 48, 0.18);
}

:root[data-theme="light"] .icon-button:hover {
    color: #0b2818;
    background: rgba(39, 200, 117, 0.12);
    border-color: rgba(29, 132, 75, 0.35);
}

:root[data-theme="light"] .topbar-user {
    color: #14301f;
}

:root[data-theme="light"] .topbar-user:hover {
    color: #071b10;
    background: rgba(255, 255, 255, 0.48);
    border-color: rgba(17, 89, 48, 0.14);
}

:root[data-theme="light"] .navbar-avatar {
    color: #0b3a20;
    background: #d9ead6;
    border-color: rgba(29, 132, 75, 0.50);
}

:root[data-theme="light"] .portal-sidebar {
    color: #173421;
    background:
        radial-gradient(circle at 18% 90%, rgba(239, 217, 111, 0.22), transparent 15rem),
        linear-gradient(180deg, #eef2d8 0%, #e4ead0 100%);
    border-right-color: rgba(18, 83, 47, 0.16);
    box-shadow: 14px 0 34px rgba(43, 63, 35, 0.10);
}

:root[data-theme="light"] .portal-nav-label {
    color: #607865;
}

:root[data-theme="light"] .portal-nav-link,
:root[data-theme="light"] .sidebar-site-link {
    color: #3f5746;
}

:root[data-theme="light"] .portal-nav-link i:first-child {
    color: #597361;
}

:root[data-theme="light"] .portal-nav-link:hover,
:root[data-theme="light"] .sidebar-site-link:hover {
    color: #0c2b19;
    background: rgba(255, 255, 255, 0.48);
    border-color: rgba(18, 83, 47, 0.10);
}

:root[data-theme="light"] .portal-nav-link.active {
    color: #0a301b;
    background: rgba(39, 200, 117, 0.13);
    border-color: rgba(29, 132, 75, 0.24);
}

:root[data-theme="light"] .sidebar-footer {
    border-top-color: rgba(18, 83, 47, 0.13);
}

:root[data-theme="light"] .sidebar-signoff {
    color: #667b6a;
}

/* Account menu */
.account-menu {
    position: relative;
}

.account-menu > summary {
    list-style: none;
    cursor: pointer;
}

.account-menu > summary::-webkit-details-marker {
    display: none;
}

.account-menu-chevron {
    margin: 0 4px 0 2px;
    color: #91a89a;
    font-size: 0.72rem;
    transition: transform 0.18s ease;
}

.account-menu[open] .account-menu-chevron {
    transform: rotate(180deg);
}

:root[data-theme="light"] .account-menu-chevron {
    color: #607865;
}

.account-menu-panel {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 1300;
    width: min(290px, calc(100vw - 28px));
    padding: 9px;
    color: var(--hk-text);
    background: var(--hk-surface-raised);
    border: 1px solid var(--hk-border);
    border-radius: 13px;
    box-shadow: var(--hk-shadow-md);
}

.account-menu-heading {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 11px 12px;
}

.account-menu-heading strong {
    overflow: hidden;
    color: var(--hk-text-strong);
    font-size: 0.84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-menu-heading span {
    color: var(--hk-muted);
    font-size: 0.72rem;
}

.account-menu-item {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    color: var(--hk-text);
    font-size: 0.85rem;
    font-weight: 680;
    text-align: left;
    text-decoration: none;
    background: transparent;
    border: 0;
    border-radius: 9px;
}

.account-menu-item i {
    width: 19px;
    color: var(--hk-green);
    text-align: center;
}

.account-menu-item:hover,
.account-menu-item:focus {
    color: var(--hk-text-strong);
    background: rgba(39, 200, 117, 0.09);
}

.account-menu-divider {
    height: 1px;
    margin: 7px 5px;
    background: var(--hk-border);
}

.account-menu-logout {
    color: var(--hk-danger);
}

.account-menu-logout i {
    color: var(--hk-danger);
}

.account-menu-logout:hover,
.account-menu-logout:focus {
    color: var(--hk-danger);
    background: rgba(189, 63, 67, 0.09);
}

/* Logout destination dialog */
.logout-dialog {
    width: min(470px, calc(100vw - 30px));
    padding: 0;
    color: var(--hk-text);
    background: transparent;
    border: 0;
    border-radius: 18px;
}

.logout-dialog::backdrop {
    background: rgba(0, 0, 0, 0.64);
    backdrop-filter: blur(5px);
}

.logout-dialog-card {
    position: relative;
    padding: 31px;
    text-align: center;
    background: var(--hk-surface-raised);
    border: 1px solid var(--hk-border);
    border-radius: 18px;
    box-shadow: var(--hk-shadow-md);
}

.logout-dialog-close {
    position: absolute;
    top: 13px;
    right: 13px;
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    color: var(--hk-muted);
    background: transparent;
    border: 0;
    border-radius: 8px;
}

.logout-dialog-close:hover {
    color: var(--hk-text-strong);
    background: var(--hk-surface-soft);
}

.logout-dialog-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 16px;
    color: var(--hk-green);
    background: rgba(39, 200, 117, 0.10);
    border: 1px solid rgba(39, 200, 117, 0.18);
    border-radius: 15px;
}

.logout-dialog-icon i {
    font-size: 1.5rem;
}

.logout-dialog h2 {
    margin: 0;
    color: var(--hk-text-strong);
    font-size: 1.45rem;
    font-weight: 780;
}

.logout-dialog p {
    margin: 9px 0 23px;
    color: var(--hk-muted);
}

.logout-dialog-actions {
    display: grid;
    gap: 10px;
}

.logout-dialog-cancel {
    margin-top: 14px;
    padding: 7px 10px;
    color: var(--hk-muted);
    background: transparent;
    border: 0;
    font-size: 0.82rem;
    font-weight: 700;
}

.logout-dialog-cancel:hover {
    color: var(--hk-text-strong);
}

/* Buddie dashboard and help center */
.dashboard-support-row > [class*="col-"] {
    display: flex;
}

.buddie-dashboard-card,
.help-section-card,
.help-hero {
    color: var(--hk-text);
    background: linear-gradient(145deg, var(--hk-surface-raised), var(--hk-surface));
    border: 1px solid var(--hk-border);
    border-radius: var(--hk-radius-md);
    box-shadow: var(--hk-shadow-sm);
}

.buddie-dashboard-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 100%;
    padding: 22px;
    overflow: hidden;
}

.buddie-dashboard-card::before {
    content: "";
    position: absolute;
    inset: auto -80px -90px auto;
    width: 220px;
    height: 220px;
    background: radial-gradient(circle, rgba(39, 200, 117, 0.16), transparent 68%);
}

.buddie-dashboard-image {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 230px);
    max-height: 210px;
    margin: -10px auto 7px;
    object-fit: contain;
}

.buddie-dashboard-card h2 {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--hk-text-strong);
    font-size: 1.3rem;
    font-weight: 780;
}

.buddie-dashboard-card p {
    position: relative;
    z-index: 1;
    margin: 9px 0 18px;
    color: var(--hk-muted);
    font-size: 0.87rem;
    line-height: 1.55;
}

.buddie-dashboard-card .btn {
    position: relative;
    z-index: 1;
    margin-top: auto;
}

.help-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 340px);
    align-items: center;
    gap: 30px;
    padding: clamp(25px, 4vw, 48px);
    overflow: hidden;
}

.help-hero h1 {
    margin: 0;
    color: var(--hk-text-strong);
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 810;
    letter-spacing: -0.045em;
}

.help-hero p {
    max-width: 720px;
    margin: 12px 0 0;
    color: var(--hk-muted);
    line-height: 1.65;
}

.help-hero-image {
    width: 100%;
    max-height: 300px;
    object-fit: contain;
}

.help-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
}

.help-section-card {
    padding: 22px;
}

.help-section-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 15px;
    color: var(--hk-green);
    background: rgba(39, 200, 117, 0.09);
    border: 1px solid rgba(39, 200, 117, 0.17);
    border-radius: 11px;
}

.help-section-card h2 {
    margin: 0 0 7px;
    color: var(--hk-text-strong);
    font-size: 1.1rem;
    font-weight: 780;
}

.help-section-card > p {
    margin: 0 0 15px;
    color: var(--hk-muted);
    font-size: 0.85rem;
    line-height: 1.55;
}

.help-disclosure {
    border-top: 1px solid var(--hk-border);
}

.help-disclosure summary {
    position: relative;
    padding: 13px 25px 13px 0;
    color: var(--hk-text);
    font-size: 0.85rem;
    font-weight: 720;
    cursor: pointer;
    list-style: none;
}

.help-disclosure summary::-webkit-details-marker {
    display: none;
}

.help-disclosure summary::after {
    content: "+";
    position: absolute;
    top: 11px;
    right: 2px;
    color: var(--hk-green);
    font-size: 1.15rem;
}

.help-disclosure[open] summary::after {
    content: "−";
}

.help-disclosure div {
    padding: 0 0 14px;
    color: var(--hk-muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

/* Login panel now uses the available space rather than leaving a dead area. */
.auth-brand-panel {
    justify-content: space-between;
    gap: 20px;
}

.auth-brand-panel::after {
    content: none;
}

.auth-buddie-wrap {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    min-height: 245px;
}

.auth-buddie {
    display: block;
    width: min(78%, 310px);
    max-height: 300px;
    object-fit: contain;
    filter: drop-shadow(0 20px 28px rgba(0, 0, 0, 0.28));
}

.auth-brand-content {
    position: relative;
    z-index: 1;
}

.auth-brand-content h1,
.auth-brand-content p,
.auth-brand-content .auth-brand-kicker {
    position: static;
}

@media (max-width: 1199.98px) {
    .help-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 991.98px) {
    .auth-buddie-wrap {
        position: absolute;
        top: 15px;
        right: 18px;
        min-height: 0;
        opacity: 0.82;
    }

    .auth-buddie {
        width: 190px;
        max-height: 220px;
    }

    .auth-brand-content {
        max-width: 72%;
    }
}

@media (max-width: 767.98px) {
    .account-menu-panel {
        position: fixed;
        top: calc(var(--hk-topbar-height) - 2px);
        right: 12px;
    }

    .help-hero {
        grid-template-columns: 1fr;
    }

    .help-hero-image {
        max-height: 230px;
    }

    .help-grid {
        grid-template-columns: 1fr;
    }

    .auth-brand-content {
        max-width: 100%;
    }

    .auth-buddie-wrap {
        right: 5px;
        opacity: 0.34;
    }

    .auth-buddie {
        width: 170px;
    }
}

@media (max-width: 575.98px) {
    .account-menu-chevron {
        display: none;
    }

    .logout-dialog-card {
        padding: 28px 20px 23px;
    }
}
