/*
 * DEV-1.14B | V2 AppShell + Work Home Theme Bridge
 *
 * Visual-only migration layer.
 *
 * It intentionally loads AFTER the accepted Phase 1 CSS so:
 * - Phase 1 layout ownership remains intact.
 * - Home viewport lock / internal scroll containment remain intact.
 * - JS selectors / routes / API contracts remain untouched.
 * - Only appearance and navigation hierarchy are changed.
 */

/* ============================================================
   Global document / shell
   ============================================================ */

html,
body.v2-theme {
    width: 100%;
    height: 100%;
}

body.v2-theme {
    margin: 0;
    overflow: hidden;

    background: var(--v2-color-page);
    color: var(--v2-color-ink-900);

    font-family: var(--v2-font-sans);
}

.v2-theme .app-shell {
    width: 100%;
    height: 100vh;
    min-height: 0;

    display: grid;
    grid-template-columns:
        var(--v2-sidebar-width)
        minmax(0, 1fr);
    grid-template-rows:
        92px
        minmax(0, 1fr);

    overflow: hidden;

    background: var(--v2-color-page);
}

.v2-theme .app-shell__sidebar {
    grid-column: 1;
    grid-row: 1 / -1;
}

.v2-theme .app-shell__header {
    grid-column: 2;
    grid-row: 1;
}

.v2-theme .app-shell__workspace {
    grid-column: 2;
    grid-row: 2;

    min-width: 0;
    min-height: 0;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #f6f8fa 0%,
            var(--v2-color-page) 100%
        );
}


/* ============================================================
   Sidebar | Rising Star V2
   ============================================================ */

.v2-theme .app-sidebar {
    position: relative;

    height: 100%;
    min-height: 0;

    display: flex;
    flex-direction: column;

    padding: 0;

    border-right: 1px solid
        rgba(255, 255, 255, 0.08);

    background:
        linear-gradient(
            180deg,
            #086b78 0%,
            var(--v2-color-brand-900) 58%,
            var(--v2-color-brand-950) 100%
        );

    color: #fff;

    box-shadow:
        4px 0 18px
        rgba(2, 59, 72, 0.10);
}

.v2-theme .app-sidebar__brand {
    flex: 0 0 146px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 22px 16px 20px;

    background: #fff;

    border-right: 1px solid var(--v2-color-border-soft);
    border-bottom: 1px solid var(--v2-color-border);
}

.v2-theme .app-sidebar__brand-button {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;
}

.v2-theme .app-sidebar__logo {
    width: auto;
    max-width: 158px;
    max-height: 92px;

    object-fit: contain;
}

.v2-theme .app-sidebar__nav {
    display: flex;
    flex-direction: column;
    gap: 5px;

    padding:
        16px
        14px
        0;
}

.v2-theme .app-sidebar__nav--system {
    gap: 10px;

    padding:
        0
        14px
        16px;
}

.v2-theme .app-sidebar__spacer {
    min-height: 18px;

    margin: 14px 18px;

    border-top:
        1px solid
        rgba(255, 255, 255, 0.20);
}

.v2-theme .app-sidebar__item {
    position: relative;

    width: 100%;
    min-height: 48px;

    display: flex;
    align-items: center;
    gap: 12px;

    padding:
        0
        14px
        0
        48px;

    border:
        1px solid
        transparent;
    border-radius:
        var(--v2-radius-sm);

    background:
        transparent;
    color:
        rgba(255, 255, 255, 0.91);

    box-shadow: none;

    font: inherit;
    font-size: var(--v2-font-size-14);
    font-weight: var(--v2-font-weight-semibold);
    text-align: left;

    cursor: pointer;

    transition:
        background
            var(--v2-motion-fast)
            var(--v2-ease-standard),
        border-color
            var(--v2-motion-fast)
            var(--v2-ease-standard),
        transform
            var(--v2-motion-fast)
            var(--v2-ease-standard);
}

.v2-theme .app-sidebar__item::before {
    position: absolute;
    left: 15px;
    top: 50%;

    width: 22px;
    height: 22px;

    display: grid;
    place-items: center;

    transform:
        translateY(-50%);

    color:
        rgba(255, 255, 255, 0.94);

    font-size: 18px;
    font-weight: 400;
    line-height: 1;

    content: "•";
}

.v2-theme .app-sidebar__item[data-route="home"]::before {
    content: "⌂";
}

.v2-theme .app-sidebar__item[data-route="review"]::before {
    content: "✓";
}

.v2-theme .app-sidebar__item[data-route="patients"]::before {
    content: "♙";
}

