:root {
    /* 主题颜色 */
    --bg-main: #0d0d12;
    --bg-panel: rgba(12, 12, 18, 0.95);
    --bg-interactive: rgba(18, 18, 24, 0.9);
    --bg-interactive-hover: rgba(28, 28, 38, 0.95);
    --bg-input: rgba(255, 255, 255, 0.02);
    --bg-subtle-hover: rgba(255, 255, 255, 0.03);
    --bg-strong-hover: rgba(255, 255, 255, 0.04);
    --bg-overlay: rgba(12, 12, 18, 0.7);

    /* 文本颜色 */
    --text-primary: #a0a0a8;
    --text-secondary: #909098;
    --text-tertiary: #707078;
    --text-muted: #606068;
    --text-subtle: #505058;
    --text-placeholder: #383840;
    --text-disabled: #404048;

    /* 边框颜色 */
    --border-primary: rgba(255, 255, 255, 0.04);
    --border-secondary: rgba(255, 255, 255, 0.06);
    --border-focus: rgba(255, 255, 255, 0.08);

    /* 强调色 */
    --accent-blue: #90a0b0;
    --accent-blue-bg: rgba(80, 100, 120, 0.3);
    --accent-blue-bg-hover: rgba(80, 100, 120, 0.5);
    --accent-purple: #b090a0;
    --accent-purple-bg: rgba(100, 80, 120, 0.25);
    --accent-purple-bg-hover: rgba(100, 80, 120, 0.4);
    --accent-orange: #b0a090;
    --accent-orange-bg: rgba(120, 100, 80, 0.3);
    --accent-orange-bg-hover: rgba(120, 100, 80, 0.5);
    --accent-green: #90b090;
    --accent-green-bg: rgba(100, 120, 100, 0.25);
    --accent-green-bg-hover: rgba(100, 120, 100, 0.4);
    --accent-red: #a07070;
    --accent-red-bg: rgba(180, 80, 80, 0.2);
    --accent-red-bg-hover: rgba(180, 80, 80, 0.3);

    /* 特殊状态 */
    --text-error: #a08070;
    --progress-bar-bg: rgba(100, 100, 140, 0.6);
    --loader-bg: rgba(136, 136, 150, 0.2);
    --drag-over-border: rgba(100, 100, 140, 0.6);
    --drag-over-bg: rgba(100, 100, 140, 0.1);
    --focus-outline: rgba(100, 100, 140, 0.4);
    --bg-overlay-dark: rgba(0, 0, 0, 0.85);
    --bg-panel-notrans: rgba(14, 14, 20, 0.95);
    --bg-panel-notrans-2: rgba(12, 12, 18, 0.98);

    /* 字体 */
    --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-mono: monospace;
    --fs-xs: 10px;
    --fs-sm: 11px;
    --fs-base: 12px;
    --fs-md: 14px;
    --fs-lg: 16px;

    /* 尺寸与间距 */
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --radius-xl: 12px;
    --radius-full: 50%;

    /* 效果 */
    --blur: blur(24px);
    --shadow: 0 16px 48px rgba(0, 0, 0, 0.7);
    --transition: all 0.2s;
}

.cursor-pointer {cursor: pointer;}

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

