/* Realtime in-panel notification inbox. */
.panel-notification-wrap { position: relative; margin-left: auto; }
.panel-notification-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--border-medium, #2b3244); border-radius: 8px; background: transparent; color: var(--text-secondary, #b8c8e8); cursor: pointer; }
.panel-notification-btn:hover { color: var(--text-primary, #fff); background: var(--bg-hover, rgba(255,255,255,.06)); }
.panel-notification-btn svg { width: 18px; height: 18px; }
.panel-notification-badge { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: #ef4444; color: #fff; font-size: 10px; font-weight: 700; line-height: 16px; }
.panel-notification-menu { position: absolute; z-index: 2500; top: calc(100% + 8px); right: 0; width: min(340px, 88vw); max-height: 360px; overflow: auto; padding: 10px; border: 1px solid var(--border-medium, #2b3244); border-radius: 10px; background: var(--bg-dark, #0a1019); box-shadow: 0 16px 36px rgba(0,0,0,.45); }
.panel-notification-title { margin: 2px 4px 8px; color: var(--text-muted, #8a9ec4); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.panel-notification-list { display: grid; gap: 6px; }
.panel-notification-item { display: grid; gap: 3px; width: 100%; padding: 10px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--text-primary, #fff); text-align: left; cursor: pointer; }
.panel-notification-item:hover, .panel-notification-item.is-unread { border-color: var(--border-medium, #2b3244); background: var(--bg-hover, rgba(255,255,255,.06)); }
.panel-notification-item span, .panel-notification-empty { color: var(--text-muted, #8a9ec4); font-size: 12px; line-height: 1.35; }
/* =============================================
   AVID MULTITOOL - Professional UI Stylesheet
   ============================================= */

:root {
    --bg-base: #070d17;
    --bg-dark: #0a1019;
    --bg-medium: #0e1624;
    --bg-light: #141e30;
    --bg-card: #111a28;
    --border-subtle: rgba(91, 127, 194, 0.18);
    --border-medium: rgba(91, 127, 194, 0.32);
    --text-primary: #eef4ff;
    --text-secondary: #b8c8e8;
    --text-muted: #8a9ec4;
    /* Primary UI accent (tabs, icons, table headers, hovers) */
    --accent-primary: #ed913a;
    --accent-hover: #f5a85c;
    --status-success: #27ae60;
    --status-warning: #f39c12;
    --status-danger: #e74c3c;
    --status-info: #3498db;
    --status-purple: #9b59b6;
    --status-orange: #e67e22;
    /* Toolbar rows: search, filters, primary actions (Database, Turnovers) */
    --toolbar-control-height: 36px;
    /* Unified tooltip text (native title replaced by JS + CSS tooltips) */
    --tooltip-font-size: 18px;
    --tooltip-line-height: 1.35;
    --tooltip-max-width: min(420px, calc(100vw - 24px));
}

html {
    height: 100%;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    margin: 0;
    padding: 12px;
    background:
        radial-gradient(900px 500px at 10% -10%, rgba(45, 112, 255, 0.18), transparent 60%),
        radial-gradient(700px 500px at 90% 110%, rgba(85, 60, 220, 0.12), transparent 60%),
        var(--bg-base);
    color: var(--text-primary);
    font-size: 15px;
    line-height: 1.4;
    overscroll-behavior: none;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.container {
    opacity: 0;
    transition: opacity 0.16s ease;
}

body.app-initializing .container {
    pointer-events: none;
}

body.app-ready .container {
    opacity: 1;
}

body.app-leaving .container {
    opacity: 0;
    pointer-events: none;
}

#workspace-picker-screen .workspace-auth-row {
    display: none !important;
}

.subtitle {
    text-align: center;
    color: var(--text-muted);
    margin: 0 0 12px 0;
    font-size: 0.85em;
}

.seq-name-hint {
    color: var(--text-muted);
    font-size: 0.9em;
}

/* =============================================
   SETTINGS BUTTON
   ============================================= */

/* Toolbar buttons in results header */
.toolbar-buttons {
    display: flex;
    gap: 6px;
    align-items: center;
}

.context-menu {
    position: fixed;
    z-index: 10000;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    padding: 6px 0;
    min-width: 200px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}

.context-menu-item {
    width: 100%;
    background: none;
    border: none;
    color: #eee;
    text-align: left;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 0.9em;
}

.context-menu-item:hover {
    background: var(--bg-light);
}

.toolbar-btn {
    width: 34px;
    height: 34px;
    padding: 6px;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
}

.toolbar-btn:hover {
    background: var(--bg-light);
    color: var(--text-primary);
    border-color: var(--text-muted);
}

.toolbar-btn svg {
    width: 16px;
    height: 16px;
}

/* =============================================
   NAV LOGO (small logo in the tabs navigation bar)
   ============================================= */

.nav-logo {
    height: 32px;
    width: auto;
    flex-shrink: 0;
    margin-right: 4px;
    align-self: center;
}

.ligo-tool-chooser-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
}

.ligo-tool-chooser-btn img {
    width: auto;
    height: 22px;
    object-fit: contain;
    display: block;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

.ligo-tool-chooser-btn:hover {
    background: var(--bg-card);
    border-color: var(--border-medium);
}

.ligo-app-switcher {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.ligo-app-switcher::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 10px;
}

.ligo-app-switcher-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 194px;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid var(--border-medium);
    background: rgba(20, 20, 20, 0.96);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
    display: none;
    flex-direction: column;
    gap: 6px;
    z-index: 120;
}

.ligo-app-switcher:hover .ligo-app-switcher-menu,
.ligo-app-switcher:focus-within .ligo-app-switcher-menu {
    display: flex;
}

.ligo-app-switcher-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-primary);
    text-decoration: none;
}

.ligo-app-switcher-link:hover {
    border-color: var(--accent-primary);
    background: rgba(237, 145, 58, 0.12);
}

.ligo-app-switcher-link img {
    max-width: 170px;
    max-height: 44px;
    width: auto;
    height: auto;
    display: block;
}

.ligo-app-switcher-link-fallback {
    font-size: 0.86em;
    font-weight: 600;
    letter-spacing: 0.01em;
}

/* =============================================
   TAB EMPTY STATE LOGO
   (centered watermark logo when tab content is empty)
   ============================================= */

.tab-empty-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 48px 0;
    pointer-events: none;
    user-select: none;
}

.tab-empty-logo img {
    width: auto;
    max-width: min(92%, 480px);
    height: auto;
    opacity: 0.5;
}

/* Current Work: hide when results header is visible (flex) */
#results-area:has(#results-header[style*="flex"]) .tab-empty-logo {
    display: none;
}

/* Database: hide when a database is selected (project-view-header shown) */
.project-main:has(#project-view-header[style*="block"]) .tab-empty-logo {
    display: none;
}

/* Turnovers: hide when actual card list exists in results */
#turnovers-results:has(.turnovers-card-list) ~ .tab-empty-logo {
    display: none;
}

h2 {
    color: var(--text-secondary);
    font-size: 0.9em;
    font-weight: 500;
    margin: 12px 0 8px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* =============================================
   FPS SELECTOR
   ============================================= */

.fps-selector-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    margin-bottom: 12px;
    padding: 8px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-subtle);
    border-radius: 6px;
}

.fps-workspace-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 14px;
    padding-right: 14px;
    border-right: 1px solid var(--border-subtle);
    min-width: 0;
}

.fps-selector-row label {
    font-size: 0.85em;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.3px;
}

.fps-display {
    display: inline;
    min-width: 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    color: var(--text-secondary);
    font-size: 0.95em;
    font-weight: 600;
    cursor: default;
    user-select: text;
}

/* VFX Prefix Group */
.vfx-prefix-group {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 10px;
    padding-left: 10px;
    border-left: 1px solid var(--border-subtle);
}

.vfx-prefix-group label {
    font-size: 0.85em;
    font-weight: 600;
    color: var(--text-secondary);
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.vfx-prefix-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
}

.vfx-prefix-input-wrapper input {
    padding: 6px 10px;
    background: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.95em;
    font-weight: 600;
    width: 80px;
    text-align: center;
    transition: all 0.15s ease;
}

.vfx-prefix-input-wrapper input:hover {
    border-color: var(--text-muted);
    background-color: var(--bg-light);
}

.vfx-prefix-input-wrapper input:focus {
    outline: none;
    border-color: var(--accent-primary);
}

.info-icon-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
    cursor: help;
}

.info-icon {
    width: 20px;
    height: 20px;
    color: #6c9bd1; /* Celeste/blu più visibile */
    transition: all 0.2s ease;
    filter: drop-shadow(0 0 2px rgba(108, 155, 209, 0.3));
}

.info-icon-wrapper:hover .info-icon {
    color: var(--accent-primary);
    transform: scale(1.1);
    filter: drop-shadow(0 0 4px rgba(108, 155, 209, 0.5));
}

/* Floating tooltips for [title] — see setupGlobalTitleTooltips() */
.shottrace-tooltip-floating {
    position: fixed;
    z-index: 99999;
    max-width: var(--tooltip-max-width);
    padding: 10px 14px;
    background: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: var(--tooltip-font-size);
    line-height: var(--tooltip-line-height);
    white-space: normal;
    word-wrap: break-word;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
    pointer-events: none;
}

.info-tooltip {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 8px;
    padding: 10px 14px;
    background: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: var(--tooltip-font-size);
    line-height: var(--tooltip-line-height);
    white-space: normal;
    width: min(280px, var(--tooltip-max-width));
    max-width: var(--tooltip-max-width);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 10000;
}

.info-tooltip::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-bottom-color: var(--bg-dark);
}

.info-icon-wrapper:hover .info-tooltip,
.info-icon-wrapper:focus-within .info-tooltip,
.info-icon-wrapper.active .info-tooltip {
    opacity: 1;
    visibility: visible;
}

/* =============================================
   SETTINGS MODAL
   ============================================= */

.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    align-items: center;
    justify-content: center;
}

.modal.active {
    display: flex;
}

.modal-content {
    background: var(--bg-medium);
    border: 1px solid var(--border-medium);
    border-radius: 8px;
    width: 90%;
    max-width: 450px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-subtle);
}

.modal-header h3 {
    margin: 0;
    font-size: 1.1em;
    color: var(--text-primary);
}

.modal-close {
    background: transparent;
    border: none;
    color: var(--text-muted);
    font-size: 24px;
    cursor: pointer;
    padding: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

.modal-close:hover {
    background: rgba(231, 76, 60, 0.1);
    color: var(--status-danger);
}

.modal-body {
    padding: 16px;
    overflow-y: auto;
    flex: 1;
}

.setting-group {
    margin-bottom: 16px;
}

.setting-group label {
    display: block;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
    font-size: 0.9em;
}

.setting-hint {
    color: var(--text-muted);
    font-size: 0.8em;
    margin: 0 0 8px 0;
}

.setting-group input[type="text"] {
    width: 100%;
    padding: 10px 12px;
    background: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.9em;
    box-sizing: border-box;
}

.setting-group input:focus {
    outline: none;
    border-color: var(--accent-primary);
    background: var(--bg-medium);
}

.setting-group input::placeholder {
    color: var(--text-muted);
}

.btn-browse {
    background: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    padding: 10px 14px;
    font-size: 0.85em;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s ease;
}

.btn-browse:hover {
    background: var(--accent-primary);
    color: #fff;
    border-color: var(--accent-primary);
}

.settings-info {
    color: var(--text-secondary);
    font-size: 0.9em;
    margin: 0 0 12px 0;
    line-height: 1.5;
}

.btn-secondary {
    background: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-medium);
    padding: 8px 16px;
    font-size: 0.9em;
    font-weight: 500;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.btn-secondary:hover {
    background: var(--bg-medium);
    border-color: var(--text-muted);
}

.modal-footer {
    padding: 12px 16px;
    border-top: 1px solid var(--border-subtle);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.btn-primary {
    background: var(--accent-primary);
    color: #fff;
    padding: 8px 16px;
    font-size: 0.9em;
    font-weight: 500;
}

.btn-primary:hover {
    background: var(--accent-hover);
}

/* =============================================
   RESULTS HEADER & EXPORT
   ============================================= */

#results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    gap: 12px;
}

#results-header #comparison-status {
    flex: 1;
    margin-bottom: 0;
}

.export-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #f0a050 0%, #ed913a 100%);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 8px 14px;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.export-btn:hover {
    background: linear-gradient(180deg, #ffc078 0%, #eb8a2e 100%);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(237, 145, 58, 0.35);
}

.export-btn svg {
    width: 16px;
    height: 16px;
}

.row-index-header,
.row-index-cell {
    width: 36px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85em;
    white-space: nowrap;
}

/* Create List save-selection checkboxes ("Add to Database" shot picker) */
.row-select-header,
.row-select-cell {
    width: 30px;
    min-width: 30px;
    text-align: center;
    white-space: nowrap;
}

.row-select-cell input[type="checkbox"],
.row-select-header input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
    accent-color: var(--accent, #4a9eff);
}

/* =============================================
   DROP AREAS
   ============================================= */

.input-group {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}

.drop-box-wrapper {
    flex: 1;
    position: relative;
}

#drop-area, #drop-area-old {
    border: 2px solid var(--border-medium);
    border-radius: 6px;
    padding: 14px 40px 14px 16px;
    text-align: center;
    background-color: var(--bg-card);
    color: var(--text-secondary);
    transition: all 0.2s ease;
    cursor: pointer;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#drop-area:hover, #drop-area-old:hover {
    border-color: var(--text-muted);
    background-color: var(--bg-light);
}

#drop-area.dragover, #drop-area-old.dragover {
    background-color: rgba(237, 145, 58, 0.12);
    border-color: var(--accent-primary);
    border-style: dashed;
    color: #fff;
}

#drop-area.loaded, #drop-area-old.loaded {
    background: linear-gradient(135deg, #2d2418 0%, #4a3520 100%);
    border-color: var(--accent-primary);
    color: var(--status-success);
}