.v2-theme .app-sidebar__item[data-route="appointments"]::before {
    content: "▣";
}

.v2-theme .app-sidebar__item[data-route="patient-cards"]::before {
    content: "◇";
}

.v2-theme .app-sidebar__item[data-route="outputs"]::before {
    content: "▱";
}

.v2-theme .app-sidebar__item[data-route="reports"]::before {
    content: "▥";
}

.v2-theme .app-sidebar__item[data-route="admin"]::before {
    content: "⚙";
}

.v2-theme .app-sidebar__item[data-route="error-report"]::before {
    content: "△";
}

.v2-theme .app-sidebar__item[data-route="mode-switch"]::before {
    content: "↔";
}

.v2-theme .app-sidebar__item:hover {
    transform:
        translateX(1px);

    border-color:
        rgba(255, 255, 255, 0.15);

    background:
        rgba(255, 255, 255, 0.085);
}

.v2-theme .app-sidebar__item.is-active {
    border-color:
        rgba(107, 230, 236, 0.90);

    background:
        linear-gradient(
            135deg,
            rgba(20, 192, 201, 0.36),
            rgba(255, 255, 255, 0.08)
        );

    color: #fff;

    box-shadow:
        inset 0 0 0 1px
        rgba(255, 255, 255, 0.08),
        0 5px 14px
        rgba(0, 0, 0, 0.08);
}

.v2-theme .app-sidebar__item--danger,
.v2-theme .app-sidebar__item--mode {
    min-height: 56px;

    border:
        1px solid
        rgba(255, 255, 255, 0.28);

    color: #fff;

    font-weight: var(--v2-font-weight-bold);
}

.v2-theme .app-sidebar__item--danger {
    background:
        linear-gradient(
            135deg,
            #f26c4f,
            #e84a35
        );

    box-shadow:
        0 8px 18px
        rgba(222, 67, 47, 0.22);
}

.v2-theme .app-sidebar__item--danger:hover {
    background:
        linear-gradient(
            135deg,
            #ff795b,
            #e84a35
        );
}

.v2-theme .app-sidebar__item--mode {
    background:
        linear-gradient(
            135deg,
            #7366df,
            #6651cb
        );

    box-shadow:
        0 8px 18px
        rgba(99, 79, 196, 0.22);
}

.v2-theme .app-sidebar__item--mode:hover {
    background:
        linear-gradient(
            135deg,
            #8175e8,
            #6651cb
        );
}


/* ============================================================
   Header | Global fixed shell
   ============================================================ */

.v2-theme .global-header {
    position: relative;
    z-index: 80;

    min-width: 0;
    min-height: 92px;

    display: flex;
    align-items: center;
    gap: 22px;

    padding:
        14px
        22px
        14px
        28px;

    border-bottom:
        1px solid
        var(--v2-color-border);

    background:
        rgba(255, 255, 255, 0.97);

    box-shadow:
        0 4px 16px
        rgba(11, 41, 64, 0.045);
}

.v2-theme .global-header__search {
    position: relative;

    flex:
        1 1
        580px;

    max-width: 760px;
    min-width: 260px;

    display: flex;
    align-items: center;

    filter:
        drop-shadow(
            0 4px 11px
            rgba(11, 41, 64, 0.04)
        );
}

.v2-theme .global-header__search::before {
    position: absolute;
    left: 16px;
    top: 50%;
    z-index: 2;

    transform:
        translateY(-50%);

    color:
        var(--v2-color-ink-950);

    font-size: 24px;
    line-height: 1;

    content: "⌕";

    pointer-events: none;
}

.v2-theme .global-header__search-input {
    flex: 1 1 auto;

    height: 54px;

    padding:
        0
        16px
        0
        50px;

    border:
        1px solid
        var(--v2-color-border);
    border-right: 0;

    border-radius:
        var(--v2-radius-lg)
        0
        0
        var(--v2-radius-lg);

    background:
        var(--v2-color-surface);

    color:
        var(--v2-color-ink-900);

    font: inherit;
    font-size:
        var(--v2-font-size-14);

    outline: none;
}

.v2-theme .global-header__search-input::placeholder {
    color:
        var(--v2-color-ink-600);
}

.v2-theme .global-header__search-input:focus {
    border-color:
        var(--v2-color-brand-500);

    box-shadow:
        inset
        0 0 0 1px
        var(--v2-color-brand-500);
}

