body {}

/* ─────────────────────────────────────────────────────────────────
   Mobile page-overflow guard (global).

   Many components use `white-space: nowrap` for ellipsis truncation
   on names, badges, status pills, etc. Without `min-width: 0` on
   their flex parents, the nowrap content expands past the viewport
   and the whole page horizontally scrolls — phones swipe sideways
   instead of feeling responsive.

   Three layers:
     1. Clamp <html>/<body> AND Nuxt's root wrappers (#__nuxt,
        #__layout) to viewport width and clip what spills. The Nuxt
        wrappers don't inherit body's clip, so they need their own.
     2. Force `min-width: 0` on direct children of the codebase's
        actual flex containers — both Bootstrap utilities and the
        custom shells (`.app-shell` is `display: flex` in plain CSS,
        not `.d-flex`, so it needs explicit handling).
     3. Clip overflow on `.app-main` itself so chat content with
        nowrap pills/code blocks can't push the layout wider than
        the sidebar-adjusted column.

   Inner scrollable regions (carousels, code blocks) keep their own
   horizontal scroll because this only constrains structural roots.
   ───────────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
    html, body,
    #__nuxt, #__layout { overflow-x: hidden; max-width: 100vw; }

    .d-flex > *, .d-inline-flex > *,
    .flex-row > *, .flex-column > *,
    .app-shell > * { min-width: 0; }

    .app-main { min-width: 0; overflow-x: hidden; max-width: 100vw; }
}

/* ─────────────────────────────────────────────────────────────────────
   Canvas mobile pattern — pattern A: bottom-up sheets.
   Used by planner / journal / research / course drawers and file-viewer.
   Phones get a hamburger top menu and a pull-up right pane. Each drawer
   tags its existing topbar with `.canvas-mobile-topbar` and its right
   pane with `.canvas-mobile-sheet`, then toggles `.is-mobile-open` from a
   mobile-only trigger button.

   Below 768px:
   - The topbar collapses behind a hamburger; tap to expand items
     vertically as a slide-down menu.
   - The right pane drops to the viewport bottom as a 70vh sheet with a
     grab handle. Tap the handle (or the floating "Suggestions" pill) to
     toggle between peek and full-open.

   Desktop is untouched — the rules only apply at the breakpoint.
   ─────────────────────────────────────────────────────────────────── */

/* Mobile-only affordances are hidden by default; the media query
   re-enables them. Pill + backdrop need the same default-hidden so
   they don't leak onto desktop as unstyled elements. */
.canvas-mobile-trigger,
.canvas-mobile-sheet-pill,
.canvas-mobile-backdrop { display: none !important; }

@media (max-width: 767px) {
    .canvas-mobile-trigger {
        display: inline-flex !important;
        align-items: center; justify-content: center;
        width: 40px; height: 40px; border-radius: 8px;
        cursor: pointer; flex-shrink: 0;
        transition: background-color 0.15s ease;
    }
    body[theme="dark"] .canvas-mobile-trigger:hover { background: rgba(255,255,255,0.08); }
    body[theme="light"] .canvas-mobile-trigger:hover { background: rgba(0,0,0,0.05); }


    /* Topbar: only the back button, title, and the hamburger trigger
       remain visible. All other action items hide until the menu opens.
       Drawers tag the always-visible items with `.canvas-mobile-keep`. */
    .canvas-mobile-topbar > :not(.canvas-mobile-keep):not(.canvas-mobile-trigger) {
        display: none !important;
    }
    .canvas-mobile-topbar.is-mobile-open {
        flex-wrap: wrap;
        align-items: stretch;
        position: relative;
        z-index: 9998;
    }
    .canvas-mobile-topbar.is-mobile-open > :not(.canvas-mobile-keep):not(.canvas-mobile-trigger) {
        display: inline-flex !important;
        flex-basis: 100%;
        margin-top: 6px;
    }

    /* Right pane → bottom sheet. `!important` on display overrides the
       per-component `.pc-suggestions-col { display:none }` mobile rule
       that was the previous "hide right pane" strategy. */
    .canvas-mobile-sheet {
        display: flex !important;
        flex-direction: column;
        position: fixed !important;
        left: 0; right: 0; bottom: 0;
        width: 100% !important; max-width: 100% !important;
        max-height: 75vh;
        border-left: none !important;
        border-top: 1px solid rgba(127,127,127,0.2);
        border-radius: 16px 16px 0 0;
        transform: translateY(calc(100% - 56px));
        transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
        z-index: 9999;
        box-shadow: 0 -8px 28px rgba(0,0,0,0.18);
        overflow-y: auto;
        /* Reserve space for the absolutely-positioned grab handle below so
           scrolling content doesn't slide under it. */
        padding-top: 32px;
    }
    .canvas-mobile-sheet.is-mobile-open {
        transform: translateY(0);
    }
    /* Grab handle: absolute, anchored to the sheet (which is position:fixed),
       so it stays pinned at the top regardless of inner scroll position. The
       4px pill is drawn centered inside a 20px sheet-colored band. */
    .canvas-mobile-sheet::before {
        content: '';
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 32px;
        z-index: 2;
        border-radius: 16px 16px 0 0;
        background-repeat: no-repeat;
        background-position: center 14px;
        background-size: 40px 4px;
        pointer-events: none;
    }
    body[theme="dark"] .canvas-mobile-sheet::before {
        background-color: #1b1b1b;
        background-image: linear-gradient(rgba(255,255,255,0.35), rgba(255,255,255,0.35));
    }
    body[theme="light"] .canvas-mobile-sheet::before {
        background-color: #fafafa;
        background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3));
    }

    /* Pull-up trigger pill, top-right hidden state when the sheet is open. */
    .canvas-mobile-sheet-pill {
        display: inline-flex !important;
        position: fixed;
        bottom: 16px; right: 16px;
        z-index: 9998;
        padding: 10px 16px; border-radius: 999px;
        font-size: 12px; font-weight: 600;
        align-items: center; gap: 6px;
        cursor: pointer;
        background: linear-gradient(135deg, #a78bfa, #7c3aed);
        color: #fff; border: 0;
        box-shadow: 0 4px 14px rgba(124,58,237,0.4);
    }
    .canvas-mobile-sheet-pill.is-mobile-open { display: none !important; }

    /* Backdrop covers the canvas while a menu or sheet is open. */
    .canvas-mobile-backdrop {
        display: block !important;
        position: fixed; inset: 0;
        background: rgba(0,0,0,0.4);
        z-index: 9997;
        opacity: 0; pointer-events: none;
        transition: opacity 0.2s ease;
    }
    .canvas-mobile-backdrop.is-active {
        opacity: 1; pointer-events: auto;
        touch-action: none;
        overscroll-behavior: contain;
    }

    /* Theme paint for the sheet — kept inside the query so desktop
       rendering of the underlying col is unaffected. */
    body[theme="dark"] .canvas-mobile-sheet {
        background: #1b1b1b;
        color: rgba(255,255,255,0.92);
    }
    body[theme="light"] .canvas-mobile-sheet {
        background: #fafafa;
        color: rgba(0,0,0,0.88);
    }
}

/* dark theme — adopted from journal canvas */
body[theme="dark"] {
    background-color: #1b1b1b !important;
    color: rgba(255,255,255,.88) !important;
}

body[theme="dark"] header {
    background-color: #1b1b1b !important;
    border-bottom: 1px solid rgba(255,255,255,0.07) !important; 
}

/*body[theme="dark"] .message-body,*/
body[theme="dark"] .web-content-body,
body[theme="dark"] .user-dp,
body[theme="dark"] .el-avatar,
body[theme="dark"] .message-input-container,
body[theme="dark"] .el-step__icon {
    background-color: rgba(255,255,255,0.03) !important;
    color: rgba(255,255,255,.88) !important;
}

body[theme="dark"] .bg-gray {
    background-color: #1b1b1b !important;
}

body[theme="dark"] .el-step__icon.is-text {
    color: rgba(255,255,255,.6) !important;
}

body[theme="dark"] .el-step__title.is-wait {
    color: rgba(255,255,255,.45) !important;
}

body[theme="dark"] .el-step__title.is-process {
    color: #fff !important;
}

body[theme="dark"] .text-sub-heading {
    color: rgba(255,255,255,.9) !important;
}

body[theme="dark"] .el-form--label-top .el-form-item__label {
    color: rgba(255,255,255,.6) !important;
}

body[theme="dark"] .divider {
    border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}

body[theme="dark"] .el-collapse-item__header {
    border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}

body[theme="dark"] .border-1 {
    border: 1px solid rgba(255,255,255,0.07) !important;
}

body[theme="dark"] .active-content {
    background-color: rgba(255,255,255,0.05) !important;
}

body[theme="dark"] .hexagon-outer {
    background-color: rgba(255,255,255,0.03);
}

body[theme="dark"] .list-view-loader-item {
    background-color: rgba(255,255,255,0.03) !important;
    background: rgba(255,255,255,0.03) !important;
}

body[theme="dark"] .interaction-shortcut {
    background-color: #1b1b1b !important;
}

body[theme="dark"] .interaction-shortcut .shortcut {
    background-color: rgba(255,255,255,0.05) !important;
}

body[theme="dark"] .el-radio.is-bordered,
body[theme="dark"] .el-checkbox.is-bordered {
    border: 1px solid rgba(255,255,255,0.07) !important;
}

body[theme="dark"] #or::before,
body[theme="dark"] #or::after {
    background-color: rgba(255,255,255,0.07) !important;
}

body[theme="dark"] .el-popover {
    background-color: #1b1b1b !important;
    border-color: rgba(255,255,255,0.07) !important;
    color: rgba(255,255,255,.88) !important;
}
body[theme="dark"] .el-popover .popper__arrow::after {
    border-bottom-color: #1b1b1b !important;
}
body[theme="dark"] .el-popover .popper__arrow {
    border-bottom-color: rgba(255,255,255,0.07) !important;
}

/* light theme — refined to match journal canvas approach */

body[theme="light"] {
    background-color: #fafafa !important;
    color: rgba(0,0,0,.85) !important;
}