#drop-area p, #drop-area-old p {
    margin: 0;
    font-size: 0.9em;
    line-height: 1.4;
}

#drop-area strong, #drop-area-old strong {
    color: #fff;
    font-size: 0.9em;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.click-hint {
    color: var(--accent-primary);
    font-size: 0.85em;
    text-decoration: underline;
    text-decoration-style: dotted;
}

/* =============================================
   RESET BUTTONS (Professional Style)
   ============================================= */

.reset-btn {
    position: absolute;
    top: 6px;
    right: 6px;
    width: auto;
    height: auto;
    padding: 4px 7px;
    background: rgba(231, 76, 60, 0.12);
    border: 1px solid rgba(231, 76, 60, 0.4);
    color: #e87c6d;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    z-index: 10;
    border-radius: 5px;
    transition: all 0.2s ease;
}

.reset-btn:hover {
    color: #fff;
    background-color: rgba(231, 76, 60, 0.55);
    border-color: rgba(231, 76, 60, 0.8);
}

.reset-btn svg {
    width: 16px;
    height: 16px;
    stroke-width: 2;
}

.reset-btn span {
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* =============================================
   REFRESH BUTTONS
   ============================================= */

@keyframes spin-icon {
    from { transform: rotate(0deg); }
    to   { transform: rotate(-360deg); }
}

.refresh-btn {
    position: absolute;
    top: 50px;
    right: 6px;
    width: auto;
    height: auto;
    padding: 4px 7px;
    background: rgba(74, 158, 255, 0.1);
    border: 1px solid rgba(74, 158, 255, 0.35);
    color: #6ab3ff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    z-index: 10;
    border-radius: 5px;
    transition: all 0.2s ease;
}

.refresh-btn:hover {
    color: #fff;
    background-color: rgba(74, 158, 255, 0.45);
    border-color: rgba(74, 158, 255, 0.8);
}

.refresh-btn:disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
}

.refresh-btn svg {
    width: 16px;
    height: 16px;
    stroke-width: 2;
}

.refresh-btn span {
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.refresh-btn--loading svg {
    animation: spin-icon 0.8s linear infinite;
}

/* =============================================
   RESULTS AREA
   ============================================= */

#results-area {
    background-color: var(--bg-medium);
    border-radius: 6px;
    padding: 10px;
    border: 1px solid var(--border-subtle);
}

/* =============================================
   COMPARISON STATUS
   ============================================= */

#comparison-status {
    background-color: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 5px;
    padding: 10px 12px;
    font-size: 0.9em;
    margin-bottom: 8px;
}

#comparison-status strong {
    font-size: 0.95em;
    letter-spacing: 0.3px;
}

/* =============================================
   VFX TABLE
   ============================================= */

.vfx-table-container {
    width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    max-height: calc(100vh - 400px);
    margin-top: 8px;
    border-radius: 5px;
    border: 1px solid var(--border-subtle);
    overscroll-behavior: contain;
}

.vfx-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 850px;
    background-color: var(--bg-card);
    color: var(--text-primary);
    font-size: 0.9em;
}

.vfx-table thead tr {
    background: linear-gradient(180deg, #f0a050 0%, #d97820 100%);
    color: #ffffff;
    text-align: left;
}

.vfx-table thead {
    position: sticky;
    top: 0;
    z-index: 10;
}

.vfx-table th {
    padding: 10px 12px;
    font-weight: 600;
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    border-bottom: none;
}

.sortable-header {
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s ease;
}

.sortable-header:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.sort-icon {
    margin-left: 4px;
    font-size: 0.8em;
    opacity: 0.7;
}

.sortable-header:hover .sort-icon {
    opacity: 1;
}

/* Sort button (quadratino) - only this button triggers sort, not the entire header */
.sort-button {
    width: 20px;
    height: 20px;
    padding: 0;
    margin-left: 4px;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    border-radius: 2px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    color: #333; /* Dark grey for better visibility */
    font-size: 12px;
    transition: background 0.2s, color 0.2s;
    flex-shrink: 0;
}

.sort-button:hover {
    background: rgba(255, 255, 255, 0.3);
    color: #555; /* Darker on hover */
}

.sort-button:active {
    background: rgba(255, 255, 255, 0.4);
}

/* Column drag and drop styles */
.vfx-table th[draggable="true"] {
    position: relative;
    cursor: move !important;
}

.vfx-table th[draggable="true"]:hover {
    background-color: rgba(255, 255, 255, 0.1);
    cursor: move !important;
}

.vfx-table th.drag-over {
    background-color: rgba(237, 145, 58, 0.3);
    border-left: 3px solid var(--accent-primary);
}

.vfx-table th[draggable="true"]:active {
    opacity: 0.6;
}

.vfx-table td {
    padding: 9px 12px;
    border-bottom: 1px solid var(--border-subtle);
}

.vfx-table tbody tr {
    transition: background-color 0.15s ease;
}

.vfx-table tbody tr:nth-of-type(even) {
    background-color: rgba(255, 255, 255, 0.02);
}

.vfx-table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

/* =============================================
   STILLS COLUMN
   ============================================= */

.col-stills {
    width: 120px;
    padding: 8px !important;
    text-align: center;
    vertical-align: middle;
}

.still-placeholder {
    width: 100px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    font-size: 0.8em;
    background-color: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
}

.vfx-still-thumbnail {
    width: 100px;
    height: auto;
    max-height: 80px;
    object-fit: contain;
    border-radius: 4px;
    border: 1px solid var(--border-medium);
    background-color: var(--bg-dark);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vfx-still-thumbnail:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
    z-index: 10;
    position: relative;
}

/* Increase row height when it has a still */
.vfx-table tbody tr.has-still {
    min-height: 100px;
}

.vfx-table tbody tr.has-still td {
    padding: 12px;
    vertical-align: middle;
}

/* =============================================
   CLICKABLE ROWS (Timeline Navigation)
   ============================================= */

.clickable-row {
    cursor: pointer;
    transition: all 0.12s ease;
}

.clickable-row:hover {
    background-color: rgba(100, 180, 240, 0.08) !important;
}

.clickable-row:active {
    background-color: rgba(100, 180, 240, 0.15) !important;
}

.clickable-row.navigating {
    background-color: rgba(100, 180, 240, 0.2) !important;
    animation: nav-pulse 0.4s ease;
}

@keyframes nav-pulse {
    0% { box-shadow: inset 0 0 0 0 rgba(100, 180, 240, 0.3); }
    50% { box-shadow: inset 0 0 0 2px rgba(100, 180, 240, 0.3); }
    100% { box-shadow: inset 0 0 0 0 rgba(100, 180, 240, 0); }
}

/* MISSING rows - not clickable */
.status-row-missing.clickable-row {
    cursor: not-allowed;
    opacity: 0.5;
}

.status-row-missing.clickable-row:hover {
    background-color: inherit !important;
}

/* =============================================
   COLUMN STYLES
   ============================================= */

.col-shot-name {
    font-weight: 600;
    color: var(--status-success);
    font-family: "SF Mono", Monaco, monospace;
    font-size: 0.95em;
}

.col-status {
    text-align: center;
    white-space: nowrap;
}

.col-duplicate {
    text-align: center;
    white-space: nowrap;
    width: 64px;
}

.duplicate-indicator {
    color: var(--status-orange);
    font-weight: 700;
    font-size: 1.25em;
    line-height: 1;
}

/* =============================================
   DUPLICATE RESOLUTION UI
   ============================================= */

.duplicate-bubble {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 2px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--status-orange);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}

.duplicate-bubble:hover {
    background: rgba(230, 126, 34, 0.15);
    transform: scale(1.12);
}

/* Stacked-cards icon: back card is an outline peeking top-right,
   front card is filled and carries the instance count */
.dup-count-icon {
    position: relative;
    display: inline-flex;
    padding-top: 4px;
    padding-right: 4px;
    line-height: 0;
}

.dup-count-card-back {
    position: absolute;
    top: 0;
    right: 0;
    width: calc(100% - 4px);
    height: calc(100% - 4px);
    border: 1.6px solid currentColor;
    border-radius: 4px;
    box-sizing: border-box;
}

.dup-count-card-front {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    box-sizing: border-box;
    background: currentColor;
    border-radius: 4px;
}

.dup-count-num {
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.duplicate-bubble-kept {
    color: var(--status-success);
}

.duplicate-bubble-kept:hover {
    background: rgba(39, 174, 96, 0.15);
}

.duplicate-bubble-merged {
    color: var(--status-purple);
}

.duplicate-bubble-merged:hover {
    background: rgba(155, 89, 182, 0.15);
}

.duplicate-bubble-ignored {
    color: var(--text-muted);
    font-size: 14px;
}

.duplicate-bubble-ignored:hover {
    background: rgba(138, 158, 196, 0.15);
}

.duplicate-expander {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 22px;
    margin-left: 2px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text-muted);
    font-size: 11px;
    cursor: pointer;
    transition: color 0.15s ease;
}

.duplicate-expander:hover {
    color: var(--text-primary);
    background: transparent;
}

/* Ignored duplicate rows: dimmed but still readable/clickable */
.status-row-duplicate-ignored {
    opacity: 0.42;
    border-left: 3px solid var(--text-muted) !important;
}

.status-row-duplicate-ignored:hover {
    opacity: 0.7;
}

.status-row-duplicate-merged {
    background-color: rgba(155, 89, 182, 0.08) !important;
    border-left: 3px solid var(--status-purple);
}

/* Cascading choice menu */
.duplicate-choice-menu {
    position: fixed;
    z-index: 12000;
    min-width: 260px;
    max-width: 340px;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.55);
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.duplicate-choice-title {
    padding: 6px 10px 8px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 4px;
    word-break: break-all;
}

.duplicate-choice-option {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    padding: 8px 10px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    transition: background 0.12s ease;
}

.duplicate-choice-option:hover:not(:disabled) {
    background: rgba(237, 145, 58, 0.14);
}

.duplicate-choice-option:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.duplicate-choice-option.active {
    background: rgba(237, 145, 58, 0.2);
    box-shadow: inset 2px 0 0 var(--accent-primary);
}

.duplicate-choice-label {
    font-size: 13px;
    font-weight: 600;
}

.duplicate-choice-desc {
    font-size: 11px;
    font-weight: 400;
    color: var(--text-muted);
    line-height: 1.35;
}

.duplicate-choice-warning {
    font-size: 11px;
    font-weight: 500;
    color: var(--status-warning);
    line-height: 1.35;
    margin-top: 2px;
}

/* Expander sub-row with the group's instances */
.duplicate-detail-row > td {
    background: rgba(10, 16, 25, 0.6);
    padding: 0 0 10px 0;
    border-bottom: 1px solid var(--border-subtle);
}

.duplicate-detail-box {
    margin: 4px 12px 4px 24px;
    padding: 8px 10px;
    border: 1px solid var(--border-subtle);
    border-left: 3px solid var(--status-orange);
    border-radius: 6px;
    background: var(--bg-medium);
    overflow-x: auto;
}

.duplicate-detail-title {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-secondary);
    margin-bottom: 6px;
}

.duplicate-detail-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}

.duplicate-detail-table th {
    text-align: left;
    /* White on the orange gradient inherited from .vfx-table thead tr */
    color: #ffffff;
    font-weight: 700;
    padding: 3px 8px 3px 0;
    border-bottom: 1px solid var(--border-subtle);
    white-space: nowrap;
}

.duplicate-detail-table td {
    padding: 3px 8px 3px 0;
    color: var(--text-secondary);
    white-space: nowrap;
    border-bottom: 1px solid rgba(91, 127, 194, 0.08);
}

.duplicate-detail-instance.duplicate-detail-ignored td {
    color: var(--text-muted);
    text-decoration: line-through;
    text-decoration-color: rgba(138, 158, 196, 0.5);
}

/* Instances are clickable: they move the timeline cursor to their position */
.duplicate-detail-instance.clickable-instance {
    cursor: pointer;
    transition: background 0.12s ease;
}

.duplicate-detail-instance.clickable-instance:hover td {
    background: rgba(230, 126, 34, 0.10);
}

.duplicate-detail-pill {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 8px;
    background: rgba(39, 174, 96, 0.18);
    color: var(--status-success);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

/* Warning/confirm dialog for duplicate resolution */
.duplicate-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 13000;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
}

.duplicate-dialog {
    width: min(440px, calc(100vw - 40px));
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.6);
    padding: 18px;
}

.duplicate-dialog-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--status-warning);
    margin-bottom: 10px;
}

.duplicate-dialog-message {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
    white-space: pre-line;
    margin-bottom: 16px;
}

.duplicate-dialog-buttons {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.duplicate-dialog-btn {
    padding: 7px 14px;
    border-radius: 6px;
    border: 1px solid var(--border-medium);
    background: transparent;
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease;
}

.duplicate-dialog-btn:hover {
    background: rgba(138, 158, 196, 0.15);
}

.duplicate-dialog-btn.primary {
    background: var(--accent-primary);
    border-color: var(--accent-primary);
    color: #fff;
}

.duplicate-dialog-btn.primary:hover {
    background: var(--accent-hover);
}

.col-description {
    font-style: italic;
    color: var(--text-secondary);
    min-width: 200px;
    max-width: 500px;
    white-space: normal;
    word-wrap: break-word;
    line-height: 1.4;
}

.col-description.has-still {
    white-space: normal;
    word-wrap: break-word;
    line-height: 1.4;
}

/* Source Clip column - resizable */
.col-source-clip {
    min-width: 150px;
    max-width: 400px;
    white-space: normal;
    word-wrap: break-word;
    line-height: 1.4;
}

/* Resizable column handle */
.resizable-column {
    position: relative;
}

.resizable-handle {
    position: absolute;
    top: 0;
    right: -4px;
    width: 12px;
    height: 100%;
    cursor: col-resize !important;
    background-color: rgba(255, 255, 255, 0.1);
    z-index: 1000;
    border-right: 2px solid rgba(255, 255, 255, 0.3);
    padding: 0 4px;
    box-sizing: border-box;
}

.resizable-handle:hover {
    background-color: rgba(255, 255, 255, 0.4);
    border-right-color: rgba(255, 255, 255, 0.6);
    cursor: col-resize !important;
}

.resizable-handle.resizing {
    background-color: rgba(255, 255, 255, 0.6);
    border-right-color: rgba(255, 255, 255, 0.9);
    cursor: col-resize !important;
}

/* Prevent drag cursor on resizable columns when hovering over handle */
.resizable-column:hover .resizable-handle {
    cursor: col-resize !important;
}

.resizable-column th[draggable="true"]:hover {
    cursor: move !important;
}

.resizable-column th[draggable="true"]:hover .resizable-handle {
    cursor: col-resize !important;
}

/* =============================================
   STATUS BADGES
   ============================================= */

.status-badge {
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.7em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    display: inline-block;
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3),
        0 2px 5px rgba(0, 0, 0, 0.35);
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);
}

