@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&family=Nunito:wght@400;600;700;800&display=swap');

/*
 * Customer Drive skin — same palette as sidebar-nav-reference.png
 */
:root {
    --vnex-vfm-blue: #4F6EF5;
    --vnex-vfm-blue-bright: #7B94F8;
    --vnex-vfm-blue-soft: rgba(79, 110, 245, 0.14);
    --vnex-vfm-sidebar: #f4f4f5;
    --vnex-vfm-sidebar-border: #e4e4e7;
    --vnex-vfm-main: #f4f4f5;
    --vnex-vfm-card: #ffffff;
    --vnex-vfm-card-border: #e4e4e7;
    --vnex-vfm-text: #1b2539;
    --vnex-vfm-muted: #6e7e83;
    --vnex-vfm-code-bg: #f4f4f5;
    --vnex-vfm-elevated: #ffffff;
    --vnex-vfm-shadow: 0 7px 25px 1px rgba(0, 0, 0, 0.08);
    /* Module icon accents — coordinated light palette */
    --vnex-nav-storage: #0369a1;
    --vnex-nav-storage-soft: rgba(3, 105, 161, 0.14);
    --vnex-nav-hr: #7c3aed;
    --vnex-nav-hr-soft: rgba(124, 58, 237, 0.14);
    --vnex-nav-projects: #4338ca;
    --vnex-nav-projects-soft: rgba(67, 56, 202, 0.14);
    --vnex-nav-crm: #0f766e;
    --vnex-nav-crm-soft: rgba(15, 118, 110, 0.14);
    --vnex-nav-home: #475569;
    --vnex-nav-home-soft: rgba(71, 85, 105, 0.12);
    --vnex-nav-business: #c2410c;
    --vnex-nav-business-soft: rgba(194, 65, 12, 0.14);
    --vnex-nav-sales: #1d4ed8;
    --vnex-nav-sales-soft: rgba(29, 78, 216, 0.14);
    --vnex-nav-export: #0e7490;
    --vnex-nav-export-soft: rgba(14, 116, 144, 0.14);
    --vnex-nav-finance: #15803d;
    --vnex-nav-finance-soft: rgba(21, 128, 61, 0.14);
    --vnex-nav-settings: #6d28d9;
    --vnex-nav-settings-soft: rgba(109, 40, 217, 0.14);
    --vnex-nav-account: #64748b;
    --vnex-nav-account-soft: rgba(100, 116, 139, 0.12);
    --vnex-nav-navigator: #4F6EF5;
    --vnex-nav-navigator-soft: rgba(79, 110, 245, 0.12);
    --vnex-nav-roadmap: #0D9488;
    --vnex-nav-roadmap-soft: rgba(13, 148, 136, 0.12);
}

.dark,
html.dark {
    /* Filament demo · Zinc midnight (keep Drive + HR in sync with vnex-ui.css) */
    --vnex-vfm-blue: #60a5fa;
    --vnex-vfm-blue-bright: #93c5fd;
    --vnex-vfm-blue-soft: rgba(96, 165, 250, 0.16);
    --vnex-vfm-sidebar: #09090b;
    --vnex-vfm-sidebar-border: #27272a;
    --vnex-vfm-main: #09090b;
    --vnex-vfm-card: #18181b;
    --vnex-vfm-card-border: #27272a;
    --vnex-vfm-text: #fafafa;
    --vnex-vfm-muted: #a1a1aa;
    --vnex-vfm-code-bg: #09090b;
    --vnex-vfm-elevated: #18181b;
    --vnex-vfm-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 40px rgba(0, 0, 0, 0.45);
    --vnex-nav-storage: #38bdf8;
    --vnex-nav-storage-soft: rgba(56, 189, 248, 0.18);
    --vnex-nav-hr: #c4b5fd;
    --vnex-nav-hr-soft: rgba(196, 181, 253, 0.18);
    --vnex-nav-projects: #a5b4fc;
    --vnex-nav-projects-soft: rgba(165, 180, 252, 0.18);
    --vnex-nav-crm: #2dd4bf;
    --vnex-nav-crm-soft: rgba(45, 212, 191, 0.18);
    --vnex-nav-home: #cbd5e1;
    --vnex-nav-home-soft: rgba(203, 213, 225, 0.14);
    --vnex-nav-business: #fb923c;
    --vnex-nav-business-soft: rgba(251, 146, 60, 0.18);
    --vnex-nav-sales: #93c5fd;
    --vnex-nav-sales-soft: rgba(147, 197, 253, 0.18);
    --vnex-nav-export: #67e8f9;
    --vnex-nav-export-soft: rgba(103, 232, 249, 0.18);
    --vnex-nav-finance: #86efac;
    --vnex-nav-finance-soft: rgba(134, 239, 172, 0.18);
    --vnex-nav-settings: #c4b5fd;
    --vnex-nav-settings-soft: rgba(196, 181, 253, 0.18);
    --vnex-nav-account: #cbd5e1;
    --vnex-nav-account-soft: rgba(203, 213, 225, 0.14);
    --vnex-nav-navigator: #93c5fd;
    --vnex-nav-navigator-soft: rgba(147, 197, 253, 0.16);
    --vnex-nav-roadmap: #5eead4;
    --vnex-nav-roadmap-soft: rgba(94, 234, 212, 0.16);
    --gray-950: #09090b;
    --color-gray-950: #09090b;
}

.fi-body,
.fi-sidebar,
.fi-main {
    font-family: 'IBM Plex Sans Arabic', 'Nunito', ui-sans-serif, system-ui, sans-serif !important;
}

.fi-logo img,
.fi-simple-header img {
    max-height: 2.25rem;
    width: auto;
    object-fit: contain;
}

.fi-sidebar {
    background: var(--vnex-vfm-sidebar) !important;
    border-inline-end: 1px solid var(--vnex-vfm-sidebar-border) !important;
}

.dark .fi-main,
html.dark .fi-main,
.dark .fi-main-ctn,
html.dark .fi-main-ctn,
.dark .fi-body,
html.dark .fi-body {
    background-color: var(--vnex-vfm-main, #09090b) !important;
}

.fi-sidebar-item-button,
.fi-sidebar-item-button .fi-sidebar-item-label,
.fi-sidebar-item-button .fi-icon {
    color: var(--vnex-vfm-text) !important;
}

.fi-sidebar-group-label {
    color: var(--vnex-vfm-muted) !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.7rem !important;
    font-weight: 800 !important;
}

.fi-sidebar-item-active .fi-sidebar-item-button {
    background: var(--vnex-vfm-blue-soft) !important;
}

.fi-sidebar-item-active .fi-sidebar-item-button,
.fi-sidebar-item-active .fi-sidebar-item-button .fi-sidebar-item-label,
.fi-sidebar-item-active .fi-sidebar-item-button .fi-icon {
    color: var(--vnex-vfm-blue-bright) !important;
}

.dark .fi-sidebar-item-active .fi-sidebar-item-button .fi-sidebar-item-label,
.dark .fi-sidebar-item-active .fi-sidebar-item-button .fi-icon,
html.dark .fi-sidebar-item-active .fi-sidebar-item-button .fi-sidebar-item-label,
html.dark .fi-sidebar-item-active .fi-sidebar-item-button .fi-icon {
    color: var(--vnex-vfm-blue-bright) !important;
}

.vfm-drive-shell { display: none; }

/* —— Drive file browser (list / grid) —— */
.vnex-fm {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    color: var(--vnex-vfm-text);
}

.fi-page:has(.vnex-fm) .fi-header-actions,
.fi-header-actions:has(+ * .vnex-fm) {
    display: none !important;
}

.vnex-fm__primary-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-inline-start: 0;
    padding: 0.35rem;
    border-radius: 0.85rem;
    background: rgba(15, 23, 42, 0.03);
    border: 1px solid rgba(226, 232, 240, 0.95);
    box-shadow: none;
    width: 100%;
}

.vnex-fm__command-bar {
    display: flex;
    width: 100%;
    margin: 0.35rem 0 0.55rem;
}

.dark .vnex-fm__primary-actions,
html.dark .vnex-fm__primary-actions {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(63, 63, 70, 0.85);
    box-shadow: none;
}

.vnex-fm__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 0;
    border-radius: 0.65rem;
    padding: 0.5rem 0.85rem;
    font-weight: 800;
    font-size: 0.875rem;
    cursor: pointer;
    background: #e8ebf0;
    color: #1b2539;
    box-shadow: inset 0 0 0 1px transparent;
    transition: background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}

.dark .vnex-fm__btn,
html.dark .vnex-fm__btn {
    background: var(--vnex-vfm-elevated);
    color: var(--vnex-vfm-text);
    box-shadow: inset 0 0 0 1px var(--vnex-vfm-card-border);
}

.vnex-fm__btn--primary {
    background: var(--vnex-vfm-blue);
    color: #fff;
    box-shadow: none;
}

.dark .vnex-fm__btn--primary,
html.dark .vnex-fm__btn--primary {
    background: var(--vnex-vfm-blue);
    color: #fff;
    box-shadow: none;
}

.vnex-fm__btn--primary:hover {
    filter: brightness(1.06);
}

/* Primary toolbar actions — HR-style soft accent pills */
.vnex-fm__btn--action {
    border-radius: 0.75rem;
    padding: 0.52rem 0.9rem;
    font-weight: 750;
    letter-spacing: 0.01em;
    box-shadow: inset 0 0 0 1px transparent;
    transition: background 0.14s ease, color 0.14s ease, box-shadow 0.14s ease, transform 0.14s ease, filter 0.14s ease;
}

.vnex-fm__btn--action:hover {
    filter: none;
    transform: translateY(-1px);
}

.vnex-fm__btn--action:active {
    transform: translateY(0);
}

.vnex-fm__btn--upload {
    background: var(--vnex-vfm-blue);
    color: #fff;
    box-shadow: none;
}

.vnex-fm__btn--upload:hover {
    filter: brightness(1.06);
    background: var(--vnex-vfm-blue);
    color: #fff;
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.28);
}

.vnex-fm__btn--folder {
    background: rgba(15, 23, 42, 0.04);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.12);
}

.vnex-fm__btn--folder:hover {
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.18);
}

.vnex-fm__btn--refresh {
    background: rgba(15, 23, 42, 0.04);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.12);
}

.vnex-fm__btn--refresh:hover {
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.18);
}

.vnex-fm__btn--restore {
    background: rgba(34, 197, 94, 0.14);
    color: #16a34a;
    box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.35);
}

.vnex-fm__btn--restore:hover {
    background: rgba(34, 197, 94, 0.22);
    color: #15803d;
    box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.5), 0 6px 18px rgba(34, 197, 94, 0.18);
}

.vnex-fm__btn--preview {
    background: rgba(15, 23, 42, 0.04);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.12);
}

.vnex-fm__btn--preview:hover {
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.18);
}

.vnex-fm__btn--preview.is-active,
.vnex-fm__preview-toggle.is-active.vnex-fm__btn--preview {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.35);
}

.dark .vnex-fm__btn--upload,
html.dark .vnex-fm__btn--upload {
    background: var(--vnex-vfm-blue);
    color: #fff;
    box-shadow: none;
}

.dark .vnex-fm__btn--upload:hover,
html.dark .vnex-fm__btn--upload:hover {
    filter: brightness(1.08);
    background: var(--vnex-vfm-blue);
    color: #fff;
    box-shadow: 0 8px 22px rgba(37, 99, 235, 0.35);
}

.dark .vnex-fm__btn--folder,
html.dark .vnex-fm__btn--folder,
.dark .vnex-fm__btn--refresh,
html.dark .vnex-fm__btn--refresh,
.dark .vnex-fm__btn--preview,
html.dark .vnex-fm__btn--preview {
    background: rgba(255, 255, 255, 0.04);
    color: #e4e4e7;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.dark .vnex-fm__btn--folder:hover,
html.dark .vnex-fm__btn--folder:hover,
.dark .vnex-fm__btn--refresh:hover,
html.dark .vnex-fm__btn--refresh:hover,
.dark .vnex-fm__btn--preview:hover,
html.dark .vnex-fm__btn--preview:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fafafa;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
}

.dark .vnex-fm__btn--preview.is-active,
html.dark .vnex-fm__btn--preview.is-active,
.dark .vnex-fm__preview-toggle.is-active.vnex-fm__btn--preview,
html.dark .vnex-fm__preview-toggle.is-active.vnex-fm__btn--preview {
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.45);
}

.dark .vnex-fm__btn--home,
html.dark .vnex-fm__btn--home {
    background: rgba(56, 189, 248, 0.14);
    color: #38bdf8;
    box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.32);
}

.dark .vnex-fm__btn--home:hover,
html.dark .vnex-fm__btn--home:hover {
    background: rgba(56, 189, 248, 0.22);
    color: #7dd3fc;
    box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.5), 0 8px 22px rgba(14, 165, 233, 0.2);
}

.dark .vnex-fm__btn--back,
html.dark .vnex-fm__btn--back {
    background: rgba(161, 161, 170, 0.12);
    color: #d4d4d8;
    box-shadow: inset 0 0 0 1px rgba(161, 161, 170, 0.28);
}

.dark .vnex-fm__btn--back:hover,
html.dark .vnex-fm__btn--back:hover {
    background: rgba(161, 161, 170, 0.2);
    color: #fafafa;
    box-shadow: inset 0 0 0 1px rgba(161, 161, 170, 0.45);
}

.dark .vnex-fm__btn--restore,
html.dark .vnex-fm__btn--restore {
    background: rgba(74, 222, 128, 0.14);
    color: #4ade80;
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.32);
}

.dark .vnex-fm__btn--restore:hover,
html.dark .vnex-fm__btn--restore:hover {
    background: rgba(74, 222, 128, 0.22);
    color: #86efac;
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.5), 0 8px 22px rgba(34, 197, 94, 0.2);
}

.vnex-fm__btn--danger {
    background: #b91c1c;
    color: #fff;
    box-shadow: none;
}

.vnex-fm__btn--danger:hover {
    filter: brightness(1.05);
}

.vnex-fm__preview-toggle {
    background: transparent;
    color: var(--vnex-vfm-muted);
    box-shadow: inset 0 0 0 1px var(--vnex-vfm-card-border);
}

.vnex-fm__preview-toggle:hover {
    color: var(--vnex-vfm-text);
    background: var(--vnex-vfm-blue-soft);
}

.vnex-fm__preview-toggle.is-active {
    background: var(--vnex-vfm-blue-soft);
    color: var(--vnex-vfm-blue);
    box-shadow: inset 0 0 0 1px rgba(124, 147, 195, 0.4);
}

.dark .vnex-fm__preview-toggle.is-active,
html.dark .vnex-fm__preview-toggle.is-active {
    background: var(--vnex-vfm-blue-soft);
    color: var(--vnex-vfm-blue-bright);
    box-shadow: inset 0 0 0 1px rgba(124, 147, 195, 0.4);
}

.vnex-fm__pdf-thumb {
    position: relative;
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: inherit;
    background: var(--vnex-vfm-code-bg);
}

.vnex-fm__pdf-thumb .vnex-fm__pdf-canvas {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    display: none;
}

.vnex-fm__pdf-thumb.is-ready .vnex-fm__pdf-canvas {
    display: block;
}

.vnex-fm__pdf-thumb.is-ready .vnex-fm__file-badge {
    display: none;
}

.vnex-fm__pdf-thumb .vnex-fm__file-badge {
    position: absolute;
    z-index: 1;
}

.vnex-fm__thumb--list .vnex-fm__pdf-thumb {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.45rem;
}

.vnex-fm__thumb--grid .vnex-fm__pdf-thumb {
    width: 100%;
    height: 100%;
    border-radius: 0.85rem;
}

.vnex-fm__pane-empty .vnex-fm__btn {
    margin-top: 0.85rem;
}

.vnex-fm__facts {
    display: grid;
    gap: 0.55rem;
    margin: 0;
}

.vnex-fm__facts > div {
    display: grid;
    gap: 0.15rem;
}

.vnex-fm__facts dt {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--vnex-vfm-muted);
    font-weight: 700;
}

.vnex-fm__facts dd {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    word-break: break-all;
}

.vnex-fm__list--picker {
    max-height: 220px;
    overflow: auto;
    margin: 0 0 0.75rem;
    border: 1px solid var(--vnex-vfm-card-border);
    border-radius: 0.55rem;
}

.vnex-fm__shared-banner {
    margin: 0 0 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--vnex-vfm-card-border);
    border-radius: 0.75rem;
    background: var(--vnex-vfm-blue-soft);
}

.vnex-fm__shared-banner a {
    color: var(--vnex-vfm-blue-bright);
    font-weight: 700;
    text-decoration: underline;
}

.vnex-fm__empty .vnex-fm__help {
    margin: 0.35rem 0 0.85rem;
}

.vnex-fm__checkwrap {
    display: flex;
    align-items: center;
    margin-right: 0.35rem;
}

.vnex-fm__checkwrap--card {
    position: absolute;
    top: 0.35rem;
    left: 0.35rem;
    z-index: 3;
    margin: 0;
    padding: 0.4rem;
    cursor: default;
}

.vnex-fm__card--folder {
    cursor: pointer;
}

.vnex-fm__checkbox {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: var(--vnex-vfm-blue);
    cursor: pointer;
    flex-shrink: 0;
}

.vnex-fm__row {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.7rem 0.65rem;
    border-radius: 0.85rem;
    cursor: pointer;
    user-select: none;
    border: 1px solid transparent;
    box-sizing: border-box;
}

.vnex-fm__row:hover {
    background: rgba(255, 255, 255, 0.04);
}

.vnex-fm__row.is-selected {
    background: rgba(79, 110, 245, 0.14);
    border-color: rgba(79, 110, 245, 0.28);
}

.vnex-fm__row.is-active {
    background: rgba(79, 110, 245, 0.22);
    border-color: rgba(79, 110, 245, 0.55);
    box-shadow: inset 3px 0 0 var(--vnex-vfm-blue);
}

.dark .vnex-fm__row:hover,
html.dark .vnex-fm__row:hover {
    background: rgba(255, 255, 255, 0.04);
}

.dark .vnex-fm__row.is-selected,
html.dark .vnex-fm__row.is-selected {
    background: rgba(79, 110, 245, 0.16);
    border-color: rgba(79, 110, 245, 0.32);
}

.dark .vnex-fm__row.is-active,
html.dark .vnex-fm__row.is-active {
    background: rgba(79, 110, 245, 0.24);
    border-color: rgba(79, 110, 245, 0.6);
}

.vnex-fm__selection-count {
    color: #93c5fd;
    font-weight: 600;
}

.vnex-fm__selection-count strong {
    color: #bfdbfe;
    font-weight: 800;
}

.vnex-fm__clear-sel {
    margin-inline-start: 0.5rem;
    padding: 0.1rem 0.45rem;
    border: 1px solid rgba(147, 197, 253, 0.35);
    border-radius: 0.35rem;
    background: transparent;
    color: #93c5fd;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.vnex-fm__clear-sel:hover {
    background: rgba(147, 197, 253, 0.12);
    border-color: rgba(147, 197, 253, 0.55);
}

