@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.toast-container{position:fixed;bottom:var(--space-4);z-index:10000;display:flex;flex-direction:column-reverse;gap:var(--space-2);pointer-events:none;max-width:380px}.toast-container-right{right:var(--space-4);align-items:flex-end}.toast-container-left{left:var(--space-4);align-items:flex-start}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background-color:var(--color-bg-primary);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--color-text-primary);animation:toast-slide-in .25s ease-out}.toast-success{border-left:3px solid #22c55e}.toast-error{border-left:3px solid var(--color-error)}.toast-warning{border-left:3px solid #f59e0b}.toast-info{border-left:3px solid var(--color-accent)}.toast-icon{flex-shrink:0}.toast-success .toast-icon{color:#22c55e}.toast-error .toast-icon{color:var(--color-error)}.toast-warning .toast-icon{color:#f59e0b}.toast-info .toast-icon{color:var(--color-accent)}.toast-message{flex:1;line-height:1.4}.toast-message-button{appearance:none;background:none;border:none;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.toast-message-button:hover{color:var(--color-accent)}.toast-dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.toast-dismiss:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.toast-container-right .toast{animation:toast-slide-in-right .25s ease-out}.toast-container-left .toast{animation:toast-slide-in-left .25s ease-out}@keyframes toast-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn .15s ease}.modal{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:calc(100vh - var(--space-8));display:flex;flex-direction:column;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-sm{width:100%;max-width:400px}.modal-md{width:100%;max-width:560px}.modal-lg{width:100%;max-width:720px}.modal-xl{width:100%;max-width:1024px}.modal-full{width:calc(100vw - var(--space-8));height:calc(100vh - var(--space-8));max-width:none;max-height:none}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.modal-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.modal-close:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.modal-content{padding:var(--space-6);overflow-y:auto;flex:1}.modal-full .modal-content{padding:0}.theme-toggle{display:flex;gap:var(--space-1);padding:2px;background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.theme-toggle-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.theme-toggle-btn:hover{color:var(--color-text-primary)}.theme-toggle-btn.active{background:var(--color-bg-primary);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.settings-modal{min-width:320px}.settings-section{margin-bottom:var(--space-6)}.settings-section:last-child{margin-bottom:0}.settings-section-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);color:var(--color-text-primary)}.settings-section-header h3{margin:0;font-size:var(--text-base);font-weight:var(--font-semibold)}.settings-description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;margin:0 0 var(--space-4)}.settings-input-group{margin-bottom:var(--space-4)}.settings-input-wrapper{position:relative;display:flex;align-items:center}.settings-input{width:100%;padding:var(--space-3) var(--space-4);padding-right:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:monospace;background-color:var(--color-bg-secondary);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.settings-input:focus{outline:none;border-color:var(--color-accent)}.settings-input-masked{-webkit-text-security:disc}.settings-input::placeholder{-webkit-text-security:none;color:var(--color-text-muted);font-family:inherit}.settings-input-toggle{position:absolute;right:var(--space-2);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.settings-input-toggle:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.settings-actions{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.settings-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.settings-btn:disabled{opacity:.5;cursor:not-allowed}.settings-btn-primary{background-color:var(--color-accent);color:#fff}.settings-btn-primary:hover:not(:disabled){background-color:var(--color-accent-dark, #2563eb)}.settings-btn-danger{background-color:transparent;color:var(--color-error);border:1px solid var(--color-error)}.settings-btn-danger:hover{background-color:#ef44441a}.settings-info{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.settings-info a{color:var(--color-accent);text-decoration:none}.settings-info a:hover{text-decoration:underline}.settings-status{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm)}.settings-status-success{background-color:#22c55e1a;color:#22c55e}.settings-status-error{background-color:#ef44441a;color:#ef4444}.settings-loading{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);color:var(--color-text-secondary);font-size:var(--text-sm)}.settings-radio-group{display:flex;gap:var(--space-2)}.settings-radio-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-3) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.settings-radio-btn:hover{border-color:var(--color-accent)}.settings-radio-btn-active{border-color:var(--color-accent);background:#3b82f61a;color:var(--color-accent)}.settings-radio-hint{font-size:var(--text-xs);font-weight:400;color:var(--color-text-muted)}.settings-radio-btn-active .settings-radio-hint{color:var(--color-accent);opacity:.8}.settings-subhead{display:block;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-tertiary);margin:var(--space-4) 0 var(--space-2)}.settings-subhead:first-child{margin-top:0}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2)}.settings-toggle-label{font-size:var(--text-sm);color:var(--color-text-primary)}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;background:none;cursor:pointer;border-radius:var(--radius-full);overflow:hidden;transition:opacity var(--transition-fast)}.user-menu-trigger:hover{opacity:.8}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);object-fit:cover}.user-avatar-initials{display:flex;align-items:center;justify-content:center;background-color:var(--color-accent);color:#fff;font-size:var(--text-sm);font-weight:var(--font-semibold)}.user-menu-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:200px;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;animation:dropdownSlide .15s ease}.user-menu-header{padding:var(--space-3) var(--space-4)}.user-menu-name{display:block;font-weight:var(--font-medium);color:var(--color-text-primary)}.user-menu-email{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.user-menu-divider{height:1px;background-color:var(--color-border-light);margin:var(--space-1) 0}.user-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);border:none;background:none;font-size:var(--text-sm);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.user-menu-item:hover{background-color:var(--color-bg-hover)}.user-menu-item-danger{color:var(--color-error)}.user-menu-item-danger:hover{background-color:#fa52521a}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:50}.header-left{display:flex;align-items:center;gap:var(--space-3)}.header-menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.header-menu-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.header-logo{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-primary);text-decoration:none}.header-logo:hover{color:var(--color-accent)}.header-logo-text{font-size:calc(var(--text-lg) * 2);font-weight:var(--font-semibold)}.header-center{flex:1;display:flex;justify-content:center;max-width:400px;margin:0 var(--space-4)}.header-right{display:flex;align-items:center;gap:var(--space-3)}.header-upload-btn span{display:none}.header-gallery-toggle{display:flex;align-items:center;background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:2px;gap:2px}.header-toggle-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.header-toggle-btn:hover{color:var(--color-text-primary)}.header-toggle-btn-active{background-color:var(--color-bg-primary);color:var(--color-accent);box-shadow:var(--shadow-sm)}.header-toggle-btn span{display:none}.generation-indicator{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:12px;color:#60a5fa;font-size:12px;font-weight:500;animation:gen-pulse 2s ease-in-out infinite}.generation-indicator-countdown{margin-left:6px;padding:0 6px;border-radius:8px;font-size:11px;font-variant-numeric:tabular-nums;background:#ffffff1f}@keyframes gen-pulse{0%,to{opacity:1}50%{opacity:.6}}.header-notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#3b82f6;color:#fff;font-size:11px;font-weight:700;line-height:1;margin-left:4px}.header-notification-badge-standalone{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;margin-right:var(--space-2);border:none;border-radius:11px;background:#3b82f6;color:#fff;font-size:12px;font-weight:700;line-height:1;cursor:pointer;transition:background .15s,transform .1s}.header-notification-badge-standalone:hover{background:#2563eb}.header-notification-badge-standalone:active{transform:scale(.95)}@media(max-width:1024px){.header-menu-btn{display:flex}}@media(min-width:640px){.header-upload-btn span,.header-toggle-btn span{display:inline}}@media(max-width:640px){.header-center,.header-logo-text{display:none}}.search-mode-toggle{display:flex;background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:2px}.search-mode-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:none;background:none;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.search-mode-btn:hover{color:var(--color-text-primary)}.search-mode-btn-active{background-color:var(--color-bg-primary);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}@media(max-width:480px){.search-mode-btn span{display:none}}.filter-section{display:flex;flex-direction:column;gap:4px}.filter-image-type-group{display:flex;flex-direction:column;gap:2px}.filter-image-type-option{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background-color .15s;-webkit-user-select:none;user-select:none}.filter-image-type-option:hover,.filter-image-type-option-active{background:var(--color-bg-hover)}.filter-image-type-checkbox{width:16px;height:16px;border-radius:3px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.filter-image-type-label{font-size:13px;color:var(--color-text-primary)}.filter-image-type-option-active .filter-image-type-label{color:var(--color-accent);font-weight:500}.flag-filter{margin-top:var(--space-4)}.flag-filter-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.flag-filter-buttons{display:flex;gap:var(--space-2)}.flag-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:2px solid var(--color-border);background:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--flag-color)}.flag-btn:hover{border-color:var(--flag-color);background-color:var(--color-bg-hover)}.flag-btn-active{border-color:var(--flag-color);background-color:var(--flag-color);color:#fff}.flag-btn-active:hover{opacity:.9}.flag-dot{width:12px;height:12px;border-radius:var(--radius-full);background-color:var(--flag-color)}.flag-btn-active .flag-dot{background-color:#fff}.flag-btn-tier{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);min-width:32px}.flag-btn-tier:hover{border-color:var(--color-accent);background-color:var(--color-bg-hover)}.flag-btn-tier.flag-btn-active{background:var(--color-accent-light);color:var(--color-accent);border-color:var(--color-accent)}.flag-filter-label-state{margin-top:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:var(--font-medium);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);height:32px}.btn-md{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);height:40px}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base);height:48px}.btn-primary{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-hover);border-color:var(--color-text-muted)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.btn-danger{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.btn-danger:hover:not(:disabled){background-color:#e03131;border-color:#e03131}.btn-loading{position:relative;color:transparent}.btn-spinner{position:absolute;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.btn-loading .btn-spinner{color:#fff}.btn-secondary.btn-loading .btn-spinner{color:var(--color-text-primary)}.btn-icon{display:flex;align-items:center;justify-content:center}.btn-icon svg{width:18px;height:18px}.dropdown{position:relative;width:100%}.dropdown-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2) var(--space-3);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.dropdown-trigger:hover:not(:disabled){border-color:var(--color-text-muted)}.dropdown-trigger:disabled{opacity:.6;cursor:not-allowed}.dropdown-trigger-open{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.dropdown-value{display:flex;align-items:center;gap:var(--space-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-placeholder{color:var(--color-text-muted)}.dropdown-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform var(--transition-fast)}.dropdown-trigger-open .dropdown-chevron{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;right:0;margin-top:var(--space-1);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:240px;overflow-y:auto;z-index:100;animation:dropdownSlide .15s ease}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;font-size:var(--text-sm);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.dropdown-option:hover{background-color:var(--color-bg-hover)}.dropdown-option-selected{background-color:var(--color-accent-light);color:var(--color-accent)}.dropdown-count{font-size:var(--text-xs);color:var(--color-text-muted)}.dropdown-option-selected .dropdown-count{color:var(--color-accent)}.spinner{border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-accent);animation:spin .6s linear infinite}.spinner-sm{width:16px;height:16px}.spinner-md{width:24px;height:24px}.spinner-lg{width:40px;height:40px;border-width:3px}.arrange-section{display:flex;flex-direction:column;gap:var(--space-3)}.arrange-row{display:flex;flex-direction:column}.action-buttons{display:flex;flex-direction:column;gap:var(--space-2)}.action-buttons .action-btn.btn{width:100%;justify-content:flex-start}.action-btn-link{text-decoration:none;display:block}.action-btn-link .action-btn.btn{width:100%;justify-content:flex-start}.compartment-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.compartment-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.04em;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.compartment-toggle-btn:hover{color:var(--color-text-primary);background-color:var(--color-bg-hover)}.compartment-toggle-btn-active{background-color:var(--color-bg-primary);color:var(--color-accent);box-shadow:var(--shadow-sm)}.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);background-color:var(--color-bg-primary);border-right:1px solid var(--color-border-light);overflow-y:auto;transition:width var(--transition-normal);z-index:30}.sidebar-collapsed{width:0;border-right:none}.sidebar-toggle{position:absolute;top:var(--space-4);right:-12px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;z-index:10;transition:all var(--transition-fast)}.sidebar-toggle:hover{background-color:var(--color-bg-hover)}.sidebar-collapsed .sidebar-toggle{right:-36px}.sidebar-content{padding:var(--space-4)}.sidebar-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.sidebar-section{margin-bottom:var(--space-4)}.sidebar-section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 var(--space-3) 0}.sidebar-divider{height:1px;background-color:var(--color-border-light);margin:var(--space-4) 0}.sidebar-mobile{display:none;position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background-color:var(--color-bg-primary);transform:translate(-100%);transition:transform var(--transition-normal);z-index:50;overflow-y:auto}.sidebar-mobile-open{transform:translate(0)}.sidebar-mobile-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border-light)}.sidebar-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.sidebar-close:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}@media(max-width:1024px){.sidebar{display:none}.sidebar-mobile{display:block}}.sidebar-file-input{display:none}.sidebar-image-upload{margin-top:var(--space-2)}.sidebar-upload-search-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.sidebar-upload-search-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#3b82f60d}.gallery-layout{display:flex;flex-direction:column;min-height:100vh;width:100%}.gallery-body{display:flex;flex:1;padding-top:var(--header-height)}.gallery-main{flex:1;margin-left:var(--sidebar-width);min-width:0;min-height:calc(100vh - var(--header-height));transition:margin-left var(--transition-normal);background-color:var(--color-bg-secondary)}.gallery-main-expanded{margin-left:0}.sidebar-overlay{position:fixed;inset:0;background-color:#00000080;z-index:40;display:none}@media(max-width:1024px){.gallery-main{margin-left:0}.sidebar-overlay{display:block}}.tier-flag-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 3px;border-radius:10px;border:2px solid rgba(255,255,255,.8);box-shadow:0 1px 2px #0000004d;color:#fff;font-size:9px;font-weight:700;line-height:1;letter-spacing:.3px;cursor:help;-webkit-user-select:none;user-select:none}.tier-flag-badge-md{min-width:30px;height:24px;padding:0 4px;border-radius:12px;font-size:11px}.media-card{background-color:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden;cursor:pointer;transition:all var(--transition-fast)}.media-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.media-card-selected{outline:2px solid var(--color-accent);outline-offset:2px}.media-card-selected .media-card-image-container:after{content:"";position:absolute;inset:0;background:rgba(var(--color-accent-rgb, 99, 102, 241),.1);pointer-events:none;z-index:1}.media-card-selected .media-card-overlay{opacity:1}.media-card-image-container{position:relative;background-color:var(--color-bg-tertiary)}.media-card-grid .media-card-image-container{aspect-ratio:1}.media-card-masonry{display:flex;flex-direction:column;min-width:0;max-width:100%;overflow:hidden}.media-card-masonry .media-card-image-container{flex:1 1 auto;width:100%;height:100%;aspect-ratio:auto}.media-card-masonry .media-card-image{object-fit:contain}.media-card-masonry .media-card-footer{display:none}.media-card-image{width:100%;height:100%;object-fit:cover;display:block}.media-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--text-sm)}.media-card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.3) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.3) 100%);opacity:0;pointer-events:none;transition:opacity var(--transition-fast);padding:var(--space-2)}.media-card-overlay-visible{opacity:1;pointer-events:auto}.media-card-favourite{position:absolute;top:var(--space-2);left:var(--space-2);height:28px;min-width:28px;border:none;background:#00000080;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:3px;transition:all var(--transition-fast);box-shadow:0 1px 3px #0000004d;padding:0 6px;font-size:14px;line-height:1}.media-card-favourite:hover{background:#000000b3;transform:scale(1.1)}.media-card-favourite-active{background:#3b82f680}.media-card-favourite-active:hover{background:#3b82f6b3}.media-card-favourite-count{color:#fff;font-size:11px;font-weight:600;line-height:1;pointer-events:none}.media-card-actions{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px}.media-card-action{width:30px;height:30px;border:none;background:#000000b3;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;transition:all var(--transition-fast);box-shadow:0 1px 3px #0000004d}.media-card-action:hover{background:var(--color-accent, #3b82f6);transform:scale(1.1)}.media-card-like-badge{position:absolute;top:var(--space-2);left:var(--space-2);height:28px;padding:0 8px;background:#00000080;border-radius:var(--radius-full);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;gap:4px;pointer-events:none;z-index:1;line-height:1;box-shadow:0 1px 3px #0000004d}.media-card-badges{position:absolute;bottom:var(--space-2);left:var(--space-2);display:flex;gap:4px;align-items:center}.media-card-new-upload-dot{position:absolute;top:8px;left:8px;width:12px;height:12px;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 2px #ffffffd9,0 1px 2px #0003;pointer-events:auto;z-index:4}.tier-flag-badge-approved-final{font-weight:700;text-align:center}.media-card-flag{width:14px;height:14px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.8);box-shadow:0 1px 2px #0000004d;cursor:help}.media-card-flag-green{background-color:#22c55e}.media-card-flag-yellow{background-color:#eab308}.media-card-flag-red{background-color:#ef4444}.media-card-status{width:18px;height:18px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 1px 2px #0000004d;cursor:help}.media-card-status-approved{background-color:#22c55e}.media-card-similarity-container{position:absolute;bottom:var(--space-2);right:var(--space-2);display:none;flex-direction:column;gap:2px;align-items:flex-end}html[data-show-similarity-scores=true] .media-card-similarity-container{display:flex}.media-card-similarity{display:flex;align-items:center;gap:3px;color:#fff;font-size:10px;font-weight:600;padding:2px 5px;border-radius:var(--radius-sm);box-shadow:0 1px 2px #0000004d;cursor:help}.media-card-similarity-text{background:#3b82f6e6}.media-card-similarity-image{background:#9333eae6}.media-card-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-light)}.media-card-filename{font-size:13px;color:var(--color-text-secondary);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=dark] .media-card-overlay{background:linear-gradient(to top,rgba(0,0,0,.5),transparent)}.media-card-scene-status{position:absolute;bottom:var(--space-2);left:var(--space-2);display:flex;align-items:center;gap:4px;z-index:4;pointer-events:none}.media-card-scene-dot{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 2px #ffffffd9,0 1px 2px #00000040}.media-card-scene-dot-new{background:#3b82f6;width:12px;height:12px}.media-card-skeleton{background-color:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden}.skeleton-image{aspect-ratio:1;background:linear-gradient(90deg,var(--color-bg-tertiary) 0%,var(--color-bg-hover) 50%,var(--color-bg-tertiary) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border-light)}.skeleton-text{height:14px;width:70%;background:linear-gradient(90deg,var(--color-bg-tertiary) 0%,var(--color-bg-hover) 50%,var(--color-bg-tertiary) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center}.empty-state-icon{color:var(--color-text-muted);margin-bottom:var(--space-4)}.empty-state-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.empty-state-description{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;max-width:400px}.empty-state-clear{margin-top:var(--space-4);background:none;border:none;color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.empty-state-clear:hover{background-color:var(--color-accent-light)}.load-more-card{background-color:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden;cursor:pointer;transition:all var(--transition-fast);border:2px dashed var(--color-border);display:flex;align-items:center;justify-content:center}.load-more-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);border-color:var(--color-accent);background-color:var(--color-bg-hover)}.load-more-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.load-more-card-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);aspect-ratio:1;width:100%;box-sizing:border-box}.load-more-card-icon{font-size:2.5rem;font-weight:300;color:var(--color-text-muted);line-height:1;transition:color var(--transition-fast)}.load-more-card:hover .load-more-card-icon{color:var(--color-accent)}.load-more-card-text{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.load-more-card-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:load-more-spin .8s linear infinite}@keyframes load-more-spin{to{transform:rotate(360deg)}}.page-size-selector{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted)}.page-size-selector label{white-space:nowrap}.page-size-selector select{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:4px;padding:3px 6px;font-size:13px;cursor:pointer}.page-size-selector select:hover{border-color:var(--color-text-muted)}.gallery-layout-toggle{display:inline-flex;background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:2px;gap:2px}.gallery-layout-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:none;background:none;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.04em;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.gallery-layout-btn:hover{color:var(--color-text-primary)}.gallery-layout-btn-active{background-color:var(--color-bg-primary);color:var(--color-accent);box-shadow:var(--shadow-sm)}.gallery-layout-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(max-width:640px){.gallery-layout-btn span{display:none}}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:var(--space-3);color:var(--color-text-muted);pointer-events:none}.search-input{width:100%;padding:var(--space-2) var(--space-3);padding-left:calc(var(--space-3) + 18px + var(--space-2));padding-right:calc(var(--space-3) + 16px + var(--space-2));background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);transition:all var(--transition-fast)}.search-input::placeholder{color:var(--color-text-muted)}.search-input:focus{outline:none;border-color:var(--color-accent);background-color:var(--color-bg-primary);box-shadow:0 0 0 3px var(--color-accent-light)}.search-clear{position:absolute;right:var(--space-2);display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.search-clear:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.gallery-grid-container{padding:var(--space-6);padding-bottom:80px}.gallery-grid-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);position:sticky;top:var(--header-height);z-index:20;background-color:var(--color-bg-secondary);padding:var(--space-4) 0;margin-top:calc(-1 * var(--space-4))}.gallery-grid-count{font-size:var(--text-sm);color:var(--color-text-secondary)}.gallery-grid-header-right{display:flex;align-items:center;gap:16px}.gallery-grid-pagination{display:flex;align-items:center;gap:8px}.gallery-grid-search{width:300px}.gallery-grid{gap:var(--grid-gap)}.gallery-grid-mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min-width),1fr))}.gallery-grid-mode-masonry{display:flex;flex-wrap:wrap;align-content:flex-start}.gallery-grid-mode-masonry>*{height:var(--masonry-row-height);flex:1 1 calc(var(--masonry-row-height) * 1.5);min-width:0;max-width:100%}.gallery-grid-masonry-sentinel{flex-grow:999!important;flex-basis:0!important;height:0!important;min-width:0;pointer-events:none}.load-more-btn{padding:var(--space-3) var(--space-6);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.load-more-btn:hover{background-color:var(--color-bg-hover);border-color:var(--color-text-muted)}.gallery-grid-month-divider{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) 0 var(--space-2);margin:0;font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.gallery-grid-mode-grid>.gallery-grid-month-divider{grid-column:1 / -1}.gallery-grid-mode-masonry>.gallery-grid-month-divider{flex:0 0 100%;height:auto;max-width:100%;min-width:0}.gallery-grid-month-divider:after{content:"";flex:1;border-bottom:1px solid var(--color-border)}.gallery-grid-month-divider-label{flex:0 0 auto;white-space:nowrap}.image-viewer{width:100%;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.image-viewer-container{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.image-viewer-img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .1s ease-out,opacity .2s ease;-webkit-user-select:none;user-select:none}.image-viewer-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.image-viewer-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.image-viewer-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-muted)}.image-viewer-error svg:first-child{opacity:.4}.image-viewer-error span{font-size:var(--text-sm)}.image-viewer-retry-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.image-viewer-retry-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.image-viewer-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);background-color:#000c}.image-viewer-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:#ffffff1a;color:#fff;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.image-viewer-btn:hover{background:#fff3}.image-viewer-btn-text{font-size:var(--text-sm);font-weight:600;line-height:1;padding:0 var(--space-2);min-width:36px;width:auto}.image-viewer-scale{font-size:var(--text-sm);color:#fffc;min-width:60px;text-align:center}.image-viewer-dimensions{font-size:var(--text-xs);color:#ffffff80;margin-left:var(--space-2);white-space:nowrap;-webkit-user-select:none;user-select:none}.image-viewer-preloader{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.image-viewer-hd-badge{font-size:10px;font-weight:700;letter-spacing:.5px;padding:2px 6px;border-radius:var(--radius-sm);background:#ffffff26;color:#fff6;margin-left:var(--space-2);transition:all .3s ease;-webkit-user-select:none;user-select:none}.image-viewer-hd-badge.active{background:#22c55e33;color:#22c55e}.mention-autocomplete{position:absolute;bottom:100%;left:var(--space-2);right:var(--space-2);max-height:160px;overflow-y:auto;background:var(--color-bg-primary, #1a1a2e);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:0 -4px 12px #0000004d;z-index:10;display:flex;flex-direction:column;padding:var(--space-1) 0}.mention-option{display:block;width:100%;text-align:left;padding:var(--space-1) var(--space-3);border:none;background:none;color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;font-family:inherit}.mention-option:hover,.mention-option-active{background:var(--color-accent-subtle, rgba(59, 130, 246, .15));color:var(--color-accent)}.chat-thread{display:flex;flex-direction:column}.chat-thread-messages{flex:1;overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2);min-height:80px;max-height:320px}.chat-thread-empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-4)}.chat-bubble{max-width:85%;padding:var(--space-2) var(--space-3);border-radius:12px;font-size:var(--text-sm);line-height:1.4}.chat-bubble-own{align-self:flex-end;background:var(--color-accent, #3b82f6);color:#fff;border-bottom-right-radius:4px}.chat-bubble-own .chat-bubble-author,.chat-bubble-own .chat-bubble-time{color:#ffffffb3}.chat-bubble-other{align-self:flex-start;background:var(--color-bg-secondary, #2a2a3a);color:var(--color-text-primary);border-bottom-left-radius:4px}.chat-bubble-legacy{align-self:stretch;max-width:100%;background:var(--color-bg-tertiary, #1e1e2e);border:1px dashed var(--color-border-light);border-radius:var(--radius-md);font-style:italic}.chat-bubble-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:2px;font-size:11px}.chat-bubble-author{font-weight:600;color:var(--color-text-secondary)}.chat-bubble-time{color:var(--color-text-muted)}.chat-bubble-delete{margin-left:auto;border:none;background:none;color:var(--color-text-muted);cursor:pointer;padding:2px;border-radius:var(--radius-sm);opacity:0;transition:opacity var(--transition-fast)}.chat-bubble:hover .chat-bubble-delete{opacity:1}.chat-bubble-delete:hover{color:var(--color-error, #ef4444)}.chat-bubble-text{word-wrap:break-word;white-space:pre-wrap}.chat-thread-input{position:relative;display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-2);border-top:1px solid var(--color-border-light)}.chat-thread-input textarea{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-light);border-radius:16px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--text-sm);font-family:inherit;outline:none;resize:none;min-height:36px;max-height:80px;line-height:1.4;overflow-y:auto}.chat-thread-input textarea:focus{border-color:var(--color-accent)}.chat-send-btn{width:36px;height:36px;border:none;border-radius:var(--radius-full);background:var(--color-accent, #3b82f6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.chat-send-btn:hover:not(:disabled){background:var(--color-accent-hover, #2563eb)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.mention{background:#3b82f626;color:var(--color-accent, #3b82f6);border-radius:3px;padding:0 3px;font-weight:600}.mention-group{background:#3b82f640}.chat-bubble-own .mention,.chat-bubble-own .mention-group{background:#fff3;color:#fff}.metadata-panel{padding:var(--space-4)}.metadata-section{margin-bottom:var(--space-6)}.metadata-section-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-3) 0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-light)}.metadata-field{margin-bottom:var(--space-3)}.metadata-field label{display:block;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.metadata-field input,.metadata-field textarea{width:100%;padding:var(--space-2);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);transition:all var(--transition-fast)}.metadata-field input:focus,.metadata-field textarea:focus{outline:none;border-color:var(--color-accent);background-color:var(--color-bg-primary)}.metadata-field textarea{resize:vertical;min-height:200px}.metadata-field textarea.metadata-tags-textarea{min-height:0;height:auto;resize:vertical;word-break:break-word;white-space:pre-wrap}.metadata-field-readonly span{display:block;font-size:var(--text-sm);color:var(--color-text-primary);padding:var(--space-2);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.metadata-field-copyable span{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.metadata-field-copyable .copyable-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.metadata-field-copyable .copy-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:2px 4px;font-size:var(--text-sm);border-radius:var(--radius-sm);opacity:.5;transition:opacity .15s}.metadata-field-copyable .copy-btn:hover{opacity:1;background-color:var(--color-bg-secondary)}.comments-save-row{display:flex;justify-content:flex-end;margin-top:var(--space-2)}.metadata-flag-selector{display:flex;align-items:center;gap:var(--space-2)}.metadata-flag-select{flex:1;padding:var(--space-2);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.metadata-flag-select:focus{outline:none;border-color:var(--color-accent);background-color:var(--color-bg-primary)}.metadata-flag-preview{width:20px;height:20px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.3);flex-shrink:0}.metadata-flag-preview-approved{background-color:#22c55e;display:flex;align-items:center;justify-content:center;color:#fff}.metadata-saving-indicator{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:400}.metadata-approval-checkboxes{display:flex;gap:12px;align-items:center}.approval-checkbox{display:flex;align-items:center;gap:4px;cursor:pointer;padding:4px 8px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg-primary);transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.approval-checkbox:hover:not(.approval-checkbox-disabled){background:var(--color-bg-hover)}.approval-checkbox-checked{background:#22c55e1a;border-color:#22c55e}.approval-checkbox-disabled{opacity:.5;cursor:not-allowed}.approval-checkbox input[type=checkbox]{accent-color:#22c55e}.approval-checkbox-label{font-size:13px;font-weight:600;letter-spacing:.5px}.approval-checkbox-saving{font-size:11px;opacity:.6}.metadata-actions{padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}.metadata-actions button{width:100%;justify-content:center}.metadata-flag-buttons{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.gallery-recaption-modal-backdrop{position:fixed;inset:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem}.gallery-recaption-modal{background:var(--surface-color, #1e1e2e);border-radius:12px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.gallery-recaption-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #333)}.gallery-recaption-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.gallery-recaption-modal-close{background:none;border:none;color:var(--text-secondary, #999);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.gallery-recaption-modal-close:hover{color:var(--text-primary, #fff);background:var(--hover-bg, rgba(255, 255, 255, .1))}.gallery-recaption-modal-body{padding:1.25rem}.gallery-recaption-modal-image{width:100%;max-height:350px;object-fit:contain;border-radius:8px;background:#000;margin-bottom:1rem}.gallery-recaption-caption-block{margin-bottom:1rem}.gallery-recaption-caption-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem;color:var(--text-secondary, #999)}.gallery-recaption-caption-text{font-size:.9rem;line-height:1.5;padding:.75rem;border-radius:6px;background:var(--input-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-color, #333);white-space:pre-wrap;word-break:break-word}.gallery-recaption-caption-text.current{opacity:.6}.gallery-recaption-caption-text.new{border-color:var(--accent-color, #7c3aed)}.gallery-recaption-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.25rem;border-top:1px solid var(--border-color, #333)}.gallery-recaption-btn{padding:.5rem 1.25rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid var(--border-color, #333);display:flex;align-items:center;gap:.4rem;transition:background .15s,opacity .15s}.gallery-recaption-btn:disabled{opacity:.5;cursor:not-allowed}.gallery-recaption-btn-reject{background:transparent;color:var(--text-primary, #fff)}.gallery-recaption-btn-reject:hover:not(:disabled){background:var(--hover-bg, rgba(255, 255, 255, .1))}.gallery-recaption-btn-keep{background:#16a34a;color:#fff;border-color:#16a34a}.gallery-recaption-btn-keep:hover:not(:disabled){background:#15803d}.detail-modal-overlay{position:fixed;inset:0;background-color:#000000e6;z-index:1000;display:flex;align-items:stretch}.detail-modal{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.detail-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-primary);flex-shrink:0}.detail-modal-header-left{display:flex;align-items:center;gap:var(--space-4)}.detail-breadcrumb{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.detail-breadcrumb:hover{background-color:var(--color-bg-hover);color:var(--color-accent)}.detail-breadcrumb-separator{color:var(--color-text-muted);margin-left:var(--space-1)}.detail-modal-nav{display:flex;align-items:center;gap:var(--space-2)}.detail-nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.detail-nav-btn:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.detail-nav-btn:disabled{opacity:.4;cursor:not-allowed}.detail-nav-position{font-size:var(--text-sm);color:var(--color-text-secondary);min-width:80px;text-align:center}.detail-modal-actions{display:flex;align-items:center;gap:var(--space-2)}.detail-action-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2);border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm)}.detail-action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.detail-action-btn-active{color:var(--color-accent);background-color:#3b82f61a}.detail-action-btn-danger:hover{color:var(--color-error)}.detail-action-btn-edit:hover{color:var(--color-accent)}.detail-close-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-left:var(--space-2)}.detail-close-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.detail-modal-content{display:flex;flex:1;overflow:hidden}.detail-image-section{flex:1;background-color:#1a1a1a;display:flex;flex-direction:column;overflow:hidden;min-height:0}.detail-image-footer{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-primary, #1e1e2e);border-top:1px solid var(--color-border-light, #2a2a3a);flex-shrink:0;min-height:56px;position:relative;z-index:1}.detail-footer-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--color-border-light, #3a3a4a);border-radius:var(--radius-md);background:var(--color-bg-secondary, #2a2a3a);color:var(--color-text-primary, #e0e0e0);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.detail-footer-btn:hover{background:var(--color-accent, #3b82f6);border-color:var(--color-accent, #3b82f6);color:#fff}.detail-footer-btn-danger:hover{background:#ef4444;border-color:#ef4444}.detail-sidebar{width:400px;background-color:var(--color-bg-primary);border-left:1px solid var(--color-border-light);overflow-y:auto;flex-shrink:0}@media(max-width:768px){.detail-modal-content{flex-direction:column}.detail-sidebar{width:100%;max-height:40vh;border-left:none;border-top:1px solid var(--color-border-light)}}.detail-exif-debug{position:fixed;inset:0;background:#0009;z-index:1100;display:flex;align-items:center;justify-content:center;padding:2rem}.detail-exif-debug-panel{background:var(--surface-color, #1e1e2e);color:var(--text-primary, #fff);border-radius:10px;max-width:900px;width:100%;max-height:80vh;overflow:auto;padding:1rem 1.25rem;box-shadow:0 20px 60px #00000080}.detail-exif-debug-header{display:flex;gap:.75rem;align-items:center;margin-bottom:.5rem}.detail-exif-debug-header strong{flex:1}.detail-exif-debug-header button{background:transparent;color:var(--text-primary, #fff);border:1px solid var(--border-color, #333);border-radius:6px;padding:4px 10px;font-size:.85rem;cursor:pointer}.detail-exif-debug-header button:hover{background:var(--hover-bg, rgba(255, 255, 255, .1))}.detail-exif-debug-meta{font-size:.8rem;color:var(--text-secondary, #999);margin-bottom:.75rem;font-family:monospace;word-break:break-all}.detail-exif-debug-table{width:100%;border-collapse:collapse;font-family:monospace;font-size:.8rem}.detail-exif-debug-table th,.detail-exif-debug-table td{border-bottom:1px solid var(--border-color, #333);padding:4px 8px;text-align:left;vertical-align:top}.detail-exif-debug-table th{color:var(--text-secondary, #999);font-weight:500}.detail-exif-debug-preview{white-space:pre-wrap;word-break:break-word;max-width:380px;opacity:.85}.twin-search-selector{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-secondary);transition:all var(--transition-fast)}.twin-search-selector.expanded{background:var(--color-bg-primary)}.twin-search-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.twin-search-header:hover{background:var(--color-bg-hover)}.twin-search-title{font-size:var(--text-sm);color:var(--color-text-secondary)}.twin-search-title strong{color:var(--color-text-primary)}.twin-search-toggle{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.twin-search-toggle:hover{background:var(--color-bg-tertiary)}.twin-search-toggle:disabled{opacity:.5;cursor:not-allowed}.twin-search-content{padding:var(--space-3);border-top:1px solid var(--color-border);position:relative}.twin-search-input-wrapper{position:relative;display:flex;align-items:center;margin-bottom:var(--space-3)}.twin-search-icon{position:absolute;left:var(--space-2);color:var(--color-text-muted);pointer-events:none}.twin-search-input{width:100%;padding:var(--space-2) var(--space-4) var(--space-2) calc(var(--space-2) + 20px);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);outline:none;transition:border-color var(--transition-fast);background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.twin-search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f633}.twin-search-input::placeholder{color:var(--color-text-muted)}.twin-search-input:disabled{opacity:.6;cursor:not-allowed}.twin-search-clear{position:absolute;right:var(--space-2);background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.twin-search-clear:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.twin-search-list{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto;scrollbar-width:thin}.twin-search-list::-webkit-scrollbar{width:6px}.twin-search-list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.twin-search-list li{border-bottom:1px solid var(--color-border)}.twin-search-list li:last-child{border-bottom:none}.twin-search-list-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;cursor:pointer;text-align:left;font-size:var(--text-sm);color:var(--color-text-primary);transition:background-color var(--transition-fast)}.twin-search-list-thumb{width:32px;height:32px;object-fit:cover;border-radius:4px;background:var(--color-bg-alt, #1a1a1a);flex-shrink:0}.twin-search-list-item:hover:not(:disabled){background:var(--color-bg-hover)}.twin-search-list-item.selected{background:#3b82f61a;color:var(--color-accent)}.twin-search-list-item:disabled{opacity:.6;cursor:not-allowed}.twin-search-list-index{flex-shrink:0;width:20px;font-size:var(--text-xs);color:var(--color-text-muted);text-align:right;font-variant-numeric:tabular-nums}.twin-search-list-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twin-search-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);color:var(--color-text-secondary);font-size:var(--text-sm)}.twin-search-loading-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);z-index:10;border-radius:var(--radius-md)}.twin-search-empty,.twin-search-hint{padding:var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.twin-search-error{padding:var(--space-2) var(--space-3);background:#ef44441a;color:var(--color-error);border-radius:var(--radius-sm);font-size:var(--text-xs);margin-top:var(--space-2)}.twin-search-selected{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#3b82f61a;border-radius:var(--radius-md);margin-top:var(--space-3)}.twin-search-selected-info{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-width:0}.twin-search-selected-info span{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twin-search-remove{display:inline-flex;align-items:center;gap:var(--space-1);background:none;border:none;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-error);cursor:pointer;border-radius:var(--radius-sm);width:fit-content;flex-shrink:0}.twin-search-remove:hover:not(:disabled){background:#ef44441a}.twin-search-remove:disabled{opacity:.6;cursor:not-allowed}.twin-selector-chip-strip{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) 0}.twin-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:16px;font-size:var(--text-xs);color:var(--color-text-primary);max-width:240px;transition:var(--transition-fast)}.twin-chip:hover{background:var(--color-bg-hover)}.twin-chip img{width:24px;height:24px;border-radius:50%;object-fit:cover;background:var(--color-bg-tertiary);flex-shrink:0}.twin-chip-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;font-weight:var(--font-medium)}.twin-chip-remove{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:50%;transition:var(--transition-fast);flex-shrink:0}.twin-chip-remove:hover:not(:disabled){background:#ef444426;color:var(--color-error)}.twin-chip-remove:disabled{cursor:not-allowed;opacity:.4}.twin-chip-hero{margin-left:4px;font-size:10px;font-weight:700;border-radius:3px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border-light);background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:var(--transition-fast)}.twin-chip-hero:hover:not(:disabled){background:#06b6d41a;color:#06b6d4;border-color:#06b6d480}.twin-chip-hero-active,.twin-chip-hero-active:hover{background:#06b6d4;color:#fff;border-color:#06b6d4}.twin-chip-hero:disabled{cursor:not-allowed;opacity:.4}.twin-search-result-flag{font-size:10px;color:var(--color-text-muted);margin-left:auto;padding-left:var(--space-2);flex-shrink:0}.twin-search-list-item:disabled{cursor:not-allowed}.zeroedit-suggestions{display:flex;flex-direction:column;gap:var(--space-2)}.zeroedit-bubbles-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.zeroedit-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.zeroedit-bubbles{display:flex;gap:var(--space-1);flex-wrap:wrap}.zeroedit-bubble{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;position:relative;overflow:hidden}.zeroedit-bubble:hover:not(:disabled){background:var(--color-bg-tertiary)}.zeroedit-bubble:disabled{opacity:.5;cursor:not-allowed}.zeroedit-bubble[data-color=cyan]:hover:not(:disabled),.zeroedit-bubble[data-color=cyan].active{border-color:#00d4ff;color:#00d4ff;box-shadow:0 0 8px #00d4ff33}.zeroedit-bubble[data-color=magenta]:hover:not(:disabled),.zeroedit-bubble[data-color=magenta].active{border-color:#ff00e5;color:#ff00e5;box-shadow:0 0 8px #ff00e533}.zeroedit-bubble[data-color=lime]:hover:not(:disabled),.zeroedit-bubble[data-color=lime].active{border-color:#39ff14;color:#39ff14;box-shadow:0 0 8px #39ff1433}.zeroedit-bubble[data-color=amber]:hover:not(:disabled),.zeroedit-bubble[data-color=amber].active{border-color:#ffbf00;color:#ffbf00;box-shadow:0 0 8px #ffbf0033}.zeroedit-controls-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.zeroedit-control-group{display:flex;align-items:center;gap:4px}.zeroedit-control-label{font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.zeroedit-control-value{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.zeroedit-control-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.zeroedit-control-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.zeroedit-control-btn:disabled{opacity:.5;cursor:not-allowed}.zeroedit-seed-input{width:72px;padding:2px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:11px;font-family:monospace;text-align:center;letter-spacing:1px}.zeroedit-seed-input:focus{outline:none;border-color:var(--color-accent)}.zeroedit-seed-input:disabled{opacity:.5}.zeroedit-toggle-advanced{background:none;border:none;color:var(--color-text-muted);font-size:10px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px;align-self:flex-start;transition:color var(--transition-fast)}.zeroedit-toggle-advanced:hover{color:var(--color-text-secondary)}.prompt-tpl{position:relative;display:flex;flex-direction:column;gap:var(--space-1)}.prompt-tpl-subject{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.prompt-tpl-subject:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f633}.prompt-tpl-subject::placeholder{color:var(--color-text-muted)}.prompt-tpl-subject:disabled{opacity:.6;cursor:not-allowed}.prompt-tpl-trigger{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 12px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.prompt-tpl-trigger:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.prompt-tpl-trigger.open{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 8px #3b82f626}.prompt-tpl-trigger:disabled{opacity:.5;cursor:not-allowed}.prompt-tpl-chevron{transition:transform var(--transition-fast)}.prompt-tpl-chevron.rotated{transform:rotate(180deg)}.prompt-tpl-panel{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;max-height:300px;overflow-y:auto;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.prompt-tpl-category-header{display:flex;align-items:center;gap:6px;width:100%;padding:var(--space-2) var(--space-3);border:none;background:none;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background-color var(--transition-fast);text-align:left}.prompt-tpl-category-header:hover{background-color:var(--color-bg-hover)}.prompt-tpl-count{margin-left:auto;font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.prompt-tpl-category+.prompt-tpl-category{border-top:1px solid var(--color-border-light)}.prompt-tpl-entries{display:flex;flex-direction:column}.prompt-tpl-entry{display:block;width:100%;padding:var(--space-1) var(--space-3) var(--space-1) calc(var(--space-3) + 20px);border:none;background:none;color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;text-align:left;transition:background-color var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-tpl-entry:hover{background-color:#3b82f614;color:var(--color-accent)}.system-prompt-selector-hint{font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic}.system-prompt-selector-dropdown{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-primary);cursor:pointer}.system-prompt-selected{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);overflow:hidden}.system-prompt-selected-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3)}.system-prompt-selected-name{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.system-prompt-selected-preview{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);line-height:1.4;max-height:200px;overflow-y:auto;border-top:1px solid var(--color-border-light);white-space:pre-wrap;word-break:break-word;font-family:SF Mono,Fira Code,monospace}.system-prompt-selector-default-hint{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.system-prompt-selector-default-hint strong{color:var(--color-text-primary)}.ar-redetect-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:32px;border:1px solid var(--color-border, #333);border-radius:6px;background:var(--color-bg-secondary, #1a1a1a);color:var(--color-text-secondary, #888);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.ar-redetect-btn:hover:not(:disabled){background:var(--color-bg-hover, #252525);color:var(--color-text-primary, #fff);border-color:var(--color-accent, #3b82f6)}.ar-redetect-btn:disabled{opacity:.5;cursor:not-allowed}.ar-redetect-btn-success{border-color:#22c55e;color:#22c55e}.ar-redetect-btn-error{border-color:#ef4444;color:#ef4444}.ar-redetect-spin{animation:ar-redetect-spin-anim 1s linear infinite}@keyframes ar-redetect-spin-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.enhancer-guidance{margin:var(--space-3) 0;border-top:1px dashed var(--color-border-light);padding-top:var(--space-2)}.enhancer-guidance-toggle{background:none;border:none;padding:4px 0;color:var(--color-text-secondary);font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.enhancer-guidance-toggle:hover{color:#06b6d4}.enhancer-guidance-body{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:var(--space-2) var(--space-3);padding:var(--space-2) 0}.enhancer-guidance-row{display:contents}.enhancer-guidance-row label{font-size:12px;color:var(--color-text-secondary);padding-top:6px}.enhancer-guidance-row select,.enhancer-guidance-hero-readout{padding:4px 8px;border:1px solid var(--color-border-light);border-radius:4px;font-size:13px;background:var(--color-bg-primary);font-family:inherit}.enhancer-guidance-hero-readout{color:var(--color-text-secondary);font-style:italic}.clear-session-btn{display:inline-flex;align-items:center;gap:6px;padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.clear-session-btn:hover:not(:disabled){border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626)}.clear-session-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.clear-session-btn:disabled{opacity:.5;cursor:not-allowed}.style-enable-toggle{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:14px;font-size:12px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:background .12s ease,color .12s ease,border-color .12s ease,opacity .12s ease;max-width:320px}.style-enable-toggle--on{background:var(--color-accent, #22c55e);color:#fff;border-color:var(--color-accent, #22c55e)}.style-enable-toggle--on:hover{filter:brightness(1.08)}.style-enable-toggle--off{background:var(--color-bg-secondary, #2a2a2a);color:var(--color-text-secondary, #aaa);border-color:var(--color-border, #3a3a3a)}.style-enable-toggle--off:hover{background:var(--color-surface-hover, rgba(255, 255, 255, .04));color:var(--color-text, #e0e0e0)}.style-enable-toggle--disabled{cursor:not-allowed;opacity:.5}.style-enable-toggle-icon{display:inline-flex;align-items:center}.style-enable-toggle-label{font-weight:600;letter-spacing:.2px}.style-enable-toggle-name{font-weight:400;font-size:11px;opacity:.85;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-modal-backdrop{position:fixed;inset:0;background-color:#000c;z-index:1100;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.edit-modal{background-color:var(--color-bg-primary);color:var(--color-text-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:1200px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.edit-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border-light)}.edit-modal-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.edit-modal-close{color:#e03131;font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.edit-modal-close:hover{background-color:#e031311a;color:#c92a2a}.edit-modal-header-right{display:flex;align-items:center;gap:var(--space-3)}.edit-modal-content{display:flex;flex-wrap:nowrap;flex:1;overflow:hidden}.edit-modal-api-warning{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background-color:#eab30826;border-bottom:1px solid rgba(234,179,8,.3);color:#ca8a04;font-size:var(--text-sm);width:100%;flex-shrink:0}.edit-modal-preview{flex:1 1 50%;background-color:#1a1a1a;display:flex;align-items:center;justify-content:center;padding:var(--space-4);min-height:300px;min-width:0}.edit-modal-preview img{max-width:100%;max-height:600px;object-fit:contain;border-radius:var(--radius-md)}.edit-modal-form{flex:1 1 50%;min-width:0;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);border-left:1px solid var(--color-border-light);overflow-y:auto}.edit-modal-form>label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.edit-modal-field{display:flex;flex-direction:column;gap:var(--space-2)}.edit-modal-field label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary)}.edit-modal-select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast)}.edit-modal-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f633}.edit-modal-select:disabled{opacity:.6;cursor:not-allowed}.edit-modal-auto-hint{display:block;font-size:.7rem;color:var(--color-text-muted, #888);margin-top:2px;letter-spacing:.01em}.edit-modal-options-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-3)}.edit-modal-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-2) 0}.edit-modal-divider:before,.edit-modal-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.edit-modal-divider span{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.edit-modal-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border:2px dashed var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.edit-modal-upload-zone:hover:not(:has(input:disabled)){border-color:var(--color-accent);color:var(--color-accent);background-color:#3b82f60d}.edit-modal-file-input{display:none}.edit-modal-reference-preview{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary)}.edit-modal-reference-preview img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-sm)}.edit-modal-reference-info{flex:1;display:flex;align-items:center;justify-content:space-between;min-width:0}.edit-modal-reference-info span{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-modal-reference-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.edit-modal-reference-remove:hover:not(:disabled){background-color:#ef44441a;color:var(--color-error)}.edit-modal-reference-remove:disabled{opacity:.6;cursor:not-allowed}.edit-modal-form textarea{width:100%;min-height:150px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--text-sm);resize:vertical;font-family:inherit}.edit-modal-form textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f633}.edit-modal-form textarea:disabled{opacity:.6;cursor:not-allowed}.edit-modal-form textarea::placeholder{color:var(--color-text-muted)}.edit-modal-char-count{font-size:var(--text-xs);color:var(--color-text-muted);text-align:right;margin-top:calc(-1 * var(--space-2))}.edit-modal-error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--color-error);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm)}.edit-modal-success{background-color:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm)}.edit-modal-actions{display:flex;gap:var(--space-2);margin-top:auto}.edit-modal-cancel,.edit-modal-generate{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.edit-modal-cancel{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-primary)}.edit-modal-cancel:hover:not(:disabled){background-color:var(--color-bg-hover)}.edit-modal-generate{background-color:var(--color-accent);border:none;color:#fff}.edit-modal-generate:hover:not(:disabled){background-color:var(--color-accent-hover)}.edit-modal-generate:disabled,.edit-modal-cancel:disabled{opacity:.6;cursor:not-allowed}.edit-modal-hint{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;margin:0}.edit-modal-hint kbd{background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 4px;font-size:var(--text-xs);font-family:inherit}@media(max-width:900px){.edit-modal-content{flex-direction:column}.edit-modal-preview{flex:0 0 auto;min-height:200px}.edit-modal-preview img{max-height:300px}.edit-modal-form{flex:1 1 auto;width:100%;border-left:none;border-top:1px solid var(--color-border-light)}}@media(max-width:600px){.edit-modal-options-row{grid-template-columns:1fr}}.edit-modal-system-prompt-loaded{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-bg-secondary)}.edit-modal-system-prompt-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.edit-modal-system-prompt-filename{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;-webkit-user-select:none;user-select:none}.edit-modal-system-prompt-filename:hover{color:var(--color-accent)}.edit-modal-system-prompt-preview{margin-top:var(--space-2);padding:var(--space-3);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-size:var(--text-xs, .75rem);color:var(--color-text-secondary);max-height:150px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;line-height:1.4}.edit-modal-ar-row{display:flex;align-items:center;gap:8px}.edit-modal-ar-row .edit-modal-select{flex:1;min-width:0}.edit-modal-prompt-label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:6px}.btn-expert{display:inline-flex;align-items:center;gap:6px;background:#06b6d41a;color:#06b6d4;border:1px solid rgba(6,182,212,.35);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;transition:var(--transition-fast);font-family:inherit}.btn-expert:hover:not(:disabled){background:#06b6d42e;border-color:#06b6d499}.btn-expert:disabled,.btn-expert-loading{opacity:.6;cursor:not-allowed}.expert-prompt-section{margin-top:var(--space-3);padding-left:var(--space-3);border-left:3px solid #06b6d4}.expert-prompt-section label{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;color:#06b6d4;margin-bottom:4px}.expert-prompt-input{width:100%;font-family:inherit;font-size:14px;padding:8px;border:1px solid var(--color-border-light);border-radius:4px;resize:vertical;background:var(--color-bg-primary)}.expert-prompt-input:focus{outline:none;border-color:#06b6d4;box-shadow:0 0 0 2px #06b6d426}.expert-prompt-hint{font-size:11px;color:var(--color-text-muted, #6b7280);margin:4px 0 0}.expert-prompt-section .expert-prompt-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:4px}.btn-enh-edit{display:inline-flex;align-items:center;gap:4px;background:#14b8a61a;color:#14b8a6;border:1px solid rgba(20,184,166,.35);border-radius:6px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:var(--transition-fast);font-family:inherit}.btn-enh-edit:hover:not(:disabled){background:#14b8a62e;border-color:#14b8a699}.btn-enh-edit.is-expanded{background:#14b8a638;border-color:#14b8a6b3}.btn-enh-edit-caret{font-size:10px;line-height:1}.enh-edit-collapsible{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:8px 10px;border:1px dashed rgba(20,184,166,.4);border-radius:6px;background:#14b8a60a}.enh-edit-collapsible label{font-size:11px;font-weight:700;letter-spacing:.04em;color:#14b8a6;white-space:nowrap}.enh-edit-instruction-input{flex:1;font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--color-border-light);border-radius:4px;background:var(--color-bg-primary)}.enh-edit-instruction-input:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 2px #14b8a626}.btn-enh-edit-apply{background:#14b8a6;color:#fff;border:none;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:var(--transition-fast);font-family:inherit}.btn-enh-edit-apply:hover:not(:disabled){background:#0d9488}.btn-enh-edit-apply:disabled,.btn-enh-edit-apply.is-loading{opacity:.6;cursor:not-allowed}.enh-edit-decision-row{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:8px 10px;border-radius:6px;background:#14b8a60f;border:1px solid rgba(20,184,166,.25)}.btn-enh-edit-accept{background:#10b981;color:#fff;border:none;border-radius:4px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}.btn-enh-edit-accept:hover{background:#059669}.btn-enh-edit-reject{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.45);border-radius:4px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}.btn-enh-edit-reject:hover{background:#ef444433;border-color:#ef4444b3}.enh-edit-decision-meta{font-size:11px;color:var(--color-text-muted, #6b7280);margin-left:auto}.compare-panel{flex:1;display:flex;flex-direction:column;background-color:#1a1a1a;min-width:0;position:relative;transition:box-shadow var(--transition-fast)}.compare-panel:first-child{border-right:1px solid var(--color-border-light)}.compare-panel-active{box-shadow:inset 0 0 0 2px var(--color-accent)}.compare-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;z-index:10}.compare-panel-label{display:flex;align-items:center;gap:var(--space-2);min-width:0}.compare-panel-badge{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-bold);flex-shrink:0}.compare-panel-badge-a{background-color:var(--color-accent);color:#fff}.compare-panel-badge-b{background-color:#9b59b6;color:#fff}.compare-panel-filename{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compare-panel-nav{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.compare-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:#ffffff1a;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.compare-nav-btn:hover:not(:disabled){background:#fff3;color:var(--color-text-primary)}.compare-nav-btn:disabled{opacity:.3;cursor:not-allowed}.compare-nav-btn-text{font-size:var(--text-xs);font-weight:600;line-height:1;padding:0 var(--space-2);width:auto;min-width:28px}.compare-nav-position{font-size:var(--text-xs);color:var(--color-text-muted);min-width:60px;text-align:center}.compare-image-container{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.compare-image-img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .1s ease-out,opacity .2s ease;-webkit-user-select:none;user-select:none}.compare-image-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.compare-image-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:compare-spin .8s linear infinite}@keyframes compare-spin{to{transform:rotate(360deg)}}.compare-image-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2);background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.compare-zoom-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:#ffffff1a;color:#fff;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.compare-zoom-btn:hover{background:#fff3}.compare-zoom-btn-text{font-size:var(--text-xs);font-weight:600;line-height:1;padding:0 var(--space-2);width:auto;min-width:28px}.compare-zoom-scale{font-size:var(--text-xs);color:#ffffffb3;min-width:45px;text-align:center}.compare-sidebar{width:320px;flex-shrink:0;background-color:var(--color-bg-primary);border-left:1px solid var(--color-border-light);display:flex;flex-direction:column;overflow:hidden}.compare-tabs{display:flex;border-bottom:1px solid var(--color-border-light);flex-shrink:0}.compare-tab{flex:1;padding:var(--space-3) var(--space-2);border:none;background:none;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-2);position:relative;min-width:0}.compare-tab:hover{background-color:var(--color-bg-hover)}.compare-tab-active{color:var(--color-text-primary);background-color:var(--color-bg-secondary)}.compare-tab-active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:var(--color-accent)}.compare-tab:first-child.compare-tab-active:after{background-color:var(--color-accent)}.compare-tab:last-child.compare-tab-active:after{background-color:#9b59b6}.compare-tab-badge{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--font-bold);flex-shrink:0}.compare-tab-badge-a{background-color:var(--color-accent);color:#fff}.compare-tab-badge-b{background-color:#9b59b6;color:#fff}.compare-tab-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.compare-metadata-content{flex:1;overflow-y:auto}.compare-metadata-panel{padding:var(--space-4)}.compare-metadata-panel .metadata-section{margin-bottom:var(--space-5)}.compare-metadata-panel .metadata-section:last-child{margin-bottom:0}.compare-metadata-panel .metadata-section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.compare-metadata-panel .metadata-field{margin-bottom:var(--space-3)}.compare-metadata-panel .metadata-field label{display:block;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.compare-metadata-panel .metadata-field input,.compare-metadata-panel .metadata-field textarea{width:100%;padding:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.compare-metadata-panel .metadata-field input:focus,.compare-metadata-panel .metadata-field textarea:focus{outline:none;border-color:var(--color-accent)}.compare-metadata-panel .metadata-field textarea{resize:vertical;min-height:60px}.compare-metadata-panel .metadata-field-readonly span{display:block;font-size:var(--text-sm);color:var(--color-text-primary);word-break:break-word}.compare-metadata-panel .metadata-prompt{font-style:italic;line-height:1.5}.compare-metadata-panel .metadata-flag-selector{display:flex;align-items:center;gap:var(--space-2)}.compare-metadata-panel .metadata-flag-select{flex:1;padding:var(--space-2);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast)}.compare-metadata-panel .metadata-flag-select:focus{outline:none;border-color:var(--color-accent);background-color:var(--color-bg-primary)}.compare-metadata-panel .metadata-flag-preview{width:20px;height:20px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.3);flex-shrink:0}.compare-metadata-panel .metadata-flag-preview-approved{background-color:#22c55e;display:flex;align-items:center;justify-content:center;color:#fff}.compare-metadata-panel .metadata-actions{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}@media(max-width:1200px){.compare-sidebar{width:280px}}@media(max-width:992px){.compare-sidebar{width:100%;height:40vh;border-left:none;border-top:1px solid var(--color-border-light)}}.compare-modal-overlay{position:fixed;inset:0;background-color:#000000e6;z-index:1000;display:flex;align-items:stretch}.compare-modal{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.compare-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-primary);flex-shrink:0}.compare-modal-header-left{display:flex;align-items:center;gap:var(--space-4)}.compare-breadcrumb{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.compare-breadcrumb:hover{background-color:var(--color-bg-hover);color:var(--color-accent)}.compare-mode-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);padding:var(--space-1) var(--space-3);background:linear-gradient(135deg,var(--color-accent),#9b59b6);border-radius:var(--radius-md)}.compare-modal-actions{display:flex;align-items:center;gap:var(--space-2)}.compare-action-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.compare-action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.compare-close-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-3);border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-left:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium)}.compare-close-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.compare-modal-content{display:flex;flex:1;overflow:hidden}.compare-image-section{flex:1;display:flex;min-width:0}.compare-shortcuts-hint{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-2);background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border-light);flex-shrink:0}.compare-shortcuts-hint span{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.compare-shortcuts-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-1);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-xs);font-family:inherit;font-size:var(--text-xs);color:var(--color-text-secondary)}@media(max-width:1200px){.compare-shortcuts-hint{gap:var(--space-4)}}@media(max-width:992px){.compare-modal-content{flex-direction:column}.compare-image-section{flex-direction:row;height:55vh;flex:none}.compare-shortcuts-hint{display:none}}@media(max-width:768px){.compare-modal-header{padding:var(--space-2) var(--space-3)}.compare-modal-header-left{gap:var(--space-2)}.compare-breadcrumb span{display:none}.compare-mode-label{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.compare-action-btn span{display:none}.compare-image-section{flex-direction:column;height:auto;flex:1}}.inpaint-modal-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0009;padding:1rem}.inpaint-modal{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:.75rem;width:100%;max-width:72rem;max-height:95vh;overflow-y:auto;display:flex;flex-direction:column}.inpaint-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border, #e5e7eb)}.inpaint-modal-header h2{font-size:1.125rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.inpaint-modal-close{cursor:pointer;padding:.25rem;color:var(--color-text-secondary, #6b7280);font-size:.875rem}.inpaint-modal-close:hover{color:var(--color-text-primary, #111827)}.inpaint-modal-content{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem}@media(max-width:768px){.inpaint-modal-content{grid-template-columns:1fr}}.inpaint-canvas-area{display:flex;flex-direction:column;gap:.75rem}.inpaint-canvas-container{position:relative;background:var(--color-bg-secondary, #f3f4f6);border-radius:.5rem;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:350px}.inpaint-canvas-container canvas{cursor:crosshair;max-width:100%;touch-action:none}.inpaint-canvas-loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--color-text-secondary, #6b7280);font-size:.875rem}.inpaint-canvas-label{font-size:.75rem;color:var(--color-text-tertiary, #9ca3af);margin-top:.25rem}.inpaint-brush-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem;background:var(--color-bg-secondary, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem}.inpaint-brush-toggle{display:flex;gap:.25rem}.inpaint-brush-btn{display:flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.8125rem;border-radius:.5rem;border:1px solid var(--color-border, #e5e7eb);background:var(--color-surface, #fff);color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:all .15s}.inpaint-brush-btn:hover{border-color:#a855f7}.inpaint-brush-btn.active{background:#faf5ff;border-color:#c084fc;color:#7e22ce}.inpaint-slider-group{display:flex;align-items:center;gap:.5rem}.inpaint-slider-group label{font-size:.75rem;color:var(--color-text-secondary, #6b7280);white-space:nowrap}.inpaint-slider-group input[type=range]{width:5rem}.inpaint-mask-actions{display:flex;gap:.25rem;margin-left:auto}.inpaint-mask-action-btn{display:flex;align-items:center;gap:.25rem;padding:.375rem .5rem;font-size:.75rem;border-radius:.375rem;border:none;background:transparent;cursor:pointer;transition:background .15s}.inpaint-mask-action-btn:hover{background:var(--color-bg-secondary, #f3f4f6)}.inpaint-mask-action-btn.destructive{color:#ef4444}.inpaint-mask-action-btn.destructive:hover{background:#fef2f2}.inpaint-form{display:flex;flex-direction:column;gap:1rem}.inpaint-field{display:flex;flex-direction:column;gap:.375rem}.inpaint-field label{font-size:.875rem;font-weight:500;color:var(--color-text-primary, #111827)}.inpaint-field label .required{color:#ef4444}.inpaint-select,.inpaint-textarea{width:100%;padding:.5rem .75rem;background:var(--color-bg-secondary, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;color:var(--color-text-primary, #111827);font-size:.875rem}.inpaint-select:focus,.inpaint-textarea:focus{outline:none;border-color:#a855f7}.inpaint-textarea{min-height:4rem;resize:vertical}.inpaint-resolution-group{display:flex;gap:.25rem}.inpaint-resolution-btn{padding:.375rem 1rem;font-size:.8125rem;font-weight:600;border-radius:.5rem;border:1px solid var(--color-border, #e5e7eb);background:var(--color-surface, #fff);color:var(--color-text-secondary, #6b7280);cursor:pointer;transition:all .15s}.inpaint-resolution-btn:hover{border-color:#a855f7}.inpaint-resolution-btn.active{background:#faf5ff;border-color:#c084fc;color:#7e22ce}.inpaint-resolution-btn:disabled{opacity:.5;cursor:default}.inpaint-options-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.75rem;align-items:start}@media(max-width:768px){.inpaint-options-row{grid-template-columns:1fr}}.inpaint-compact-toggle{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6b7280);cursor:pointer;padding:.375rem .625rem;border-radius:.5rem;border:1px solid var(--color-border, #e5e7eb);background:var(--color-surface, #fff);transition:all .15s;white-space:nowrap}.inpaint-compact-toggle:hover{border-color:#a855f7}.inpaint-compact-toggle:has(input:checked){background:#faf5ff;border-color:#c084fc;color:#7e22ce}.inpaint-compact-toggle input[type=checkbox]{accent-color:#9333ea;margin:0}.inpaint-error{padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#b91c1c;font-size:.875rem}.inpaint-hint{padding:.5rem .75rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;color:#1d4ed8;font-size:.8125rem;display:flex;align-items:center;gap:.5rem}.inpaint-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem}.inpaint-generate-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;border-radius:.5rem;border:none;background:#9333ea;color:#fff;cursor:pointer;transition:background .15s}.inpaint-generate-btn:hover{background:#7e22ce}.inpaint-generate-btn:disabled{opacity:.5;cursor:default}.inpaint-hint-text{font-size:.75rem;color:var(--color-text-tertiary, #9ca3af)}.inpaint-hint-text kbd{padding:.125rem .375rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.25rem;font-size:.6875rem;background:var(--color-bg-secondary, #f3f4f6)}.inpaint-mode-note{font-size:.75rem;color:var(--color-text-tertiary, #9ca3af);margin-top:.125rem}.inpaint-ar-row{display:flex;align-items:center;gap:8px}.inpaint-ar-row .inpaint-select{flex:1;min-width:0}.outpaint-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.outpaint-preview svg{border:1px solid var(--color-border)}.outpaint-position-info{font-size:11px;color:var(--color-text-tertiary);text-align:center}.outpaint-error{color:#ef4444;font-weight:500}.outpaint-slider-row{display:flex;align-items:center;gap:8px}.outpaint-slider-row input[type=range]{flex:1}.outpaint-slider-value{font-size:12px;color:var(--color-text-secondary);min-width:36px;text-align:right}.replace-canvas-area.edit-modal-preview{flex-direction:column}.replace-canvas-area{display:flex;flex-direction:column;align-items:center;gap:8px}.crop-canvas-wrapper{position:relative;display:inline-block}.crop-canvas-wrapper img{display:block;max-width:100%;max-height:600px;object-fit:contain;border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;pointer-events:none}.crop-canvas-wrapper canvas{border-radius:var(--radius-md)}.replace-clear-btn{font-size:12px;padding:4px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer}.replace-clear-btn:hover{background:var(--color-bg-hover)}.replace-loading{color:var(--color-text-tertiary);font-size:14px;padding:32px}.replace-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.replace-checkbox-label input[type=checkbox]{width:16px;height:16px}.replace-slider-row{display:flex;align-items:center;gap:8px}.replace-slider-row input[type=range]{flex:1}.replace-slider-row span{font-size:12px;color:var(--color-text-secondary);min-width:36px;text-align:right}.replace-processing{font-size:12px;color:var(--color-text-secondary);padding:4px 0;animation:replace-pulse 1.5s infinite}@keyframes replace-pulse{0%,to{opacity:1}50%{opacity:.5}}.delivery-panel{flex:1;display:flex;flex-direction:column;background-color:#1a1a1a;min-width:0;position:relative;transition:box-shadow var(--transition-fast)}.delivery-panel:first-child{border-right:1px solid var(--color-border-light)}.delivery-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;z-index:10}.delivery-panel-label{display:flex;align-items:center;gap:var(--space-2);min-width:0}.delivery-panel-badge{padding:var(--space-1) var(--space-2);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-bold);flex-shrink:0;color:#fff}.delivery-panel-badge-source{background-color:var(--color-accent)}.delivery-panel-badge-preview{background-color:#2ecc71}.delivery-panel-filename{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delivery-panel-nav{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.delivery-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:#ffffff1a;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.delivery-nav-btn:hover:not(:disabled){background:#fff3;color:var(--color-text-primary)}.delivery-nav-btn:disabled{opacity:.3;cursor:not-allowed}.delivery-nav-btn-text{font-size:var(--text-xs);font-weight:600;line-height:1;padding:0 var(--space-2);width:auto;min-width:28px}.delivery-nav-position{font-size:var(--text-xs);color:var(--color-text-muted);min-width:60px;text-align:center}.delivery-image-container{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.delivery-image-img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .1s ease-out,opacity .2s ease;-webkit-user-select:none;user-select:none}.delivery-image-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}.delivery-image-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:delivery-spin .8s linear infinite}@keyframes delivery-spin{to{transform:rotate(360deg)}}.delivery-processing-text{font-size:var(--text-xs);color:var(--color-text-muted)}.delivery-image-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;padding:var(--space-4)}.delivery-image-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2);background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.delivery-zoom-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:#ffffff1a;color:#fff;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.delivery-zoom-btn:hover{background:#fff3}.delivery-zoom-btn-text{font-size:var(--text-xs);font-weight:600;line-height:1;padding:0 var(--space-2);width:auto;min-width:28px}.delivery-zoom-scale{font-size:var(--text-xs);color:#ffffffb3;min-width:45px;text-align:center}.delivery-tiff-export-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3)!important;width:auto!important;min-width:auto!important;height:auto!important;background:linear-gradient(135deg,#3498db,#2980b9)!important;color:#fff!important;font-size:var(--text-xs);font-weight:var(--font-semibold);white-space:nowrap;flex-shrink:0}.delivery-tiff-export-btn:hover:not(:disabled){filter:brightness(1.1);background:linear-gradient(135deg,#3498db,#2980b9)!important;color:#fff!important}.delivery-tiff-export-btn:disabled{opacity:.4;cursor:not-allowed;filter:none}.delivery-tiff-export-btn .spin{animation:delivery-spin 1s linear infinite}.delivery-sidebar{width:320px;flex-shrink:0;background-color:var(--color-bg-primary);border-left:1px solid var(--color-border-light);display:flex;flex-direction:column;overflow-y:auto;padding:var(--space-4);gap:var(--space-5)}.delivery-controls-section{display:flex;flex-direction:column;gap:var(--space-3)}.delivery-controls-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0}.delivery-field{display:flex;flex-direction:column;gap:var(--space-1)}.delivery-field label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.delivery-select{width:100%;padding:var(--space-2);background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast)}.delivery-select:focus{outline:none;border-color:var(--color-accent)}.delivery-preview-btn{width:100%;padding:var(--space-2) var(--space-3);border:none;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;font-size:var(--text-sm);font-weight:var(--font-semibold);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.delivery-preview-btn:hover:not(:disabled){filter:brightness(1.1)}.delivery-preview-btn:disabled{opacity:.4;cursor:not-allowed;filter:none}.delivery-lut-error{padding:var(--space-2);background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#f87171;font-size:var(--text-xs)}.delivery-slider{width:100%;height:6px;cursor:pointer;accent-color:var(--color-accent)}.delivery-slider:disabled{opacity:.4;cursor:not-allowed}.delivery-status-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-1) 0}.delivery-status-label{font-size:var(--text-xs);color:var(--color-text-muted)}.delivery-status-value{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:var(--font-medium)}.delivery-status-filename{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delivery-status-active{color:#2ecc71}.delivery-controls-info{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}.delivery-controls-info p{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5;margin:0 0 var(--space-2) 0}.delivery-controls-info p:last-child{margin-bottom:0}.delivery-controls-info strong{color:var(--color-text-secondary)}@media(max-width:1200px){.delivery-sidebar{width:280px}}@media(max-width:992px){.delivery-sidebar{width:100%;height:40vh;border-left:none;border-top:1px solid var(--color-border-light)}}.delivery-modal-overlay{position:fixed;inset:0;background-color:#000000e6;z-index:1000;display:flex;align-items:stretch}.delivery-modal{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.delivery-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-primary);flex-shrink:0}.delivery-modal-header-left{display:flex;align-items:center;gap:var(--space-4)}.delivery-breadcrumb{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.delivery-breadcrumb:hover{background-color:var(--color-bg-hover);color:var(--color-accent)}.delivery-mode-label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);padding:var(--space-1) var(--space-3);background:linear-gradient(135deg,var(--color-accent),#2ecc71);border-radius:var(--radius-md)}.delivery-modal-actions{display:flex;align-items:center;gap:var(--space-2)}.delivery-action-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.delivery-action-btn:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.delivery-action-btn:disabled{opacity:.4;cursor:not-allowed}.delivery-zip-btn{background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;font-weight:var(--font-semibold)}.delivery-zip-btn:hover:not(:disabled){filter:brightness(1.1);background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff}.delivery-close-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-3);border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-left:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium)}.delivery-close-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.delivery-modal-content{display:flex;flex:1;overflow:hidden}.delivery-image-section{flex:1;display:flex;min-width:0}.delivery-shortcuts-hint{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-2);background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border-light);flex-shrink:0}.delivery-shortcuts-hint span{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.delivery-shortcuts-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-1);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-xs);font-family:inherit;font-size:var(--text-xs);color:var(--color-text-secondary)}@media(max-width:1200px){.delivery-shortcuts-hint{gap:var(--space-4)}}@media(max-width:992px){.delivery-modal-content{flex-direction:column}.delivery-image-section{flex-direction:row;height:55vh;flex:none}.delivery-shortcuts-hint{display:none}}@media(max-width:768px){.delivery-modal-header{padding:var(--space-2) var(--space-3)}.delivery-modal-header-left{gap:var(--space-2)}.delivery-mode-label{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.delivery-image-section{flex-direction:column;height:auto;flex:1}}.tier-flag-dropdown{position:relative}.tier-flag-chevron{transition:transform var(--transition-fast)}.tier-flag-chevron-open{transform:rotate(180deg)}.tier-flag-menu{position:absolute;bottom:100%;left:0;margin-bottom:4px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;z-index:50;overflow:hidden}.tier-flag-menu-header{padding:4px;border-bottom:1px solid var(--color-border-light)}.tier-flag-menu-back{all:unset;display:block;width:100%;padding:6px 12px;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);box-sizing:border-box}.tier-flag-menu-back:hover{background:var(--color-bg-hover)}.tier-flag-menu-item{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;box-sizing:border-box}.tier-flag-menu-item:hover{background:var(--color-bg-hover)}.tier-flag-menu-tier{flex:1}.tier-flag-menu-clear{border-top:1px solid var(--color-border-light);color:var(--color-text-secondary)}.tier-flag-menu-dot{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.tier-flag-menu-separator{height:1px;background:var(--color-border-light);margin:4px 0}.tier-flag-menu-item-approve{color:var(--color-success, #22c55e);font-weight:var(--font-medium)}.promote-split-btn{position:relative;display:inline-flex}.promote-split-btn-main{border-top-right-radius:0!important;border-bottom-right-radius:0!important;padding-right:8px!important}.promote-split-btn-caret{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left:1px solid rgba(0,0,0,.18)!important;padding-left:6px!important;padding-right:6px!important}.promote-split-btn-menu{position:absolute;bottom:100%;right:0;margin-bottom:6px;z-index:60;min-width:160px;background:var(--color-surface, #1a1a1a);color:var(--color-text, #fff);border:1px solid var(--color-border, #333);border-radius:6px;padding:4px;box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column}.promote-split-btn-menuitem{display:flex;align-items:center;gap:8px;padding:6px 10px;background:transparent;color:inherit;border:none;border-radius:4px;font:inherit;text-align:left;cursor:pointer;white-space:nowrap}.promote-split-btn-menuitem:hover{background:var(--color-bg-alt, rgba(255, 255, 255, .08))}.promote-split-btn-menuitem.is-active{color:var(--color-accent, #3b82f6)}.promote-split-btn-dot{width:10px;display:inline-block;opacity:.9;font-size:.85em}.promote-split-btn-spin{animation:promote-split-btn-spin .9s linear infinite}@keyframes promote-split-btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.selection-action-bar{position:fixed;bottom:0;left:0;right:0;z-index:100;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.selection-action-bar-content{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-6);background-color:var(--color-bg-primary);border-top:1px solid var(--color-border-light);box-shadow:0 -4px 16px #00000026,0 -1px 4px #0000001a}.selection-bar-left{display:flex;align-items:center;gap:var(--space-4)}.selection-info{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);padding-right:var(--space-4);border-right:1px solid var(--color-border-light)}.selection-info svg{color:var(--color-accent)}.selection-actions{display:flex;align-items:center;gap:var(--space-2)}.selection-action-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.selection-action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.selection-action-btn:disabled{opacity:.5;cursor:not-allowed}.selection-action-btn-select-all{background:transparent;color:var(--color-accent);border:1px solid var(--color-accent)}.selection-action-btn-select-all:hover{background:rgba(var(--color-accent-rgb, 99, 102, 241),.1);color:var(--color-accent)}.selection-action-btn-danger{background:#dc3545;color:#fff}.selection-action-btn-danger:hover{background:#c82333;color:#fff}.selection-action-btn-download{background:#28a745;color:#fff}.selection-action-btn-download:hover{background:#218838;color:#fff}.selection-action-btn-download:disabled{opacity:.7;cursor:not-allowed}.selection-action-btn-primary{background:linear-gradient(135deg,var(--color-accent),#9b59b6);color:#fff}.selection-action-btn-primary:hover{opacity:.9;color:#fff}.selection-action-btn-new-upload{background:#3b82f6;color:#fff}.selection-action-btn-new-upload:hover{background:#2563eb;color:#fff}.selection-action-btn-new-upload:disabled{opacity:.6;cursor:not-allowed}.spin{animation:spin 1s linear infinite}@media(max-width:640px){.selection-action-bar-content{flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.selection-bar-left{width:100%;justify-content:space-between}.selection-actions{width:100%;flex-wrap:wrap;justify-content:flex-end}}[data-theme=dark] .selection-action-bar{border-top-color:var(--color-border);box-shadow:0 -4px 16px #0006,0 -1px 4px #0000004d}.bulk-tag-edit{position:relative;display:flex;align-items:center;margin-left:var(--space-3)}.bulk-tag-input{width:240px;padding:var(--space-2) var(--space-3);padding-right:28px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.bulk-tag-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px rgba(var(--color-accent-rgb, 99, 102, 241),.2)}.bulk-tag-input:disabled{opacity:.5;cursor:not-allowed}.bulk-tag-saved{position:absolute;bottom:calc(100% + 4px);left:0;font-size:var(--text-xs);font-weight:var(--font-medium);color:#28a745;pointer-events:none;animation:bulkTagSavedFade .2s ease-out}@keyframes bulkTagSavedFade{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.bulk-tag-spinner{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}@media(max-width:640px){.bulk-tag-edit{margin-left:0;width:100%}.bulk-tag-input{width:100%}}.bulk-new-upload-controls{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-3)}.selection-action-btn-recipe.has-signature{color:#d4a017;border-color:#d4a01759}.selection-action-btn-recipe.has-signature:hover:not(:disabled){background:#d4a0171f;border-color:#d4a01799}.selection-action-btn-recipe.no-signature{color:var(--color-text-muted, #6b7280);border-color:var(--color-border-light);cursor:not-allowed;opacity:.55}.selection-action-btn-recipe-repeat.has-content{color:#06b6d4;border-color:#06b6d459}.selection-action-btn-recipe-repeat.has-content:hover:not(:disabled){background:#06b6d41f;border-color:#06b6d499}.selection-action-btn-recipe-repeat.no-content{color:var(--color-text-muted, #6b7280);border-color:var(--color-border-light);cursor:not-allowed;opacity:.55}.image-search-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#0ea5e926;border:1px solid rgba(14,165,233,.3);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.image-search-banner-content{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);min-width:0}.image-search-banner-thumb{width:32px;height:32px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.image-search-banner-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-search-banner-text strong{color:var(--color-text-primary)}.image-search-banner-clear{display:flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-2);border:none;background:#ffffff1a;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);transition:all var(--transition-fast);flex-shrink:0}.image-search-banner-clear:hover{background:#fff3;color:var(--color-text-primary)}.workspace-card{background-color:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden;cursor:pointer;transition:all var(--transition-fast)}.workspace-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.workspace-card-selected{box-shadow:0 0 0 2px var(--color-accent)}.workspace-card-selected:hover{box-shadow:0 0 0 2px var(--color-accent),var(--shadow-card-hover)}.workspace-card-image-container{position:relative;background-color:var(--color-bg-tertiary)}.workspace-card-grid .workspace-card-image-container{aspect-ratio:1}.workspace-card-masonry{display:flex;flex-direction:column;min-width:0;max-width:100%;overflow:hidden}.workspace-card-masonry .workspace-card-image-container{flex:1 1 auto;width:100%;height:100%;aspect-ratio:auto}.workspace-card-masonry .workspace-card-image{object-fit:contain}.workspace-card-masonry .workspace-card-footer{display:none}.workspace-card-selected-badge{position:absolute;top:var(--space-2);left:var(--space-2);width:22px;height:22px;border-radius:var(--radius-full);background:var(--color-accent);display:flex;align-items:center;justify-content:center;color:#fff;z-index:5;box-shadow:0 1px 3px #0000004d;pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.workspace-card-selected-badge-visible{opacity:1}.workspace-card-image{width:100%;height:100%;object-fit:cover;display:block}.workspace-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--text-sm)}.workspace-card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 60%,rgba(0,0,0,.5) 100%);opacity:0;pointer-events:none;transition:opacity var(--transition-fast);display:flex;align-items:flex-end;justify-content:flex-end;padding:var(--space-2);gap:var(--space-2)}.workspace-card-overlay-visible{opacity:1;pointer-events:auto}.workspace-card-action{width:32px;height:32px;border:none;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:all var(--transition-fast)}.workspace-card-edit{background:#0009}.workspace-card-edit:hover{background:var(--color-accent)}.workspace-card-inpaint{background:#0009}.workspace-card-inpaint:hover{background:#9333eacc}.workspace-card-delete{background:#0009}.workspace-card-delete:hover{background:var(--color-error)}.workspace-card-action:disabled,.workspace-card-action[aria-disabled=true]{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}.workspace-card-similarity{position:absolute;top:var(--space-2);right:var(--space-2);background:#0009;color:#fff;font-size:var(--text-xs);font-weight:var(--font-medium);padding:2px 6px;border-radius:var(--radius-sm);display:none}html[data-show-similarity-scores=true] .workspace-card-similarity{display:block}.workspace-card-footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:var(--space-1)}.workspace-card-prompt{font-size:var(--text-xs);color:var(--color-text-secondary);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-card-date{font-size:var(--text-xs);color:var(--color-text-muted)}.workspace-card-skeleton{background-color:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.workspace-card-skeleton-image{aspect-ratio:1;background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-secondary) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}.workspace-card-skeleton-footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:var(--space-1)}.workspace-card-skeleton-text{height:12px;width:80%;background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-secondary) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}.workspace-card-skeleton-date{height:10px;width:50%;background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-secondary) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.recaption-modal-backdrop{position:fixed;inset:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem}.recaption-modal{background:var(--surface-color, #1e1e2e);border-radius:12px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.recaption-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color, #333)}.recaption-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.recaption-modal-close{background:none;border:none;color:var(--text-secondary, #999);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.recaption-modal-close:hover{color:var(--text-primary, #fff);background:var(--hover-bg, rgba(255, 255, 255, .1))}.recaption-modal-body{padding:1.25rem}.recaption-modal-image{width:100%;max-height:350px;object-fit:contain;border-radius:8px;background:#000;margin-bottom:1rem}.recaption-caption-block{margin-bottom:1rem}.recaption-caption-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem;color:var(--text-secondary, #999)}.recaption-caption-text{font-size:.9rem;line-height:1.5;padding:.75rem;border-radius:6px;background:var(--input-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-color, #333);white-space:pre-wrap;word-break:break-word}.recaption-caption-text.current{opacity:.6}.recaption-caption-text.new{border-color:var(--accent-color, #7c3aed)}.recaption-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.25rem;border-top:1px solid var(--border-color, #333)}.recaption-btn{padding:.5rem 1.25rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:1px solid var(--border-color, #333);display:flex;align-items:center;gap:.4rem;transition:background .15s,opacity .15s}.recaption-btn:disabled{opacity:.5;cursor:not-allowed}.recaption-btn-reject{background:transparent;color:var(--text-primary, #fff)}.recaption-btn-reject:hover:not(:disabled){background:var(--hover-bg, rgba(255, 255, 255, .1))}.recaption-btn-keep{background:#16a34a;color:#fff;border-color:#16a34a}.recaption-btn-keep:hover:not(:disabled){background:#15803d}.workspace-detail-overlay{position:fixed;inset:0;background-color:#000000e6;z-index:1000;display:flex;align-items:stretch}.workspace-detail-modal{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.workspace-detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-primary);flex-shrink:0}.workspace-detail-header-left{display:flex;align-items:center;gap:var(--space-4)}.workspace-detail-breadcrumb{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.workspace-detail-breadcrumb:hover{background-color:var(--color-bg-hover);color:var(--color-accent)}.workspace-detail-breadcrumb-separator{color:var(--color-text-muted);margin-left:var(--space-1)}.workspace-detail-nav{display:flex;align-items:center;gap:var(--space-2)}.workspace-detail-nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.workspace-detail-nav-btn:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.workspace-detail-nav-btn:disabled{opacity:.4;cursor:not-allowed}.workspace-detail-nav-position{font-size:var(--text-sm);color:var(--color-text-secondary);min-width:80px;text-align:center}.workspace-detail-actions{display:flex;align-items:center;gap:var(--space-2)}.workspace-detail-action-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-2);border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.workspace-detail-action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.workspace-detail-action-edit:hover{color:var(--color-accent)}.workspace-detail-action-danger:hover{color:var(--color-error)}.workspace-detail-close-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-left:var(--space-2)}.workspace-detail-close-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.workspace-detail-content{display:flex;flex:1;overflow:hidden}.workspace-detail-image-section{flex:1;background-color:#1a1a1a;display:flex;flex-direction:column;overflow:hidden}.workspace-detail-image-wrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-4);min-height:0}.workspace-detail-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}.workspace-detail-image-footer{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-primary, #1e1e2e);border-top:1px solid var(--color-border-light, #2a2a3a);flex-shrink:0;flex-wrap:wrap}.workspace-detail-footer-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--color-border-light, #3a3a4a);border-radius:var(--radius-md);background:var(--color-bg-secondary, #2a2a3a);color:var(--color-text-primary, #e0e0e0);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.workspace-detail-footer-btn:hover:not(:disabled){background:var(--color-accent, #3b82f6);border-color:var(--color-accent, #3b82f6);color:#fff}.workspace-detail-footer-btn:disabled{opacity:.6;cursor:not-allowed}.workspace-detail-footer-btn-danger:hover{background:#ef4444;border-color:#ef4444}.workspace-detail-footer-btn-unpaint{letter-spacing:.05em;border-color:var(--color-accent, #3b82f6);color:var(--color-accent, #3b82f6)}.workspace-detail-footer-btn-unpaint:hover:not(:disabled){background:var(--color-accent, #3b82f6);color:#fff}.workspace-detail-sidebar{width:320px;background-color:var(--color-bg-primary);border-left:1px solid var(--color-border-light);overflow-y:auto;flex-shrink:0;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}.workspace-detail-info h3{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0;text-transform:uppercase;letter-spacing:.05em}.workspace-detail-prompt{position:relative;background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-3);padding-right:var(--space-10)}.workspace-detail-prompt p{margin:0;font-size:var(--text-sm);color:var(--color-text-primary);line-height:1.5;white-space:pre-wrap}.workspace-detail-copy-btn{position:absolute;top:var(--space-2);right:var(--space-2);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.workspace-detail-copy-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.workspace-detail-filename{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:14px;font-weight:600;min-width:0}.workspace-detail-filename-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.workspace-detail-meta{display:flex;flex-direction:column;gap:var(--space-3)}.workspace-detail-meta-item{display:flex;flex-direction:column;gap:var(--space-1)}.workspace-detail-meta-label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.workspace-detail-meta-value{font-size:var(--text-sm);color:var(--color-text-primary)}.workspace-detail-caption{font-style:italic;color:var(--text-secondary, #94a3b8);line-height:1.5}@media(max-width:768px){.workspace-detail-content{flex-direction:column}.workspace-detail-sidebar{width:100%;max-height:40vh;border-left:none;border-top:1px solid var(--color-border-light)}}.workspace-active-jobs{margin-bottom:1rem}.workspace-active-jobs-title{font-size:.85rem;color:var(--text-secondary, #888);margin-bottom:.5rem}.workspace-jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.workspace-job-card{background:var(--bg-secondary, #1a1a1a);border-radius:12px;border:1px solid var(--border, #333);border-left:3px solid var(--accent, #3b82f6);padding:1rem;display:flex;align-items:center;gap:1rem}.workspace-job-spinner{width:24px;height:24px;border:3px solid var(--border, #333);border-top-color:var(--accent, #3b82f6);border-radius:50%;animation:workspace-jobs-spin 1s linear infinite;flex-shrink:0}@keyframes workspace-jobs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.workspace-job-info{flex:1;min-width:0}.workspace-job-prompt{font-size:.85rem;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-job-status{font-size:.75rem;color:var(--text-tertiary, #666);margin-top:.25rem}.unpaint-modal-backdrop{position:fixed;inset:0;background-color:#000000e6;z-index:1200;display:flex;flex-direction:column}.unpaint-modal{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--color-bg-primary);color:var(--color-text-primary)}.unpaint-toolbar{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0}.unpaint-toolbar-group{display:flex;align-items:center;gap:4px}.unpaint-toolbar-group label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);margin-right:4px;white-space:nowrap}.unpaint-toolbar-group input[type=range]{width:100px;height:4px}.unpaint-toolbar-group button{padding:4px 8px;font-size:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;transition:all .1s}.unpaint-toolbar-group button:hover:not(:disabled){background:var(--color-bg-hover)}.unpaint-toolbar-group button:disabled{opacity:.4;cursor:not-allowed}.unpaint-toolbar-group button.unpaint-tool-active{background:#ff6b9d;color:#fff;border-color:#ff6b9d}.unpaint-toolbar-group .unpaint-btn-save{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.unpaint-toolbar-group .unpaint-btn-save:hover:not(:disabled){background:var(--color-accent-hover)}.unpaint-toolbar-spacer{flex:1}.unpaint-toolbar-group .unpaint-btn-close{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.unpaint-toolbar-group .unpaint-btn-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.unpaint-split{display:flex;flex:1;min-height:0;overflow:hidden}.unpaint-panel{flex:1;min-width:0;position:relative;overflow:hidden;background:var(--color-bg-secondary)}.unpaint-divider{width:2px;background:var(--color-border);flex-shrink:0}.unpaint-canvas{display:block;width:100%;height:100%;cursor:none}.unpaint-cursor-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.unpaint-label{position:absolute;top:6px;left:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary);opacity:.7;pointer-events:none}.unpaint-zoom-badge{position:absolute;top:6px;right:8px;font-size:11px;font-weight:600;color:#ff6b9d;background:#0f172acc;padding:2px 6px;border-radius:4px;pointer-events:none}.unpaint-status{display:flex;justify-content:space-between;align-items:center;padding:4px 12px;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-tertiary);flex-shrink:0}.unpaint-error-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000c;z-index:10;padding:24px}.unpaint-error-box{max-width:480px;background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px 24px;display:flex;flex-direction:column;gap:16px;text-align:center}.unpaint-error-message{margin:0;font-size:14px;line-height:1.5}.unpaint-error-box .unpaint-btn-close{align-self:center;padding:6px 16px}@media(max-width:768px){.unpaint-split{flex-direction:column}.unpaint-divider{width:100%;height:2px}}.workspace-gallery{padding:var(--space-4);padding-bottom:80px;max-width:1600px;margin:0 auto}.workspace-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-4);flex-wrap:wrap}.workspace-title{display:flex;align-items:center;gap:var(--space-3)}.workspace-title h1{font-size:var(--text-2xl);font-weight:var(--font-bold);margin:0}.workspace-title svg{color:var(--color-accent)}.workspace-count{font-size:var(--text-sm);color:var(--color-text-muted);background-color:var(--color-bg-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.workspace-user-switcher{display:flex;align-items:center;gap:var(--space-2);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.workspace-user-switcher svg{color:var(--color-text-muted);flex-shrink:0}.workspace-user-switcher select{border:none;background:none;color:var(--color-text-primary);font-size:var(--text-sm);outline:none;cursor:pointer;max-width:240px}.workspace-user-switcher select option{background-color:var(--color-bg-primary);color:var(--color-text-primary)}.workspace-search{display:flex;align-items:center;gap:var(--space-2);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);width:300px}.workspace-search svg{color:var(--color-text-muted);flex-shrink:0}.workspace-search input{flex:1;border:none;background:none;color:var(--color-text-primary);font-size:var(--text-sm);outline:none}.workspace-search input::placeholder{color:var(--color-text-muted)}.workspace-search:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 2px #3b82f633}.workspace-header-controls{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.workspace-grid{gap:var(--space-4)}.workspace-grid-mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.workspace-grid-mode-masonry{display:flex;flex-wrap:wrap;align-content:flex-start}.workspace-grid-mode-masonry>*{height:var(--masonry-row-height);flex:1 1 calc(var(--masonry-row-height) * 1.5);min-width:0;max-width:100%}.workspace-grid-mode-masonry>.workspace-empty{flex:1 1 100%;height:auto;min-height:200px}.workspace-grid-masonry-sentinel{flex-grow:999!important;flex-basis:0!important;height:0!important;min-width:0;pointer-events:none}.workspace-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center;color:var(--color-text-muted)}.workspace-empty svg{margin-bottom:var(--space-4);opacity:.5}.workspace-empty h3{font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-2) 0;color:var(--color-text-secondary)}.workspace-empty p{margin:0;font-size:var(--text-sm)}.workspace-load-more{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:var(--space-6)}.workspace-load-more button{padding:var(--space-3) var(--space-6);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.workspace-load-more button:hover{background-color:var(--color-bg-hover);border-color:var(--color-accent)}.workspace-loading{text-align:center;padding:var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm)}@media(max-width:768px){.workspace-header{flex-direction:column;align-items:stretch}.workspace-search{width:100%}.workspace-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}}.metadata-editor{display:flex;flex-direction:column;gap:var(--space-3)}.metadata-editor-modal{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--space-4);width:100%;max-width:500px}.metadata-editor-inline{padding:var(--space-3);background-color:var(--color-bg-secondary);border-radius:var(--radius-md)}.metadata-editor-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.metadata-editor-title{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-primary)}.metadata-editor-title h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold)}.metadata-editor-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.metadata-editor-close:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.metadata-editor-content{display:flex;flex-direction:column;gap:var(--space-2)}.metadata-editor-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.metadata-editor-textarea{min-height:120px;padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm);line-height:1.5;resize:vertical;transition:border-color var(--transition-fast)}.metadata-editor-textarea:focus{outline:none;border-color:var(--color-accent)}.metadata-editor-textarea:disabled{opacity:.6;cursor:not-allowed}.metadata-editor-textarea::placeholder{color:var(--color-text-muted)}.metadata-editor-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.metadata-editor-char-count{font-size:var(--text-xs);color:var(--color-text-muted)}.metadata-editor-error{font-size:var(--text-xs);color:var(--color-error)}.metadata-editor-actions{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.metadata-editor-unsaved{font-size:var(--text-xs);color:var(--color-warning)}.metadata-editor-save{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background-color:var(--color-accent);color:#fff;font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.metadata-editor-save:hover:not(:disabled){background-color:var(--color-accent-hover)}.metadata-editor-save:disabled{opacity:.5;cursor:not-allowed}.metadata-editor-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.metadata-editor-hint kbd{display:inline-block;padding:2px 6px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-family:inherit;font-size:.85em}.metadata-editor-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);color:var(--color-text-muted)}.delivery-widget-overlay{position:fixed;inset:0;background-color:#0009;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.delivery-widget{width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0006;overflow:hidden}.delivery-widget-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border-light)}.delivery-widget-title{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.delivery-widget-title h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.delivery-widget-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delivery-widget-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.delivery-widget-close:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.delivery-widget-body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);overflow-y:auto}.delivery-widget-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);background-color:var(--color-bg-secondary);border:1px solid transparent;border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.delivery-widget-row:hover{border-color:var(--color-border-light)}.delivery-widget-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;background-color:var(--color-accent, #3b82f6);color:#fff;font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;border-radius:var(--radius-md);transition:filter var(--transition-fast);min-width:140px;justify-content:center}.delivery-widget-btn:hover:not(:disabled){filter:brightness(1.1)}.delivery-widget-btn:disabled{opacity:.6;cursor:not-allowed}.delivery-widget-status{flex:1;text-align:right;font-size:var(--text-sm);color:var(--color-text-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-1)}.delivery-widget-status.success{color:#10b981}.delivery-widget-status.error{color:#ef4444}.delivery-widget-note{margin:0;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.4}.delivery-widget-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-light);background-color:var(--color-bg-secondary)}.delivery-widget-footer-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-light);background:none;color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.delivery-widget-footer-btn:hover{background-color:var(--color-bg-hover)}.delivery-widget-spin{animation:deliverySpin 1s linear infinite}@keyframes deliverySpin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background-color:var(--color-bg-secondary)}.login-card{width:100%;max-width:400px;background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-8)}.login-header{text-align:center;margin-bottom:var(--space-6)}.login-logo{color:var(--color-accent);margin-bottom:var(--space-3)}.login-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0 0 var(--space-1) 0}.login-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.login-error{background-color:#fa52521a;border:1px solid var(--color-error);color:var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4)}.login-form{display:flex;flex-direction:column;gap:var(--space-4)}.login-field{display:flex;flex-direction:column;gap:var(--space-1)}.login-field label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.login-field input{padding:var(--space-3);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);transition:all var(--transition-fast)}.login-field input:focus{outline:none;border-color:var(--color-accent);background-color:var(--color-bg-primary)}.login-submit{width:100%;justify-content:center;margin-top:var(--space-2)}.login-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background-color:var(--color-border-light)}.login-divider span{font-size:var(--text-sm);color:var(--color-text-muted)}.login-google{width:100%;justify-content:center;gap:var(--space-2)}.google-icon{flex-shrink:0}.login-toggle{text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-6)}.login-toggle button{background:none;border:none;color:var(--color-accent);cursor:pointer;font-size:inherit}.login-toggle button:hover{text-decoration:underline}.login-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.batch-import-page{padding:var(--space-6);max-width:1400px;margin:0 auto}.batch-import-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.batch-import-header h1{font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary);display:inline-flex;align-items:center;gap:var(--space-3)}.compartment-chip{padding:2px 8px;font-size:.7em;font-weight:600;border-radius:4px;vertical-align:middle;letter-spacing:.05em}.compartment-chip-media{background:#1f2937;color:#d1d5db}.compartment-chip-scenes{background:#4338ca;color:#e0e7ff}.show-all-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:.85em;color:var(--color-text-secondary, #9ca3af);cursor:pointer;-webkit-user-select:none;user-select:none}.show-all-toggle input[type=checkbox]{cursor:pointer}.task-compartment-badge{margin-left:auto;font-size:.65em;padding:1px 6px;border-radius:3px;letter-spacing:.04em;font-weight:600}.batch-import-content{display:grid;grid-template-columns:320px 1fr;gap:var(--space-6);min-height:600px}.batch-task-list{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column}.batch-task-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.batch-task-list-header h2{font-size:var(--text-lg);font-weight:600}.refresh-btn{padding:var(--space-2);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md)}.refresh-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.create-task-form{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.create-task-form input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--text-sm);box-sizing:border-box}.create-task-buttons{display:flex;gap:var(--space-2)}.create-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;white-space:nowrap}.create-btn:hover{background:var(--color-primary-hover)}.create-btn:disabled{opacity:.6;cursor:not-allowed}.task-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2)}.no-tasks{text-align:center;color:var(--color-text-muted);padding:var(--space-6)}.task-item{padding:var(--space-3);background:var(--color-bg-primary);border-radius:var(--radius-md);cursor:pointer;border:2px solid transparent;transition:all var(--transition-fast)}.task-item.selected{border-color:var(--color-primary)}.task-item-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.task-name{font-weight:500;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-item-meta{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.task-progress-bar{height:4px;background:var(--color-bg-tertiary);border-radius:2px;margin-top:var(--space-2);overflow:hidden}.task-progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.status-uploading{color:#3b82f6}.status-pending{color:#f59e0b}.status-processing{color:#6366f1}.status-completed{color:#22c55e}.status-warning{color:#f59e0b}.status-failed{color:#ef4444}.status-archived{color:#6b7280}.status-awaiting{color:#8b5cf6}.batch-task-detail{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-6)}.no-task-selected{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);gap:var(--space-4)}.task-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.task-title{display:flex;align-items:center;gap:var(--space-3)}.task-title h2{font-size:var(--text-xl);font-weight:600}.task-actions{display:flex;gap:var(--space-2)}.start-btn,.archive-btn,.delete-btn,.upload-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer}.start-btn{background:#22c55e;color:#fff}.start-btn:hover{background:#16a34a}.start-btn:disabled{opacity:.6;cursor:not-allowed}.archive-btn{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.archive-btn:hover{background:var(--color-border)}.delete-btn{background:transparent;color:#ef4444;padding:var(--space-2)}.delete-btn:hover{background:#ef4444;color:#fff}.upload-btn{background:var(--color-primary);color:#fff}.upload-btn:hover{background:var(--color-primary-hover)}.upload-btn:disabled{opacity:.6;cursor:not-allowed}.batch-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;cursor:pointer;transition:all var(--transition-fast);margin-bottom:var(--space-6)}.batch-dropzone:hover,.batch-dropzone.dragging{border-color:var(--color-primary);background:#6366f10d}.batch-dropzone p{margin:var(--space-3) 0 var(--space-1);font-weight:500}.batch-dropzone span{font-size:var(--text-sm);color:var(--color-text-muted)}.pending-files{background:var(--color-bg-primary);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-6)}.pending-files-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.pending-files-header h3{font-size:var(--text-base);font-weight:500}.pending-files-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:200px;overflow-y:auto}.pending-file{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-sm)}.pending-file span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--color-text-muted);font-size:var(--text-xs);flex:0 0 auto!important}.more-files{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-2)}.progress-monitor{background:var(--color-bg-primary);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-6)}.progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.progress-header h3{font-size:var(--text-base);font-weight:500}.progress-percent{font-size:var(--text-lg);font-weight:600;color:var(--color-primary)}.progress-bar-large{height:8px;background:var(--color-bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:var(--space-4)}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.progress-stats{display:flex;gap:var(--space-6)}.stat{display:flex;flex-direction:column;gap:var(--space-1)}.stat-label{font-size:var(--text-xs);color:var(--color-text-muted)}.stat-value{font-size:var(--text-lg);font-weight:600}.current-file{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-secondary)}.task-stats{background:var(--color-bg-primary);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-6)}.stat-row{display:flex;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-sm)}.stat-row:last-child{border-bottom:none}.status-badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;text-transform:capitalize}.status-badge.uploading{background:#3b82f61a;color:#3b82f6}.status-badge.pending{background:#f59e0b1a;color:#f59e0b}.status-badge.processing{background:#6366f11a;color:#6366f1}.status-badge.completed{background:#22c55e1a;color:#22c55e}.status-badge.completed_with_errors{background:#f59e0b1a;color:#f59e0b}.status-badge.failed{background:#ef44441a;color:#ef4444}.status-badge.awaiting_upload{background:#8b5cf61a;color:#8b5cf6}.status-badge.archived{background:var(--color-bg-tertiary);color:var(--color-text-muted)}.task-errors{background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);padding:var(--space-4)}.task-errors h3{font-size:var(--text-base);font-weight:500;color:#ef4444;margin-bottom:var(--space-3)}.error-list{display:flex;flex-direction:column;gap:var(--space-2)}.error-item{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm)}.error-filename{font-weight:500}.error-message{color:var(--color-text-secondary)}.batch-import-footer{text-align:center;padding:var(--space-4) 0;margin-top:var(--space-4);border-top:1px solid var(--color-border)}.ftp-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);text-decoration:none;transition:color var(--transition-fast)}.ftp-link:hover{color:var(--color-accent)}.ftp-btn{background:#8b5cf6!important}.ftp-btn:hover{background:#7c3aed!important}.ftp-scan-section{background:#8b5cf60d;border:1px solid rgba(139,92,246,.2);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.ftp-info{display:flex;align-items:flex-start;gap:var(--space-3);color:#8b5cf6}.ftp-info>div{display:flex;flex-direction:column;gap:var(--space-1)}.ftp-label{font-weight:600;font-size:var(--text-base);color:var(--color-text-primary)}.ftp-prefix{font-size:var(--text-sm);color:var(--color-text-secondary)}.ftp-prefix code{background:var(--color-bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:monospace}.ftp-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.scan-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:#8b5cf6;color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;flex-shrink:0}.scan-btn:hover{background:#7c3aed}.scan-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.batch-import-content{grid-template-columns:1fr}.batch-task-list{max-height:300px}}.projects-card{background:var(--bg-secondary, #1a1a1a);border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid var(--border, #333);cursor:pointer}.projects-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.projects-card.selected{border-color:var(--accent, #3b82f6);box-shadow:0 0 0 2px #3b82f64d}.projects-card-image{overflow:hidden;background:var(--bg-primary, #0a0a0a);position:relative}.projects-card-grid .projects-card-image{aspect-ratio:1}.projects-card-masonry{display:flex;flex-direction:column;min-width:0;max-width:100%;overflow:hidden}.projects-card-masonry .projects-card-image{flex:1 1 auto;width:100%;height:100%;aspect-ratio:auto}.projects-card-masonry .projects-card-image img{object-fit:contain}.projects-card-masonry .projects-card-info{display:none}.projects-card-masonry{position:relative}.projects-card-masonry .projects-card-actions{position:absolute;left:0;right:0;bottom:0;padding:.5rem .75rem;border-top:none;background:linear-gradient(to top,#000000d9,#0000);opacity:0;pointer-events:none;transition:opacity .2s;z-index:2}.projects-card-masonry:hover .projects-card-actions,.projects-card-masonry.selected .projects-card-actions{opacity:1;pointer-events:auto}.projects-card-masonry .projects-card-action{color:#ffffffd9}.projects-card-masonry .projects-card-action:hover{color:#fff;background:#ffffff26}.projects-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.projects-card:hover .projects-card-image img{transform:scale(1.05)}.projects-card-select{position:absolute;top:8px;left:8px;width:24px;height:24px;border-radius:6px;border:2px solid rgba(255,255,255,.6);background:#0006;color:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;opacity:0}.projects-card:hover .projects-card-select,.projects-card.selected .projects-card-select{opacity:1}.projects-card-select.active{background:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6);color:#fff}.projects-card-info{padding:.75rem}.projects-card-filename{font-size:.7rem;font-family:monospace;color:var(--text-secondary, #8b949e);margin:0 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-card-prompt{font-size:.85rem;color:var(--text-primary, #fff);margin:0 0 .25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.projects-card-date{font-size:.75rem;color:var(--text-tertiary, #666)}.projects-card-actions{display:flex;justify-content:flex-end;gap:.25rem;padding:.5rem .75rem;border-top:1px solid var(--border, #333);opacity:0;transition:opacity .2s}.projects-card:hover .projects-card-actions{opacity:1}.projects-card-action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:none;background:transparent;color:var(--text-secondary, #888);cursor:pointer;transition:all .2s}.projects-card-action:hover{background:var(--bg-hover, #252525);color:var(--text-primary, #fff)}.projects-card-action.inpaint:hover{background:#9333ea33;color:#9333ea}.projects-card-action.download:hover{background:#3b82f633;color:#3b82f6}.projects-card-action.download:disabled{opacity:.5;cursor:not-allowed}.projects-card-action.danger:hover{background:#ef444433;color:#ef4444}.projects-card-action.promote{width:auto;padding:0 8px;font-size:.65rem;font-weight:700;letter-spacing:.05em;color:#ef4444}.projects-card-action.promote:hover{background:#ef444433;color:#f87171}.projects-card-action.promote:disabled{opacity:.5;cursor:not-allowed}.projects-card-action.promote.success{color:#22c55e}.projects-card-action.promote.error{color:#ef4444}.projects-detail-overlay{position:fixed;inset:0;background-color:#000000e6;z-index:1000;display:flex;align-items:stretch}.projects-detail-modal{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.projects-detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-primary);flex-shrink:0}.projects-detail-header-left{display:flex;align-items:center;gap:var(--space-4)}.projects-detail-breadcrumb{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium)}.projects-detail-breadcrumb:hover{background-color:var(--color-bg-hover);color:var(--color-accent)}.projects-detail-breadcrumb-separator{color:var(--color-text-muted);margin-left:var(--space-1)}.projects-detail-nav{display:flex;align-items:center;gap:var(--space-2)}.projects-detail-nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.projects-detail-nav-btn:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.projects-detail-nav-btn:disabled{opacity:.4;cursor:not-allowed}.projects-detail-nav-position{font-size:var(--text-sm);color:var(--color-text-secondary);min-width:80px;text-align:center}.projects-detail-actions{display:flex;align-items:center;gap:var(--space-2)}.projects-detail-action-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-2);border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.projects-detail-action-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.projects-detail-action-reprompt:hover{color:var(--color-accent)}.projects-detail-action-danger:hover{color:var(--color-error)}.projects-detail-close-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);margin-left:var(--space-2)}.projects-detail-close-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.projects-detail-content{display:flex;flex:1;overflow:hidden}.projects-detail-image-section{flex:1;background-color:#1a1a1a;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-4)}.projects-detail-image-section img{max-width:100%;max-height:100%;object-fit:contain}.projects-detail-sidebar{width:320px;background-color:var(--color-bg-primary);border-left:1px solid var(--color-border-light);overflow-y:auto;flex-shrink:0;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}.projects-detail-info h3{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0;text-transform:uppercase;letter-spacing:.05em}.projects-detail-prompt{position:relative;background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-3);padding-right:var(--space-10)}.projects-detail-prompt p{margin:0;font-size:var(--text-sm);color:var(--color-text-primary);line-height:1.5;white-space:pre-wrap}.projects-detail-copy-btn{position:absolute;top:var(--space-2);right:var(--space-2);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.projects-detail-copy-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.projects-detail-meta{display:flex;flex-direction:column;gap:var(--space-3)}.projects-detail-meta-item{display:flex;flex-direction:column;gap:var(--space-1)}.projects-detail-meta-label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.projects-detail-meta-value{font-size:var(--text-sm);color:var(--color-text-primary)}@media(max-width:768px){.projects-detail-content{flex-direction:column}.projects-detail-sidebar{width:100%;max-height:40vh;border-left:none;border-top:1px solid var(--color-border-light)}}.projects-gallery{flex:1;display:flex;flex-direction:column}.projects-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.projects-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--text-primary, #fff)}.projects-count{font-size:.85rem;font-weight:400;color:var(--text-tertiary, #666);margin-left:.25rem}.projects-search{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary, #1a1a1a);padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border, #333);max-width:280px;width:100%}.projects-search:focus-within{border-color:var(--accent, #3b82f6)}.projects-search input{background:transparent;border:none;color:var(--text-primary, #fff);width:100%;outline:none;font-size:.85rem}.projects-search input::placeholder{color:var(--text-tertiary, #666)}.projects-header-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.projects-grid{gap:var(--grid-gap);flex:1}.projects-grid-mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.projects-grid-mode-masonry{display:flex;flex-wrap:wrap;align-content:flex-start}.projects-grid-mode-masonry>.projects-loading,.projects-grid-mode-masonry>.projects-empty{flex:1 1 100%;min-width:0;max-width:100%}.projects-grid-masonry-sentinel{flex-grow:999!important;flex-basis:0!important;height:0!important;min-width:0;pointer-events:none}.projects-loading,.projects-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text-secondary, #888);text-align:center}.projects-empty h3{margin:1rem 0 .5rem;color:var(--text-primary, #fff)}.projects-empty p{margin:0;font-size:.9rem}.projects-load-more{display:flex;justify-content:center;align-items:center;gap:16px;padding:1.5rem}.projects-load-more button{padding:.5rem 1.5rem;border-radius:8px;border:1px solid var(--border, #333);background:var(--bg-secondary, #1a1a1a);color:var(--text-primary, #fff);cursor:pointer;font-size:.9rem;transition:all .2s}.projects-load-more button:hover{background:var(--bg-hover, #252525);border-color:var(--accent, #3b82f6)}.projects-loading-more{text-align:center;padding:1rem;color:var(--text-secondary, #888);font-size:.9rem}.clips-card{background:var(--bg-secondary, #1a1a1a);border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid var(--border, #333);cursor:pointer}.clips-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.clips-card-media{aspect-ratio:16/9;overflow:hidden;background:var(--bg-primary, #0a0a0a);position:relative}.clips-card-media video,.clips-card-media img{width:100%;height:100%;object-fit:cover}.clips-card-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000004d;opacity:1;transition:opacity .2s}.clips-card-play-overlay.playing{opacity:0;pointer-events:none}.clips-card-play-btn{width:48px;height:48px;border-radius:50%;background:#0009;border:2px solid rgba(255,255,255,.8);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}.clips-card:hover .clips-card-play-btn{transform:scale(1.1)}.clips-card-duration{position:absolute;top:8px;right:8px;background:#000000b3;color:#fff;font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:4px}.clips-card-info{padding:.75rem}.clips-card-prompt{font-size:.85rem;color:var(--text-primary, #fff);margin:0 0 .25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.clips-card-date{font-size:.75rem;color:var(--text-tertiary, #666)}.clips-card-actions{display:flex;justify-content:flex-end;gap:.25rem;padding:.5rem .75rem;border-top:1px solid var(--border, #333)}.clips-card-action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:none;background:transparent;color:var(--text-secondary, #888);cursor:pointer;transition:all .2s}.clips-card-action:hover{background:var(--bg-hover, #252525);color:var(--text-primary, #fff)}.clips-card-action.download:hover{background:#3b82f633;color:#3b82f6}.clips-card-action.danger:hover{background:#ef444433;color:#ef4444}.clips-card-pending{opacity:.7}.clips-card-pending .clips-card-media{display:flex;align-items:center;justify-content:center}.clips-card-spinner{width:32px;height:32px;border:3px solid var(--border, #333);border-top-color:var(--accent, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.clips-card-selected{outline:2px solid var(--accent, #3b82f6);outline-offset:-2px}.clips-card-select{position:absolute;top:8px;left:8px;width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.4);background:#0000008c;color:#ffffff8c;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;z-index:2}.clips-card-select:hover{background:#000000bf;color:#fff;border-color:#fff}.clips-card-select.active{background:var(--accent, #3b82f6);color:#fff;border-color:var(--accent, #3b82f6)}.clips-preview-overlay{position:fixed;inset:0;background:#000000eb;z-index:1100;display:flex;align-items:stretch;justify-content:stretch}.clips-preview-shell{width:100%;height:100%;display:flex;flex-direction:column}.clips-preview-topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);background:#00000073;flex-shrink:0}.clips-preview-nav{display:flex;align-items:center;gap:.5rem;color:#ffffffd9}.clips-preview-nav-btn{width:36px;height:36px;border-radius:6px;border:none;background:transparent;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.clips-preview-nav-btn:hover:not(:disabled){background:#ffffff14;color:#fff}.clips-preview-nav-btn:disabled{opacity:.4;cursor:not-allowed}.clips-preview-counter{font-size:.85rem;min-width:80px;text-align:center}.clips-preview-actions{display:flex;align-items:center;gap:.25rem}.clips-preview-action{width:36px;height:36px;border-radius:6px;border:none;background:transparent;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.clips-preview-action:hover{background:#ffffff14;color:#fff}.clips-preview-action.danger:hover{background:#ef444433;color:#ef4444}.clips-preview-stage{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1.5rem}.clips-preview-video{max-width:95vw;max-height:90vh;object-fit:contain;background:#000;border-radius:8px;box-shadow:0 30px 80px #0009}.clips-gallery{flex:1;display:flex;flex-direction:column}.clips-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.clips-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--text-primary, #fff)}.clips-count{font-size:.85rem;font-weight:400;color:var(--text-tertiary, #666);margin-left:.25rem}.clips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;flex:1}.clips-loading,.clips-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text-secondary, #888);text-align:center}.clips-empty h3{margin:1rem 0 .5rem;color:var(--text-primary, #fff)}.clips-empty p{margin:0;font-size:.9rem}.clips-load-more{display:flex;justify-content:center;align-items:center;gap:16px;padding:1.5rem}.clips-load-more button{padding:.5rem 1.5rem;border-radius:8px;border:1px solid var(--border, #333);background:var(--bg-secondary, #1a1a1a);color:var(--text-primary, #fff);cursor:pointer;font-size:.9rem;transition:all .2s}.clips-load-more button:hover{background:var(--bg-hover, #252525);border-color:var(--accent, #3b82f6)}.clips-active-jobs{margin-bottom:1rem}.clips-active-jobs-title{font-size:.85rem;color:var(--text-secondary, #888);margin-bottom:.5rem}.clips-jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.clips-job-card{background:var(--bg-secondary, #1a1a1a);border-radius:12px;border:1px solid var(--border, #333);border-left:3px solid var(--accent, #3b82f6);padding:1rem;display:flex;align-items:center;gap:1rem}.clips-job-spinner{width:24px;height:24px;border:3px solid var(--border, #333);border-top-color:var(--accent, #3b82f6);border-radius:50%;animation:clips-spin 1s linear infinite;flex-shrink:0}@keyframes clips-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.clips-job-info{flex:1;min-width:0}.clips-job-prompt{font-size:.85rem;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clips-job-status{font-size:.75rem;color:var(--text-tertiary, #666);margin-top:.25rem}.nbm-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.nbm-dialog{width:min(640px,95vw);max-height:90vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);overflow:hidden}.nbm-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--color-border)}.nbm-head h2{margin:0;font-size:1.05rem;font-weight:600}.nbm-close{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer}.nbm-close:disabled{opacity:.5;cursor:not-allowed}.nbm-body{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.nbm-field label{display:block;font-size:.75rem;color:var(--color-text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.nbm-field label.required:after{content:" *";color:#f59e0b}.nbm-field input[type=text],.nbm-field input[type=number],.nbm-field textarea{width:100%;padding:6px 8px;background:var(--color-bg-alt, #1a1a1a);border:1px solid var(--color-border);color:inherit;border-radius:4px;font:inherit;box-sizing:border-box}.nbm-field input[type=checkbox]{margin:0}.nbm-field textarea{resize:vertical;min-height:60px;font-family:inherit}.nbm-fielderror{color:#f59e0b;font-size:.75rem;margin-top:4px}.nbm-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:12px 18px;border-top:1px solid var(--color-border);background:var(--color-bg);flex-wrap:wrap}.nbm-foot .nbm-error{flex:1;color:#ef4444;font-size:.8rem;min-width:200px}.nbm-btn-primary,.nbm-btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:.85rem}.nbm-btn-primary{background:var(--color-accent);color:#fff;border:none}.nbm-btn-secondary{background:var(--color-bg-alt, #1a1a1a);color:var(--color-text);border:1px solid var(--color-border)}.nbm-btn-primary:disabled,.nbm-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.nbm-spin{animation:nbm-spin .9s linear infinite}@keyframes nbm-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.artikel-csv-panel{max-width:800px;padding:1rem 0}.artikel-header{margin-bottom:1.5rem}.artikel-header-info{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.artikel-header-info h2{font-size:1.25rem;margin:0}.artikel-count{padding:.2rem .6rem;background:var(--bg-tertiary, #2a2a2a);border-radius:9999px;font-size:.75rem;color:var(--text-secondary, #888)}.artikel-description{margin:0;font-size:.85rem;color:var(--text-secondary, #888)}.artikel-admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 1.25rem;padding:10px 12px;background:var(--bg-secondary, #1a1a1a);border:1px solid var(--border, #333);border-radius:8px}.artikel-admin-actions{display:flex;gap:8px;flex-wrap:wrap}.artikel-admin-actions button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-tertiary, #2a2a2a);color:var(--text-primary, #fff);border:1px solid var(--border, #333);border-radius:6px;font-size:.85rem;cursor:pointer;transition:background .15s}.artikel-admin-actions button:hover:not(:disabled){background:var(--bg-secondary, #232323)}.artikel-admin-actions button:disabled{opacity:.5;cursor:not-allowed}.artikel-admin-source{font-size:.75rem;color:var(--text-secondary, #888)}.artikel-spin{animation:artikel-spin .9s linear infinite}@keyframes artikel-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.artikel-search{margin-bottom:1.5rem}.artikel-search-input{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-secondary, #1a1a1a);border:1px solid var(--border, #333);border-radius:8px;transition:border-color .2s}.artikel-search-input:focus-within{border-color:var(--accent, #3b82f6)}.artikel-search-input input{flex:1;background:none;border:none;color:var(--text-primary, #fff);font-size:.95rem;outline:none}.artikel-search-input input::placeholder{color:var(--text-tertiary, #555)}.artikel-search-clear{background:none;border:none;color:var(--text-secondary, #888);font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1}.artikel-search-clear:hover{color:var(--text-primary, #fff)}.artikel-result{border:1px solid var(--border, #333);border-radius:10px;overflow:hidden;margin-bottom:1.5rem}.artikel-result-found{border-color:#22c55e40}.artikel-result-empty{border-color:#f59e0b40}.artikel-result-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--bg-secondary, #1a1a1a)}.artikel-result-badge{padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap}.artikel-result-badge.found{background:#22c55e20;color:#22c55e}.artikel-result-badge.not-found{background:#f59e0b20;color:#f59e0b}.artikel-result-prefix,.artikel-result-hint{font-size:.85rem;color:var(--text-secondary, #888)}.artikel-mapped-section{padding:1rem;border-bottom:1px solid var(--border, #333)}.artikel-mapped-section h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #888);margin:0 0 .75rem}.artikel-mapped-fields{display:flex;flex-direction:column;gap:.5rem}.artikel-mapped-field{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-tertiary, #2a2a2a);border-radius:6px}.artikel-field-label{display:flex;align-items:center;gap:.4rem;min-width:180px;font-size:.8rem;font-weight:600;color:var(--accent, #3b82f6);font-family:SF Mono,Fira Code,monospace}.artikel-field-value{font-size:.9rem;color:var(--text-primary, #fff)}.artikel-raw-section{padding:1rem}.artikel-raw-section h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #888);margin:0 0 .75rem}.artikel-raw-grid{display:flex;flex-direction:column;gap:.25rem}.artikel-raw-row{display:flex;padding:.4rem 0;border-bottom:1px solid var(--border, #222);gap:1rem}.artikel-raw-label{min-width:140px;font-size:.75rem;font-weight:600;color:var(--text-secondary, #888);text-transform:uppercase;letter-spacing:.03em}.artikel-raw-value{font-size:.85rem;color:var(--text-primary, #fff);white-space:pre-line}.artikel-list-section{margin-top:1rem}.artikel-list-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:var(--bg-secondary, #1a1a1a);border:1px solid var(--border, #333);border-radius:8px;color:var(--text-primary, #fff);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.artikel-list-toggle:hover{background:var(--bg-tertiary, #2a2a2a)}.artikel-list-table{margin-top:.5rem;border:1px solid var(--border, #333);border-radius:8px;overflow:hidden;max-height:500px;overflow-y:auto}.artikel-list-header-row{display:flex;padding:.6rem 1rem;background:var(--bg-tertiary, #2a2a2a);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #888);border-bottom:1px solid var(--border, #333);position:sticky;top:0}.artikel-list-row{display:flex;padding:.5rem 1rem;font-size:.85rem;border-bottom:1px solid var(--border, #222);cursor:pointer;transition:background .15s}.artikel-list-row:hover{background:var(--bg-secondary, #1a1a1a)}.artikel-list-row:last-child{border-bottom:none}.col-prefix{width:80px;flex-shrink:0;font-family:SF Mono,Fira Code,monospace;font-weight:600}.col-model{flex:1;min-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-product{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-dimensions{width:220px;flex-shrink:0;color:var(--text-secondary, #888);text-align:right}.md-manager{padding:var(--space-6)}.md-manager-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.md-manager-header h2{font-size:var(--text-lg);font-weight:600}.md-manager-controls{display:flex;align-items:center;gap:var(--space-3)}.md-manager-count{font-size:var(--text-sm);color:var(--color-text-secondary)}.md-manager-loading,.md-manager-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-8);color:var(--color-text-secondary)}.md-manager-list{display:flex;flex-direction:column;gap:var(--space-2)}.md-manager-entry{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.md-manager-entry-content{display:flex;flex-direction:column;gap:2px;min-width:0}.md-manager-entry-name{font-weight:500;font-size:var(--text-sm)}.md-manager-entry-meta{font-size:var(--text-xs);color:var(--color-text-secondary)}.md-manager-entry-actions{display:flex;gap:var(--space-1);flex-shrink:0}.md-manager-overlay-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.md-manager-overlay{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:600px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.md-manager-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-light)}.md-manager-overlay-header h3{font-size:var(--text-base);font-weight:600}.md-manager-overlay-body{padding:var(--space-5);overflow-y:auto;flex:1}.md-manager-field{margin-bottom:var(--space-4)}.md-manager-field label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-1)}.md-manager-field input,.md-manager-field textarea{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-family:inherit}.md-manager-field textarea{resize:vertical;font-family:SF Mono,Fira Code,monospace;font-size:var(--text-xs);line-height:1.5}.md-manager-error{color:var(--color-error);font-size:var(--text-sm);margin-top:var(--space-2)}.md-manager-overlay-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-light)}.md-manager-default-badge{display:inline-block;margin-left:var(--space-2);padding:2px 6px;background:var(--color-accent);color:#fff;font-size:var(--text-xs);border-radius:var(--radius-sm);font-weight:var(--font-medium);vertical-align:middle}.btn-icon.btn-active{color:var(--color-accent)}.md-tool-default-btn{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-weight:600;font-size:12px;min-width:28px;height:28px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.md-tool-default-btn:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04));color:var(--color-text);border-color:var(--color-border-strong, var(--color-border))}.md-tool-default-btn.btn-active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.md-tool-default-btn:disabled{opacity:.5;cursor:wait}.md-tool-style-default-btn{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-weight:600;font-size:11px;min-width:32px;height:28px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.md-tool-style-default-btn:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04));color:var(--color-text);border-color:var(--color-border-strong, var(--color-border))}.md-tool-style-default-btn.btn-active{background:transparent;color:var(--color-accent);border-color:var(--color-accent);border-width:2px}.md-tool-style-default-btn:disabled{opacity:.5;cursor:wait}.md-manager-default-badge--style{background:transparent;color:var(--color-accent);border:1px solid var(--color-accent)}.md-tool-expert-btn{background:#06b6d414;color:#06b6d4;border:1px solid rgba(6,182,212,.35)}.md-tool-expert-btn:hover:not(:disabled):not(.btn-active){background:#06b6d429;border-color:#06b6d499}.md-tool-expert-btn.btn-active{background:#06b6d4;color:#fff;border-color:#06b6d4}.md-tool-expert-btn:disabled{opacity:.5;cursor:wait}.md-manager-default-badge--expert{background:#06b6d426;color:#06b6d4;border:1px solid rgba(6,182,212,.35)}.md-tool-expert-btn--enh_edit{background:#14b8a61a;color:#14b8a6;border-color:#14b8a659}.md-tool-expert-btn--enh_edit:hover:not(:disabled):not(.btn-active){background:#14b8a62e;border-color:#14b8a699}.md-tool-expert-btn--enh_edit.btn-active{background:#14b8a6;color:#fff;border-color:#14b8a6}.exif-plus-manager{padding:1.5rem;max-width:800px}.exif-plus-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.exif-plus-header h2{margin:0;font-size:1.25rem;font-weight:600}.exif-plus-status{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:500}.exif-plus-status.saved{color:#16a34a}.exif-plus-status.unsaved{color:#f59e0b}.exif-plus-status.defaults{color:var(--text-secondary, #999)}.exif-plus-section{margin-bottom:1.75rem}.exif-plus-section-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #999);margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-color, #333)}.exif-plus-field{margin-bottom:.75rem}.exif-plus-field label{display:block;font-size:.8rem;font-weight:500;margin-bottom:.25rem;color:var(--text-primary, #e0e0e0)}.exif-plus-field input{width:100%;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border-color, #333);background:var(--input-bg, rgba(255, 255, 255, .05));color:var(--text-primary, #e0e0e0);font-size:.9rem;font-family:inherit;box-sizing:border-box}.exif-plus-field input:focus{outline:none;border-color:var(--accent-color, #7c3aed)}.exif-plus-field-hint{font-size:.72rem;color:var(--text-secondary, #999);margin-top:.2rem}.exif-plus-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color, #333)}.exif-plus-actions button{padding:.5rem 1.25rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:background .15s,opacity .15s}.exif-plus-actions button:disabled{opacity:.5;cursor:not-allowed}.exif-plus-btn-reset{background:transparent;color:var(--text-primary, #fff);border:1px solid var(--border-color, #333)}.exif-plus-btn-reset:hover:not(:disabled){background:var(--hover-bg, rgba(255, 255, 255, .1))}.exif-plus-btn-save{background:var(--accent-color, #7c3aed);color:#fff;border:1px solid var(--accent-color, #7c3aed)}.exif-plus-btn-save:hover:not(:disabled){opacity:.9}.exif-plus-loading{display:flex;align-items:center;justify-content:center;padding:3rem 0}.analytics-panel{display:flex;flex-direction:column;gap:24px;padding:16px 8px 32px}.analytics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.analytics-title{display:flex;gap:10px;align-items:center}.analytics-title h1{margin:0;font-size:18px;font-weight:600;color:var(--text-1, #fff)}.analytics-subtitle{font-size:12px;color:var(--text-2, #888)}.analytics-toolbar-right{display:flex;align-items:center;gap:8px}.analytics-range{display:inline-flex;background:var(--surface-2, #1b1b1f);border-radius:8px;padding:4px}.analytics-range .range-btn{background:transparent;border:0;color:var(--text-2, #a8a8b3);padding:6px 12px;font-size:13px;cursor:pointer;border-radius:6px;transition:background .12s,color .12s}.analytics-range .range-btn:hover{color:var(--text-1, #fff)}.analytics-range .range-btn.active{background:var(--accent, #4f46e5);color:#fff}.analytics-refresh{background:var(--surface-2, #1b1b1f);border:1px solid var(--border, #26262d);color:var(--text-1, #ddd);padding:8px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.analytics-refresh:hover:not(:disabled){color:#fff;background:var(--surface-1, #131318)}.analytics-refresh:disabled{opacity:.6;cursor:not-allowed}.analytics-error{display:flex;gap:8px;align-items:center;background:#b428281f;color:#f6c0c0;padding:10px 14px;border-radius:8px;font-size:13px}.analytics-section{background:var(--surface-1, #131318);border:1px solid var(--border, #26262d);border-radius:12px;padding:20px}.analytics-section .section-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.analytics-section .section-header h2{font-size:16px;font-weight:600;margin:0;color:var(--text-1, #fff)}.subhead{margin:18px 0 8px;font-size:13px;font-weight:600;color:var(--text-1, #ddd);text-transform:uppercase;letter-spacing:.05em}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}.kpi{background:var(--surface-2, #1b1b1f);border-radius:10px;padding:14px 16px}.kpi.warn{box-shadow:inset 0 0 0 1px #dc8c2866}.kpi-label{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--text-2, #a8a8b3);margin-bottom:4px}.kpi-value{font-size:22px;font-weight:600;color:var(--text-1, #fff)}.format-breakdown{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.format-breakdown .fb-row{display:grid;grid-template-columns:80px 1fr 56px 80px;gap:8px;align-items:center;font-size:13px}.format-breakdown .fb-bar{background:var(--surface-2, #1b1b1f);height:8px;border-radius:4px;overflow:hidden}.format-breakdown .fb-fill{height:100%;background:var(--accent, #4f46e5)}.format-breakdown .fb-n{text-align:right;color:var(--text-1, #ddd)}.format-breakdown .fb-i{color:var(--text-2, #888);font-size:12px}.sparkline{display:flex;align-items:flex-end;gap:4px;height:80px;margin:12px 0 4px}.sparkline .sl-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}.sparkline .sl-bar{width:100%;background:var(--accent, #4f46e5);border-radius:2px 2px 0 0;min-height:2px}.sparkline .sl-day{font-size:10px;color:var(--text-2, #888);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.analytics-table{width:100%;border-collapse:collapse;font-size:13px}.analytics-table th,.analytics-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #26262d)}.analytics-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2, #888);font-weight:600}.analytics-table td.cell-warn{color:#e0a050}.pipeline-breakdown .pb-bar{background:var(--surface-2, #1b1b1f);height:6px;border-radius:3px;overflow:hidden}.pipeline-breakdown .pb-fill{height:100%;background:var(--accent, #4f46e5)}.empty-state{text-align:center;padding:32px 16px;color:var(--text-2, #888)}.empty-state .hint{font-size:12px;margin-top:6px}.loading-state{display:flex;justify-content:center;align-items:center;padding:48px 0}.recycle-panel{padding:1.5rem 0}.recycle-panel-loading{display:flex;flex-direction:column;align-items:center;padding:4rem;color:var(--color-text-muted)}.recycle-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.recycle-panel-header h2{margin:0;font-size:1.25rem}.recycle-panel-header-right{display:flex;align-items:center;gap:1rem}.recycle-panel-total{color:var(--color-text-secondary);font-size:.9rem}.recycle-panel-sweep-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:var(--font-medium);cursor:pointer}.recycle-panel-sweep-btn:hover:not(:disabled){opacity:.9}.recycle-panel-sweep-btn:disabled{opacity:.6;cursor:not-allowed}.recycle-panel-section{margin-bottom:2rem}.recycle-panel-section-title{font-size:1rem;font-weight:600;margin:0 0 .5rem}.recycle-panel-section-count{color:var(--color-text-muted);font-weight:400}.recycle-panel-empty{color:var(--color-text-muted);font-style:italic;padding:.5rem 0}.recycle-panel-list{list-style:none;padding:0;margin:0}.recycle-panel-row{display:grid;grid-template-columns:1fr auto auto auto;gap:1rem;align-items:center;padding:.5rem .75rem;border-bottom:1px solid var(--color-border-light);border-left:3px solid transparent;font-size:.9rem}.recycle-panel-row-urgent{border-left-color:var(--color-error);background-color:#fa52520a}.recycle-panel-filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary)}.recycle-panel-marked{color:var(--color-text-muted);font-size:.8rem}.recycle-panel-days{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;min-width:4ch;text-align:right}.recycle-panel-restore-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer}.recycle-panel-restore-btn:hover:not(:disabled){background:var(--color-bg-hover)}.recycle-panel-restore-btn:disabled{opacity:.6;cursor:not-allowed}.thumb-modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.thumb-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:min(720px,92vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;color:var(--color-text)}.thumb-modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--color-border)}.thumb-modal-header h2{margin:0;font-size:1.05rem;font-weight:600}.thumb-modal-header button{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer}.thumb-modal-hint{padding:8px 18px 0;color:var(--color-text-muted);font-size:.85rem}.thumb-drop-zone{margin:14px 18px;border:2px dashed var(--color-border);border-radius:8px;padding:28px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--color-text-muted);transition:background .12s,border-color .12s}.thumb-drop-zone.drag-over{background:#3b82f614;border-color:var(--color-accent)}.thumb-pick-label{font-size:.8rem;color:var(--color-accent);cursor:pointer;text-decoration:underline}.thumb-file-list{margin:0 18px;border:1px solid var(--color-border);border-radius:6px;max-height:320px;overflow-y:auto}.thumb-file-list-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--color-border);font-size:.85rem;color:var(--color-text-muted);background:var(--color-bg-alt, #1a1a1a)}.thumb-file-list-header button{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:4px;padding:2px 8px;font-size:.75rem;cursor:pointer}.thumb-file-list ul{list-style:none;margin:0;padding:0}.thumb-file-list li{display:grid;grid-template-columns:24px 1fr auto;gap:8px;padding:6px 12px;border-bottom:1px solid var(--color-border);font-size:.85rem;align-items:center}.thumb-file-list li:last-child{border-bottom:none}.thumb-file-list li.matched .thumb-row-icon{color:#22c55e}.thumb-file-list li.unmatched .thumb-row-icon{color:#f59e0b}.thumb-file-list li.error,.thumb-file-list li.invalid-name,.thumb-file-list li.invalid-mime,.thumb-file-list li.too-big{color:var(--color-text-muted)}.thumb-file-list li.error .thumb-row-icon,.thumb-file-list li.invalid-name .thumb-row-icon,.thumb-file-list li.invalid-mime .thumb-row-icon,.thumb-file-list li.too-big .thumb-row-icon{color:#ef4444}.thumb-row-name{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thumb-row-label{color:var(--color-text-muted);font-size:.8rem;white-space:nowrap}.thumb-summary{margin:12px 18px 0;display:flex;gap:6px;align-items:center;font-size:.85rem;color:#22c55e}.thumb-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--color-border);background:var(--color-bg)}.thumb-modal-footer button{background:var(--color-bg-alt, #1a1a1a);color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:6px 14px;cursor:pointer;font-size:.85rem;display:inline-flex;align-items:center;gap:6px}.thumb-modal-footer button.primary{background:var(--color-accent);color:#fff;border:none}.thumb-modal-footer button:disabled{opacity:.5;cursor:not-allowed}.thumb-modal .spin{animation:spin .9s linear infinite}.assets-page{min-height:100vh;background:var(--color-bg-primary);color:var(--color-text-primary);padding:calc(var(--header-height, 56px) + 1.5rem) 1.5rem 1.5rem}.assets-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-primary);color:var(--color-text-secondary)}.assets-page-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.assets-page-header h1{font-size:1.75rem;margin:0}.admin-badge{padding:.25rem .75rem;background:var(--color-accent);color:#fff;font-size:.75rem;font-weight:600;border-radius:9999px;text-transform:uppercase}.assets-unauthorized{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;color:var(--color-text-secondary)}.assets-unauthorized h2{margin:1rem 0 .5rem;color:var(--color-text-primary)}.assets-unauthorized p{margin:0 0 1.5rem}.assets-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:0}.assets-tabs .tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s;font-size:.95rem}.assets-tabs .tab:hover{color:var(--color-text-primary)}.assets-tabs .tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.assets-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.assets-page .search-box{display:flex;align-items:center;gap:.5rem;background:var(--color-bg-secondary);padding:.5rem 1rem;border-radius:8px;flex:1;max-width:400px;border:1px solid var(--color-border)}.assets-page .search-box:focus-within{border-color:var(--color-accent)}.assets-page .search-box input{background:transparent;border:none;color:var(--color-text-primary);width:100%;outline:none;font-size:.9rem}.assets-page .search-box input::placeholder{color:var(--color-text-muted)}.clear-search{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:0;display:flex}.clear-search:hover{color:var(--color-text-primary)}.toolbar-actions{display:flex;gap:.5rem}.btn-icon{display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:6px;border:none;background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--color-bg-hover)}.btn-icon.btn-danger:hover{background:#ef444433;color:#ef4444}.btn-icon.btn-edit{color:var(--color-accent)}.btn-icon.btn-edit:hover{background:#3b82f633;color:var(--color-accent)}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;border:none;background:var(--color-accent);color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.btn-primary:hover,.btn-primary.active{background:var(--color-accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-success{background:#22c55e}.btn-success:hover{background:#16a34a}.btn-full{width:100%;justify-content:center;padding:.75rem}.btn-sm{padding:.375rem .75rem;font-size:.85rem}.btn-close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;display:flex}.btn-close:hover{color:var(--color-text-primary)}.assets-content{display:flex;gap:1.5rem}.upload-panel{width:380px;background:var(--color-bg-secondary);border-radius:12px;padding:1.25rem;flex-shrink:0;max-height:calc(100vh - 200px);overflow-y:auto;border:1px solid var(--color-border)}.upload-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.upload-panel-header h2{font-size:1.1rem;margin:0;font-weight:600}.create-task{display:flex;gap:.5rem;margin-bottom:1rem}.create-task input{flex:1;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:.9rem}.create-task input:focus{outline:none;border-color:var(--color-accent)}.task-list{margin-bottom:1rem;max-height:200px;overflow-y:auto}.no-tasks{text-align:center;padding:1.5rem;color:var(--color-text-muted);font-size:.9rem}.task-item{padding:.75rem;border-radius:8px;cursor:pointer;margin-bottom:.5rem;background:var(--color-bg-primary);border:1px solid transparent;transition:all .2s}.task-item:hover{border-color:var(--color-border)}.task-item.selected{background:#3b82f61a;border-color:var(--color-accent)}.task-item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.task-name{font-weight:500;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-item-meta{display:flex;gap:.75rem;font-size:.8rem;color:var(--color-text-muted)}.task-progress-bar{height:4px;background:var(--color-bg-secondary);border-radius:2px;margin-top:.5rem;overflow:hidden}.task-progress-fill{height:100%;background:var(--color-accent);transition:width .3s}.task-detail{padding-top:1rem;border-top:1px solid var(--color-border)}.task-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.task-title{display:flex;align-items:center;gap:.5rem}.task-title h3{margin:0;font-size:1rem;font-weight:600}.task-actions{display:flex;gap:.25rem}.dropzone{border:2px dashed var(--color-border);border-radius:8px;padding:2rem 1rem;text-align:center;cursor:pointer;transition:all .2s;margin-bottom:1rem}.dropzone:hover,.dropzone.dragging{border-color:var(--color-accent);background:#3b82f60d}.dropzone p{margin:.5rem 0 .25rem;font-size:.9rem}.dropzone span{font-size:.8rem;color:var(--color-text-muted)}.pending-files{margin-bottom:1rem}.pending-files-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem}.pending-files-list{max-height:150px;overflow-y:auto}.pending-file{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;font-size:.8rem;color:var(--color-text-secondary)}.pending-file span:first-of-type{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--color-text-muted)}.more-files{font-size:.8rem;color:var(--color-text-muted);padding:.375rem 0}.progress-monitor{margin-bottom:1rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem}.progress-percent{font-weight:600;color:var(--color-accent)}.progress-bar-large{height:8px;background:var(--color-bg-primary);border-radius:4px;overflow:hidden;margin-bottom:.75rem}.progress-fill{height:100%;background:var(--color-accent);transition:width .3s}.progress-stats{display:flex;gap:1rem}.stat{display:flex;flex-direction:column;gap:.125rem}.stat-label{font-size:.75rem;color:var(--color-text-muted)}.stat-value{font-size:.9rem;font-weight:600}.stat-value.success{color:#22c55e}.stat-value.error{color:#ef4444}.current-file{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--color-text-secondary);margin-top:.75rem}.current-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-errors{margin-top:1rem}.task-errors h4{margin:0 0 .5rem;font-size:.85rem;color:#ef4444}.error-list{max-height:120px;overflow-y:auto}.error-item{display:flex;align-items:flex-start;gap:.5rem;padding:.375rem 0;font-size:.8rem;color:var(--color-text-secondary)}.error-item svg{color:#ef4444;flex-shrink:0;margin-top:.125rem}.error-filename{font-weight:500;flex-shrink:0}.error-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-uploading{color:var(--color-accent)}.status-pending{color:var(--color-warning)}.status-processing{color:var(--color-accent)}.status-completed{color:var(--color-success)}.status-warning{color:var(--color-warning)}.status-failed{color:var(--color-error)}.status-archived{color:var(--color-text-muted)}.status-awaiting{color:var(--color-warning)}.btn-ftp{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;border:1px solid var(--color-warning);background:#f59e0b1a;color:var(--color-warning);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s;white-space:nowrap}.btn-ftp:hover{background:#f59e0b33;border-color:#d97706}.btn-ftp:disabled{opacity:.5;cursor:not-allowed}.ftp-scan-section{padding:.75rem;background:#f59e0b0d;border:1px dashed var(--color-warning);border-radius:8px;margin-bottom:1rem}.ftp-info{margin-bottom:.5rem}.ftp-prefix{margin:0;font-size:.85rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ftp-label{font-weight:600;color:var(--color-text-secondary)}.ftp-prefix code{font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:.8rem;padding:.125rem .5rem;background:var(--color-bg-primary);border-radius:4px;color:var(--color-warning);word-break:break-all}.ftp-hint{font-size:.8rem;color:var(--color-text-muted);margin:.375rem 0 0}.assets-main{flex:1;min-width:0}.assets-main.with-panel{max-width:calc(100% - 400px)}.empty-state,.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--color-text-secondary);text-align:center}.empty-state p,.loading-state p{margin:1rem 0 0}.empty-state .hint{font-size:.9rem;margin-top:.5rem;color:var(--color-text-muted)}.assets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.asset-card{background:var(--color-bg-secondary);border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid var(--color-border)}.asset-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.asset-thumbnail{aspect-ratio:1;overflow:hidden;background:var(--color-bg-primary)}.asset-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.asset-card:hover .asset-thumbnail img{transform:scale(1.05)}.asset-info{padding:.75rem}.asset-info h3{font-size:.9rem;font-weight:500;margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-description{font-size:.8rem;color:var(--color-text-secondary);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.asset-meta{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.category-tag{display:inline-block;padding:.125rem .5rem;background:#3b82f626;color:var(--color-accent);font-size:.7rem;border-radius:4px}.date{font-size:.75rem;color:var(--color-text-muted)}.asset-actions{display:flex;justify-content:flex-end;gap:.25rem;padding:.5rem .75rem;border-top:1px solid var(--color-border);opacity:0;transition:opacity .2s}.asset-card:hover .asset-actions{opacity:1}.btn-icon.btn-copy:hover{background:#3b82f633;color:#3b82f6}.assets-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.9rem;display:flex;align-items:center;justify-content:space-between}.assets-pagination{display:flex;align-items:center;gap:.75rem}.page-link{background:none;border:1px solid var(--color-border);color:var(--color-text-primary);padding:.25rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .15s}.page-link:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-text-secondary)}.page-link:disabled{opacity:.3;cursor:not-allowed}.page-indicator{font-size:.85rem;color:var(--color-text-secondary);min-width:3rem;text-align:center;font-variant-numeric:tabular-nums}@media(max-width:1024px){.assets-content{flex-direction:column}.upload-panel{width:100%;max-height:none}.assets-main.with-panel{max-width:100%}}@media(max-width:640px){.assets-page{padding:1rem}.assets-toolbar{flex-direction:column;align-items:stretch}.search-box{max-width:none}.toolbar-actions{justify-content:flex-end}.assets-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.recipe-repeat-backdrop{position:fixed;inset:0;background:#0000008c;z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.recipe-repeat-modal{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000004d;width:480px;max-width:92vw;max-height:92vh;display:flex;flex-direction:column}.recipe-repeat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light)}.recipe-repeat-header h3{margin:0;display:inline-flex;align-items:center;gap:8px;color:#06b6d4;font-size:16px}.recipe-repeat-body{padding:var(--space-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3)}.recipe-repeat-count{font-size:13px;color:var(--color-text-secondary);margin:0}.recipe-repeat-field{display:flex;flex-direction:column;gap:4px}.recipe-repeat-field label{font-size:12px;font-weight:600}.recipe-repeat-field select{padding:6px 8px;border:1px solid var(--color-border-light);border-radius:4px;font-family:inherit;font-size:13px;background:var(--color-bg-primary)}.recipe-repeat-checkbox{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.recipe-repeat-checkbox input{margin-top:3px}.recipe-repeat-checkbox span{display:flex;flex-direction:column}.recipe-repeat-checkbox small{color:var(--color-text-secondary);font-size:11px;line-height:1.35}.recipe-repeat-checkbox-disabled{opacity:.55;cursor:not-allowed}.recipe-repeat-checkbox-disabled em{color:#06b6d4;font-style:normal}.recipe-repeat-recipe{border-left:3px solid #06b6d4;padding:var(--space-2) var(--space-3);background:#06b6d40a}.recipe-repeat-recipe h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#06b6d4}.recipe-repeat-recipe dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:12px}.recipe-repeat-recipe dt{color:var(--color-text-secondary);align-self:start;padding-top:2px}.recipe-repeat-recipe dd{margin:0;word-break:break-word}.recipe-repeat-inline-spinner{margin-left:6px;vertical-align:middle;color:var(--color-text-muted)}.recipe-repeat-preview{text-align:center;font-size:13px;margin:0}.recipe-repeat-source-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 8px;border-radius:4px;text-transform:uppercase}.recipe-repeat-source-badge-expert{background:#06b6d426;color:#06b6d4;border:1px solid rgba(6,182,212,.35)}.recipe-repeat-source-badge-user{background:var(--color-bg-secondary, #f3f4f6);color:var(--color-text-secondary);border:1px solid var(--color-border-light)}.recipe-repeat-source-note{display:block;font-size:11px;color:var(--color-text-secondary);margin-top:2px}.recipe-repeat-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-light)}.recipe-repeat-expert-cost{color:#06b6d4;font-weight:500}.scene-filters{background:var(--color-bg-secondary, #14171c);border-radius:var(--radius-md, 6px);padding:var(--space-3, 12px);margin-bottom:var(--space-3, 12px)}.scene-filters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2, 8px)}.scene-filters-title{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary, #9ca3af);margin:0}.scene-filters-reset{background:none;border:none;color:var(--color-accent, #60a5fa);font-size:.75rem;cursor:pointer;padding:2px 6px}.scene-filters-reset:disabled{opacity:.4;cursor:default}.scene-filter-group{border-top:1px solid var(--color-border, #2a2f37);padding-top:var(--space-2, 8px);margin-top:var(--space-2, 8px)}.scene-filter-group-title{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary, #9ca3af);margin:0 0 6px}.scene-filter-option{display:flex;align-items:center;gap:6px;padding:4px;font-size:.85rem;cursor:pointer;border-radius:4px;color:var(--color-text-primary, #e5e7eb)}.scene-filter-option:hover{background:#ffffff0a}.scene-filter-option.is-selected{background:#60a5fa1a;color:var(--color-accent, #60a5fa)}.scene-filter-option input[type=checkbox]{cursor:inherit;accent-color:var(--color-accent, #60a5fa)}.scene-filter-rooms{max-height:0;overflow:hidden;opacity:0;transition:max-height .2s ease,opacity .2s ease,padding .2s ease,margin .2s ease,border-color .2s ease;border-top-color:transparent;padding-top:0;margin-top:0}.scene-filter-rooms.is-visible{max-height:600px;opacity:1;padding-top:var(--space-2, 8px);margin-top:var(--space-2, 8px);border-top-color:var(--color-border, #2a2f37)}.comments-log{display:flex;flex-direction:row;width:100%;height:100%;min-height:0}.comments-log-pane{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:var(--space-4);overflow-y:auto}.comments-log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.comments-log-header h2{font-size:var(--text-lg);font-weight:600}.comments-log-controls{display:flex;align-items:center;gap:var(--space-3)}.comments-log-count{font-size:var(--text-sm);color:var(--color-text-secondary)}.btn-toggle{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer}.btn-toggle.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.comments-log-loading,.comments-log-empty{display:flex;justify-content:center;padding:var(--space-8);color:var(--color-text-secondary)}.comments-log-list{display:flex;flex-direction:column;gap:var(--space-2)}.comments-log-entry{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-left:3px solid transparent;border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;transition:background .15s,border-color .15s,opacity .2s;outline:none}.comments-log-entry:hover{background:var(--color-bg-hover, var(--color-bg-tertiary))}.comments-log-entry:focus-visible{border-color:var(--color-accent)}.comments-log-entry--selected{background:var(--color-bg-tertiary);border-left-color:var(--color-accent)}.comments-log-entry.done{opacity:.5}.comments-log-entry-thumb{flex-shrink:0;width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden}.comments-log-entry-thumb img{width:100%;height:100%;object-fit:cover}.comments-log-entry-content{flex:1;min-width:0}.comments-log-entry-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1)}.comments-log-filename{font-weight:600;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comments-log-meta{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}.comments-log-text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.4;white-space:pre-wrap;max-height:80px;overflow:hidden;margin:0}.comments-log-entry-actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);flex-shrink:0}.comments-log-msg-count{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--color-text-muted)}.btn-done{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-primary);cursor:pointer;color:var(--color-text-secondary);transition:all .15s}.btn-done:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-done.active{background:#22c55e;border-color:#22c55e;color:#fff}.comments-log-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-4);font-size:var(--text-sm)}.comments-log-pagination button{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);cursor:pointer}.comments-log-pagination button:disabled{opacity:.3;cursor:default}.comments-log-sidebar{width:840px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--color-border);background:var(--color-bg-primary);min-height:0}.comments-log-sidebar-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);padding:var(--space-6);text-align:center}.comments-log-sidebar-empty p{margin:0;font-size:var(--text-sm)}.comments-log-sidebar-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0}.comments-log-sidebar-thumb{width:40px;height:40px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.comments-log-sidebar-thumb img{width:100%;height:100%;object-fit:cover}.comments-log-sidebar-filename{flex:1;min-width:0;font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comments-log-sidebar-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.comments-log-sidebar-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.comments-log-sidebar-body .chat-thread{flex:1;min-height:0}.comments-log-sidebar-body .chat-thread-messages{flex:1;max-height:none}@media(max-width:1400px){.comments-log.has-selection .comments-log-pane{display:none}.comments-log-sidebar{position:fixed;inset:0;width:100%;height:100%;z-index:50;border-left:none}.comments-log:not(.has-selection) .comments-log-sidebar{display:none}}.thread-source-chip{display:inline-flex;align-items:center;font-size:.6rem;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:3px;margin-right:6px;vertical-align:middle;flex-shrink:0}.thread-source-chip--media{background:#1f2937;color:#d1d5db}.thread-source-chip--scenes{background:#4338ca;color:#e0e7ff}.btn-icon.btn-icon-danger{color:#ef4444}.btn-icon.btn-icon-danger:hover{background:#ef44441a}.comments-page{display:flex;flex-direction:column;min-height:100vh;background-color:var(--color-bg-primary)}.comments-page-body{flex:1;display:flex;flex-direction:column;padding-top:var(--header-height, 56px);min-height:0;overflow:hidden}.comments-page-loading{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.comments-unauthorized{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-3);color:var(--color-text-secondary)}.comments-unauthorized h2{margin:0;color:var(--color-text-primary)}.perms-page{min-height:100vh;background:var(--bg-primary, #0a0a0a);color:var(--text-primary, #ffffff);padding:1.5rem}.perms-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary, #0a0a0a);color:var(--text-secondary, #888)}.perms-header{margin-bottom:1.5rem}.perms-title{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;margin:0}.perms-subtitle{font-size:.85rem;color:var(--text-secondary, #888);margin-top:.25rem}.perms-error{background:#e74c3c26;border:1px solid rgba(231,76,60,.4);color:#e74c3c;padding:.75rem 1rem;border-radius:var(--radius-md, 8px);margin-bottom:1rem;font-size:.85rem}.perms-success{background:#2ecc7126;border:1px solid rgba(46,204,113,.4);color:#2ecc71;padding:.75rem 1rem;border-radius:var(--radius-md, 8px);margin-bottom:1rem;font-size:.85rem}.perms-add-user{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.perms-add-user input{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:var(--text-primary, #fff);padding:.5rem .75rem;border-radius:var(--radius-sm, 4px);font-size:.85rem;min-width:250px}.perms-add-user input::placeholder{color:var(--text-muted, #555)}.perms-add-user select{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:var(--text-primary, #fff);padding:.5rem .75rem;border-radius:var(--radius-sm, 4px);font-size:.85rem}.perms-add-btn{background:var(--color-accent, #3498db);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius-sm, 4px);font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s}.perms-add-btn:hover:not(:disabled){opacity:.85}.perms-add-btn:disabled{opacity:.4;cursor:not-allowed}.perms-section{margin-bottom:2rem}.perms-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.perms-section-title{font-size:1.1rem;font-weight:600;margin:0}.perms-apply-btn{background:#2ecc71;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:var(--radius-sm, 4px);font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s}.perms-apply-btn:hover:not(:disabled){opacity:.85}.perms-apply-btn:disabled{opacity:.4;cursor:not-allowed}.perms-apply-btn-saving{background:#888}.perms-table-wrapper{overflow-x:auto;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md, 8px)}.perms-table{width:100%;border-collapse:collapse;font-size:.85rem}.perms-table th{text-align:left;padding:.6rem .75rem;background:#ffffff0f;border-bottom:1px solid rgba(255,255,255,.1);font-weight:600;white-space:nowrap;color:var(--text-secondary, #aaa)}.perms-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle}.perms-table tr:last-child td{border-bottom:none}.perms-table tr:hover td{background:#ffffff08}.perms-email{font-family:monospace;font-size:.8rem;color:var(--text-primary, #fff)}.perms-table td.perms-check-cell,.perms-table th.perms-check-cell{text-align:center;width:90px}.perms-table input[type=radio],.perms-table input[type=checkbox]{cursor:pointer;accent-color:var(--color-accent, #3498db);width:16px;height:16px}.perms-table input[type=radio]:disabled,.perms-table input[type=checkbox]:disabled{cursor:not-allowed;opacity:.3}.perms-row-changed{background:#3498db14!important}.perms-protected-badge{display:inline-block;font-size:.7rem;color:#e67e22;font-weight:600;margin-left:.5rem}.perms-pending{font-size:.75rem;color:#e67e22;margin-left:.75rem;font-weight:400}.perms-section-footnote{margin-top:.75rem;font-size:.85rem;color:var(--color-text-muted, #888)}.perms-route{font-family:var(--font-family-mono, "JetBrains Mono", monospace);font-size:.8rem;color:var(--color-text-secondary, #aaa)}.perms-remove-btn{background:transparent;border:1px solid var(--color-border, #2a2f37);color:var(--color-text-secondary, #9ca3af);padding:4px 10px;font-size:.75rem;border-radius:4px;cursor:pointer;transition:border-color .12s ease,color .12s ease}.perms-remove-btn:hover{border-color:#ef4444;color:#ef4444}.perms-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.perms-modal{background:var(--color-bg-primary, #0c0e12);border:1px solid var(--color-border, #2a2f37);border-radius:8px;padding:24px;max-width:480px;width:90vw}.perms-modal h3{margin:0 0 12px}.perms-modal p{margin:0 0 12px;line-height:1.4}.perms-modal-warn{color:#f59e0b}.perms-modal input{width:100%;padding:8px;background:var(--color-bg-secondary, #14171c);border:1px solid var(--color-border, #2a2f37);color:var(--color-text-primary, #e5e7eb);border-radius:4px;margin:8px 0;box-sizing:border-box}.perms-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.perms-modal-actions button{padding:8px 16px;border-radius:4px;cursor:pointer;border:1px solid var(--color-border, #2a2f37);background:transparent;color:var(--color-text-primary, #e5e7eb)}.perms-remove-confirm-btn{background:#ef4444!important;color:#fff!important;border:none!important}.perms-remove-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.perms-ref-limit-input{width:5ch;padding:4px 8px;font:inherit;text-align:center;border:1px solid var(--color-border, #2a2f37);border-radius:4px;background:var(--bg-input, #1a1a1a);color:var(--color-text-primary, #e5e7eb)}.perms-ref-limit-input:focus{outline:2px solid var(--accent-color, #4ade80);outline-offset:1px}.pipeline-error{margin:12px 0;padding:10px 14px;border-radius:8px;background:#dc26261f;color:#fca5a5;border:1px solid rgba(220,38,38,.3);font-size:14px}.pipeline-muted{color:#94a3b8;font-size:13px;padding:8px 0}.pipeline-badge{font-size:12px;font-weight:700;letter-spacing:.04em;padding:3px 10px;border-radius:999px}.pipeline-badge-inert{background:#64748b2e;color:#94a3b8;border:1px solid rgba(100,116,139,.35)}.pipeline-badge-on{background:#10b98129;color:#6ee7b7;border:1px solid rgba(16,185,129,.4)}.pipeline-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 24px;padding:6px 2px 4px}.pipeline-health-grid>div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(148,163,184,.12)}.pipeline-k{color:#94a3b8;font-size:13px}.pipeline-v{color:#e2e8f0;font-size:13px;font-variant-numeric:tabular-nums}.pipeline-controls{display:flex;align-items:center;gap:12px}.pipeline-controls select{background:#1e293b;color:#e2e8f0;border:1px solid rgba(148,163,184,.3);border-radius:6px;padding:4px 8px}.pipeline-selftests{display:flex;flex-direction:column;gap:14px}.pipeline-selftest{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.pipeline-verdict{font-size:13px;font-weight:700}.pipeline-pass{color:#6ee7b7}.pipeline-fail{color:#fca5a5}.pipeline-json{width:100%;max-height:240px;overflow:auto;margin:0;padding:10px 12px;background:#0f172a;border:1px solid rgba(148,163,184,.18);border-radius:8px;color:#cbd5e1;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.pipeline-row-error td{color:#fca5a5}.pipeline-controls-block{margin-top:14px;padding-top:12px;border-top:1px solid rgba(148,163,184,.18);display:flex;flex-direction:column;gap:12px}.pipeline-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px}.pipeline-toggle code{font-size:12px;color:#93c5fd}.pipeline-toggle-help{color:#94a3b8;font-size:12px;margin-top:2px;max-width:560px}.pipeline-switch{min-width:64px;padding:6px 14px;border-radius:999px;font-weight:700;font-size:13px;letter-spacing:.04em;cursor:pointer;background:#64748b33;color:#94a3b8;border:1px solid rgba(100,116,139,.4);transition:background .15s,color .15s}.pipeline-switch:disabled{opacity:.5;cursor:default}.pipeline-switch-on{background:#10b9812e;color:#6ee7b7;border-color:#10b98180}.pipeline-key-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:720px){.pipeline-key-grid{grid-template-columns:1fr}}.pipeline-key-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:10px;background:#0f172a;border:1px solid rgba(148,163,184,.18)}.pipeline-key-active{border-left:3px solid rgba(16,185,129,.6)}.pipeline-key-cooldown{border-left:3px solid rgba(234,179,8,.7)}.pipeline-key-disabled{border-left:3px solid rgba(100,116,139,.6);opacity:.75}.pipeline-key-head{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:#e2e8f0}.pipeline-key-status{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase}.pipeline-key-cooldown .pipeline-key-status{color:#fcd34d}.pipeline-key-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#94a3b8;font-variant-numeric:tabular-nums}.pipeline-key-input{width:100%;background:#1e293b;color:#e2e8f0;border:1px solid rgba(148,163,184,.3);border-radius:6px;padding:5px 8px;font-size:12px}.pipeline-key-row{display:flex;gap:6px;align-items:center}.pipeline-key-row .pipeline-key-input{flex:1}.pipeline-key-row select{background:#1e293b;color:#e2e8f0;border:1px solid rgba(148,163,184,.3);border-radius:6px;padding:5px 6px}.pipeline-key-row .perms-apply-btn,.pipeline-key-row .pipeline-switch{padding:4px 10px;font-size:12px;min-width:0}.pipeline-fallback-grid{grid-template-columns:minmax(260px,360px)}.network-page{min-height:100vh;background:var(--color-bg);color:var(--color-text)}.network-main{max-width:1080px;margin:0 auto;padding:calc(var(--header-height, 56px) + 1.5rem) 1.5rem 1.5rem}.network-main h1{margin:0 0 4px;font-size:1.8rem;font-weight:600}.network-main h2{margin:24px 0 12px;font-size:1.1rem;font-weight:600}.network-main .muted{color:var(--color-text-muted)}.network-main .small{font-size:.85rem}.network-main .panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px 20px;margin:16px 0}.network-main .row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.network-main .row>label{min-width:130px;font-size:.9rem;color:var(--color-text-muted)}.network-main input[type=text],.network-main input[type=number],.network-main input[type=datetime-local],.network-main input:not([type]),.network-main textarea{background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;padding:6px 10px;color:var(--color-text);font-size:.9rem}.network-main textarea{min-height:60px;width:100%;resize:vertical}.network-main button{background:var(--color-bg-alt, #1a1a1a);color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:.9rem}.network-main button:hover:not(:disabled){background:var(--color-surface)}.network-main button:disabled{opacity:.5;cursor:not-allowed}.network-main .btn-primary{background:var(--color-accent);color:#fff;border:none;border-radius:6px;padding:8px 14px;font-weight:500;cursor:pointer}.network-main .btn-primary:disabled{opacity:.5;cursor:not-allowed}.network-main .page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:16px}.connection-card{display:grid;grid-template-columns:1fr auto;gap:8px 24px;padding:14px 16px;border:1px solid var(--color-border);border-radius:8px;margin:10px 0;background:var(--color-surface)}.connection-card.disabled{opacity:.6}.connection-card .label{font-weight:600;font-size:1.05rem}.connection-card .meta{display:flex;gap:12px;font-size:.85rem;color:var(--color-text-muted);flex-wrap:wrap}.connection-card code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--color-bg-alt, #1a1a1a);padding:2px 6px;border-radius:4px}.scope-chip{display:inline-block;background:var(--color-accent-subtle, rgba(59, 130, 246, .15));color:var(--color-accent);border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:600;letter-spacing:.05em}.audit-drawer{position:fixed;top:0;right:0;width:min(560px,90vw);height:100vh;background:var(--color-surface);border-left:1px solid var(--color-border);box-shadow:-8px 0 24px #0003;z-index:100;padding:20px;overflow-y:auto}.reveal-once{background:var(--color-bg-alt, #1a1a1a);border:1px solid var(--color-border);border-radius:6px;padding:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;font-size:.85rem}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal-backdrop .modal{width:min(560px,90vw);max-height:85vh;overflow-y:auto}.modal h2{margin:0 0 12px;font-size:1.2rem}.tutorial-page{min-height:100vh;background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-family)}.tutorial-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 var(--space-6);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-sm)}.tutorial-header-left{display:flex;align-items:center;gap:var(--space-3)}.tutorial-back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.tutorial-back-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.tutorial-logo{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;color:var(--color-text-primary);font-weight:var(--font-semibold);font-size:var(--text-lg)}.tutorial-header-right{display:flex;align-items:center;gap:var(--space-2)}.tutorial-header-label{font-size:var(--text-sm);color:var(--color-text-muted)}.rank-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-weight:var(--font-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--badge-color);background-color:color-mix(in srgb,var(--badge-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--badge-color) 25%,transparent)}.rank-badge-md{padding:3px 12px;font-size:var(--text-sm)}.tutorial-content{max-width:900px;margin:0 auto;padding:var(--space-8) var(--space-6) var(--space-12)}.tutorial-intro{margin-bottom:var(--space-8)}.tutorial-title{font-size:1.75rem;font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0 0 var(--space-2)}.tutorial-subtitle{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0 0 var(--space-4)}.tutorial-toggle-all-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.tutorial-toggle-all-btn:hover{color:var(--color-text-primary);border-color:var(--color-accent)}.tutorial-sections{display:flex;flex-direction:column;gap:var(--space-6)}.tutorial-section{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;transition:box-shadow var(--transition-fast)}.tutorial-section:hover{box-shadow:var(--shadow-card-hover)}.tutorial-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-4) var(--space-6);border:none;background:transparent;cursor:pointer;border-left:4px solid var(--section-color);transition:background-color var(--transition-fast);color:var(--color-text-primary);font-family:var(--font-family)}.tutorial-section-header:hover{background-color:var(--color-bg-hover)}.tutorial-section-header-left{display:flex;align-items:center;gap:var(--space-3)}.tutorial-section-label{font-size:var(--text-lg);font-weight:var(--font-semibold)}.tutorial-section-count{font-size:var(--text-xs);color:var(--color-text-muted)}.tutorial-section-body{padding:0 var(--space-6) var(--space-6)}.tutorial-section-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4);line-height:var(--leading-relaxed)}.tutorial-group{margin-bottom:var(--space-4)}.tutorial-group:last-child{margin-bottom:0}.tutorial-group-header{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--text-sm);font-weight:var(--font-semibold);transition:background-color var(--transition-fast)}.tutorial-group-header:hover{background-color:var(--color-bg-tertiary, var(--color-bg-hover))}.tutorial-group-count{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--font-normal);margin-left:auto;margin-right:var(--space-1)}.tutorial-chevron{transition:transform var(--transition-fast);color:var(--color-text-muted);flex-shrink:0}.tutorial-chevron-open{transform:rotate(180deg)}.tutorial-group-body{max-height:0;overflow:hidden;transition:max-height .3s ease}.tutorial-group-body-open{max-height:2000px}.tutorial-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3);padding:var(--space-3) 0 0}.tutorial-feature-card{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.tutorial-feature-card:hover{border-color:var(--color-border);box-shadow:var(--shadow-sm)}.tutorial-feature-icon{flex-shrink:0;display:flex;align-items:flex-start;padding-top:2px;color:var(--color-accent)}.tutorial-feature-content{min-width:0}.tutorial-feature-title{font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:2px}.tutorial-feature-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-normal)}.tutorial-feature-route{display:inline-block;margin-top:var(--space-1);font-size:var(--text-xs);font-family:var(--font-family-mono, monospace);color:var(--color-text-muted);background:var(--color-bg-tertiary, var(--color-bg-hover));padding:1px 6px;border-radius:var(--radius-sm)}@media(max-width:640px){.tutorial-content{padding:var(--space-4) var(--space-4) var(--space-8)}.tutorial-header{padding:0 var(--space-4)}.tutorial-title{font-size:1.375rem}.tutorial-feature-grid{grid-template-columns:1fr}.tutorial-section-header{padding:var(--space-3) var(--space-4)}.tutorial-section-body{padding:0 var(--space-4) var(--space-4)}}.tutorial-group-header-row{display:flex;align-items:stretch;gap:var(--space-2)}.tutorial-group-header-row>.tutorial-group-header{flex:1 1 auto;min-width:0}.tutorial-group-title-link{color:var(--color-accent);cursor:pointer;text-decoration:none;border-radius:var(--radius-sm)}.tutorial-group-title-link:hover{text-decoration:underline}.tutorial-group-title-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.tutorial-group-guide-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);font-family:var(--font-family);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.tutorial-group-guide-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-light)}@media(max-width:640px){.tutorial-group-guide-btn{font-size:11px;padding:0 var(--space-2)}}.tutorial-section-page{min-height:100vh;background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-family)}.tutorial-section-page-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:var(--space-3);height:var(--header-height);padding:0 var(--space-6);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-sm)}.tutorial-section-page-header-right{margin-left:auto}.tutorial-section-page .tutorial-back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);flex-shrink:0}.tutorial-section-page .tutorial-back-btn:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.tutorial-breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);min-width:0}.tutorial-breadcrumb-link{background:none;border:none;padding:0;color:var(--color-text-secondary);cursor:pointer;font:inherit}.tutorial-breadcrumb-link:hover{color:var(--color-accent);text-decoration:underline}.tutorial-breadcrumb-sep{color:var(--color-text-muted);flex-shrink:0}.tutorial-breadcrumb-current{color:var(--color-text-primary);font-weight:var(--font-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutorial-section-page-content{max-width:860px;margin:0 auto;padding:var(--space-8) var(--space-6) var(--space-12)}.tutorial-section-page-title{font-size:2rem;line-height:var(--leading-tight);margin:0 0 var(--space-2);font-weight:var(--font-semibold)}.tutorial-section-page-overview{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0 0 var(--space-6)}.tutorial-video-wrap{margin:0 0 var(--space-8)}.tutorial-video-16x9{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border-light)}.tutorial-video-iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.tutorial-video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}.tutorial-section-page-features{display:flex;flex-direction:column;gap:var(--space-8)}.tutorial-feature-detail{background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);scroll-margin-top:calc(var(--header-height) + var(--space-4))}.tutorial-feature-detail-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--space-2)}.tutorial-feature-detail-icon{display:inline-flex;color:var(--color-accent)}.tutorial-feature-detail-anchor{color:var(--color-text-muted);text-decoration:none;opacity:0;transition:opacity var(--transition-fast)}.tutorial-feature-detail:hover .tutorial-feature-detail-anchor{opacity:1}.tutorial-feature-detail-lede{color:var(--color-text-secondary);margin:0 0 var(--space-3);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.tutorial-feature-detail-location{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.tutorial-feature-detail-route{font-family:var(--font-family-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm);margin-left:var(--space-2)}.tutorial-feature-detail-steps ol,.tutorial-feature-detail-tips ul{margin:var(--space-2) 0 0;padding-left:var(--space-5);color:var(--color-text-primary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.tutorial-feature-detail-steps li,.tutorial-feature-detail-tips li{margin-bottom:var(--space-1)}.tutorial-feature-detail-tips{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px dashed var(--color-border-light)}.tutorial-prev-next{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--color-border-light)}.tutorial-prev-next-btn{display:inline-flex;align-items:center;gap:var(--space-3);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;color:var(--color-text-primary);font-family:var(--font-family);text-align:left;min-width:0;max-width:48%;transition:border-color var(--transition-fast),background var(--transition-fast)}.tutorial-prev-next-btn:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-bg-hover)}.tutorial-prev-next-btn:disabled{opacity:.5;cursor:not-allowed}.tutorial-prev-next-btn-next{margin-left:auto}.tutorial-prev-next-label{display:flex;flex-direction:column;min-width:0}.tutorial-prev-next-label-right{align-items:flex-end}.tutorial-prev-next-direction{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.tutorial-prev-next-title{font-size:var(--text-sm);font-weight:var(--font-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.tutorial-section-missing{max-width:560px;margin:var(--space-12) auto;text-align:center;padding:var(--space-8);background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg)}.tutorial-section-missing button{margin-top:var(--space-4);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-family)}.tutorial-section-missing button:hover{border-color:var(--color-accent);color:var(--color-accent)}@media(max-width:640px){.tutorial-section-page-content{padding:var(--space-4) var(--space-4) var(--space-8)}.tutorial-section-page-title{font-size:1.5rem}.tutorial-prev-next{flex-direction:column}.tutorial-prev-next-btn{max-width:100%}.tutorial-section-page-header{padding:0 var(--space-4)}}:root{--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-bg-hover: #f1f3f5;--color-border: #dee2e6;--color-border-light: #e9ecef;--color-text-primary: #212529;--color-text-secondary: #6c757d;--color-text-muted: #adb5bd;--color-accent: #228be6;--color-accent-hover: #1c7ed6;--color-accent-light: #e7f5ff;--color-flag-green: #40c057;--color-flag-yellow: #fab005;--color-flag-red: #fa5252;--color-flag-blue: #3b82f6;--color-approved: #228be6;--color-rejected: #868e96;--color-success: #40c057;--color-success-bg: #ebfbee;--color-warning: #fab005;--color-warning-bg: #fff9db;--color-error: #fa5252;--color-error-bg: #fff5f5;--color-primary: #228be6;--color-primary-bg: #e7f5ff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-card: 0 1px 3px rgba(0, 0, 0, .08);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .12);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--sidebar-width: 280px;--sidebar-collapsed-width: 64px;--header-height: 56px;--card-min-width: 210px;--card-max-width: 360px;--card-aspect-ratio: 1;--grid-gap: var(--space-4);--masonry-row-height: 240px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--color-surface: var(--color-bg-primary);--color-bg: var(--color-bg-secondary);--font-mono: var(--font-family-mono);--font-size-xs: var(--text-xs);--font-size-sm: var(--text-sm);--font-size-lg: var(--text-lg);--font-size-xl: var(--text-xl);--spacing-xxs: var(--space-1);--spacing-xs: var(--space-2);--spacing-sm: var(--space-3);--spacing-md: var(--space-4);--spacing-lg: var(--space-6)}[data-theme=dark]{--color-bg-primary: #2a2a2a;--color-bg-secondary: #333333;--color-bg-tertiary: #3c3c3c;--color-bg-hover: #444444;--color-border: #4a4a4a;--color-border-light: #3c3c3c;--color-text-primary: #e8e8e8;--color-text-secondary: #aaaaaa;--color-text-muted: #777777;--color-accent: #3b9af5;--color-accent-hover: #228be6;--color-accent-light: rgba(59, 154, 245, .15);--color-success-bg: rgba(34, 197, 94, .12);--color-warning-bg: rgba(250, 176, 5, .12);--color-error-bg: rgba(250, 82, 82, .12);--color-primary-bg: rgba(59, 154, 245, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-card: 0 1px 3px rgba(0, 0, 0, .35);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .5);color-scheme:dark}@media(max-width:1199px){:root{--masonry-row-height: 200px}}@media(max-width:767px){:root{--masonry-row-height: 160px}}.ftp-credentials{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.ftp-credentials__header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.ftp-credentials__header h2{margin:0;font-size:var(--font-size-xl)}.ftp-credentials__description{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.ftp-credentials__loading{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted)}.ftp-credentials__generate{display:flex;flex-direction:column;gap:var(--spacing-md)}.ftp-credentials__expiry{display:flex;align-items:center;gap:var(--spacing-sm)}.ftp-credentials__expiry label{font-weight:500}.ftp-credentials__expiry select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:var(--font-size-sm)}.ftp-credentials__display h3,.ftp-credentials__instructions h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.ftp-credentials__grid{display:grid;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.ftp-credentials__item{display:flex;align-items:center;gap:var(--spacing-sm)}.ftp-credentials__item label{font-weight:500;min-width:80px;color:var(--color-text-muted)}.ftp-credentials__item code{background:var(--color-bg);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm)}.ftp-credentials__value{display:flex;align-items:center;gap:var(--spacing-xs)}.ftp-credentials__value .copied{color:var(--color-success);font-size:var(--font-size-xs)}.ftp-credentials__actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.ftp-credentials__instructions{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.ftp-credentials__instructions ol{margin:0;padding-left:var(--spacing-lg)}.ftp-credentials__instructions li{margin-bottom:var(--spacing-sm)}.ftp-credentials__instructions small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.ftp-credentials__limits{margin-top:var(--spacing-md);padding:var(--spacing-sm);background:var(--color-bg);border-radius:var(--radius-sm)}.ftp-credentials__limits p{margin:0 0 var(--spacing-xs) 0}.ftp-credentials__limits ul{margin:0;padding-left:var(--spacing-md)}.ftp-credentials__limits li{font-size:var(--font-size-sm);color:var(--color-text-muted)}.ftp-credentials__error{margin-top:var(--spacing-md);padding:var(--spacing-sm);background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius-sm)}.ftp-sessions{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.ftp-sessions__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.ftp-sessions__header h2{margin:0;font-size:var(--font-size-xl)}.ftp-sessions__loading,.ftp-session__loading{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted);padding:var(--spacing-md)}.ftp-sessions__empty{color:var(--color-text-muted);text-align:center;padding:var(--spacing-lg)}.ftp-sessions__list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ftp-session{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.ftp-session__header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);cursor:pointer;transition:background .15s}.ftp-session__header:hover{background:var(--color-bg)}.ftp-session__status{display:flex;align-items:center;gap:var(--spacing-xs)}.ftp-session__info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xxs)}.ftp-session__date{font-weight:500}.ftp-session__stats{font-size:var(--font-size-sm);color:var(--color-text-muted)}.ftp-session__results{display:flex;gap:var(--spacing-sm)}.result{display:flex;align-items:center;gap:var(--spacing-xxs);font-size:var(--font-size-sm)}.result--success{color:var(--color-success)}.result--error{color:var(--color-error)}.ftp-session__toggle{color:var(--color-text-muted)}.ftp-session__details{border-top:1px solid var(--color-border);padding:var(--spacing-md);background:var(--color-bg)}.ftp-session__no-files{color:var(--color-text-muted);text-align:center}.ftp-session__files{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ftp-session__files th,.ftp-session__files td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--color-border)}.ftp-session__files th{font-weight:600;color:var(--color-text-muted);background:var(--color-surface)}.file-row--failed{background:var(--color-error-bg)}.file-name{font-family:var(--font-mono);font-size:var(--font-size-xs)}.file-type{text-transform:capitalize}.file-status{display:flex;align-items:center;gap:var(--spacing-xxs)}.media-link{color:var(--color-primary);text-decoration:none}.media-link:hover{text-decoration:underline}.error-message{color:var(--color-error);font-size:var(--font-size-xs)}.status-icon{flex-shrink:0}.status-icon--success{color:var(--color-success)}.status-icon--warning{color:var(--color-warning)}.status-icon--error{color:var(--color-error)}.status-icon--processing{color:var(--color-primary)}.status-icon--pending{color:var(--color-text-muted)}.status-badge{font-size:var(--font-size-xs);padding:var(--spacing-xxs) var(--spacing-xs);border-radius:var(--radius-sm);text-transform:capitalize}.status-badge--completed{background:var(--color-success-bg);color:var(--color-success)}.status-badge--completed_with_errors{background:var(--color-warning-bg);color:var(--color-warning)}.status-badge--failed{background:var(--color-error-bg);color:var(--color-error)}.status-badge--processing{background:var(--color-primary-bg);color:var(--color-primary)}.status-badge--uploading{background:var(--color-bg);color:var(--color-text-muted)}.ftp-upload-page{max-width:800px;margin:0 auto;padding:var(--spacing-lg)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);min-height:100vh}#root{min-height:100vh;width:100%;display:flex;flex-direction:column}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background-color:var(--color-accent-light);color:var(--color-text-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);transition:var(--transition-fast);cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-bg-hover)}.btn--danger{background:var(--color-error);color:#fff}.btn--danger:hover:not(:disabled){opacity:.9}.btn--icon{background:none;border:none;padding:var(--space-1);color:var(--color-text-muted);border-radius:var(--radius-sm)}.btn--icon:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}