html, body {width: 100%;height: 100%;overflow: hidden;font-family: var(--font-sans);background-color: var(--bg-main);color: var(--text-primary);}
.fullscreen-preview {position: fixed;top: 0;left: 0;width: 100vw;height: 100vh;z-index: 0;background-color: var(--bg-main);background-size: contain;background-position: center;background-repeat: no-repeat;transition: opacity 0.3s ease;}
.fullscreen-preview img {width: 100%;height: 100%;object-fit: contain;}
.floating-menu {position: fixed;bottom: 20px;left: 20px;z-index: 1000;}
.floating-menu-toggle {width: 36px;height: 36px;border-radius: var(--radius-lg);background: var(--bg-interactive);border: 1px solid var(--border-secondary);color: var(--text-subtle);font-size: var(--fs-lg);cursor: pointer;display: none;align-items: center;justify-content: center;transition: var(--transition);}
.floating-menu-toggle:hover {background: var(--bg-interactive-hover);color: var(--text-tertiary);}
.mini-pager {display: none;align-items: center;gap: 4px;margin-left: 8px;}
.mini-pager-btn {width: 24px;height: 24px;border-radius: var(--radius-sm);background: var(--bg-interactive);border: 1px solid var(--border-secondary);color: var(--text-subtle);font-size: var(--fs-xs);cursor: pointer;display: flex;align-items: center;justify-content: center;transition: var(--transition);}
.mini-pager-btn:hover {background: var(--bg-interactive-hover);color: var(--text-tertiary);}
.mini-page-indicator {display: flex;align-items: center;background: var(--bg-interactive);border: 1px solid var(--border-secondary);border-radius: var(--radius-sm);padding: 0 6px;height: 24px;}
.mini-page-indicator span {color: var(--text-placeholder);font-size: 9px;margin-right: 2px;}
.mini-page-indicator input {width: 24px;padding: 0;text-align: center;background: transparent;border: none;font-size: var(--fs-xs);color: var(--text-tertiary);outline: none;}
.floating-menu-content {position: absolute;bottom: 0;left: 0;width: 240px;background: var(--bg-panel);border-radius: var(--radius-lg);padding: 8px;backdrop-filter: var(--blur);border: 1px solid var(--border-primary);box-shadow: var(--shadow);overflow: hidden;}
.floating-menu-content.collapsed {display: none;}
.menu-header {display: flex;justify-content: space-between;align-items: center;margin-bottom: 6px;padding-bottom: 4px;border-bottom: 1px solid var(--border-primary);gap: 6px;}
.menu-title {font-size: var(--fs-sm);font-weight: 500;color: var(--text-disabled);letter-spacing: 0.5px;white-space: nowrap;}
.header-proxy-select {flex: 1;min-width: 0;max-width: 140px;padding: 4px 8px;font-size: var(--fs-xs);background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-xl);color: var(--text-tertiary);outline: none;cursor: pointer;box-sizing: border-box;}
.header-proxy-select option {background: var(--bg-main);color: var(--text-tertiary);}
.menu-collapse-btn {width: 20px;height: 20px;border-radius: var(--radius-sm);background: transparent;border: 1px solid var(--border-secondary);color: var(--text-disabled);font-size: var(--fs-xs);cursor: pointer;display: flex;align-items: center;justify-content: center;transition: var(--transition);flex-shrink: 0;}
.menu-collapse-btn:hover {background: var(--bg-strong-hover);color: var(--text-muted);}
.menu-row {display: flex;gap: 4px;margin-bottom: 4px;}
.menu-row:last-child {margin-bottom: 0;}
.compact-input {flex: 1;min-width: 0;padding: 6px 8px;font-size: var(--fs-xs);background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: 5px;color: var(--text-secondary);outline: none;transition: var(--transition);box-sizing: border-box;}
.compact-input:focus {border-color: var(--border-focus);}
.compact-input::placeholder {color: var(--text-placeholder);}
.compact-select {flex: 1;min-width: 0;padding: 8px 10px;font-size: var(--fs-sm);background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-md);color: var(--text-secondary);outline: none;cursor: pointer;box-sizing: border-box;}
.compact-select option {background: var(--bg-main);color: var(--text-secondary);}
.custom-proxy-input {display: none;width: 100%;padding: 6px 10px;font-size: var(--fs-xs);background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-md);color: var(--text-secondary);outline: none;box-sizing: border-box;margin-bottom: 4px;}
.custom-proxy-input:focus {border-color: var(--border-focus);}
.pager-btn-compact {width: 24px;height: 22px;padding: 0;font-size: var(--fs-xs);background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-sm);color: var(--text-subtle);cursor: pointer;display: flex;align-items: center;justify-content: center;transition: var(--transition);}
.pager-btn-compact:hover {background: var(--bg-strong-hover);color: var(--text-tertiary);}
.page-indicator-compact {display: flex;align-items: center;background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-sm);padding: 0 4px;height: 22px;}
.page-indicator-compact span {color: var(--text-placeholder);font-size: 8px;margin-right: 2px;}
.page-indicator-compact input {width: 24px;padding: 0;text-align: center;background: transparent;border: none;font-size: var(--fs-xs);color: var(--text-tertiary);outline: none;}
.actions-row {display: flex;gap: 4px;}
.btn-action {flex: 1;padding: 6px 4px;font-size: var(--fs-xs);font-weight: 500;border: none;border-radius: 5px;cursor: pointer;transition: var(--transition);letter-spacing: 0.1px;}
.btn-load {background: var(--accent-blue-bg);color: var(--accent-blue);cursor: pointer;}
.btn-load:hover {background: var(--accent-blue-bg-hover);}
.btn-load:disabled {opacity: 0.5;cursor: not-allowed;}
.btn-reload {background: var(--accent-purple-bg);color: var(--accent-purple);}
.btn-reload:hover {background: var(--accent-purple-bg-hover);}
.btn-random {background: var(--accent-orange-bg);color: var(--accent-orange);}
.btn-random:hover {background: var(--accent-orange-bg-hover);}
.btn-copy {background: var(--accent-green-bg);color: var(--accent-green);}
.btn-copy:hover {background: var(--accent-green-bg-hover);}
.preview-controls {position: fixed;bottom: 20px;right: 20px;display: flex;gap: 8px;z-index: 100;}
.preview-controls button {width: 36px;height: 36px;border-radius: var(--radius-lg);background: var(--bg-interactive);border: 1px solid var(--border-secondary);color: var(--text-subtle);font-size: var(--fs-md);cursor: pointer;display: none;align-items: center;justify-content: center;backdrop-filter: blur(10px);transition: var(--transition);}
.preview-controls button.visible {display: flex;}
.preview-controls button:hover {background: var(--bg-interactive-hover);color: var(--text-tertiary);}
.quick-access-container {position: fixed;top: 20px;right: 20px;display: none;flex-direction: column;gap: 8px;z-index: 100;}
.quick-access-btn {width: 36px;height: 36px;border-radius: var(--radius-lg);display: flex;justify-content: center;align-items: center;font-size: var(--fs-md);background: var(--bg-interactive);border: 1px solid var(--border-secondary);backdrop-filter: blur(10px);cursor: pointer;transition: var(--transition);color: var(--text-subtle);}
.quick-access-btn:hover {background: var(--bg-interactive-hover);color: var(--text-tertiary);transform: scale(1.1);}