/*
 * Drive action surfaces (right-click + share/rename + preview)
 * Canvas #09090B / sheet #18181B in dark; canvas #F4F4F5 / sheet #FFFFFF in light.
 */
.vnex-fm__ctx,
.vnex-share,
.vnex-fm__modal-card--action,
.vnex-acl,
.vnex-fm__menu,
.vnex-fm__pane {
    --vnex-action-bg: #ffffff;
    --vnex-action-fg: #18181b;
    --vnex-action-muted: #71717a;
    --vnex-action-border: #e4e4e7;
    --vnex-action-input: #f4f4f5;
    --vnex-action-secondary: #f4f4f5;
    --vnex-action-theme: #4F6EF5;
    --vnex-action-theme-soft: rgba(79, 110, 245, 0.12);
    --vnex-action-primary: rgba(79, 110, 245, 0.14);
    --vnex-action-primary-text: #4F6EF5;
    --vnex-action-danger: #dc2626;
    --vnex-action-shadow: 0 18px 42px rgba(24, 24, 27, 0.12);
}

.dark .vnex-acl,
.dark .vnex-fm__menu,
.dark .vnex-fm__pane,
.dark .vnex-fm__ctx,
.dark .vnex-share,
.dark .vnex-fm__modal-card,
.dark .vnex-fm__modal-card--action,
html.dark .vnex-acl,
html.dark .vnex-fm__menu,
html.dark .vnex-fm__pane,
html.dark .vnex-fm__ctx,
html.dark .vnex-share,
html.dark .vnex-fm__modal-card,
html.dark .vnex-fm__modal-card--action {
    --vnex-action-bg: #18181b;
    --vnex-action-fg: #fafafa;
    --vnex-action-muted: #a1a1aa;
    --vnex-action-border: #27272a;
    --vnex-action-input: #09090b;
    --vnex-action-secondary: #09090b;
    --vnex-action-theme: #60a5fa;
    --vnex-action-theme-soft: rgba(96, 165, 250, 0.16);
    --vnex-action-primary: rgba(96, 165, 250, 0.18);
    --vnex-action-primary-text: #93c5fd;
    --vnex-action-danger: #f87171;
    --vnex-action-shadow: 0 18px 42px rgba(0, 0, 0, 0.55);
}

.vnex-fm__ctx {
    z-index: 10050;
    min-width: 13.5rem;
    width: max-content;
    max-width: 17.5rem;
    padding: 0.35rem;
    border-radius: 0.75rem;
    background: var(--vnex-action-bg);
    color: var(--vnex-action-fg);
    border: 1px solid var(--vnex-action-border);
    box-shadow: var(--vnex-action-shadow, 0 18px 42px rgba(15, 23, 42, 0.14));
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-family: 'Nunito', ui-sans-serif, system-ui, sans-serif;
}
.vnex-fm__ctx.is-mobile-sheet {
    min-width: 0;
    max-width: none;
    width: auto;
    max-height: min(70vh, 34rem);
    overflow: auto;
    padding: 0.55rem 0.45rem 0.65rem;
    border-radius: 1.1rem;
    -webkit-overflow-scrolling: touch;
}
.vnex-fm__row,
.vnex-fm__card {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
    touch-action: manipulation;
}

.vnex-fm__ctx--item {
    min-width: 14.5rem;
}

.vnex-fm__ctx--blank {
    min-width: 0;
    width: max-content;
    max-width: 13.5rem;
    padding: 0.3rem;
}

.vnex-fm__ctx--blank .vnex-fm__ctx-item--row {
    width: auto;
    min-width: 10.75rem;
    padding: 0.5rem 0.7rem;
    gap: 0.55rem;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--vnex-action-fg);
}

.vnex-fm__ctx--blank .vnex-fm__ctx-item--row svg {
    width: 16px;
    height: 16px;
    color: var(--vnex-action-muted);
}

.vnex-fm__ctx--blank .vnex-fm__ctx-item--row:hover {
    background: var(--vnex-action-theme-soft);
    color: var(--vnex-action-theme);
}

.vnex-fm__ctx--blank .vnex-fm__ctx-item--row:hover svg {
    color: var(--vnex-action-theme);
}

.vnex-fm__ctx-sep {
    height: 1px;
    margin: 0.3rem 0.45rem;
    background: var(--vnex-action-border);
    border: 0;
}

.vnex-fm__ctx-item {
    appearance: none;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.58rem 0.75rem;
    border-radius: 0.55rem;
    color: inherit;
    font: inherit;
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
    width: 100%;
}

.vnex-fm__ctx-item--row {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}

.vnex-fm__ctx-item--row svg {
    flex-shrink: 0;
    opacity: 0.9;
    color: var(--vnex-action-muted);
}

.vnex-fm__ctx-item--row:hover svg {
    color: var(--vnex-action-theme);
}

.vnex-share__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.15rem 0 1rem;
}

.vnex-share__expiry-row {
    display: flex;
    align-items: stretch;
    gap: 0.55rem;
    margin: 0.15rem 0 1rem;
}

.vnex-share__expiry-amount {
    flex: 0 0 5.5rem;
    margin-bottom: 0 !important;
    padding-right: 0.7rem !important;
}

.vnex-share__expiry-unit {
    flex: 1 1 auto;
    min-width: 0;
}

.vnex-share__pill {
    appearance: none;
    border: 0;
    border-radius: 0.55rem;
    background: var(--vnex-action-secondary);
    color: var(--vnex-action-fg);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.45rem 0.7rem;
    cursor: pointer;
}

.vnex-share__pill.is-active,
.vnex-share__pill:hover {
    background: var(--vnex-action-theme-soft);
    color: var(--vnex-action-theme);
}

.vnex-share__notice {
    margin-top: 0.55rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.65rem;
    background: var(--vnex-action-secondary);
    color: var(--vnex-action-muted);
    font-size: 0.86rem;
    line-height: 1.4;
}

.vnex-share__notice strong {
    color: var(--vnex-action-theme);
    font-weight: 800;
}

.vnex-share__textarea {
    min-height: 4.5rem;
    resize: vertical;
    line-height: 1.4;
}

.vnex-fm__sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.vnex-fm__ctx-item:hover {
    background: var(--vnex-action-theme-soft);
    color: var(--vnex-action-theme);
}

.vnex-fm__ctx-item--danger {
    color: var(--vnex-action-danger);
}

.vnex-fm__ctx-item--danger:hover {
    background: rgba(220, 38, 38, 0.1);
    color: var(--vnex-action-danger);
}

.vnex-fm__btn:disabled {
    opacity: 0.55;
    cursor: default;
}

.vnex-fm__modal-card--sm {
    width: min(420px, 100%);
}

.vnex-fm__modal-card--mkdir {
    width: min(294px, 100%);
}

/* —— Share + right-click action modals (theme-aware) —— */
.vnex-fm__modal--share-overlay,
.vnex-fm__modal--action {
    background: rgba(24, 24, 27, 0.28);
}

.dark .vnex-fm__modal--share-overlay,
.dark .vnex-fm__modal--action,
html.dark .vnex-fm__modal--share-overlay,
html.dark .vnex-fm__modal--action {
    background: rgba(9, 9, 11, 0.72);
}

.vnex-share,
.vnex-fm__modal-card--action {
    --vnex-share-theme: var(--vnex-action-theme);
    --vnex-share-theme-soft: var(--vnex-action-theme-soft);
    --vnex-share-theme-text: var(--vnex-action-theme);
    --vnex-share-bg: var(--vnex-action-bg);
    --vnex-share-fg: var(--vnex-action-fg);
    --vnex-share-muted: var(--vnex-action-muted);
    --vnex-share-label: var(--vnex-action-fg);
    --vnex-share-input: var(--vnex-action-input);
    --vnex-share-secondary: var(--vnex-action-secondary);
    width: min(490px, 96vw);
    max-height: min(92vh, 760px);
    display: flex;
    flex-direction: column;
    background: var(--vnex-share-bg);
    color: var(--vnex-share-fg);
    border: 1px solid var(--vnex-action-border);
    border-radius: 0.85rem;
    box-shadow: var(--vnex-action-shadow);
    overflow: hidden;
    font-family: 'Nunito', ui-sans-serif, system-ui, sans-serif;
}

.vnex-fm__modal-card--action {
    width: min(420px, 96vw);
}

.vnex-share__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.5rem 1.5rem 1.5rem;
    flex: 0 0 auto;
}

.vnex-share__header-title {
    display: flex;
    align-items: center;
}

.vnex-share__theme-icon {
    margin-right: 0.75rem;
    color: var(--vnex-share-theme);
    display: inline-flex;
}

.vnex-share__header-title b {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
}

.vnex-share__close {
    appearance: none;
    border: 0;
    background: transparent;
    margin: -0.75rem;
    padding: 0.75rem;
    cursor: pointer;
    color: var(--vnex-share-muted);
    display: inline-flex;
    border-radius: 0.5rem;
}

.vnex-share__close:hover {
    color: var(--vnex-share-theme);
}

.vnex-share__body {
    padding: 0 1.5rem;
    overflow: auto;
    flex: 1 1 auto;
}

.vnex-share__item {
    display: flex;
    align-items: center;
    user-select: none;
    margin-bottom: 1.25rem;
}

.vnex-share__item-icon {
    width: 4rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.vnex-share__folder-fill {
    fill: var(--vnex-share-theme);
    stroke: none;
}

.vnex-share__file-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    height: 2.5rem;
    padding: 0 0.55rem;
    border-radius: 0.55rem;
    background: var(--vnex-share-input);
    color: var(--vnex-share-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.vnex-share__item-meta {
    padding-inline-start: 0.5rem;
    min-width: 0;
}

.vnex-share__field .vnex-share__input,
.vnex-share__toggle + .vnex-share__input {
    margin-bottom: 0.85rem;
}

.vnex-share__link-row {
    position: relative;
    margin-bottom: 0.85rem;
}

.vnex-share__link-row .vnex-share__input {
    margin-bottom: 0;
    padding-inline-end: 2.75rem;
}

.vnex-share__copy {
    position: absolute;
    inset-inline-end: 0.45rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--vnex-share-muted);
    cursor: pointer;
    padding: 0.35rem;
    display: inline-flex;
    border-radius: 0.4rem;
}

.vnex-share__copy:hover {
    color: var(--vnex-share-theme);
}

.vnex-share__item-meta b {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 0.125rem;
}

.vnex-share__item-meta small {
    display: block;
    font-size: 0.75rem;
    color: var(--vnex-share-muted);
    line-height: 1.25;
}

.vnex-share__field {
    margin-bottom: 1.75rem;
}

.vnex-share__field > label,
.vnex-share__toggle-copy > label {
    display: block;
    margin-bottom: 0.375rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--vnex-share-label);
}

.vnex-share__select-wrap {
    position: relative;
}

.vnex-share__perm-trigger {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: start;
    cursor: pointer;
}

.vnex-share__perm-trigger span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-share__perm-menu {
    display: flex;
    flex-direction: column;
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.4rem);
    inset-inline: 0;
    overflow: hidden;
    border: 1px solid var(--vnex-share-border, #e5e7eb);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}

.vnex-share__perm {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    margin: 0;
    padding: 0.85rem 1rem;
    border: 0;
    border-bottom: 1px solid var(--vnex-share-border, #eef0f3);
    background: transparent;
    color: #1e293b;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    text-align: start;
    cursor: pointer;
}

.vnex-share__perm:last-child {
    border-bottom: 0;
}

.vnex-share__perm svg {
    flex-shrink: 0;
    color: #334155;
}

.vnex-share__perm:hover,
.vnex-share__perm.is-selected {
    background: #f8fafc;
}

.vnex-share__select,
.vnex-share__input {
    width: 100%;
    box-sizing: border-box;
    border: 0;
    border-radius: 0.5rem;
    background: var(--vnex-share-input);
    color: var(--vnex-share-fg);
    padding: 0.8rem 2.4rem 0.8rem 0.9rem;
    font-size: 0.9rem;
    font-weight: 600;
    outline: none;
}

.vnex-share__select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 19px 19px;
}

.vnex-share__input {
    padding-right: 0.9rem;
    margin-bottom: 1.25rem;
}

.vnex-share__input-wrap {
    position: relative;
    margin-bottom: 1.25rem;
}

.vnex-share__input-wrap .vnex-share__input {
    width: 100%;
    margin-bottom: 0;
    padding-inline-end: 2.2rem;
}

.vnex-share__input-clear {
    position: absolute;
    inset-inline-end: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--vnex-share-muted);
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1;
    padding: 0.2rem;
}

.vnex-share__input-clear:hover {
    color: var(--vnex-share-theme);
}

.vnex-share--rename {
    width: min(490px, 96vw);
    max-height: min(92vh, 760px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.vnex-share--rename .vnex-share__body {
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.vnex-share--rename .vnex-share__footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    flex-shrink: 0;
}

.vnex-share--rename .vnex-share__btn {
    width: 100%;
}

.vnex-emoji {
    margin-top: 0.85rem;
}

.vnex-emoji__search-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
}

.vnex-emoji__preview {
    flex: 0 0 auto;
    font-size: 2rem;
    line-height: 1;
    width: 2.4rem;
    height: 2.4rem;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.vnex-emoji__search {
    flex: 1 1 auto;
}

.vnex-emoji__status {
    color: var(--vnex-action-muted);
    font-size: 0.85rem;
    padding: 0.75rem 0.15rem;
}

.vnex-emoji__box {
    max-height: 16.5rem;
    overflow-y: auto;
    border: 1px solid var(--vnex-action-border);
    border-radius: 0.65rem;
    background: var(--vnex-action-input);
    padding: 0.35rem 0.4rem 0.65rem;
}

.vnex-emoji__cats {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.15rem;
    margin: 0;
    padding: 0.25rem 0 0.35rem;
    list-style: none;
    background: var(--vnex-action-bg);
    backdrop-filter: blur(4px);
}

.vnex-emoji__cat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    color: inherit;
}

.vnex-emoji__cat:hover,
.vnex-emoji__cat.is-active {
    background: var(--vnex-action-theme-soft);
}

.vnex-emoji__group {
    padding-top: 0.35rem;
}

.vnex-emoji__group-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--vnex-action-muted);
    margin: 0.45rem 0.2rem 0.4rem;
}

.vnex-emoji__grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0.2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.vnex-emoji__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1;
    border: 0;
    border-radius: 0.45rem;
    background: transparent;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.vnex-emoji__btn:hover,
.vnex-emoji__btn.is-selected {
    background: var(--vnex-action-theme-soft);
}

img.vnex-twemoji,
img.emoji {
    height: 1em;
    width: 1em;
    margin: 0 0.05em 0 0.1em;
    vertical-align: -0.1em;
    display: inline-block;
    pointer-events: none;
}

.vnex-fm__folder-emoji {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.65rem;
    line-height: 1;
    width: 2.5rem;
    height: 2.1rem;
}

.vnex-fm__folder-emoji--grid {
    font-size: 2.75rem;
    width: 4.5rem;
    height: 3.6rem;
}

.vnex-fm__folder-emoji--lg {
    font-size: 2.4rem;
    width: 3.3rem;
    height: 2.6rem;
}

.vnex-share__toggle {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.75rem;
}

.vnex-share__toggle--last {
    margin-bottom: 0.5rem;
}

.vnex-share__toggle-copy {
    line-height: 1.25;
    min-width: 0;
}

.vnex-share__toggle-copy span {
    display: block;
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--vnex-share-muted);
}

.vnex-share__switch {
    position: relative;
    width: 44px;
    height: 24px;
    flex: 0 0 auto;
    cursor: pointer;
}

.vnex-share__switch input {
    position: absolute;
    opacity: 0;
    inset: 0;
    margin: 0;
    cursor: pointer;
}

.vnex-share__switch-track {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: #d4d4d8;
    transition: background .15s ease;
}

.vnex-share__switch-knob {
    position: absolute;
    top: 3px;
    inset-inline-start: 3px;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    transition: transform .15s ease;
}

.vnex-share__switch input:checked + .vnex-share__switch-track {
    background: #34d399;
}

.vnex-share__switch input:checked + .vnex-share__switch-track .vnex-share__switch-knob {
    transform: translateX(20px);
}

[dir="rtl"] .vnex-share__switch input:checked + .vnex-share__switch-track .vnex-share__switch-knob {
    transform: translateX(-20px);
}

.vnex-share__footer {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem 1.35rem;
    flex: 0 0 auto;
}

.vnex-share__btn {
    appearance: none;
    border: 0;
    border-radius: 0.85rem;
    width: 100%;
    min-height: 2.85rem;
    padding: 0.7rem 1rem;
    font-size: 0.92rem;
    font-weight: 800;
    cursor: pointer;
    transition: filter .15s ease;
}

.vnex-share__btn--secondary {
    background: #fde8e8;
    color: #dc2626;
}

.vnex-share__btn--theme {
    background: #d1fae5;
    color: #047857;
}

.vnex-share__btn:hover {
    filter: brightness(0.97);
}

/* Compact action dialogs (rename / move / detail / link) reuse share chrome */
.vnex-fm__modal-card--action .vnex-share__header,
.vnex-fm__modal-card--action .vnex-fm__modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.35rem 0.85rem;
    border: 0;
    color: var(--vnex-share-fg);
}

.vnex-fm__modal-card--action .vnex-fm__modal-head strong,
.vnex-fm__modal-card--action .vnex-share__header-title b {
    font-size: 1rem;
    font-weight: 800;
    color: var(--vnex-share-fg);
}

.vnex-fm__modal-card--action .vnex-fm__modal-body,
.vnex-fm__modal-card--action .vnex-share__body {
    padding: 0 1.35rem 0.5rem;
}

.vnex-fm__modal-card--action .vnex-fm__help,
.vnex-fm__modal-card--action .vnex-fm__field span,
.vnex-fm__modal-card--action .vnex-fm__note,
.vnex-fm__modal-card--action .vnex-fm__path-hint {
    color: var(--vnex-share-muted);
}

.vnex-fm__modal-card--action .vnex-fm__text-input,
.vnex-fm__modal-card--action .vnex-fm__file-input,
.vnex-fm__modal-card--action .vnex-fm__select,
.vnex-fm__modal-card--action .vnex-share__input,
.vnex-fm__modal-card--action .vnex-share__select {
    background: var(--vnex-share-input);
    border: 0;
    color: var(--vnex-share-fg);
    border-radius: 0.55rem;
}

.vnex-fm__modal-card--action .vnex-fm__modal-actions,
.vnex-fm__modal-card--action .vnex-share__footer {
    display: flex;
    gap: 0.85rem;
    padding: 1rem 1.35rem 1.35rem;
    margin: 0;
}

.vnex-fm__modal-card--action .vnex-fm__btn,
.vnex-fm__modal-card--action .vnex-share__btn--secondary {
    background: #fde8e8;
    color: #dc2626;
    border: 0;
    border-radius: 0.85rem;
    font-weight: 800;
}

.vnex-fm__modal-card--action .vnex-fm__btn--primary,
.vnex-fm__modal-card--action .vnex-share__btn--theme {
    background: #d1fae5;
    color: #047857;
    border: 0;
}