.v2-theme .global-header__search-button {
    min-width: 72px;
    height: 54px;

    padding: 0 14px;

    border:
        1px solid
        var(--v2-color-border);
    border-left: 0;

    border-radius:
        0
        var(--v2-radius-lg)
        var(--v2-radius-lg)
        0;

    background:
        var(--v2-color-surface);
    color:
        var(--v2-color-brand-800);

    font: inherit;
    font-size:
        var(--v2-font-size-12);
    font-weight:
        var(--v2-font-weight-bold);

    cursor: pointer;
}

.v2-theme .global-header__search-button:hover {
    background:
        var(--v2-color-brand-050);
}

.v2-theme .global-header__actions {
    margin-left: auto;

    display: flex;
    align-items: center;
    gap: 6px;
}

.v2-theme .global-header__action,
.v2-theme .global-header__status,
.v2-theme .global-header__account-button {
    min-height: 48px;

    border:
        1px solid
        transparent;
    border-radius:
        var(--v2-radius-md);

    background:
        transparent;
    color:
        var(--v2-color-ink-800);

    font: inherit;
    font-size:
        var(--v2-font-size-12);

    transition:
        background
            var(--v2-motion-fast)
            var(--v2-ease-standard),
        border-color
            var(--v2-motion-fast)
            var(--v2-ease-standard);
}

.v2-theme .global-header__action {
    min-width: 64px;

    flex-direction: column;
    gap: 2px;

    padding: 6px 9px;

    font-weight:
        var(--v2-font-weight-semibold);
}

.v2-theme .global-header__action::before {
    color:
        var(--v2-color-ink-950);

    font-size: 21px;
    line-height: 1;
}

.v2-theme .global-header__action[data-header-action="calendar"]::before {
    content: "▣";
}

.v2-theme .global-header__action[data-header-action="notifications"]::before {
    content: "♧";
}

.v2-theme .global-header__action:hover,
.v2-theme .global-header__status:hover,
.v2-theme .global-header__account-button:hover {
    border-color:
        var(--v2-color-border);

    background:
        var(--v2-color-surface-muted);
}

.v2-theme .global-header__status {
    min-width: 64px;

    flex-direction: column;
    gap: 3px;

    padding: 5px 8px;

    color:
        var(--v2-color-ink-600);
}

.v2-theme .global-header__status-dot {
    width: 12px;
    height: 12px;

    background:
        #3cbd68;

    box-shadow:
        0 0 0 5px
        rgba(60, 189, 104, 0.10);
}

.v2-theme .global-header__account-button {
    min-width: 154px;

    justify-content: flex-start;
    gap: 10px;

    padding:
        6px
        12px
        6px
        8px;

    border-color:
        transparent;
}

.v2-theme .global-header__account-button::before {
    flex: 0 0 38px;

    width: 38px;
    height: 38px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background:
        linear-gradient(
            180deg,
            #edf1f4,
            #d6dde3
        );

    color:
        #7b8d99;

    content: "●";

    font-size: 20px;
}

.v2-theme .global-header__account-name {
    max-width: 104px;

    color:
        var(--v2-color-ink-950);

    font-size:
        var(--v2-font-size-13);
    font-weight:
        var(--v2-font-weight-semibold);
}

.v2-theme .global-header__account-caret {
    margin-left: auto;

    color:
        var(--v2-color-ink-700);
}

.v2-theme .global-header__account-menu,
.v2-theme .global-header__status-panel {
    border:
        1px solid
        var(--v2-color-border);
    border-radius:
        var(--v2-radius-lg);

    background:
        var(--v2-color-surface);

    box-shadow:
        var(--v2-shadow-floating);
}

.v2-theme .global-header__account-menu {
    top:
        calc(100% + 8px);

    min-width: 186px;

    padding: 8px;
}

.v2-theme .global-header__menu-item {
    min-height: 42px;

    padding:
        0
        12px;

    border-radius:
        var(--v2-radius-sm);

    color:
        var(--v2-color-ink-800);

    font-size:
        var(--v2-font-size-13);
}

.v2-theme .global-header__menu-item:hover {
    background:
        var(--v2-color-brand-050);

    color:
        var(--v2-color-brand-900);
}

.v2-theme .global-header__menu-item[data-header-action="logout"] {
    margin-top: 6px;

    border-top:
        1px solid
        var(--v2-color-border-soft);

    border-radius: 0;

    color:
        var(--v2-color-danger);
}


/* ============================================================
   Work Home | visual migration onto V2 tokens
   ============================================================ */

.v2-theme .work-home {
    gap: 14px;

    padding:
        18px
        26px
        16px;

    background:
        transparent;
}