.details-panel {position: fixed;top: 20px;left: 50%;transform: translateX(-50%);max-width: 480px;width: calc(100% - 40px);max-height: 50vh;overflow-y: auto;background: var(--bg-panel);border-radius: var(--radius-xl);padding: 16px;backdrop-filter: var(--blur);border: 1px solid var(--border-primary);z-index: 100;display: none;}
.details-panel.show {display: block;}
.content-preview-panel {position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);max-width: 600px;width: calc(100% - 40px);max-height: 70vh;overflow: hidden;background: var(--bg-panel-notrans-2);border-radius: var(--radius-xl);padding: 16px;backdrop-filter: var(--blur);border: 1px solid var(--border-secondary);z-index: 2000;display: none;flex-direction: column;}
.content-preview-panel.show {display: flex;}
.content-preview-header {display: flex;justify-content: space-between;align-items: center;margin-bottom: 12px;padding-bottom: 8px;border-bottom: 1px solid var(--border-primary);}
.content-preview-header h3 {margin: 0;font-size: var(--fs-sm);font-weight: 500;color: var(--text-subtle);letter-spacing: 0.5px;}
.content-preview-close {width: 24px;height: 24px;border-radius: var(--radius-sm);background: transparent;border: 1px solid var(--border-secondary);color: var(--text-disabled);font-size: var(--fs-md);cursor: pointer;display: flex;align-items: center;justify-content: center;}
.content-preview-close:hover {background: var(--bg-strong-hover);}
.content-preview-body {flex: 1;overflow: auto;margin-bottom: 12px;}
.content-preview-text {background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-md);padding: 12px;font-family: var(--font-mono);font-size: var(--fs-sm);color: var(--text-tertiary);white-space: pre-wrap;word-break: break-all;max-height: 300px;overflow: auto;}
.content-preview-links {margin-top: 12px;}
.content-preview-links h4 {margin: 0 0 8px;font-size: var(--fs-xs);color: var(--text-disabled);text-transform: uppercase;letter-spacing: 0.5px;}
.content-link-item {display: flex;align-items: center;gap: 8px;padding: 8px;background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-md);margin-bottom: 6px;cursor: pointer;transition: var(--transition);}
.content-link-item:hover {background: var(--bg-strong-hover);border-color: var(--border-focus);}
.content-link-item input[type="radio"] {margin: 0;}
.content-link-item span {flex: 1;font-size: var(--fs-sm);color: var(--text-tertiary);word-break: break-all;}
.content-preview-footer {display: flex;gap: 8px;padding-top: 12px;border-top: 1px solid var(--border-primary);}
.content-preview-footer button {flex: 1;padding: 8px;font-size: var(--fs-xs);border: 1px solid var(--border-primary);border-radius: var(--radius-md);cursor: pointer;transition: var(--transition);}
.btn-recursive {background: var(--accent-blue-bg);color: var(--accent-blue);}
.btn-recursive:hover {background: var(--accent-blue-bg-hover);}
.btn-close-preview {background: var(--bg-input);color: var(--text-muted);}
.btn-close-preview:hover {background: var(--bg-strong-hover);}
.details-panel h3 {margin: 0 0 12px;font-size: var(--fs-xs);font-weight: 500;color: var(--text-placeholder);text-transform: uppercase;letter-spacing: 1px;}
.details-grid {display: grid;grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));gap: 10px;font-size: var(--fs-sm);}
.detail-item {display: flex;flex-direction: column;}
.detail-label {font-size: 9px;color: var(--text-placeholder);margin-bottom: 2px;text-transform: uppercase;letter-spacing: 0.5px;}
.detail-value {color: var(--text-muted);word-break: break-all;}
.tag-pill {display: inline-block;background: var(--bg-subtle-hover);color: var(--text-muted);padding: 2px 8px;border-radius: 10px;margin: 1px;font-size: 9px;border: 1px solid var(--border-primary);transition: all 0.15s ease;cursor: default;}
.tag-pill:hover {background: var(--bg-strong-hover);color: var(--text-secondary);}
.preview-progress {position: fixed;top: 0;left: 0;width: 100%;height: 2px;background: var(--bg-input);z-index: 200;}
.preview-progress-bar {height: 100%;background: var(--progress-bar-bg);width: 0%;transition: width 0.1s;}

.toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 2001; display: flex; flex-direction: column-reverse; gap: 8px; }
.toast-message { background: var(--bg-panel); color: var(--text-secondary); padding: 12px 18px; border-radius: var(--radius-md); border: 1px solid var(--border-primary); backdrop-filter: blur(20px); font-size: var(--fs-base); cursor: pointer; max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: all 0.3s ease; opacity: 0; transform: translateY(10px); }
.toast-message.show { opacity: 1; transform: translateY(0); }
.loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--bg-overlay); display: flex; justify-content: center; align-items: center; z-index: 2000; backdrop-filter: blur(8px); flex-direction: column; gap: 10px; }
.loading {display: inline-block;width: 28px;height: 28px;border: 3px solid var(--loader-bg);border-radius: var(--radius-full);border-top-color: var(--text-secondary);animation: spin 1s linear infinite;}
@keyframes spin { to { transform: rotate(360deg); } }
.secret-settings {display: none;position: fixed;top: 0;left: 0;width: 100%;height: 100%;background: var(--bg-overlay-dark);z-index: 1000;justify-content: center;align-items: center;backdrop-filter: blur(10px);}
.secret-settings-content {background: var(--bg-panel-notrans);padding: 16px;border-radius: var(--radius-lg);width: 90%;max-width: 400px;border: 1px solid var(--border-primary);backdrop-filter: var(--blur);}
.secret-settings h2 {color: var(--text-subtle);margin-bottom: 12px;text-align: center;font-size: var(--fs-sm);font-weight: 500;letter-spacing: 0.5px;}
.secret-input-group label {display: block;margin-bottom: 4px;color: var(--text-disabled);font-size: var(--fs-xs);text-transform: uppercase;letter-spacing: 0.5px;}
.secret-input-group select {width: 100%;padding: 8px 10px;font-size: var(--fs-sm);border: 1px solid var(--border-primary);border-radius: var(--radius-md);box-sizing: border-box;background-color: var(--bg-input);color: var(--text-secondary);}
.secret-input-group select:focus {outline: none;border-color: var(--border-focus);}
.secret-buttons button {flex: 1;padding: 8px;font-size: var(--fs-xs);font-weight: 500;border: none;border-radius: var(--radius-md);cursor: pointer;transition: var(--transition);}
.function-toggle {display: flex;margin-bottom: 10px;border: 1px solid var(--border-primary);border-radius: var(--radius-md);overflow: hidden;}
.function-toggle button {flex: 1;margin: 0;border-radius: 0;background-color: var(--bg-input);color: var(--text-muted);font-size: var(--fs-xs);padding: 8px;}
.gallery-sidebar {width: 240px;flex-shrink: 0;display: flex;flex-direction: column;gap: 14px;overflow-y: auto;overflow-x: hidden;padding-right: 14px;border-right: 1px solid var(--border-primary);}
.action-btn {padding: 6px 12px;font-size: var(--fs-sm);background: var(--accent-blue-bg);color: var(--text-primary);border: 1px solid var(--border-primary);border-radius: var(--radius-md);cursor: pointer;}
.tag-toggle {display: inline-block;padding: 3px 8px;font-size: var(--fs-xs);background: var(--bg-subtle-hover);color: var(--text-muted);border: 1px solid var(--border-primary);border-radius: var(--radius-sm);margin-left: 4px;cursor: pointer;}
.fill-url-btn {padding: 6px 12px;font-size: var(--fs-sm);background: var(--accent-blue-bg);color: var(--text-primary);border: 1px solid var(--border-primary);border-radius: var(--radius-md);cursor: pointer;}
.tag-panel {display: none;position: absolute;left: 0;top: 100%;z-index: 20;background: var(--bg-panel-notrans);border: 1px solid var(--border-primary);border-radius: var(--radius-lg);padding: 10px;max-height: 200px;overflow: auto;width: 100%;}
.tag-item {display: block;padding: 6px 10px;font-size: var(--fs-sm);border-radius: var(--radius-md);white-space: nowrap;overflow: hidden;text-overflow: ellipsis;cursor: pointer;color: var(--text-tertiary);}
.thumb-option {display: flex;align-items: center;gap: 8px;padding: 8px 12px;background: var(--bg-input);border: 1px solid var(--border-primary);color: var(--text-muted);border-radius: var(--radius-lg);font-size: var(--fs-sm);}
.pager-select, .pager-input {padding: 8px 12px;background: var(--bg-input);border: 1px solid var(--border-primary);color: var(--text-tertiary);border-radius: var(--radius-lg);font-size: var(--fs-base);}
.pager-btn {padding: 8px 14px;background: var(--accent-blue-bg);color: var(--text-secondary);border: 1px solid var(--border-primary);border-radius: var(--radius-lg);cursor: pointer;font-size: var(--fs-base);}
.gallery-sidebar input {padding: 10px 12px;background: var(--bg-input);border: 1px solid var(--border-primary);color: var(--text-secondary);border-radius: var(--radius-lg);font-size: var(--fs-base);}
.gallery-sidebar input:focus {outline: none;border-color: var(--border-focus);}
.gallery-sidebar label {color: var(--text-disabled);font-size: var(--fs-xs);text-transform: uppercase;letter-spacing: 0.5px;}
.progress-container {margin-top: 10px;width: 100%;max-width: 300px;height: 4px;background: var(--bg-strong-hover);border-radius: 2px;overflow: hidden;}
.progress-bar {height: 100%;background: var(--progress-bar-bg);transition: width 0.1s;}
.progress-stats {font-size: var(--fs-xs);color: var(--text-muted);margin-top: 4px;}
.loading-wrapper {padding: 16px;}
.gallery-header {display: flex;justify-content: space-between;align-items: center;margin-bottom: 10px;flex-shrink: 0;}
.gallery-header-left {display: flex;align-items: center;gap: 12px;}
.gallery-title {margin: 0;color: var(--text-subtle);font-size: var(--fs-sm);font-weight: 500;}
.gallery-random-btn {margin: 0;padding: 6px 12px;background: var(--accent-orange-bg);font-size: var(--fs-xs);border-radius: var(--radius-sm);border: none;cursor: pointer;color: var(--accent-orange);}
.gallery-close-btn {width: auto;padding: 4px 12px;}
.sidebar-label {display: block;color: var(--text-disabled);margin-bottom: 4px;font-size: var(--fs-xs);text-transform: uppercase;letter-spacing: 0.5px;}
.sidebar-input {padding: 8px 10px;background: var(--bg-input);border: 1px solid var(--border-primary);color: var(--text-secondary);border-radius: var(--radius-md);font-size: var(--fs-sm);width: 100%;box-sizing: border-box;}
.sidebar-input:focus {outline: none;border-color: var(--border-focus);}
.gallery-status {color: var(--text-subtle);font-size: var(--fs-xs);margin-top: 8px;word-break: break-all;}
.page-info {color: var(--text-subtle);font-size: var(--fs-xs);}
.gallery-loading {text-align: center;padding: 16px;}
.tag-dropdown-btn {padding: 6px 8px;font-size: var(--fs-xs);background: var(--bg-input);border: 1px solid var(--border-primary);border-radius: var(--radius-sm);color: var(--text-muted);cursor: pointer;width: 100%;text-align: left;}
.gallery-body {display: flex;gap: 20px;height: 70vh;margin-top: 10px;flex: 1;min-height: 0;}
.gallery-main {flex: 1;display: flex;flex-direction: column;min-width: 0;}
.gallery-table-container {flex: 1;overflow: auto;border: 1px solid var(--border-primary);border-radius: var(--radius-xl);}
.gallery-table {width: 100%;border-collapse: collapse;min-width: 800px;font-size: var(--fs-base);table-layout: auto;}
.gallery-table > thead {background: var(--bg-input);color: var(--text-subtle);position: sticky;top: 0;z-index: 10;}
.gallery-table th, .gallery-table td {padding: 10px 12px;border-bottom: 1px solid var(--bg-input);vertical-align: middle;}
.gallery-table th.th-center {text-align: center;}
.gallery-table th.th-left {text-align: left;white-space: nowrap;}
.gallery-table > tbody > tr:hover {background: var(--bg-input);}
.gallery-row {border-bottom: 1px solid var(--bg-input);color: var(--text-secondary);transition: background 0.15s ease;}
.gallery-row:hover {background: var(--bg-subtle-hover);}
.cell-title {min-width: 200px;max-width: 400px;white-space: normal;word-break: break-word;overflow-wrap: break-word;line-height: 1.4;}
.cell-desc {min-width: 200px;max-width: 400px;white-space: normal;word-break: break-word;overflow-wrap: break-word;line-height: 1.4;color: var(--text-muted);}
.cell-action {display: flex;gap: 5px;justify-content: center;align-items: center;}
.cell-tags {display: flex;flex-wrap: wrap;gap: 4px 6px;align-items: center;max-width: 300px;}
.cell-meta {white-space: nowrap;}
.meta-pill {display: inline-block;background: var(--bg-strong-hover);color: var(--text-tertiary);padding: 3px 10px;border-radius: var(--radius-xl);margin-right: 4px;font-size: var(--fs-xs);white-space: nowrap;border: 1px solid var(--border-secondary);transition: var(--transition);}
.meta-pill:hover {background: var(--border-focus);color: var(--text-secondary);}
.gallery-table > thead > tr > .action-col {position: sticky;left: 0;z-index: 11;background: var(--bg-input);}
.gallery-table > tbody > tr > .action-col {position: sticky;left: 0;z-index: 5;background: var(--bg-panel);border-right: 1px solid var(--bg-input);}
.gallery-sidebar select, .gallery-sidebar input, .gallery-sidebar .input-wrapper {width: 100% !important;box-sizing: border-box;}
.gallery-sidebar .filters-row select, .gallery-sidebar .filters-row input {width: auto !important;flex: 0 0 auto;}
.gallery-sidebar .filters-row .thumb-option {flex: 0 0 auto;}
.filters-row {display: flex;gap: 8px;}
.filters-row .tag-dropdown {flex: 1;min-width: 0;}
.selected-tags-row {display: flex;align-items: center;gap: 10px;}
.selected-group {flex: 1;min-width: 0;display: flex;align-items: center;gap: 6px;}
.selected-label {color: var(--text-disabled);font-size: var(--fs-xs);}
.selected-tags {display: flex;flex-wrap: wrap;gap: 4px;}
.selected-tags .tag-pill {cursor: pointer;}
.hidden {display: none !important;}
.flex {display: flex;}
.flex-col {flex-direction: column;}
.items-center {align-items: center;}
.justify-between {justify-content: space-between;}
.gap-2 {gap: 8px;}
.gap-3 {gap: 12px;}
.mt-2 {margin-top: 8px;}
.mb-2 {margin-bottom: 8px;}
.text-center {text-align: center;}
.w-full {width: 100%;}
.tag-dropdown {position: relative;}
.close-secret {background: var(--accent-red-bg);color: var(--accent-red);}
.close-secret:hover {background: var(--accent-red-bg-hover);}
.function-toggle button.active {background-color: var(--accent-blue-bg);color: var(--text-primary);}
.action-btn:hover, .fill-url-btn:hover {background: var(--accent-blue-bg-hover);}
.tag-item:hover {background: var(--bg-subtle-hover);}
.tag-item.selected {background: var(--accent-blue-bg);color: var(--text-primary);}
.tag-dropdown button {width: 100%;text-align: left;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.tag-panel.open {display: block;overflow-y: auto;overflow-x: hidden;}
.scaled-image {max-width: 100%;max-height: 100vh;object-fit: contain;}
.original-image {max-width: none;max-height: none;width: auto;height: auto;}
.input-wrapper {margin-bottom: 0;}
.retry-btn {padding: 4px 12px;font-size: var(--fs-xs);background: var(--accent-orange-bg);color: var(--accent-orange);border: 1px solid var(--border-primary);border-radius: var(--radius-sm);cursor: pointer;margin-top: 8px;}
.retry-btn:hover {background: var(--accent-orange-bg-hover);}
.error-actions {display: flex;gap: 8px;justify-content: center;margin-top: 8px;}
.error-status {font-size: var(--fs-xs);color: var(--text-error);margin-top: 4px;text-align: center;}
.retry-progress {font-size: 9px;color: var(--text-tertiary);margin-top: 4px;}
.drag-over {border: 2px dashed var(--drag-over-border) !important;background: var(--drag-over-bg) !important;}
.focus-visible:focus {outline: 2px solid var(--drag-over-border);outline-offset: 2px;}
.btn-action:focus, .compact-input:focus, .header-proxy-select:focus {outline: 2px solid var(--focus-outline);outline-offset: 1px;}
.shortcuts-hint {position: fixed;bottom: 60px;left: 50%;transform: translateX(-50%);padding: 8px 16px;background: var(--bg-panel);border-radius: var(--radius-lg);border: 1px solid var(--border-primary);font-size: var(--fs-xs);color: var(--text-subtle);display: none;z-index: 50;}
.shortcuts-hint.show {display: block;}

@media (max-width: 768px) {
html, body {font-size: 14px;}
.floating-menu {bottom: 10px;left: 10px;}
.floating-menu-content {width: calc(100vw - 20px);max-width: 300px;left: 0;right: 0;margin: 0 auto;}
.floating-menu-toggle {width: 44px;height: 44px;font-size: 18px;}
.menu-header {flex-wrap: wrap;}
.header-proxy-select {max-width: 100%;flex-basis: 100%;margin-top: 6px;}
.preview-controls {bottom: 10px;right: 10px;}
.preview-controls button {width: 44px;height: 44px;font-size: 16px;}
.quick-access-container {top: 10px;right: 10px;}
.quick-access-btn {width: 44px;height: 44px;font-size: 16px;}
.cache-fab {bottom: 70px;right: 10px;width: 44px;height: 44px;}
.gallery-body {flex-direction: column;height: auto;min-height: 50vh;}
.gallery-sidebar {width: 100%;border-right: none;border-bottom: 1px solid var(--border-primary);padding-right: 0;padding-bottom: 14px;}
.gallery-table-container {overflow-x: auto;}
.gallery-table {min-width: 600px;}
.cell-title, .cell-desc {min-width: 150px;max-width: 200px;}
.cache-modal-content, .secret-settings-content {width: 95%;max-width: none;padding: 12px;}
.details-panel {top: 10px;width: calc(100% - 20px);max-height: 60vh;}
.content-preview-panel {width: calc(100% - 20px);max-height: 80vh;padding: 12px;}
.btn-action {padding: 8px 6px;font-size: 11px;}
.pager-btn-compact, .mini-pager-btn {width: 32px;height: 28px;}
}

@media (max-width: 480px) {
.floating-menu-content {padding: 6px;width: calc(100vw - 10px);}
.menu-title {font-size: 10px;}
.compact-input {font-size: 11px;padding: 8px;}
.btn-action {padding: 10px 4px;font-size: 10px;}
.gallery-sidebar {gap: 10px;}
.sidebar-input, .sidebar-label {font-size: 12px;}
.cell-title, .cell-desc {min-width: 100px;max-width: 150px;font-size: 11px;}
.meta-pill {font-size: 9px;padding: 2px 6px;}
.tag-pill {font-size: 8px;padding: 2px 6px;}
}

@media (hover: none) and (pointer: coarse) {
.btn-action:hover, .pager-btn-compact:hover, .mini-pager-btn:hover {background: inherit;}
.btn-action:active, .pager-btn-compact:active, .mini-pager-btn:active {background: var(--border-focus);}
.floating-menu-content {backdrop-filter: none;background: var(--bg-panel-notrans-2);}
}

@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;transition-duration: 0.01ms !important;}
}

@media print {
.floating-menu, .preview-controls, .quick-access-container, .cache-fab, .cache-modal, .secret-settings, .details-panel {display: none !important;}
html, body {background: white;color: black;}
.fullscreen-preview {position: static;width: 100%;height: auto;}
}