.vnex-fm__modal-card--action .vnex-fm__icon-btn,
.vnex-fm__modal-card--action .vnex-share__close {
    color: var(--vnex-share-muted);
    background: transparent;
    border: 0;
}

.vnex-fm__modal-card--action .vnex-fm__list--picker {
    max-height: 14rem;
    overflow: auto;
    border-radius: 0.65rem;
    background: var(--vnex-share-input);
}

.vnex-fm__modal-card--action .vnex-fm__row {
    border-color: transparent;
    color: var(--vnex-share-fg);
}

.vnex-fm__modal-card--action .vnex-fm__facts dt {
    color: var(--vnex-share-muted);
}

.vnex-fm__modal-card--action .vnex-fm__facts dd,
.vnex-fm__modal-card--action .vnex-fm__name,
.vnex-fm__modal-card--action code {
    color: var(--vnex-share-fg);
}

.vnex-fm__modal-card--action a {
    color: var(--vnex-action-primary-text, #6ee7b7);
}

.vnex-share__select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}

.vnex-fm__btn--ghost {
    background: transparent;
    border: 1px solid var(--vnex-vfm-card-border);
    color: var(--vnex-vfm-text);
}

.dark .vnex-fm__btn--ghost,
html.dark .vnex-fm__btn--ghost {
    background: var(--vnex-vfm-elevated);
    border-color: var(--vnex-vfm-card-border);
    color: var(--vnex-vfm-text);
}

.dark .vnex-fm__modal,
html.dark .vnex-fm__modal {
    background: rgba(0, 0, 0, 0.62);
}

.dark .vnex-fm__text-input,
.dark .vnex-fm__file-input,
.dark .vnex-fm__select,
html.dark .vnex-fm__text-input,
html.dark .vnex-fm__file-input,
html.dark .vnex-fm__select {
    background: var(--vnex-vfm-elevated);
    border-color: var(--vnex-vfm-card-border);
    color: var(--vnex-vfm-text);
}

.vnex-fm__btn--mint {
    background: var(--vnex-vfm-blue);
    color: #fff;
    border: 0;
    min-width: 9.5rem;
    font-weight: 700;
}

.vnex-fm__btn--mint:hover {
    filter: brightness(1.05);
}

.vnex-fm__modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1rem;
}

.vnex-fm__field {
    display: grid;
    gap: 0.35rem;
    font-weight: 700;
    font-size: 0.85rem;
}

.vnex-fm__text-input,
.vnex-fm__file-input {
    width: 100%;
    border: 1px solid var(--vnex-vfm-card-border);
    border-radius: 0.55rem;
    padding: 0.55rem 0.7rem;
    background: var(--vnex-vfm-code-bg);
    color: var(--vnex-vfm-text);
}

.vnex-fm__help {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    color: var(--vnex-vfm-muted);
    font-weight: 600;
}

.vnex-fm__field-error {
    color: #dc2626;
    font-size: 0.8rem;
    font-weight: 700;
    margin-top: 0.35rem;
}

.vnex-fm__share-url {
    display: block;
    margin-top: 0.35rem;
    word-break: break-all;
    font-size: 0.78rem;
    color: var(--vnex-vfm-muted);
}


.vnex-fm__chrome {
    background: transparent;
    padding: 0.15rem 0.25rem 0.5rem;
}

.vnex-fm__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.vnex-fm__path-nav {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.vnex-fm__btn--home {
    background: rgba(56, 189, 248, 0.16);
    color: #0284c7;
    box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.4);
}

.vnex-fm__btn--home:hover {
    background: rgba(56, 189, 248, 0.26);
    color: #0369a1;
    box-shadow: inset 0 0 0 1px rgba(56, 189, 248, 0.55), 0 6px 18px rgba(56, 189, 248, 0.16);
}

.vnex-fm__btn--back {
    background: rgba(148, 163, 184, 0.16);
    color: #334155;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.42);
}

.vnex-fm__btn--back:hover {
    background: rgba(148, 163, 184, 0.26);
    color: #1e293b;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.55), 0 6px 18px rgba(15, 23, 42, 0.08);
}

.vnex-fm__btn--home:disabled,
.vnex-fm__btn--back:disabled {
    opacity: 0.4;
    cursor: default;
    transform: none;
    filter: none;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.25);
}

[dir="rtl"] .vnex-fm__back-icon {
    transform: scaleX(-1);
}

.vnex-fm__back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--vnex-vfm-muted);
    cursor: pointer;
}

.vnex-fm__back:disabled {
    opacity: 0.35;
    cursor: default;
}

.vnex-fm__heading {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--vnex-vfm-text);
    min-width: 6rem;
}

.vnex-fm__toolbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.65rem;
    margin-inline-start: 0;
    width: 100%;
}

.vnex-fm__toolbar-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.15rem;
    flex-shrink: 0;
    padding: 0.15rem;
    border-radius: 0.85rem;
    background: rgba(15, 23, 42, 0.035);
}

.dark .vnex-fm__toolbar-actions,
html.dark .vnex-fm__toolbar-actions {
    background: rgba(255, 255, 255, 0.035);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.vnex-fm__toolbar-sep {
    width: 1px;
    height: 1.15rem;
    margin: 0 0.25rem;
    background: rgba(15, 23, 42, 0.12);
    flex-shrink: 0;
}

.dark .vnex-fm__toolbar-sep,
html.dark .vnex-fm__toolbar-sep {
    background: rgba(255, 255, 255, 0.12);
}

.vnex-fm__icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.2rem;
    height: 2.2rem;
    border: 0;
    border-radius: 0.6rem;
    background: transparent;
    color: #475569;
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease;
}

.dark .vnex-fm__icon-btn,
html.dark .vnex-fm__icon-btn {
    color: var(--vnex-vfm-muted);
}

.vnex-fm__icon-btn:hover {
    background: rgba(15, 23, 42, 0.08);
    color: var(--vnex-vfm-text);
}

.vnex-fm__icon-btn:disabled {
    opacity: 0.35;
    cursor: default;
}

.vnex-fm__icon-btn--danger:hover {
    color: #dc2626;
    background: rgba(220, 38, 38, 0.08);
}

.vnex-fm__icon-btn--share,
.vnex-fm__icon-btn--download,
.vnex-fm__icon-btn--move,
.vnex-fm__icon-btn--delete,
.vnex-fm__icon-btn--view,
.vnex-fm__icon-btn--group,
.vnex-fm__icon-btn--info {
    color: #475569;
    background: transparent;
}
.vnex-fm__icon-btn--share:hover:not(:disabled),
.vnex-fm__icon-btn--download:hover:not(:disabled),
.vnex-fm__icon-btn--move:hover:not(:disabled),
.vnex-fm__icon-btn--view:hover:not(:disabled),
.vnex-fm__icon-btn--group:hover:not(:disabled),
.vnex-fm__icon-btn--info:hover:not(:disabled) {
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
}
.vnex-fm__icon-btn--delete:hover:not(:disabled) {
    color: #dc2626;
    background: rgba(220, 38, 38, 0.1);
}
.vnex-fm__icon-btn--group.is-active {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.dark .vnex-fm__icon-btn--share,
html.dark .vnex-fm__icon-btn--share,
.dark .vnex-fm__icon-btn--download,
html.dark .vnex-fm__icon-btn--download,
.dark .vnex-fm__icon-btn--move,
html.dark .vnex-fm__icon-btn--move,
.dark .vnex-fm__icon-btn--view,
html.dark .vnex-fm__icon-btn--view,
.dark .vnex-fm__icon-btn--group,
html.dark .vnex-fm__icon-btn--group,
.dark .vnex-fm__icon-btn--info,
html.dark .vnex-fm__icon-btn--info {
    color: #a1a1aa;
    background: transparent;
}

.dark .vnex-fm__icon-btn--share:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--share:hover:not(:disabled),
.dark .vnex-fm__icon-btn--download:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--download:hover:not(:disabled),
.dark .vnex-fm__icon-btn--move:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--move:hover:not(:disabled),
.dark .vnex-fm__icon-btn--view:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--view:hover:not(:disabled),
.dark .vnex-fm__icon-btn--group:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--group:hover:not(:disabled),
.dark .vnex-fm__icon-btn--info:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--info:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.08);
    color: #fafafa;
    filter: none;
}

.dark .vnex-fm__icon-btn--delete,
html.dark .vnex-fm__icon-btn--delete {
    color: #a1a1aa;
    background: transparent;
}

.dark .vnex-fm__icon-btn--delete:hover:not(:disabled),
html.dark .vnex-fm__icon-btn--delete:hover:not(:disabled) {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.15);
    filter: none;
}

.dark .vnex-fm__icon-btn--group.is-active,
html.dark .vnex-fm__icon-btn--group.is-active {
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    box-shadow: none;
}

.vnex-fm__icon-btn--labeled {
    width: auto;
    min-width: 2.2rem;
    gap: 0.35rem;
    padding: 0 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

.vnex-fm__icon-btn--labeled svg {
    flex-shrink: 0;
}

@media (max-width: 900px) {
    .vnex-fm__icon-btn--labeled span {
        display: none;
    }
    .vnex-fm__icon-btn--labeled {
        padding: 0;
        width: 2.2rem;
    }
}

.vnex-fm__search {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 22rem;
    padding: 0.42rem 0.75rem;
    border: 0;
    border-radius: 999px;
    background: #f1f5f9;
    color: var(--vnex-vfm-muted);
    cursor: pointer;
    font: inherit;
    text-align: start;
}

.dark .vnex-fm__search,
html.dark .vnex-fm__search {
    background: var(--vnex-vfm-code-bg);
    box-shadow: inset 0 0 0 1px var(--vnex-vfm-card-border);
}

.vnex-fm__search-placeholder {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9rem;
    color: var(--vnex-vfm-muted);
}

.vnex-fm__search input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    outline: none;
    color: var(--vnex-vfm-text);
    font-size: 0.9rem;
}

.vnex-fm__search kbd {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.15rem 0.4rem;
    border-radius: 0.35rem;
    background: #fff;
    color: #64748b;
    border: 1px solid #e2e8f0;
}

.dark .vnex-fm__search kbd,
html.dark .vnex-fm__search kbd {
    background: #1f2937;
    border-color: #334155;
}

/* Command palette (Ctrl+K) */
.vnex-cmd {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: start center;
    padding: 12vh 1rem 2rem;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(3px);
}

.vnex-cmd__panel {
    width: min(640px, 96vw);
    max-height: min(70vh, 560px);
    display: flex;
    flex-direction: column;
    background: #fff;
    color: #0f172a;
    border-radius: 1rem;
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
    overflow: hidden;
    font-family: 'Nunito', ui-sans-serif, system-ui, sans-serif;
}

.vnex-cmd__input-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.95rem 1rem;
    border-bottom: 1px solid #e2e8f0;
    color: #64748b;
}

.vnex-cmd__input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    font-size: 1.05rem;
    font-weight: 600;
    color: #0f172a;
}

.vnex-cmd__esc {
    font-size: 0.7rem;
    font-weight: 800;
    padding: 0.2rem 0.45rem;
    border-radius: 0.4rem;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #64748b;
    cursor: pointer;
}