.status-badge-stack {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-start;
}

.status-pending {
    background: linear-gradient(180deg, #f5a623 0%, #e67e22 100%);
    color: #fff;
}

.status-match {
    background: linear-gradient(180deg, #2ecc71 0%, #27ae60 100%);
    color: #fff;
}

.status-trim {
    background: linear-gradient(180deg, #f5a623 0%, #e67e22 100%);
    color: #fff;
}

.status-new {
    background: linear-gradient(180deg, #5dade2 0%, #3498db 100%);
    color: #fff;
}

.status-new-version {
    background: linear-gradient(180deg, #8e6aaa 0%, #6a4a8a 100%);
    color: #fff;
}

.status-old-version {
    background: linear-gradient(180deg, #a97040 0%, #8b5a2b 100%);
    color: #fff;
}

.status-missing {
    background: linear-gradient(180deg, #ec7063 0%, #e74c3c 100%);
    color: #fff;
}

.status-omitted {
    background: linear-gradient(180deg, #ec7063 0%, #e74c3c 100%);
    color: #fff;
}

.omitted-shot-name {
    color: var(--status-danger);
    text-decoration: line-through;
}

.old-version-shot-name {
    color: #8b5a2b;
    text-decoration: line-through;
}

.status-moved {
    background: linear-gradient(180deg, #bb8fce 0%, #9b59b6 100%);
    color: #fff;
}

.status-duplicate {
    background: linear-gradient(180deg, #f0a070 0%, #e67e22 100%);
    color: #fff;
}

.status-custom {
    background: linear-gradient(180deg, #5dade2 0%, #3498db 100%);
    color: #fff;
}

/* ── Custom pill-style status dropdown ─────────────────────────── */

.status-custom-dropdown {
    position: fixed;
    z-index: 9999;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 12px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.6),
        0 2px 8px rgba(0, 0, 0, 0.35);
    min-width: 140px;
}

.status-dropdown-item {
    cursor: pointer;
    display: block;
    text-align: center;
    transition: opacity 0.12s ease, transform 0.1s ease;
    white-space: nowrap;
}

.status-dropdown-item:hover {
    opacity: 0.82;
    transform: scale(1.04);
}

.status-dropdown-item--current {
    outline: 2px solid rgba(255, 255, 255, 0.55);
    outline-offset: 2px;
}

.status-dropdown-divider {
    height: 1px;
    background: var(--border-subtle);
    margin: 2px 0;
}

/* CHANGE column badges: non-interactive → squared corners */
.col-change-readonly .status-badge {
    border-radius: 4px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        inset 0 -1px 0 rgba(0, 0, 0, 0.25),
        0 1px 3px rgba(0, 0, 0, 0.3);
    cursor: default;
}

/* Status dropdown (Change) should match badge colors */
.status-select.status-pending { background-color: var(--status-warning); color: #fff; }
.status-select.status-match { background-color: var(--status-success); color: #fff; }
.status-select.status-trim { background-color: var(--status-warning); color: #fff; }
.status-select.status-new { background-color: var(--status-info); color: #fff; }
.status-select.status-new-version { background-color: #6a4a8a; color: #fff; }
.status-select.status-old-version { background-color: #8b5a2b; color: #fff; }
.status-select.status-missing { background-color: var(--status-danger); color: #fff; }
.status-select.status-omitted { background-color: var(--status-danger); color: #fff; }
.status-select.status-moved { background-color: var(--status-purple); color: #fff; }
.status-select.status-duplicate { background-color: var(--status-orange); color: #fff; }
.status-select.status-custom { background-color: var(--status-info); color: #fff; }

/* Workflow Status (Project View only) */
.wf-status-pending {
    background: linear-gradient(180deg, #f5b942 0%, #f39c12 100%);
    color: #fff;
}

.wf-status-on-hold {
    background: linear-gradient(180deg, #c8c8c8 0%, #b0b0b0 100%);
    color: #111;
}

.wf-status-wip {
    background: linear-gradient(180deg, #99d0ff 0%, #7fbfff 100%);
    color: #111;
}

.wf-status-review {
    background: linear-gradient(180deg, #f4d03f 0%, #f1c40f 100%);
    color: #111;
}

.wf-status-rework {
    background: linear-gradient(180deg, #f0a070 0%, #e67e22 100%);
    color: #fff;
}

.wf-status-approved {
    background: linear-gradient(180deg, #2ecc71 0%, #27ae60 100%);
    color: #fff;
}

.wf-status-delivered {
    background: linear-gradient(180deg, #6a7be8 0%, #4b5bdc 100%);
    color: #fff;
}

.wf-status-omitted {
    background: linear-gradient(180deg, #ec7063 0%, #e74c3c 100%);
    color: #fff;
}

.wf-status-custom {
    background: linear-gradient(180deg, #5dade2 0%, #3498db 100%);
    color: #fff;
}

/* =============================================
   ROW STATUS HIGHLIGHTING
   ============================================= */

.status-row-trim {
    background-color: rgba(243, 156, 18, 0.06) !important;
    border-left: 3px solid var(--status-warning);
}

.status-row-up-version {
    background-color: rgba(243, 156, 18, 0.06) !important;
    border-left: 3px solid var(--status-warning);
}

.up-version-icon {
    color: var(--status-warning);
    font-weight: 700;
    font-size: 2em;
    line-height: 1;
    display: inline-block;
}

.status-row-new {
    background-color: rgba(52, 152, 219, 0.06) !important;
    border-left: 3px solid var(--status-info);
}

.status-row-missing {
    background-color: rgba(231, 76, 60, 0.06) !important;
    border-left: 3px solid var(--status-danger);
}

.status-row-missing .col-shot-name {
    text-decoration: line-through;
    color: var(--status-danger);
}

.status-row-moved {
    background-color: rgba(155, 89, 182, 0.06) !important;
    border-left: 3px solid var(--status-purple);
}

.status-row-duplicate {
    background-color: rgba(230, 126, 34, 0.08) !important;
    border-left: 3px solid var(--status-orange);
}

/* =============================================
   BUTTONS
   ============================================= */

button {
    font-family: inherit;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    background-color: var(--accent-primary);
    color: #fff;
    border: none;
    border-radius: 4px;
    transition: all 0.2s ease;
}

button:hover {
    background-color: var(--accent-hover);
}

button:disabled {
    background-color: var(--border-medium);
    cursor: not-allowed;
    opacity: 0.6;
}

/* =============================================
   SCROLLBAR STYLING
   ============================================= */

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: var(--bg-dark);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb {
    background: var(--border-medium);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-muted);
}

/* =============================================
   CREATE MARKERS BUTTON
   ============================================= */

.create-markers-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #6c5ce7 0%, #5a4bd9 100%);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 8px 14px;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.create-markers-btn:hover {
    background: linear-gradient(180deg, #7d71ea 0%, #6b5de7 100%);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(108, 92, 231, 0.3);
}

.create-markers-btn svg {
    width: 16px;
    height: 16px;
}

.add-vfx-subcaps-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #00b894 0%, #00897b 100%);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 8px 14px;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.add-vfx-subcaps-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #00cba3 0%, #00a08e 100%);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0, 184, 148, 0.35);
}

.add-vfx-subcaps-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.add-vfx-subcaps-btn svg {
    width: 16px;
    height: 16px;
}

.add-vfx-subcaps-btn.success {
    background: linear-gradient(180deg, #27ae60 0%, #219a52 100%);
}

/* VFX Subcaps modal */
.modal-vfx-subcaps {
    max-width: 480px;
}

.vfx-subcaps-options {
    flex-wrap: wrap;
    gap: 10px;
}

.vfx-subcaps-options .attach-stills-position-option span {
    font-size: 0.9em;
    line-height: 1.4;
}

.vfx-subcaps-options .attach-stills-position-option small {
    display: block;
    font-size: 0.78em;
    opacity: 0.65;
    margin-top: 2px;
}

.vfx-subcaps-warning {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    background: rgba(230, 126, 34, 0.12);
    border: 1px solid rgba(230, 126, 34, 0.4);
    border-radius: 6px;
    padding: 10px 12px;
    margin-bottom: 14px;
    font-size: 0.82em;
    color: #e67e22;
    line-height: 1.45;
}

.vfx-subcaps-warning svg {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    margin-top: 1px;
}

.attach-stills-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #e67e22 0%, #d35400 100%);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 8px 14px;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.attach-stills-btn:hover {
    background: linear-gradient(180deg, #f39c12 0%, #e67e22 100%);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(230, 126, 34, 0.3);
}

.attach-stills-btn svg {
    width: 16px;
    height: 16px;
}

.attach-stills-btn.success {
    background: linear-gradient(180deg, #27ae60 0%, #1e8449 100%);
}

.attach-stills-btn.error {
    background: linear-gradient(180deg, #e74c3c 0%, #c0392b 100%);
}

/* =============================================
   CREATE MARKERS MODAL
   ============================================= */

.modal-markers {
    max-width: 480px;
    max-height: 90vh;
    overflow-y: auto;
}

.modal-attach-stills-position {
    max-width: 360px;
}

.attach-stills-position-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.attach-stills-position-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    background: var(--bg-dark);
    cursor: pointer;
}

.attach-stills-position-option:hover {
    border-color: var(--accent-primary);
}

.attach-stills-position-option input[type="radio"] {
    margin: 0;
}

.marker-section {
    padding: 12px 0;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.section-header h4 {
    margin: 0;
    font-size: 0.95em;
    color: var(--text-primary);
    font-weight: 600;
    letter-spacing: 0.5px;
}

.shot-count {
    font-size: 0.8em;
    color: var(--text-muted);
    background: var(--bg-dark);
    padding: 2px 8px;
    border-radius: 10px;
}

.section-hint {
    color: var(--text-muted);
    font-size: 0.8em;
    margin: 0 0 12px 0;
}

.section-divider {
    height: 1px;
    background: var(--border-medium);
    margin: 12px 0;
}

/* Marker Options */
.marker-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}

.option-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.option-row label {
    width: 70px;
    font-size: 0.85em;
    color: var(--text-secondary);
    font-weight: 500;
}

.option-row select {
    flex: 1;
    padding: 8px 10px;
    background: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.85em;
    cursor: pointer;
}

.option-row select:hover {
    border-color: var(--text-muted);
}

.option-row select:focus {
    outline: none;
    border-color: var(--accent-primary);
}

/* Changelist Options */
.changelist-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 14px;
}

.change-type-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--bg-dark);
    border-radius: 4px;
}

.change-type-row.disabled .change-label.new {
    color: var(--text-muted);
}

/* Grey out only track/color dropdowns in the disabled NEW row, not the button */
.change-type-row.disabled #new-track,
.change-type-row.disabled #new-color {
    opacity: 0.6;
    color: var(--text-muted);
}

/* Load Changelist stays vibrant (no parent opacity): same impact as Magenta/Yellow labels */
.change-type-row.disabled #new-changelist-btn {
    opacity: 1;
    color: #fff;
    border-color: var(--accent-primary);
    background: var(--accent-primary);
}
.change-type-row.disabled #new-changelist-btn:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
}

.change-label {
    width: 100px;
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.change-label.new { color: var(--status-info); }
.change-label.new-version { color: #6a4a8a; }
.change-label.trim { color: var(--status-warning); }
.change-label.missing { color: var(--status-danger); }
.change-label.moved { color: var(--status-purple); }

.track-select, .color-select {
    padding: 6px 8px;
    background: var(--bg-medium);
    border: 1px solid var(--border-medium);
    border-radius: 3px;
    color: var(--text-primary);
    font-size: 0.8em;
    cursor: pointer;
}

.track-select {
    width: 55px;
}

.color-select {
    flex: 1;
}

.track-select:hover, .color-select:hover {
    border-color: var(--text-muted);
}

/* Create Markers Button */
.btn-create-markers {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 16px;
    background: linear-gradient(180deg, #6c5ce7 0%, #5a4bd9 100%);
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 0.9em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-create-markers:hover:not(:disabled) {
    background: linear-gradient(180deg, #7d71ea 0%, #6b5de7 100%);
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(108, 92, 231, 0.3);
}

.btn-create-markers:disabled {
    background: var(--bg-light);
    color: var(--text-muted);
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* =============================================
   TABS NAVIGATION
   ============================================= */

.tabs-navigation {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    border-bottom: 2px solid var(--border-medium);
    padding-bottom: 0;
}

.tab-button {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--text-secondary);
    font-size: 0.95em;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    margin-bottom: -2px;
}

.tab-button svg {
    width: 18px;
    height: 18px;
}

.tab-button:hover {
    color: var(--text-primary);
    background: var(--bg-card);
}

.tab-button.active {
    color: var(--accent-primary);
    border-bottom-color: var(--accent-primary);
    background: var(--bg-card);
}

.tab-button.workspace-locked {
    opacity: 0.25;
    pointer-events: none;
    cursor: default;
}

.tab-button.workspace-hidden {
    display: none;
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

/* Current Work: table manages its own scroll */
#tab-content-current.active {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

/* Database: sidebar/content manage their own scroll */
#tab-content-project.active {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

#tab-content-current .input-group {
    flex-shrink: 0;
}

#tab-content-current #results-area {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#tab-content-current #results-header {
    flex-shrink: 0;
}

#tab-content-current .vfx-table-container,
#tab-content-project .vfx-table-container {
    flex: 1;
    min-height: 0;
    max-height: none;
}

/* Side-by-side comparison: Previous Cut list on the left, Current Cut list on the right */
.toolbar-btn.is-active {
    background: rgba(237, 145, 58, 0.18);
    border-color: var(--accent-primary);
    color: var(--accent-primary);
}

.vfx-table-container.vfx-side-by-side {
    display: flex;
    gap: 10px;
    overflow: hidden;
    border: none;
    border-radius: 0;
}

.vfx-side-pane {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-subtle);
    border-radius: 5px;
    overflow: hidden;
}

.vfx-side-title {
    flex-shrink: 0;
    padding: 6px 10px;
    font-size: 0.85em;
    color: var(--text-secondary);
    background: var(--bg-card);
    border-bottom: 1px solid var(--border-subtle);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vfx-side-title strong {
    color: #fff;
    letter-spacing: 0.3px;
}

.vfx-side-count {
    color: var(--text-muted);
}

/* Both panes keep a horizontal scrollbar so their rows end at the same height. */
.vfx-side-scroll {
    flex: 1;
    min-height: 0;
    overflow-x: scroll;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.vfx-side-by-side .vfx-table th {
    padding: 4px 8px;
    font-size: 0.8em;
    white-space: nowrap;
}

.vfx-side-by-side .vfx-table th .sort-button {
    width: 16px;
    height: 16px;
    font-size: 10px;
}

.vfx-side-blank-row td {
    background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(255, 255, 255, 0.025) 6px 12px);
}

.vfx-side-by-side tr.vfx-side-selected td {
    background-color: rgba(237, 145, 58, 0.16) !important;
}

/* =============================================
   PROJECT VIEW
   ============================================= */

/* ─── Workspace Picker Screen ────────────────────────────────────── */
.workspace-picker-screen {
    position: relative;
    padding: 24px;
    max-width: 900px;
    margin: 0 auto;
}

.workspace-upload-overlay {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: 24px;
    background: rgba(10, 15, 22, 0.82);
    border-radius: 8px;
}

.workspace-upload-overlay-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 320px;
    padding: 24px;
    text-align: center;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

.workspace-upload-overlay .cloud-spinner-dot {
    width: 32px;
    height: 32px;
    border-width: 3px;
}

.workspace-upload-overlay p {
    margin: 0;
    color: var(--text-primary);
    font-size: 1.05em;
    font-weight: 600;
}

.workspace-upload-overlay span {
    color: var(--text-secondary);
    font-size: 0.9em;
}

.workspace-picker-header {
    margin-bottom: 24px;
}

.workspace-picker-header h2 {
    margin: 0 0 8px 0;
    font-size: 1.5em;
    color: var(--text-primary);
}

.workspace-auth-choice {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
}

/* Shown in the workspace grid when Ligo Helper (local workspaces) does not respond. */
.local-helper-warning {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 14px;
    border: 1px solid rgba(224, 160, 48, 0.5);
    border-radius: 8px;
    background: rgba(224, 160, 48, 0.08);
    color: #e0a030;
    font-size: 13px;
}

.workspace-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.workspace-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 140px;
    padding: 8px 12px 10px;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.workspace-card-actions {
    position: absolute;
    top: 4px;
    right: 4px;
    display: flex;
    gap: 6px;
    z-index: 2;
}

.workspace-card-actions .ws-card-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.65);
    color: var(--accent-primary);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.workspace-card-actions .ws-card-action svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.workspace-card-actions .ws-card-action:hover {
    background: rgba(237, 145, 58, 0.22);
    color: var(--accent-primary);
}

.workspace-card-actions .ws-card-action[data-action="delete"] {
    color: rgba(255, 255, 255, 0.9);
}

.workspace-card-actions .ws-card-action[data-action="delete"]:hover {
    background: var(--status-danger, #c44);
    color: #fff;
}

.ws-card-menu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.65);
    color: var(--accent-primary);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.ws-card-menu-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.ws-card-menu-btn:hover,
.ws-card-menu-btn.active {
    background: rgba(237, 145, 58, 0.22);
    color: var(--accent-primary);
}

/* Workspace card dropdown menu (built dynamically at click position) */
.ws-card-menu {
    position: fixed;
    z-index: 10000;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    padding: 6px 0;
    min-width: 200px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}

.ws-card-menu-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    background: none;
    border: none;
    color: var(--text-primary);
    text-align: left;
    padding: 9px 14px;
    cursor: pointer;
    font-size: 0.88em;
    white-space: nowrap;
}

.ws-card-menu-item svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    opacity: 0.85;
}

.ws-card-menu-item:hover {
    background: var(--bg-light);
}

.ws-card-menu-item[data-action="delete"] {
    color: var(--status-danger, #e05555);
}

.ws-card-menu-divider {
    height: 1px;
    margin: 6px 0;
    background: var(--border-medium);
}

/* Permissions modal list */

.workspace-card:hover {
    border-color: var(--accent-primary);
    background: rgba(237, 145, 58, 0.08);
}

.workspace-card-create-import {
    padding: 0;
    overflow: hidden;
}

.workspace-card-split-btn {
    width: 100%;
    flex: 1 1 50%;
    border: 0;
    background: transparent;
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    font-size: 0.9em;
    font-weight: 600;
}

.workspace-card-split-btn + .workspace-card-split-btn {
    border-top: 1px solid var(--border-medium);
}

.workspace-card-split-btn:hover {
    background: rgba(237, 145, 58, 0.12);
}

.workspace-card-split-btn svg {
    width: 20px;
    height: 20px;
}

.workspace-card-thumb {
    width: 100%;
    height: 84px;
    background: rgba(255,255,255,0.06);
    border-radius: 4px;
    margin-top: 28px;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.workspace-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.workspace-card-name {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 0.9em;
    line-height: 1.2;
    text-align: center;
    width: 100%;
    margin-top: 0;
}

/* Cloud badge on workspace cards (Home unified grid) */
.workspace-card-cloud-badge {
    position: absolute;
    bottom: 8px;
    left: 8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(56, 189, 248, 0.16);
    color: #38bdf8;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    pointer-events: none;
    border: 1px solid rgba(56, 189, 248, 0.45);
}

.workspace-card-cloud-badge svg {
    width: 14px;
    height: 14px;
}

/* "Shared with you" badge: cloud workspaces where the current user is not an owner.
   No pointer-events:none here (unlike the cloud badge) — the hover tooltip is the point. */

.workspace-auth-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    flex-wrap: wrap;
}

.home-cloud-auth-btn {
    padding: 8px 16px;
    border-radius: 6px;
    border: 1px solid var(--border-medium);
    background: var(--bg-card);
    color: var(--text-primary);
    font-size: 0.9em;
    cursor: pointer;
}

.home-cloud-auth-btn:hover {
    background: rgba(255,255,255,0.05);
    border-color: var(--accent-primary);
}

.home-cloud-auth-btn.signed-in {
    border-color: var(--accent-primary);
    color: var(--accent-primary);
}

.workspace-picker-actions {
    margin-top: 0;
    display: block;
}

.btn-import-workspace {
    padding: 10px 20px;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: 0.95em;
    cursor: pointer;
}

.btn-import-workspace:hover {
    background: rgba(255,255,255,0.05);
    border-color: var(--accent-primary);
}

.btn-new-workspace {
    padding: 10px 20px;
    background: var(--accent-primary);
    border: none;
    border-radius: 6px;
    color: #fff;
    font-size: 0.95em;
    cursor: pointer;
}

.btn-new-workspace:hover {
    filter: brightness(1.1);
}

/* Database grid (main area when no database selected) */
.database-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
    padding: 20px;
}

.database-card {
    display: flex;
    flex-direction: column;
    min-height: 180px;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    overflow: hidden;
}

.database-card:hover {
    border-color: var(--accent-primary);
    background: rgba(80, 200, 120, 0.08);
}

.database-view-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1;
}

#project-view-container {
    display: flex;
    gap: 0;
    flex: 1;
    min-height: 0;
}

/* ── Sidebar toggle button ─────────────────────── */
.sidebar-toggle-btn {
    flex-shrink: 0;
    width: 14px;
    align-self: stretch;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    padding: 0;
    margin: 0 8px 0 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.sidebar-toggle-btn:hover {
    background: var(--border-medium);
    color: var(--text-primary);
}

.sidebar-toggle-btn svg {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    transition: transform 0.25s ease;
}

/* Arrow flips when sidebar is collapsed */
.sidebar-toggle-btn.collapsed svg {
    transform: rotate(180deg);
}

/* Sidebar collapse animation */
.project-sidebar {
    transition: width 0.25s ease, padding 0.25s ease, opacity 0.2s ease,
                border-width 0.25s ease, margin 0.25s ease;
}

.project-sidebar.hidden {
    width: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    opacity: 0;
    border-width: 0 !important;
    margin: 0 !important;
}

/* Button gets flush left border when sidebar is open */
.project-sidebar:not(.hidden) + .sidebar-toggle-btn {
    border-left-color: transparent;
    border-radius: 0 4px 4px 0;
}

.project-sidebar-top-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}

.workspace-label {
    color: var(--text-secondary);
    font-size: 0.95em;
    flex-shrink: 0;
}

.current-workspace-name {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 1.02em;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-refresh-btn {
    width: 36px;
    height: 36px;
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    background: var(--bg-dark);
    color: var(--text-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.workspace-refresh-btn::before {
    content: none;
}

.workspace-refresh-icon {
    width: 18px !important;
    height: 18px !important;
    display: block;
    fill: currentColor;
}

.workspace-refresh-icon path {
    fill: currentColor;
}

.workspace-refresh-btn:hover {
    border-color: var(--accent-primary);
    color: var(--accent-primary);
    background: var(--bg-light);
}

.workspace-refresh-btn:disabled {
    opacity: 0.55;
    cursor: default;
}

.workspace-label-large {
    font-size: 0.96em;
    font-weight: 600;
}

.current-workspace-name-large {
    font-size: 1em;
    max-width: 260px;
}

.project-sidebar {
    width: 280px;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    padding: 0 16px 16px 16px;
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
}

.project-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding: 6px 0 10px 0;
    border-bottom: 1px solid var(--border-medium);
}

.project-header h3 {
    margin: 0;
    font-size: 1.1em;
    color: var(--text-primary);
}

.project-header-buttons {
    display: flex;
    gap: 6px;
    align-items: center;
}

.btn-new-project,
.btn-import-project {
    width: 32px;
    height: 32px;
    padding: 0;
    background: var(--accent-primary);
    border: none;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.btn-new-project:hover,
.btn-import-project:hover {
    background: var(--accent-hover);
    transform: scale(1.05);
}

.btn-new-project svg,
.btn-import-project svg {
    width: 18px;
    height: 18px;
}

.btn-invite-members {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--accent-primary);
    border: none;
    border-radius: 4px;
    color: #fff;
    font-size: 0.9em;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-invite-members:hover {
    background: var(--accent-hover);
}

.btn-invite-members svg {
    width: 16px;
    height: 16px;
}

.status-message {
    font-size: 0.9em;
    margin-top: 8px;
}

.projects-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.project-item {
    padding: 12px;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.project-description-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin-left: 6px;
    border-radius: 50%;
    border: 1px solid var(--border-medium);
    color: var(--text-primary);
    font-size: 11px;
    font-weight: 700;
    position: relative;
}

.project-item.active .project-description-icon {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.7);
}

.project-description-tooltip {
    position: absolute;
    bottom: 140%;
    left: 50%;
    transform: translateX(-50%);
    background: #1f1f1f;
    color: #fff;
    padding: 10px 14px;
    border: 1px solid #333;
    border-radius: 6px;
    font-size: var(--tooltip-font-size);
    line-height: var(--tooltip-line-height);
    white-space: normal;
    max-width: var(--tooltip-max-width);
    width: max-content;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.12s ease, transform 0.12s ease;
    z-index: 10;
}

.project-description-icon:hover .project-description-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -4px);
}

/* Turnovers tab */
.tab-content#tab-content-turnovers {
    overflow-y: auto;
    overscroll-behavior: contain;
}

.turnovers-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin: 10px 0 14px 0;
    flex-wrap: wrap;
    position: sticky;
    top: 0;
    z-index: 20;
    background: var(--bg-dark);
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-subtle);
}

.turnovers-settings {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.turnovers-setting {
    display: flex;
    align-items: center;
    gap: 8px;
}

.turnovers-controls {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    flex-wrap: wrap;
}

.turnovers-group {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid #2a2a2a;
    border-radius: 6px;
    background: #1a1a1a;
    flex-wrap: wrap;
}

/* ALE group — purple #9933ff */
.turnovers-group-ale {
    border-color: rgba(153, 51, 255, 0.35);
    background: rgba(153, 51, 255, 0.07);
}
.turnovers-group-ale .turnovers-group-title {
    color: #b366ff;
}
.turnovers-group-ale .export-btn {
    background: linear-gradient(180deg, #7a22d9 0%, #5c0fc9 100%);
}
.turnovers-group-ale .export-btn:hover {
    background: linear-gradient(180deg, #9933ff 0%, #7a22d9 100%);
    box-shadow: 0 2px 8px rgba(153, 51, 255, 0.4);
}

.turnovers-ale-loading {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #b366ff;
    font-size: 13px;
    padding: 4px 2px;
}

.turnovers-ale-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* LIST group — blue #3366cc */
.turnovers-group-list {
    border-color: rgba(51, 102, 204, 0.4);
    background: rgba(51, 102, 204, 0.07);
}
.turnovers-group-list .turnovers-group-title {
    color: #6699ee;
}
.turnovers-group-list .export-btn {
    background: linear-gradient(180deg, #2a55b0 0%, #1c3d8a 100%);
}
.turnovers-group-list .export-btn:hover {
    background: linear-gradient(180deg, #3366cc 0%, #2a55b0 100%);
    box-shadow: 0 2px 8px rgba(51, 102, 204, 0.4);
}

/* List row: align Export / Send To with selects and blue export buttons */
.turnovers-group-list .turnovers-select,
.turnovers-group-list .export-btn,
.turnovers-group-list .multiselect-filter-btn.export-dropdown-btn {
    height: var(--toolbar-control-height);
    min-height: var(--toolbar-control-height);
    box-sizing: border-box;
}

.turnovers-group-list .export-btn {
    padding: 0 14px;
    font-size: 0.85em;
}

.turnovers-group-list .turnovers-select {
    padding: 0 10px;
    line-height: 1.35;
}

.turnovers-group-list .multiselect-filter-btn.export-dropdown-btn {
    padding: 0 14px;
    font-size: 0.85em;
    font-weight: 600;
    background: linear-gradient(180deg, #2a55b0 0%, #1c3d8a 100%);
    color: #fff;
    border: none;
}

.turnovers-group-list .multiselect-filter-btn.export-dropdown-btn:hover {
    background: linear-gradient(180deg, #3366cc 0%, #2a55b0 100%);
    box-shadow: 0 2px 8px rgba(51, 102, 204, 0.4);
}

.turnovers-group-list .btn-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--toolbar-control-height);
    min-height: var(--toolbar-control-height);
    box-sizing: border-box;
    padding: 0 14px;
    font-size: 0.85em;
    line-height: 1.2;
    font-weight: 600;
    border: none;
    background: linear-gradient(180deg, #a02020 0%, #7a1515 100%);
}
.turnovers-group-list .btn-danger:hover {
    background: linear-gradient(180deg, #c0392b 0%, #a02020 100%);
}

/* SUBCLIPS group — cyan #99ffff */
.turnovers-group-subclips {
    border-color: rgba(100, 220, 220, 0.35);
    background: rgba(100, 220, 220, 0.06);
}
.turnovers-group-subclips .turnovers-group-title {
    color: #66dddd;
}
.turnovers-group-subclips .export-btn {
    background: linear-gradient(180deg, #1a9090 0%, #0d6b6b 100%);
}
.turnovers-group-subclips .export-btn:hover {
    background: linear-gradient(180deg, #22aaaa 0%, #1a9090 100%);
    box-shadow: 0 2px 8px rgba(100, 220, 220, 0.35);
}

/* Pull Sequence group */
.turnovers-group-pull {
    border-color: rgba(108, 92, 231, 0.4);
    background: rgba(108, 92, 231, 0.06);
}
.turnovers-group-pull .turnovers-group-title {
    color: #a29bfe;
}
.turnovers-group-pull .export-btn {
    background: linear-gradient(180deg, #6c5ce7 0%, #5a4bd9 100%);
}
.turnovers-group-pull .export-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #7d71ea 0%, #6b5de7 100%);
    box-shadow: 0 2px 8px rgba(108, 92, 231, 0.4);
}
.turnovers-group-pull .export-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Pull Sequence FX modal */
.modal-pull-seq-fx {
    max-width: 500px;
}

.turnovers-select-all {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #bfbfbf;
    font-size: 0.9em;
}

.turnovers-import-hidden {
    display: none;
}

.turnovers-info-tooltip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #2b2b2b;
    color: #cfd3d6;
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid #3a3a3a;
    cursor: help;
    position: relative;
}

.turnovers-info-tooltip::after {
    content: attr(aria-label);
    position: absolute;
    right: 0;
    top: 28px;
    transform: none;
    background: #1a1a1a;
    color: #fff;
    border: 1px solid #333;
    border-radius: 6px;
    padding: 10px 14px;
    width: min(400px, var(--tooltip-max-width));
    max-width: var(--tooltip-max-width);
    box-sizing: border-box;
    font-size: var(--tooltip-font-size);
    line-height: var(--tooltip-line-height);
    white-space: normal;
    word-wrap: break-word;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 20;
}

.turnovers-info-tooltip:hover::after {
    opacity: 1;
    visibility: visible;
}

.change-subrow {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 8px 0;
    padding-left: 6px;
}

.change-subrow.new-export-row {
    margin-top: -4px;
    margin-bottom: 10px;
}

.changelist-file-name {
    color: #bfbfbf;
    font-size: 0.9em;
}

.btn-small {
    padding: 4px 8px;
    border-radius: 4px;
    border: 1px solid #3a3a3a;
    background: #1a1a1a;
    color: #fff;
    cursor: pointer;
}

.btn-small svg {
    width: 12px;
    height: 12px;
    vertical-align: middle;
}

.btn-small:hover {
    border-color: #4a4a4a;
}

.btn-link {
    background: transparent;
    border: none;
    color: #9ea3a8;
    cursor: pointer;
    padding: 0;
}

.btn-link:hover {
    color: #fff;
}

.btn-clear-red {
    background: rgba(231, 76, 60, 0.15);
    border: 1px solid rgba(231, 76, 60, 0.5);
    color: #e87c6d;
    cursor: pointer;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.8em;
    font-weight: 600;
    transition: all 0.15s ease;
}

.btn-clear-red:hover {
    background: rgba(231, 76, 60, 0.45);
    border-color: rgba(231, 76, 60, 0.8);
    color: #fff;
}

.turnovers-group-title {
    font-size: 0.85em;
    color: #9ea3a8;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: 4px;
}

.turnovers-select {
    background: #1a1a1a;
    color: #fff;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    padding: 6px 8px;
    pointer-events: auto;
}

.turnovers-input {
    background: #1a1a1a;
    color: #fff;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    padding: 6px 8px;
    width: 80px;
}

.turnovers-selection-info {
    color: #bfbfbf;
    font-size: 0.9em;
}

.turnovers-ale-section {
    display: flex;
    gap: 16px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.turnovers-ale-list {
    flex: 1 1 320px;
    background: #1a1a1a;
    border: 1px solid #2a2a2a;
    border-radius: 6px;
    padding: 10px;
    min-height: 80px;
    max-height: 260px;
    overflow: auto;
    overscroll-behavior: contain;
}

.turnovers-ale-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 8px;
    border-bottom: 1px solid #2a2a2a;
    color: #eaeaea;
    font-size: 0.9em;
}

.turnovers-ale-item:last-child {
    border-bottom: none;
}

.turnovers-ale-item button {
    background: transparent;
    border: none;
    color: #ff6b6b;
    cursor: pointer;
}

.turnovers-columns {
    flex: 2 1 480px;
    background: #1a1a1a;
    border: 1px solid #2a2a2a;
    border-radius: 6px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.turnovers-columns-title {
    color: #e0e0e0;
    font-weight: 600;
    margin-bottom: 8px;
}

.turnovers-columns-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 6px 12px;
    flex: 1;
    max-height: none;
    min-height: 320px;
    overflow: auto;
    overscroll-behavior: contain;
}

.turnovers-columns-list label {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #d0d0d0;
    font-size: 0.9em;
}

.turnovers-results {
    margin-top: 8px;
    overscroll-behavior: contain;
}

/* =============================================
   SUBCLIPS PROGRESS BAR
   ============================================= */

.subclips-progress-wrap {
    margin: 10px 0 4px 0;
    padding: 10px 14px;
    background: rgba(100, 220, 220, 0.06);
    border: 1px solid rgba(100, 220, 220, 0.25);
    border-radius: 6px;
}

.subclips-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}

.subclips-progress-label {
    font-size: 0.85em;
    color: #66dddd;
    font-weight: 500;
}

.subclips-progress-fraction {
    font-size: 0.82em;
    color: #9ea3a8;
    font-variant-numeric: tabular-nums;
}

.subclips-progress-bar-track {
    width: 100%;
    height: 6px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
    overflow: hidden;
}

.subclips-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #22aaaa 0%, #66dddd 100%);
    border-radius: 3px;
    transition: width 0.25s ease;
}

@keyframes progress-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.5; }
}

.subclips-progress-bar.indeterminate {
    width: 40% !important;
    animation: progress-indeterminate 1.4s ease-in-out infinite;
}

@keyframes progress-indeterminate {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(350%); }
}

/* =============================================
   EXPORT COLUMNS MODAL
   ============================================= */

.modal-export-columns {
    max-width: 560px;
    width: 95vw;
}

.export-columns-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-subtle);
}

.export-columns-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 6px 12px;
    max-height: 260px;
    overflow-y: auto;
    padding: 4px 0;
}

.export-columns-list label {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #d0d0d0;
    font-size: 0.9em;
    cursor: pointer;
    padding: 3px 4px;
    border-radius: 3px;
    transition: background 0.1s;
}

.export-columns-list label:hover {
    background: rgba(255,255,255,0.05);
}

.export-columns-list input[type="checkbox"] {
    accent-color: var(--accent-primary, #ed913a);
    width: 14px;
    height: 14px;
}

/* ============================================= */

.turnovers-fields-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.turnovers-card-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.turnovers-card {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 12px;
    padding: 12px;
    background: #1a1a1a;
    border: 1px solid #2a2a2a;
    border-radius: 8px;
}

.turnovers-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.turnovers-card-title {
    font-weight: 700;
    color: #fff;
    font-size: 1.05em;
}

.turnovers-card-desc {
    color: #c9c9c9;
    font-size: 0.95em;
    margin-top: 2px;
}

.turnovers-thumb {
    width: 150px;
    height: 84px;
    background: #111;
    border: 1px solid #333;
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.turnovers-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.turnovers-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 6px 12px;
    margin-top: 8px;
}

.turnovers-info-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 0.9em;
    color: #d0d0d0;
}

.turnovers-info-label {
    color: #9ea3a8;
}

.turnovers-info-value {
    color: #e6e6e6;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.turnovers-info-value-estimated {
    color: var(--status-danger);
}

.turnovers-tag-placeholder {
    color: #8a8f94;
}

.turnovers-notes {
    margin-top: 10px;
}

.turnovers-notes-label {
    color: #9ea3a8;
    font-size: 0.9em;
    margin-bottom: 4px;
}

.turnovers-notes-input {
    width: 100%;
    box-sizing: border-box;
    background: #141414;
    color: #fff;
    border: 1px solid #2a2a2a;
    border-radius: 4px;
    padding: 6px 8px;
    resize: vertical;
}

.turnovers-ale-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 6px 12px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #2a2a2a;
}

.turnovers-fields-bulk {
    display: flex;
    gap: 8px;
}

.turnovers-modal-content {
    padding: 16px 18px 18px 18px;
}

#turnovers-fields-modal .turnovers-modal-content {
    width: min(96vw, 980px);
    max-width: 980px;
    min-height: min(78vh, 760px);
}

.turnovers-modal-content h2 {
    margin: 6px 0 12px 0;
}

/* ─── Rename Shots Modal ─────────────────────────────────── */

.turnovers-rename-modal-content {
    max-width: 480px;
}

.rename-mode-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 14px;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid var(--border-medium);
}

.rename-mode-tab {
    flex: 1;
    padding: 7px 0;
    background: var(--bg-dark);
    color: var(--text-secondary);
    border: none;
    cursor: pointer;
    font-size: 0.82em;
    font-weight: 500;
    letter-spacing: 0.02em;
    transition: background 0.15s, color 0.15s;
}

.rename-mode-tab + .rename-mode-tab {
    border-left: 1px solid var(--border-medium);
}

.rename-mode-tab:hover {
    background: var(--bg-light);
    color: var(--text-primary);
}

.rename-mode-tab.active {
    background: var(--accent-primary);
    color: #fff;
}

.rename-panel {
    display: none;
}

.rename-panel.active {
    display: block;
}

.rename-label {
    display: block;
    font-size: 0.8em;
    color: var(--text-secondary);
    margin-bottom: 4px;
    margin-top: 8px;
}

.rename-label:first-child {
    margin-top: 0;
}

.rename-input {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border-radius: 6px;
    border: 1px solid var(--border-medium);
    background: var(--bg-dark);
    color: var(--text-primary);
    font-size: 0.9em;
}

.rename-input:focus {
    outline: none;
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18);
}

.rename-preview {
    margin-top: 14px;
    max-height: 150px;
    overflow-y: auto;
    font-size: 0.78em;
    line-height: 1.5;
    color: var(--text-secondary);
    border: 1px solid var(--border-subtle);
    border-radius: 6px;
    padding: 8px 10px;
    background: var(--bg-dark);
}

.rename-preview:empty {
    display: none;
}

.rename-preview-row {
    display: flex;
    gap: 6px;
    align-items: baseline;
    padding: 2px 0;
}

.rename-preview-old {
    text-decoration: line-through;
    opacity: 0.55;
    word-break: break-all;
}

.rename-preview-arrow {
    flex-shrink: 0;
    color: var(--accent-primary);
}

.rename-preview-new {
    color: var(--accent-primary);
    font-weight: 500;
    word-break: break-all;
}

.rename-footer {
    margin-top: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rename-count-info {
    font-size: 0.78em;
    color: var(--text-muted);
}

.rename-footer-buttons {
    display: flex;
    gap: 8px;
}

.rename-cancel-btn {
    padding: 8px 14px;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: transparent;
    color: rgba(255, 255, 255, 0.8);
    cursor: pointer;
    font-size: 13px;
    transition: background 0.15s, border-color 0.15s;
}

.rename-cancel-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.3);
}

/* ─── End Rename Shots Modal ─────────────────────────────── */

.custom-status-modal-content {
    max-width: 720px;
    padding: 16px;
}

.custom-status-modal-content h2 {
    margin: 0 0 16px 0;
    color: var(--text-primary);
}

.custom-status-section {
    background: var(--bg-card);
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 12px;
}

.custom-status-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.custom-status-section-header h3 {
    margin: 0;
    font-size: 1em;
    color: var(--text-primary);
}

.custom-status-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.custom-status-row {
    display: grid;
    grid-template-columns: 120px 1fr 44px auto;
    gap: 8px;
    align-items: center;
}

.custom-status-label-input {
    padding: 6px 8px;
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    background: #1a1a1a;
    color: #fff;
}

.custom-status-color-input {
    width: 44px;
    height: 32px;
    border: none;
    background: transparent;
    padding: 0;
}

.custom-status-delete {
    background: transparent;
    border: 1px solid var(--border-medium);
    color: var(--text-secondary);
    padding: 6px 10px;
    border-radius: 4px;
    cursor: pointer;
}

.custom-status-delete:hover {
    color: var(--status-danger);
    border-color: var(--status-danger);
}

.custom-status-empty {
    color: var(--text-muted);
    font-size: 0.9em;
}

/* Custom column header with delete button */
.custom-column-header {
    position: relative;
}

.column-delete-btn {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 16px;
    height: 16px;
    padding: 0;
    border: none;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    font-size: 14px;
    line-height: 14px;
    border-radius: 3px;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.15s, background 0.15s;
}

.column-delete-btn:hover {
    opacity: 1;
    background: var(--status-danger);
}

/* Column context menu */
.column-context-menu {
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    min-width: 140px;
    overflow: hidden;
}

.column-context-menu-item {
    padding: 10px 14px;
    color: var(--text-primary);
    cursor: pointer;
    font-size: 0.9em;
}

.column-context-menu-item:hover {
    background: var(--status-danger);
    color: #fff;
}

.project-item:hover {
    background: var(--bg-medium);
    border-color: var(--accent-primary);
}

.project-item.active {
    background: var(--accent-primary);
    border-color: var(--accent-primary);
    color: #fff;
}

.project-item-content {
    flex: 1;
    min-width: 0;
}

.project-item-name {
    font-weight: 600;
    margin-bottom: 4px;
}

.project-item-meta {
    font-size: 0.85em;
    opacity: 0.8;
}

.project-item-lock {
    font-size: 0.75em;
    margin-top: 4px;
    opacity: 0.9;
    display: flex;
    align-items: center;
    gap: 4px;
}

.project-item-lock-icon {
    flex-shrink: 0;
    font-size: 0.9em;
}

.project-item-lock-you {
    color: var(--accent-primary, #ed913a);
}

.project-item.project-item-locked-by-other .project-item-lock {
    color: var(--text-secondary, #aaa);
}

.project-item.project-item-locked-by-other:hover {
    border-color: var(--border-medium);
}

.project-readonly .project-toolbar button,
.project-readonly .project-bulk-actions button {
    opacity: 0.7;
}

.project-item-actions {
    display: none;
    gap: 4px;
    align-items: center;
    flex-shrink: 0;
}

.project-item.active .project-item-actions {
    display: flex;
}

.btn-project-action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.btn-project-action:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.1);
}

.btn-project-action svg {
    width: 16px;
    height: 16px;
    stroke-width: 2;
}

.btn-delete-project-item:hover {
    background: rgba(231, 76, 60, 0.8);
}

.project-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: var(--bg-card);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    padding: 16px;
    overflow: hidden;
    min-height: 0;
}

.project-view-header {
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border-medium);
    position: relative;
}

.project-info {
    padding-right: 420px;
}

.project-name-row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.project-frame-settings {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.project-info h2 {
    margin: 0 0 8px 0;
    font-size: 1.4em;
    color: var(--text-primary);
}

.project-stats {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.9em;
}

.project-lock-banner {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    margin-bottom: 12px;
    background: rgba(220, 160, 60, 0.15);
    border: 1px solid rgba(220, 160, 60, 0.4);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: 0.9em;
}
.project-lock-banner #project-lock-by {
    font-weight: 600;
    color: var(--accent-warning, #d4a030);
}
.project-lock-banner-icon {
    flex-shrink: 0;
}

.project-actions {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
    align-items: center;
}

.btn-rename-project,
.btn-duplicate-project,
.btn-delete-project {
    display: none; /* Hidden by default, shown when project is selected */
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    font-size: 0.85em;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-rename-project {
    background: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-medium);
}

.btn-rename-project:hover {
    background: var(--bg-medium);
    border-color: var(--accent-primary);
}

.btn-delete-project {
    background: #e74c3c;
    color: #fff;
    border: 1px solid #c0392b;
}

.btn-delete-project:hover {
    background: #c0392b;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(231, 76, 60, 0.3);
}

.btn-rename-project svg,
.btn-duplicate-project svg,
.btn-delete-project svg {
    width: 16px;
    height: 16px;
}

.btn-duplicate-project {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border: 1px solid var(--border-medium);
}

.btn-duplicate-project:hover {
    background: var(--bg-medium);
    border-color: var(--accent-primary);
}

/* Delete Selected Shots button in project toolbar */
.delete-selected-btn {
    display: none; /* Hidden by default, shown when shots are selected */
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    font-size: 0.85em;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #e74c3c;
    color: #fff;
    border: 1px solid #c0392b;
    margin-right: 8px;
}

.delete-selected-btn:hover {
    background: #c0392b;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(231, 76, 60, 0.3);
}

.delete-selected-btn svg {
    width: 16px;
    height: 16px;
}

/* Old duplicate button hover (preserve original) */
.btn-duplicate-project:hover {
    background: var(--bg-medium);
    border-color: var(--accent-primary);
}

.btn-danger {
    background: #e74c3c;
    color: #fff;
    border: 1px solid #c0392b;
}

.btn-danger:hover {
    background: #c0392b;
}

.frame-estimate {
    color: var(--status-danger);
}

.warning-box {
    display: flex;
    padding: 16px;
    background: #fff3cd;
    border: 2px solid #ffc107;
    border-radius: 6px;
    margin-bottom: 16px;
}

.warning-box svg {
    flex-shrink: 0;
}

.project-toolbar {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    align-items: center;
    flex-wrap: wrap;
}

/* Database toolbar: one consistent height for search, selects, filter buttons, Export / Add Column */
.project-toolbar .project-search,
.project-toolbar select.project-filter,
.project-toolbar .multiselect-filter-btn,
.project-toolbar .export-btn {
    height: var(--toolbar-control-height);
    min-height: var(--toolbar-control-height);
    box-sizing: border-box;
}

.project-toolbar .project-search {
    padding: 0 12px;
}

.project-toolbar select.project-filter {
    padding: 0 28px 0 12px;
    line-height: 1.35;
}

.project-toolbar .multiselect-filter-btn {
    padding: 0 12px;
}

.project-toolbar .multiselect-filter-btn.export-dropdown-btn {
    padding: 0 14px;
    font-size: 0.85em;
    font-weight: 600;
}

.project-toolbar .export-btn {
    padding: 0 14px;
    font-size: 0.85em;
}

.project-toolbar .toolbar-btn {
    width: var(--toolbar-control-height);
    height: var(--toolbar-control-height);
    min-width: var(--toolbar-control-height);
    padding: 0;
    box-sizing: border-box;
}

.project-setting-label {
    color: #bfbfbf;
    font-size: 0.9em;
    margin-left: 4px;
}

.project-setting-input {
    width: 72px;
    background: #1a1a1a;
    color: #fff;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    padding: 6px 8px;
}

.project-bulk-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    position: absolute;
    top: 0;
    right: 0;
}

.bulk-action-btn {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid #cfcfcf;
    border-radius: 4px;
    font-size: 0.85em;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #e6e6e6;
    color: #111;
}

.bulk-action-btn svg {
    width: 16px;
    height: 16px;
}

.bulk-action-btn:hover {
    background: #dcdcdc;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.project-search {
    flex: 1;
    padding: 8px 12px;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.9em;
}

.current-search {
    max-width: 260px;
}

.project-search:focus {
    outline: none;
    border-color: var(--accent-primary);
}

.project-filter {
    padding: 8px 12px;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.9em;
    cursor: pointer;
}

.project-filter:focus {
    outline: none;
    border-color: var(--accent-primary);
}

.status-filter.status-pending { background-color: var(--status-warning); }
.status-filter.status-match { background-color: var(--status-success); }
.status-filter.status-trim { background-color: var(--status-warning); }
.status-filter.status-new { background-color: var(--status-info); }
.status-filter.status-new-version { background-color: #6a4a8a; }
.status-filter.status-old-version { background-color: #8b5a2b; }
.status-filter.status-missing { background-color: var(--status-danger); }
.status-filter.status-omitted { background-color: var(--status-danger); }
.status-filter.status-moved { background-color: var(--status-purple); }
.status-filter.status-duplicate { background-color: var(--status-orange); }
.status-filter.status-custom { background-color: var(--status-info); }

/* Multi-select filter dropdowns */
.multiselect-filter-wrap {
    position: relative;
    display: inline-block;
}

.multiselect-filter-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 100px;
    padding: 6px 10px;
    font-size: 0.9em;
}

.multiselect-filter-btn .multiselect-arrow {
    font-size: 0.7em;
    opacity: 0.7;
}

.multiselect-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 4px;
    min-width: 180px;
    max-height: 280px;
    overflow-y: auto;
    background: var(--bg-medium);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
    z-index: 1000;
    padding: 6px 0;
}

.multiselect-dropdown-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    cursor: pointer;
    font-size: 0.9em;
    transition: background 0.15s;
}

.multiselect-dropdown-item:hover {
    background: rgba(255,255,255,0.06);
}

.multiselect-dropdown-item input[type="checkbox"] {
    flex-shrink: 0;
    cursor: pointer;
}

.multiselect-dropdown-item .item-color {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
}

/* Trigger row for a flyout submenu */
.dropdown-submenu-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 12px;
    cursor: pointer;
    font-size: 0.9em;
    transition: background 0.15s;
}
.dropdown-submenu-trigger:hover {
    background: rgba(255,255,255,0.06);
}
.dropdown-submenu-trigger::after {
    content: '▶';
    font-size: 0.7em;
    opacity: 0.65;
    flex-shrink: 0;
}
/* Floating panel appended to body — escapes overflow containers */
.dropdown-submenu-panel-floating {
    position: fixed;
    min-width: 230px;
    background: var(--bg-medium);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
    z-index: 10001;
    padding: 6px 0;
}
.dropdown-submenu-divider {
    height: 1px;
    background: var(--border-medium);
    margin: 4px 0;
}

.export-dropdown-btn {
    background: linear-gradient(180deg, #f0a050 0%, #ed913a 100%);
    color: #fff;
    border: none;
}

.export-dropdown-btn:hover {
    background: linear-gradient(180deg, #ffc078 0%, #eb8a2e 100%);
}

.project-results-area {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    overscroll-behavior: contain;
}

.empty-project-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--text-muted);
    text-align: center;
}

.empty-state {
    color: var(--text-muted);
    font-size: 0.9em;
    text-align: center;
    padding: 20px;
}

/* Editable cells */
.editable-cell {
    cursor: text;
    position: relative;
}

.editable-cell:hover {
    background-color: rgba(237, 145, 58, 0.1);
}

/* Hand-edited value (shot.manualFields): small corner mark, like a spreadsheet note. */
td.manual-edit {
    background-image: linear-gradient(225deg, var(--accent-primary) 5px, transparent 5px);
    background-repeat: no-repeat;
}

.editable-status {
    cursor: pointer;
    position: relative;
}

.editable-status:hover {
    background-color: rgba(237, 145, 58, 0.1);
}

.editable-input {
    width: 100%;
    padding: 4px;
    border: 1px solid var(--accent-primary);
    background: #1a1a1a;
    color: white;
    font-size: inherit;
    font-family: inherit;
}

.custom-dropdown-cell {
    cursor: default;
}

.custom-dropdown-cell:hover {
    background-color: rgba(237, 145, 58, 0.08);
}

.custom-dropdown-select {
    width: 100%;
    min-height: 28px;
    padding: 4px 28px 4px 10px;
    border: 1px solid rgba(166, 189, 221, 0.5);
    border-radius: 999px;
    background:
        radial-gradient(circle at 24% 18%, rgba(255, 255, 255, 0.18), transparent 52%),
        linear-gradient(180deg, rgba(110, 134, 173, 0.85) 0%, rgba(45, 62, 91, 0.95) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 -1px 0 rgba(0, 0, 0, 0.35),
        0 2px 7px rgba(6, 15, 31, 0.45);
    color: #eef4ff;
    font-size: 0.86em;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #dbe8ff 50%),
        linear-gradient(135deg, #dbe8ff 50%, transparent 50%),
        radial-gradient(circle at 24% 18%, rgba(255, 255, 255, 0.18), transparent 52%),
        linear-gradient(180deg, rgba(110, 134, 173, 0.85) 0%, rgba(45, 62, 91, 0.95) 100%);
    background-position:
        calc(100% - 14px) calc(50% - 1px),
        calc(100% - 9px) calc(50% - 1px),
        center center,
        center center;
    background-size:
        6px 6px,
        6px 6px,
        100% 100%,
        100% 100%;
    background-repeat: no-repeat;
}

.custom-dropdown-select:hover {
    border-color: rgba(206, 224, 255, 0.85);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.32),
        inset 0 -1px 0 rgba(0, 0, 0, 0.35),
        0 4px 9px rgba(6, 15, 31, 0.5);
}

.custom-dropdown-select:focus {
    border-color: rgba(200, 224, 255, 1);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        0 0 0 2px rgba(123, 171, 236, 0.35),
        0 3px 10px rgba(8, 20, 40, 0.5);
}

.custom-dropdown-select option {
    background: #1d2638;
    color: #f1f6ff;
}

.status-select {
    width: 100%;
    min-height: 28px;
    padding: 4px 28px 4px 10px;
    border: 1px solid rgba(235, 242, 255, 0.42);
    border-radius: 999px;
    background-color: #1a1a1a;
    color: white;
    cursor: pointer;
    font-size: inherit;
    font-family: inherit;
    font-weight: 600;
    appearance: none;
    -webkit-appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, rgba(245, 248, 255, 0.95) 50%),
        linear-gradient(135deg, rgba(245, 248, 255, 0.95) 50%, transparent 50%),
        radial-gradient(circle at 24% 18%, rgba(255, 255, 255, 0.22), transparent 52%);
    background-position:
        calc(100% - 14px) calc(50% - 1px),
        calc(100% - 9px) calc(50% - 1px),
        center center;
    background-size:
        6px 6px,
        6px 6px,
        100% 100%;
    background-repeat: no-repeat;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.26),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3),
        0 2px 7px rgba(0, 0, 0, 0.3);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.08s ease;
}

.status-select:hover {
    border-color: rgba(245, 248, 255, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.3),
        inset 0 -1px 0 rgba(0, 0, 0, 0.35),
        0 4px 10px rgba(0, 0, 0, 0.36);
}

.status-select:focus {
    outline: none;
    border-color: rgba(224, 235, 255, 0.95);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        0 0 0 2px rgba(143, 187, 255, 0.35),
        0 4px 12px rgba(0, 0, 0, 0.4);
}

.status-select option {
    background: #1a1a1a;
    color: white;
}

/* Add to Database Button */
.save-to-project-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #6c5ce7 0%, #5a4bd9 100%);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 8px 14px;
    font-size: 0.85em;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.save-to-project-btn:hover {
    background: linear-gradient(180deg, #7d71ea 0%, #6b5de7 100%);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(108, 92, 231, 0.3);
}

.save-to-project-btn svg {
    width: 16px;
    height: 16px;
}

/* Form Groups */
.form-group {
    margin-bottom: 16px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    color: var(--text-primary);
    font-size: 0.9em;
    font-weight: 500;
}

.form-group input[type="text"],
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 8px 12px;
    box-sizing: border-box;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.9em;
    font-family: inherit;
}

.form-group input[type="text"]:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: var(--accent-primary);
}

.form-group textarea {
    resize: vertical;
    min-height: 80px;
}

.save-info-text {
    margin-top: 12px;
    padding: 12px;
    background: var(--bg-light);
    border-left: 3px solid var(--accent-primary);
    border-radius: 4px;
    color: var(--text-secondary);
    font-size: 0.85em;
    line-height: 1.5;
}

.btn-create-markers svg {
    width: 16px;
    height: 16px;
}

.btn-create-markers.success {
    background: linear-gradient(180deg, #27ae60 0%, #1e8449 100%) !important;
}

.btn-create-markers.error {
    background: linear-gradient(180deg, #e74c3c 0%, #c0392b 100%) !important;
}

/* =====================
   BACKEND CONFIGURATION
   ===================== */

.setting-separator {
    border-top: 1px solid var(--border-subtle);
    margin-top: 16px;
    padding-top: 16px;
}

.setting-select {
    width: 100%;
    padding: 8px 12px;
    background: var(--bg-dark);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: 6px;
    font-size: 0.9em;
    cursor: pointer;
}

.setting-select:focus {
    border-color: var(--accent-primary);
    outline: none;
}

.config-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.config-field label {
    font-size: 0.8em;
    color: var(--text-secondary);
    font-weight: 500;
}

.config-field input {
    padding: 6px 10px;
    background: var(--bg-panel);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: 4px;
    font-size: 0.85em;
    font-family: monospace;
}

.config-field input:focus {
    border-color: var(--accent-primary);
    outline: none;
}

.auth-buttons {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.btn-small {
    padding: 4px 12px;
    font-size: 0.8em;
}

.btn-danger {
    background: var(--status-removed);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 4px 12px;
    font-size: 0.8em;
    cursor: pointer;
}

.btn-danger:hover {
    opacity: 0.85;
}

/* Firebase beta hint */
.firebase-beta-hint {
    background: rgba(52, 168, 83, 0.1);
    border-left: 3px solid var(--status-new);
    padding: 8px 12px;
    border-radius: 4px;
    margin-bottom: 8px;
}

.firebase-beta-hint strong {
    color: var(--status-new);
}

/* ─── Folder Breadcrumb ──────────────────────────────────── */

.folder-breadcrumb {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    font-size: 0.8em;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-color);
    flex-wrap: wrap;
    min-height: 28px;
}

.breadcrumb-item {
    cursor: pointer;
    color: var(--accent-primary);
    padding: 2px 4px;
    border-radius: 3px;
    display: flex;
    align-items: center;
    gap: 3px;
}

.breadcrumb-item:hover {
    background: rgba(0, 188, 212, 0.15);
}

.breadcrumb-item.active {
    color: var(--text-primary);
    font-weight: 600;
    cursor: default;
}

.breadcrumb-item.active:hover {
    background: transparent;
}

.breadcrumb-sep {
    color: var(--text-secondary);
    opacity: 0.5;
    font-size: 0.9em;
}

/* ─── Folder Items in Project List ────────────────────────── */

.folder-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-color);
    transition: background 0.15s;
}

.folder-item:hover {
    background: rgba(0, 188, 212, 0.08);
}

.folder-item .folder-icon {
    flex-shrink: 0;
    color: #f9a825;
    opacity: 0.85;
}

.folder-item .folder-name {
    flex: 1;
    font-size: 0.9em;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.folder-item .folder-actions {
    display: none;
    gap: 4px;
}

.folder-item:hover .folder-actions,
.folder-item.active .folder-actions {
    display: flex;
}

.folder-item .btn-folder-action {
    background: none;
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 3px;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.folder-item .btn-folder-action:hover {
    background: rgba(255,255,255,0.1);
    color: var(--text-primary);
}

/* ── Drag & Drop ── */
.project-item[draggable="true"] {
    cursor: grab;
}
.project-item.dragging {
    opacity: 0.4;
    outline: 1px dashed var(--accent-color);
}
.folder-item.drag-over {
    background: rgba(80, 200, 120, 0.18);
    outline: 2px solid var(--accent-color);
    outline-offset: -2px;
}
.breadcrumb-item.drag-over {
    background: rgba(80, 200, 120, 0.25);
    outline: 2px solid var(--accent-color);
    outline-offset: -1px;
    border-radius: 4px;
}

/* Drop-to-parent zone */
.drop-to-root-zone {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px;
    margin-bottom: 4px;
    border: 1px dashed rgba(255,255,255,0.2);
    border-radius: 6px;
    color: var(--text-secondary);
    font-size: 0.8em;
    transition: background 0.15s, border-color 0.15s;
}
.drop-to-root-zone.drag-over {
    background: rgba(80, 200, 120, 0.18);
    border-color: var(--accent-color);
    color: var(--accent-color);
}

.btn-new-folder {
    width: 32px;
    height: 32px;
    padding: 0;
    background: var(--accent-primary);
    border: none;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.btn-new-folder:hover {
    background: var(--accent-hover);
    transform: scale(1.05);
}

.btn-new-folder svg {
    width: 18px;
    height: 18px;
}

/* ─── Cloud Auth Modal ───────────────────────────────────── */

.modal-cloud-auth {
    max-width: 420px;
}

.cloud-auth-form {
    margin-top: 12px;
}

.cloud-auth-buttons {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.cloud-auth-buttons .btn-primary,
.cloud-auth-buttons .btn-secondary {
    flex: 1;
}

.link-forgot-password {
    display: block;
    margin-top: 6px;
    font-size: 0.85em;
    color: var(--accent-primary);
    text-decoration: none;
}

.link-forgot-password:hover {
    text-decoration: underline;
}

.cloud-auth-signed-in {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px 14px;
    background: rgba(76, 175, 80, 0.08);
    border: 1px solid rgba(76, 175, 80, 0.25);
    border-radius: 6px;
    margin-top: 12px;
}

.signed-in-info {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--status-new);
}

.signed-in-info > div {
    flex: 1;
}

.signed-in-label {
    font-size: 0.75em;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.signed-in-email {
    font-size: 0.9em;
    color: var(--text-primary);
    font-weight: 500;
}

.email-not-verified-banner {
    font-size: 0.8em;
    color: var(--status-warning, #f39c12);
    margin-top: 4px;
}

.email-not-verified-banner a {
    color: var(--accent-primary);
}

.signed-in-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.btn-secondary-outline {
    padding: 6px 14px;
    background: transparent;
    border: 1px solid var(--border-medium);
    color: var(--text-primary);
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85em;
    font-weight: 500;
    transition: all 0.15s;
}

.btn-secondary-outline:hover {
    background: rgba(255, 255, 255, 0.05);
}

.btn-danger-outline {
    padding: 6px 14px;
    background: transparent;
    border: 1px solid var(--status-removed);
    color: var(--status-removed);
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85em;
    font-weight: 500;
    transition: all 0.15s;
}

.btn-danger-outline:hover {
    background: rgba(231, 76, 60, 0.1);
}

/* ─── Save-to-Project Modal Redesign ─────────────────────── */

.modal-save-project {
    max-width: 520px;
}

/* =============================================
   CONFLICT RESOLUTION MODAL (simplified)
   ============================================= */
.modal-conflict-simple {
    max-width: 460px;
}

.conflict-summary-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.conflict-count-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    color: var(--text-primary);
    font-size: 0.9em;
    cursor: pointer;
    padding: 6px 0;
    text-align: left;
    flex: 1;
}

.conflict-count-btn #duplicate-conflict-count {
    color: var(--accent-primary);
    font-weight: 700;
    text-decoration: underline dotted;
}

.conflict-count-btn:hover #duplicate-conflict-count {
    color: var(--accent-secondary, #f0a050);
}

.conflict-toggle-arrow {
    flex-shrink: 0;
    transition: transform 0.2s ease;
    color: var(--text-secondary);
}

.conflict-action-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.conflict-action-label {
    font-size: 0.85em;
    color: var(--text-secondary);
    white-space: nowrap;
}

.conflict-action-select {
    padding: 5px 28px 5px 10px;
    background: var(--bg-dark);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.9em;
    font-weight: 600;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    transition: border-color 0.15s;
}

.conflict-action-select:hover {
    border-color: var(--accent-primary);
}

.conflict-action-select:focus {
    outline: none;
    border-color: var(--accent-primary);
}

.conflict-detail-list {
    margin-top: 4px;
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid var(--border-subtle);
    border-radius: 4px;
    background: rgba(0,0,0,0.15);
}

.conflict-detail-item {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    font-size: 0.85em;
}

.conflict-detail-item:last-child {
    border-bottom: none;
}

.conflict-shot-name {
    font-weight: 700;
    color: var(--accent-primary);
    flex-shrink: 0;
    min-width: 80px;
}

.conflict-shot-meta {
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.conflict-timeline-warning {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    padding: 8px 12px;
    background: rgba(237, 145, 58, 0.12);
    border: 1px solid rgba(237, 145, 58, 0.4);
    border-radius: 5px;
    font-size: 0.82em;
    color: var(--accent-primary);
    line-height: 1.45;
}

.save-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0 8px;
    font-size: 0.85em;
    color: var(--text-secondary);
    min-height: 0;
}

.save-folder-up-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--border-medium);
    border-radius: 5px;
    color: var(--text-primary);
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.save-folder-up-btn:hover {
    border-color: var(--accent-primary);
    background: rgba(0, 188, 212, 0.12);
    color: var(--accent-primary);
}

.save-breadcrumb-current {
    color: var(--text-primary);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.save-project-browser {
    border: 1px solid var(--border-color);
    border-radius: 6px;
    max-height: 240px;
    min-height: 120px;
    overflow-y: auto;
    background: rgba(0,0,0,0.15);
    margin-bottom: 8px;
}

.save-project-browser .folder-item,
.save-project-browser .save-project-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    transition: background 0.15s;
    font-size: 0.9em;
}

.save-project-browser .folder-item:hover,
.save-project-browser .save-project-item:hover {
    background: rgba(0, 188, 212, 0.08);
}

.save-project-browser .save-project-item.selected {
    background: rgba(0, 188, 212, 0.2);
    border-left: 3px solid var(--accent-primary);
}

.save-project-browser .folder-icon {
    color: #f9a825;
    flex-shrink: 0;
}

.save-project-browser .project-icon {
    color: var(--accent-primary);
    flex-shrink: 0;
}

.save-project-browser .item-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.save-project-browser .item-meta {
    font-size: 0.8em;
    color: var(--text-secondary);
    flex-shrink: 0;
}

.save-project-browser .empty-folder-state {
    text-align: center;
    color: var(--text-secondary);
    padding: 20px;
    font-size: 0.85em;
    opacity: 0.6;
}

.save-project-browser .save-cloud-signin-prompt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 32px 20px;
}

.save-project-browser .save-cloud-signin-prompt p {
    margin: 0;
    opacity: 1;
}

.save-inline-actions {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.save-actions-top {
    margin-bottom: 12px;
    justify-content: flex-start;
}

.save-modal-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    background: var(--accent-primary);
    border: none;
    border-radius: 5px;
    color: #fff;
    font-size: 0.9em;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.save-modal-btn:hover {
    background: var(--accent-hover);
}

.save-modal-btn svg {
    flex-shrink: 0;
}

.save-modal-btn-secondary {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid var(--border-medium);
    color: var(--text-primary);
}

.save-modal-btn-secondary:hover {
    background: rgba(0, 188, 212, 0.12);
    border-color: var(--accent-primary);
    color: var(--accent-primary);
}

.save-actions-top .btn-inline-action {
    color: var(--text-primary);
    font-size: 0.95em;
    font-weight: 500;
    padding: 6px 12px;
}

.btn-inline-action {
    background: none;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.8em;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.btn-inline-action:hover {
    color: var(--accent-primary);
    border-color: var(--accent-primary);
    background: rgba(0, 188, 212, 0.08);
}

.save-new-name-group {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-bottom: 8px;
}

.save-new-name-group input {
    flex: 1;
    padding: 6px 10px;
    background: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-primary);
    font-size: 0.85em;
}

.btn-small-confirm {
    padding: 4px 10px;
    background: var(--accent-primary);
    color: var(--bg-primary);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.8em;
    font-weight: 600;
}

.btn-small-cancel {
    padding: 4px 10px;
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.8em;
}

.save-options {
    border-top: 1px solid var(--border-color);
    padding-top: 10px;
    margin-top: 4px;
}

.save-selected-project {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(0, 188, 212, 0.1);
    border-radius: 6px;
    font-size: 0.85em;
    margin-top: 8px;
}

.save-selected-label {
    color: var(--text-secondary);
}

.save-selected-project strong {
    color: var(--accent-primary);
}

/* ─── Cloud loading spinner (in Database sidebar, next to Back to Workspaces) ─ */
.cloud-loading-spinner {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
    border-radius: 8px;
    pointer-events: none;
}

.cloud-spinner-dot {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: cloud-spinner-rotate 0.8s linear infinite;
}

@keyframes cloud-spinner-rotate {
    to { transform: rotate(360deg); }
}

/* Signed in as [email] in workspace picker */
.workspace-signed-in-as {
    margin-left: 12px;
    font-size: 0.9em;
    color: var(--status-new);
}

/* =============================================
   AUTH GATE
   Full-screen mandatory login screen shown on
   plugin startup when auth is required.
   ============================================= */

#auth-gate {
    position: fixed;
    inset: 0;
    z-index: 9500;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--bg-dark);
    overflow: hidden;
}

/* Centered login panel — no card border, pure dark */
.auth-gate-panel {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 320px;
    padding: 0 24px;
    box-sizing: border-box;
}

/* Branded logo above the form (wide PNG: ShotTrace + by LIGOPOST) */
.auth-gate-panel-logo {
    width: min(100%, 300px);
    height: auto;
    margin-bottom: 8px;
    opacity: 0.95;
}

.auth-gate-subtitle {
    font-size: 0.82em;
    color: var(--text-muted);
    margin: 0 0 24px 0;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

/* Form wrapper */
.auth-gate-form {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.auth-gate-input {
    width: 100%;
    box-sizing: border-box;
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    color: var(--text-primary);
    font-size: 0.9em;
    padding: 9px 12px;
    outline: none;
    transition: border-color 0.15s;
}

.auth-gate-input:focus {
    border-color: var(--accent-primary);
}

.auth-gate-input::placeholder {
    color: var(--text-muted);
}

.auth-gate-error {
    font-size: 0.82em;
    color: var(--status-danger);
    margin: 0;
    text-align: center;
}

.auth-gate-error.auth-gate-connection-error {
    font-size: 0.88em;
    color: var(--status-warning);
    margin-bottom: 8px;
    line-height: 1.35;
}

.auth-gate-btn {
    width: 100%;
    padding: 10px;
    font-size: 0.92em;
    margin-top: 2px;
}

.auth-gate-forgot {
    font-size: 0.8em;
    color: var(--text-muted);
    text-align: center;
    text-decoration: none;
    margin-top: 4px;
    transition: color 0.15s;
}

.auth-gate-forgot:hover {
    color: var(--text-secondary);
}

/* Loading / restoring state */
.auth-gate-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    color: var(--text-muted);
    font-size: 0.85em;
}

@keyframes auth-gate-spin {
    to { transform: rotate(360deg); }
}

.auth-gate-spinner {
    width: 22px;
    height: 22px;
    border: 2px solid var(--border-medium);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: auth-gate-spin 0.7s linear infinite;
}

/* ============================================================
   SUBMISSIONS TAB
   ============================================================ */

.submissions-layout {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 10px 0 0 0;
    height: 100%;
    overflow: hidden;
}

/* ── Pickers row ── */
.submissions-pickers-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.submissions-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
    background: #1a1a1a;
    border: 1px solid var(--border-subtle);
    border-radius: 6px;
    min-width: 180px;
}

.submissions-panel-sequence { flex: 1.2; min-width: 200px; }
.submissions-panel-bin      { flex: 1;   min-width: 180px; }
.submissions-panel-settings { flex: 1.4; min-width: 220px; }

.submissions-panel-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-secondary);
    margin-bottom: 2px;
}

/* Drop area */
.submissions-drop-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 16px 10px;
    border: 1.5px dashed var(--border-medium);
    border-radius: 6px;
    cursor: default;
    text-align: center;
    color: var(--text-secondary);
    transition: border-color 0.15s, background 0.15s;
    min-height: 80px;
}
.submissions-drop-area.dragover {
    border-color: var(--accent-primary);
    background: rgba(237, 145, 58, 0.07);
}
.submissions-drop-icon {
    width: 26px;
    height: 26px;
    opacity: 0.35;
}
.submissions-drop-label {
    font-size: 13px;
    color: var(--text-primary);
}
.submissions-drop-hint {
    font-size: 12px;
    color: var(--text-muted);
}
.submissions-drop-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary);
    font-size: 13px;
}
.submissions-drop-error {
    color: var(--status-danger);
    font-size: 12px;
}

/* Drop zone loaded state */
.submissions-drop-area.loaded {
    border-style: solid;
    border-color: rgba(39, 174, 96, 0.4);
    background: rgba(39, 174, 96, 0.05);
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    cursor: default;
}
.submissions-loaded-row {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.submissions-loaded-check {
    color: var(--status-success);
    flex-shrink: 0;
}
.submissions-loaded-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}
.submissions-loaded-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.submissions-loaded-stats {
    font-size: 12px;
    color: var(--status-success);
}
.submissions-loaded-btns {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}
.submissions-seq-action-btn {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 12px;
    color: var(--text-secondary);
    background: var(--bg-light);
    border: 1px solid var(--border-subtle);
    border-radius: 4px;
    padding: 3px 7px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.submissions-seq-action-btn:hover { background: var(--border-subtle); color: var(--text-primary); }
.submissions-seq-action-btn--danger:hover { background: rgba(231, 76, 60, 0.15); color: var(--status-danger); border-color: rgba(231, 76, 60, 0.3); }
.submissions-drop-hint-replace {
    font-size: 12px;
    color: var(--text-muted);
    opacity: 0.7;
}

/* Bin rows */
.submissions-bin-rows {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.submissions-bin-row {
    display: flex;
    gap: 6px;
    align-items: center;
}
.submissions-bin-row .submissions-bin-select {
    flex: 1;
    min-width: 0;
}
.submissions-remove-bin-btn {
    font-size: 16px;
    line-height: 1;
    font-weight: 600;
    padding: 4px 8px;
}
.submissions-select {
    flex: 1;
    background: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    padding: 5px 8px;
    font-size: 13px;
}
.submissions-icon-btn {
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    padding: 5px 7px;
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: background 0.15s;
}
.submissions-icon-btn:hover { background: var(--border-subtle); color: var(--text-primary); }

.submissions-load-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, #3d5a94 0%, #2d4576 100%);
    color: #fff;
    border: none;
    border-radius: 5px;
    padding: 6px 11px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
}
.submissions-load-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #4d6eaf 0%, #3d5a94 100%);
}
.submissions-load-btn:disabled { opacity: 0.45; cursor: not-allowed; }

.submissions-bin-info {
    font-size: 13px;
    color: var(--status-info);
}

/* Settings */
.submissions-setting-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.submissions-setting-row-full { width: 100%; }
.submissions-setting-label {
    font-size: 13px;
    color: var(--text-secondary);
    white-space: nowrap;
}
.submissions-setting-input {
    background: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    padding: 4px 7px;
    font-size: 12px;
    width: 64px;
}
.submissions-pattern-input { width: 100%; flex: 1; font-family: monospace; font-size: 13px; }
.submissions-shotid-label-row {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
}

/* ── Action bar ── */
.submissions-action-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.submissions-primary-btn {
    display: flex;
    align-items: center;
    gap: 7px;
    background: linear-gradient(180deg, var(--accent-primary) 0%, #c97520 100%);
    color: #fff;
    border: none;
    border-radius: 5px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
}
.submissions-primary-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, var(--accent-hover) 0%, var(--accent-primary) 100%);
}
.submissions-primary-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.submissions-secondary-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.submissions-secondary-btn:hover:not(:disabled) {
    border-color: var(--accent-primary);
    color: var(--accent-primary);
    background: var(--bg-medium);
}
.submissions-secondary-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.submissions-match-summary {
    font-size: 13px;
    color: var(--text-secondary);
}

/* ── Results area ── */
.submissions-results {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}
.submissions-empty {
    color: var(--text-muted);
    font-size: 13px;
    padding: 20px;
}
.submissions-stats-bar {
    display: flex;
    gap: 18px;
    align-items: center;
    padding: 6px 2px 8px 2px;
    font-size: 13px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 4px;
}
.sub-stat {
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--text-secondary);
}