.v2-theme .work-home__summary-grid {
    gap: 14px;
}

.v2-theme .work-home__summary-card {
    position: relative;

    min-height: 142px;

    display: grid;
    grid-template-rows:
        auto
        1fr
        auto;

    gap: 4px;

    padding:
        20px
        70px
        17px
        20px;

    border:
        1px solid
        var(--v2-color-border);
    border-radius:
        var(--v2-radius-lg);

    background:
        var(--v2-color-surface);

    box-shadow:
        var(--v2-shadow-card);

    transition:
        transform
            var(--v2-motion-normal)
            var(--v2-ease-standard),
        border-color
            var(--v2-motion-normal)
            var(--v2-ease-standard),
        box-shadow
            var(--v2-motion-normal)
            var(--v2-ease-standard);
}

.v2-theme .work-home__summary-card::after {
    position: absolute;
    top: 18px;
    right: 18px;

    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    font-size: 21px;
    font-weight:
        var(--v2-font-weight-bold);
}

.v2-theme .work-home__summary-card[data-home-block="22"]::after {
    background:
        var(--v2-color-info-bg);
    color:
        var(--v2-color-info);

    content: "♙";
}

.v2-theme .work-home__summary-card[data-home-block="23"]::after {
    background:
        var(--v2-color-success-bg);
    color:
        var(--v2-color-success);

    content: "+";
}

.v2-theme .work-home__summary-card[data-home-block="24"]::after {
    background:
        var(--v2-color-purple-bg);
    color:
        var(--v2-color-purple);

    content: "♡";
}

.v2-theme .work-home__summary-card[data-home-block="25"]::after {
    background:
        var(--v2-color-warning-bg);
    color:
        var(--v2-color-warning);

    content: "□";
}

.v2-theme .work-home__summary-card[data-home-block="26"]::after {
    background:
        #efedff;
    color:
        #6758e8;

    content: "▣";
}

.v2-theme .work-home__summary-card[role="button"] {
    cursor: pointer;
}

.v2-theme .work-home__summary-card[role="button"]:hover {
    transform:
        translateY(-2px);

    border-color:
        var(--v2-color-border-strong);

    box-shadow:
        0 12px 28px
        rgba(11, 41, 64, 0.10);
}

.v2-theme .work-home__summary-card[role="button"]:focus-visible {
    outline:
        var(--v2-focus-outline);
    outline-offset:
        var(--v2-focus-offset);
}

.v2-theme .work-home__summary-label {
    color:
        var(--v2-color-ink-800);

    font-size:
        var(--v2-font-size-13);
    font-weight:
        var(--v2-font-weight-semibold);
}

.v2-theme .work-home__summary-value {
    align-self: center;

    color:
        var(--v2-color-ink-950);

    font-size:
        31px;
    font-weight:
        var(--v2-font-weight-bold);
    line-height: 1;
}

.v2-theme .work-home__summary-note {
    color:
        var(--v2-color-ink-600);

    font-size:
        var(--v2-font-size-11);
}

.v2-theme .work-home__info-grid {
    gap: 14px;
}

.v2-theme .work-home__panel {
    border:
        1px solid
        var(--v2-color-border);

    border-radius:
        var(--v2-radius-lg);

    background:
        var(--v2-color-surface);

    box-shadow:
        var(--v2-shadow-card);
}

.v2-theme .work-home__panel-header {
    min-height: 55px;

    padding:
        10px
        16px;

    border-bottom:
        1px solid
        var(--v2-color-border-soft);

    background:
        var(--v2-color-surface);
}

.v2-theme .work-home__panel-header h2 {
    color:
        var(--v2-color-ink-950);

    font-size:
        var(--v2-font-size-18);
    font-weight:
        var(--v2-font-weight-bold);

    cursor: pointer;
}

.v2-theme .work-home__panel-meta {
    color:
        var(--v2-color-ink-500);

    font-size:
        var(--v2-font-size-11);
}

.v2-theme .work-home__view-all,
.v2-theme .work-home-queue__view {
    border:
        1px solid
        #8fc5ce;
    border-radius:
        var(--v2-radius-sm);

    background:
        var(--v2-color-surface);
    color:
        var(--v2-color-brand-800);

    font-weight:
        var(--v2-font-weight-semibold);

    cursor: pointer;

    transition:
        background
            var(--v2-motion-fast)
            var(--v2-ease-standard),
        border-color
            var(--v2-motion-fast)
            var(--v2-ease-standard);
}