.vnex-cmd__section-label {
    padding: 0.75rem 1rem 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.vnex-cmd__results {
    flex: 1;
    overflow: auto;
    padding: 0.25rem 0.55rem 0.55rem;
}

.vnex-cmd__hit {
    width: 100%;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.7rem;
    border: 0;
    border-radius: 0.65rem;
    background: transparent;
    color: inherit;
    text-align: start;
    cursor: pointer;
    font: inherit;
}

.vnex-cmd__hit.is-active,
.vnex-cmd__hit:hover {
    background: #f1f5f9;
}

.vnex-cmd__hit-icon {
    color: #4f6ef5;
    display: inline-flex;
}

.vnex-cmd__hit-meta {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.vnex-cmd__hit-meta strong {
    font-size: 0.95rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-cmd__hit-meta small {
    font-size: 0.78rem;
    color: #94a3b8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-cmd__hit-kbd {
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0.18rem 0.4rem;
    border-radius: 0.35rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    color: #64748b;
}

.vnex-cmd__empty {
    padding: 1.5rem 1rem;
    text-align: center;
    color: #94a3b8;
    font-size: 0.9rem;
}

.vnex-cmd__footer {
    display: flex;
    gap: 1rem;
    padding: 0.65rem 1rem;
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
}

.vnex-cmd__footer kbd {
    display: inline-block;
    margin-right: 0.25rem;
    padding: 0.1rem 0.35rem;
    border-radius: 0.3rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    font-size: 0.68rem;
}

.dark .vnex-cmd__panel,
html.dark .vnex-cmd__panel {
    background: #18181b;
    color: #fafafa;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
    border: 1px solid #27272a;
}

.dark .vnex-cmd__input-row,
html.dark .vnex-cmd__input-row,
.dark .vnex-cmd__footer,
html.dark .vnex-cmd__footer {
    border-color: #27272a;
    background: transparent;
}

.dark .vnex-cmd__footer,
html.dark .vnex-cmd__footer {
    background: #09090b;
}

.dark .vnex-cmd__input,
html.dark .vnex-cmd__input {
    color: #f3f4f6;
}

.dark .vnex-cmd__hit.is-active,
html.dark .vnex-cmd__hit.is-active,
.dark .vnex-cmd__hit:hover,
html.dark .vnex-cmd__hit:hover {
    background: #1f2937;
}

.dark .vnex-cmd__esc,
html.dark .vnex-cmd__esc,
.dark .vnex-cmd__hit-kbd,
html.dark .vnex-cmd__hit-kbd,
.dark .vnex-cmd__footer kbd,
html.dark .vnex-cmd__footer kbd {
    background: #1f2937;
    border-color: #334155;
    color: #94a3b8;
}

.vnex-fm__view-wrap {
    position: relative;
}

.vnex-fm__pane {
    background: var(--vnex-action-bg, var(--vnex-card, var(--vnex-vfm-card)));
    border-color: var(--vnex-action-border, var(--vnex-border, var(--vnex-vfm-card-border)));
    color: var(--vnex-action-fg, var(--vnex-text, var(--vnex-vfm-text)));
}

.vnex-fm__menu {
    position: absolute;
    top: calc(100% + 0.35rem);
    inset-inline-end: 0;
    z-index: 40;
    min-width: 12.5rem;
    padding: 0.45rem;
    border-radius: 0.85rem;
    background: var(--vnex-action-bg, var(--vnex-vfm-card));
    color: var(--vnex-action-fg, var(--vnex-vfm-text));
    box-shadow: var(--vnex-vfm-shadow);
    border: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
}

.vnex-fm__menu-label {
    padding: 0.35rem 0.55rem 0.15rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted);
}

.vnex-fm__menu-item {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.65rem;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: var(--vnex-vfm-text);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    text-align: start;
}

.vnex-fm__menu-item:hover {
    background: rgba(79, 110, 245, 0.1);
}

.vnex-fm__check {
    color: var(--vnex-vfm-blue);
    font-weight: 800;
}

.vnex-fm__secondary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.55rem;
    color: var(--vnex-vfm-muted);
    font-size: 0.8rem;
}

.vnex-fm__text-action {
    border: 0;
    background: transparent;
    color: var(--vnex-vfm-blue-bright);
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.vnex-fm__quota {
    margin-inline-start: auto;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--vnex-vfm-muted, #64748b);
    white-space: nowrap;
}

.dark .vnex-fm__quota,
html.dark .vnex-fm__quota {
    color: var(--vnex-vfm-muted);
}

.vnex-fm__path-hint code {
    background: var(--vnex-vfm-code-bg);
    color: var(--vnex-vfm-muted);
    border-radius: 0.4rem;
    padding: 0.15rem 0.45rem;
    font-size: 0.75rem;
    box-shadow: inset 0 0 0 1px var(--vnex-vfm-card-border);
}

.vnex-fm__body {
    min-height: 18rem;
    padding: 0.35rem 0.15rem 1.5rem;
    position: relative;
}

/* Thin top bar only — never block clicks/right-click (Nextcloud-style). */
.vnex-fm__body.is-busy::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    z-index: 5;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        transparent 0%,
        color-mix(in srgb, var(--primary-500, #4f6ef5) 85%, white) 50%,
        transparent 100%
    );
    background-size: 200% 100%;
    animation: vnex-fm-nav-pulse 0.9s ease-in-out infinite;
}

@keyframes vnex-fm-nav-pulse {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.vnex-fm__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.vnex-fm__thumb--list {
    width: 2.75rem;
    height: 2.75rem;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 0.55rem;
}

.vnex-fm__thumb--list img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vnex-fm__meta {
    min-width: 0;
}

.vnex-fm__name {
    font-weight: 800;
    font-size: 0.98rem;
    color: var(--vnex-vfm-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-fm__class-badge {
    display: inline-block;
    margin-inline-start: 0.35rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    vertical-align: middle;
    white-space: nowrap;
}

.vnex-fm__class-badge--internal {
    background: color-mix(in srgb, #d97706 18%, transparent);
    color: #b45309;
}

.vnex-fm__class-badge--secret {
    background: color-mix(in srgb, #dc2626 18%, transparent);
    color: #b91c1c;
}

.vnex-fm__rename-form {
    width: 100%;
    min-width: 0;
}

.vnex-fm__rename-input {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0.2rem 0.35rem;
    border: 1px solid #3b82f6;
    border-radius: 0.35rem;
    background: #fff;
    color: var(--vnex-vfm-text, #0f172a);
    font-weight: 800;
    font-size: 0.95rem;
    font-family: inherit;
    line-height: 1.25;
    outline: none;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
}

.vnex-fm__rename-input::selection {
    background: #2563eb;
    color: #fff;
}

.vnex-fm__card .vnex-fm__rename-input {
    text-align: center;
}

.vnex-fm__sub {
    margin-top: 0.12rem;
    font-size: 0.8rem;
    color: var(--vnex-vfm-muted);
}

.vnex-fm__file-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.4rem;
    height: 2.1rem;
    padding: 0 0.35rem;
    border-radius: 0.4rem;
    background: #e8ebf0;
    color: #475569;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.dark .vnex-fm__file-badge,
html.dark .vnex-fm__file-badge {
    background: var(--vnex-vfm-elevated);
    color: var(--vnex-vfm-muted);
    box-shadow: inset 0 0 0 1px var(--vnex-vfm-card-border);
}

.vnex-fm__folder-icon,
.vnex-fm__folder-svg {
    color: var(--vnex-nav-storage);
    display: inline-flex;
}

/* Folder / file icon tones — lively category + type colors */
.vnex-fm__tone--hr { color: #ec4899 !important; }
.vnex-fm__tone--finance { color: #10b981 !important; }
.vnex-fm__tone--sales { color: #fb7185 !important; }
.vnex-fm__tone--ops { color: #38bdf8 !important; }
.vnex-fm__tone--archive { color: #94a3b8 !important; }
.vnex-fm__tone--marketing { color: #a855f7 !important; }
.vnex-fm__tone--projects { color: #3b82f6 !important; }
.vnex-fm__tone--legal { color: #64748b !important; }
.vnex-fm__tone--it { color: #06b6d4 !important; }
.vnex-fm__tone--client { color: #14b8a6 !important; }
.vnex-fm__tone--design { color: #e11d48 !important; }
.vnex-fm__tone--media { color: #8b5cf6 !important; }
.vnex-fm__tone--violet { color: #8b5cf6 !important; }
.vnex-fm__tone--sky { color: #0ea5e9 !important; }
.vnex-fm__tone--teal { color: #14b8a6 !important; }
.vnex-fm__tone--amber { color: #38bdf8 !important; }
.vnex-fm__tone--rose { color: #f43f5e !important; }
.vnex-fm__tone--indigo { color: #6366f1 !important; }
.vnex-fm__tone--lime { color: #84cc16 !important; }
.vnex-fm__tone--cyan { color: #22d3ee !important; }

.vnex-fm__tone-bg--hr,
.vnex-fm__tone-bg--finance,
.vnex-fm__tone-bg--sales,
.vnex-fm__tone-bg--marketing,
.vnex-fm__tone-bg--projects,
.vnex-fm__tone-bg--legal,
.vnex-fm__tone-bg--it,
.vnex-fm__tone-bg--ops,
.vnex-fm__tone-bg--archive,
.vnex-fm__tone-bg--client,
.vnex-fm__tone-bg--design,
.vnex-fm__tone-bg--media,
.vnex-fm__tone-bg--violet,
.vnex-fm__tone-bg--sky,
.vnex-fm__tone-bg--teal,
.vnex-fm__tone-bg--amber,
.vnex-fm__tone-bg--rose,
.vnex-fm__tone-bg--indigo,
.vnex-fm__tone-bg--lime,
.vnex-fm__tone-bg--cyan {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.55rem;
    padding: 0.15rem 0.2rem;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 28%, transparent);
}

.vnex-fm__tone-bg--hr { color: #ec4899; background: color-mix(in srgb, #ec4899 16%, transparent); }
.vnex-fm__tone-bg--finance { color: #10b981; background: color-mix(in srgb, #10b981 16%, transparent); }
.vnex-fm__tone-bg--sales { color: #fb7185; background: color-mix(in srgb, #fb7185 16%, transparent); }
.vnex-fm__tone-bg--marketing { color: #a855f7; background: color-mix(in srgb, #a855f7 16%, transparent); }
.vnex-fm__tone-bg--projects { color: #3b82f6; background: color-mix(in srgb, #3b82f6 16%, transparent); }
.vnex-fm__tone-bg--legal { color: #64748b; background: color-mix(in srgb, #64748b 16%, transparent); }
.vnex-fm__tone-bg--it { color: #06b6d4; background: color-mix(in srgb, #06b6d4 16%, transparent); }
.vnex-fm__tone-bg--ops { color: #38bdf8; background: color-mix(in srgb, #38bdf8 16%, transparent); }
.vnex-fm__tone-bg--archive { color: #94a3b8; background: color-mix(in srgb, #94a3b8 16%, transparent); }
.vnex-fm__tone-bg--client { color: #14b8a6; background: color-mix(in srgb, #14b8a6 16%, transparent); }
.vnex-fm__tone-bg--design { color: #e11d48; background: color-mix(in srgb, #e11d48 16%, transparent); }
.vnex-fm__tone-bg--media { color: #8b5cf6; background: color-mix(in srgb, #8b5cf6 16%, transparent); }
.vnex-fm__tone-bg--violet { color: #8b5cf6; background: color-mix(in srgb, #8b5cf6 16%, transparent); }
.vnex-fm__tone-bg--sky { color: #0ea5e9; background: color-mix(in srgb, #0ea5e9 16%, transparent); }
.vnex-fm__tone-bg--teal { color: #14b8a6; background: color-mix(in srgb, #14b8a6 16%, transparent); }
.vnex-fm__tone-bg--amber { color: #38bdf8; background: color-mix(in srgb, #38bdf8 16%, transparent); }
.vnex-fm__tone-bg--rose { color: #f43f5e; background: color-mix(in srgb, #f43f5e 16%, transparent); }
.vnex-fm__tone-bg--indigo { color: #6366f1; background: color-mix(in srgb, #6366f1 16%, transparent); }
.vnex-fm__tone-bg--lime { color: #84cc16; background: color-mix(in srgb, #84cc16 16%, transparent); }
.vnex-fm__tone-bg--cyan { color: #22d3ee; background: color-mix(in srgb, #22d3ee 16%, transparent); }

.vnex-fm__file-badge.vnex-fm__tone--excel {
    background: #dcfce7;
    color: #15803d;
}
.vnex-fm__file-badge.vnex-fm__tone--pdf {
    background: #fee2e2;
    color: #dc2626;
}
.vnex-fm__file-badge.vnex-fm__tone--word {
    background: #dbeafe;
    color: #1d4ed8;
}
.vnex-fm__file-badge.vnex-fm__tone--ppt {
    background: #ffe4e6;
    color: #e11d48;
}
.vnex-fm__file-badge.vnex-fm__tone--archive {
    background: #e2e8f0;
    color: #475569;
}
.vnex-fm__file-badge.vnex-fm__tone--image {
    background: #f3e8ff;
    color: #7e22ce;
}
.vnex-fm__file-badge.vnex-fm__tone--video {
    background: #fce7f3;
    color: #be185d;
}
.vnex-fm__file-badge.vnex-fm__tone--audio {
    background: #e0e7ff;
    color: #4338ca;
}
.vnex-fm__file-badge.vnex-fm__tone--code {
    background: #ecfeff;
    color: #0e7490;
}
.vnex-fm__file-badge.vnex-fm__tone--file {
    background: color-mix(in srgb, var(--vnex-nav-storage) 16%, transparent);
    color: var(--vnex-nav-storage);
}

.dark .vnex-fm__file-badge.vnex-fm__tone--excel,
html.dark .vnex-fm__file-badge.vnex-fm__tone--excel {
    background: rgba(34, 197, 94, 0.18);
    color: #4ade80;
    box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--pdf,
html.dark .vnex-fm__file-badge.vnex-fm__tone--pdf {
    background: rgba(220, 38, 38, 0.2);
    color: #f87171;
    box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--word,
html.dark .vnex-fm__file-badge.vnex-fm__tone--word {
    background: rgba(59, 130, 246, 0.18);
    color: #60a5fa;
    box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--ppt,
html.dark .vnex-fm__file-badge.vnex-fm__tone--ppt {
    background: rgba(225, 29, 72, 0.2);
    color: #fb7185;
    box-shadow: inset 0 0 0 1px rgba(251, 113, 133, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--archive,
html.dark .vnex-fm__file-badge.vnex-fm__tone--archive {
    background: rgba(148, 163, 184, 0.18);
    color: #cbd5e1;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.3);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--image,
html.dark .vnex-fm__file-badge.vnex-fm__tone--image {
    background: rgba(168, 85, 247, 0.18);
    color: #c084fc;
    box-shadow: inset 0 0 0 1px rgba(192, 132, 252, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--video,
html.dark .vnex-fm__file-badge.vnex-fm__tone--video {
    background: rgba(236, 72, 153, 0.18);
    color: #f472b6;
    box-shadow: inset 0 0 0 1px rgba(244, 114, 182, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--audio,
html.dark .vnex-fm__file-badge.vnex-fm__tone--audio {
    background: rgba(99, 102, 241, 0.18);
    color: #a5b4fc;
    box-shadow: inset 0 0 0 1px rgba(165, 180, 252, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--code,
html.dark .vnex-fm__file-badge.vnex-fm__tone--code {
    background: rgba(6, 182, 212, 0.18);
    color: #22d3ee;
    box-shadow: inset 0 0 0 1px rgba(34, 211, 238, 0.35);
}
.dark .vnex-fm__file-badge.vnex-fm__tone--file,
html.dark .vnex-fm__file-badge.vnex-fm__tone--file {
    background: color-mix(in srgb, var(--vnex-nav-storage) 18%, transparent);
    color: var(--vnex-nav-storage);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--vnex-nav-storage) 35%, transparent);
}

.vnex-fm__file-badge--lg {
    min-width: 4.5rem;
    height: 4.2rem;
    font-size: 0.85rem;
    border-radius: 0.75rem;
}

.vnex-fm__section {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.vnex-fm__section:last-child {
    margin-bottom: 0.35rem;
}

.vnex-fm__section-title {
    margin: 0;
    padding: 0 0.15rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted);
}

.vnex-fm__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: 1.25rem 1rem;
}

.vnex-fm__grid--folders {
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: 1rem;
}

.vnex-fm__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.85rem 0.5rem;
    border: 1px solid transparent;
    border-radius: 1rem;
    background: transparent;
    cursor: pointer;
    text-align: center;
    color: inherit;
    box-sizing: border-box;
}

.vnex-fm__card--folder {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0.85rem 0.65rem 0.75rem;
    gap: 0.45rem;
    background: rgba(255, 255, 255, 0.03);
    border-color: var(--vnex-vfm-card-border);
    border-radius: 1.1rem;
}

.dark .vnex-fm__card--folder,
html.dark .vnex-fm__card--folder {
    background: rgba(0, 0, 0, 0.18);
}

.vnex-fm__card--folder .vnex-fm__thumb--grid {
    width: auto;
    height: auto;
    justify-content: center;
    padding-inline-start: 0;
}

.vnex-fm__card--folder .vnex-fm__name {
    width: 100%;
    text-align: center;
    white-space: normal;
    overflow: hidden;
    text-overflow: unset;
    word-break: break-word;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.vnex-fm__card--folder .vnex-fm__sub {
    display: none;
}

.vnex-fm__card:hover {
    background: rgba(255, 255, 255, 0.04);
}

.vnex-fm__card.is-selected {
    background: rgba(79, 110, 245, 0.14);
    border-color: rgba(79, 110, 245, 0.28);
}

.vnex-fm__card.is-active {
    background: rgba(79, 110, 245, 0.22);
    border-color: rgba(79, 110, 245, 0.55);
}

.dark .vnex-fm__card:hover,
html.dark .vnex-fm__card:hover {
    background: rgba(255, 255, 255, 0.04);
}

.dark .vnex-fm__card.is-selected,
html.dark .vnex-fm__card.is-selected {
    background: rgba(79, 110, 245, 0.16);
    border-color: rgba(79, 110, 245, 0.32);
}

.dark .vnex-fm__card.is-active,
html.dark .vnex-fm__card.is-active {
    background: rgba(79, 110, 245, 0.24);
    border-color: rgba(79, 110, 245, 0.6);
}

.vnex-fm__thumb--grid {
    width: 7.5rem;
    height: 5.75rem;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 0.85rem;
}

.vnex-fm__thumb--grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0.85rem;
}

.vnex-fm__card .vnex-fm__name {
    max-width: 100%;
    font-size: 0.9rem;
}

.vnex-fm__empty {
    display: grid;
    place-items: center;
    gap: 0.65rem;
    min-height: 14rem;
    padding: 1.5rem 1rem;
    color: var(--vnex-vfm-muted);
    font-weight: 600;
    text-align: center;
    max-width: 28rem;
    margin-inline: auto;
}

.vnex-fm__empty-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--vnex-vfm-text);
}

.vnex-fm__empty .vnex-fm__help {
    margin: 0;
    font-weight: 500;
    line-height: 1.45;
    max-width: 26rem;
}

.vnex-fm__empty-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: center;
    margin-top: 0.35rem;
}

.vnex-fm__cta--ghost {
    background: transparent;
    color: var(--vnex-vfm-text);
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.45);
    text-decoration: none;
}

.vnex-fm__cta--ghost:hover {
    background: rgba(148, 163, 184, 0.12);
}

.vnex-fm__cta {
    border: 0;
    border-radius: 0.65rem;
    background: var(--vnex-vfm-blue);
    color: #fff;
    font-weight: 800;
    padding: 0.55rem 1.1rem;
    cursor: pointer;
}

.vnex-fm__error {
    border-radius: 0.85rem;
    border: 1px solid #fca5a5;
    background: #fef2f2;
    color: #b91c1c;
    padding: 0.85rem 1rem;
    font-size: 0.9rem;
}

.vnex-fm__error-title {
    font-weight: 800;
}

.vnex-fm__error-body {
    margin-top: 0.25rem;
    font-family: ui-monospace, monospace;
    font-size: 0.75rem;
}

.vnex-fm__freeze-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin: 0 0 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid #f59e0b;
    background: #fffbeb;
    color: #92400e;
    font-size: 0.9rem;
    font-weight: 600;
}

.dark .vnex-fm__freeze-banner,
html.dark .vnex-fm__freeze-banner {
    border-color: #b45309;
    background: rgba(146, 64, 14, 0.28);
    color: #fde68a;
}

.vnex-fm__freeze-banner-text {
    flex: 1 1 16rem;
    line-height: 1.45;
}

.vnex-fm__freeze-banner-cta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.85rem;
    border-radius: 0.55rem;
    background: #b45309;
    color: #fffbeb;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.82rem;
}

.vnex-fm__freeze-banner-cta:hover {
    background: #92400e;
    color: #fff;
}

.vnex-fm__modal {
    position: fixed;
    inset: 0;
    z-index: 10100;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.45);
}

.vnex-fm__modal-card {
    width: min(960px, 100%);
    max-height: min(90vh, 900px);
    overflow: auto;
    border-radius: 1rem;
    background: var(--vnex-vfm-card);
    box-shadow: var(--vnex-vfm-shadow);
}

.vnex-fm__modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--vnex-vfm-card-border);
}

.vnex-fm__modal-body {
    padding: 1rem;
}

[x-cloak] {
    display: none !important;
}

@media (max-width: 720px) {
    .vnex-fm__toolbar {
        width: 100%;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .vnex-fm__search {
        order: 0;
        width: 100%;
        min-width: 100%;
        max-width: none;
    }

    .vnex-fm__toolbar-actions {
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
    }
}

/* Path ACL dialog — follows Drive action-modal theme tokens */
.vnex-acl {
    --vnex-acl-bg: var(--vnex-action-bg, var(--vnex-vfm-card));
    --vnex-acl-fg: var(--vnex-action-fg, var(--vnex-vfm-text));
    --vnex-acl-muted: var(--vnex-action-muted, var(--vnex-vfm-muted));
    --vnex-acl-border: var(--vnex-action-border, var(--vnex-vfm-card-border));
    --vnex-acl-input: var(--vnex-action-input, var(--vnex-vfm-code-bg));
    --vnex-acl-panel: var(--vnex-action-secondary, var(--vnex-vfm-sidebar));
    --vnex-acl-theme: var(--vnex-action-theme, var(--vnex-vfm-blue));
    --vnex-acl-theme-soft: var(--vnex-action-theme-soft, var(--vnex-vfm-blue-soft));
    --vnex-acl-primary: var(--vnex-action-primary, var(--vnex-vfm-blue-soft));
    --vnex-acl-primary-text: var(--vnex-action-primary-text, var(--vnex-vfm-blue));
    width: min(560px, 94vw);
    max-width: 560px;
    border-radius: 14px;
    background: var(--vnex-acl-bg);
    border: 1px solid var(--vnex-acl-border);
    box-shadow: var(--vnex-action-shadow, var(--vnex-vfm-shadow));
    color: var(--vnex-acl-fg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.vnex-acl__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.15rem 0.95rem;
    border-bottom: 1px solid var(--vnex-acl-border);
}

.vnex-acl__head-main {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.vnex-acl__badge {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: var(--vnex-acl-theme-soft);
    color: var(--vnex-acl-theme);
    flex-shrink: 0;
}

.vnex-acl__titles {
    min-width: 0;
}

.vnex-acl__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--vnex-acl-fg);
}

.vnex-acl__object {
    margin: 0.15rem 0 0;
    font-size: 0.84rem;
    color: var(--vnex-acl-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vnex-acl__x {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--vnex-acl-muted);
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex-shrink: 0;
}

.vnex-acl__x:hover {
    background: color-mix(in srgb, var(--vnex-acl-muted) 16%, transparent);
    color: var(--vnex-acl-fg);
}

.vnex-acl__body {
    padding: 1rem 1.15rem 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.vnex-acl__path {
    display: flex;
    align-items: baseline;
    gap: 0.65rem;
    min-width: 0;
}

.vnex-acl__path-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--vnex-acl-muted);
    flex-shrink: 0;
}

.vnex-acl__path-value {
    font-size: 0.82rem;
    color: var(--vnex-acl-fg);
    background: var(--vnex-acl-input);
    border: 1px solid var(--vnex-acl-border);
    border-radius: 6px;
    padding: 0.22rem 0.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.vnex-acl__honesty {
    margin: 0;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, #f59e0b 35%, var(--vnex-acl-border));
    background: color-mix(in srgb, #f59e0b 10%, var(--vnex-acl-panel));
    color: var(--vnex-acl-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.vnex-acl__panel {
    border: 1px solid var(--vnex-acl-border);
    border-radius: 10px;
    background: var(--vnex-acl-panel);
    overflow: hidden;
}

.vnex-acl__panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.8rem;
    border-bottom: 1px solid var(--vnex-acl-border);
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--vnex-acl-fg);
}

.vnex-acl__panel-meta {
    color: var(--vnex-acl-muted);
    font-weight: 600;
}

.vnex-acl__table-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 9.5rem 2.25rem;
    gap: 0.5rem;
    padding: 0.4rem 0.8rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--vnex-acl-muted);
    border-bottom: 1px solid var(--vnex-acl-border);
}

.vnex-acl__entries {
    list-style: none;
    margin: 0;
    padding: 0.25rem;
    max-height: 240px;
    overflow: auto;
}

.vnex-acl__entry {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 9.5rem 2.25rem;
    gap: 0.5rem;
    align-items: center;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
}

.vnex-acl__entry:hover {
    background: color-mix(in srgb, var(--vnex-acl-muted) 12%, transparent);
}

.vnex-acl__identity {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.vnex-acl__avatar {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--vnex-acl-theme-soft);
    color: var(--vnex-acl-theme);
}

.vnex-acl__avatar--deny {
    background: color-mix(in srgb, var(--vnex-action-danger, #ef4444) 16%, transparent);
    color: var(--vnex-action-danger, #ef4444);
}

.vnex-acl__who {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vnex-acl__name {
    font-size: 0.86rem;
    font-weight: 650;
    color: var(--vnex-acl-fg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vnex-acl__email {
    font-size: 0.72rem;
    color: var(--vnex-acl-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vnex-acl__access {
    min-width: 0;
}

.vnex-acl__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.vnex-acl__select {
    width: 100%;
    box-sizing: border-box;
    appearance: none;
    border: 1px solid var(--vnex-acl-border);
    border-radius: 8px;
    background-color: var(--vnex-acl-input);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    background-size: 14px 14px;
    color: var(--vnex-acl-fg);
    padding: 0.55rem 2rem 0.55rem 0.7rem;
    font-size: 0.84rem;
    font-weight: 600;
    outline: none;
    min-width: 0;
}

.vnex-acl__select:focus {
    border-color: color-mix(in srgb, var(--vnex-acl-theme) 55%, transparent);
    box-shadow: 0 0 0 3px var(--vnex-acl-theme-soft);
}

.vnex-acl__select--compact {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    font-size: 0.78rem;
}

.vnex-acl__select--level {
    max-width: 9.5rem;
}

.vnex-acl__level-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.85rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: color-mix(in srgb, var(--vnex-acl-muted) 14%, transparent);
    color: var(--vnex-acl-fg);
}

.vnex-acl__level-badge--full {
    background: var(--vnex-acl-theme-soft);
    color: var(--vnex-acl-theme);
}

.vnex-acl__level-badge--deny {
    background: color-mix(in srgb, var(--vnex-action-danger, #ef4444) 14%, transparent);
    color: var(--vnex-action-danger, #ef4444);
}

.vnex-acl__remove {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--vnex-acl-muted);
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    display: grid;
    place-items: center;
    cursor: pointer;
    justify-self: end;
}

.vnex-acl__remove:hover {
    color: var(--vnex-action-danger, #ef4444);
    background: color-mix(in srgb, var(--vnex-action-danger, #ef4444) 12%, transparent);
}

.vnex-acl__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    text-align: center;
    padding: 1.6rem 1rem;
}

.vnex-acl__empty-title {
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--vnex-acl-fg);
}

.vnex-acl__empty-copy {
    font-size: 0.78rem;
    color: var(--vnex-acl-muted);
    max-width: 22rem;
    line-height: 1.4;
}

.vnex-acl__composer {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding-bottom: 0.35rem;
}

.vnex-acl__composer-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--vnex-acl-muted);
}

.vnex-acl__composer-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 9.5rem auto;
    gap: 0.5rem;
    align-items: center;
}

.vnex-acl__btn {
    appearance: none;
    border: 1px solid var(--vnex-acl-border);
    background: var(--vnex-acl-panel);
    color: var(--vnex-acl-fg);
    border-radius: 8px;
    min-height: 2.35rem;
    padding: 0.45rem 1rem;
    font-size: 0.84rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.vnex-acl__btn:hover {
    background: color-mix(in srgb, var(--vnex-acl-muted) 14%, var(--vnex-acl-panel));
}

.vnex-acl__btn--primary {
    border-color: color-mix(in srgb, var(--vnex-acl-theme) 35%, transparent);
    background: var(--vnex-acl-primary);
    color: var(--vnex-acl-primary-text);
}

.vnex-acl__btn--primary:hover {
    filter: brightness(1.08);
}

/* —— File versions modal —— */
.vnex-versions {
    --vnex-ver-bg: var(--vnex-action-bg, var(--vnex-vfm-card));
    --vnex-ver-fg: var(--vnex-action-fg, var(--vnex-vfm-text));
    --vnex-ver-muted: var(--vnex-action-muted, var(--vnex-vfm-muted));
    --vnex-ver-border: var(--vnex-action-border, var(--vnex-vfm-card-border));
    --vnex-ver-panel: var(--vnex-action-secondary, var(--vnex-vfm-sidebar));
    --vnex-ver-theme: var(--vnex-action-theme, var(--vnex-vfm-blue));
    --vnex-ver-theme-soft: var(--vnex-action-theme-soft, var(--vnex-vfm-blue-soft));
    width: min(640px, 94vw);
    max-width: 640px;
    border-radius: 16px;
    background: var(--vnex-ver-bg);
    border: 1px solid var(--vnex-ver-border);
    box-shadow: var(--vnex-action-shadow, var(--vnex-vfm-shadow));
    color: var(--vnex-ver-fg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.vnex-versions__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.25rem 1rem;
    border-bottom: 1px solid var(--vnex-ver-border);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--vnex-ver-theme-soft) 35%, var(--vnex-ver-bg)) 0%,
        var(--vnex-ver-bg) 100%
    );
}

.vnex-versions__head-main {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}

.vnex-versions__badge {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background: var(--vnex-ver-theme-soft);
    color: var(--vnex-ver-theme);
}

.vnex-versions__titles {
    min-width: 0;
}

.vnex-versions__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    color: var(--vnex-ver-fg);
}

.vnex-versions__file {
    margin: 0.2rem 0 0;
    font-size: 0.86rem;
    color: var(--vnex-ver-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 28rem;
}

.vnex-versions__meta-line {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    color: var(--vnex-ver-theme);
    font-weight: 500;
}

.vnex-versions__x {
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--vnex-ver-muted);
    cursor: pointer;
    flex-shrink: 0;
    font-size: 1rem;
    line-height: 1;
}

.vnex-versions__x:hover {
    background: color-mix(in srgb, var(--vnex-ver-muted) 14%, transparent);
    color: var(--vnex-ver-fg);
}

.vnex-versions__body {
    padding: 1rem 1.25rem 1.15rem;
    max-height: min(420px, 58vh);
    overflow: auto;
}

.vnex-versions__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.vnex-versions__item {
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: stretch;
}

.vnex-versions__rail {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 0.55rem;
}

.vnex-versions__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: var(--vnex-ver-theme);
    box-shadow: 0 0 0 3px var(--vnex-ver-theme-soft);
    flex-shrink: 0;
}

.vnex-versions__line {
    flex: 1;
    width: 2px;
    margin-top: 0.35rem;
    background: color-mix(in srgb, var(--vnex-ver-muted) 28%, transparent);
    border-radius: 999px;
    min-height: 1.5rem;
}

.vnex-versions__card {
    border: 1px solid var(--vnex-ver-border);
    border-radius: 12px;
    background: var(--vnex-ver-panel);
    padding: 0.75rem 0.85rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.vnex-versions__card:hover {
    border-color: color-mix(in srgb, var(--vnex-ver-theme) 35%, var(--vnex-ver-border));
    box-shadow: 0 2px 10px color-mix(in srgb, var(--vnex-ver-theme) 8%, transparent);
}

.vnex-versions__card-main {
    min-width: 0;
    flex: 1 1 10rem;
}

.vnex-versions__when {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.65rem;
}

.vnex-versions__date {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--vnex-ver-fg);
    letter-spacing: -0.01em;
}

.vnex-versions__ago {
    font-size: 0.78rem;
    color: var(--vnex-ver-muted);
}

.vnex-versions__size {
    display: inline-flex;
    margin-top: 0.3rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    background: color-mix(in srgb, var(--vnex-ver-muted) 12%, transparent);
    color: var(--vnex-ver-muted);
}

.vnex-versions__actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.vnex-versions__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2rem;
    padding: 0.35rem 0.65rem;
    border-radius: 8px;
    border: 1px solid var(--vnex-ver-border);
    background: var(--vnex-ver-bg);
    color: var(--vnex-ver-fg);
    font-size: 0.78rem;
    font-weight: 550;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.vnex-versions__btn:hover {
    background: color-mix(in srgb, var(--vnex-ver-muted) 10%, var(--vnex-ver-bg));
    border-color: color-mix(in srgb, var(--vnex-ver-muted) 35%, var(--vnex-ver-border));
}

.vnex-versions__btn--primary {
    border-color: color-mix(in srgb, var(--vnex-ver-theme) 40%, transparent);
    background: var(--vnex-ver-theme-soft);
    color: var(--vnex-ver-theme);
}

.vnex-versions__btn--primary:hover {
    filter: brightness(1.06);
}

.vnex-versions__btn--ghost {
    min-width: 5.5rem;
}

.vnex-versions__foot {
    display: flex;
    justify-content: flex-end;
    padding: 0.85rem 1.25rem 1.1rem;
    border-top: 1px solid var(--vnex-ver-border);
}

.vnex-versions__loading {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.5rem 0;
}

.vnex-versions__body--relative {
    position: relative;
}

.vnex-versions__restore-busy {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 0.55rem;
    padding: 1.25rem 1.5rem;
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--vnex-ver-surface, #0f172a) 92%, transparent);
    backdrop-filter: blur(2px);
}

.vnex-versions__progress {
    height: 0.45rem;
    border-radius: 999px;
    overflow: hidden;
    background: color-mix(in srgb, var(--vnex-ver-muted) 16%, transparent);
}

.vnex-versions__progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(
        90deg,
        color-mix(in srgb, var(--vnex-blue) 85%, white),
        color-mix(in srgb, var(--vnex-blue) 65%, #38bdf8)
    );
    transition: width 0.18s ease;
}

.vnex-versions__loading-pct {
    margin-inline-start: 0.35rem;
    font-variant-numeric: tabular-nums;
    color: var(--vnex-ver-text);
}

.vnex-versions__loading-help {
    margin: 0;
    font-size: 0.76rem;
    color: color-mix(in srgb, var(--vnex-ver-muted) 88%, transparent);
    text-align: center;
}

.vnex-versions__skeleton {
    height: 4.25rem;
    border-radius: 12px;
    background: linear-gradient(
        90deg,
        color-mix(in srgb, var(--vnex-ver-muted) 10%, transparent) 0%,
        color-mix(in srgb, var(--vnex-ver-muted) 18%, transparent) 50%,
        color-mix(in srgb, var(--vnex-ver-muted) 10%, transparent) 100%
    );
    background-size: 200% 100%;
    animation: vnex-ver-shimmer 1.1s ease-in-out infinite;
}

.vnex-versions__skeleton--short {
    width: 72%;
    height: 3.5rem;
}

.vnex-versions__loading-text {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: var(--vnex-ver-muted);
    text-align: center;
}

@keyframes vnex-ver-shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.vnex-versions__empty {
    text-align: center;
    padding: 1.5rem 0.75rem 1rem;
}

.vnex-versions__empty-icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: color-mix(in srgb, var(--vnex-ver-muted) 12%, transparent);
    color: var(--vnex-ver-muted);
}

.vnex-versions__empty-title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--vnex-ver-fg);
}

.vnex-versions__empty-copy,
.vnex-versions__empty-hint {
    margin: 0.45rem auto 0;
    max-width: 26rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--vnex-ver-muted);
}

.vnex-versions__empty-hint {
    margin-top: 0.65rem;
    font-size: 0.78rem;
    opacity: 0.9;
}

@media (max-width: 560px) {
    .vnex-versions__card {
        flex-direction: column;
        align-items: stretch;
    }

    .vnex-versions__actions {
        flex-wrap: wrap;
        justify-content: stretch;
    }

    .vnex-versions__btn {
        flex: 1 1 calc(50% - 0.35rem);
    }

    .vnex-versions__btn--primary {
        flex-basis: 100%;
    }
}

.vnex-acl__entry--versions {
    flex-wrap: wrap;
    gap: 0.55rem;
    align-items: flex-start;
}

.vnex-acl__ver-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    justify-content: flex-end;
}

.vnex-acl__ver-actions .vnex-acl__btn {
    text-decoration: none;
}

.vnex-acl__foot {
    display: flex;
    justify-content: flex-end;
    padding: 0.85rem 1.15rem 1.1rem;
    border-top: 1px solid var(--vnex-acl-border);
}

.vnex-acl__foot .vnex-acl__btn {
    min-width: 5.5rem;
}

@media (max-width: 560px) {
    .vnex-acl__table-head,
    .vnex-acl__entry {
        grid-template-columns: minmax(0, 1fr) 7.5rem 2rem;
    }

    .vnex-acl__composer-row {
        grid-template-columns: 1fr;
    }

    .vnex-acl__select--level {
        max-width: none;
    }
}

/* —— Nested module sidebar (ADR-037) —— */
.fi-sidebar-nav:has(.vnex-module-sidebar) > .fi-sidebar-nav-groups {
    display: none !important;
}

/* Clusters keep URL prefixes only — never open a second column beside the sidebar. */
.fi-page-has-sub-navigation-start > .fi-page-main > aside.fi-page-sub-navigation,
.fi-page-has-sub-navigation-start .fi-page-sub-navigation-sidebar,
.fi-page-main-ctn > .fi-page-sub-navigation-sidebar-ctn {
    display: none !important;
}

.vnex-module-sidebar__group-header--hub {
    width: 100%;
}

.vnex-module-sidebar__items--hub {
    flex: 1 1 auto;
    min-width: 0;
}

.vnex-module-sidebar__items--hub .vnex-module-sidebar__item-link {
    width: 100%;
}

.vnex-module-sidebar__modules,
.vnex-module-sidebar__fixed,
.vnex-module-sidebar__groups,
.vnex-module-sidebar__items {
    list-style: none;
    margin: 0;
    padding: 0;
}

.vnex-module-sidebar__modules,
.vnex-module-sidebar__fixed {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.vnex-module-sidebar__fixed {
    padding-top: 0.65rem;
    margin-top: 0.4rem;
    border-top: 1px solid var(--vnex-vfm-sidebar-border);
}

.vnex-module-sidebar__module-header,
.vnex-module-sidebar__group-header {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    min-width: 0;
}

.vnex-module-sidebar__drag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.4rem;
    height: 2rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--vnex-vfm-muted);
    cursor: grab;
    border-radius: 0.4rem;
    opacity: 0.45;
}

.vnex-module-sidebar__drag:hover {
    opacity: 1;
    color: var(--vnex-vfm-text);
    background: var(--vnex-vfm-blue-soft);
}

.vnex-module-sidebar__drag:active {
    cursor: grabbing;
}

.vnex-module-sidebar__drag-icon {
    width: 0.85rem;
    height: 0.85rem;
}

.vnex-module-sidebar__module-btn,
.vnex-module-sidebar__group-btn {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    padding: 0.5rem 0.55rem;
    border: 0;
    background: transparent;
    color: var(--vnex-vfm-text);
    cursor: pointer;
    border-radius: 0.55rem;
    text-align: start;
}

.vnex-module-sidebar__module-btn:hover,
.vnex-module-sidebar__group-btn:hover {
    background: var(--vnex-module-soft, var(--vnex-vfm-blue-soft));
}

.vnex-module-sidebar__module-icon,
.vnex-module-sidebar__item-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    color: var(--vnex-vfm-muted);
}

.vnex-module-sidebar__module-icon .fi-icon,
.vnex-module-sidebar__item-icon .fi-icon,
.vnex-module-sidebar__module-icon svg,
.vnex-module-sidebar__item-icon svg {
    width: 1.2rem;
    height: 1.2rem;
    stroke-width: 1.75;
}

/* Soft accent colors per module (outline icons + hover/active) */
.vnex-module-sidebar__module[data-vnex-module="storage"] {
    --vnex-module-accent: var(--vnex-nav-storage);
    --vnex-module-soft: var(--vnex-nav-storage-soft);
}
.vnex-module-sidebar__module[data-vnex-module="hr"] {
    --vnex-module-accent: var(--vnex-nav-hr);
    --vnex-module-soft: var(--vnex-nav-hr-soft);
}
.vnex-module-sidebar__module[data-vnex-module="projects"] {
    --vnex-module-accent: var(--vnex-nav-projects);
    --vnex-module-soft: var(--vnex-nav-projects-soft);
}
.vnex-module-sidebar__module[data-vnex-module="crm"] {
    --vnex-module-accent: var(--vnex-nav-crm);
    --vnex-module-soft: var(--vnex-nav-crm-soft);
}
.vnex-module-sidebar__module[data-vnex-module="business"] {
    --vnex-module-accent: var(--vnex-nav-business, var(--vnex-nav-projects));
    --vnex-module-soft: var(--vnex-nav-business-soft, var(--vnex-nav-projects-soft));
}
.vnex-module-sidebar__module[data-vnex-module="home"] {
    --vnex-module-accent: var(--vnex-nav-home);
    --vnex-module-soft: var(--vnex-nav-home-soft);
}
.vnex-module-sidebar__module[data-vnex-module="sales"] {
    --vnex-module-accent: var(--vnex-nav-sales);
    --vnex-module-soft: var(--vnex-nav-sales-soft);
}
.vnex-module-sidebar__module[data-vnex-module="export"] {
    --vnex-module-accent: var(--vnex-nav-export);
    --vnex-module-soft: var(--vnex-nav-export-soft);
}
.vnex-module-sidebar__module[data-vnex-module="finance"] {
    --vnex-module-accent: var(--vnex-nav-finance);
    --vnex-module-soft: var(--vnex-nav-finance-soft);
}
.vnex-module-sidebar__module[data-vnex-module="settings"] {
    --vnex-module-accent: var(--vnex-nav-settings);
    --vnex-module-soft: var(--vnex-nav-settings-soft);
}
.vnex-module-sidebar__module[data-vnex-module="account"] {
    --vnex-module-accent: var(--vnex-nav-account);
    --vnex-module-soft: var(--vnex-nav-account-soft);
}
.vnex-module-sidebar__module[data-vnex-module="navigator"] {
    --vnex-module-accent: var(--vnex-nav-navigator);
    --vnex-module-soft: var(--vnex-nav-navigator-soft);
}
.vnex-module-sidebar__module[data-vnex-module="roadmap"] {
    --vnex-module-accent: var(--vnex-nav-roadmap);
    --vnex-module-soft: var(--vnex-nav-roadmap-soft);
}

/* Business child groups keep their own accent (Projects / Sales / Export / Billing) */
.vnex-module-sidebar__group[data-vnex-group="projects"] {
    --vnex-module-accent: var(--vnex-nav-projects);
    --vnex-module-soft: var(--vnex-nav-projects-soft);
}
.vnex-module-sidebar__group[data-vnex-group="sales"] {
    --vnex-module-accent: var(--vnex-nav-sales);
    --vnex-module-soft: var(--vnex-nav-sales-soft);
}
.vnex-module-sidebar__group[data-vnex-group="export"] {
    --vnex-module-accent: var(--vnex-nav-export);
    --vnex-module-soft: var(--vnex-nav-export-soft);
}
.vnex-module-sidebar__group[data-vnex-group="finance"] {
    --vnex-module-accent: var(--vnex-nav-finance);
    --vnex-module-soft: var(--vnex-nav-finance-soft);
}
.vnex-module-sidebar__group[data-vnex-group] .vnex-module-sidebar__group-label,
.vnex-module-sidebar__group[data-vnex-group] .vnex-module-sidebar__item-icon {
    color: var(--vnex-module-accent);
}
.vnex-module-sidebar__group[data-vnex-group] .vnex-module-sidebar__group-btn:hover {
    background: var(--vnex-module-soft, var(--vnex-vfm-blue-soft));
}

.vnex-module-sidebar__module[data-vnex-module] .vnex-module-sidebar__module-icon,
.vnex-module-sidebar__module[data-vnex-module] .vnex-module-sidebar__item-icon {
    color: var(--vnex-module-accent);
}

.vnex-module-sidebar__module[data-vnex-module] {
    border-inline-start: 2px solid transparent;
    padding-inline-start: 0.15rem;
    margin-inline-start: -0.15rem;
}
.vnex-module-sidebar__module[data-vnex-module]:not(.is-collapsed) {
    border-inline-start-color: color-mix(in srgb, var(--vnex-module-accent) 35%, transparent);
}
.vnex-module-sidebar__module[data-vnex-module]:has(.vnex-module-sidebar__item-link.is-active) {
    border-inline-start-color: var(--vnex-module-accent);
}

.vnex-module-sidebar__module-label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.35;
    text-transform: uppercase;
    color: var(--vnex-vfm-text);
}

.vnex-module-sidebar__group-label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.35;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted);
}

html[dir="rtl"] .vnex-module-sidebar__module-label,
html[lang="ar"] .vnex-module-sidebar__module-label,
html[dir="rtl"] .vnex-module-sidebar__group-label,
html[lang="ar"] .vnex-module-sidebar__group-label {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 700;
}

html[dir="rtl"] .vnex-module-sidebar__module-label,
html[lang="ar"] .vnex-module-sidebar__module-label {
    font-size: 0.875rem;
}

html[dir="rtl"] .vnex-module-sidebar__group-label,
html[lang="ar"] .vnex-module-sidebar__group-label {
    font-size: 0.78rem;
    font-weight: 600;
}

.vnex-module-sidebar__chevron {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    color: var(--vnex-vfm-muted);
    opacity: 0.85;
    transition: transform 0.15s ease;
}

.vnex-module-sidebar__chevron--sm {
    width: 0.85rem;
    height: 0.85rem;
}

.vnex-module-sidebar__module.is-collapsed > .vnex-module-sidebar__module-header .vnex-module-sidebar__chevron,
.vnex-module-sidebar__group.is-collapsed > .vnex-module-sidebar__group-header .vnex-module-sidebar__chevron {
    transform: rotate(180deg);
}

.vnex-module-sidebar__module-body {
    padding-inline-start: 0.4rem;
}

.vnex-module-sidebar__groups {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.2rem 0 0.4rem 0.4rem;
}

.vnex-module-sidebar__items {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    padding: 0.15rem 0 0.3rem 0.2rem;
}

.vnex-module-sidebar__item-link {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.48rem 0.6rem;
    border-radius: 0.55rem;
    color: var(--vnex-vfm-text);
    text-decoration: none;
    transition: background 0.12s ease, color 0.12s ease;
}

.vnex-module-sidebar__item-link:hover {
    background: var(--vnex-module-soft, var(--vnex-vfm-blue-soft));
}

.vnex-module-sidebar__item-link.is-active {
    background: var(--vnex-module-soft, var(--vnex-vfm-blue-soft));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--vnex-module-accent, var(--vnex-vfm-blue)) 28%, transparent);
}

.vnex-module-sidebar__item-link.is-active .vnex-module-sidebar__item-label {
    color: var(--vnex-module-accent, var(--vnex-vfm-blue-bright)) !important;
    font-weight: 700;
}

/* Keep module accent on icons even when the row is active */
.vnex-module-sidebar__item-link.is-active .vnex-module-sidebar__item-icon,
.vnex-module-sidebar__item-link.is-active .vnex-module-sidebar__item-icon .fi-icon,
.vnex-module-sidebar__item-link.is-active .vnex-module-sidebar__item-icon svg {
    color: var(--vnex-module-accent, inherit) !important;
}

.vnex-module-sidebar__item-label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
}

html[dir="rtl"] .vnex-module-sidebar__item-label,
html[lang="ar"] .vnex-module-sidebar__item-label {
    font-size: 0.9375rem;
    font-weight: 500;
}

.vnex-sortable-ghost {
    opacity: 0.45;
}

/* —— Module sidebar: pro density (light + dark) —— */
.vnex-module-sidebar--pro {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-height: 0;
}

.fi-sidebar-nav:has(.vnex-module-sidebar--pro) {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    padding-block: 0.35rem 0.5rem;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__modules {
    gap: 0.45rem;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module {
    border-radius: 0.75rem;
    border: 1px solid transparent;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module:not(.is-collapsed) {
    background: color-mix(in srgb, var(--vnex-module-soft, var(--vnex-vfm-blue-soft)) 42%, transparent);
    border-color: color-mix(in srgb, var(--vnex-module-accent, var(--vnex-vfm-blue)) 14%, var(--vnex-vfm-sidebar-border));
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}

.dark .vnex-module-sidebar--pro .vnex-module-sidebar__module:not(.is-collapsed),
html.dark .vnex-module-sidebar--pro .vnex-module-sidebar__module:not(.is-collapsed) {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module-header {
    padding-inline: 0.15rem 0.25rem;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module-header .vnex-module-sidebar__drag {
    opacity: 0;
    width: 0;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    pointer-events: none;
    transition: opacity 0.12s ease, width 0.12s ease, min-width 0.12s ease;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module-header:hover .vnex-module-sidebar__drag,
.vnex-module-sidebar--pro .vnex-module-sidebar__module-header:focus-within .vnex-module-sidebar__drag {
    opacity: 0.5;
    width: 1.4rem;
    min-width: 1.4rem;
    pointer-events: auto;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.55rem;
    background: var(--vnex-module-soft, var(--vnex-vfm-blue-soft));
    color: var(--vnex-module-accent, var(--vnex-vfm-blue));
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module:has(.vnex-module-sidebar__item-link.is-active) > .vnex-module-sidebar__module-header .vnex-module-sidebar__module-btn {
    background: color-mix(in srgb, var(--vnex-module-soft, var(--vnex-vfm-blue-soft)) 65%, transparent);
}

.vnex-module-sidebar--pro .vnex-module-sidebar__module-body {
    padding-inline: 0.35rem 0.45rem 0.55rem;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__groups {
    border-inline-start: 2px solid color-mix(in srgb, var(--vnex-module-accent, var(--vnex-vfm-muted)) 22%, var(--vnex-vfm-sidebar-border));
    margin-inline-start: 0.55rem;
    padding-inline-start: 0.35rem;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__item-link {
    position: relative;
    padding-inline-start: 0.75rem;
}

.vnex-module-sidebar--pro .vnex-module-sidebar__item-link.is-active {
    background: color-mix(in srgb, var(--vnex-module-soft, var(--vnex-vfm-blue-soft)) 75%, var(--vnex-vfm-card));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--vnex-module-accent, var(--vnex-vfm-blue)) 22%, transparent);
}

.vnex-module-sidebar--pro .vnex-module-sidebar__item-link.is-active::before {
    content: '';
    position: absolute;
    inset-inline-start: 0.35rem;
    top: 0.4rem;
    bottom: 0.4rem;
    width: 3px;
    border-radius: 999px;
    background: var(--vnex-module-accent, var(--vnex-vfm-blue));
}

.vnex-module-sidebar--pro .vnex-module-sidebar__fixed {
    margin-top: 0.65rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--vnex-vfm-sidebar-border);
}

.vnex-module-sidebar--pro .vnex-nav-quota {
    margin-top: 0.75rem;
    margin-inline: 0.35rem;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.dark .vnex-module-sidebar--pro .vnex-nav-quota,
html.dark .vnex-module-sidebar--pro .vnex-nav-quota {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
    border-color: color-mix(in srgb, var(--vnex-vfm-sidebar-border) 80%, #3f3f46);
}

.vnex-module-sidebar--pro .vnex-nav-quota__bar {
    height: 0.4rem;
}

.vnex-module-sidebar--pro .vnex-nav-quota__bar i {
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        var(--vnex-module-accent, var(--vnex-vfm-blue)),
        color-mix(in srgb, var(--vnex-vfm-blue-bright) 85%, white)
    );
}

/*
 * Filament desktop collapse (chevron beside logo) toggles .fi-sidebar-open.
 * Native Filament nav hides labels via Alpine; VNex uses a custom module sidebar
 * (ADR-037), so we must icon-rail it ourselves when the store closes the sidebar.
 */
@media (min-width: 64rem) {
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) {
        width: var(--collapsed-sidebar-width, 4.5rem) !important;
        min-width: var(--collapsed-sidebar-width, 4.5rem);
        max-width: var(--collapsed-sidebar-width, 4.5rem);
    }

    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .fi-sidebar-nav {
        padding-inline: 0.4rem;
        overflow-x: hidden;
    }

    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__drag,
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__module-label,
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__group-label,
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__item-label,
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__chevron,
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__module-body {
        display: none !important;
    }

    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__fixed {
        padding-top: 0.35rem;
        margin-top: 0.25rem;
    }

    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__module-header,
    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__module-btn {
        justify-content: center;
        width: 100%;
        gap: 0;
        padding-inline: 0.15rem;
        min-height: 2.35rem;
    }

    .fi-body-has-sidebar-collapsible-on-desktop .fi-main-sidebar.fi-sidebar:not(.fi-sidebar-open) .vnex-module-sidebar__module-icon {
        width: 2rem;
        height: 2rem;
        margin: 0;
    }
}

.vnex-upbar {
    margin: 0.35rem 0.75rem 0.65rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--vnex-vfm-border, #dbe3ef);
    border-radius: 12px;
    background: var(--vnex-vfm-panel, #fff);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
    position: sticky;
    top: 0.35rem;
    z-index: 20;
}

.vnex-upbar__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.vnex-upbar__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    min-width: 0;
    font-size: 0.8125rem;
    color: #475569;
}

.vnex-upbar__name {
    font-weight: 700;
    color: #0f172a;
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-upbar__pct {
    font-weight: 800;
    color: #2563eb;
}

.vnex-upbar__actions {
    display: flex;
    gap: 0.4rem;
    flex-shrink: 0;
}

.vnex-upbar__btn {
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    border-radius: 8px;
    padding: 0.28rem 0.7rem;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

.vnex-upbar__btn--go {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}

.vnex-upbar__btn--danger {
    border-color: #f87171;
    background: rgba(127, 29, 29, 0.45);
    color: #fecaca;
}

.vnex-inc__bulk {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    padding: 0.35rem 0.75rem 0.65rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.25);
}

.vnex-inc__bulk label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.vnex-inc__row-check {
    flex: 0 0 auto;
    align-self: center;
}

.vnex-kit-subhead {
    margin: 1rem 0 0.35rem;
    font-size: 0.9rem;
    font-weight: 700;
}

.vnex-kit-code-wrap {
    margin-top: 0.65rem;
}

.vnex-kit-code-label {
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.85;
    margin-bottom: 0.25rem;
}

.vnex-kit-code {
    margin: 0 0 0.4rem;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.55);
    color: #e2e8f0;
    font-size: 0.75rem;
    line-height: 1.45;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
}

.vnex-upbar__track {
    margin-top: 0.55rem;
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.vnex-upbar__fill {
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #3b82f6, #2563eb);
    transition: width 0.2s ease;
}

.vnex-upbar__fill.is-paused {
    background: #94a3b8;
}

.vnex-upbar__err-toggle {
    display: block;
    margin-top: 0.55rem;
    width: 100%;
    text-align: start;
    border: 0;
    background: #fef2f2;
    color: #b91c1c;
    border-radius: 8px;
    padding: 0.4rem 0.6rem;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

.vnex-upbar__explain {
    margin-top: 0.4rem;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 0.8125rem;
    line-height: 1.45;
}

.vnex-upbar__explain-title {
    margin: 0 0 0.35rem;
    font-weight: 800;
    color: #7c2d12;
}

.vnex-upbar__explain-do {
    margin: 0.4rem 0 0;
    font-weight: 600;
}

.vnex-updock {
    position: fixed;
    z-index: 2147483000;
    right: 1.25rem;
    bottom: 1.25rem;
    width: min(26rem, calc(100vw - 2rem));
    padding: 0.9rem 1rem 1rem;
    border-radius: 14px;
    border: 1px solid var(--vnex-vfm-card-border);
    background: var(--vnex-vfm-card);
    color: var(--vnex-vfm-text);
    box-shadow: var(--vnex-vfm-shadow);
    font-size: 0.875rem;
}

html[dir="rtl"] .vnex-updock {
    right: auto;
    left: 1.25rem;
}

.vnex-updock[hidden] {
    display: none !important;
}

.vnex-updock__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.vnex-updock__title {
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted);
}

.vnex-updock__x {
    border: 0;
    background: transparent;
    color: var(--vnex-vfm-muted);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

.vnex-updock__name {
    font-weight: 700;
    color: var(--vnex-vfm-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-updock__gauge {
    margin-top: 0.55rem;
}

.vnex-updock__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--vnex-vfm-muted);
    margin-bottom: 0.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-updock__row {
    display: flex;
    justify-content: space-between;
    margin-top: 0.15rem;
    color: var(--vnex-vfm-text);
    font-variant-numeric: tabular-nums;
}

.vnex-updock__track {
    margin-top: 0.4rem;
    height: 10px;
    border-radius: 999px;
    background: var(--vnex-vfm-code-bg);
    border: 1px solid var(--vnex-vfm-card-border);
    overflow: hidden;
}

.vnex-updock__track--file {
    height: 7px;
}

.vnex-updock__fill {
    height: 100%;
    width: 0;
    background: var(--vnex-vfm-blue);
    transition: width 0.15s linear;
}

.vnex-updock__fill.is-paused {
    background: var(--vnex-vfm-muted);
}

.vnex-updock__fill.is-hashing {
    background: linear-gradient(90deg, #7c6fe8 0%, var(--vnex-vfm-blue) 100%);
}

.vnex-updock__left {
    margin-top: 0.35rem;
    color: var(--vnex-vfm-muted);
    font-size: 0.8125rem;
}

.vnex-updock__acc {
    margin-top: 0.65rem;
    border-top: 1px solid var(--vnex-vfm-card-border);
    padding-top: 0.45rem;
}

.vnex-updock__acc-btn {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    border: 0;
    background: transparent;
    color: var(--vnex-vfm-text);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.25rem 0;
    text-align: start;
}

.vnex-updock__chev {
    transition: transform 0.15s ease;
    color: var(--vnex-vfm-muted);
}

.vnex-updock__acc-btn.is-open .vnex-updock__chev {
    transform: rotate(180deg);
}

.vnex-updock__list {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    max-height: 9.5rem;
    overflow: auto;
    border-radius: 8px;
    background: var(--vnex-vfm-code-bg);
    border: 1px solid var(--vnex-vfm-card-border);
}

.vnex-updock__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    border-bottom: 1px solid var(--vnex-vfm-card-border);
    font-size: 0.75rem;
}

.vnex-updock__item:last-child {
    border-bottom: 0;
}

.vnex-updock__item-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--vnex-vfm-text);
    min-width: 0;
    flex: 1;
}

.vnex-updock__item-meta {
    flex-shrink: 0;
    color: var(--vnex-vfm-muted);
    font-variant-numeric: tabular-nums;
}

.vnex-updock__item.is-done .vnex-updock__item-meta {
    color: #16a34a;
}

.dark .vnex-updock__item.is-done .vnex-updock__item-meta,
html.dark .vnex-updock__item.is-done .vnex-updock__item-meta {
    color: #4ade80;
}

.vnex-updock__item.is-uploading .vnex-updock__item-meta {
    color: var(--vnex-vfm-blue);
}

.vnex-updock__item.is-error .vnex-updock__item-meta {
    color: #dc2626;
}

.dark .vnex-updock__item.is-error .vnex-updock__item-meta,
html.dark .vnex-updock__item.is-error .vnex-updock__item-meta {
    color: #fca5a5;
}

.vnex-updock__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
}

.vnex-updock__btn {
    border: 1px solid var(--vnex-vfm-card-border);
    background: var(--vnex-vfm-elevated);
    color: var(--vnex-vfm-text);
    border-radius: 8px;
    padding: 0.35rem 0.7rem;
    font-weight: 600;
    cursor: pointer;
}

.vnex-updock__btn:hover {
    background: var(--vnex-vfm-blue-soft);
    border-color: var(--vnex-vfm-blue);
}

.vnex-updock__btn--go {
    border-color: var(--vnex-vfm-blue);
    background: var(--vnex-vfm-blue);
    color: #ffffff;
}

.vnex-updock__btn--stop {
    border-color: #ef4444;
    color: #b91c1c;
    background: rgba(239, 68, 68, 0.08);
}

.dark .vnex-updock__btn--stop,
html.dark .vnex-updock__btn--stop {
    color: #fecaca;
    background: rgba(127, 29, 29, 0.35);
    border-color: #7f1d1d;
}

.vnex-updock__err {
    display: block;
    width: 100%;
    margin-top: 0.65rem;
    text-align: start;
    border: 1px solid #ef4444;
    border-radius: 8px;
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
    padding: 0.4rem 0.55rem;
    font-weight: 600;
    cursor: pointer;
}

.dark .vnex-updock__err,
html.dark .vnex-updock__err {
    background: rgba(127, 29, 29, 0.45);
    color: #fecaca;
    border-color: #7f1d1d;
}

.vnex-updock__explain {
    margin-top: 0.4rem;
    padding: 0.55rem 0.6rem;
    border-radius: 8px;
    border: 1px solid var(--vnex-vfm-card-border);
    background: var(--vnex-vfm-code-bg);
    color: var(--vnex-vfm-muted);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.vnex-updock__explain-title {
    margin: 0 0 0.3rem;
    font-weight: 800;
    color: var(--vnex-vfm-text);
}

.vnex-updock__explain-do {
    margin: 0.35rem 0 0;
    font-weight: 600;
    color: var(--vnex-vfm-text);
}

@keyframes vnex-fm-spin {
    to { transform: rotate(360deg); }
}

@keyframes vnex-fm-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.42; }
}

.vnex-fm__refresh-icon {
    flex-shrink: 0;
}

.vnex-fm__btn.is-refreshing .vnex-fm__refresh-icon,
.vnex-ui__btn.is-refreshing .vnex-fm__refresh-icon {
    animation: vnex-fm-spin 0.65s linear infinite;
}

.vnex-fm__body.is-refreshing {
    animation: vnex-fm-pulse 0.9s ease-in-out infinite;
    pointer-events: none;
}

.vnex-dash.is-refreshing .vnex-stat-grid,
.vnex-dash.is-refreshing .vnex-dash__kpis {
    animation: vnex-fm-pulse 0.9s ease-in-out infinite;
    pointer-events: none;
}

html.vnex-lb-lock,
html.vnex-lb-lock body {
    overflow: hidden;
}

.vnex-lb {
    position: fixed;
    inset: 0;
    z-index: 2147483600;
    display: flex;
    flex-direction: column;
    background: #fff;
    color: #111827;
}

.dark .vnex-lb {
    background: #0f1115;
    color: #f3f4f6;
}

.vnex-lb__bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    min-height: 3.25rem;
    padding: 0.4rem 0.85rem;
    border-bottom: 1px solid #ececec;
}

.dark .vnex-lb__bar {
    border-bottom-color: #27272a;
}

.vnex-lb__left,
.vnex-lb__right {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.vnex-lb__right {
    justify-content: flex-end;
}

.vnex-lb__title {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    min-width: 0;
    font-size: 0.95rem;
}

.vnex-lb__title strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 700;
}

.vnex-lb__title span {
    flex-shrink: 0;
    color: #9ca3af;
    font-size: 0.82rem;
}

.vnex-lb__meta {
    color: #9ca3af;
    font-size: 0.8rem;
    white-space: nowrap;
}

.vnex-lb__icon {
    appearance: none;
    width: 2.15rem;
    height: 2.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.vnex-lb__icon:hover {
    background: rgba(15, 23, 42, 0.06);
}

.dark .vnex-lb__icon:hover {
    background: rgba(255, 255, 255, 0.08);
}

.vnex-lb__morewrap {
    position: relative;
}

.vnex-lb__menu {
    position: absolute;
    top: calc(100% + 0.25rem);
    inset-inline-start: 0;
    min-width: 11rem;
    padding: 0.35rem 0;
    border-radius: 0.7rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
    border: 1px solid #ececec;
    z-index: 2;
}

.dark .vnex-lb__menu {
    background: #18181b;
    border-color: #27272a;
}

.vnex-lb__menu a {
    display: block;
    padding: 0.55rem 0.85rem;
    color: inherit;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
}

.vnex-lb__menu a:hover {
    background: #f8fafc;
}

.vnex-lb__stage {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: auto;
    padding: 1.25rem 3.5rem;
}

.vnex-lb__stage img {
    max-width: 100%;
    max-height: calc(100vh - 4.5rem);
    object-fit: contain;
}

.vnex-lb__fail {
    margin: 0;
    padding: 1rem 1.25rem;
    color: #9ca3af;
    font-size: 0.95rem;
}

.vnex-lb__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.vnex-lb__nav--prev { inset-inline-start: 0.7rem; }
.vnex-lb__nav--next { inset-inline-end: 0.7rem; }

.vnex-lb__nav:hover {
    background: rgba(15, 23, 42, 0.12);
}

@media (max-width: 720px) {
    .vnex-lb__bar {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .vnex-lb__right {
        justify-content: flex-start;
    }

    .vnex-lb__meta {
        order: 3;
    }

    .vnex-lb__stage {
        padding: 1rem 2.6rem;
    }
}

.vnex-fm__bulk-download {
    margin: 0.75rem 0 0;
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--vnex-accent, #2563eb) 28%, transparent);
    background: color-mix(in srgb, var(--vnex-accent, #2563eb) 8%, var(--vnex-surface, #fff));
}

.vnex-fm__bulk-download-inner {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.vnex-fm__bulk-download-inner p {
    margin: 0.15rem 0 0;
    font-size: 0.875rem;
    opacity: 0.85;
}

.vnex-fm__bulk-download-spinner {
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    border: 2px solid color-mix(in srgb, var(--vnex-accent, #2563eb) 25%, transparent);
    border-top-color: var(--vnex-accent, #2563eb);
    animation: vnex-bulk-spin 0.8s linear infinite;
    flex-shrink: 0;
}

.vnex-fm__bulk-download-dismiss {
    margin-inline-start: auto;
    border: none;
    background: transparent;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.65;
    padding: 0.15rem 0.35rem;
}

.vnex-fm__bulk-download-dismiss:hover {
    opacity: 1;
}

@keyframes vnex-bulk-spin {
    to { transform: rotate(360deg); }
}

/* Company Drive — Team / My tabs + pinned strip */
.vnex-fm__storage-scope {
    margin: 0 0 0.85rem;
    padding: 0 0.25rem;
}

.vnex-fm__storage-tabs {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 0.65rem;
    border: 1px solid var(--vnex-vfm-card-border, #e4e4e7);
    background: var(--vnex-vfm-card, #ffffff);
}

.vnex-fm__storage-tab {
    border: none;
    background: transparent;
    color: var(--vnex-vfm-muted, #6e7e83);
    font-size: 0.8125rem;
    font-weight: 700;
    padding: 0.45rem 1rem;
    border-radius: 0.5rem;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s, color 0.15s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.vnex-fm__storage-tab:hover {
    color: var(--vnex-vfm-text, #1b2539);
}

.vnex-fm__storage-tab.is-active {
    background: var(--vnex-vfm-blue, #4F6EF5);
    color: #fff;
}

.vnex-fm__pinned-block {
    margin-top: 0.85rem;
}

.vnex-fm__pinned-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
}

.vnex-fm__pinned-title {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--vnex-text-muted, #94a3b8);
    margin: 0;
}

.vnex-fm__pinned-hint {
    font-size: 0.75rem;
    color: var(--vnex-text-muted, #94a3b8);
}

.vnex-fm__pinned-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.vnex-fm__pinned-card {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 9rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.65rem;
    border: 1px solid var(--vnex-vfm-card-border, #e4e4e7);
    background: var(--vnex-vfm-card, #ffffff);
    color: var(--vnex-vfm-text, #1b2539);
    cursor: pointer;
    text-align: start;
    font-family: inherit;
    color: inherit;
    transition: border-color 0.15s, background 0.15s;
}

.vnex-fm__pinned-card:hover {
    border-color: color-mix(in srgb, var(--vnex-accent, #2563eb) 55%, transparent);
}

.vnex-fm__pinned-card--team {
    border-color: color-mix(in srgb, #f59e0b 35%, var(--vnex-stroke, #243049));
}

.vnex-fm__pinned-card--my {
    border-color: color-mix(in srgb, #a78bfa 35%, var(--vnex-stroke, #243049));
}

.vnex-fm__pinned-icon {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.45rem;
    display: grid;
    place-items: center;
    font-size: 0.75rem;
    font-weight: 800;
    flex-shrink: 0;
}

.vnex-fm__pinned-card--team .vnex-fm__pinned-icon {
    background: color-mix(in srgb, var(--vnex-vfm-blue, #4F6EF5) 18%, transparent);
    color: var(--vnex-vfm-blue, #4F6EF5);
}

.vnex-fm__pinned-card--my .vnex-fm__pinned-icon {
    background: color-mix(in srgb, #8b5cf6 18%, transparent);
    color: #a78bfa;
}

.vnex-fm__pinned-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vnex-fm__pinned-name {
    font-size: 0.8125rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vnex-fm__pinned-kind {
    font-size: 0.6875rem;
    color: var(--vnex-text-muted, #94a3b8);
}

.vnex-fm__large-upload-dest {
    margin: 0 0 1rem;
}

.vnex-fm__large-upload-dest code {
    font-size: 0.8125rem;
    word-break: break-all;
}

.vnex-fm__large-upload-dropzone {
    border: 2px dashed color-mix(in srgb, var(--vnex-vfm-card-border, #e4e4e7) 90%, transparent);
    border-radius: 0.85rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    background: color-mix(in srgb, var(--vnex-vfm-sidebar, #f4f4f5) 70%, var(--vnex-vfm-card, #ffffff));
}

.vnex-fm__large-upload-dropzone:hover,
.vnex-fm__large-upload-dropzone.is-dragover {
    border-color: var(--vnex-vfm-blue, #4F6EF5);
    background: color-mix(in srgb, var(--vnex-vfm-blue, #4F6EF5) 8%, transparent);
}

.vnex-fm__large-upload-dropzone-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-fm__large-upload-dropzone-inner strong {
    color: var(--vnex-vfm-text, #1b2539);
    font-size: 1rem;
}

.vnex-module-sidebar__group[data-vnex-group="admin"] {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid color-mix(in srgb, var(--vnex-stroke, #243049) 75%, transparent);
}

.vnex-fm__view-toggle {
    display: inline-flex;
    gap: 0.25rem;
}

.vnex-share-cards {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 1fr;
}

@media (min-width: 800px) {
    .vnex-share-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .vnex-share-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.vnex-share-card {
    display: grid;
    gap: 0.55rem;
    padding: 1rem 1.05rem;
    border-radius: 0.9rem;
    border: 1px solid var(--vnex-vfm-card-border, #e4e4e7);
    background: var(--vnex-vfm-card, #ffffff);
    color: var(--vnex-vfm-text, #1b2539);
    box-shadow: var(--vnex-vfm-shadow);
}

.vnex-share-card__top {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.vnex-share-card__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnex-share-card__meta,
.vnex-share-card__url {
    margin: 0;
    color: var(--vnex-vfm-muted, #6e7e83);
    font-size: 0.78rem;
    word-break: break-all;
}

.vnex-share-card__stats {
    display: flex;
    gap: 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--vnex-vfm-text, #1b2539);
}

.vnex-share-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

/* Mobile bottom nav (Layer 2 UX). Keep Drive chrome and the assistant above the bar. */
@media (max-width: 1023px) {
    .fi-main,
    .fi-main-ctn {
        padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
    }

    .vnex-assistant {
        bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
    }
}

/* Company Home — first-party Orbit layout language (VNex blue; not the paid theme). */
.fi-page.vnex-orbit-home-page .fi-header {
    display: none;
}

.vnex-orbit-home {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.vnex-orbit-home__hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1.15rem 1.25rem;
    border-radius: 1.15rem;
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4F6EF5) 18%, var(--vnex-vfm-card-border, #e4e4e7));
    background:
        radial-gradient(720px 220px at 0% 0%, color-mix(in srgb, var(--vnex-blue, #4F6EF5) 14%, transparent), transparent 58%),
        var(--vnex-vfm-card, #fff);
    box-shadow: var(--vnex-vfm-shadow, 0 7px 25px 1px rgba(0, 0, 0, 0.08));
}

.vnex-orbit-home__who {
    display: flex;
    align-items: center;
    gap: 0.95rem;
    min-width: min(100%, 18rem);
}

.vnex-orbit-home__photo {
    width: 4rem;
    height: 4rem;
    border-radius: 999px;
    object-fit: cover;
    border: 2px solid color-mix(in srgb, var(--vnex-blue, #4F6EF5) 35%, transparent);
    background: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 12%, transparent);
    flex: 0 0 auto;
}

.vnex-orbit-home__photo.is-initials {
    display: grid;
    place-items: center;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--vnex-blue, #4F6EF5);
}

.vnex-orbit-home__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-orbit-home__name {
    margin: 0.15rem 0 0.45rem;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 800;
    line-height: 1.15;
    color: var(--vnex-vfm-text, #1b2539);
}

.vnex-orbit-home__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.vnex-orbit-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.65rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 88%, #111);
    background: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4F6EF5) 28%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-chip.is-warn {
    color: #b45309;
    background: color-mix(in srgb, #f59e0b 14%, transparent);
    border-color: color-mix(in srgb, #f59e0b 40%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-home__refresh {
    appearance: none;
    cursor: pointer;
    padding: 0.5rem 0.95rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 750;
    color: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 88%, white);
    background: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4F6EF5) 32%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-home__refresh:hover,
.vnex-orbit-home__refresh.is-refreshing {
    background: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 18%, transparent);
}

.vnex-orbit-home__grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 1rem;
}

.vnex-orbit-card--pulse {
    grid-column: 1 / -1;
}

.vnex-orbit-card {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
    padding: 1.1rem 1.15rem 1.2rem;
    border-radius: 1.05rem;
    border: 1px solid var(--vnex-vfm-card-border, #e4e4e7);
    background: var(--vnex-vfm-card, #fff);
    box-shadow: var(--vnex-vfm-shadow, 0 7px 25px 1px rgba(0, 0, 0, 0.08));
}

.vnex-orbit-card--storage {
    border-color: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 22%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-card--storage.is-warning {
    border-color: color-mix(in srgb, #f59e0b 45%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-card--storage.is-danger {
    border-color: color-mix(in srgb, #ef4444 45%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.vnex-orbit-card__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-orbit-card__title {
    margin: 0.2rem 0 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--vnex-vfm-text, #1b2539);
}

.vnex-orbit-card__meta,
.vnex-orbit-card__help,
.vnex-orbit-card__empty,
.vnex-orbit-card__note {
    margin: 0;
    font-size: 0.8rem;
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-orbit-card__note.is-warn { color: #b45309; }
.vnex-orbit-card__note.is-critical { color: #b91c1c; }

.vnex-orbit-card__icon {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.8rem;
    color: var(--vnex-blue, #4F6EF5);
    background: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 12%, transparent);
}

.vnex-orbit-card__spark {
    min-height: 4.5rem;
}

.vnex-orbit-card__cta,
.vnex-orbit-card__link {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    padding: 0.52rem 0.95rem;
    border-radius: 0.7rem;
    font-size: 0.8rem;
    font-weight: 750;
    color: #fff;
    background: linear-gradient(135deg, var(--vnex-blue, #4F6EF5), color-mix(in srgb, var(--vnex-blue, #4F6EF5) 75%, #6366f1));
    text-decoration: none;
}

.vnex-orbit-card__link {
    color: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 88%, #111);
    background: color-mix(in srgb, var(--vnex-blue, #4F6EF5) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4F6EF5) 28%, var(--vnex-vfm-card-border, #e4e4e7));
}

.vnex-orbit-table-wrap {
    overflow-x: auto;
}

.vnex-orbit-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.vnex-orbit-table th,
.vnex-orbit-table td {
    padding: 0.55rem 0.45rem;
    text-align: start;
    border-bottom: 1px solid var(--vnex-vfm-card-border, #e4e4e7);
    vertical-align: top;
}

.vnex-orbit-table th {
    font-size: 0.72rem;
    font-weight: 750;
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-orbit-table td.is-muted {
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-orbit-table .is-num,
.vnex-orbit-table .is-action {
    text-align: end;
    white-space: nowrap;
}

.vnex-orbit-table tr.is-hot td:first-child {
    color: var(--vnex-blue, #4F6EF5);
    font-weight: 750;
}

.vnex-orbit-table a {
    color: var(--vnex-blue, #4F6EF5);
    font-weight: 750;
    text-decoration: none;
}

.vnex-orbit-pulse {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.vnex-orbit-pulse__item {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    gap: 0.7rem;
    padding-block: 0.55rem;
}

.vnex-orbit-pulse__dot {
    width: 0.65rem;
    height: 0.65rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: var(--vnex-blue, #4F6EF5);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--vnex-blue, #4F6EF5) 16%, transparent);
}

.vnex-orbit-pulse__item.is-login .vnex-orbit-pulse__dot { background: #0f766e; box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.16); }
.vnex-orbit-pulse__item.is-task .vnex-orbit-pulse__dot { background: #7c3aed; box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16); }

.vnex-orbit-pulse__top {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.vnex-orbit-pulse__top strong {
    color: var(--vnex-vfm-text, #1b2539);
}

.vnex-orbit-pulse__top time,
.vnex-orbit-pulse__body p {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: var(--vnex-vfm-muted, #6e7e83);
}

.vnex-orbit-home__section {
    margin: 0.35rem 0 0.65rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--vnex-vfm-text, #1b2539);
}

.vnex-orbit-home .vnex-orbit-home__snapshot {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.vnex-orbit-home .vnex-orbit-home__snapshot .vnex-stat-card {
    min-width: 0;
    padding: 0.7rem 0.75rem 0.75rem;
}

.vnex-orbit-home .vnex-orbit-home__snapshot .vnex-stat-card__value {
    font-size: 1.05rem;
}

.vnex-orbit-home .vnex-orbit-home__snapshot .vnex-stat-card__desc {
    overflow-wrap: anywhere;
}

.vnex-orbit-card--pulse {
    margin-top: 0.25rem;
}

@media (min-width: 1024px) {
    .vnex-orbit-home .vnex-orbit-home__snapshot {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.75rem;
    }
}

@media (min-width: 1280px) {
    .vnex-orbit-home .vnex-orbit-home__snapshot {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 1023px) {
    .vnex-orbit-home__grid {
        grid-template-columns: 1fr;
    }
}

html.dark .vnex-orbit-chip.is-warn,
.dark .vnex-orbit-chip.is-warn {
    color: #fbbf24;
}

html.dark .vnex-orbit-card__note.is-warn,
.dark .vnex-orbit-card__note.is-warn {
    color: #fbbf24;
}

html.dark .vnex-orbit-card__note.is-critical,
.dark .vnex-orbit-card__note.is-critical {
    color: #f87171;
}

/* —— Recent uploads (أحدث الرفوعات) —— */
.vnex-recent-desk {
    max-width: 100%;
}

.vnex-recent-desk__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}

.vnex-recent-desk__title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--vnex-vfm-text);
    letter-spacing: -0.02em;
}

.vnex-recent-desk__lead {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    color: var(--vnex-vfm-muted);
    max-width: 36rem;
    line-height: 1.45;
}

.vnex-recent-desk__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.vnex-recent-desk .vnex-stat-cards,
.vnex-recent-desk [class*='stat-card'] {
    margin-bottom: 1.35rem;
}

.vnex-recent-desk__grid--files {
    grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
    gap: 1rem 1.1rem;
}

.vnex-recent-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    margin: 0;
    border: 1px solid var(--vnex-vfm-card-border);
    border-radius: 1rem;
    background: var(--vnex-vfm-card);
    box-shadow: var(--vnex-vfm-shadow);
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.vnex-recent-card:hover {
    border-color: color-mix(in srgb, var(--vnex-vfm-blue) 35%, var(--vnex-vfm-card-border));
    box-shadow: 0 10px 28px rgba(79, 110, 245, 0.12);
}

.vnex-recent-card__hit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    padding: 0.85rem 0.65rem 0.5rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: center;
    color: inherit;
    font: inherit;
}

.vnex-recent-card.is-row {
    flex-direction: row;
    align-items: center;
    gap: 0;
    border-radius: 0.85rem;
    box-shadow: none;
    background: var(--vnex-vfm-card);
}

.vnex-recent-card.is-row:hover {
    background: color-mix(in srgb, var(--vnex-vfm-blue) 6%, var(--vnex-vfm-card));
}

.vnex-recent-card.is-row .vnex-recent-card__hit {
    flex: 1;
    flex-direction: row;
    align-items: center;
    gap: 0.85rem;
    padding: 0.65rem 0.75rem;
    text-align: start;
    min-width: 0;
}

.vnex-recent-card.is-row .vnex-fm__meta {
    flex: 1;
    min-width: 0;
}

.vnex-recent-card.is-row .vnex-fm__name {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.vnex-recent-desk__list {
    gap: 0.5rem;
}

.vnex-recent-card__body {
    width: 100%;
}

.vnex-recent-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.35rem;
}

.vnex-recent-card__dot {
    color: var(--vnex-vfm-muted);
    opacity: 0.65;
    user-select: none;
}

.vnex-recent-card__place {
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--vnex-vfm-muted);
    line-height: 1.35;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.vnex-recent-card.is-row .vnex-recent-card__place {
    margin-top: 0.15rem;
    -webkit-line-clamp: 1;
}

.vnex-recent-card .vnex-fm__name {
    width: 100%;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
    word-break: break-word;
}

.vnex-recent-card .vnex-fm__sub {
    width: 100%;
    line-height: 1.35;
}

.vnex-recent-card__open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    margin: 0 0.65rem 0.65rem;
    padding: 0.45rem 0.75rem;
    border-radius: 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    color: var(--vnex-vfm-blue);
    background: var(--vnex-vfm-blue-soft);
    border: 1px solid color-mix(in srgb, var(--vnex-vfm-blue) 22%, transparent);
    transition: background 0.15s ease, color 0.15s ease;
}

.vnex-recent-card__open:hover {
    background: color-mix(in srgb, var(--vnex-vfm-blue) 18%, transparent);
    color: var(--vnex-vfm-text);
}

.vnex-recent-card.is-row .vnex-recent-card__open {
    flex-shrink: 0;
    margin: 0 0.65rem 0 0;
    white-space: nowrap;
}

.vnex-recent-card.vnex-fm__card {
    align-items: stretch;
    cursor: default;
}

.vnex-recent-card.vnex-fm__card .vnex-fm__thumb--grid {
    background: var(--vnex-vfm-code-bg);
    border-radius: 0.75rem;
}

.vnex-recent-card.vnex-fm__card .vnex-fm__thumb--list .vnex-fm__file-badge--lg {
    transform: scale(0.72);
    transform-origin: center;
}

/* Recent uploads — preview dialog (light/dark via --vnex-action-*) */
.vnex-recent-modal__card {
    width: min(56rem, 100%);
    max-height: min(92vh, 880px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--vnex-action-bg, var(--vnex-vfm-card));
    color: var(--vnex-action-fg, var(--vnex-vfm-text));
    border: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
    box-shadow: var(--vnex-action-shadow, var(--vnex-vfm-shadow));
}

.vnex-recent-modal .vnex-fm__modal-head {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
    background: var(--vnex-action-bg, var(--vnex-vfm-card));
}

.vnex-recent-modal__title-row {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
    flex: 1;
}

.vnex-recent-modal__hero-thumb {
    flex-shrink: 0;
    width: 3.25rem;
    height: 3.25rem;
    display: grid;
    place-items: center;
    border-radius: 0.75rem;
    background: var(--vnex-action-input, var(--vnex-vfm-code-bg));
    border: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
    overflow: hidden;
}

.vnex-recent-modal__hero-thumb .vnex-fm__thumb--grid {
    width: 100%;
    height: 100%;
}

.vnex-recent-modal__hero-thumb .vnex-fm__file-badge--lg {
    transform: scale(0.65);
}

.vnex-recent-modal__title-block {
    min-width: 0;
}

.vnex-recent-modal__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--vnex-action-fg, var(--vnex-vfm-text));
    word-break: break-word;
}

.vnex-recent-modal__subtitle {
    margin: 0.25rem 0 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--vnex-action-muted, var(--vnex-vfm-muted));
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.vnex-recent-modal__close {
    flex-shrink: 0;
    border-radius: 0.55rem;
    color: var(--vnex-action-muted, var(--vnex-vfm-muted));
}

.vnex-recent-modal__close:hover {
    background: var(--vnex-action-theme-soft, var(--vnex-vfm-blue-soft));
    color: var(--vnex-action-theme, var(--vnex-vfm-blue));
}

.vnex-recent-modal__layout {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1;
    overflow: hidden;
}

.vnex-recent-modal__aside {
    flex-shrink: 0;
    padding: 0.85rem 1.15rem 1rem;
    border-bottom: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
    background: var(--vnex-action-secondary, var(--vnex-vfm-sidebar));
}

.vnex-recent-modal__facts {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 1.25rem;
}

@media (min-width: 640px) {
    .vnex-recent-modal__facts {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.vnex-recent-modal__fact {
    display: grid;
    gap: 0.15rem;
}

.vnex-recent-modal__fact dt {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vnex-action-muted, var(--vnex-vfm-muted));
}

.vnex-recent-modal__fact dd {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--vnex-action-fg, var(--vnex-vfm-text));
    line-height: 1.35;
    word-break: break-word;
}

.vnex-recent-modal__fact--full {
    grid-column: 1 / -1;
}

.vnex-recent-modal__fact--full dd {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--vnex-action-muted, var(--vnex-vfm-muted));
}

.vnex-recent-modal__actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
}

.vnex-recent-modal__actions .vnex-fm__btn {
    flex: 1;
    min-width: 9rem;
    justify-content: center;
    text-decoration: none;
    box-sizing: border-box;
}

.vnex-recent-modal__preview {
    margin: 0;
    padding: 0.85rem 1rem 1.1rem;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    width: 100%;
    background: var(--vnex-action-bg, var(--vnex-vfm-card));
}

.vnex-recent-modal__preview .vnex-preview {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 0.75rem;
    border: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
    background: var(--vnex-action-input, var(--vnex-vfm-code-bg));
}

.vnex-recent-modal__preview .vnex-preview__toolbar {
    padding: 0.5rem 0.65rem;
    border-bottom: 1px solid var(--vnex-action-border, var(--vnex-vfm-card-border));
}

.vnex-recent-modal__preview .vnex-preview__frame {
    width: 100%;
    max-width: 100%;
    min-height: min(70vh, 42rem);
    height: min(72vh, 44rem);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    background: #1a1a1a;
}

.dark .vnex-recent-modal__preview .vnex-preview__frame,
html.dark .vnex-recent-modal__preview .vnex-preview__frame {
    background: #09090b;
}

.vnex-recent-modal__preview .vnex-preview__frame iframe,
.vnex-recent-modal__preview .vnex-preview__frame img,
.vnex-recent-modal__preview .vnex-preview__frame video {
    display: block;
    width: 100% !important;
    max-width: 100%;
    min-height: min(70vh, 42rem);
    height: 100%;
    border: 0;
}

.vnex-recent-modal__preview .vnex-preview__frame.is-media {
    height: auto;
    min-height: 12rem;
    background: var(--vnex-action-input, var(--vnex-vfm-code-bg));
}

.vnex-recent-modal__preview .vnex-preview__frame.is-media img,
.vnex-recent-modal__preview .vnex-preview__frame.is-media video {
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: contain;
}

.vnex-recent-modal__preview .vnex-preview__empty {
    padding: 2rem 1rem;
}

.vnex-recent-desk__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    border-radius: 0.55rem;
    font-weight: 700;
    font-size: 0.88rem;
    text-decoration: none;
    border: 1px solid var(--vnex-vfm-card-border);
    color: var(--vnex-vfm-text);
    background: var(--vnex-vfm-elevated);
}

.vnex-recent-desk__btn.is-primary {
    background: var(--vnex-vfm-blue);
    border-color: transparent;
    color: #fff;
}

@media (max-width: 720px) {
    .vnex-recent-card.is-row {
        flex-direction: column;
        align-items: stretch;
    }

    .vnex-recent-card.is-row .vnex-recent-card__open {
        margin: 0 0.65rem 0.65rem;
        width: calc(100% - 1.3rem);
    }
}

/* —— Action Center lanes + items (light/dark, matches KPI card language) —— */
.vnex-action-center {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.vnex-action-center__kpis {
    margin-bottom: 0;
}

.vnex-action-center .vnex-stat-card {
    border-radius: 1rem !important;
    padding: 1.05rem 1.1rem 1.1rem !important;
    background:
        linear-gradient(
            155deg,
            color-mix(in srgb, var(--vnex-card, #fff) 94%, white 6%) 0%,
            color-mix(in srgb, var(--vnex-main, #f4f4f5) 55%, var(--vnex-card, #fff)) 100%
        ) !important;
    border: 1px solid color-mix(in srgb, var(--vnex-border, #e4e4e7) 88%, transparent) !important;
    box-shadow: 0 2px 10px color-mix(in srgb, black 8%, transparent) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.dark .vnex-action-center .vnex-stat-card,
html.dark .vnex-action-center .vnex-stat-card {
    background:
        linear-gradient(
            155deg,
            color-mix(in srgb, var(--vnex-card, #18181b) 92%, #27272a 8%) 0%,
            color-mix(in srgb, #09090b 45%, var(--vnex-card, #18181b)) 100%
        ) !important;
    border-color: color-mix(in srgb, #27272a 90%, transparent) !important;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.35) !important;
}

.vnex-action-center .vnex-stat-card:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 28%, var(--vnex-border, #e4e4e7)) !important;
    box-shadow:
        0 10px 24px color-mix(in srgb, var(--vnex-blue, #4f6ef5) 10%, transparent),
        0 2px 10px color-mix(in srgb, black 10%, transparent) !important;
}

.vnex-action-center .vnex-stat-card.is-on {
    border-color: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 42%, var(--vnex-border, #e4e4e7)) !important;
    box-shadow:
        0 0 0 1px color-mix(in srgb, var(--vnex-blue, #4f6ef5) 35%, transparent),
        0 8px 22px color-mix(in srgb, var(--vnex-blue, #4f6ef5) 14%, transparent) !important;
}

.vnex-action-center__filter {
    display: flex;
    justify-content: flex-end;
}

.vnex-action-center__clear {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4f6ef5) 35%, var(--vnex-border, #e4e4e7));
    background: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 10%, transparent);
    color: var(--vnex-blue-bright, #4f6ef5);
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.vnex-action-center__clear:hover {
    background: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 18%, transparent);
}

.vnex-action-center__empty {
    padding: 2.25rem 1.25rem;
    text-align: center;
    border-radius: 1.1rem;
    border: 1px dashed color-mix(in srgb, var(--vnex-border, #e4e4e7) 90%, transparent);
    background: color-mix(in srgb, var(--vnex-card, #fff) 88%, transparent);
    color: var(--vnex-muted, #71717a);
    font-size: 0.92rem;
    font-weight: 600;
}

.dark .vnex-action-center__empty,
html.dark .vnex-action-center__empty {
    background: color-mix(in srgb, #18181b 92%, transparent);
    border-color: #3f3f46;
    color: #a1a1aa;
}

.vnex-action-center__lanes {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.vnex-action-center__lane {
    border-radius: 1.15rem;
    border: 1px solid color-mix(in srgb, var(--vnex-border, #e4e4e7) 90%, transparent);
    background:
        radial-gradient(
            520px 140px at 0% 0%,
            color-mix(in srgb, var(--vnex-blue, #4f6ef5) 7%, transparent),
            transparent 55%
        ),
        linear-gradient(
            165deg,
            color-mix(in srgb, var(--vnex-card, #fff) 96%, white) 0%,
            color-mix(in srgb, var(--vnex-main, #f4f4f5) 40%, var(--vnex-card, #fff)) 100%
        );
    box-shadow: 0 2px 12px color-mix(in srgb, black 7%, transparent);
    overflow: hidden;
}

.dark .vnex-action-center__lane,
html.dark .vnex-action-center__lane {
    border-color: #27272a;
    background:
        radial-gradient(
            520px 140px at 0% 0%,
            color-mix(in srgb, #60a5fa 8%, transparent),
            transparent 55%
        ),
        linear-gradient(165deg, #18181b 0%, #121214 100%);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
}

.vnex-action-center__lane.is-client {
    background:
        radial-gradient(
            520px 140px at 0% 0%,
            color-mix(in srgb, #38bdf8 8%, transparent),
            transparent 55%
        ),
        linear-gradient(
            165deg,
            color-mix(in srgb, var(--vnex-card, #fff) 96%, white) 0%,
            color-mix(in srgb, var(--vnex-main, #f4f4f5) 40%, var(--vnex-card, #fff)) 100%
        );
}

.dark .vnex-action-center__lane.is-client,
html.dark .vnex-action-center__lane.is-client {
    background:
        radial-gradient(
            520px 140px at 0% 0%,
            color-mix(in srgb, #38bdf8 9%, transparent),
            transparent 55%
        ),
        linear-gradient(165deg, #18181b 0%, #121214 100%);
}

.vnex-action-center__lane-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.95rem 1.1rem 0.75rem;
    border-bottom: 1px solid color-mix(in srgb, var(--vnex-border, #e4e4e7) 75%, transparent);
}

.dark .vnex-action-center__lane-head,
html.dark .vnex-action-center__lane-head {
    border-bottom-color: #27272a;
}

.vnex-action-center__lane-heading {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.vnex-action-center__lane-mark {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--vnex-blue, #4f6ef5);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--vnex-blue, #4f6ef5) 18%, transparent);
    flex-shrink: 0;
}

.vnex-action-center__lane.is-client .vnex-action-center__lane-mark {
    background: #38bdf8;
    box-shadow: 0 0 0 4px rgba(56, 189, 248, 0.2);
}

.vnex-action-center__lane-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--vnex-fg, #18181b);
}

.dark .vnex-action-center__lane-title,
html.dark .vnex-action-center__lane-title {
    color: #fafafa;
}

.vnex-action-center__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.85rem;
    height: 1.85rem;
    padding: 0 0.55rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--vnex-blue-bright, #4f6ef5);
    background: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4f6ef5) 22%, transparent);
}

.dark .vnex-action-center__count,
html.dark .vnex-action-center__count {
    color: #93c5fd;
    background: rgba(96, 165, 250, 0.16);
    border-color: rgba(96, 165, 250, 0.28);
}

.vnex-action-center__items {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.75rem 0.85rem 0.95rem;
}

.vnex-action-center__lane-empty {
    margin: 0;
    padding: 1.25rem 0.75rem;
    text-align: center;
    color: var(--vnex-muted, #71717a);
    font-size: 0.88rem;
    font-weight: 600;
}

.vnex-action-center__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border-radius: 0.9rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid color-mix(in srgb, var(--vnex-border, #e4e4e7) 85%, transparent);
    background: color-mix(in srgb, var(--vnex-card, #fff) 92%, transparent);
    box-shadow: 0 1px 4px color-mix(in srgb, black 5%, transparent);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
    position: relative;
}

.dark .vnex-action-center__item,
html.dark .vnex-action-center__item {
    background: color-mix(in srgb, #18181b 88%, #09090b);
    border-color: #2a2a2e;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.28);
}

.vnex-action-center__item::before {
    content: "";
    position: absolute;
    inset-block: 0.7rem;
    inset-inline-start: 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--vnex-blue, #4f6ef5);
    opacity: 0.75;
}

.vnex-action-center__item.is-danger::before {
    background: #ef4444;
}

.vnex-action-center__item.is-warning::before {
    background: #f59e0b;
}

.vnex-action-center__item.is-info::before {
    background: #38bdf8;
}

.vnex-action-center__item.is-success::before {
    background: #22c55e;
}

.vnex-action-center__item.is-gray::before {
    background: #a1a1aa;
}

.vnex-action-center__item:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 32%, var(--vnex-border, #e4e4e7));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--vnex-blue, #4f6ef5) 12%, transparent);
}

.dark .vnex-action-center__item:hover,
html.dark .vnex-action-center__item:hover {
    border-color: color-mix(in srgb, #60a5fa 40%, #27272a);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
    background: #1c1c20;
}

.vnex-action-center__item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.75rem;
    flex-shrink: 0;
    color: var(--vnex-blue-bright, #4f6ef5);
    background: color-mix(in srgb, var(--vnex-blue, #4f6ef5) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--vnex-blue, #4f6ef5) 22%, transparent);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--vnex-blue, #4f6ef5) 10%, transparent);
}

.vnex-action-center__item.is-danger .vnex-action-center__item-icon {
    color: #ef4444;
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.28);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.12);
}

.vnex-action-center__item.is-warning .vnex-action-center__item-icon {
    color: #f59e0b;
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.28);
}

.vnex-action-center__item.is-info .vnex-action-center__item-icon {
    color: #0ea5e9;
    background: rgba(14, 165, 233, 0.12);
    border-color: rgba(14, 165, 233, 0.28);
}

.dark .vnex-action-center__item.is-danger .vnex-action-center__item-icon,
html.dark .vnex-action-center__item.is-danger .vnex-action-center__item-icon {
    color: #f87171;
}

.vnex-action-center__item-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.vnex-action-center__kind {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vnex-muted, #71717a);
}

.dark .vnex-action-center__kind,
html.dark .vnex-action-center__kind {
    color: #a1a1aa;
}

.vnex-action-center__title {
    font-size: 0.92rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: var(--vnex-fg, #18181b);
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dark .vnex-action-center__title,
html.dark .vnex-action-center__title {
    color: #fafafa;
}

.vnex-action-center__sub {
    font-size: 0.8rem;
    color: var(--vnex-muted, #71717a);
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dark .vnex-action-center__sub,
html.dark .vnex-action-center__sub {
    color: #a1a1aa;
}

.vnex-action-center__item-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.vnex-action-center__due {
    display: inline-flex;
    align-items: center;
    max-width: 11rem;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--vnex-muted, #71717a);
    background: color-mix(in srgb, var(--vnex-border, #e4e4e7) 55%, transparent);
    border: 1px solid color-mix(in srgb, var(--vnex-border, #e4e4e7) 80%, transparent);
}

.vnex-action-center__due.is-danger {
    color: #b91c1c;
    background: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.28);
}

.vnex-action-center__due.is-warning {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(245, 158, 11, 0.3);
}

.dark .vnex-action-center__due,
html.dark .vnex-action-center__due {
    color: #a1a1aa;
    background: rgba(63, 63, 70, 0.45);
    border-color: #3f3f46;
}

.dark .vnex-action-center__due.is-danger,
html.dark .vnex-action-center__due.is-danger {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.16);
    border-color: rgba(248, 113, 113, 0.35);
}

.dark .vnex-action-center__due.is-warning,
html.dark .vnex-action-center__due.is-warning {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.16);
    border-color: rgba(251, 191, 36, 0.32);
}

.vnex-action-center__item-chevron {
    display: inline-flex;
    color: color-mix(in srgb, var(--vnex-muted, #71717a) 75%, transparent);
    opacity: 0.7;
    transition: transform 0.15s ease, opacity 0.15s ease, color 0.15s ease;
}

html[dir="rtl"] .vnex-action-center__item-chevron {
    transform: scaleX(-1);
}

.vnex-action-center__item:hover .vnex-action-center__item-chevron {
    opacity: 1;
    color: var(--vnex-blue, #4f6ef5);
    transform: translateX(2px);
}

html[dir="rtl"] .vnex-action-center__item:hover .vnex-action-center__item-chevron {
    transform: scaleX(-1) translateX(2px);
}

@media (max-width: 640px) {
    .vnex-action-center__item {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 0.65rem;
    }

    .vnex-action-center__item-meta {
        grid-column: 2;
        justify-content: space-between;
        width: 100%;
    }

    .vnex-action-center__due {
        max-width: none;
    }

    .vnex-action-center__title,
    .vnex-action-center__sub {
        white-space: normal;
    }
}

/* Sidebar storage quota — align with Action Center card language */
.vnex-module-sidebar--pro .vnex-nav-quota {
    border-radius: 1rem;
    padding: 0.9rem 0.95rem;
    border: 1px solid color-mix(in srgb, var(--vnex-vfm-sidebar-border, #e4e4e7) 85%, transparent);
    background:
        linear-gradient(
            155deg,
            color-mix(in srgb, var(--vnex-vfm-card, #fff) 92%, white) 0%,
            color-mix(in srgb, var(--vnex-vfm-elevated, #f4f4f5) 55%, var(--vnex-vfm-card, #fff)) 100%
        );
}

.dark .vnex-module-sidebar--pro .vnex-nav-quota,
html.dark .vnex-module-sidebar--pro .vnex-nav-quota {
    border-color: #2a2a2e;
    background:
        linear-gradient(155deg, rgba(39, 39, 42, 0.55) 0%, rgba(24, 24, 27, 0.85) 100%);
}

.vnex-module-sidebar--pro .vnex-nav-quota__head {
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--vnex-vfm-muted, #71717a);
}

.vnex-module-sidebar--pro .vnex-nav-quota__head strong {
    font-size: 0.88rem;
    letter-spacing: -0.02em;
    text-transform: none;
    color: var(--vnex-vfm-text, #18181b);
}

.dark .vnex-module-sidebar--pro .vnex-nav-quota__head strong,
html.dark .vnex-module-sidebar--pro .vnex-nav-quota__head strong {
    color: #fafafa;
}

.vnex-module-sidebar--pro .vnex-nav-quota__meta {
    margin: 0.35rem 0 0.65rem;
    font-size: 0.74rem;
    font-weight: 600;
}