/* Match table */
.submissions-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.submissions-table thead th {
    background: #212121;
    color: var(--text-secondary);
    padding: 6px 8px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border-subtle);
    position: sticky;
    top: 0;
    z-index: 2;
}
.submissions-table tbody tr {
    border-bottom: 1px solid #222;
    transition: background 0.1s;
}
.submissions-table tbody tr:hover { background: rgba(255,255,255,0.03); }

.sub-row-matched  { }
.sub-row-multi    { background: rgba(243, 156, 18, 0.04); }
.sub-row-unmatched { background: rgba(231, 76, 60, 0.04); }

.submissions-table td {
    padding: 6px 8px;
    vertical-align: middle;
}
.sub-col-status  { width: 18px; padding-right: 4px; }
.sub-col-shotname { font-weight: 500; color: var(--text-primary); }
.sub-col-tc      { font-family: monospace; font-size: 13px; color: var(--text-secondary); white-space: nowrap; }
.sub-col-frames  { text-align: right; color: var(--text-secondary); width: 60px; }
.sub-col-match   { min-width: 160px; }
.sub-col-base    { font-size: 12px; white-space: nowrap; }

/* Status dots */
.sub-status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.sub-status-ok    { background: var(--status-success); }
.sub-status-multi { background: var(--status-warning); }
.sub-status-none  { background: var(--status-danger); }