.v2-theme .work-home__view-all:hover,
.v2-theme .work-home-queue__view:hover {
    border-color:
        var(--v2-color-brand-500);

    background:
        var(--v2-color-brand-050);
}

.v2-theme .work-home-queue__sort-control {
    color:
        var(--v2-color-ink-600);
}

.v2-theme .work-home-queue__sort {
    border:
        1px solid
        var(--v2-color-border);
    border-radius:
        var(--v2-radius-sm);

    background:
        var(--v2-color-surface);
    color:
        var(--v2-color-ink-800);
}


/* ------------------------------------------------------------
   Queue table
   ------------------------------------------------------------ */

.v2-theme .work-home-queue__table {
    color:
        var(--v2-color-ink-900);

    font-size:
        var(--v2-font-size-12);
}

.v2-theme .work-home-queue__table th {
    height:
        var(--v2-table-row-height-compact);

    border-bottom:
        1px solid
        var(--v2-color-border);

    background:
        var(--v2-color-surface-muted);
    color:
        var(--v2-color-ink-600);

    font-size:
        var(--v2-font-size-11);
    font-weight:
        var(--v2-font-weight-semibold);
}

.v2-theme .work-home-queue__table td {
    height:
        var(--v2-table-row-height);

    border-bottom:
        1px solid
        var(--v2-color-border-soft);
}

.v2-theme .work-home-queue__table tbody tr:hover {
    background:
        var(--v2-color-brand-050);
}

.v2-theme .work-home-queue__subject-main {
    color:
        var(--v2-color-ink-900);

    font-weight:
        var(--v2-font-weight-semibold);
}

.v2-theme .work-home-queue__subject-sub {
    color:
        var(--v2-color-ink-500);
}


/* ------------------------------------------------------------
   Alerts
   ------------------------------------------------------------ */

.v2-theme .work-home-alerts__item {
    border-bottom:
        1px solid
        var(--v2-color-border-soft);
}

.v2-theme .work-home-alerts__title {
    color:
        var(--v2-color-ink-900);

    font-weight:
        var(--v2-font-weight-semibold);
}

.v2-theme .work-home-alerts__message {
    color:
        var(--v2-color-ink-600);
}

.v2-theme .work-home-alerts__empty,
.v2-theme .work-home-queue__empty-cell {
    color:
        var(--v2-color-ink-500);
}


/* ============================================================
   MA-05 / Landing shell receives foundation surfaces too
   (visual only; data adapter unchanged)
   ============================================================ */

.v2-theme .standard-list {
    background:
        transparent;
    color:
        var(--v2-color-ink-900);
}

.v2-theme .standard-list__back,
.v2-theme .standard-list-data__button,
.v2-theme .standard-list-data__select,
.v2-theme .standard-list-data__page,
.v2-theme .standard-list-data__action {
    border-color:
        var(--v2-color-border);

    border-radius:
        var(--v2-radius-sm);

    background:
        var(--v2-color-surface);
    color:
        var(--v2-color-ink-800);
}

.v2-theme .standard-list-data__table {
    color:
        var(--v2-color-ink-900);
}

.v2-theme .standard-list-data__table th {
    background:
        var(--v2-color-surface-muted);
    color:
        var(--v2-color-ink-600);

    border-color:
        var(--v2-color-border);
}

.v2-theme .standard-list-data__table td {
    border-color:
        var(--v2-color-border-soft);
}


/* ============================================================
   Responsive safeguards
   ============================================================ */

@media (max-width: 1180px) {
    .v2-theme .app-shell {
        grid-template-columns:
            190px
            minmax(0, 1fr);
    }

    .v2-theme .app-sidebar__item {
        padding-left: 43px;

        font-size:
            var(--v2-font-size-13);
    }

    .v2-theme .global-header {
        gap: 12px;

        padding-left: 18px;
        padding-right: 16px;
    }

    .v2-theme .global-header__account-button {
        min-width: 118px;
    }

    .v2-theme .work-home__summary-card {
        padding-right: 58px;
    }

    .v2-theme .work-home__summary-card::after {
        right: 12px;

        width: 40px;
        height: 40px;
    }
}

@media (max-width: 980px) {
    .v2-theme .global-header__action {
        min-width: 48px;
        padding-left: 6px;
        padding-right: 6px;
    }

    .v2-theme .global-header__search-button {
        min-width: 58px;
    }

    .v2-theme .work-home {
        overflow: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .v2-theme .app-sidebar__item,
    .v2-theme .work-home__summary-card,
    .v2-theme .work-home__view-all,
    .v2-theme .work-home-queue__view {
        transition: none;
    }
}