body[theme="light"] header {
    background-color: #fafafa !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

body[theme="light"] .message-input-container {
    background-color: #fff !important;
}

body[theme="light"] .bg-gray {
    background-color: #fafafa !important;
}

body[theme="light"] .ai-interactive-container .message-body,
body[theme="light"] .ai-interactive-container .user-dp,
body[theme="light"] .ai-interactive-container .el-avatar {
    background-color: rgba(124,58,237,0.04) !important;
    color: rgba(0,0,0,.85) !important;
}

body[theme="light"] .user-interactive-container .message-body,
body[theme="light"] .user-interactive-container .user-dp,
body[theme="light"] .user-interactive-container .el-avatar,
body[theme="light"] .el-step__icon {
    background-color: rgba(0,0,0,0.03) !important;
    color: rgba(0,0,0,.85) !important;
}

body[theme="light"] .el-step__icon {
    color: rgba(0,0,0,.7) !important;
}

body[theme="light"] .text-sub-heading {
    color: rgba(0,0,0,.9) !important;
}

body[theme="light"] .divider {
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

body[theme="light"] .border-1 {
    border-bottom: 1px solid rgba(0,0,0,0.08) !important;
}

body[theme="light"] .el-collapse-item__header {
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

body[theme="light"] .active-content {
    background-color: rgba(124,58,237,0.04) !important;
}

body[theme="light"] .hexagon-outer {
    background-color: rgba(0,0,0,0.02);
}

body[theme="light"] .list-view-loader-item {
    background-color: rgba(0,0,0,0.03) !important;
    background: rgba(0,0,0,0.03) !important;
}

body[theme="light"] .interaction-shortcut {
    background-color: #fafafa !important;
}

body[theme="light"] .interaction-shortcut .shortcut {
    background-color: rgba(0,0,0,0.03) !important;
}

body[theme="light"] #or::before,
body[theme="light"] #or::after {
    background-color: rgba(0,0,0,0.08) !important;
}

body[theme="light"] .el-popover {
    background-color: #fff !important;
    border-color: rgba(0,0,0,0.08) !important;
    color: rgba(0,0,0,.85) !important;
}

/* others */

/*
.el-collapse .el-collapse-item__header:last-child {
    border-bottom: 0px solid transparent !important;
}
*/

.el-collapse-item__content,
.el-collapse-item__header,
.el-step__icon {
    color: inherit !important;
}

.text-sub-heading {
    font-size: 1.5rem !important;
}

.nav-top-icon {
    font-size: 25px !important;
    cursor: pointer;
}

.nav-icon.active,
.active .nav-icon {
    background: -webkit-linear-gradient(-70deg, #db469f, #2188ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

.nav-menu .nav-icon,
.message-input .bx {
    color: #b4b4b4;
}

.text-gray {
    color: #b4b4b4;

}

.container-interactive {
    height: 100%;
}

.container-interactive>.message-input {

    width: 100%;
}

.message-input .el-input__inner,
.message-input .el-textarea__inner {
    background-color: transparent;
    border: 0px !important;
    width: 100% !important;
    color: inherit;
}


.message-input .el-input__inner::placeholder,
.message-input .el-textarea__inner::placeholder {}

.user-dp {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1px solid #f1f1f1 !important;

}

.user-dp>div {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    color: inherit !important;
    font-size: 11px !important;
}



.message-body {
    /*
    padding: 15px;*/
    border-radius: 12px !important;
    display: inline-table;
    border-style: none !important;
}

.ai-interactive-container {}

.user-interactive-container {
    flex-direction: row-reverse;
    text-align: left;
}

.message-body,
.web-content-body,
.bg-gray {
    /*
    background-color: #2a2828 ;
    /*background-color:  #313131 !important;*/

}

.ai-interactive-container .message-body {
    /*
    background-color: #f6f4fa !important;
   */
}

.user-interactive-container .message-body {
    /*
    background-color: #fbf1f1 !important;
    */
}

#customizer {
    position: fixed;
    top: 0;
    padding: 20px 5px;
    background-color: #fff;
    width: 100px;
    right: -100px;
    transition: all 0.2s cubic-bezier(0.455, 0.03, 0.515, 0.955);
    z-index: 99999;
    font-weight: inherit;
    bottom: 0;
}

#customizer .options {
    background: -webkit-linear-gradient(-70deg, #db469f, #2188ff);
    width: 30px;
    position: absolute;
    top: 250px;
    left: -25px;
    cursor: pointer;
    border-left: 0;
    border-radius: 0;
    padding: 0;
    border-radius: 5px;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border: 0px solid #e7e7e7;
    border-right: 0;
    box-sizing: border-box;
}

.scroll-container {
    width: 900px;
    overflow-x: auto;
    overflow-y: hidden;
    display: flex;
    gap: 10px;

}

.item {
    flex-shrink: 0;
    /* Prevent items from shrinking to fit the container */
    width: 100px;
    /* Set a fixed width for each item */
    height: 110px;
    display: flex;
}



@media only screen and (max-width: 768px) {
    .scroll-container {
        width: 340px;
    }
}

/* ── from components/discover/interest-list-view.vue ── */
body[theme="light"] .dc-item { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .dc-item-title { color: rgba(0,0,0,.9); }
body[theme="light"] .dc-item-desc { color: rgba(0,0,0,.5); }
body[theme="light"] .dc-item-count { color: #7c3aed; background: rgba(124,58,237,.08); }
body[theme="light"] .dc-post-card { border-color: rgba(0,0,0,.08); }
body[theme="light"] .dc-post-card:hover { background: rgba(124,58,237,.04); border-color: rgba(124,58,237,.25); }
body[theme="light"] .dc-post-title { color: rgba(0,0,0,.9); }
body[theme="light"] .dc-post-snippet { color: rgba(0,0,0,.55); }
body[theme="light"] .dc-product-card { border-color: rgba(0,0,0,.08); }
body[theme="light"] .dc-product-card:hover { background: rgba(124,58,237,.04); border-color: rgba(124,58,237,.25); }
body[theme="light"] .dc-product-thumb { background: rgba(0,0,0,.04); }
body[theme="light"] .dc-product-name { color: rgba(0,0,0,.9); }
body[theme="light"] .dc-product-desc { color: rgba(0,0,0,.55); }
body[theme="light"] .dc-product-price { color: #7c3aed; }
body[theme="light"] .dc-chip { background: rgba(0,0,0,.03); border-color: rgba(0,0,0,.08); color: rgba(0,0,0,.7); }
body[theme="light"] .dc-chip:hover { background: rgba(124,58,237,.06); border-color: rgba(124,58,237,.25); color: #7c3aed; }

/* ── from components/nav-menu/account-dropdown.vue ── */
body[theme="light"] .account-dropdown-popover.el-popover {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(0, 0, 0, 0.08);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

/* ── from components/nav-menu/chat-list.vue ── */
body[theme="light"] .chat-list-popover.el-popover {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(0, 0, 0, 0.08);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

/* ── from components/nav-menu/top.vue ── */
body[theme="light"] .drawer-divider {
    background: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .drawer-account-section .divider {
    border-color: rgba(0, 0, 0, 0.07);
}

/* ── from components/account/apps.vue ── */
body[theme="light"] .apps-pagination-btn {
    border-color: rgba(124, 58, 237, 0.28);
    color: #7c3aed;
}

/* ── from components/interaction/chat-empty-state.vue ── */
body[theme="dark"] .chat-empty-title { color: rgba(255,255,255,0.95); }
body[theme="dark"] .chat-empty-subtitle { color: rgba(255,255,255,0.5); }
body[theme="dark"] .chat-empty-card {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.08);
}
body[theme="dark"] .chat-empty-card:hover {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.15);
}
body[theme="dark"] .chat-empty-card-icon { background: rgba(255,255,255,0.04); }
body[theme="dark"] .chat-empty-card-title { color: rgba(255,255,255,0.95); }
body[theme="dark"] .chat-empty-card-desc { color: rgba(255,255,255,0.5); }

body[theme="light"] .chat-empty-title { color: rgba(0,0,0,0.9); }
body[theme="light"] .chat-empty-subtitle { color: rgba(0,0,0,0.5); }
body[theme="light"] .chat-empty-card {
    background: rgba(0,0,0,0.02);
    border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .chat-empty-card:hover {
    background: rgba(0,0,0,0.04);
    border-color: rgba(0,0,0,0.15);
}
body[theme="light"] .chat-empty-card-icon { background: rgba(0,0,0,0.04); }
body[theme="light"] .chat-empty-card-title { color: rgba(0,0,0,0.9); }
body[theme="light"] .chat-empty-card-desc { color: rgba(0,0,0,0.5); }

/* ── from components/interaction/sandbox-stream-viewer.vue ── */
body[theme="light"] .ssv-overlay {
    background: rgba(0, 0, 0, 0.45);
}
body[theme="light"] .ssv-container {
    background: #ffffff;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.15);
}
body[theme="light"] .ssv-header {
    background: #f6f4fa;
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .ssv-url {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .ssv-close {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .ssv-close:hover {
    color: #1a1a1a;
    background: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .ssv-loading {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .ssv-spinner {
    border-color: rgba(0, 0, 0, 0.08);
    border-top-color: #7c3aed;
}
body[theme="light"] .ssv-bubble-inner {
    background: #ffffff;
    border-color: rgba(124, 58, 237, 0.3);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}
body[theme="light"] .ssv-bubble-coords {
    color: rgba(0, 0, 0, 0.4);
}
body[theme="light"] .ssv-bubble-input {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.1);
    color: #1a1a1a;
}
body[theme="light"] .ssv-bubble-input::placeholder {
    color: rgba(0, 0, 0, 0.3);
}
body[theme="light"] .ssv-bubble-btn--click {
    background: rgba(124, 58, 237, 0.08);
    color: #6d28d9;
}
body[theme="light"] .ssv-bubble-btn--click:hover {
    background: rgba(124, 58, 237, 0.14);
}
body[theme="light"] .ssv-bubble-btn--close {
    background: rgba(0, 0, 0, 0.04);
    color: rgba(0, 0, 0, 0.5);
}

/* ── from components/interaction/canvas/planner-drawer.vue ── */
body[theme="light"] .pc-loading-overlay,
body[theme="light"] .jc-loading-overlay {
    background: rgba(250,250,250,0.7) !important;
    color: rgba(0,0,0,.5) !important;
}
body[theme="light"] .pc-block--milestone { background: rgba(124,58,237,0.04); }
body[theme="light"] .pc-block--milestone .pc-block-icon { color: #7c3aed; }
body[theme="light"] .pc-block--milestone .pc-block-title { color: #7c3aed; }
body[theme="light"] .pc-block--task { background: rgba(5,150,105,0.03); }
body[theme="light"] .pc-block--task:hover { background: rgba(5,150,105,0.07); }
body[theme="light"] .pc-block-check { color: rgba(0,0,0,0.2); }
body[theme="light"] .pc-block-check:hover { color: #059669; }
body[theme="light"] .pc-block-due { color: rgba(0,0,0,0.4); background: rgba(0,0,0,0.04); }
body[theme="light"] .pc-block--deadline { background: rgba(220,38,38,0.03); }
body[theme="light"] .pc-block--deadline .pc-block-icon { color: #dc2626; }
body[theme="light"] .pc-block--deadline .pc-block-text { color: #dc2626; }
body[theme="light"] .pc-block--in_progress { background: rgba(59,130,246,0.04); }
body[theme="light"] .pc-block--blocked { background: rgba(220,38,38,0.04); }
body[theme="dark"] .pc-bubble, .pc-bubble { background: #2a2828; border: 1px solid #3f3e3e; box-shadow: 0 8px 24px rgba(0,0,0,0.4); color: #f1f1f1; }
body[theme="dark"] .pc-bubble-entity, .pc-bubble-entity { border-bottom: 1px solid #3f3e3e; }
body[theme="dark"] .pc-bubble-entity-meta, .pc-bubble-entity-meta { color: rgba(241,241,241,0.45); }
body[theme="dark"] .pc-bubble-actions button, .pc-bubble-actions button { background: rgba(255,255,255,0.06); color: rgba(241,241,241,0.7); }
body[theme="dark"] .pc-bubble-actions button:hover, .pc-bubble-actions button:hover { background: rgba(167,139,250,0.2); color: #a78bfa; }
body[theme="dark"] .pc-bubble-loading, .pc-bubble-loading { color: rgba(241,241,241,0.5); }
body[theme="light"] .pc-bubble { background: #fff !important; border: 1px solid rgba(0,0,0,0.08) !important; box-shadow: 0 8px 24px rgba(0,0,0,0.1) !important; color: #1a1a1a !important; }
body[theme="light"] .pc-bubble-entity { border-bottom: 1px solid rgba(0,0,0,0.06) !important; }
body[theme="light"] .pc-bubble-entity-meta { color: rgba(0,0,0,0.45) !important; }
body[theme="light"] .pc-bubble-actions button { background: rgba(0,0,0,0.04) !important; color: rgba(0,0,0,0.65) !important; }
body[theme="light"] .pc-bubble-actions button:hover { background: rgba(124,58,237,0.1) !important; color: #7c3aed !important; }
body[theme="light"] .pc-bubble-loading { color: rgba(0,0,0,0.4) !important; }
body[theme="light"] .pc-root { color: rgba(0,0,0,.85); }
body[theme="light"] .pc-topbar { border-bottom-color: rgba(0,0,0,0.06); }
body[theme="light"] .pc-title-input { background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.08); }
body[theme="light"] .pc-icon-btn:hover { background: rgba(0,0,0,0.05); }
body[theme="light"] .pc-icon-btn.active { background: rgba(124,58,237,0.08); color: #7c3aed; }
body[theme="light"] .pc-stat-pill { background: rgba(52,211,153,0.08); border-color: rgba(52,211,153,0.15); }
body[theme="light"] .pc-toggle { background: rgba(0,0,0,0.04); }
body[theme="light"] .pc-toggle-btn.active { background: rgba(0,0,0,0.08); }
body[theme="light"] .pc-toolbar { border-bottom-color: rgba(0,0,0,0.06); }
body[theme="light"] .pc-toolbar-sep { background: rgba(0,0,0,0.08); }
body[theme="light"] .pc-toolbar-btn:hover { background: rgba(0,0,0,0.05); }
body[theme="light"] .pc-toolbar-btn.active { background: rgba(124,58,237,0.08); color: #7c3aed; }
body[theme="light"] .pc-insert-btn { background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.08); color: rgba(0,0,0,.6); }
body[theme="light"] .pc-insert-btn:hover { background: rgba(0,0,0,0.06); color: rgba(0,0,0,.85); }
body[theme="light"] .pc-paper { background: #fff; border-color: rgba(0,0,0,0.06); }
body[theme="light"] .pc-paper-title { color: rgba(0,0,0,.85); }
body[theme="light"] .pc-preview-inner { color: rgba(0,0,0,.85); }
body[theme="light"] .pc-progress-bar { background: rgba(0,0,0,0.06); }
body[theme="light"] .pc-suggestions-col { border-left-color: rgba(0,0,0,0.06) !important; }
body[theme="light"] .pc-sugg-header { border-bottom-color: rgba(0,0,0,0.06) !important; }
body[theme="light"] .pc-sugg-prompt-input { background: rgba(0,0,0,0.03) !important; border: 1px solid rgba(0,0,0,0.08) !important; color: rgba(0,0,0,.85) !important; }
body[theme="light"] .pc-sugg-prompt-btn { color: #7c3aed !important; }
body[theme="light"] .pc-sugg-card { border: 1px solid rgba(0,0,0,0.06) !important; background: #fff !important; }
body[theme="light"] .pc-sugg-card:hover { border-color: rgba(124,58,237,0.3) !important; background: rgba(124,58,237,0.04) !important; }
body[theme="light"] .pc-sugg-loading, body[theme="light"] .pc-sugg-empty { color: rgba(0,0,0,.4) !important; }
body[theme="light"] .pc-epg-chip { background: rgba(0,0,0,0.03) !important; border: 1px solid rgba(0,0,0,0.08) !important; color: rgba(0,0,0,.75) !important; }
body[theme="light"] .pc-epg-chip:hover { background: rgba(124,58,237,0.08) !important; border-color: rgba(124,58,237,0.25) !important; color: #7c3aed !important; }
body[theme="light"] .pc-epg-neutral { border-color: rgba(0,0,0,.1) !important; color: rgba(0,0,0,.6) !important; }
body[theme="light"] .pc-routine-card { color: rgba(0,0,0,.65) !important; background: rgba(0,0,0,.03) !important; }
body[theme="light"] .pc-sugg-tabs { border-bottom: 1px solid rgba(0,0,0,.08) !important; }
body[theme="light"] .pc-sugg-tab { color: rgba(0,0,0,.4) !important; background: none !important; }
body[theme="light"] .pc-sugg-tab.active { background: rgba(0,0,0,.06) !important; color: rgba(0,0,0,.85) !important; }
body[theme="light"] .pc-sugg-tab--context.active { background: rgba(16,185,129,.1) !important; color: #059669 !important; }
body[theme="light"] .pc-history-card { border: 1px solid rgba(0,0,0,.08) !important; background: rgba(0,0,0,.02) !important; }
body[theme="light"] .pc-history-label { color: rgba(0,0,0,.45) !important; }
body[theme="light"] .pc-history-text { color: rgba(0,0,0,.85) !important; }
body[theme="light"] .pc-history-divider { border-top: 1px solid rgba(0,0,0,.06) !important; }

/* ── from components/interaction/canvas/app-cpanel.vue ── */

body[theme="dark"]  .acp-drawer .el-drawer { background: #2a2828 !important; color: #f1f1f1 !important; }
body[theme="light"] .acp-drawer .el-drawer { background: #f6f4fa !important; color: #1a1a1a !important; }

/* ── from components/interaction/canvas/journal-drawer.vue ── */
body[theme="dark"] .jc-bubble { background: #2a2828 !important; border: 1px solid #3f3e3e !important; box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important; color: #f1f1f1 !important; }
body[theme="dark"] .jc-bubble-entity { border-bottom: 1px solid #3f3e3e !important; }
body[theme="dark"] .jc-bubble-entity-meta { color: rgba(241,241,241,0.45) !important; }
body[theme="dark"] .jc-bubble-actions button { background: rgba(255,255,255,0.06) !important; color: rgba(241,241,241,0.7) !important; }
body[theme="dark"] .jc-bubble-actions button:hover { background: rgba(167,139,250,0.2) !important; color: #a78bfa !important; }
body[theme="dark"] .jc-bubble-loading { color: rgba(241,241,241,0.5) !important; }

body[theme="light"] .jc-bubble { background: #fff !important; border: 1px solid rgba(0,0,0,0.08) !important; box-shadow: 0 8px 24px rgba(0,0,0,0.1) !important; color: #1a1a1a !important; }
body[theme="light"] .jc-bubble-entity { border-bottom: 1px solid rgba(0,0,0,0.06) !important; }
body[theme="light"] .jc-bubble-entity-header { color: #1a1a1a !important; }
body[theme="light"] .jc-bubble-entity-meta { color: rgba(0,0,0,0.45) !important; }
body[theme="light"] .jc-bubble-actions button { background: rgba(0,0,0,0.04) !important; color: rgba(0,0,0,0.65) !important; }
body[theme="light"] .jc-bubble-actions button:hover { background: rgba(124,58,237,0.1) !important; color: #7c3aed !important; }
body[theme="light"] .jc-bubble-loading { color: rgba(0,0,0,0.4) !important; }
body[theme="light"] .jc-root {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .jc-topbar {
    border-bottom-color: rgba(0,0,0,0.06);
}
body[theme="light"] .jc-title-input {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .jc-icon-btn:hover {
    background: rgba(0,0,0,0.05);
}
body[theme="light"] .jc-icon-btn.active {
    background: rgba(124,58,237,0.08);
    color: #7c3aed;
}
body[theme="light"] .jc-stat-pill {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.06);
}
body[theme="light"] .jc-toggle {
    background: rgba(0,0,0,0.04);
}
body[theme="light"] .jc-toggle-btn.active {
    background: rgba(0,0,0,0.08);
}
body[theme="light"] .jc-toolbar {
    border-bottom-color: rgba(0,0,0,0.06);
}
body[theme="light"] .jc-toolbar-sep {
    background: rgba(0,0,0,0.08);
}
body[theme="light"] .jc-toolbar-btn:hover {
    background: rgba(0,0,0,0.05);
}
body[theme="light"] .jc-toolbar-btn.active {
    background: rgba(124,58,237,0.08);
    color: #7c3aed;
}
body[theme="light"] .jc-topbar-divider {
    background: rgba(0,0,0,0.08);
}
body[theme="light"] .jc-topbar-share-btn {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,.6);
}
body[theme="light"] .jc-topbar-share-btn:hover {
    background: rgba(0,0,0,0.06);
    color: rgba(0,0,0,.85);
}
body[theme="light"] .jc-paper {
    background: #fff;
    border-color: rgba(0,0,0,0.06);
}
body[theme="light"] .jc-paper-title {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .jc-preview-inner {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .jc-suggestions-col {
    border-left-color: rgba(0,0,0,0.06) !important;
}
body[theme="light"] .jc-sugg-header {
    border-bottom-color: rgba(0,0,0,0.06) !important;
}
body[theme="light"] .jc-sugg-tabs { border-bottom: 1px solid rgba(0,0,0,.08) !important; }
body[theme="light"] .jc-sugg-tab { color: rgba(0,0,0,.4) !important; background: none !important; }
body[theme="light"] .jc-sugg-tab.active { background: rgba(0,0,0,.06) !important; color: rgba(0,0,0,.85) !important; }
body[theme="light"] .jc-sugg-tab--context.active { background: rgba(16,185,129,.1) !important; color: #059669 !important; }
body[theme="light"] .jc-sugg-prompt-input {
    background: rgba(0,0,0,0.03) !important;
    border-color: rgba(0,0,0,0.08) !important;
    color: rgba(0,0,0,.85) !important;
}
body[theme="light"] .jc-sugg-prompt-btn { color: #7c3aed !important; }
body[theme="light"] .jc-sugg-card {
    border-color: rgba(0,0,0,0.06) !important;
    background: #fff !important;
}
body[theme="light"] .jc-sugg-card:hover {
    border-color: rgba(124,58,237,0.3) !important;
    background: rgba(124,58,237,0.04) !important;
}
body[theme="light"] .jc-sugg-loading, body[theme="light"] .jc-sugg-empty { color: rgba(0,0,0,.4) !important; }
body[theme="light"] .jc-epg-chip {
    background: rgba(0,0,0,0.03) !important;
    border-color: rgba(0,0,0,0.08) !important;
    color: rgba(0,0,0,.75) !important;
}
body[theme="light"] .jc-epg-chip:hover {
    background: rgba(124,58,237,0.08) !important;
    border-color: rgba(124,58,237,0.25) !important;
    color: #7c3aed !important;
}
body[theme="light"] .jc-epg-like { color: #059669 !important; border-color: rgba(5,150,105,0.25) !important; }
body[theme="light"] .jc-epg-dislike { color: #dc2626 !important; border-color: rgba(220,38,38,0.25) !important; }
body[theme="light"] .jc-epg-allergy { color: #dc2626 !important; border-color: rgba(220,38,38,0.4) !important; background: rgba(220,38,38,0.05) !important; }
body[theme="light"] .jc-epg-intolerance { color: #d97706 !important; border-color: rgba(217,119,6,0.25) !important; }
body[theme="light"] .jc-epg-neutral { color: rgba(0,0,0,.45) !important; border-color: rgba(0,0,0,0.08) !important; }

/* ── from components/interaction/canvas/workflow-drawer.vue ── */
body[theme="light"] .wfc-commerce-cta {
    background: linear-gradient(135deg, rgba(248,113,113,0.05), rgba(124,58,237,0.05));
    border-color: rgba(248,113,113,0.2);
}
body[theme="light"] .wfc-commerce-cta:hover {
    background: linear-gradient(135deg, rgba(248,113,113,0.1), rgba(124,58,237,0.1));
}

/* ── from components/interaction/action/schema-preview-tag-view.vue ── */
body[theme="light"] .schema-preview {
    border-color: rgba(14, 165, 233, 0.25);
    background: rgba(14, 165, 233, 0.04);
}
body[theme="light"] .schema-preview-header {
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .schema-preview-status--cancelled {
    color: rgba(0, 0, 0, 0.5);
    background: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .schema-preview-code {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .schema-preview-pill {
    background: rgba(14, 165, 233, 0.1);
    color: #0369a1;
}
body[theme="light"] .schema-preview-btn--ghost {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.75);
}
body[theme="light"] .schema-preview-btn--ghost:hover:not(:disabled) {
    background: rgba(0, 0, 0, 0.08);
}
body[theme="light"] .schema-preview-footer-msg--cancelled { color: rgba(0, 0, 0, 0.5); }

/* ── from components/interaction/action/plan-canvas-tag-view.vue ── */
body[theme="light"] .pctv-wrap { border-color: rgba(0,0,0,0.06); background: rgba(0,0,0,0.02); }
body[theme="light"] .pctv-wrap:hover { border-color: rgba(124,58,237,0.25); background: rgba(124,58,237,0.03); }
body[theme="light"] .pctv-progress-bar { background: rgba(0,0,0,0.06); }

/* ── from components/interaction/action/action-tag-view.vue ── */
body[theme="dark"] .action-detail-drawer {
    background: #1b1b1b !important;
    color: rgba(255,255,255,.88) !important;
}
body[theme="dark"] .action-detail-drawer .el-drawer__body {
    background: #1b1b1b !important;
}
body[theme="dark"] .action-detail-icon {
    background: rgba(255,255,255,0.05);
}
body[theme="dark"] .action-detail-title {
    color: rgba(255,255,255,.88);
}
body[theme="dark"] .action-detail-desc {
    color: rgba(255,255,255,.45);
}
body[theme="dark"] .action-detail-section-label {
    color: rgba(255,255,255,.35);
}
body[theme="dark"] .action-detail-tag {
    background: rgba(255,255,255,0.05) !important;
    border-color: rgba(255,255,255,0.07) !important;
    color: rgba(255,255,255,.88) !important;
}
body[theme="dark"] .action-detail-tag:hover {
    border-color: rgba(255,255,255,0.2) !important;
    background: rgba(255,255,255,0.08) !important;
    color: #fff !important;
}
body[theme="dark"] .action-detail-go {
    border: 1px solid rgba(255,255,255,0.07);
    background: rgba(255,255,255,0.05);
    color: rgba(255,255,255,.88);
}
body[theme="dark"] .action-detail-go:hover {
    border-color: rgba(255,255,255,0.2);
    background: rgba(255,255,255,0.08);
}
body[theme="light"] .action-detail-drawer {
    background: #fafafa !important;
    color: rgba(0,0,0,.85) !important;
}
body[theme="light"] .action-detail-drawer .el-drawer__body {
    background: #fafafa !important;
}
body[theme="light"] .action-detail-icon {
    background: rgba(124,58,237,0.04);
}
body[theme="light"] .action-detail-title {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .action-detail-desc {
    color: rgba(0,0,0,.5);
}
body[theme="light"] .action-detail-section-label {
    color: rgba(0,0,0,.4);
}
body[theme="light"] .action-detail-tag {
    background: rgba(0,0,0,0.03) !important;
    border-color: rgba(0,0,0,0.06) !important;
    color: rgba(0,0,0,.85) !important;
}
body[theme="light"] .action-detail-tag:hover {
    border-color: rgba(124,58,237,0.3) !important;
    background: rgba(124,58,237,0.04) !important;
    color: rgba(0,0,0,.85) !important;
}
body[theme="light"] .action-detail-go {
    border: 1px solid rgba(0,0,0,0.06);
    background: rgba(0,0,0,0.03);
    color: rgba(0,0,0,.85);
}
body[theme="light"] .action-detail-go:hover {
    border-color: rgba(124,58,237,0.3);
    background: rgba(124,58,237,0.04);
}

/* ── from components/interaction/action/logic-preview-tag-view.vue ── */
body[theme="light"] .logic-preview {
    border-color: rgba(5, 150, 105, 0.25);
    background: rgba(5, 150, 105, 0.04);
}
body[theme="light"] .logic-preview-header {
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .logic-preview-status--cancelled {
    color: rgba(0, 0, 0, 0.5);
    background: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .logic-preview-code {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .logic-preview-pill {
    background: rgba(5, 150, 105, 0.1);
    color: #047857;
}
body[theme="light"] .logic-preview-btn--ghost {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.75);
}
body[theme="light"] .logic-preview-btn--ghost:hover:not(:disabled) {
    background: rgba(0, 0, 0, 0.08);
}
body[theme="light"] .logic-preview-footer-msg--cancelled { color: rgba(0, 0, 0, 0.5); }

/* ── from components/interaction/action/trigger-preview-tag-view.vue ── */
body[theme="light"] .trigger-preview {
    border-color: rgba(124, 58, 237, 0.25);
    background: rgba(124, 58, 237, 0.04);
}
body[theme="light"] .trigger-preview-header {
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .trigger-preview-status--cancelled {
    color: rgba(0, 0, 0, 0.5);
    background: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .trigger-preview-code {
    background: rgba(0, 0, 0, 0.05);
}
body[theme="light"] .trigger-preview-filter-block,
body[theme="light"] .trigger-preview-action-block {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .trigger-preview-footer {
    border-top-color: rgba(0, 0, 0, 0.06);
    background: rgba(0, 0, 0, 0.015);
}
body[theme="light"] .trigger-preview-btn {
    border-color: rgba(0, 0, 0, 0.12);
}
body[theme="light"] .trigger-preview-btn--ghost:hover {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .trigger-preview-footer-msg {
    border-top-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .trigger-preview-footer-msg--cancelled { color: rgba(0, 0, 0, 0.5); }
body[theme="light"] .trigger-preview-link { color: #7c3aed; }

/* ── from components/interaction/chat-input-bar.vue ── */
body[theme="light"] .chat-palette-inner {
    background: #fff;
    border-color: #e4e7ed;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
body[theme="light"] .chat-md-preview .md-pre,
body[theme="light"] .chat-md-preview .md-code { background: rgba(0,0,0,0.05); }

/* ── from components/interaction/message.vue ── */
body[theme="light"] .msg-user-bubble { background: rgba(0,0,0,0.05); }
body[theme="light"] .ai-msg-tool-btn { color: rgba(0,0,0,0.45); }
body[theme="light"] .ai-msg-tool-btn:hover {
    background: rgba(0,0,0,0.06);
    color: rgba(0,0,0,0.85);
}
body[theme="light"] .ai-msg-tool-btn.active {
    color: #7c3aed;
    background: rgba(124,58,237,0.1);
}
body[theme="light"] .follow-up-section { border-top-color: rgba(0,0,0,0.06); }
body[theme="light"] .follow-up-label { color: rgba(0,0,0,0.5); }
body[theme="light"] .follow-up-chip {
    border-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,0.75);
}
body[theme="light"] .follow-up-chip:hover {
    background: rgba(124,58,237,0.04);
    border-color: rgba(124,58,237,0.25);
    color: rgba(0,0,0,0.95);
}
body[theme="light"] .follow-up-chip:hover i { color: #7c3aed; }
body[theme="light"] .msg-file-attachment {
    background: rgba(37,99,235,0.06);
    border-color: rgba(37,99,235,0.15);
}
body[theme="light"] .wf-tag-card { border-color: rgba(0,0,0,0.06); background: rgba(0,0,0,0.02); }
body[theme="light"] .wf-tag-card:hover { border-color: rgba(220,38,38,0.25); background: rgba(220,38,38,0.03); }
body[theme="light"] .msg-table-wrap { border-color: rgba(0,0,0,0.1); }
body[theme="light"] .msg-table th { background: rgba(0,0,0,0.03); opacity: 1; color: rgba(0,0,0,0.6); }
body[theme="light"] .msg-table th, body[theme="light"] .msg-table td { border-bottom-color: rgba(0,0,0,0.08); }
body[theme="light"] .msg-table td { color: rgba(0,0,0,0.8); }
body[theme="light"] .msg-inline-code { background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.1); color: #1a1a1a; }
body[theme="light"] .msg-hr { border-top-color: rgba(0,0,0,0.1); }
body[theme="light"] .report-reason-chip {
    border-color: #dcdfe6;
}
body[theme="light"] .epg-provenance-chip {
    background: rgba(167, 139, 250, 0.06);
    border-color: rgba(167, 139, 250, 0.22);
    color: #333;
}

/* ── from components/interaction/chat.vue ── */
body[theme="light"] .chat-account-status { border-top-color: rgba(0,0,0,0.06); }
body[theme="light"] .chat-file-pill {
    background: rgba(0,0,0,0.04);
    border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .chat-trigger-edit-pill {
    background: rgba(124, 58, 237, 0.06);
    border-color: rgba(124, 58, 237, 0.28);
    color: #7c3aed;
}
body[theme="light"] .chat-database-edit-pill {
    background: rgba(14, 165, 233, 0.06);
    border-color: rgba(14, 165, 233, 0.28);
    color: #0369a1;
}
body[theme="light"] .chat-logic-edit-pill {
    background: rgba(5, 150, 105, 0.06);
    border-color: rgba(5, 150, 105, 0.28);
    color: #047857;
}
body[theme="light"] .wf-approval-card {
    border-color: rgba(220,38,38,0.15);
    background: rgba(220,38,38,0.02);
}
body[theme="light"] .chat-history-search-toggle { border-color: #e4e7ed; }

/* ── from components/interaction/editor-extensions/editor-shared.css ── */
body[theme="light"] .editor-placeholder::before {
    color: rgba(0,0,0,.2);
}
body[theme="light"] .slash-menu {
    background: #fff;
    border-color: rgba(0,0,0,0.08);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}
body[theme="light"] .slash-menu-item:hover,
body[theme="light"] .slash-menu-item--active {
    background: rgba(0,0,0,0.04);
}
body[theme="light"] .slash-menu-icon {
    background: rgba(0,0,0,0.04);
    color: rgba(0,0,0,0.5);
}
body[theme="light"] .slash-menu-item[data-ai="true"] .slash-menu-icon { background: rgba(124,58,237,0.08); color: #7c3aed; }
body[theme="light"] .slash-menu-label { color: rgba(0,0,0,.85); }
body[theme="light"] .slash-menu-desc { color: rgba(0,0,0,.4); }
body[theme="light"] .ProseMirror th, body[theme="light"] .ProseMirror td, body[theme="light"] .pc-prose th, body[theme="light"] .pc-prose td, body[theme="light"] .jc-preview-inner th, body[theme="light"] .jc-preview-inner td { border-color: rgba(0,0,0,0.08); }
body[theme="light"] .ProseMirror th, body[theme="light"] .pc-prose th, body[theme="light"] .jc-preview-inner th { background: rgba(0,0,0,0.03); }
body[theme="light"] .ProseMirror .selectedCell { background: rgba(124,58,237,0.08); }
body[theme="light"] .editor-upload-progress { background: rgba(0,0,0,0.04); }
body[theme="light"] .ProseMirror a { color: #7c3aed; }
body[theme="light"] .ProseMirror pre { background: rgba(0,0,0,0.03); }
body[theme="light"] .ProseMirror code { background: rgba(0,0,0,0.06); }
body[theme="light"] .ProseMirror hr { border-top-color: rgba(0,0,0,0.08); }
body[theme="light"] .editor-mention { background: rgba(124,58,237,0.1); color: #7c3aed; }
body[theme="light"] .mention-menu { background: #fff; border-color: rgba(0,0,0,0.08); box-shadow: 0 8px 24px rgba(0,0,0,0.1); }
body[theme="light"] .mention-menu-item { color: rgba(0,0,0,.8); }
body[theme="light"] .mention-menu-item:hover, body[theme="light"] .mention-menu-item--active { background: rgba(0,0,0,0.04); }
body[theme="light"] .editor-comment-mark {
    background: rgba(245,158,11,0.12);
    border-bottom-color: rgba(245,158,11,0.3);
}
body[theme="light"] .editor-eureka-mark[data-eureka-type="eureka"] {
    background: rgba(217,119,6,0.1);
    border-bottom-color: rgba(217,119,6,0.4);
}
body[theme="light"] .editor-eureka-mark[data-eureka-type="correlation"] {
    background: rgba(37,99,235,0.1);
    border-bottom-color: rgba(37,99,235,0.3);
}
body[theme="light"] .editor-eureka-mark[data-eureka-type="supporting"] {
    background: rgba(5,150,105,0.1);
    border-bottom-color: rgba(5,150,105,0.3);
}
body[theme="light"] .editor-eureka-mark[data-eureka-type="contradicting"] {
    background: rgba(220,38,38,0.1);
    border-bottom-color: rgba(220,38,38,0.3);
}
body[theme="light"] .editor-eureka-mark:hover {
    box-shadow: 0 0 12px rgba(217,119,6,0.15);
}
body[theme="light"] .pc-comment-popover, body[theme="light"] .jc-comment-popover {
    background: #fff;
    border-color: rgba(0,0,0,0.08);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
body[theme="light"] .pc-comment-popover-header { border-bottom-color: rgba(0,0,0,0.06); }
body[theme="light"] .pc-comment-text, body[theme="light"] .jc-comment-text { color: rgba(0,0,0,.8); }
body[theme="light"] .pc-comment-author, body[theme="light"] .jc-comment-author { color: #7c3aed; }
body[theme="light"] .pc-comment-input, body[theme="light"] .jc-comment-input {
    background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .editor-help-tip { color: rgba(0,0,0,.6); }
body[theme="light"] .editor-help-key { background: rgba(0,0,0,0.05); color: rgba(0,0,0,.8); }
body[theme="light"] .editor-collab-avatar {
    border-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-node-summary {
    background: rgba(37,99,235,0.04);
    border-color: rgba(37,99,235,0.12);
}
body[theme="light"] .rc-node-finding {
    border-left-color: #2563eb;
    background: rgba(37,99,235,0.03);
}
body[theme="light"] .rc-node-methodology {
    background: rgba(0,0,0,0.02);
    border-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-node-conclusion {
    border-top-color: rgba(37,99,235,0.15);
}
body[theme="light"] .rc-node-citation-block {
    background: rgba(37,99,235,0.03);
}
body[theme="light"] .rc-node-citation-block::before {
    background: rgba(37,99,235,0.1);
    color: #2563eb;
}
body[theme="light"] .rc-citation-ref {
    background: rgba(37,99,235,0.1);
    color: #2563eb;
}
body[theme="light"] .rc-citation-ref:hover {
    background: rgba(37,99,235,0.2);
}

/* ── from components/nav-menu/account-dropdown.vue (pass 2) ── */
body[theme="light"] .account-dropdown-trigger:hover,
body[theme="light"] .account-dropdown-trigger--open {
    background: rgba(0, 0, 0, 0.05);
}
body[theme="light"] .account-dropdown-dot {
    border-color: #ffffff;
}
body[theme="light"] .account-dropdown-header-name,
body[theme="light"] .account-dropdown-header-email {
    color: #1a1a1a;
}
body[theme="light"] .account-dropdown-divider {
    background: rgba(0, 0, 0, 0.07);
}
body[theme="light"] .account-dropdown-item {
    color: #4a4a4a;
}
body[theme="light"] .account-dropdown-item:hover {
    background: rgba(124, 58, 237, 0.08);
    color: #1a1a1a;
}

/* ── from components/nav-menu/chat-list.vue (pass 2) ── */
body[theme="light"] .chat-list-new-btn {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .chat-list-new-btn:hover {
    background: rgba(124, 58, 237, 0.08);
    color: #7c3aed;
}
body[theme="light"] .chat-list-search {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .chat-list-search-input::placeholder {
    color: rgba(0, 0, 0, 0.3);
}
body[theme="light"] .chat-list-item {
    color: rgba(0, 0, 0, 0.65);
}
body[theme="light"] .chat-list-item:hover {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.95);
}
body[theme="light"] .chat-list-item--active {
    background: rgba(124, 58, 237, 0.08);
    color: #7c3aed;
}
body[theme="light"] .chat-list-item-menu-btn {
    color: rgba(0, 0, 0, 0.4);
}
body[theme="light"] .chat-list-item-menu-btn:hover {
    background: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.9);
}
body[theme="light"] .chat-list-popover-item {
    color: #4a4a4a;
}
body[theme="light"] .chat-list-popover-item:hover {
    background: rgba(124, 58, 237, 0.08);
    color: #1a1a1a;
}

/* ── from components/running-block/user-header.vue (pass 2) ── */

body[theme="light"] .topbar-cart {
  color: rgba(0, 0, 0, 0.65);
}
body[theme="light"] .topbar-cart:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.95);
}
body[theme="light"] .topbar-tab,
body[theme="light"] .fy-tab {
  color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .topbar-tab:hover,
body[theme="light"] .fy-tab:hover {
  color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .topbar-tab-active,
body[theme="light"] .fy-tab-active {
  color: #1a1a1a;
}
body[theme="light"] .topbar-tab-active::after,
body[theme="light"] .fy-tab-active::after {
  background: #7c3aed;
}
body[theme="light"] .topbar-greeting {
  color: rgba(0, 0, 0, 0.75);
}

/* ── from components/interaction/canvas/app-drawer.vue (pass 2) ── */
body[theme="dark"] {
    --shell-bg:           #2a2828;
    --shell-surface:      #3f3e3e;
    --shell-border:       rgba(255,255,255,0.1);
    --shell-hover:        rgba(255,255,255,0.05);
    --shell-hover-accent: rgba(124,58,237,0.18);
    --shell-text:         #f1f1f1;
    --shell-text-sub:     rgba(241,241,241,0.55);
}
body[theme="light"] {
    --shell-bg:           #f6f4fa;
    --shell-surface:      #fbf1f1;
    --shell-border:       #e0dcdc;
    --shell-hover:        rgba(0,0,0,0.04);
    --shell-hover-accent: rgba(124,58,237,0.08);
    --shell-text:         #1a1a1a;
    --shell-text-sub:     rgba(26,26,26,0.55);
}
body[theme="dark"]  .app-canvas-drawer .el-drawer { background: #2a2828 !important; color: #f1f1f1 !important; }
body[theme="light"] .app-canvas-drawer .el-drawer { background: #f6f4fa !important; color: #1a1a1a !important; }

/* ── from components/interaction/canvas/planner-drawer.vue (pass 2) ── */
body[theme="dark"] .el-drawer.pc-task-drawer { background: #1b1b1b !important; color: rgba(255,255,255,.88) !important; }
body[theme="light"] .el-drawer.pc-task-drawer { background: #fafafa !important; color: rgba(0,0,0,.85) !important; }
body[theme="light"] .pc-wf-step-connector { background: rgba(0,0,0,0.06); }
body[theme="light"] .pc-wf-status-chip { border-color: rgba(0,0,0,0.08); color: rgba(0,0,0,0.4); }
body[theme="light"] .pc-wf-status-chip:hover { border-color: rgba(0,0,0,0.2); color: rgba(0,0,0,0.7); }
body[theme="light"] .pc-wf-status-chip--active { background: rgba(0,0,0,0.03); }
body[theme="light"] .pc-task-config-section { border-color: rgba(0,0,0,0.06); }
body[theme="light"] .pc-task-config-footer { border-top-color: rgba(0,0,0,0.06); }
body[theme="light"] .el-drawer.pc-task-drawer .el-input__inner {
    background-color: rgba(0,0,0,0.03) !important;
    border-color: rgba(0,0,0,0.08) !important;
    color: rgba(0,0,0,.85) !important;
}
body[theme="light"] .pc-task-due { background: rgba(0,0,0,0.04); color: rgba(0,0,0,0.4); }
body[theme="light"] .pc-prose [data-plan-block="milestone"] { background: rgba(124,58,237,0.04); color: #7c3aed; }
body[theme="light"] .pc-prose [data-plan-block="task"] { background: rgba(5,150,105,0.04); color: rgba(0,0,0,.85); }
body[theme="light"] .pc-task-checkbox { color: rgba(0,0,0,0.2); }
body[theme="light"] .pc-task-checkbox:hover { color: #059669; }
body[theme="light"] .pc-task-config-btn { color: rgba(0,0,0,0.1); }
body[theme="light"] .pc-task-config-btn:hover { color: rgba(0,0,0,0.5); }
body[theme="light"] [data-plan-block="task"]:hover .pc-task-config-btn { color: rgba(0,0,0,0.2); }
body[theme="light"] .pc-prose [data-plan-block="task"]:hover { background: rgba(5,150,105,0.08); }
body[theme="light"] .pc-prose [data-plan-block="task"][data-status="in_progress"] { background: rgba(59,130,246,0.04); }
body[theme="light"] .pc-prose [data-plan-block="task"][data-status="blocked"] { background: rgba(220,38,38,0.04); }
body[theme="light"] .pc-prose [data-plan-block="deadline"] { background: rgba(220,38,38,0.04); color: #dc2626; }
body[theme="light"] .pc-bubble-links { border-top-color: rgba(0,0,0,0.06) !important; }
body[theme="light"] .pc-bubble-link-item:hover { background: rgba(0,0,0,0.04) !important; }

/* ── from components/interaction/canvas/research-drawer.vue (pass 2) ── */
body[theme="dark"] .rc-bubble,
body[theme="dark"] .rc-bubble-entity,
body[theme="dark"] .rc-bubble-entity-meta,
body[theme="dark"] .rc-bubble-actions button,
body[theme="dark"] .rc-bubble-actions button:hover,
body[theme="dark"] .rc-bubble-loading,
body[theme="light"] .rc-bubble {
    background: #fff;
    border: 1px solid #e0dcdc;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    color: #1a1a1a;
}
body[theme="light"] .rc-bubble-entity { border-bottom: 1px solid #f1f1f1; }
body[theme="light"] .rc-bubble-entity-header { color: #1a1a1a; }
body[theme="light"] .rc-bubble-entity-meta { color: rgba(0,0,0,0.45); }
body[theme="light"] .rc-bubble-actions button { background: rgba(0,0,0,0.04); color: rgba(0,0,0,0.65); }
body[theme="light"] .rc-bubble-actions button:hover { background: rgba(37,99,235,0.1); color: #2563eb; }
body[theme="light"] .rc-bubble-loading { color: rgba(0,0,0,0.4); }
body[theme="light"] .el-drawer.rc-sim-drawer { background: #fafafa !important; color: rgba(0,0,0,.85) !important; }
body[theme="light"] .rc-sim-header { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .rc-sim-refine { border-top-color: rgba(0,0,0,.06); }
body[theme="light"] .rc-sim-input { background: rgba(0,0,0,.03); border-color: rgba(0,0,0,.08); color: #1a1a1a; }
body[theme="light"] .rc-eureka-popover { background: #fff; border-color: rgba(217,119,6,0.2); box-shadow: 0 8px 24px rgba(0,0,0,0.1); color: #1a1a1a; }
body[theme="light"] .rc-eureka-accept { background: rgba(217,119,6,0.1); border-color: rgba(217,119,6,0.25); color: #d97706; }
body[theme="light"] .rc-root {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .rc-topbar {
    border-bottom-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-title-input {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .rc-icon-btn:hover {
    background: rgba(0,0,0,0.05);
}
body[theme="light"] .rc-icon-btn.active {
    background: rgba(37,99,235,0.08);
    color: #2563eb;
}
body[theme="light"] .rc-stat-pill {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-toggle {
    background: rgba(0,0,0,0.04);
}
body[theme="light"] .rc-toggle-btn.active {
    background: rgba(0,0,0,0.08);
}
body[theme="light"] .rc-toolbar {
    border-bottom-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-toolbar-sep {
    background: rgba(0,0,0,0.08);
}
body[theme="light"] .rc-toolbar-btn:hover {
    background: rgba(0,0,0,0.05);
}
body[theme="light"] .rc-toolbar-btn.active {
    background: rgba(37,99,235,0.08);
    color: #2563eb;
}
body[theme="light"] .rc-toolbar-insert {
    color: #2563eb;
}
body[theme="light"] .rc-toolbar-insert:hover {
    background: rgba(37,99,235,0.08);
}
body[theme="light"] .rc-topbar-divider {
    background: rgba(0,0,0,0.08);
}
body[theme="light"] .rc-similar-btn {
    background: rgba(37,99,235,0.08);
    border-color: rgba(37,99,235,0.25);
    color: #2563eb;
}
body[theme="light"] .rc-similar-btn:hover:not(:disabled) {
    background: rgba(37,99,235,0.15);
    border-color: rgba(37,99,235,0.4);
}
body[theme="light"] .rc-similar-panel {
    background: rgba(37,99,235,0.02);
    border-bottom-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-similar-header {
    color: #2563eb;
}
body[theme="light"] .rc-similar-card {
    background: #fff;
    border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .rc-similar-link {
    color: #2563eb;
}
body[theme="light"] .rc-paper {
    background: #fff;
    border-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-paper-title {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .rc-preview-inner {
    color: rgba(0,0,0,.85);
}
body[theme="light"] .rc-suggestions-col {
    border-left-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-sugg-header {
    border-bottom-color: rgba(0,0,0,0.06);
}
body[theme="light"] .rc-sugg-card {
    border-color: rgba(0,0,0,0.06);
    background: #fff;
}
body[theme="light"] .rc-sugg-card:hover {
    border-color: rgba(37,99,235,0.3);
    background: rgba(37,99,235,0.04);
}
body[theme="light"] .rc-source-card {
    background: #fff;
    border-color: rgba(0,0,0,0.08);
}
body[theme="light"] .rc-source-card:hover {
    border-color: rgba(37,99,235,0.25);
}
body[theme="light"] .rc-source-link {
    color: #2563eb;
}
body[theme="light"] .rc-quality-high { background: rgba(5,150,105,0.1); color: #059669; }
body[theme="light"] .rc-quality-medium { background: rgba(217,119,6,0.1); color: #d97706; }
body[theme="light"] .rc-quality-low { background: rgba(220,38,38,0.1); color: #dc2626; }
body[theme="light"] .rc-epg-chip {
    background: rgba(0,0,0,0.03);
    border-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,.75);
}
body[theme="light"] .rc-epg-chip:hover {
    background: rgba(37,99,235,0.08);
    border-color: rgba(37,99,235,0.25);
    color: #2563eb;
}
body[theme="light"] .rc-epg-like { color: #059669; border-color: rgba(5,150,105,0.25); }
body[theme="light"] .rc-epg-dislike { color: #dc2626; border-color: rgba(220,38,38,0.25); }
body[theme="light"] .rc-epg-allergy { color: #dc2626; border-color: rgba(220,38,38,0.4); background: rgba(220,38,38,0.05); }
body[theme="light"] .rc-epg-intolerance { color: #d97706; border-color: rgba(217,119,6,0.25); }
body[theme="light"] .rc-epg-neutral { color: rgba(0,0,0,.45); border-color: rgba(0,0,0,0.08); }
body[theme="light"] .rc-commerce-cta {
    background: linear-gradient(135deg, rgba(248,113,113,0.05), rgba(37,99,235,0.05));
    border-color: rgba(248,113,113,0.2);
}
body[theme="light"] .rc-commerce-cta:hover {
    background: linear-gradient(135deg, rgba(248,113,113,0.1), rgba(37,99,235,0.1));
}
body[theme="light"] .rc-bubble-links { border-top-color: rgba(0,0,0,0.06); }
body[theme="light"] .rc-bubble-link-item:hover { background: rgba(0,0,0,0.04); }

/* ── from components/interaction/canvas/app-v3-drawer.vue (pass 2) ── */
body[theme="dark"] .app-canvas-v3-drawer .el-drawer {
    background: #1b1b1b !important;
    color: rgba(255, 255, 255, .88) !important;
}
body[theme="light"] .app-canvas-v3-drawer .el-drawer {
    background: #ffffff !important;
    color: rgba(0, 0, 0, .85) !important;
}
body[theme="light"] .v3-page-bind-panel {
    border-bottom-color: rgba(0, 0, 0, 0.04);
    background: rgba(14, 165, 233, 0.04);
}
body[theme="light"] .v3-page-bind-panel code {
    background: rgba(14, 165, 233, 0.12);
    color: #0369a1;
}
body[theme="light"] .v3-repeater-block summary,
body[theme="light"] .v3-bind-block summary {
    color: #0369a1;
}
body[theme="light"] .v3-logic-block summary {
    color: #047857;
}
body[theme="light"] .v3-logic-describe {
    background: rgba(5, 150, 105, 0.06);
    border-color: rgba(5, 150, 105, 0.32);
    color: #047857;
}

body[theme="light"] .v3-root {
    background: #ffffff;
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-bar {
    background: #ffffff;
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .v3-icon-btn {
    color: rgba(0, 0, 0, 0.7);
}
body[theme="light"] .v3-icon-btn:hover {
    background: rgba(0, 0, 0, 0.05);
}
body[theme="light"] .v3-icon-btn.active {
    background: rgba(124, 58, 237, 0.08);
    color: #7c3aed;
}
body[theme="light"] .v3-title {
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-title:hover {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .v3-title-input {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-bar-btn {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.7);
}
body[theme="light"] .v3-bar-btn:hover:not(:disabled) {
    background: rgba(0, 0, 0, 0.06);
    border-color: rgba(0, 0, 0, 0.12);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-bar-divider {
    background: rgba(0, 0, 0, 0.08);
}
body[theme="light"] .v3-pages-frame {
    background: #fafafa;
    border-left-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .v3-pages-header {
    color: rgba(0, 0, 0, 0.5);
    border-bottom-color: rgba(0, 0, 0, 0.05);
}
body[theme="light"] .v3-pages-count {
    background: rgba(0, 0, 0, 0.05);
}
body[theme="light"] .v3-page-row {
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-page-row:hover {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .v3-page-row.active {
    background: rgba(124, 58, 237, 0.08);
    border-color: rgba(124, 58, 237, 0.25);
}
body[theme="light"] .v3-page-name-input {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(124, 58, 237, 0.4);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-bubble {
    background: #ffffff;
    border-color: rgba(0, 0, 0, 0.08);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}
body[theme="light"] .v3-bubble-context {
    color: rgba(0, 0, 0, 0.55);
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .v3-bubble-tag {
    color: #7c3aed;
}
body[theme="light"] .v3-bubble-id {
    color: rgba(0, 0, 0, 0.4);
}
body[theme="light"] .v3-bubble-close {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .v3-bubble-action {
    color: rgba(0, 0, 0, 0.65);
}
body[theme="light"] .v3-bubble-action:hover {
    background: rgba(0, 0, 0, 0.04);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-bubble-action.active {
    background: rgba(124, 58, 237, 0.1);
    color: #7c3aed;
}
body[theme="light"] .v3-bubble-action-danger:hover {
    background: rgba(245, 108, 108, 0.1);
    color: #e11d48;
}
body[theme="light"] .v3-bubble-panel {
    border-top-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .v3-style-label {
    color: rgba(0, 0, 0, 0.55);
}
body[theme="light"] .v3-style-input {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-style-input:focus {
    border-color: rgba(124, 58, 237, 0.55);
}
body[theme="light"] .v3-segment {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.65);
}
body[theme="light"] .v3-segment:hover {
    background: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .v3-segment.active {
    background: rgba(124, 58, 237, 0.12);
    border-color: rgba(124, 58, 237, 0.4);
    color: #7c3aed;
}
body[theme="light"] .v3-style-source summary {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .v3-style-html {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-replace-card {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.7);
}
body[theme="light"] .v3-replace-card:hover {
    background: rgba(124, 58, 237, 0.08);
    border-color: rgba(124, 58, 237, 0.3);
    color: #7c3aed;
}
body[theme="light"] .v3-edit-input {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-edit-input:focus {
    border-color: rgba(124, 58, 237, 0.55);
}
body[theme="light"] .v3-edit-hint {
    color: rgba(0, 0, 0, 0.4);
}
body[theme="light"] .v3-pane {
    background: #ffffff;
    border-right-color: rgba(0, 0, 0, 0.08);
    box-shadow: 8px 0 24px rgba(0, 0, 0, 0.08);
}
body[theme="light"] .v3-pane-header {
    border-bottom-color: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-pane-close {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .v3-pane-label {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .v3-pane-tag,
body[theme="light"] .v3-pane-id {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .v3-pane-section {
    border-top-color: rgba(0, 0, 0, 0.06);
}
body[theme="light"] .v3-pane-section-title {
    color: rgba(0, 0, 0, 0.55);
}
body[theme="light"] .v3-pane-input {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-pane-input:focus {
    border-color: rgba(124, 58, 237, 0.55);
}
body[theme="light"] .v3-pane-hint {
    color: rgba(0, 0, 0, 0.5);
}
body[theme="light"] .v3-pane-field-name {
    background: rgba(0, 0, 0, 0.04);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-pane-html {
    background: rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-subtabs {
    background: rgba(0, 0, 0, 0.04);
}
body[theme="light"] .v3-subtab {
    color: rgba(0, 0, 0, 0.55);
}
body[theme="light"] .v3-subtab:hover {
    background: rgba(0, 0, 0, 0.06);
    color: rgba(0, 0, 0, 0.85);
}
body[theme="light"] .v3-subtab.active {
    background: rgba(124, 58, 237, 0.1);
    border-color: rgba(124, 58, 237, 0.3);
    color: #7c3aed;
}
body[theme="light"] .v3-option-trash {
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.55);
}
body[theme="light"] .v3-option-add {
    border-color: rgba(0, 0, 0, 0.15);
    color: rgba(0, 0, 0, 0.55);
}
body[theme="light"] .v3-option-add:hover {
    border-color: rgba(124, 58, 237, 0.4);
    color: #7c3aed;
}
body[theme="light"] .v3-readonly-code {
    background: rgba(0, 0, 0, 0.04);
    border-color: rgba(0, 0, 0, 0.08);
    color: #7c3aed;
}
body[theme="light"] .v3-replace-search {
    background: rgba(0, 0, 0, 0.04);
    border-color: rgba(0, 0, 0, 0.08);
}
body[theme="light"] .v3-replace-search-input {
    color: rgba(0, 0, 0, 0.8);
}
body[theme="light"] .v3-replace-search-input::placeholder {
    color: rgba(0, 0, 0, 0.4);
}
body[theme="light"] .v3-replace-pager-btn {
    background: rgba(0, 0, 0, 0.04);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.7);
}
body[theme="light"] .v3-replace-pager-info {
    color: rgba(0, 0, 0, 0.55);
}
    body[theme="light"] .v3-pages-frame {
        border-bottom-color: rgba(0, 0, 0, 0.06);
    }

/* ── from components/interaction/canvas/journal-drawer.vue (pass 2) ── */
body[theme="light"] .jc-bubble-links { border-top-color: rgba(0,0,0,0.06); }
body[theme="light"] .jc-bubble-link-item:hover { background: rgba(0,0,0,0.04); }

/* ── from components/interaction/canvas/workflow-drawer.vue (pass 2) ── */
body[theme="light"] .wfc-root { color: rgba(0,0,0,.85); }
body[theme="light"] .wfc-topbar { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .wfc-icon-btn:hover { background: rgba(0,0,0,.06); }
body[theme="light"] .wfc-stat-pill { background: rgba(0,0,0,.04); }
body[theme="light"] .wfc-progress-col { border-right-color: rgba(0,0,0,.06); }
body[theme="light"] .wfc-step--in_progress { background: rgba(37,99,235,0.04); }
body[theme="light"] .wfc-step-icon { background: rgba(0,0,0,.04); }
body[theme="light"] .wfc-chat-bar { border-top-color: rgba(0,0,0,.06); }
body[theme="light"] .wfc-chat-input { background: rgba(0,0,0,.03); border-color: rgba(0,0,0,.08); color: #1a1a1a; }
body[theme="light"] .wfc-artifact-iframe { background: #fff; }
body[theme="light"] .wfc-table th { background: rgba(109,40,217,0.06); }
body[theme="light"] .wfc-table td { border-bottom-color: rgba(0,0,0,0.04); }
body[theme="light"] .wfc-table tr:hover td { background: rgba(0,0,0,0.02); }
body[theme="light"] .wfc-summary-prose { color: rgba(0,0,0,.75); }
body[theme="light"] .wfc-summary-prose h2,
body[theme="light"] .wfc-summary-prose h3,
body[theme="light"] .wfc-summary-prose h4 { color: rgba(0,0,0,.85); }
body[theme="light"] .wfc-summary-prose strong { color: rgba(0,0,0,.9); }
body[theme="light"] .wfc-cred-input { background: rgba(0,0,0,.03); border-color: rgba(0,0,0,.08); color: #1a1a1a; }
body[theme="light"] .wfc-cred-item:hover { background: rgba(0,0,0,.03); }
body[theme="light"] .wfc-bubble { background: #fff; border-color: #e0dcdc; box-shadow: 0 8px 24px rgba(0,0,0,0.1); color: #1a1a1a; }
body[theme="light"] .wfc-bubble-actions button { background: rgba(0,0,0,0.04); color: rgba(0,0,0,0.65); }
body[theme="light"] .wfc-bubble-actions button:hover { background: rgba(248,113,113,0.1); color: #f87171; }
body[theme="light"] .wfc-bubble-loading { color: rgba(0,0,0,0.4); }
body[theme="light"] .wfc-toolbar { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .wfc-toolbar-btn:hover { background: rgba(0,0,0,.06); }
body[theme="light"] .wfc-toolbar-btn.active { background: rgba(248,113,113,0.1); }
body[theme="light"] .wfc-toolbar-sep { background: rgba(0,0,0,.08); }
body[theme="light"] .wfc-summary-prose pre { background: rgba(0,0,0,.04); }
body[theme="light"] .wfc-summary-prose a { color: #2563eb; }
body[theme="light"] .wfc-summary-prose hr { border-top-color: rgba(0,0,0,.1); }
body[theme="light"] .wfc-md-table th { background: rgba(109,40,217,0.06); color: rgba(0,0,0,.85); }
body[theme="light"] .wfc-md-table td { border-bottom-color: rgba(0,0,0,0.06); }
body[theme="light"] .wfc-md-table tr:hover td { background: rgba(0,0,0,0.02); }
body[theme="light"] .wfc-prose { color: rgba(0,0,0,.75); }
body[theme="light"] .wfc-prose h1, body[theme="light"] .wfc-prose h2,
body[theme="light"] .wfc-prose h3, body[theme="light"] .wfc-prose h4 { color: rgba(0,0,0,.85); }
body[theme="light"] .wfc-prose strong { color: rgba(0,0,0,.9); }
body[theme="light"] .wfc-prose blockquote { border-left-color: rgba(109,40,217,0.2); }
body[theme="light"] .wfc-prose pre { background: rgba(0,0,0,.04); }
body[theme="light"] .wfc-prose a { color: #2563eb; }
body[theme="light"] .wfc-prose hr { border-top-color: rgba(0,0,0,.1); }
body[theme="light"] .wfc-prose th { background: rgba(109,40,217,0.06); color: rgba(0,0,0,.85); }
body[theme="light"] .wfc-prose td { border-bottom-color: rgba(0,0,0,0.06); }
body[theme="light"] .wfc-prose tr:hover td { background: rgba(0,0,0,0.02); }
body[theme="light"] .wfc-prose mark { background: rgba(250,204,21,0.4); }

/* ── from components/interaction/canvas/cart-drawer.vue (pass 2) ── */
body[theme="light"] .cc2-topbar { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .cc2-icon-btn:hover { background: rgba(0,0,0,.06); }
body[theme="light"] .cc2-stat-pill { background: rgba(0,0,0,.04); }
body[theme="light"] .cc2-section-header { color: rgba(0,0,0,.55); }
body[theme="light"] .cc2-card { background: rgba(0,0,0,.02); border-color: rgba(0,0,0,.08); }
body[theme="light"] .cc2-card:hover { background: rgba(124,58,237,.04); border-color: rgba(124,58,237,.25); }
body[theme="light"] .cc2-card-title { color: rgba(0,0,0,.9); }
body[theme="light"] .cc2-card-subtitle { color: rgba(0,0,0,.5); }
body[theme="light"] .cc2-amount { color: rgba(0,0,0,.95); }
body[theme="light"] .cc2-list-item:hover { background: rgba(0,0,0,.03); }
body[theme="light"] .cc2-list-title { color: rgba(0,0,0,.85); }
body[theme="light"] .cc2-starter-btn { background: rgba(0,0,0,.03); border-color: rgba(0,0,0,.1); color: rgba(0,0,0,.7); }
body[theme="light"] .cc2-starter-btn:hover { background: rgba(124,58,237,.06); border-color: rgba(124,58,237,.25); color: #7c3aed; }

/* ── from components/interaction/canvas/course-drawer.vue (pass 2) ── */
body[theme="light"] .cc-root { color: rgba(0,0,0,.85); }
body[theme="light"] .cc-topbar { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .cc-icon-btn:hover { background: rgba(0,0,0,.06); }
body[theme="light"] .cc-stat-pill { background: rgba(0,0,0,.04); }
body[theme="light"] .cc-status--pending { background: rgba(0,0,0,.05); color: rgba(0,0,0,.35); }
body[theme="light"] .cc-title-input { border-color: rgba(167,139,250,0.4); color: #1a1a1a; }
body[theme="light"] .cc-sidebar { border-right-color: rgba(0,0,0,.06); }
body[theme="light"] .cc-sidebar-header { border-bottom-color: rgba(0,0,0,.04); }
body[theme="light"] .cc-module-header:hover { background: rgba(0,0,0,.03); }
body[theme="light"] .cc-module-fraction { background: rgba(0,0,0,.04); }
body[theme="light"] .cc-lesson-item:hover { background: rgba(0,0,0,.03); }
body[theme="light"] .cc-lesson-item--active { background: rgba(167,139,250,0.08); border-right-color: #a78bfa; }
body[theme="light"] .cc-lesson-status-icon { color: rgba(0,0,0,.2) !important; }
body[theme="light"] .cc-lesson-item--active .cc-lesson-status-icon,
body[theme="light"] .cc-lesson-score { color: #34d399 !important; }
body[theme="light"] .cc-lesson-heading { color: rgba(0,0,0,.9); }
body[theme="light"] .cc-lesson-body { color: rgba(0,0,0,.75); }
body[theme="light"] .cc-objectives { background: rgba(167,139,250,0.04); border-color: rgba(167,139,250,0.1); }
body[theme="light"] .cc-objective-pill { background: rgba(167,139,250,0.08); color: #7c3aed; }
body[theme="light"] .cc-playground { border-color: rgba(0,0,0,.08); }
body[theme="light"] .cc-playground-header { background: rgba(0,0,0,.02); border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .cc-playground-instructions { background: rgba(0,0,0,.01); border-bottom-color: rgba(0,0,0,.04); }
body[theme="light"] .cc-playground-code { background: #1e1e2e; color: #e2e8f0; }
body[theme="light"] .cc-playground-output { background: #1e1e2e; }
body[theme="light"] .cc-playground-solution { background: rgba(52,211,153,0.04); }
body[theme="light"] .cc-playground-btn--secondary { background: rgba(0,0,0,.05); color: rgba(0,0,0,.6); }
body[theme="light"] .cc-quiz { border-color: rgba(0,0,0,.08); }
body[theme="light"] .cc-quiz-q { color: rgba(0,0,0,.85); }
body[theme="light"] .cc-quiz-option { border-color: rgba(0,0,0,.1); }
body[theme="light"] .cc-quiz-option:hover { background: rgba(0,0,0,.02); border-color: rgba(0,0,0,.15); }
body[theme="light"] .cc-quiz-option--selected { background: rgba(167,139,250,0.06); border-color: rgba(167,139,250,0.25); }
body[theme="light"] .cc-quiz-option-marker { background: rgba(0,0,0,.05); }
body[theme="light"] .cc-quiz-explanation { background: rgba(245,158,11,0.06); color: rgba(0,0,0,.65); }
body[theme="light"] .cc-lesson-nav { border-top-color: rgba(0,0,0,.06); border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .cc-nav-btn { border-color: rgba(0,0,0,.1); color: rgba(0,0,0,.6); }
body[theme="light"] .cc-nav-btn:hover { background: rgba(0,0,0,.04); color: #1a1a1a; }
body[theme="light"] .cc-nav-btn--complete { background: rgba(167,139,250,0.06); border-color: rgba(167,139,250,0.15); color: #7c3aed; }
body[theme="light"] .cc-nav-btn--completed { background: rgba(52,211,153,0.06); border-color: rgba(52,211,153,0.15); color: #059669; }
body[theme="light"] .cc-audio-gen,
body[theme="light"] .cc-video-gen { border-color: rgba(0,0,0,.1); color: rgba(0,0,0,.25); }
body[theme="light"] .cc-lesson-body h1,
body[theme="light"] .cc-lesson-body h2,
body[theme="light"] .cc-lesson-body h3,
body[theme="light"] .cc-lesson-body h4 { color: rgba(0,0,0,.85); }
body[theme="light"] .cc-lesson-body strong { color: rgba(0,0,0,.9); }
body[theme="light"] .cc-lesson-body pre { background: rgba(0,0,0,.04); }
body[theme="light"] .cc-lesson-body code { background: rgba(0,0,0,.04); }
body[theme="light"] .cc-lesson-body blockquote { border-left-color: rgba(167,139,250,0.3); }
body[theme="light"] .cc-lesson-body a { color: #2563eb; }
body[theme="light"] .cc-lesson-body hr { border-top-color: rgba(0,0,0,.1); }
body[theme="light"] .cc-lesson-body table th { background: rgba(167,139,250,0.06); color: rgba(0,0,0,.85); }
body[theme="light"] .cc-lesson-body table td { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .cc-commerce-cta {
    background: linear-gradient(135deg, rgba(248,113,113,0.05), rgba(124,58,237,0.05));
    border-color: rgba(248,113,113,0.18);
}
body[theme="light"] .cc-commerce-cta:hover {
    background: linear-gradient(135deg, rgba(248,113,113,0.1), rgba(124,58,237,0.1));
}
body[theme="light"] .cc-prose { color: rgba(0,0,0,.75); }
body[theme="light"] .cc-prose h1, body[theme="light"] .cc-prose h2,
body[theme="light"] .cc-prose h3, body[theme="light"] .cc-prose h4 { color: rgba(0,0,0,.85); }
body[theme="light"] .cc-prose strong { color: rgba(0,0,0,.9); }
body[theme="light"] .cc-prose pre { background: rgba(0,0,0,.04); }
body[theme="light"] .cc-prose th { background: rgba(167,139,250,0.06); color: rgba(0,0,0,.85); }
body[theme="light"] .cc-prose td { border-bottom-color: rgba(0,0,0,.06); }
body[theme="light"] .cc-bubble { background: #fff; border-color: #e0dcdc; box-shadow: 0 8px 24px rgba(0,0,0,0.1); color: #1a1a1a; }
body[theme="light"] .cc-bubble-actions button { background: rgba(0,0,0,0.04); color: rgba(0,0,0,0.65); }
body[theme="light"] .cc-bubble-actions button:hover { background: rgba(167,139,250,0.1); color: #7c3aed; }

/* ── from components/interaction/action/research-canvas-tag-view.vue (pass 2) ── */
body[theme="light"] .rctv-wrap { border-color: rgba(0,0,0,0.06); background: rgba(0,0,0,0.02); }
body[theme="light"] .rctv-wrap:hover { border-color: rgba(37,99,235,0.25); background: rgba(37,99,235,0.03); }
body[theme="light"] .rctv-quality-bar { background: rgba(0,0,0,0.06); }
body[theme="light"] .rctv-citation-chip { background: rgba(0,0,0,0.03); }

/* ── Fixed chat search bar (triggered by customizer search icon) ── */
.chat-search-fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2000;
    padding: 10px 16px;
    display: flex;
    justify-content: center;
}
.chat-search-fixed-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 520px;
    padding: 8px 14px;
    border-radius: 12px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.chat-search-fixed-input {
    flex: 1;
    border: 0;
    outline: none;
    background: transparent;
    font-size: 14px;
    color: inherit;
}
.chat-search-fixed-count {
    font-size: 11px;
    opacity: 0.5;
    white-space: nowrap;
}
.chat-search-fixed-close {
    background: transparent;
    border: 0;
    color: inherit;
    opacity: 0.5;
    cursor: pointer;
    padding: 0;
    font-size: 18px;
    line-height: 1;
}
.chat-search-fixed-close:hover { opacity: 1; }

body[theme="dark"] .chat-search-fixed-inner {
    background: rgba(27, 27, 27, 0.92);
    border: 1px solid rgba(255,255,255,0.07);
    box-shadow: 0 4px 20px rgba(0,0,0,0.4);
    color: rgba(255,255,255,.88);
}
body[theme="light"] .chat-search-fixed-inner {
    background: rgba(250, 250, 250, 0.92);
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    color: rgba(0,0,0,.85);
}

/* ── FCM notification dialog ── */
.fcm-dialog { border-radius: 20px !important; overflow: hidden; }
.fcm-dialog .el-dialog__header { display: none !important; }
.fcm-dialog .el-dialog__body { padding: 0 !important; }
.fcm-content { padding: 32px 28px 28px; text-align: center; }
.fcm-icon-wrap {
    width: 56px; height: 56px; border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 16px; font-size: 26px;
}
.fcm-title { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.fcm-desc { font-size: 13px; line-height: 1.6; margin-bottom: 24px; }
.fcm-actions { display: flex; flex-direction: column; gap: 8px; }
.fcm-btn {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    width: 100%; padding: 11px; border: none; border-radius: 12px;
    font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.15s;
}
.fcm-btn i { font-size: 17px; }
.fcm-btn-primary {
    background: linear-gradient(135deg, #a78bfa, #7c3aed);
    color: #fff; box-shadow: 0 4px 16px rgba(124,58,237,0.25);
}
.fcm-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(124,58,237,0.35); }
.fcm-btn-skip { background: transparent; }

body[theme="dark"] .fcm-dialog { background: #1b1b1b !important; }
body[theme="dark"] .fcm-dialog .el-dialog__body { background: #1b1b1b !important; }
body[theme="dark"] .fcm-content { color: rgba(255,255,255,.88); }
body[theme="dark"] .fcm-icon-wrap { background: rgba(167,139,250,0.1); color: #a78bfa; }
body[theme="dark"] .fcm-desc { color: rgba(255,255,255,.45); }
body[theme="dark"] .fcm-btn-skip { color: rgba(255,255,255,.45); }
body[theme="dark"] .fcm-btn-skip:hover { color: rgba(255,255,255,.7); }

body[theme="light"] .fcm-dialog { background: #fff !important; }
body[theme="light"] .fcm-dialog .el-dialog__body { background: #fff !important; }
body[theme="light"] .fcm-content { color: rgba(0,0,0,.85); }
body[theme="light"] .fcm-icon-wrap { background: rgba(124,58,237,0.06); color: #7c3aed; }
body[theme="light"] .fcm-desc { color: rgba(0,0,0,.5); }
body[theme="light"] .fcm-btn-skip { color: rgba(0,0,0,.4); }
body[theme="light"] .fcm-btn-skip:hover { color: rgba(0,0,0,.7); }

/* ── Personalize page chat hint ── */
.p-chat-hint {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 13px;
    margin-bottom: 20px;
}
.p-chat-hint-body { flex: 1; }
.p-chat-hint-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.4;
    margin-bottom: 3px;
}
.p-chat-hint-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    border: none;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
    flex-shrink: 0;
}
body[theme="dark"] .p-chat-hint {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.07);
    color: rgba(255,255,255,.88);
}
body[theme="dark"] .p-chat-hint-btn {
    background: rgba(167,139,250,0.12);
    color: #a78bfa;
}
body[theme="dark"] .p-chat-hint-btn:hover {
    background: rgba(167,139,250,0.2);
}
body[theme="light"] .p-chat-hint {
    background: rgba(0,0,0,0.03);
    border: 1px solid rgba(0,0,0,0.06);
    color: rgba(0,0,0,.85);
}
body[theme="light"] .p-chat-hint-btn {
    background: rgba(124,58,237,0.08);
    color: #7c3aed;
}
body[theme="light"] .p-chat-hint-btn:hover {
    background: rgba(124,58,237,0.14);
}

/* ──────────────────────────────────────────────────────────
   Life Manifest page — redesign (interactive/pages/life/index.vue)
   Hero cover, compass, chapter cards, "noticed" panel, listening
   chips. Base sizing/typography is in the component <style>; only
   theme paint lives here.
   ────────────────────────────────────────────────────────── */

/* Moments cards — month + year butler-voice recaps. Distinct hues so they
   read as related but not identical surfaces:
     month → brand purple (matches the Lifestyle cover lineage)
     year  → emerald (a calmer, longer-horizon palette) */
body[theme="dark"] .lm-moment--month {
    background: linear-gradient(155deg, rgba(167,139,250,0.10) 0%, rgba(167,139,250,0.04) 60%, rgba(167,139,250,0.02) 100%);
    border: 1px solid rgba(167,139,250,0.14);
}
body[theme="light"] .lm-moment--month {
    background: linear-gradient(155deg, rgba(124,58,237,0.07) 0%, rgba(124,58,237,0.02) 60%, rgba(124,58,237,0.01) 100%);
    border: 1px solid rgba(124,58,237,0.12);
}
body[theme="dark"] .lm-moment--month .lm-moment-eyebrow { color: #c4b5fd; }
body[theme="light"] .lm-moment--month .lm-moment-eyebrow { color: #6d28d9; }

body[theme="dark"] .lm-moment--year {
    background: linear-gradient(155deg, rgba(110,231,183,0.10) 0%, rgba(110,231,183,0.04) 60%, rgba(110,231,183,0.02) 100%);
    border: 1px solid rgba(110,231,183,0.14);
}
body[theme="light"] .lm-moment--year {
    background: linear-gradient(155deg, rgba(16,185,129,0.07) 0%, rgba(16,185,129,0.02) 60%, rgba(16,185,129,0.01) 100%);
    border: 1px solid rgba(16,185,129,0.14);
}
body[theme="dark"] .lm-moment--year .lm-moment-eyebrow { color: #6ee7b7; }
body[theme="light"] .lm-moment--year .lm-moment-eyebrow { color: #047857; }

/* Pill styling — same pattern as cover/recap pills, neutral surface so
   the per-card hue can carry the identity. */
body[theme="dark"] .lm-moment-pill { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); }
body[theme="dark"] .lm-moment-pill:hover:not([disabled]) { background: rgba(255,255,255,0.08); }
body[theme="light"] .lm-moment-pill { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.06); color: rgba(0,0,0,0.78); }
body[theme="light"] .lm-moment-pill:hover:not([disabled]) { background: rgba(0,0,0,0.06); }

/* Cover card (matches `ld-brief-card` treatment) */
body[theme="dark"] .lm-cover {
    background: linear-gradient(155deg, rgba(167,139,250,0.10) 0%, rgba(167,139,250,0.04) 60%, rgba(167,139,250,0.02) 100%);
    border: 1px solid rgba(167,139,250,0.14);
}
body[theme="light"] .lm-cover {
    background: linear-gradient(155deg, rgba(124,58,237,0.07) 0%, rgba(124,58,237,0.02) 60%, rgba(124,58,237,0.01) 100%);
    border: 1px solid rgba(124,58,237,0.12);
}
body[theme="dark"] .lm-cover-eyebrow.el-tag { color: #c4b5fd !important; background-color: rgba(167,139,250,0.10) !important; border-color: rgba(167,139,250,0.22) !important; }
body[theme="light"] .lm-cover-eyebrow.el-tag { color: #6d28d9 !important; background-color: rgba(124,58,237,0.08) !important; border-color: rgba(124,58,237,0.18) !important; }
body[theme="dark"] .lm-cover-pill { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); }
body[theme="dark"] .lm-cover-pill:hover { border-color: rgba(167,139,250,0.3); background: rgba(167,139,250,0.10); color: #c4b5fd; }
body[theme="light"] .lm-cover-pill { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.06); color: rgba(0,0,0,0.78); }
body[theme="light"] .lm-cover-pill:hover { border-color: rgba(124,58,237,0.25); background: rgba(124,58,237,0.06); color: #6d28d9; }
/* `.is-on` modifier — public-profile pill in its enabled state. */
body[theme="dark"] .lm-cover-pill.is-on { background: rgba(167,139,250,0.18); border-color: rgba(167,139,250,0.35); color: #c4b5fd; }
body[theme="light"] .lm-cover-pill.is-on { background: rgba(124,58,237,0.12); border-color: rgba(124,58,237,0.30); color: #6d28d9; }

/* Public-profile share URL chip below the actions row. */
body[theme="dark"] .lm-cover-public-url { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); }
body[theme="light"] .lm-cover-public-url { background: rgba(0,0,0,0.03); border: 1px solid rgba(0,0,0,0.06); }
body[theme="dark"] .lm-cover-public-url-copy:hover { background: rgba(255,255,255,0.06); }
body[theme="light"] .lm-cover-public-url-copy:hover { background: rgba(0,0,0,0.04); }

/* Visibility drawer chrome + buttons. Mirrors the invite drawer treatment
   so the two privacy-adjacent drawers feel like siblings. */
body[theme="dark"] .el-drawer.lm-visibility-drawer { background: #232323 !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.lm-visibility-drawer .el-drawer__body { background: #232323 !important; }
body[theme="light"] .el-drawer.lm-visibility-drawer { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.lm-visibility-drawer .el-drawer__body { background: #fff !important; }

body[theme="dark"] .lm-visibility-btn { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); }
body[theme="dark"] .lm-visibility-btn:hover:not([disabled]) { background: rgba(255,255,255,0.08); }
body[theme="dark"] .lm-visibility-btn--primary { background: rgba(167,139,250,0.15) !important; border-color: rgba(167,139,250,0.30) !important; color: #c4b5fd !important; }
body[theme="dark"] .lm-visibility-btn--primary:hover:not([disabled]) { background: rgba(167,139,250,0.25) !important; }
body[theme="dark"] .lm-visibility-btn--ghost { background: transparent; }

body[theme="light"] .lm-visibility-btn { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.06); color: rgba(0,0,0,0.78); }
body[theme="light"] .lm-visibility-btn:hover:not([disabled]) { background: rgba(0,0,0,0.07); }
body[theme="light"] .lm-visibility-btn--primary { background: rgba(124,58,237,0.10) !important; border-color: rgba(124,58,237,0.25) !important; color: #6d28d9 !important; }
body[theme="light"] .lm-visibility-btn--primary:hover:not([disabled]) { background: rgba(124,58,237,0.16) !important; }
body[theme="light"] .lm-visibility-btn--ghost { background: transparent; }

/* Visibility-drawer chapter chips — `.is-on` = visible publicly. The
   chip is the click target; the native checkbox is visually hidden. */
body[theme="dark"] .lm-visibility-chip { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); color: rgba(255,255,255,0.65); }
body[theme="dark"] .lm-visibility-chip:hover { background: rgba(255,255,255,0.07); }
body[theme="dark"] .lm-visibility-chip.is-on { background: rgba(167,139,250,0.16); border-color: rgba(167,139,250,0.32); color: #c4b5fd; }
body[theme="dark"] .lm-visibility-chip.is-on:hover { background: rgba(167,139,250,0.22); }
body[theme="light"] .lm-visibility-chip { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.08); color: rgba(0,0,0,0.55); }
body[theme="light"] .lm-visibility-chip:hover { background: rgba(0,0,0,0.07); }
body[theme="light"] .lm-visibility-chip.is-on { background: rgba(124,58,237,0.10); border-color: rgba(124,58,237,0.30); color: #6d28d9; }
body[theme="light"] .lm-visibility-chip.is-on:hover { background: rgba(124,58,237,0.16); }

/* Username field surface inside the visibility drawer. */
body[theme="dark"] .lm-username-row { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.10); }
body[theme="dark"] .lm-username-row:focus-within { border-color: rgba(167,139,250,0.40); }
body[theme="light"] .lm-username-row { background: #fff; border: 1px solid rgba(0,0,0,0.10); }
body[theme="light"] .lm-username-row:focus-within { border-color: rgba(124,58,237,0.40); }
body[theme="dark"] .lm-username-error { color: #f87171; }
body[theme="light"] .lm-username-error { color: #b91c1c; }

/* Compass — neutral container so the section reads as its own panel,
   matching the other sections' card treatment. */
body[theme="dark"] .lm-compass { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
body[theme="light"] .lm-compass { background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.05); }

/* Still listening — same neutral panel as the compass, no dashed border. */
body[theme="dark"] .lm-listening { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
body[theme="light"] .lm-listening { background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.05); }

/* Compass — per-axis dot color tied to a domain hue. Tight 2px ring at
   higher opacity reads sharper than a soft halo. */
body[theme="dark"] .lm-compass-axis--social    .lm-compass-dot { background: #5eead4; box-shadow: 0 0 0 2px rgba(94,234,212,0.40); }
body[theme="light"] .lm-compass-axis--social   .lm-compass-dot { background: #0d9488; box-shadow: 0 0 0 2px rgba(13,148,136,0.30); }
body[theme="dark"] .lm-compass-axis--motion    .lm-compass-dot { background: #6ee7b7; box-shadow: 0 0 0 2px rgba(110,231,183,0.40); }
body[theme="light"] .lm-compass-axis--motion   .lm-compass-dot { background: #059669; box-shadow: 0 0 0 2px rgba(16,185,129,0.30); }
body[theme="dark"] .lm-compass-axis--spontaneous .lm-compass-dot { background: #f9a8d4; box-shadow: 0 0 0 2px rgba(244,114,182,0.40); }
body[theme="light"] .lm-compass-axis--spontaneous .lm-compass-dot { background: #be185d; box-shadow: 0 0 0 2px rgba(190,24,93,0.30); }
body[theme="dark"] .lm-compass-axis--generous  .lm-compass-dot { background: #cbd5e1; box-shadow: 0 0 0 2px rgba(148,163,184,0.45); }
body[theme="light"] .lm-compass-axis--generous .lm-compass-dot { background: #475569; box-shadow: 0 0 0 2px rgba(71,85,105,0.30); }

/* Did-you-know panel — neutral container, sits beside Compass and Listening
   in tone so the brand-tinted Noticed panel still reads as "the new one". */
body[theme="dark"] .lm-dyk { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
body[theme="light"] .lm-dyk { background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.05); }

/* Noticed-this-month panel */
body[theme="dark"] .lm-noticed { background: rgba(167,139,250,0.06); border: 1px solid rgba(167,139,250,0.12); }
body[theme="light"] .lm-noticed { background: rgba(124,58,237,0.04); border: 1px solid rgba(124,58,237,0.10); }
/* Chapter cards — soft per-domain tints. Same hue across themes,
   opacity adjusted so light theme reads cooler. Covers all 12 domains
   declared in DOMAIN_META so no chapter falls through to no-background. */
body[theme="dark"] .lm-chapter--food       { background: rgba(251,191,36,0.06); }
body[theme="light"] .lm-chapter--food      { background: rgba(251,191,36,0.08); }
body[theme="dark"] .lm-chapter--health     { background: rgba(110,231,183,0.06); }
body[theme="light"] .lm-chapter--health    { background: rgba(16,185,129,0.05); }
body[theme="dark"] .lm-chapter--home       { background: rgba(251,146,60,0.06); }
body[theme="light"] .lm-chapter--home      { background: rgba(234,88,12,0.05); }
body[theme="dark"] .lm-chapter--finance    { background: rgba(148,163,184,0.06); }
body[theme="light"] .lm-chapter--finance   { background: rgba(71,85,105,0.05); }
body[theme="dark"] .lm-chapter--work       { background: rgba(129,140,248,0.06); }
body[theme="light"] .lm-chapter--work      { background: rgba(79,70,229,0.04); }
body[theme="dark"] .lm-chapter--learning   { background: rgba(167,139,250,0.06); }
body[theme="light"] .lm-chapter--learning  { background: rgba(124,58,237,0.04); }
body[theme="dark"] .lm-chapter--people     { background: rgba(251,113,133,0.06); }
body[theme="light"] .lm-chapter--people    { background: rgba(225,29,72,0.04); }
body[theme="dark"] .lm-chapter--recreation { background: rgba(94,234,212,0.06); }
body[theme="light"] .lm-chapter--recreation { background: rgba(20,184,166,0.05); }
body[theme="dark"] .lm-chapter--travel     { background: rgba(244,114,182,0.06); }
body[theme="light"] .lm-chapter--travel    { background: rgba(236,72,153,0.05); }
body[theme="dark"] .lm-chapter--spiritual  { background: rgba(125,211,252,0.06); }
body[theme="light"] .lm-chapter--spiritual { background: rgba(14,165,233,0.04); }
body[theme="dark"] .lm-chapter--shopping   { background: rgba(232,121,249,0.06); }
body[theme="light"] .lm-chapter--shopping  { background: rgba(192,38,211,0.04); }
body[theme="dark"] .lm-chapter--general    { background: rgba(156,163,175,0.06); }
body[theme="light"] .lm-chapter--general   { background: rgba(107,114,128,0.05); }

/* Still-listening chips */
body[theme="dark"] .lm-listening-chip:hover { border-color: rgba(167,139,250,0.5); color: #c4b5fd; }
body[theme="light"] .lm-listening-chip:hover { border-color: rgba(124,58,237,0.4); color: #6d28d9; }

/* Recommend Butla card — neutral panel, brand-tinted button. */
body[theme="dark"] .lm-recommend { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
body[theme="light"] .lm-recommend { background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.05); }
body[theme="dark"] .lm-recommend-btn { background: rgba(167,139,250,0.10); border-color: rgba(167,139,250,0.22); color: #c4b5fd; }
body[theme="dark"] .lm-recommend-btn:hover { background: rgba(167,139,250,0.18); border-color: rgba(167,139,250,0.35); }
body[theme="light"] .lm-recommend-btn { background: rgba(124,58,237,0.08); border-color: rgba(124,58,237,0.18); color: #6d28d9; }
body[theme="light"] .lm-recommend-btn:hover { background: rgba(124,58,237,0.14); border-color: rgba(124,58,237,0.28); }

/* Invite drawer chrome */
body[theme="dark"] .el-drawer.lm-invite-drawer { background: #232323 !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.lm-invite-drawer .el-drawer__body { background: #232323 !important; }
body[theme="light"] .el-drawer.lm-invite-drawer { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.lm-invite-drawer .el-drawer__body { background: #fff !important; }

/* Invite form + result cards */
body[theme="dark"] .lm-invite-input { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.10); color: rgba(255,255,255,0.92); }
body[theme="dark"] .lm-invite-input:focus { outline: none; border-color: rgba(167,139,250,0.40); }
body[theme="light"] .lm-invite-input { background: #fff; border: 1px solid rgba(0,0,0,0.10); color: rgba(0,0,0,0.92); }
body[theme="light"] .lm-invite-input:focus { outline: none; border-color: rgba(124,58,237,0.40); }

body[theme="dark"] .lm-invite-card { background: rgba(167,139,250,0.06); border: 1px solid rgba(167,139,250,0.14); }
body[theme="light"] .lm-invite-card { background: rgba(124,58,237,0.04); border: 1px solid rgba(124,58,237,0.12); }

body[theme="dark"] .lm-invite-btn { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); }
body[theme="dark"] .lm-invite-btn:hover:not([disabled]) { background: rgba(255,255,255,0.08); }
body[theme="dark"] .lm-invite-btn--primary { background: rgba(167,139,250,0.15) !important; border-color: rgba(167,139,250,0.30) !important; color: #c4b5fd !important; }
body[theme="dark"] .lm-invite-btn--primary:hover:not([disabled]) { background: rgba(167,139,250,0.25) !important; }
body[theme="dark"] .lm-invite-btn--ghost { background: transparent; }

body[theme="light"] .lm-invite-btn { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.06); color: rgba(0,0,0,0.78); }
body[theme="light"] .lm-invite-btn:hover:not([disabled]) { background: rgba(0,0,0,0.07); }
body[theme="light"] .lm-invite-btn--primary { background: rgba(124,58,237,0.10) !important; border-color: rgba(124,58,237,0.25) !important; color: #6d28d9 !important; }
body[theme="light"] .lm-invite-btn--primary:hover:not([disabled]) { background: rgba(124,58,237,0.16) !important; }
body[theme="light"] .lm-invite-btn--ghost { background: transparent; }

/* Health alerts (demoted) */
body[theme="dark"] .lm-alert--warning { background: rgba(248,113,113,0.06); border: 1px solid rgba(248,113,113,0.15); }
body[theme="dark"] .lm-alert--warning > i { color: #f87171; }
body[theme="dark"] .lm-alert--info { background: rgba(96,165,250,0.06); border: 1px solid rgba(96,165,250,0.15); }
body[theme="dark"] .lm-alert--info > i { color: #60a5fa; }
body[theme="dark"] .lm-alert-cta { background: rgba(167,139,250,0.12); color: #a78bfa; }
body[theme="dark"] .lm-alert-cta:hover { background: rgba(167,139,250,0.20); }
body[theme="light"] .lm-alert--warning { background: rgba(248,113,113,0.04); border: 1px solid rgba(248,113,113,0.12); }
body[theme="light"] .lm-alert--warning > i { color: #dc2626; }
body[theme="light"] .lm-alert--info { background: rgba(96,165,250,0.04); border: 1px solid rgba(96,165,250,0.12); }
body[theme="light"] .lm-alert--info > i { color: #2563eb; }
body[theme="light"] .lm-alert-cta { background: rgba(124,58,237,0.08); color: #7c3aed; }
body[theme="light"] .lm-alert-cta:hover { background: rgba(124,58,237,0.14); }

/* ── Account dropdown popover (must sit above mobile sidebar z:2050) ── */
.account-dropdown-popover { z-index: 2060 !important; }

/* ── Bottom nav bar (mobile) ── */
body[theme="dark"] .nav-bottom-bar {
    background: #1b1b1b !important;
    border-top: 1px solid rgba(255,255,255,0.07);
}
body[theme="light"] .nav-bottom-bar {
    background: #fafafa !important;
    border-top: 1px solid rgba(0,0,0,0.06);
}

/* ── Feed detail drawer (hm dashboard) ── */
body[theme="dark"] .ld-feed-drawer {
    background: #1b1b1b !important;
    color: rgba(255,255,255,.88) !important;
}
body[theme="dark"] .ld-feed-drawer .el-drawer__body {
    background: #1b1b1b !important;
}
body[theme="dark"] .ld-feed-detail-body {
    color: rgba(255,255,255,.55);
}
body[theme="dark"] .ld-feed-detail-btn {
    border-color: rgba(255,255,255,0.07);
    background: rgba(255,255,255,0.05);
}
body[theme="dark"] .ld-feed-detail-btn:hover {
    border-color: rgba(167,139,250,0.3);
    background: rgba(167,139,250,0.06);
}
body[theme="light"] .ld-feed-drawer {
    background: #fafafa !important;
    color: rgba(0,0,0,.85) !important;
}
body[theme="light"] .ld-feed-drawer .el-drawer__body {
    background: #fafafa !important;
}
body[theme="light"] .ld-feed-detail-body {
    color: rgba(0,0,0,.55);
}
body[theme="light"] .ld-feed-detail-btn {
    border-color: rgba(0,0,0,0.06);
    background: rgba(0,0,0,0.03);
}
body[theme="light"] .ld-feed-detail-btn:hover {
    border-color: rgba(124,58,237,0.3);
    background: rgba(124,58,237,0.04);
}

/* Life Manifest — detail drawer */
body[theme="dark"] .el-drawer.lm-detail-drawer { background: #232323 !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.lm-detail-drawer .el-drawer__body { background: #232323 !important; }
body[theme="dark"] .lm-detail { color: rgba(255,255,255,.88); }
body[theme="dark"] .lm-detail-domain { color: rgba(255,255,255,.4); }
body[theme="dark"] .lm-detail-meta { border-top: 1px solid rgba(255,255,255,.07); }
body[theme="dark"] .lm-detail-meta-label { color: rgba(255,255,255,.35); }
body[theme="dark"] .lm-detail-btn { background: rgba(255,255,255,.06); color: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.08); }
body[theme="dark"] .lm-detail-btn:hover { background: rgba(255,255,255,.1); }
body[theme="dark"] .lm-detail-btn-primary { background: rgba(167,139,250,.15) !important; color: #a78bfa !important; border-color: rgba(167,139,250,.2) !important; }

body[theme="light"] .el-drawer.lm-detail-drawer { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.lm-detail-drawer .el-drawer__body { background: #fff !important; }
body[theme="light"] .lm-detail { color: #1a1a1a; }
body[theme="light"] .lm-detail-domain { color: rgba(0,0,0,.4); }
body[theme="light"] .lm-detail-meta { border-top: 1px solid rgba(0,0,0,.07); }
body[theme="light"] .lm-detail-meta-label { color: rgba(0,0,0,.35); }
body[theme="light"] .lm-detail-btn { background: rgba(0,0,0,.04); color: rgba(0,0,0,.6); border: 1px solid rgba(0,0,0,.08); }
body[theme="light"] .lm-detail-btn:hover { background: rgba(0,0,0,.07); }
body[theme="light"] .lm-detail-btn-primary { background: rgba(124,58,237,.08) !important; color: #7c3aed !important; border-color: rgba(124,58,237,.15) !important; }

/* (Removed: stale `.lm-item`/`.lm-missing-*`/`.lm-health-*` rules from the
   prior life manifest design; replaced upstream by the redesign block.) */

/* Chat notification alert */
.chat-notif-alert {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px; border-radius: 12px; margin: 8px 0 12px;
}
.chat-notif-alert-icon { font-size: 22px; flex-shrink: 0; }
.chat-notif-alert-body { flex: 1; }
.chat-notif-alert-title { font-size: 13px; font-weight: 600; }
.chat-notif-alert-desc { font-size: 11px; opacity: 0.6; margin-top: 2px; }
.chat-notif-alert-btn {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 6px 14px; border: none; border-radius: 8px;
    font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}

body[theme="dark"] .chat-notif-alert { background: rgba(251,191,36,.08); border: 1px solid rgba(251,191,36,.15); }
body[theme="dark"] .chat-notif-alert-icon { color: #fbbf24; }
body[theme="dark"] .chat-notif-alert-title { color: rgba(255,255,255,.88); }
body[theme="dark"] .chat-notif-alert-btn { background: rgba(251,191,36,.15); color: #fbbf24; }
body[theme="dark"] .chat-notif-alert-btn:hover { background: rgba(251,191,36,.25); }

body[theme="light"] .chat-notif-alert { background: rgba(217,119,6,.06); border: 1px solid rgba(217,119,6,.12); }
body[theme="light"] .chat-notif-alert-icon { color: #d97706; }
body[theme="light"] .chat-notif-alert-title { color: #1a1a1a; }
body[theme="light"] .chat-notif-alert-btn { background: rgba(217,119,6,.1); color: #d97706; }
body[theme="light"] .chat-notif-alert-btn:hover { background: rgba(217,119,6,.18); }

/* PWA add-to-homescreen alert */
.chat-pwa-alert {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px; border-radius: 12px; margin: 8px 0 12px;
}
.chat-pwa-alert-icon { font-size: 22px; flex-shrink: 0; }
.chat-pwa-alert-body { flex: 1; }
.chat-pwa-alert-title { font-size: 13px; font-weight: 600; }
.chat-pwa-alert-desc { font-size: 11px; opacity: 0.6; margin-top: 2px; }
.chat-pwa-alert-btn {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 6px 14px; border: none; border-radius: 8px;
    font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}

body[theme="dark"] .chat-pwa-alert { background: rgba(96,165,250,.08); border: 1px solid rgba(96,165,250,.15); }
body[theme="dark"] .chat-pwa-alert-icon { color: #60a5fa; }
body[theme="dark"] .chat-pwa-alert-title { color: rgba(255,255,255,.88); }
body[theme="dark"] .chat-pwa-alert-btn { background: rgba(96,165,250,.15); color: #60a5fa; }
body[theme="dark"] .chat-pwa-alert-btn:hover { background: rgba(96,165,250,.25); }

body[theme="light"] .chat-pwa-alert { background: rgba(59,130,246,.06); border: 1px solid rgba(59,130,246,.12); }
body[theme="light"] .chat-pwa-alert-icon { color: #3b82f6; }
body[theme="light"] .chat-pwa-alert-title { color: #1a1a1a; }
body[theme="light"] .chat-pwa-alert-btn { background: rgba(59,130,246,.1); color: #3b82f6; }
body[theme="light"] .chat-pwa-alert-btn:hover { background: rgba(59,130,246,.18); }

/* A2HS instructions drawer */
.a2hs-content { padding: 24px 20px 28px; }
.a2hs-title { font-size: 17px; font-weight: 700; margin-bottom: 20px; }
.a2hs-steps { display: flex; flex-direction: column; gap: 14px; margin-bottom: 20px; }
.a2hs-step { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.5; }
.a2hs-step-num {
    width: 24px; height: 24px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.a2hs-native-note {
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; padding: 10px 14px; border-radius: 10px; margin-bottom: 16px;
}
.a2hs-done-btn {
    width: 100%; padding: 12px; border: none; border-radius: 10px;
    font-size: 14px; font-weight: 600; cursor: pointer;
}

body[theme="dark"] .el-drawer.a2hs-drawer { background: #232323 !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.a2hs-drawer .el-drawer__body { background: #232323 !important; }
body[theme="dark"] .a2hs-step-num { background: rgba(255,255,255,.08); color: rgba(255,255,255,.6); }
body[theme="dark"] .a2hs-native-note { background: rgba(167,139,250,.1); color: #a78bfa; }
body[theme="dark"] .a2hs-done-btn { background: rgba(255,255,255,.08); color: rgba(255,255,255,.7); }
body[theme="dark"] .a2hs-done-btn:hover { background: rgba(255,255,255,.12); }

body[theme="light"] .el-drawer.a2hs-drawer { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.a2hs-drawer .el-drawer__body { background: #fff !important; }
body[theme="light"] .a2hs-step-num { background: rgba(0,0,0,.06); color: rgba(0,0,0,.5); }
body[theme="light"] .a2hs-native-note { background: rgba(124,58,237,.06); color: #7c3aed; }
body[theme="light"] .a2hs-done-btn { background: rgba(0,0,0,.06); color: rgba(0,0,0,.6); }
body[theme="light"] .a2hs-done-btn:hover { background: rgba(0,0,0,.1); }

/* Dashboard — Next up CTA chip */
body[theme="dark"] .ld-nextup-cta { /*background: rgba(167,139,250,.08); */ border: 1px solid rgba(167,139,250,.18); }
body[theme="dark"] .ld-nextup-cta:hover { background: rgba(167,139,250,.14); border-color: rgba(167,139,250,.3); }
body[theme="light"] .ld-nextup-cta { /*background: rgba(124,58,237,.05);*/ border: 1px solid rgba(124,58,237,.14); }
body[theme="light"] .ld-nextup-cta:hover { background: rgba(124,58,237,.09); border-color: rgba(124,58,237,.25); }

/* Dashboard — Pulse drawer */
body[theme="dark"] .el-drawer.ld-pulse-drawer { background: #232323 !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.ld-pulse-drawer .el-drawer__body { background: #232323 !important; }
body[theme="dark"] .ld-pulse-next { background: rgba(167,139,250,.06); border: 1px solid rgba(167,139,250,.15); }
body[theme="dark"] .ld-pulse-next:hover { border-color: rgba(167,139,250,.3); background: rgba(167,139,250,.1); }
body[theme="dark"] .ld-pulse-streak-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); }

body[theme="light"] .el-drawer.ld-pulse-drawer { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.ld-pulse-drawer .el-drawer__body { background: #fff !important; }
body[theme="light"] .ld-pulse-next { background: rgba(124,58,237,.04); border: 1px solid rgba(124,58,237,.12); }
body[theme="light"] .ld-pulse-next:hover { border-color: rgba(124,58,237,.25); background: rgba(124,58,237,.07); }
body[theme="light"] .ld-pulse-streak-card { background: rgba(0,0,0,.03); border: 1px solid rgba(0,0,0,.06); }

/* Message file attachment card */
.msg-file-card {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 14px; border-radius: 12px; max-width: 480px; box-sizing: border-box;
}

/* Upgrade CTA card — shown in the chat stream when a gated agent
   declines to run. Styled like the file card so it sits visually with
   the rest of the message attachments, but with the brand purple→coral
   gradient that signals "premium". */
.msg-upgrade-card {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 14px; border-radius: 12px; max-width: 480px; box-sizing: border-box;
    cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease;
    background: linear-gradient(135deg, rgba(167,139,250,0.18), rgba(248,113,113,0.12));
    border: 1px solid rgba(167,139,250,0.35);
}
.msg-upgrade-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(124,58,237,0.18); }
.msg-upgrade-icon {
    width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg,#a78bfa,#7c3aed); color: #fff; font-size: 18px;
}
.msg-upgrade-body { flex: 1; min-width: 0; }
.msg-upgrade-title { font-size: 13px; font-weight: 700; letter-spacing: -0.1px; }
.msg-upgrade-sub { font-size: 11px; opacity: 0.6; margin-top: 1px; }
.msg-upgrade-arrow { font-size: 18px; opacity: 0.45; flex-shrink: 0; }
body[theme="dark"] .msg-upgrade-title { color: rgba(255,255,255,0.95); }
body[theme="dark"] .msg-upgrade-sub { color: rgba(255,255,255,0.5); }
body[theme="dark"] .msg-upgrade-arrow { color: rgba(255,255,255,0.5); }
body[theme="light"] .msg-upgrade-title { color: rgba(0,0,0,0.9); }
body[theme="light"] .msg-upgrade-sub { color: rgba(0,0,0,0.5); }
body[theme="light"] .msg-upgrade-arrow { color: rgba(0,0,0,0.5); }
@media (max-width: 640px) {
    .msg-upgrade-card { max-width: 100%; gap: 10px; padding: 10px 12px; }
    .msg-upgrade-icon { width: 32px; height: 32px; font-size: 16px; }
    .msg-upgrade-title { font-size: 12px; }
}
.msg-file-card-icon { font-size: 22px; flex-shrink: 0; }
.msg-file-card-body { flex: 1; min-width: 0; overflow: hidden; }
.msg-file-card-title { font-size: 13px; font-weight: 600; word-break: break-word; }
.msg-file-card-meta { font-size: 10px; opacity: 0.4; margin-top: 2px; }
.msg-file-card-actions { display: flex; gap: 4px; flex-shrink: 0; }
@media (max-width: 640px) {
    .msg-file-card { max-width: 100%; gap: 8px; padding: 10px 12px; }
    .msg-file-card-title { font-size: 12px; }
}
.msg-file-card-btn {
    display: flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
    font-size: 14px; transition: all 0.15s; cursor: pointer;
}
.msg-file-card-download {
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 8px; flex-shrink: 0;
    font-size: 16px; text-decoration: none; transition: all 0.15s; cursor: pointer;
}


body[theme="dark"] .msg-file-card { background: rgba(167,139,250,.08); border: 1px solid rgba(167,139,250,.15); }
body[theme="dark"] .msg-file-card-icon { color: #a78bfa; }
body[theme="dark"] .msg-file-card-btn { background: rgba(255,255,255,.06); color: rgba(255,255,255,.5); }
body[theme="dark"] .msg-file-card-btn:hover { background: rgba(167,139,250,.15); color: #a78bfa; }
body[theme="dark"] .msg-file-card-download { background: rgba(167,139,250,.12); color: #a78bfa; }
body[theme="dark"] .msg-file-card-download:hover { background: rgba(167,139,250,.25); }
body[theme="dark"] .app-file-viewer { background: #1b1b1b; color: rgba(255,255,255,.88); border-left-color: rgba(255,255,255,.06); }
body[theme="dark"] .app-file-viewer-topbar { border-bottom-color: rgba(255,255,255,.06); }
body[theme="dark"] .app-file-viewer-btn:hover { background: rgba(255,255,255,.08); }
body[theme="dark"] .app-file-viewer-fallback-btn { background: rgba(167,139,250,.15); color: #a78bfa; }
body[theme="dark"] .el-drawer.app-file-viewer-mobile,
body[theme="dark"] .el-drawer.app-split-panel-mobile { background: #1b1b1b !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.app-file-viewer-mobile .el-drawer__body,
body[theme="dark"] .el-drawer.app-split-panel-mobile .el-drawer__body { background: #1b1b1b !important; padding: 0 !important; }

body[theme="light"] .msg-file-card { background: rgba(124,58,237,.05); border: 1px solid rgba(124,58,237,.12); }
body[theme="light"] .msg-file-card-icon { color: #7c3aed; }
body[theme="light"] .msg-file-card-btn { background: rgba(0,0,0,.04); color: rgba(0,0,0,.4); }
body[theme="light"] .msg-file-card-btn:hover { background: rgba(124,58,237,.08); color: #7c3aed; }
body[theme="light"] .msg-file-card-download { background: rgba(124,58,237,.08); color: #7c3aed; }
body[theme="light"] .msg-file-card-download:hover { background: rgba(124,58,237,.18); }
body[theme="light"] .app-file-viewer { background: #fff; color: #1a1a1a; border-left-color: rgba(0,0,0,.07); }
body[theme="light"] .app-file-viewer-topbar { border-bottom-color: rgba(0,0,0,.07); }
body[theme="light"] .app-file-viewer-btn:hover { background: rgba(0,0,0,.06); }
body[theme="light"] .app-file-viewer-fallback-btn { background: rgba(124,58,237,.08); color: #7c3aed; }
body[theme="light"] .el-drawer.app-file-viewer-mobile,
body[theme="light"] .el-drawer.app-split-panel-mobile { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.app-file-viewer-mobile .el-drawer__body,
body[theme="light"] .el-drawer.app-split-panel-mobile .el-drawer__body { background: #fff !important; padding: 0 !important; }

/* Skills page */
body[theme="dark"] .sk-card { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06); }
body[theme="dark"] .sk-card:hover { background: rgba(167,139,250,.05); border-color: rgba(167,139,250,.15); }
body[theme="dark"] .sk-card-icon { color: #a78bfa; }
body[theme="light"] .sk-card { background: rgba(0,0,0,.02); border: 1px solid rgba(0,0,0,.06); }
body[theme="light"] .sk-card:hover { background: rgba(124,58,237,.03); border-color: rgba(124,58,237,.12); }
body[theme="light"] .sk-card-icon { color: #7c3aed; }

/* Skills detail drawer */
body[theme="dark"] .el-drawer.sk-detail-drawer { background: #232323 !important; color: rgba(255,255,255,.88) !important; }
body[theme="dark"] .el-drawer.sk-detail-drawer .el-drawer__body { background: #232323 !important; }
body[theme="dark"] .sk-detail-meta { border-top: 1px solid rgba(255,255,255,.07); padding-top: 12px; }
body[theme="dark"] .sk-detail-btn-run { background: rgba(167,139,250,.15); color: #a78bfa; }
body[theme="dark"] .sk-detail-btn-run:hover { background: rgba(167,139,250,.25); }
body[theme="dark"] .sk-detail-btn-edit { background: rgba(255,255,255,.06); color: rgba(255,255,255,.7); }
body[theme="dark"] .sk-detail-btn-edit:hover { background: rgba(255,255,255,.1); }
body[theme="dark"] .sk-detail-btn-delete { background: rgba(248,113,113,.08); color: #f87171; }
body[theme="dark"] .sk-detail-btn-delete:hover { background: rgba(248,113,113,.15); }

body[theme="light"] .el-drawer.sk-detail-drawer { background: #fff !important; color: #1a1a1a !important; }
body[theme="light"] .el-drawer.sk-detail-drawer .el-drawer__body { background: #fff !important; }
body[theme="light"] .sk-detail-meta { border-top: 1px solid rgba(0,0,0,.07); padding-top: 12px; }
body[theme="light"] .sk-detail-btn-run { background: rgba(124,58,237,.08); color: #7c3aed; }
body[theme="light"] .sk-detail-btn-run:hover { background: rgba(124,58,237,.15); }
body[theme="light"] .sk-detail-btn-edit { background: rgba(0,0,0,.04); color: rgba(0,0,0,.6); }
body[theme="light"] .sk-detail-btn-edit:hover { background: rgba(0,0,0,.07); }
body[theme="light"] .sk-detail-btn-delete { background: rgba(239,68,68,.06); color: #ef4444; }
body[theme="light"] .sk-detail-btn-delete:hover { background: rgba(239,68,68,.12); }


/* ── Lookup tag-view items ───────────────────────────────── */
.ltv-wrap {
    border-radius: 14px !important; cursor: pointer;
    transition: border-color .15s, background .15s;
    max-width: 460px;
}
.ltv-header { display: flex; align-items: center; gap: 10px; }
.ltv-icon {
    flex-shrink: 0; width: 34px; height: 34px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.ltv-header-body { flex: 1; min-width: 0; }
.ltv-title { font-size: 13px; font-weight: 700; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ltv-sub { font-size: 11px; opacity: .5; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ltv-open-btn {
    flex-shrink: 0; display: flex; align-items: center; gap: 5px;
    font-size: 11px; border-radius: 20px; padding: 4px 11px;
    transition: background .15s; white-space: nowrap;
}
.ltv-more { font-size: 12px; cursor: pointer; font-weight: 500; padding: 6px 0 10px; }

/* light */
body[theme="light"] .ltv-wrap { border: 1px solid rgba(124,58,237,.15); background: rgba(124,58,237,.03); }
body[theme="light"] .ltv-wrap:hover { border-color: rgba(124,58,237,.35); background: rgba(124,58,237,.07); }
body[theme="light"] .ltv-icon { background: rgba(124,58,237,.1); color: #7c3aed; }
body[theme="light"] .ltv-open-btn { color: #7c3aed; border: 1px solid rgba(124,58,237,.25); }
body[theme="light"] .ltv-wrap:hover .ltv-open-btn { background: rgba(124,58,237,.08); }
body[theme="light"] .ltv-more { color: #7c3aed; }

/* ── Shared AI Bubble (interaction-ai-bubble.vue) ─────────── */
.ai-bubble {
    position: fixed; max-width: 420px; border-radius: 10px; z-index: 9999;
    animation: ai-bubble-in .15s ease;
}
@keyframes ai-bubble-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.ai-bubble-loading { display: flex; align-items: center; gap: 8px; padding: 12px 16px; font-size: 12px; }
.ai-bubble-actions { display: flex; flex-wrap: wrap; gap: 4px; padding: 6px; }
.ai-bubble-actions-border { border-top: 1px solid rgba(255,255,255,.06); }
.ai-bubble-secondary { border-top: 1px solid rgba(255,255,255,.04); }
.ai-bubble-btn-more { opacity: .4; }
.ai-bubble-btn-more:hover { opacity: .7; }
.ai-bubble-btn {
    display: flex; align-items: center; gap: 4px; padding: 6px 10px;
    font-size: 12px; font-weight: 500; border-radius: 6px; cursor: pointer;
    transition: all .12s; white-space: nowrap; border: none;
}
.ai-bubble-btn i { font-size: 13px; }
.ai-bubble-btn-sm { font-size: 11px; padding: 4px 8px; }
.ai-bubble-commerce-row {
    display: flex; align-items: center; gap: 8px; padding: 10px 14px;
    font-size: 13px; font-weight: 600; cursor: pointer; transition: all .12s;
}
.ai-bubble-commerce-row i:first-child { font-size: 16px; }
.ai-bubble-commerce-arrow { margin-left: auto; font-size: 16px; opacity: .5; }
.ai-bubble-commerce {
    display: flex; align-items: center; gap: 6px; padding: 8px 12px; margin: 0 8px;
    border-radius: 8px; font-size: 12px; font-weight: 500; cursor: pointer; transition: all .12s;
}
.ai-bubble-commerce i { font-size: 14px; }
.ai-bubble-commerce-loading { display: flex; align-items: center; gap: 6px; padding: 8px 14px; font-size: 11px; opacity: .5; }
.ai-bubble-reply { max-width: 420px; }
.ai-bubble-reply-scroll { max-height: 240px; overflow-y: auto; padding: 10px 12px; scrollbar-width: thin; }
.ai-bubble-reply-scroll::-webkit-scrollbar { width: 4px; }
.ai-bubble-reply-scroll::-webkit-scrollbar-thumb { background: rgba(167,139,250,.2); border-radius: 2px; }
.ai-bubble-reply-text { font-size: 13px; line-height: 1.6; }
.ai-bubble-reply-text strong { font-weight: 600; }
.ai-bubble-reply-text em { font-style: italic; opacity: .85; }
.ai-bubble-reply-foot { display: flex; gap: 4px; justify-content: flex-end; padding: 6px 12px; }
.ai-bubble-entity { padding: 8px 12px; }
.ai-bubble-entity-header { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; }
.ai-bubble-entity-meta { font-size: 11px; margin-top: 4px; opacity: .5; }
.ai-bubble-links { padding: 4px 8px; }
.ai-bubble-link-item { padding: 6px 8px; border-radius: 6px; cursor: pointer; transition: background .12s; }
.ai-bubble-link-header { display: flex; align-items: center; gap: 6px; font-size: 12px; }
.ai-bubble-link-snippet { font-size: 11px; opacity: .5; margin-top: 2px; }

/* dark */
body[theme="dark"] .ai-bubble { background: #2a2a2a; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 4px 16px rgba(0,0,0,.4); }
body[theme="dark"] .ai-bubble-loading { color: rgba(255,255,255,.5); }
body[theme="dark"] .ai-bubble-loading i { color: #a78bfa; }
body[theme="dark"] .ai-bubble-btn { background: rgba(255,255,255,.06); color: rgba(255,255,255,.7); }
body[theme="dark"] .ai-bubble-btn:hover { background: rgba(167,139,250,.2); color: #a78bfa; }
body[theme="dark"] .ai-bubble-commerce-row { background: linear-gradient(135deg, rgba(167,139,250,.1), rgba(124,58,237,.08)); border-bottom: 1px solid rgba(167,139,250,.1); color: #a78bfa; }
body[theme="dark"] .ai-bubble-commerce-row:hover { background: linear-gradient(135deg, rgba(167,139,250,.18), rgba(124,58,237,.12)); }
body[theme="dark"] .ai-bubble-commerce { background: rgba(167,139,250,.08); border: 1px solid rgba(167,139,250,.15); color: #a78bfa; }
body[theme="dark"] .ai-bubble-commerce:hover { background: rgba(167,139,250,.15); }
body[theme="dark"] .ai-bubble-reply-text { color: rgba(255,255,255,.8); }
body[theme="dark"] .ai-bubble-reply-text strong { color: rgba(255,255,255,.95); }
body[theme="dark"] .ai-bubble-reply-foot { border-top: 1px solid rgba(255,255,255,.06); }
body[theme="dark"] .ai-bubble-entity { border-bottom: 1px solid rgba(255,255,255,.06); }
body[theme="dark"] .ai-bubble-link-item:hover { background: rgba(255,255,255,.05); }

/* light */
body[theme="light"] .ai-bubble { background: #fff; border: 1px solid rgba(0,0,0,.1); box-shadow: 0 4px 16px rgba(0,0,0,.12); }
body[theme="light"] .ai-bubble-loading { color: rgba(0,0,0,.4); }
body[theme="light"] .ai-bubble-loading i { color: #7c3aed; }
body[theme="light"] .ai-bubble-btn { background: rgba(0,0,0,.04); color: rgba(0,0,0,.65); }
body[theme="light"] .ai-bubble-btn:hover { background: rgba(124,58,237,.1); color: #7c3aed; }
body[theme="light"] .ai-bubble-actions-border { border-top-color: rgba(0,0,0,.06); }
body[theme="light"] .ai-bubble-secondary { border-top-color: rgba(0,0,0,.04); }
body[theme="light"] .ai-bubble-commerce-row { background: linear-gradient(135deg, rgba(124,58,237,.06), rgba(124,58,237,.04)); border-bottom: 1px solid rgba(124,58,237,.08); color: #7c3aed; }
body[theme="light"] .ai-bubble-commerce-row:hover { background: linear-gradient(135deg, rgba(124,58,237,.1), rgba(124,58,237,.07)); }
body[theme="light"] .ai-bubble-commerce { background: rgba(124,58,237,.05); border: 1px solid rgba(124,58,237,.12); color: #7c3aed; }
body[theme="light"] .ai-bubble-commerce:hover { background: rgba(124,58,237,.1); }
body[theme="light"] .ai-bubble-reply-text { color: rgba(0,0,0,.7); }
body[theme="light"] .ai-bubble-reply-text strong { color: rgba(0,0,0,.9); }
body[theme="light"] .ai-bubble-reply-foot { border-top: 1px solid rgba(0,0,0,.06); }
body[theme="light"] .ai-bubble-entity { border-bottom: 1px solid rgba(0,0,0,.06); }
body[theme="light"] .ai-bubble-entity-meta { color: rgba(0,0,0,.45); }
body[theme="light"] .ai-bubble-link-item:hover { background: rgba(0,0,0,.04); }

/* ── Mini Chat (interaction-mini-chat.vue) ────────────────── */
.mini-chat {
    position: absolute; bottom: 0; right: 0; width: 340px; max-height: 420px;
    display: flex; flex-direction: column; border-radius: 14px 14px 0 0;
    z-index: 100; overflow: hidden;
}
.mini-chat-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px; flex-shrink: 0;
}
.mini-chat-header-title { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; }
.mini-chat-header-btn { cursor: pointer; opacity: .5; font-size: 16px; }
.mini-chat-header-btn:hover { opacity: 1; }
.mini-chat-messages { flex: 1; overflow-y: auto; padding: 8px 14px; display: flex; flex-direction: column; gap: 8px; min-height: 120px; max-height: 280px; }
.mini-chat-msg { max-width: 85%; font-size: 13px; line-height: 1.5; padding: 8px 12px; border-radius: 10px; word-break: break-word; }
.mini-chat-msg--user { align-self: flex-end; }
.mini-chat-msg--ai { align-self: flex-start; }
.mini-chat-msg-text { font-size: 13px; }
.mini-chat-msg-text code { font-size: 12px; padding: 1px 4px; border-radius: 3px; }
.mini-chat-input-row { display: flex; align-items: center; gap: 8px; padding: 10px 14px; flex-shrink: 0; }
.mini-chat-input {
    flex: 1; border-radius: 20px; padding: 8px 14px; font-size: 13px;
    outline: none; border: none;
}
.mini-chat-send { cursor: pointer; font-size: 18px; opacity: .6; transition: opacity .15s; }
.mini-chat-send:hover { opacity: 1; }
.mini-chat-send.disabled { opacity: .2; cursor: default; }

/* dark */
body[theme="dark"] .mini-chat { background: #2a2828; border: 1px solid #3f3e3e; box-shadow: 0 -4px 24px rgba(0,0,0,.4); }
body[theme="dark"] .mini-chat-header { border-bottom: 1px solid rgba(255,255,255,.06); }
body[theme="dark"] .mini-chat-msg--user { background: rgba(167,139,250,.15); color: rgba(255,255,255,.9); }
body[theme="dark"] .mini-chat-msg--ai { background: rgba(255,255,255,.05); color: rgba(255,255,255,.8); }
body[theme="dark"] .mini-chat-msg-text code { background: rgba(255,255,255,.08); }
body[theme="dark"] .mini-chat-input-row { border-top: 1px solid rgba(255,255,255,.06); }
body[theme="dark"] .mini-chat-input { background: rgba(255,255,255,.05); color: rgba(255,255,255,.9); }
body[theme="dark"] .mini-chat-send { color: #a78bfa; }

/* light */
body[theme="light"] .mini-chat { background: #fff; border: 1px solid rgba(0,0,0,.1); box-shadow: 0 -4px 24px rgba(0,0,0,.1); }
body[theme="light"] .mini-chat-header { border-bottom: 1px solid rgba(0,0,0,.06); }
body[theme="light"] .mini-chat-msg--user { background: rgba(124,58,237,.08); color: rgba(0,0,0,.85); }
body[theme="light"] .mini-chat-msg--ai { background: rgba(0,0,0,.03); color: rgba(0,0,0,.8); }
body[theme="light"] .mini-chat-msg-text code { background: rgba(0,0,0,.05); }
body[theme="light"] .mini-chat-input-row { border-top: 1px solid rgba(0,0,0,.06); }
body[theme="light"] .mini-chat-input { background: rgba(0,0,0,.03); color: rgba(0,0,0,.85); }
body[theme="light"] .mini-chat-send { color: #7c3aed; }

@media (max-width: 767px) {
    /* On mobile, lift the mini-chat to the viewport root (position: fixed)
       and stack it above the canvas bottom sheet (z-index 9999). Otherwise
       its absolute-positioned default keeps it inside the canvas content
       layer where the sheet covers it. */
    .mini-chat {
        position: fixed;
        width: 100%; left: 0; right: 0; bottom: 0;
        border-radius: 14px 14px 0 0;
        z-index: 10000;
    }
}

/* ── Canvas Orders Section ────────────────────────────────── */
.canvas-orders { margin-bottom: 16px; }
.canvas-orders-title {
    display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em; opacity: .6;
    padding: 0 4px 8px; margin-bottom: 4px;
}
.canvas-orders-count {
    font-size: 10px; font-weight: 600; border-radius: 10px; padding: 1px 6px;
    margin-left: 2px;
}
.canvas-orders-list { display: flex; flex-direction: column; gap: 4px; }
.canvas-order-item {
    padding: 8px 10px; border-radius: 8px; font-size: 12px;
}
.canvas-order-name { font-weight: 600; margin-bottom: 3px; font-size: 12px; }
.canvas-order-meta { display: flex; align-items: center; gap: 8px; font-size: 11px; opacity: .6; }
.canvas-order-status { font-weight: 500; }
.canvas-order-status--delivered { color: #34d399; }
.canvas-order-status--processing { color: #60a5fa; }
.canvas-order-status--transit { color: #f59e0b; }
.canvas-order-status--cancelled { color: #f87171; }
.canvas-orders-empty { font-size: 12px; opacity: .35; padding: 16px 4px; text-align: center; }

body[theme="dark"] .canvas-orders-count { background: rgba(255,255,255,.08); }
body[theme="dark"] .canvas-order-item { border: 1px solid rgba(255,255,255,.05); }

body[theme="light"] .canvas-orders-count { background: rgba(0,0,0,.06); }
body[theme="light"] .canvas-order-item { border: 1px solid rgba(0,0,0,.06); }

/* ── Canvas Marketplace Suggestions ───────────────────────── */
.canvas-marketplace { margin-bottom: 16px; }
.canvas-marketplace-title {
    display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em; opacity: .6;
    padding: 0 4px 8px; margin-bottom: 4px;
}
.canvas-marketplace-count {
    font-size: 10px; font-weight: 600; border-radius: 10px; padding: 1px 6px;
    margin-left: 2px;
}
.canvas-marketplace-list { display: flex; flex-direction: column; gap: 4px; }
.canvas-marketplace-item {
    display: flex; align-items: center; gap: 10px; padding: 8px 10px;
    border-radius: 8px; cursor: pointer; transition: all .12s;
}
.canvas-marketplace-item-icon {
    width: 30px; height: 30px; border-radius: 8px;
    display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0;
}
.canvas-marketplace-item-body { flex: 1; min-width: 0; }
.canvas-marketplace-item-name { font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.canvas-marketplace-item-type { font-size: 10px; opacity: .5; margin-top: 1px; }
.canvas-marketplace-item-actions { display: flex; gap: 4px; flex-shrink: 0; }
.canvas-marketplace-item-cta {
    display: flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 500;
    padding: 4px 10px; border-radius: 14px; flex-shrink: 0; transition: all .12s; cursor: pointer;
}
.canvas-marketplace-empty { font-size: 12px; opacity: .35; padding: 16px 4px; text-align: center; }

body[theme="dark"] .canvas-marketplace-count { background: rgba(255,255,255,.08); }
body[theme="dark"] .canvas-marketplace-item { border: 1px solid rgba(255,255,255,.05); }
body[theme="dark"] .canvas-marketplace-item:hover { background: rgba(167,139,250,.08); border-color: rgba(167,139,250,.2); }
body[theme="dark"] .canvas-marketplace-item-icon { background: rgba(167,139,250,.12); color: #a78bfa; }
body[theme="dark"] .canvas-marketplace-item-cta { background: rgba(167,139,250,.1); color: #a78bfa; }
body[theme="dark"] .canvas-marketplace-item-cta:hover { background: rgba(167,139,250,.2); }
body[theme="dark"] .canvas-marketplace-item-cta--book { background: rgba(52,211,153,.1); color: #34d399; }
body[theme="dark"] .canvas-marketplace-item-cta--book:hover { background: rgba(52,211,153,.2); }

body[theme="light"] .canvas-marketplace-count { background: rgba(0,0,0,.06); }
body[theme="light"] .canvas-marketplace-item { border: 1px solid rgba(0,0,0,.06); }
body[theme="light"] .canvas-marketplace-item:hover { background: rgba(124,58,237,.04); border-color: rgba(124,58,237,.15); }
body[theme="light"] .canvas-marketplace-item-icon { background: rgba(124,58,237,.08); color: #7c3aed; }
body[theme="light"] .canvas-marketplace-item-cta { background: rgba(124,58,237,.06); color: #7c3aed; }
body[theme="light"] .canvas-marketplace-item-cta:hover { background: rgba(124,58,237,.12); }
body[theme="light"] .canvas-marketplace-item-cta--book { background: rgba(5,150,105,.06); color: #059669; }
body[theme="light"] .canvas-marketplace-item-cta--book:hover { background: rgba(5,150,105,.12); }

/* ── Mini chat toggle button ──────────────────────────────── */
.pc-mini-chat-toggle {
    display: flex; align-items: center; gap: 6px; padding: 8px 14px;
    font-size: 12px; font-weight: 500; cursor: pointer; border-radius: 8px;
    margin: 8px 0; transition: background .12s;
}
body[theme="dark"] .pc-mini-chat-toggle { color: #a78bfa; }
body[theme="dark"] .pc-mini-chat-toggle:hover { background: rgba(167,139,250,.1); }
body[theme="light"] .pc-mini-chat-toggle { color: #7c3aed; }
body[theme="light"] .pc-mini-chat-toggle:hover { background: rgba(124,58,237,.06); }

/* dark */
body[theme="dark"] .ltv-wrap { border: 1px solid rgba(167,139,250,.2); background: rgba(124,58,237,.05); }
body[theme="dark"] .ltv-wrap:hover { border-color: rgba(167,139,250,.45); background: rgba(124,58,237,.09); }
body[theme="dark"] .ltv-icon { background: rgba(167,139,250,.15); color: #a78bfa; }
body[theme="dark"] .ltv-open-btn { color: #a78bfa; border: 1px solid rgba(167,139,250,.3); }
body[theme="dark"] .ltv-wrap:hover .ltv-open-btn { background: rgba(167,139,250,.12); }
body[theme="dark"] .ltv-more { color: #a78bfa; }

body[theme="light"] .pc-routine-card { color: rgba(0,0,0,.65) !important; background: rgba(0,0,0,.03) !important; }

/* ── Voice Chat Mode ──────────────────────────────────────────────── */
.voice-mode-root {
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
}
.voice-header {
    position: absolute;
    top: 20px; left: 24px;
    display: flex; align-items: center; gap: 10px;
}
.voice-header-avatar {
    width: 36px; height: 36px;
    border-radius: 50%;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.voice-header-avatar img { width: 100%; height: 100%; object-fit: cover; }
.voice-header-name { font-size: 15px; font-weight: 600; letter-spacing: 0.2px; }
.voice-close {
    position: absolute;
    top: 20px; right: 24px;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    font-size: 22px;
    transition: background 0.15s;
}
.voice-orb-wrap {
    position: relative;
    width: 240px; height: 240px;
    display: flex; align-items: center; justify-content: center;
}
/* Iridescent holographic orb: a perfectly SPHERICAL container (border-radius:50%,
   overflow:hidden) clips three rotating conic-gradient rim layers inside it.
   Heavy blur on each rim produces the chromatic-aberration soap-bubble look.
   A glassy white core + top-left specular highlight sell the 3D sphere. */
.voice-orb {
    /* --voice-intensity (0..1) is set in real time by voice-mode.vue from
       AnalyserNode data. CSS uses it to scale, blur, and glow the orb
       proportionally to the user's voice / AI voice amplitude. */
    --voice-intensity: 0;
    position: relative;
    width: 180px; height: 180px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow:
        0 10px calc(40px + var(--voice-intensity) * 40px) rgba(167, 139, 250, calc(0.35 + var(--voice-intensity) * 0.35)),
        inset 0 0 30px rgba(255, 255, 255, 0.1);
    transform: scale(calc(1 + var(--voice-intensity) * 0.08));
    transition: box-shadow 0.12s ease, transform 0.12s ease;
    background: #fff;
}

/* Rim layers: conic gradients that rotate inside the clipped sphere.
   Heavy blur makes the color stops smear into each other, producing the
   iridescent rainbow feel around the edges. */
.voice-orb-rim {
    position: absolute;
    inset: -15%;
    border-radius: 50%;
    will-change: transform;
}
.voice-orb-rim-1 {
    background: conic-gradient(
        from 0deg,
        #f0abfc 0%,
        #fde68a 14%,
        #a5f3fc 28%,
        #c4b5fd 42%,
        #fbcfe8 58%,
        #fde68a 72%,
        #67e8f9 86%,
        #f0abfc 100%
    );
    /* Blur + opacity swell with voice amplitude */
    filter: blur(calc(22px + var(--voice-intensity) * 18px));
    opacity: calc(0.85 + var(--voice-intensity) * 0.15);
    animation: voice-rim-spin-a 14s linear infinite;
}
.voice-orb-rim-2 {
    background: conic-gradient(
        from 120deg,
        #c4b5fd 0%,
        #67e8f9 22%,
        #fbcfe8 44%,
        #fde68a 66%,
        #e879f9 88%,
        #c4b5fd 100%
    );
    filter: blur(calc(26px + var(--voice-intensity) * 20px));
    animation: voice-rim-spin-b 18s linear infinite reverse;
    opacity: calc(0.75 + var(--voice-intensity) * 0.25);
    mix-blend-mode: screen;
}
.voice-orb-rim-3 {
    background: conic-gradient(
        from 240deg,
        #fbcfe8 0%,
        #e879f9 30%,
        #a5f3fc 55%,
        #fde68a 80%,
        #fbcfe8 100%
    );
    filter: blur(calc(30px + var(--voice-intensity) * 15px));
    animation: voice-rim-spin-c 22s linear infinite;
    opacity: calc(0.55 + var(--voice-intensity) * 0.35);
    mix-blend-mode: screen;
}

/* Glassy white core -- keeps the center bright like a soap bubble */
.voice-orb-core {
    position: absolute;
    /* Core expands slightly with voice amplitude so it feels like it's breathing */
    inset: calc(18% - var(--voice-intensity) * 4%);
    border-radius: 50%;
    background: radial-gradient(
        circle at 38% 32%,
        rgba(255, 255, 255, 0.98) 0%,
        rgba(255, 255, 255, 0.82) 40%,
        rgba(255, 255, 255, 0.45) 70%,
        rgba(255, 255, 255, 0.1) 95%,
        transparent 100%
    );
    filter: blur(calc(6px + var(--voice-intensity) * 6px));
    animation: voice-core-breathe 5s ease-in-out infinite;
    z-index: 2;
    pointer-events: none;
}

/* Top-left specular highlight: the classic 3D sphere giveaway */
.voice-orb-sheen {
    position: absolute;
    top: 12%; left: 18%;
    width: 32%; height: 24%;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(255,255,255,0.95), transparent 70%);
    filter: blur(4px);
    pointer-events: none;
    z-index: 3;
    animation: voice-sheen-drift 7s ease-in-out infinite;
}

/* Ripple rings live in .voice-orb-wrap (siblings of .voice-orb) so they can
   expand beyond the orb's overflow:hidden clip during the LISTENING pulse. */
.voice-orb-ring {
    position: absolute;
    top: 50%; left: 50%;
    border-radius: 50%;
    border: 2px solid rgba(232, 121, 249, 0.4);
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
    z-index: 0;
}

/* ── State variants ── */
.voice-orb-listening .voice-orb-ring-1 { width: 220px; height: 220px; animation: voice-ring-pulse 2s ease-out infinite; }
.voice-orb-listening .voice-orb-ring-2 { width: 220px; height: 220px; animation: voice-ring-pulse 2s ease-out infinite 0.66s; }
.voice-orb-listening .voice-orb-ring-3 { width: 220px; height: 220px; animation: voice-ring-pulse 2s ease-out infinite 1.33s; }
/* Listening: faster chromatic rotation */
.voice-orb-listening .voice-orb-rim-1 { animation-duration: 8s; }
.voice-orb-listening .voice-orb-rim-2 { animation-duration: 10s; }
.voice-orb-listening .voice-orb-rim-3 { animation-duration: 13s; }
/* Processing: rapid churn */
.voice-orb-processing .voice-orb-rim-1 { animation-duration: 3.5s; }
.voice-orb-processing .voice-orb-rim-2 { animation-duration: 4.5s; }
.voice-orb-processing .voice-orb-rim-3 { animation-duration: 6s; }
/* Speaking: rhythmic pulse */
.voice-orb-speaking { animation: voice-orb-pulse 0.55s ease-in-out infinite alternate; }
.voice-orb-speaking .voice-orb-rim-1 { animation-duration: 6s; }
.voice-orb-speaking .voice-orb-rim-2 { animation-duration: 7.5s; }

@keyframes voice-rim-spin-a { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes voice-rim-spin-b { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes voice-rim-spin-c { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes voice-core-breathe {
    0%, 100% { transform: scale(1); opacity: 1; }
    50%      { transform: scale(1.03); opacity: 0.92; }
}
@keyframes voice-sheen-drift {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.95; }
    50%      { transform: translate(6px, -3px) scale(1.08); opacity: 0.75; }
}
@keyframes voice-ring-pulse {
    0%   { width: 180px; height: 180px; opacity: 0.7; }
    100% { width: 340px; height: 340px; opacity: 0; }
}
@keyframes voice-orb-pulse {
    from { transform: scale(1);    box-shadow: 0 10px 40px rgba(167, 139, 250, 0.35), inset 0 0 30px rgba(255, 255, 255, 0.1); }
    to   { transform: scale(1.05); box-shadow: 0 15px 60px rgba(232, 121, 249, 0.55), inset 0 0 40px rgba(255, 255, 255, 0.15); }
}
.voice-status { margin-top: 32px; font-size: 16px; font-weight: 500; letter-spacing: 0.5px; }
.voice-transcript {
    max-width: 600px; width: 90%;
    padding: 0 24px;
    margin-top: 32px;
    text-align: center;
    min-height: 80px;
    max-height: 240px;
    overflow-y: auto;
    mask-image: linear-gradient(to bottom, black 0%, black 80%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, black 0%, black 80%, transparent 100%);
}
.voice-transcript::-webkit-scrollbar { display: none; }
.voice-transcript-user { font-size: 15px; font-style: italic; margin-bottom: 12px; }
.voice-transcript-ai { font-size: 17px; line-height: 1.5; }
.voice-transcript-ai p { margin: 0 0 8px; }
.voice-transcript-ai p:last-child { margin-bottom: 0; }
.voice-transcript-ai em { font-style: italic; }
.voice-transcript-ai h1, .voice-transcript-ai h2, .voice-transcript-ai h3 { font-size: 18px; margin: 8px 0 4px; font-weight: 600; }
.voice-transcript-ai ul, .voice-transcript-ai ol { text-align: left; display: inline-block; margin: 4px 0; }
.voice-transcript-ai code { padding: 1px 6px; border-radius: 4px; font-size: 14px; }
.voice-transcript-ai a { color: #a78bfa; text-decoration: underline; }
.voice-tags-wrap { margin-top: 16px; text-align: left; }
.voice-controls { position: absolute; bottom: 48px; display: flex; gap: 20px; }
.voice-btn { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 26px; transition: all 0.15s; }
.voice-btn-end { background: #ef4444; color: white; }
.voice-btn-end:hover { background: #dc2626; transform: scale(1.05); }

/* Topbar phone icon */
.topbar-voice-btn {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s ease;
}
.topbar-voice-btn i { font-size: 19px; }

/* Dark theme */
body[theme="dark"] .voice-mode-drawer,
body[theme="dark"] .voice-mode-drawer .el-drawer__body {
    background: radial-gradient(ellipse at top, #1a1a2e 0%, #0a0a15 100%) !important;
}
body[theme="dark"] .voice-mode-root { color: #fff; }
body[theme="dark"] .voice-header-avatar { background: rgba(255,255,255,0.1); }
body[theme="dark"] .voice-header-name { color: rgba(255,255,255,0.9); }
body[theme="dark"] .voice-close { background: rgba(255,255,255,0.08); color: #fff; }
body[theme="dark"] .voice-close:hover { background: rgba(255,255,255,0.15); }
body[theme="dark"] .voice-status { color: rgba(255,255,255,0.7); }
body[theme="dark"] .voice-transcript-user { color: rgba(255,255,255,0.5); }
body[theme="dark"] .voice-transcript-ai { color: rgba(255,255,255,0.9); }
body[theme="dark"] .voice-transcript-ai strong { color: #fff; font-weight: 600; }
body[theme="dark"] .voice-transcript-ai h1,
body[theme="dark"] .voice-transcript-ai h2,
body[theme="dark"] .voice-transcript-ai h3 { color: #fff; }
body[theme="dark"] .voice-transcript-ai code { background: rgba(255,255,255,0.08); }
body[theme="dark"] .voice-btn-mute { background: rgba(255,255,255,0.1); color: white; }
body[theme="dark"] .voice-btn-mute:hover { background: rgba(255,255,255,0.2); }
body[theme="dark"] .voice-btn-mute.muted { background: rgba(239, 68, 68, 0.2); color: #ef4444; }
body[theme="dark"] .topbar-voice-btn { color: rgba(255,255,255,0.7); }
body[theme="dark"] .topbar-voice-btn:hover { background: rgba(255,255,255,0.06); color: #fff; }

/* Light theme */
body[theme="light"] .voice-mode-drawer,
body[theme="light"] .voice-mode-drawer .el-drawer__body {
    background: radial-gradient(ellipse at top, #f5f5f7 0%, #e8e8ec 100%) !important;
}
body[theme="light"] .voice-mode-root { color: #1b1b1b; }
body[theme="light"] .voice-header-avatar { background: rgba(0,0,0,0.06); }
body[theme="light"] .voice-header-name { color: rgba(0,0,0,0.85); }
body[theme="light"] .voice-close { background: rgba(0,0,0,0.06); color: #1b1b1b; }
body[theme="light"] .voice-close:hover { background: rgba(0,0,0,0.12); }
body[theme="light"] .voice-status { color: rgba(0,0,0,0.6); }
body[theme="light"] .voice-transcript-user { color: rgba(0,0,0,0.5); }
body[theme="light"] .voice-transcript-ai { color: rgba(0,0,0,0.85); }
body[theme="light"] .voice-transcript-ai strong { color: #000; font-weight: 600; }
body[theme="light"] .voice-transcript-ai h1,
body[theme="light"] .voice-transcript-ai h2,
body[theme="light"] .voice-transcript-ai h3 { color: #000; }
body[theme="light"] .voice-transcript-ai code { background: rgba(0,0,0,0.06); }
body[theme="light"] .voice-btn-mute { background: rgba(0,0,0,0.06); color: #1b1b1b; }
body[theme="light"] .voice-btn-mute:hover { background: rgba(0,0,0,0.12); }
body[theme="light"] .voice-btn-mute.muted { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
body[theme="light"] .topbar-voice-btn { color: rgba(0,0,0,0.6); }
body[theme="light"] .topbar-voice-btn:hover { background: rgba(0,0,0,0.05); color: rgba(0,0,0,0.85); }

/* ── Did You Know tip (chat empty state) ─────────────────────────────── */
.chat-empty-tip {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 680px;
    margin: 24px auto 0;
    padding: 14px 16px;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.15s ease;
}
.chat-empty-tip-icon {
    width: 36px; height: 36px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
}
.chat-empty-tip-body { flex: 1; min-width: 0; }
.chat-empty-tip-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin-bottom: 2px;
}
.chat-empty-tip-title {
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 2px;
}
.chat-empty-tip-text {
    font-size: 12px;
    line-height: 1.4;
}
.chat-empty-tip-dismiss {
    width: 24px; height: 24px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    font-size: 14px;
    flex-shrink: 0;
    transition: background 0.15s ease;
    opacity: 0.4;
}
.chat-empty-tip-dismiss:hover { opacity: 1; }

/* Dark theme */
body[theme="dark"] .chat-empty-tip {
    background: rgba(251, 207, 232, 0.04);
    border: 1px solid rgba(251, 207, 232, 0.12);
}
body[theme="dark"] .chat-empty-tip:hover {
    background: rgba(251, 207, 232, 0.08);
    border-color: rgba(251, 207, 232, 0.25);
}
body[theme="dark"] .chat-empty-tip-icon {
    background: rgba(251, 207, 232, 0.1);
    color: #fbcfe8;
}
body[theme="dark"] .chat-empty-tip-label { color: #f0abfc; }
body[theme="dark"] .chat-empty-tip-title { color: rgba(255, 255, 255, 0.95); }
body[theme="dark"] .chat-empty-tip-text { color: rgba(255, 255, 255, 0.6); }
body[theme="dark"] .chat-empty-tip-dismiss { color: rgba(255, 255, 255, 0.5); }
body[theme="dark"] .chat-empty-tip-dismiss:hover { background: rgba(255, 255, 255, 0.1); }

/* Light theme */
body[theme="light"] .chat-empty-tip {
    background: rgba(190, 24, 93, 0.03);
    border: 1px solid rgba(190, 24, 93, 0.1);
}
body[theme="light"] .chat-empty-tip:hover {
    background: rgba(190, 24, 93, 0.06);
    border-color: rgba(190, 24, 93, 0.2);
}
body[theme="light"] .chat-empty-tip-icon {
    background: rgba(190, 24, 93, 0.08);
    color: #be185d;
}
body[theme="light"] .chat-empty-tip-label { color: #be185d; }
body[theme="light"] .chat-empty-tip-title { color: rgba(0, 0, 0, 0.85); }
body[theme="light"] .chat-empty-tip-text { color: rgba(0, 0, 0, 0.6); }
body[theme="light"] .chat-empty-tip-dismiss { color: rgba(0, 0, 0, 0.4); }
body[theme="light"] .chat-empty-tip-dismiss:hover { background: rgba(0, 0, 0, 0.06); }

/* ── Life Dashboard hero brief card (interactive/pages/hm/index.vue) ── */
body[theme="dark"] .ld-brief-card {
    background: linear-gradient(155deg, rgba(167,139,250,0.10) 0%, rgba(167,139,250,0.04) 60%, rgba(167,139,250,0.02) 100%);
    border: 1px solid rgba(167,139,250,0.14);
}
body[theme="dark"] .ld-brief-card-tag.el-tag { color: #c4b5fd !important; background-color: rgba(167,139,250,0.10) !important; border-color: rgba(167,139,250,0.22) !important; }
body[theme="dark"] .ld-brief-card-item-chip { background: rgba(167,139,250,0.12); color: #c4b5fd; }
body[theme="dark"] .ld-brief-card-pill { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); }
body[theme="dark"] .ld-brief-card-pill:hover { border-color: rgba(167,139,250,0.3); background: rgba(167,139,250,0.10); color: #c4b5fd; }

body[theme="light"] .ld-brief-card {
    background: linear-gradient(155deg, rgba(124,58,237,0.07) 0%, rgba(124,58,237,0.02) 60%, rgba(124,58,237,0.01) 100%);
    border: 1px solid rgba(124,58,237,0.12);
}
body[theme="light"] .ld-brief-card-tag.el-tag { color: #6d28d9 !important; background-color: rgba(124,58,237,0.08) !important; border-color: rgba(124,58,237,0.18) !important; }
body[theme="light"] .ld-brief-card-item-chip { background: rgba(124,58,237,0.10); color: #7c3aed; }
body[theme="light"] .ld-brief-card-pill { background: rgba(0,0,0,0.04); border: 1px solid rgba(0,0,0,0.06); color: rgba(0,0,0,0.78); }
body[theme="light"] .ld-brief-card-pill:hover { border-color: rgba(124,58,237,0.25); background: rgba(124,58,237,0.06); color: #6d28d9; }

/* Surprise-me pill — slight amber accent so it reads as a special invitation
   rather than another utility chip. */
body[theme="dark"] .ld-brief-card-pill--surprise { background: rgba(251,191,36,0.08); border-color: rgba(251,191,36,0.18); color: #fde68a; }
body[theme="dark"] .ld-brief-card-pill--surprise:hover { background: rgba(251,191,36,0.14); border-color: rgba(251,191,36,0.32); color: #fcd34d; }
body[theme="light"] .ld-brief-card-pill--surprise { background: rgba(217,119,6,0.07); border-color: rgba(217,119,6,0.18); color: #b45309; }
body[theme="light"] .ld-brief-card-pill--surprise:hover { background: rgba(217,119,6,0.12); border-color: rgba(217,119,6,0.30); color: #92400e; }

/* Surprise reveal card — soft amber tint matching the pill, distinct from
   the brand-purple ld-brief-card it sits below. */
body[theme="dark"] .ld-surprise { background: rgba(251,191,36,0.05); border: 1px solid rgba(251,191,36,0.14); }
body[theme="light"] .ld-surprise { background: rgba(217,119,6,0.05); border: 1px solid rgba(217,119,6,0.14); }
body[theme="dark"] .ld-surprise-eyebrow { color: #fcd34d; }
body[theme="light"] .ld-surprise-eyebrow { color: #b45309; }

/* Weekly recap card — same brand-tinted gradient as the brief card so
   it reads as a sister card, not a separate aesthetic. */
body[theme="dark"] .ld-recap {
    background: linear-gradient(155deg, rgba(167,139,250,0.10) 0%, rgba(167,139,250,0.04) 60%, rgba(167,139,250,0.02) 100%);
    border: 1px solid rgba(167,139,250,0.14);
}
body[theme="light"] .ld-recap {
    background: linear-gradient(155deg, rgba(124,58,237,0.07) 0%, rgba(124,58,237,0.02) 60%, rgba(124,58,237,0.01) 100%);
    border: 1px solid rgba(124,58,237,0.12);
}
body[theme="dark"] .ld-recap-eyebrow { color: #c4b5fd; }
body[theme="light"] .ld-recap-eyebrow { color: #6d28d9; }
body[theme="dark"] .ld-recap-pill { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); }
body[theme="dark"] .ld-recap-pill:hover:not([disabled]) { border-color: rgba(167,139,250,0.3); background: rgba(167,139,250,0.10); color: #c4b5fd; }
body[theme="light"] .ld-recap-pill { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.06); color: rgba(0,0,0,0.78); }
body[theme="light"] .ld-recap-pill:hover:not([disabled]) { border-color: rgba(124,58,237,0.25); background: rgba(124,58,237,0.06); color: #6d28d9; }
body[theme="dark"] .ld-recap-pill--ghost { background: transparent; }
body[theme="light"] .ld-recap-pill--ghost { background: transparent; }

/* ──────────────────────────────────────────────────────────────────────
   Public profile (interactive/pages/u/_slug.vue)
   No-auth shareable subset of /life. Visual lineage matches the private
   Lifestyle (same hues per chapter, same compass colours per axis) so
   the view reads as the same identity, just trimmed.
   ────────────────────────────────────────────────────────────────────── */
body[theme="dark"] .up-page { background: #1b1b1b; color: rgba(255,255,255,0.92); min-height: 100vh; }
body[theme="light"] .up-page { background: #fafafa; color: rgba(0,0,0,0.86); min-height: 100vh; }

body[theme="dark"] .up-cover {
    background: linear-gradient(155deg, rgba(167,139,250,0.10) 0%, rgba(167,139,250,0.04) 60%, rgba(167,139,250,0.02) 100%);
    border: 1px solid rgba(167,139,250,0.14);
}
body[theme="light"] .up-cover {
    background: linear-gradient(155deg, rgba(124,58,237,0.07) 0%, rgba(124,58,237,0.02) 60%, rgba(124,58,237,0.01) 100%);
    border: 1px solid rgba(124,58,237,0.12);
}
body[theme="dark"] .up-cover-eyebrow.el-tag { color: #c4b5fd !important; background-color: rgba(167,139,250,0.10) !important; border-color: rgba(167,139,250,0.22) !important; }
body[theme="light"] .up-cover-eyebrow.el-tag { color: #6d28d9 !important; background-color: rgba(124,58,237,0.08) !important; border-color: rgba(124,58,237,0.18) !important; }

body[theme="dark"] .up-compass { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
body[theme="light"] .up-compass { background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.05); }

body[theme="dark"] .up-compass-axis--social    .up-compass-dot { background: #5eead4; box-shadow: 0 0 0 2px rgba(94,234,212,0.40); }
body[theme="light"] .up-compass-axis--social   .up-compass-dot { background: #0d9488; box-shadow: 0 0 0 2px rgba(13,148,136,0.30); }
body[theme="dark"] .up-compass-axis--motion    .up-compass-dot { background: #6ee7b7; box-shadow: 0 0 0 2px rgba(110,231,183,0.40); }
body[theme="light"] .up-compass-axis--motion   .up-compass-dot { background: #059669; box-shadow: 0 0 0 2px rgba(16,185,129,0.30); }
body[theme="dark"] .up-compass-axis--spontaneous .up-compass-dot { background: #f9a8d4; box-shadow: 0 0 0 2px rgba(244,114,182,0.40); }
body[theme="light"] .up-compass-axis--spontaneous .up-compass-dot { background: #be185d; box-shadow: 0 0 0 2px rgba(190,24,93,0.30); }
body[theme="dark"] .up-compass-axis--generous  .up-compass-dot { background: #cbd5e1; box-shadow: 0 0 0 2px rgba(148,163,184,0.45); }
body[theme="light"] .up-compass-axis--generous .up-compass-dot { background: #475569; box-shadow: 0 0 0 2px rgba(71,85,105,0.30); }

/* Chapter tints — mirror /life so the same domain shows the same hue. */
body[theme="dark"] .up-chapter--food       { background: rgba(251,191,36,0.06); }
body[theme="light"] .up-chapter--food      { background: rgba(251,191,36,0.08); }
body[theme="dark"] .up-chapter--health     { background: rgba(110,231,183,0.06); }
body[theme="light"] .up-chapter--health    { background: rgba(16,185,129,0.05); }
body[theme="dark"] .up-chapter--home       { background: rgba(251,146,60,0.06); }
body[theme="light"] .up-chapter--home      { background: rgba(234,88,12,0.05); }
body[theme="dark"] .up-chapter--finance    { background: rgba(148,163,184,0.06); }
body[theme="light"] .up-chapter--finance   { background: rgba(71,85,105,0.05); }
body[theme="dark"] .up-chapter--work       { background: rgba(129,140,248,0.06); }
body[theme="light"] .up-chapter--work      { background: rgba(79,70,229,0.04); }
body[theme="dark"] .up-chapter--learning   { background: rgba(167,139,250,0.06); }
body[theme="light"] .up-chapter--learning  { background: rgba(124,58,237,0.04); }
body[theme="dark"] .up-chapter--people     { background: rgba(251,113,133,0.06); }
body[theme="light"] .up-chapter--people    { background: rgba(225,29,72,0.04); }
body[theme="dark"] .up-chapter--recreation { background: rgba(94,234,212,0.06); }
body[theme="light"] .up-chapter--recreation { background: rgba(20,184,166,0.05); }
body[theme="dark"] .up-chapter--travel     { background: rgba(244,114,182,0.06); }
body[theme="light"] .up-chapter--travel    { background: rgba(236,72,153,0.05); }
body[theme="dark"] .up-chapter--spiritual  { background: rgba(125,211,252,0.06); }
body[theme="light"] .up-chapter--spiritual { background: rgba(14,165,233,0.04); }
body[theme="dark"] .up-chapter--shopping   { background: rgba(232,121,249,0.06); }
body[theme="light"] .up-chapter--shopping  { background: rgba(192,38,211,0.04); }
body[theme="dark"] .up-chapter--general    { background: rgba(156,163,175,0.06); }
body[theme="light"] .up-chapter--general   { background: rgba(107,114,128,0.05); }

body[theme="dark"] .up-cta { background: rgba(167,139,250,0.12); border-color: rgba(167,139,250,0.25); color: #c4b5fd; }
body[theme="dark"] .up-cta:hover { background: rgba(167,139,250,0.20); }
body[theme="light"] .up-cta { background: rgba(124,58,237,0.08); border-color: rgba(124,58,237,0.18); color: #6d28d9; }
body[theme="light"] .up-cta:hover { background: rgba(124,58,237,0.14); }

/* Goto-bottom floating pill — theme paint. Structure lives in
   components/interaction/chat.vue's style block. */
body[theme="dark"] .chat-goto-bottom {
    background: rgba(27,27,27,0.92);
    border: 1px solid rgba(255,255,255,0.10);
    color: rgba(255,255,255,0.85);
    box-shadow: 0 6px 18px rgba(0,0,0,0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
body[theme="dark"] .chat-goto-bottom:hover {
    background: rgba(38,38,38,0.96);
    color: #fff;
    box-shadow: 0 8px 22px rgba(0,0,0,0.55);
}
body[theme="light"] .chat-goto-bottom {
    background: rgba(250,250,250,0.92);
    border: 1px solid rgba(0,0,0,0.10);
    color: rgba(0,0,0,0.7);
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
body[theme="light"] .chat-goto-bottom:hover {
    background: rgba(255,255,255,0.98);
    color: #000;
    box-shadow: 0 8px 22px rgba(0,0,0,0.18);
}

/* Offline banner — theme paint. Structure lives in layouts/app.vue's
   style block. Stays soft (not red-alarm) since the canvas drawers'
   silent-catch fallback already preserves the user's edits in
   memory; the banner is a heads-up, not an emergency. */
body[theme="dark"] .app-offline-banner {
    background: rgba(38,30,30,0.96);
    border: 1px solid rgba(248,113,113,0.35);
    color: rgba(255,210,210,0.95);
    box-shadow: 0 8px 22px rgba(0,0,0,0.55);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
body[theme="light"] .app-offline-banner {
    background: rgba(255,247,247,0.97);
    border: 1px solid rgba(220,38,38,0.30);
    color: rgba(127,29,29,0.95);
    box-shadow: 0 8px 22px rgba(0,0,0,0.14);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* ── For You strip — theme paint ────────────────────────────────
   Structural CSS lives in pages/index.vue. Section background must
   be opaque so content underneath doesn't bleed through when sticky.
   The .is-stuck variants add a subtle drop shadow + bottom border so
   the strip visually detaches from the page once it pins. */
body[theme="dark"] .fy-dropdown {
    background: #1f1f1f;
    color: rgba(255,255,255,0.92);
    border: 1px solid rgba(255,255,255,0.08);
}
body[theme="dark"] .fy-tab-count {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.65);
}
body[theme="dark"] .fy-card,
body[theme="dark"] .fy-row,
body[theme="dark"] .fy-rail-card,
body[theme="dark"] .fy-listening-chip {
    background: rgba(255,255,255,0.03);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(255,255,255,0.92);
}
body[theme="dark"] .fy-card:hover,
body[theme="dark"] .fy-row:hover,
body[theme="dark"] .fy-rail-card:hover,
body[theme="dark"] .fy-listening-chip:hover {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.14);
}
body[theme="dark"] .fy-card--suggestion,
body[theme="dark"] .fy-row--suggestion {
    /* Solid one-step elevation off the dark section base (#1b1b1b)
       so the CTAs read as proper theme cards. Border matches the
       items card baseline for a consistent edge weight. */
    background: #242424;
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(255,255,255,0.92);
}
body[theme="dark"] .fy-card--suggestion:hover,
body[theme="dark"] .fy-row--suggestion:hover {
    background: #2c2c2c;
    border-color: rgba(0, 0, 0, 0.08);
}
/* Rotating tip banner — sits inline with no surface of its own;
   the icon, copy, and CTA carry the visual weight. */
body[theme="dark"] .fy-tip-banner {
    background: transparent;
    border-color: transparent;
    color: rgba(255,255,255,0.92);
}
body[theme="dark"] .fy-tip-banner-icon { color: #c4b5fd; }
body[theme="dark"] .fy-tip-cta {
    color: #c4b5fd;
    background: rgba(167,139,250,0.10);
    border-color: rgba(167,139,250,0.22);
}
body[theme="dark"] .fy-tip-cta:hover {
    background: rgba(167,139,250,0.18);
    border-color: rgba(167,139,250,0.36);
    color: #fff;
}

body[theme="light"] .fy-dropdown {
    background: #ffffff;
    color: rgba(0,0,0,0.85);
    border: 1px solid rgba(0,0,0,0.08);
}
body[theme="light"] .fy-tab-count {
    background: rgba(0,0,0,0.06);
    color: rgba(0,0,0,0.55);
}
body[theme="light"] .fy-card,
body[theme="light"] .fy-row,
body[theme="light"] .fy-rail-card,
body[theme="light"] .fy-listening-chip {
    background: rgba(0,0,0,0.02);
    border-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,0.85);
}
body[theme="light"] .fy-card:hover,
body[theme="light"] .fy-row:hover,
body[theme="light"] .fy-rail-card:hover,
body[theme="light"] .fy-listening-chip:hover {
    background: rgba(0,0,0,0.04);
    border-color: rgba(0,0,0,0.16);
}
body[theme="light"] .fy-card--suggestion,
body[theme="light"] .fy-row--suggestion {
    /* Solid one-step elevation off the light section base (#fafafa);
       border matches the items card baseline. */
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.08);
    color: rgba(0,0,0,0.85);
}
body[theme="light"] .fy-card--suggestion:hover,
body[theme="light"] .fy-row--suggestion:hover {
    background: #ffffff;
    border-color: rgba(0, 0, 0, 0.08);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
body[theme="light"] .fy-tip-banner {
    background: transparent;
    border-color: transparent;
    color: rgba(0,0,0,0.85);
}
body[theme="light"] .fy-tip-banner-icon { color: #6d28d9; }
body[theme="light"] .fy-tip-cta {
    color: #6d28d9;
    background: rgba(124,58,237,0.08);
    border-color: rgba(124,58,237,0.18);
}
body[theme="light"] .fy-tip-cta:hover {
    background: rgba(124,58,237,0.14);
    border-color: rgba(124,58,237,0.32);
    color: #4c1d95;
}

/* ── Search tag view: source cards (interaction/action/search-tag-view.vue) ──
   Sources surfaced under web_search / deep_research replies. Was using
   inline rgba(255,255,255,*) which only renders cleanly in dark mode;
   moved to theme-aware paint here so light mode reads correctly. */
body[theme="dark"] .sttv-source-card,
body[theme="dark"] .sttv-source-more {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.10);
    color: rgba(255,255,255,0.92);
}
body[theme="dark"] .sttv-source-card:hover,
body[theme="dark"] .sttv-source-more:hover {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.16);
}

body[theme="light"] .sttv-source-card,
body[theme="light"] .sttv-source-more {
    background: rgba(0,0,0,0.02);
    border-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,0.85);
}
body[theme="light"] .sttv-source-card:hover,
body[theme="light"] .sttv-source-more:hover {
    background: rgba(0,0,0,0.04);
    border-color: rgba(0,0,0,0.14);
}

/* ── Marketplace strip + detail drawer (marketplace-tag-view.vue)
   Theme paint mirrors the established surfaces:
   - Strip cards follow the project's card baseline (dark #242424,
     light #fff, purple hover) used by for-you-strip and ld-feed-card.
   - Drawer chrome + buttons follow /hm's .ld-feed-drawer +
     .ld-feed-detail-btn (radius, padding, flat tonal CTA).
   - Pending-review pill uses the project's red (#f87171 family,
     same as ld-feed-detail-dismiss). */

/* Strip cards */
body[theme="dark"] .mtv-card {
    background: #242424;
    border-color: rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.92);
}
body[theme="dark"] .mtv-card:hover {
    border-color: rgba(167,139,250,0.35);
    box-shadow: 0 6px 18px rgba(0,0,0,0.32);
}
body[theme="dark"] .mtv-thumb { background: rgba(255,255,255,0.04); }
body[theme="dark"] .mtv-thumb-fallback { color: rgba(255,255,255,0.45); }
body[theme="dark"] .mtv-vendor { color: rgba(255,255,255,0.55); }
body[theme="dark"] .mtv-amount { color: rgba(255,255,255,0.95); }
body[theme="dark"] .mtv-amount-local { color: rgba(255,255,255,0.55); }
body[theme="dark"] .mtv-empty {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.6);
}
body[theme="dark"] .mtv-pending-pill {
    background: rgba(248,113,113,0.15);
    color: #f87171;
    border: 1px solid rgba(248,113,113,0.35);
}

body[theme="light"] .mtv-card {
    background: #ffffff;
    border-color: rgba(0,0,0,0.08);
    color: rgba(0,0,0,0.86);
}
body[theme="light"] .mtv-card:hover {
    border-color: rgba(124,58,237,0.32);
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
body[theme="light"] .mtv-thumb { background: rgba(0,0,0,0.03); }
body[theme="light"] .mtv-thumb-fallback { color: rgba(0,0,0,0.4); }
body[theme="light"] .mtv-vendor { color: rgba(0,0,0,0.55); }
body[theme="light"] .mtv-amount { color: rgba(0,0,0,0.95); }
body[theme="light"] .mtv-amount-local { color: rgba(0,0,0,0.55); }
body[theme="light"] .mtv-empty {
    background: rgba(0,0,0,0.02);
    border: 1px solid rgba(0,0,0,0.06);
    color: rgba(0,0,0,0.55);
}
body[theme="light"] .mtv-pending-pill {
    background: rgba(248,113,113,0.10);
    color: #b91c1c;
    border: 1px solid rgba(248,113,113,0.30);
}

/* Drawer surface — mirrors .ld-feed-drawer */
body[theme="dark"] .mtv-drawer {
    background: #1b1b1b !important;
    color: rgba(255,255,255,0.88) !important;
    border-radius: 20px 20px 0 0 !important;
    max-height: 78vh;
}
body[theme="dark"] .mtv-drawer .el-drawer__body {
    background: #1b1b1b !important;
    padding: 0 !important;
    overflow-y: auto;
}
body[theme="light"] .mtv-drawer {
    background: #fafafa !important;
    color: rgba(0,0,0,0.85) !important;
    border-radius: 20px 20px 0 0 !important;
    max-height: 78vh;
}
body[theme="light"] .mtv-drawer .el-drawer__body {
    background: #fafafa !important;
    padding: 0 !important;
    overflow-y: auto;
}

body[theme="dark"] .mtv-detail-vendor { color: rgba(255,255,255,0.55); }
body[theme="light"] .mtv-detail-vendor { color: rgba(0,0,0,0.55); }

body[theme="dark"] .mtv-carousel-frame { background: rgba(255,255,255,0.04); }
body[theme="light"] .mtv-carousel-frame { background: rgba(0,0,0,0.03); }

body[theme="dark"] .mtv-detail-price-btla { color: rgba(255,255,255,0.95); }
body[theme="dark"] .mtv-detail-price-local { color: rgba(255,255,255,0.55); }
body[theme="light"] .mtv-detail-price-btla { color: rgba(0,0,0,0.95); }
body[theme="light"] .mtv-detail-price-local { color: rgba(0,0,0,0.55); }

body[theme="dark"] .mtv-detail-body-text { color: rgba(255,255,255,0.78); }
body[theme="light"] .mtv-detail-body-text { color: rgba(0,0,0,0.72); }

/* Action buttons — same flat tonal CTA as .ld-feed-detail-btn in /hm.
   Selectors qualified by `.mtv-drawer` to win against el-drawer's
   button reset and any global <button> styles loaded by Element UI;
   colour properties carry !important to match the project's existing
   drawer-paint convention (.ld-feed-drawer paint also uses !important
   for the same reason). */
body[theme="dark"] .mtv-drawer .mtv-detail-btn {
    border: 1px solid rgba(255,255,255,0.07) !important;
    background: rgba(255,255,255,0.05) !important;
    color: rgba(255,255,255,0.88) !important;
}
body[theme="dark"] .mtv-drawer .mtv-detail-btn:hover {
    border-color: rgba(167,139,250,0.30) !important;
    background: rgba(167,139,250,0.06) !important;
}
body[theme="dark"] .mtv-drawer .mtv-detail-btn.mtv-detail-btn--primary {
    border-color: rgba(167,139,250,0.30) !important;
    background: rgba(167,139,250,0.10) !important;
    color: #c4b5fd !important;
}
body[theme="dark"] .mtv-drawer .mtv-detail-btn.mtv-detail-btn--primary:hover {
    border-color: rgba(167,139,250,0.50) !important;
    background: rgba(167,139,250,0.16) !important;
    color: #ddd6fe !important;
}
body[theme="dark"] .mtv-drawer .mtv-detail-btn:disabled,
body[theme="dark"] .mtv-drawer .mtv-detail-btn.mtv-detail-btn--primary:disabled {
    border-color: rgba(255,255,255,0.06) !important;
    background: rgba(255,255,255,0.03) !important;
    color: rgba(255,255,255,0.35) !important;
}

body[theme="light"] .mtv-drawer .mtv-detail-btn {
    border: 1px solid rgba(0,0,0,0.06) !important;
    background: rgba(0,0,0,0.03) !important;
    color: rgba(0,0,0,0.78) !important;
}
body[theme="light"] .mtv-drawer .mtv-detail-btn:hover {
    border-color: rgba(124,58,237,0.30) !important;
    background: rgba(124,58,237,0.04) !important;
}
body[theme="light"] .mtv-drawer .mtv-detail-btn.mtv-detail-btn--primary {
    border-color: rgba(124,58,237,0.30) !important;
    background: rgba(124,58,237,0.06) !important;
    color: #6d28d9 !important;
}
body[theme="light"] .mtv-drawer .mtv-detail-btn.mtv-detail-btn--primary:hover {
    border-color: rgba(124,58,237,0.50) !important;
    background: rgba(124,58,237,0.10) !important;
    color: #5b21b6 !important;
}
body[theme="light"] .mtv-drawer .mtv-detail-btn:disabled,
body[theme="light"] .mtv-drawer .mtv-detail-btn.mtv-detail-btn--primary:disabled {
    border-color: rgba(0,0,0,0.05) !important;
    background: rgba(0,0,0,0.02) !important;
    color: rgba(0,0,0,0.35) !important;
}

/* ── Inline checkout drawer (purchase-tag-view.vue)
   The card itself is purple-tinted translucent (scoped CSS in the
   component, mirrors journal-tag-view / app-tag-view). Only the
   detail drawer needs theme-aware paint — same .ld-feed-drawer +
   .ld-feed-detail-btn conventions used across /hm. */

body[theme="dark"] .ptv-cta {
    border-color: rgba(255,255,255,0.07);
    background: rgba(255,255,255,0.05);
    color: rgba(255,255,255,0.88);
}
body[theme="dark"] .ptv-cta:hover {
    border-color: rgba(167,139,250,0.30);
    background: rgba(167,139,250,0.06);
}
body[theme="dark"] .ptv-cta--primary {
    border-color: rgba(167,139,250,0.30);
    background: rgba(167,139,250,0.10);
    color: #c4b5fd;
}
body[theme="dark"] .ptv-cta--primary:hover {
    border-color: rgba(167,139,250,0.50);
    background: rgba(167,139,250,0.16);
    color: #ddd6fe;
}

body[theme="light"] .ptv-cta {
    border-color: rgba(0,0,0,0.06);
    background: rgba(0,0,0,0.03);
    color: rgba(0,0,0,0.78);
}
body[theme="light"] .ptv-cta:hover {
    border-color: rgba(124,58,237,0.30);
    background: rgba(124,58,237,0.04);
}
body[theme="light"] .ptv-cta--primary {
    border-color: rgba(124,58,237,0.30);
    background: rgba(124,58,237,0.06);
    color: #6d28d9;
}
body[theme="light"] .ptv-cta--primary:hover {
    border-color: rgba(124,58,237,0.50);
    background: rgba(124,58,237,0.10);
    color: #5b21b6;
}

/* Inline checkout drawer — chrome mirrors .ld-feed-drawer (20px top
   radius, max-height ~78vh, themed surface). All button paint reuses
   the same .ptv-cta tonal pattern declared above. */
body[theme="dark"] .ptv-checkout-drawer {
    background: #1b1b1b !important;
    color: rgba(255,255,255,0.92) !important;
    border-radius: 20px 20px 0 0 !important;
    max-height: 80vh;
}
body[theme="dark"] .ptv-checkout-drawer .el-drawer__body {
    background: #1b1b1b !important;
    padding: 0 !important;
    overflow-y: auto;
}
body[theme="light"] .ptv-checkout-drawer {
    background: #fafafa !important;
    color: rgba(0,0,0,0.86) !important;
    border-radius: 20px 20px 0 0 !important;
    max-height: 80vh;
}
body[theme="light"] .ptv-checkout-drawer .el-drawer__body {
    background: #fafafa !important;
    padding: 0 !important;
    overflow-y: auto;
}

body[theme="dark"] .ptv-checkout-sub { color: rgba(255,255,255,0.55); }
body[theme="dark"] .ptv-checkout-amount-btla { color: rgba(255,255,255,0.95); }
body[theme="dark"] .ptv-checkout-amount-local { color: rgba(255,255,255,0.55); }
body[theme="light"] .ptv-checkout-sub { color: rgba(0,0,0,0.55); }
body[theme="light"] .ptv-checkout-amount-btla { color: rgba(0,0,0,0.95); }
body[theme="light"] .ptv-checkout-amount-local { color: rgba(0,0,0,0.55); }

body[theme="dark"] .ptv-checkout-summary {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
}
body[theme="dark"] .ptv-checkout-summary-row { color: rgba(255,255,255,0.85); }
body[theme="light"] .ptv-checkout-summary {
    background: rgba(0,0,0,0.03);
    border: 1px solid rgba(0,0,0,0.06);
}
body[theme="light"] .ptv-checkout-summary-row { color: rgba(0,0,0,0.78); }

body[theme="dark"] .ptv-checkout-balance {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.06);
}
body[theme="dark"] .ptv-checkout-balance-label { color: rgba(255,255,255,0.55); }
body[theme="dark"] .ptv-checkout-balance-value { color: #6ee7b7; }
body[theme="dark"] .ptv-checkout-balance.ptv-checkout-balance--low .ptv-checkout-balance-value { color: #f87171; }

body[theme="light"] .ptv-checkout-balance {
    background: rgba(0,0,0,0.02);
    border: 1px solid rgba(0,0,0,0.05);
}
body[theme="light"] .ptv-checkout-balance-label { color: rgba(0,0,0,0.55); }
body[theme="light"] .ptv-checkout-balance-value { color: #047857; }
body[theme="light"] .ptv-checkout-balance.ptv-checkout-balance--low .ptv-checkout-balance-value { color: #b91c1c; }

body[theme="dark"] .ptv-checkout-pin-label { color: rgba(255,255,255,0.55); }
body[theme="light"] .ptv-checkout-pin-label { color: rgba(0,0,0,0.55); }

body[theme="dark"] .ptv-otp-input {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.10);
    color: rgba(255,255,255,0.92);
}
body[theme="dark"] .ptv-otp-input:focus {
    border-color: rgba(167,139,250,0.55);
    background: rgba(255,255,255,0.06);
}
body[theme="light"] .ptv-otp-input {
    background: #ffffff;
    border-color: rgba(0,0,0,0.12);
    color: rgba(0,0,0,0.92);
}
body[theme="light"] .ptv-otp-input:focus {
    border-color: rgba(124,58,237,0.55);
    background: #ffffff;
}

body[theme="dark"] .ptv-checkout-insufficient {
    background: rgba(248,113,113,0.06);
    border: 1px solid rgba(248,113,113,0.25);
    color: #fca5a5;
}
body[theme="dark"] .ptv-checkout-insufficient i { color: #f87171; }
body[theme="dark"] .ptv-checkout-insufficient-sub a { color: #c4b5fd; }
body[theme="light"] .ptv-checkout-insufficient {
    background: rgba(220,38,38,0.05);
    border: 1px solid rgba(220,38,38,0.20);
    color: #991b1b;
}
body[theme="light"] .ptv-checkout-insufficient i { color: #b91c1c; }
body[theme="light"] .ptv-checkout-insufficient-sub a { color: #6d28d9; }

body[theme="dark"] .ptv-checkout-error {
    background: rgba(248,113,113,0.08);
    border: 1px solid rgba(248,113,113,0.30);
    color: #fca5a5;
}
body[theme="dark"] .ptv-checkout-error i { color: #f87171; }
body[theme="light"] .ptv-checkout-error {
    background: rgba(220,38,38,0.06);
    border: 1px solid rgba(220,38,38,0.22);
    color: #991b1b;
}
body[theme="light"] .ptv-checkout-error i { color: #b91c1c; }

/* Disabled state on the primary CTA inside the checkout drawer */
body[theme="dark"] .ptv-checkout-cta:disabled {
    border-color: rgba(255,255,255,0.06);
    background: rgba(255,255,255,0.03);
    color: rgba(255,255,255,0.40);
    cursor: not-allowed;
}
body[theme="light"] .ptv-checkout-cta:disabled {
    border-color: rgba(0,0,0,0.05);
    background: rgba(0,0,0,0.02);
    color: rgba(0,0,0,0.40);
    cursor: not-allowed;
}

/* ── Post-checkout success drawer (purchase-tag-view.vue)
   100vh btt sheet, animated checkmark + confetti, receipt panel.
   Uses the same `.ptv-cta` button family as the inline checkout
   (already painted above), so only the drawer surface, headline
   colours, receipt card, and dismiss link need theme rules here. */

body[theme="dark"] .ptv-success-drawer {
    background: #1b1b1b !important;
    color: rgba(255,255,255,0.92) !important;
    border-radius: 0 !important;
}
body[theme="dark"] .ptv-success-drawer .el-drawer__body {
    background: #1b1b1b !important;
    padding: 0 !important;
    overflow-y: auto;
}
body[theme="light"] .ptv-success-drawer {
    background: #fafafa !important;
    color: rgba(0,0,0,0.86) !important;
    border-radius: 0 !important;
}
body[theme="light"] .ptv-success-drawer .el-drawer__body {
    background: #fafafa !important;
    padding: 0 !important;
    overflow-y: auto;
}

/* Animated checkmark — green tint matches the project's existing
   success palette (.ld-pulse-streak-card brain green family). */
body[theme="dark"] .ptv-success-checkmark {
    background: rgba(52,211,153,0.10);
    box-shadow: 0 0 0 8px rgba(52,211,153,0.04);
}
body[theme="dark"] .ptv-success-circle { stroke: #34d399; }
body[theme="dark"] .ptv-success-tick   { stroke: #6ee7b7; }
body[theme="light"] .ptv-success-checkmark {
    background: rgba(5,150,105,0.10);
    box-shadow: 0 0 0 8px rgba(5,150,105,0.04);
}
body[theme="light"] .ptv-success-circle { stroke: #059669; }
body[theme="light"] .ptv-success-tick   { stroke: #047857; }

body[theme="dark"] .ptv-success-headline { color: rgba(255,255,255,0.95); }
body[theme="dark"] .ptv-success-sub      { color: rgba(255,255,255,0.6); }
body[theme="light"] .ptv-success-headline { color: rgba(0,0,0,0.92); }
body[theme="light"] .ptv-success-sub      { color: rgba(0,0,0,0.62); }

body[theme="dark"] .ptv-success-receipt {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
}
body[theme="dark"] .ptv-success-receipt-label { color: rgba(255,255,255,0.55); }
body[theme="dark"] .ptv-success-receipt-value { color: rgba(255,255,255,0.92); }
body[theme="dark"] .ptv-success-receipt-mono  { color: #c4b5fd; }
body[theme="light"] .ptv-success-receipt {
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.07);
}
body[theme="light"] .ptv-success-receipt-label { color: rgba(0,0,0,0.55); }
body[theme="light"] .ptv-success-receipt-value { color: rgba(0,0,0,0.88); }
body[theme="light"] .ptv-success-receipt-mono  { color: #6d28d9; }

body[theme="dark"] .ptv-success-dismiss {
    color: rgba(255,255,255,0.4);
}
body[theme="dark"] .ptv-success-dismiss:hover { color: rgba(255,255,255,0.7); }
body[theme="light"] .ptv-success-dismiss {
    color: rgba(0,0,0,0.45);
}
body[theme="light"] .ptv-success-dismiss:hover { color: rgba(0,0,0,0.75); }

/* ── App layout: sidebar + topbar (layouts/app.vue) ──
   Theme-paint extracted from app.vue's <style> block. Structural
   rules (positioning, dimensions, transitions, overflow) stay in
   app.vue; everything that paints colour lives here so dark/light
   stay in lockstep. */

/* Dark */
body[theme="dark"] .app-sidebar {
    background: rgba(0, 0, 0, 0.15);
    border-right-color: rgba(255, 255, 255, 0.06);
}
@media (max-width: 991.98px) {
    body[theme="dark"] .app-sidebar { background: #1b1b1b; }
}
body[theme="dark"] .app-sidebar-overlay { background: rgba(0, 0, 0, 0.5); }
body[theme="dark"] .sidebar-item { color: rgba(255, 255, 255, 0.6); }
body[theme="dark"] .sidebar-item:hover {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.95);
}
body[theme="dark"] .sidebar-item-active {
    background: rgba(167, 139, 250, 0.12);
    color: #a78bfa;
}
body[theme="dark"] .sidebar-divider { background: rgba(255, 255, 255, 0.06); }
body[theme="dark"] .app-topbar {
    border-bottom-color: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.9);
}

/* Light */
body[theme="light"] .app-sidebar {
    background: rgba(0, 0, 0, 0.02);
    border-right-color: rgba(0, 0, 0, 0.08);
}
@media (max-width: 991.98px) {
    body[theme="light"] .app-sidebar { background: #fafafa; }
    body[theme="light"] .app-sidebar-overlay { background: rgba(0, 0, 0, 0.3); }
}
body[theme="light"] .app-sidebar-overlay { background: rgba(0, 0, 0, 0.3); }
body[theme="light"] .sidebar-item { color: rgba(0, 0, 0, 0.6); }
body[theme="light"] .sidebar-item:hover {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.9);
}
body[theme="light"] .sidebar-item-active {
    background: rgba(124, 58, 237, 0.08);
    color: #7c3aed;
}
body[theme="light"] .sidebar-divider { background: rgba(0, 0, 0, 0.06); }
body[theme="light"] .app-topbar {
    border-bottom-color: rgba(0, 0, 0, 0.08);
    color: rgba(0, 0, 0, 0.85);
}

/* ──────────────────────────────────────────────────────────
   Orders overview surface — shared across the navbar cart
   drawer (cart-drawer.vue) and the /o page
   (interactive/pages/o/index.vue) via the
   <cart-orders-overview> component.

   Same translucent purple accent as ptv-* and ld-feed-* so
   the order cards, list rows, and detail drawer feel like
   first-party citizens of the /hm popup family.
   ────────────────────────────────────────────────────── */

/* ── Cart drawer shell (cc2-*) ────────────────── */
body[theme="dark"] .cc2-topbar {
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
body[theme="dark"] .cc2-icon-btn {
    color: rgba(255, 255, 255, 0.7);
}
body[theme="dark"] .cc2-icon-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 1);
}
body[theme="dark"] .cc2-title { color: rgba(255, 255, 255, 0.95); }

body[theme="light"] .cc2-topbar {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
body[theme="light"] .cc2-icon-btn {
    color: rgba(0, 0, 0, 0.6);
}
body[theme="light"] .cc2-icon-btn:hover {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.9);
}
body[theme="light"] .cc2-title { color: rgba(0, 0, 0, 0.9); }

/* ── Section headers ─────────────────────────── */
body[theme="dark"] .oo-section-header { color: rgba(255, 255, 255, 0.55); }
body[theme="light"] .oo-section-header { color: rgba(0, 0, 0, 0.55); }

/* ── Cards ───────────────────────────────────── */
body[theme="dark"] .oo-card {
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
}
body[theme="dark"] .oo-card:hover {
    border-color: rgba(167, 139, 250, 0.3);
    background: rgba(167, 139, 250, 0.05);
}
body[theme="dark"] .oo-card--active { border-left-color: #a78bfa; }
body[theme="dark"] .oo-card-title { color: rgba(255, 255, 255, 0.95); }
body[theme="dark"] .oo-card-subtitle { color: rgba(255, 255, 255, 0.5); }
body[theme="dark"] .oo-card-icon-fallback { color: rgba(255, 255, 255, 0.55); }
body[theme="dark"] .oo-amount { color: rgba(255, 255, 255, 0.95); }
body[theme="dark"] .oo-date { color: rgba(255, 255, 255, 0.4); }
body[theme="dark"] .oo-reorder-cta { color: #a78bfa; }

body[theme="light"] .oo-card {
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(0, 0, 0, 0.015);
}
body[theme="light"] .oo-card:hover {
    border-color: rgba(124, 58, 237, 0.3);
    background: rgba(124, 58, 237, 0.04);
}
body[theme="light"] .oo-card--active { border-left-color: #7c3aed; }
body[theme="light"] .oo-card-title { color: rgba(0, 0, 0, 0.9); }
body[theme="light"] .oo-card-subtitle { color: rgba(0, 0, 0, 0.5); }
body[theme="light"] .oo-card-icon-fallback { color: rgba(0, 0, 0, 0.5); }
body[theme="light"] .oo-amount { color: rgba(0, 0, 0, 0.9); }
body[theme="light"] .oo-date { color: rgba(0, 0, 0, 0.4); }
body[theme="light"] .oo-reorder-cta { color: #7c3aed; }

/* ── Status pills ────────────────────────────── */
body[theme="dark"] .oo-status--active {
    background: rgba(167, 139, 250, 0.15);
    color: #c4b5fd;
}
body[theme="light"] .oo-status--active {
    background: rgba(124, 58, 237, 0.1);
    color: #6d28d9;
}

/* ── List rows ───────────────────────────────── */
body[theme="dark"] .oo-list-item:hover { background: rgba(255, 255, 255, 0.04); }
body[theme="dark"] .oo-list-icon-fallback { color: rgba(255, 255, 255, 0.5); }
body[theme="dark"] .oo-list-title { color: rgba(255, 255, 255, 0.9); }
body[theme="dark"] .oo-list-meta { color: rgba(255, 255, 255, 0.5); }
body[theme="dark"] .oo-list-amount { color: rgba(255, 255, 255, 0.85); }
body[theme="dark"] .oo-list-chev { color: rgba(255, 255, 255, 0.4); }

body[theme="light"] .oo-list-item:hover { background: rgba(0, 0, 0, 0.04); }
body[theme="light"] .oo-list-icon-fallback { color: rgba(0, 0, 0, 0.5); }
body[theme="light"] .oo-list-title { color: rgba(0, 0, 0, 0.9); }
body[theme="light"] .oo-list-meta { color: rgba(0, 0, 0, 0.5); }
body[theme="light"] .oo-list-amount { color: rgba(0, 0, 0, 0.85); }
body[theme="light"] .oo-list-chev { color: rgba(0, 0, 0, 0.35); }

/* ── Empty state ─────────────────────────────── */
body[theme="dark"] .oo-empty-glyph { color: rgba(255, 255, 255, 0.6); }
body[theme="dark"] .oo-empty-title { color: rgba(255, 255, 255, 0.95); }
body[theme="dark"] .oo-empty-subtitle { color: rgba(255, 255, 255, 0.55); }
body[theme="dark"] .oo-starter-btn {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255, 255, 255, 0.8);
}
body[theme="dark"] .oo-starter-btn:hover {
    background: rgba(167, 139, 250, 0.1);
    border-color: rgba(167, 139, 250, 0.3);
    color: #a78bfa;
}
body[theme="dark"] .oo-loading i { color: rgba(255, 255, 255, 0.4); }

body[theme="light"] .oo-empty-glyph { color: rgba(0, 0, 0, 0.4); }
body[theme="light"] .oo-empty-title { color: rgba(0, 0, 0, 0.9); }
body[theme="light"] .oo-empty-subtitle { color: rgba(0, 0, 0, 0.55); }
body[theme="light"] .oo-starter-btn {
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(0, 0, 0, 0.02);
    color: rgba(0, 0, 0, 0.7);
}
body[theme="light"] .oo-starter-btn:hover {
    background: rgba(124, 58, 237, 0.08);
    border-color: rgba(124, 58, 237, 0.3);
    color: #7c3aed;
}
body[theme="light"] .oo-loading i { color: rgba(0, 0, 0, 0.35); }

/* ── Detail drawer (append-to-body, unscoped) ── */
body[theme="dark"] .oo-detail-drawer {
    background: #1b1b1b !important;
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
}
body[theme="dark"] .oo-detail-drawer .el-drawer__body {
    background: #1b1b1b !important;
    color: rgba(255, 255, 255, 0.92);
    padding: 0;
}
body[theme="dark"] .oo-detail-footer { border-top: 1px solid rgba(255, 255, 255, 0.08); }
body[theme="dark"] .oo-detail-btn {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255, 255, 255, 0.85);
}
body[theme="dark"] .oo-detail-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 1);
}
body[theme="dark"] .oo-detail-btn--primary {
    background: rgba(167, 139, 250, 0.18);
    border-color: rgba(167, 139, 250, 0.35);
    color: #c4b5fd;
}
body[theme="dark"] .oo-detail-btn--primary:hover {
    background: rgba(167, 139, 250, 0.28);
    color: #ddd6fe;
}

body[theme="light"] .oo-detail-drawer {
    background: #fafafa !important;
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
}
body[theme="light"] .oo-detail-drawer .el-drawer__body {
    background: #fafafa !important;
    color: rgba(0, 0, 0, 0.9);
    padding: 0;
}
body[theme="light"] .oo-detail-footer { border-top: 1px solid rgba(0, 0, 0, 0.08); }
body[theme="light"] .oo-detail-btn {
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(0, 0, 0, 0.02);
    color: rgba(0, 0, 0, 0.8);
}
body[theme="light"] .oo-detail-btn:hover {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.95);
}
body[theme="light"] .oo-detail-btn--primary {
    background: rgba(124, 58, 237, 0.1);
    border-color: rgba(124, 58, 237, 0.3);
    color: #6d28d9;
}
body[theme="light"] .oo-detail-btn--primary:hover {
    background: rgba(124, 58, 237, 0.16);
    color: #5b21b6;
}

/* ──────────────────────────────────────────────────────────
   Delivery-location picker — saved-value pills, "+" tile,
   and the "Save a delivery destination" btt drawer surfaced
   by the commerce agent after add_to_cart when
   cart.delivery_location is still empty.

   Components: delivery-location-tag-view (.dl-tag),
               add-delivery-location-tag-view (.dl-add-tag),
               add-delivery-location-drawer (.dl-add-drawer).

   Same translucent purple accent as ptv-* / ld-feed-* / oo-*
   so the picker reads as part of the same family.
   ────────────────────────────────────────────────────── */

body[theme="dark"] .dl-tag {
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
    color: rgba(255, 255, 255, 0.92);
}
body[theme="dark"] .dl-tag:hover {
    border-color: rgba(167, 139, 250, 0.35);
    background: rgba(167, 139, 250, 0.07);
}
body[theme="dark"] .dl-tag-icon-fallback { color: rgba(255, 255, 255, 0.55); }
body[theme="dark"] .dl-tag-label { color: rgba(255, 255, 255, 0.95); }
body[theme="dark"] .dl-tag-value { color: rgba(255, 255, 255, 0.55); }

body[theme="light"] .dl-tag {
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(0, 0, 0, 0.015);
    color: rgba(0, 0, 0, 0.9);
}
body[theme="light"] .dl-tag:hover {
    border-color: rgba(124, 58, 237, 0.35);
    background: rgba(124, 58, 237, 0.06);
}
body[theme="light"] .dl-tag-icon-fallback { color: rgba(0, 0, 0, 0.5); }
body[theme="light"] .dl-tag-label { color: rgba(0, 0, 0, 0.9); }
body[theme="light"] .dl-tag-value { color: rgba(0, 0, 0, 0.5); }

/* "+" tile — same outline as the saved pills, dashed border so it
   reads as an action-to-add rather than a saved value. */
body[theme="dark"] .dl-add-tag {
    border: 1px dashed rgba(167, 139, 250, 0.4);
    background: transparent;
    color: rgba(167, 139, 250, 0.95);
}
body[theme="dark"] .dl-add-tag:hover {
    background: rgba(167, 139, 250, 0.08);
    border-color: rgba(167, 139, 250, 0.6);
}
body[theme="dark"] .dl-add-glyph {
    background: rgba(167, 139, 250, 0.18);
    color: #c4b5fd;
}

body[theme="light"] .dl-add-tag {
    border: 1px dashed rgba(124, 58, 237, 0.45);
    background: transparent;
    color: #6d28d9;
}
body[theme="light"] .dl-add-tag:hover {
    background: rgba(124, 58, 237, 0.06);
    border-color: rgba(124, 58, 237, 0.7);
}
body[theme="light"] .dl-add-glyph {
    background: rgba(124, 58, 237, 0.1);
    color: #6d28d9;
}

/* Btt drawer — surface, form labels, error row, primary/secondary
   buttons. Same flat tonal CTA as ld-feed-detail-btn / ptv-cta. */
body[theme="dark"] .dl-add-drawer {
    background: #1b1b1b !important;
}
body[theme="dark"] .dl-add-drawer .el-drawer__body {
    background: #1b1b1b !important;
    color: rgba(255, 255, 255, 0.92);
}
body[theme="dark"] .dl-add-title { color: rgba(255, 255, 255, 0.95); }
body[theme="dark"] .dl-add-sub   { color: rgba(255, 255, 255, 0.55); }
body[theme="dark"] .dl-add-form .el-form-item__label { color: rgba(255, 255, 255, 0.55); }
body[theme="dark"] .dl-add-form .el-input__inner,
body[theme="dark"] .dl-add-form .el-textarea__inner {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.95);
}
body[theme="dark"] .dl-add-form .el-input__inner:focus,
body[theme="dark"] .dl-add-form .el-textarea__inner:focus {
    border-color: rgba(167, 139, 250, 0.5);
    background: rgba(255, 255, 255, 0.06);
}
body[theme="dark"] .dl-add-error {
    color: #f87171;
}
body[theme="dark"] .dl-add-error i { color: #f87171; }
body[theme="dark"] .dl-add-btn {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255, 255, 255, 0.85);
}
body[theme="dark"] .dl-add-btn:not([disabled]):hover {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 1);
}
body[theme="dark"] .dl-add-btn--primary {
    background: rgba(167, 139, 250, 0.18);
    border-color: rgba(167, 139, 250, 0.35);
    color: #c4b5fd;
}
body[theme="dark"] .dl-add-btn--primary:not([disabled]):hover {
    background: rgba(167, 139, 250, 0.28);
    color: #ddd6fe;
}
body[theme="dark"] .dl-add-spinner { color: #c4b5fd; }

body[theme="light"] .dl-add-drawer {
    background: #fafafa !important;
}
body[theme="light"] .dl-add-drawer .el-drawer__body {
    background: #fafafa !important;
    color: rgba(0, 0, 0, 0.9);
}
body[theme="light"] .dl-add-title { color: rgba(0, 0, 0, 0.9); }
body[theme="light"] .dl-add-sub   { color: rgba(0, 0, 0, 0.55); }
body[theme="light"] .dl-add-form .el-form-item__label { color: rgba(0, 0, 0, 0.55); }
body[theme="light"] .dl-add-form .el-input__inner,
body[theme="light"] .dl-add-form .el-textarea__inner {
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid rgba(0, 0, 0, 0.1);
    color: rgba(0, 0, 0, 0.9);
}
body[theme="light"] .dl-add-form .el-input__inner:focus,
body[theme="light"] .dl-add-form .el-textarea__inner:focus {
    border-color: rgba(124, 58, 237, 0.5);
    background: rgba(0, 0, 0, 0.03);
}
body[theme="light"] .dl-add-error {
    color: #b91c1c;
}
body[theme="light"] .dl-add-error i { color: #b91c1c; }
body[theme="light"] .dl-add-btn {
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(0, 0, 0, 0.02);
    color: rgba(0, 0, 0, 0.8);
}
body[theme="light"] .dl-add-btn:not([disabled]):hover {
    background: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.95);
}
body[theme="light"] .dl-add-btn--primary {
    background: rgba(124, 58, 237, 0.1);
    border-color: rgba(124, 58, 237, 0.3);
    color: #6d28d9;
}
body[theme="light"] .dl-add-btn--primary:not([disabled]):hover {
    background: rgba(124, 58, 237, 0.16);
    color: #5b21b6;
}
body[theme="light"] .dl-add-spinner { color: #6d28d9; }
