:root,[data-theme=light]{--color-primary: #F40C3F;--color-primary-hover: #d9092f;--color-primary-subtle: rgba(244, 12, 63, .08);--color-primary-border: rgba(244, 12, 63, .22);--color-primary-glow: rgba(244, 12, 63, .12);--color-bg-0: #ffffff;--color-bg-1: #f7f7f5;--color-bg-2: #EFEDE9;--color-bg-3: #e4e2de;--color-border: #d8d6d2;--color-border-subtle: #eae8e4;--color-text: #0E0E0E;--color-text-secondary: #5a5a5a;--color-text-muted: #8a8a8a;--color-accent-green: #EAF5ED;--color-accent-green-text: #1a7a34;--color-success: #1a7a34;--color-error: #d32f2f;--color-warning: #e65100;--color-info: #1565c0;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 24px rgba(0,0,0,.1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-heading: "Barlow Condensed", "Arial Narrow", sans-serif;--font-body: "DM Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Space Mono", "Courier New", monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 600;--font-weight-heavy: 700;--border-radius: 6px;--border-radius-lg: 8px;--border-radius-xl: 12px;--transition: .2s ease}[data-theme=dark]{--color-primary: #F40C3F;--color-primary-hover: #ff2952;--color-primary-subtle: rgba(244, 12, 63, .12);--color-primary-border: rgba(244, 12, 63, .3);--color-primary-glow: rgba(244, 12, 63, .18);--color-bg-0: #0E0E0E;--color-bg-1: #181818;--color-bg-2: #222222;--color-bg-3: #2c2c2c;--color-border: #333333;--color-border-subtle: #2a2a2a;--color-text: #ffffff;--color-text-secondary: #a0a0a0;--color-text-muted: #666666;--color-accent-green: rgba(234, 245, 237, .08);--color-accent-green-text: #7dcea0;--color-success: #4caf50;--color-error: #ef5350;--color-warning: #ff9800;--color-info: #42a5f5;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.5)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font-body);background-color:var(--color-bg-0);color:var(--color-text);font-size:var(--font-size-md);line-height:1.5;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-heavy);text-transform:uppercase;letter-spacing:-.02em;margin-bottom:var(--spacing-md);color:var(--color-text)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.app{display:flex;flex-direction:column;height:100vh;background-color:var(--color-bg-0)}.header{background-color:var(--color-bg-1);border-bottom:1px solid var(--color-border);padding:var(--spacing-lg) var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm)}.header h1{margin:0;font-size:var(--font-size-xl);color:var(--color-primary);letter-spacing:.02em}.header-subtitle{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-sm);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-normal)}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.nav{display:flex;gap:var(--spacing-md)}.nav button{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-heading);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;transition:color var(--transition);border-bottom:2px solid transparent}.nav button:hover{color:var(--color-primary)}.nav button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.layout{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;background-color:var(--color-bg-1);border-right:1px solid var(--color-border);overflow-y:auto;display:flex;flex-direction:column}.content{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);background:var(--color-bg-0)}[data-theme=dark] .auth-shell{background:radial-gradient(circle at top,rgba(244,12,63,.12),transparent 36%),linear-gradient(160deg,#0e0e0e,#111 56%,#1a0a0a)}.auth-card{width:min(440px,100%);padding:var(--spacing-xl);border:1px solid var(--color-primary-border);border-radius:20px;background:var(--color-bg-1);box-shadow:var(--shadow-lg)}.auth-kicker{margin-bottom:var(--spacing-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary)}.auth-submit{width:100%;justify-content:center}.dashboard{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stats-grid-compact{margin-bottom:var(--spacing-md)}.stat{background-color:var(--color-bg-0);padding:var(--spacing-md);border-radius:var(--border-radius-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);border:1px solid var(--color-border-subtle)}.stat-num{font-family:var(--font-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy);color:var(--color-primary)}.stat-label{font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.dashboard-meta{margin-bottom:0;font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--spacing-sm)}.meta-line{color:var(--color-text-secondary);margin:0}.dashboard-actions{display:flex;gap:var(--spacing-sm);flex-direction:column}.artist-list{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:var(--spacing-md)}.list-header{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.search-input{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-sm)}.search-input::placeholder{color:var(--color-text-muted)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.list-actions{display:flex;gap:var(--spacing-sm)}.list-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-sm);width:100%}.list-select{width:100%;min-width:0;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-xs);appearance:none}.list-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.inline-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.add-artists-form{background-color:var(--color-bg-0);padding:var(--spacing-md);border-radius:var(--border-radius-lg);border:1px solid var(--color-border);margin-bottom:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.add-artists-form textarea{padding:var(--spacing-sm);background-color:var(--color-bg-1);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical}.add-artists-form textarea:focus{outline:none;border-color:var(--color-primary)}.list-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-xs)}.list-item{padding:var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition);display:flex;flex-direction:column;gap:var(--spacing-xs)}.list-item:hover{background-color:var(--color-bg-2);border-color:var(--color-primary)}.list-item.active{background-color:var(--color-primary-subtle);border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow)}.list-item.has-conflict{border-left:3px solid var(--color-warning)}.artist-name{font-family:var(--font-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);text-transform:uppercase;letter-spacing:.01em;color:var(--color-text);flex:1}.artist-list-main{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);width:100%}.artist-detail-line{font-size:var(--font-size-xs);color:var(--color-text-secondary);width:100%}.artist-subline{font-size:var(--font-size-xs);color:var(--color-text-secondary);opacity:.8;width:100%}.artist-meta{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap;width:100%}.mgmt{font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary);background-color:var(--color-bg-2);padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.conflict-badge,.exported-badge{font-size:var(--font-size-sm)}.conflict-badge{color:var(--color-warning)}.exported-badge{color:var(--color-success)}.workflow-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent}.workflow-new{background-color:#ff980024;color:var(--color-warning);border-color:#ff980059}.workflow-researching{background-color:#2196f324;color:var(--color-info);border-color:#2196f359}.workflow-needs_review{background-color:#f40c3f1a;color:var(--color-primary);border-color:var(--color-primary-border)}.workflow-needs_classification{background-color:#ff98001f;color:var(--color-warning);border-color:#ff980047}.workflow-ready_for_images,.workflow-ready_for_export,.workflow-ready_to_export{background-color:#4caf5024;color:var(--color-success);border-color:#4caf5059}.workflow-artist_ready{background-color:#4caf501f;color:var(--color-success);border-color:#4caf5047}.workflow-incomplete{background-color:#ff98001f;color:var(--color-warning);border-color:#ff980047}.workflow-exported{background-color:var(--color-accent-green);color:var(--color-accent-green-text);border-color:#4caf5040}.workflow-mockup-artist{background-color:#2196f31f;color:#1976d2;border-color:#2196f340}.contact-artist-card.is-mockup-artist{border-color:#2196f359}.set-mockup-btn{font-size:11px;padding:2px 8px;border-radius:var(--border-radius);border:1px solid var(--color-border);background:var(--color-bg-1);color:var(--color-text-muted);cursor:pointer;line-height:1.4}.set-mockup-btn:hover{border-color:#1976d2;color:#1976d2}.data-only-artist-notice{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-1);border-top:1px solid var(--color-border);display:flex;align-items:center;gap:var(--spacing-md)}.data-only-artist-notice p{margin:0;font-size:13px;color:var(--color-text-muted);flex:1}.workflow-panel{margin:var(--spacing-xl) var(--spacing-xl) 0;padding:var(--spacing-lg);border-radius:var(--border-radius-xl);border:1px solid var(--color-primary-border);background:var(--color-bg-1);display:flex;justify-content:space-between;gap:var(--spacing-lg);align-items:center;flex-wrap:wrap;box-shadow:var(--shadow-sm)}.workflow-kicker{margin:0 0 var(--spacing-xs);font-family:var(--font-mono);color:var(--color-primary);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.workflow-panel h2{margin:0 0 var(--spacing-xs)}.workflow-detail{margin:0;max-width:720px}.workflow-actions{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.empty-list{padding:var(--spacing-lg);text-align:center;color:var(--color-text-secondary)}.artist-editor{flex:1;overflow-y:auto;padding:var(--spacing-xl)}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-lg)}.editor-header h2{margin:0;color:var(--color-primary)}.editor-subtitle{margin:var(--spacing-xs) 0 0;max-width:720px}.editor-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.editor-status-strip{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--border-radius-lg);background-color:var(--color-accent-green);border:1px solid var(--color-primary-border)}.editor-status-label{font-family:var(--font-mono);color:var(--color-primary);font-size:11px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em}.editor-status-text{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.pipeline-panel{background-color:var(--color-bg-2);border-left:4px solid var(--color-primary);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.pipeline-panel-header{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);align-items:baseline;margin-bottom:var(--spacing-sm)}.pipeline-summary{color:var(--color-text-secondary)}.pipeline-error{color:var(--color-error)}.pipeline-logs{max-height:160px;overflow-y:auto;background-color:var(--color-bg-0);color:var(--color-text-secondary);padding:var(--spacing-sm);border-radius:var(--border-radius);font-family:var(--font-mono);font-size:11px;line-height:1.4;white-space:pre-wrap;border:1px solid var(--color-border-subtle)}.pipeline-artifacts{list-style:none;margin:var(--spacing-sm) 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.pipeline-artifact-kind{display:inline-block;min-width:90px;font-family:var(--font-mono);color:var(--color-text-secondary);text-transform:uppercase;font-size:10px;letter-spacing:.05em}.conflict-box{background-color:var(--color-bg-2);border-left:4px solid var(--color-warning);padding:var(--spacing-lg);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-lg)}.conflict-box h3{color:var(--color-warning);margin-bottom:var(--spacing-md)}.conflict-box p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}.conflict-list{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.conflict-item{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background-color:var(--color-bg-1);border-radius:var(--border-radius)}.conflict-field{font-weight:var(--font-weight-medium);color:var(--color-primary);font-size:var(--font-size-sm)}.conflict-before,.conflict-after{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:var(--font-mono)}.conflict-before{color:var(--color-error)}.conflict-after{color:var(--color-success)}.conflict-actions{display:flex;gap:var(--spacing-md)}.field-groups{display:flex;flex-direction:column;gap:var(--spacing-lg)}.group-note{margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.field-group{border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);background-color:var(--color-bg-1)}.field-group legend{padding:0 var(--spacing-md);font-family:var(--font-heading);color:var(--color-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);text-transform:uppercase;letter-spacing:.02em;margin-left:-8px}.feature-group{border-color:var(--color-primary-border);background:var(--color-primary-subtle)}.fields-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-top:var(--spacing-md)}.tracklist-grid{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-md)}.track-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:var(--spacing-md);align-items:end}.track-time-field{min-width:0}.field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.field label{font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-normal);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.field input{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-sm);transition:border-color var(--transition)}.field select{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-sm);transition:border-color var(--transition);appearance:none}.field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.field input.input-readonly{background-color:var(--color-bg-2);border-color:transparent;color:var(--color-text-secondary);cursor:default;font-weight:600}.agent-empty-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.agent-card{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-lg);background:var(--color-bg-0)}.agent-overflow-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.editor-meta{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.image-gallery{flex:1;overflow-y:auto;padding:var(--spacing-xl)}.gallery-toolbar{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);align-items:center;flex-wrap:wrap}.selection-summary{font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-left:auto}.batch-page{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.batch-hero{display:flex;justify-content:space-between;gap:var(--spacing-lg);align-items:flex-start;padding:var(--spacing-xl);border:1px solid var(--color-primary-border);border-radius:var(--border-radius-xl);background:linear-gradient(135deg,rgba(244,12,63,.06),transparent 48%),var(--color-bg-1);box-shadow:var(--shadow-sm)}.batch-hero h2{margin-bottom:var(--spacing-sm)}.batch-hero-stats{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:var(--spacing-md);min-width:280px}.batch-stat{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);border-radius:var(--border-radius-lg);background:var(--color-bg-0);border:1px solid var(--color-border-subtle)}.batch-stat strong{font-family:var(--font-heading);font-size:28px;color:var(--color-primary)}.batch-stat span{font-size:var(--font-size-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.batch-toolbar{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);border-radius:var(--border-radius-xl);border:1px solid var(--color-border);background:var(--color-bg-1)}.batch-toolbar-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.batch-progress{font-family:var(--font-mono);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary)}.batch-table-wrap{border:1px solid var(--color-border);border-radius:var(--border-radius-xl);background:var(--color-bg-1);overflow:hidden}.batch-table{display:flex;flex-direction:column}.batch-table-head,.batch-table-row{display:grid;grid-template-columns:44px minmax(220px,1.6fr) minmax(220px,1.2fr) minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1fr) 110px;gap:var(--spacing-md);align-items:center;padding:var(--spacing-md) var(--spacing-lg)}.batch-table-head{background:var(--color-bg-2);border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.batch-table-row{border-bottom:1px solid var(--color-border-subtle)}.batch-table-row:last-child{border-bottom:none}.batch-table-row.is-selected{background:#f40c3f0a}.batch-check{display:flex;align-items:center;justify-content:center}.batch-contact-cell{display:flex;flex-direction:column;gap:4px}.batch-contact-cell strong{font-family:var(--font-heading);font-size:var(--font-size-md);text-transform:uppercase;color:var(--color-text)}.batch-contact-cell em{font-style:normal;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.batch-role-inline{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.batch-role-inline label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.batch-role-select{max-width:150px}.batch-mockup-cell{min-width:0}.batch-mockup-fallback{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.batch-mockup-fallback span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.batch-status{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.45}.batch-status-idle,.batch-status-queued{color:var(--color-text-muted)}.batch-status-processing{color:var(--color-info)}.batch-status-done,.batch-status-skipped{color:var(--color-success)}.batch-status-error{color:var(--color-error)}.batch-actions-cell{display:flex;justify-content:flex-end;gap:var(--spacing-sm);flex-wrap:wrap}.batch-review-panel{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);border-radius:var(--border-radius-xl);border:1px solid var(--color-border);background:var(--color-bg-1)}.batch-review-header{display:flex;justify-content:space-between;gap:var(--spacing-md);align-items:flex-start;flex-wrap:wrap}.batch-review-filters{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.batch-review-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.batch-review-card{border:1px solid var(--color-border-subtle);border-radius:var(--border-radius-lg);background:var(--color-bg-0);overflow:hidden}.batch-review-card.is-expanded{border-color:var(--color-primary-border);box-shadow:0 0 0 2px var(--color-primary-glow)}.batch-review-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);flex-wrap:wrap}.batch-review-title{display:flex;flex-direction:column;gap:4px;min-width:200px}.batch-review-title strong{font-family:var(--font-heading);font-size:var(--font-size-md);text-transform:uppercase;color:var(--color-text)}.batch-review-title span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.batch-review-strip{display:flex;align-items:center;gap:var(--spacing-md);flex:1;min-width:300px;flex-wrap:wrap}.batch-pick{display:flex;flex-direction:column;gap:6px;align-items:center}.batch-pick img,.batch-pick-empty{width:72px;height:72px;border-radius:var(--border-radius);border:1px solid var(--color-border);object-fit:cover;background:var(--color-bg-2)}.batch-pick-empty{display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--color-text-muted)}.batch-pick span{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.batch-pick-meta{display:flex;flex-direction:column;gap:6px}.batch-pick-meta em{font-style:normal;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.batch-review-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.batch-review-expanded{border-top:1px solid var(--color-border-subtle);background:var(--color-bg-1)}@media(max-width:1200px){.batch-page{padding:var(--spacing-lg)}.batch-hero{flex-direction:column}.batch-hero-stats{width:100%;min-width:0}.batch-table-wrap{overflow-x:auto}.batch-table{min-width:1200px}.batch-review-card-header{align-items:flex-start}}.gallery-section{margin-bottom:var(--spacing-xl)}.gallery-summary{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border-radius:var(--border-radius-lg);background-color:var(--color-accent-green);border:1px solid var(--color-primary-border)}.gallery-summary-title{font-family:var(--font-mono);color:var(--color-primary);font-size:11px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--spacing-xs)}.gallery-summary-text,.gallery-summary-note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.gallery-summary-note{margin-top:var(--spacing-xs)}.gallery-section h3{margin-bottom:var(--spacing-md);color:var(--color-primary)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-md)}.gallery-card{background-color:var(--color-bg-1);border:2px solid var(--color-border-subtle);border-radius:var(--border-radius-lg);overflow:hidden;cursor:pointer;transition:all var(--transition);display:flex;flex-direction:column}.gallery-card img{width:100%;height:140px;object-fit:cover;display:block}.gallery-card:hover{border-color:var(--color-primary)}.gallery-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow)}.gallery-card.selected-top{border-color:var(--color-info);box-shadow:0 0 0 2px #2196f34d}.gallery-card.selected-mini{border-color:#b97cff;box-shadow:0 0 0 2px #b97cff4d}.gallery-card.selected-bottom{border-color:var(--color-error);box-shadow:0 0 0 2px #ef53504d}.gallery-card.selected-search{border-color:var(--color-success);box-shadow:0 0 0 2px #4caf504d}.export-review-panel{margin-top:var(--spacing-lg);padding:var(--spacing-lg);border-radius:var(--border-radius-xl);border:1px solid var(--color-primary-border);background:var(--color-bg-1)}.export-review-header{display:flex;justify-content:space-between;gap:var(--spacing-md);align-items:flex-start;margin-bottom:var(--spacing-md)}.export-review-header h3{margin:.2rem 0 0}.export-review-kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--color-primary)}.export-review-loading,.export-review-empty{color:var(--color-text-secondary)}.export-review-status{display:flex;flex-direction:column;gap:.35rem;padding:var(--spacing-md);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md)}.export-review-status.is-pass{background:#4caf5014;border:1px solid rgba(76,175,80,.25)}.export-review-status.is-fail{background:#f40c3f0f;border:1px solid var(--color-primary-border)}.export-review-warnings{margin-bottom:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--border-radius-lg);background:#ff98000f;border:1px solid rgba(255,152,0,.2)}.export-review-warnings p{margin:0;color:var(--color-text-secondary)}.export-review-recipient{display:flex;flex-direction:column;gap:.45rem;margin-bottom:var(--spacing-md)}.export-review-recipient-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.export-review-select{width:100%;max-width:480px;padding:.8rem .95rem;border-radius:var(--border-radius-md);border:1px solid var(--color-border-subtle);background:var(--color-bg-0);color:var(--color-text);font:inherit}.export-review-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow)}.export-review-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-md)}.export-review-section{padding:var(--spacing-md);border-radius:var(--border-radius-lg);background:var(--color-bg-0);border:1px solid var(--color-border-subtle)}.export-review-section h4{margin-top:0;margin-bottom:var(--spacing-sm)}.export-review-item{display:flex;flex-direction:column;gap:.3rem;padding:.75rem 0;border-top:1px solid var(--color-border-subtle)}.export-review-item:first-of-type{border-top:0;padding-top:0}.export-review-item strong{font-size:var(--font-size-sm)}.export-review-item span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.export-review-item.is-ready strong{color:var(--color-success)}.export-review-item.is-missing strong{color:var(--color-error)}.export-review-item.is-recommended strong{color:var(--color-primary)}.export-review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.export-review-blocked,.export-review-warning{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.card-actions{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs)}.search-check{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.search-check input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.gallery-empty{display:flex;align-items:center;justify-content:center;height:300px;color:var(--color-text-secondary);text-align:center}.gallery-warning{margin-bottom:var(--spacing-lg)}.settings-panel{padding:var(--spacing-xl);flex:1}.settings-form{max-width:500px;display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-callout{padding:var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);border:1px solid transparent}.settings-callout.is-ready{background-color:#4caf5014;border-color:#4caf5040;color:var(--color-success)}.settings-callout.is-warning{background-color:#ff980014;border-color:#ff980040;color:var(--color-warning)}.settings-form .field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-form label{font-family:var(--font-heading);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text)}.settings-form input{padding:var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-md)}.settings-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.settings-form select{padding:var(--spacing-md);background-color:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-md)}.settings-form select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.settings-help{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.settings-section{padding-top:var(--spacing-md);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-section h3{margin:0;color:var(--color-text)}.settings-history{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.settings-file-button{position:relative;overflow:hidden}.theme-toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:6px 12px;border-radius:var(--border-radius);border:1px solid var(--color-border);background:var(--color-bg-0);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;transition:all var(--transition)}.theme-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.log-panel{margin:0 var(--spacing-xl) var(--spacing-xl);min-height:220px;max-height:320px;background-color:var(--color-bg-1);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-md)}.log-header{padding:var(--spacing-md) var(--spacing-lg);display:flex;gap:var(--spacing-md);align-items:center;border-bottom:1px solid var(--color-border);background-color:var(--color-bg-2)}.log-phase{font-family:var(--font-heading);font-weight:var(--font-weight-bold);color:var(--color-primary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.04em}.log-artist{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.log-cancel-btn{margin-left:auto}.log-status-dot{margin-left:0}.log-status-dot.is-running{color:var(--color-primary);animation:pulse 1.5s ease infinite}.log-status-dot.is-idle{color:var(--color-text-muted)}@keyframes pulse{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.log-content{flex:1;overflow-y:auto;padding:var(--spacing-md) var(--spacing-lg);font-family:var(--font-mono);font-size:11px;line-height:1.6}.log-line{color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);word-break:break-word}.log-error{color:var(--color-error)}.btn{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--border-radius);font-family:var(--font-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-gold{background-color:var(--color-primary);color:#fff}.btn-gold:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--color-primary-glow)}.btn-secondary{background-color:var(--color-bg-2);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-3);border-color:var(--color-primary);color:var(--color-primary)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary)}.btn-sm{padding:6px 12px;font-size:var(--font-size-xs)}.toast{position:fixed;top:var(--spacing-xl);left:50%;transform:translate(-50%);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-lg);color:#fff;font-family:var(--font-heading);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.02em;z-index:1000;animation:slideIn .3s ease;max-width:600px;word-break:break-word}.toast-success{background-color:var(--color-success)}.toast-error{background-color:var(--color-error)}@keyframes slideIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--color-primary);font-family:var(--font-heading);font-size:var(--font-size-xl);text-transform:uppercase;letter-spacing:.04em}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-1)}::-webkit-scrollbar-thumb{background:var(--color-bg-3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.ww-projections{margin-top:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);background:var(--color-bg-0);overflow:hidden}.ww-proj-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;user-select:none;background:var(--color-bg-1);border-bottom:1px solid var(--color-border-subtle);transition:background var(--transition)}.ww-proj-header:hover{background:var(--color-bg-2)}.ww-proj-toggle{font-size:var(--font-size-md);color:var(--color-primary);width:16px;flex-shrink:0}.ww-proj-title{font-family:var(--font-heading);font-weight:var(--font-weight-heavy);font-size:var(--font-size-lg);text-transform:uppercase;letter-spacing:-.02em;color:var(--color-text)}.ww-proj-count{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-left:auto}.ww-proj-quick{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);font-weight:var(--font-weight-bold);padding:2px 8px;background:var(--color-primary-subtle);border-radius:var(--border-radius)}.ww-proj-params{display:flex;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-accent-green);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap}[data-theme=dark] .ww-proj-params{background:var(--color-bg-2)}.ww-proj-param{display:flex;align-items:center;gap:var(--spacing-xs)}.ww-proj-param label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);white-space:nowrap}.ww-proj-param input{width:72px;padding:4px 8px;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text);background:var(--color-bg-0);border:1px solid var(--color-border);border-radius:var(--border-radius);text-align:right;transition:border-color var(--transition)}.ww-proj-param input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow)}.ww-proj-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.ww-proj-table{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:var(--font-size-sm)}.ww-proj-table thead{position:sticky;top:0;z-index:2}.ww-proj-thead-main{background:var(--color-bg-2)}.ww-proj-thead-main th{font-family:var(--font-heading);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:-.01em;color:var(--color-text);padding:var(--spacing-sm) var(--spacing-md);text-align:right;white-space:nowrap;border-bottom:2px solid var(--color-primary)}.ww-proj-thead-main th:first-child,.ww-proj-thead-main th:nth-child(2){text-align:left}.ww-proj-thead-sub{background:var(--color-bg-1)}.ww-proj-thead-sub td{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);padding:2px var(--spacing-md) var(--spacing-xs);text-align:right;border-bottom:1px solid var(--color-border-subtle)}.ww-proj-table tbody tr{border-bottom:1px solid var(--color-border-subtle);transition:background var(--transition)}.ww-proj-table tbody tr:hover{background:var(--color-primary-subtle)}.ww-proj-table tbody td{padding:var(--spacing-xs) var(--spacing-md);color:var(--color-text)}.ww-proj-date{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.02em;color:var(--color-text-secondary);white-space:nowrap}.ww-proj-city{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-text);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ww-proj-cap{text-align:right}.ww-proj-cap-input{width:80px;padding:2px 6px;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text);background:var(--color-bg-1);border:1px solid var(--color-border-subtle);border-radius:var(--border-radius);text-align:right;transition:border-color var(--transition),background var(--transition)}.ww-proj-cap-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg-0);box-shadow:0 0 0 2px var(--color-primary-glow)}.ww-proj-dollar{text-align:right;font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.02em;white-space:nowrap}.ww-proj-num{text-align:right;font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.02em;color:var(--color-text-secondary);white-space:nowrap}.ww-proj-support{opacity:.65}.ww-proj-support .ww-proj-city{font-style:italic}.ww-proj-tour-totals{background:var(--color-bg-2);border-top:2px solid var(--color-border)}.ww-proj-tour-totals td{font-weight:var(--font-weight-bold);padding:var(--spacing-sm) var(--spacing-md)}.ww-proj-tour-totals td:nth-child(2){font-family:var(--font-heading);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:-.01em;color:var(--color-text)}.ww-proj-tour-totals .ww-proj-dollar{color:var(--color-text);font-weight:var(--font-weight-bold)}.ww-proj-post-tour{background:var(--color-primary-subtle);border-top:2px solid var(--color-primary)}.ww-proj-post-tour td{font-weight:var(--font-weight-heavy);padding:var(--spacing-sm) var(--spacing-md)}.ww-proj-post-tour td:nth-child(2){font-family:var(--font-heading);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:-.01em;color:var(--color-primary)}.ww-proj-post-tour .ww-proj-dollar{color:var(--color-primary);font-weight:var(--font-weight-heavy)}.ww-proj-post-tour .ww-proj-num{color:var(--color-primary);font-weight:var(--font-weight-bold)}.proj-loading,.proj-empty{padding:var(--spacing-lg);text-align:center;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-text-muted)}.proj-error{padding:var(--spacing-lg);text-align:center;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-error)}@media(max-width:768px){.layout{flex-direction:column}.sidebar{width:100%;max-height:300px;border-right:none;border-bottom:1px solid var(--color-border)}.stats-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.fields-grid,.track-row{grid-template-columns:1fr}.header{flex-direction:column;gap:var(--spacing-md);align-items:flex-start}.header-actions{width:100%;flex-direction:column;align-items:flex-start}.workflow-panel{margin:var(--spacing-md) var(--spacing-md) 0}.nav{width:100%}.artist-editor{padding:var(--spacing-md)}.editor-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.image-gallery{padding:var(--spacing-md)}.log-panel{margin:0 var(--spacing-md) var(--spacing-md)}.ww-proj-params{flex-direction:column;gap:var(--spacing-sm)}.ww-proj-header{padding:var(--spacing-sm) var(--spacing-md)}.ww-proj-table{font-size:var(--font-size-xs)}.ww-proj-thead-main th,.ww-proj-table tbody td,.ww-proj-tour-totals td,.ww-proj-post-tour td{padding:var(--spacing-xs) var(--spacing-sm)}}@media(max-width:480px){:root{--spacing-xl: 16px;--font-size-xl: 20px}.header{padding:var(--spacing-md)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.list-actions{width:100%}.list-actions .btn{flex:1}.list-controls{grid-template-columns:1fr}.gallery-toolbar{flex-direction:column}.workflow-actions{width:100%}.workflow-actions .btn,.inline-actions .btn{flex:1}.selection-summary{margin-left:0;width:100%;text-align:center}.conflict-actions{flex-direction:column}.conflict-actions .btn{width:100%}}.contact-content{padding:var(--spacing-lg)}.contact-summary-card,.contact-export-card,.contact-artists-panel{background:var(--color-bg-1);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.contact-summary-card{display:flex;justify-content:space-between;gap:var(--spacing-lg)}.contact-classification-editor{margin-top:var(--spacing-md);max-width:280px}.contact-classification-help{margin:var(--spacing-sm) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.contact-summary-stats{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-end;color:var(--color-text-secondary)}.contact-summary-stat{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);width:100%}.contact-summary-stat-value{display:inline-flex;align-items:center;justify-content:center;min-width:110px;padding:6px 12px;border-radius:999px;background:var(--color-primary-subtle);border:1px solid var(--color-primary-border);color:var(--color-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-heavy);letter-spacing:.02em;white-space:nowrap}.contact-export-header,.contact-artists-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.contact-export-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:flex-end}.contact-artist-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.contact-artist-card{border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg-0);overflow:hidden}.contact-artist-row{width:100%;background:transparent;border:none;display:flex;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);text-align:left;cursor:pointer;color:inherit}.contact-artist-row-main{display:flex;gap:var(--spacing-md);align-items:flex-start}.contact-artist-row-main>div,.contact-artist-row-meta{display:flex;flex-direction:column;gap:2px}.contact-artist-row-meta{align-items:flex-end;color:var(--color-text-secondary)}.contact-artist-expanded{border-top:1px solid var(--color-border);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg)}