.sub-no-match {
    color: var(--status-danger);
    font-size: 13px;
    opacity: 0.7;
}
.sub-match-name {
    color: var(--text-primary);
    font-size: 13px;
}

/* Wrapper for clip name / version select + Find button */
.sub-match-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
}
.sub-match-row .sub-match-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 240px;
}

/* Find-in-bin button */
.sub-find-btn {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex-shrink: 0;
    padding: 2px 7px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.sub-find-btn:hover {
    color: var(--accent-primary);
    border-color: var(--accent-primary);
    background: var(--bg-medium);
}
.sub-find-btn:active {
    opacity: 0.7;
}

/* Match confidence badge */
.sub-col-conf { text-align: center; white-space: nowrap; }
.sub-conf-badge {
    display: inline-block;
    min-width: 44px;
    padding: 2px 7px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 10px;
    text-align: center;
    color: #fff;
}
.sub-conf-perfect { background: #2e9e5b; }                /* 100% — green */
.sub-conf-high    { background: #7cae3b; }                /* 80-99% — yellow-green */
.sub-conf-mid     { background: #d6a92e; color: #1c1c1c; } /* 65-79% — yellow */
.sub-conf-low     { background: #d9762e; }                /* 50-64% — orange */
.sub-conf-poor    { background: #c0473b; }                /* <50% — red */
.sub-conf-manual  { background: #3d6fb4; }                /* manual override — blue */
.sub-conf-none    { background: transparent; color: var(--text-muted); }

/* Manual match drop box */
.sub-col-fix { white-space: nowrap; }
.sub-drop-box {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    background: var(--bg-light);
    border: 1px dashed var(--border-medium);
    border-radius: 4px;
    cursor: copy;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.sub-drop-box.dragover {
    color: var(--accent-primary);
    border-color: var(--accent-primary);
    background: var(--bg-medium);
}
.sub-clear-btn {
    margin-left: 5px;
    padding: 2px 7px;
    font-size: 12px;
    color: var(--text-secondary);
    background: var(--bg-light);
    border: 1px solid var(--border-medium);
    border-radius: 4px;
    cursor: pointer;
}
.sub-clear-btn:hover { color: var(--status-danger); border-color: var(--status-danger); }

/* Use toggle — round button dot */
.sub-col-mute { text-align: center; }
.sub-use-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, opacity 0.15s;
}
.sub-use-toggle.is-on {
    background: #d9762e;             /* orange "on" button */
    border: 1px solid #b85f1f;
    color: #fff;
}
.sub-use-toggle.is-on:hover { background: #e8853c; }
.sub-use-toggle.is-off {
    background: transparent;        /* hollow dot when excluded */
    border: 1.5px solid var(--border-strong, #6a6a6a);
}
.sub-use-toggle.is-off:hover { border-color: #d9762e; }
.sub-use-toggle:disabled { opacity: 0.25; cursor: not-allowed; }

/* Muted row */
.sub-row-muted { opacity: 0.45; }
.sub-row-muted .sub-col-shotname { text-decoration: line-through; }

.sub-stat-muted { color: var(--status-danger); }

/* Version select in table */
.submissions-version-select {
    background: var(--bg-light);
    color: var(--text-primary);
    border: 1px solid var(--status-warning);
    border-radius: 4px;
    padding: 3px 6px;
    font-size: 11px;
    max-width: 260px;
}

/* Spinner for bin/seq loading */
.submissions-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid var(--border-medium);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: auth-gate-spin 0.7s linear infinite;
    flex-shrink: 0;
}

.turnovers-fields-spinner {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    animation: auth-gate-spin 0.7s linear infinite;
    transform-origin: center;
}

/* Wrapper that sits beside the bin select during loading */
.submissions-bins-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}

/* Standalone page (html.ligo-web): the bell and the profile menu close the header on the right
   (in the panel, apps/shared/panel-chrome.js places them there). */
.ligo-web .tabs-navigation > .panel-notification-wrap { margin-left: auto; }
.ligo-web .tabs-navigation > .ligo-panel-chrome-actions { display: flex; align-items: center; margin-left: 8px; }
/* Export Markers is for the Current Cut only: disabled while a Previous Cut is loaded. */
.create-markers-btn:disabled { opacity: 0.45; cursor: not-allowed; }
/* The Cut boxes open the EDL file picker (web-input.js). */
.ligo-web #drop-area, .ligo-web #drop-area-old { cursor: pointer; }
/* Standalone page: vendor clip list actions in Submissions. */
.submissions-clip-list-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
/* Standalone page: rows do not move the Media Composer monitors. */
.ligo-web .clickable-row { cursor: auto; }
