@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}*{margin:0;padding:0;box-sizing:border-box}:root[data-theme=light]{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #e8e8e8;--text-primary: #333333;--text-secondary: #666666;--text-tertiary: #999999;--border-color: #dddddd;--genre-chip-bg: #e3e6eb;--genre-chip-border: #cfd5df;--genre-chip-text: #111111;--shadow-sm: 0 2px 4px rgba(0,0,0,.1);--shadow-md: 0 4px 12px rgba(0,0,0,.15);--nav-bg: #2c3e50;--nav-text: #ffffff;--nav-hover: #3498db;--heading-color: #2c3e50;--primary-color: #007bff;--primary-hover: #0056b3;--secondary-color: #6c757d;--secondary-hover: #545b62;--danger-color: #dc3545;--danger-hover: #a71d2a;--error-bg: #f8d7da;--error-text: #721c24;--success-bg: #d4edda;--success-text: #155724;--modal-overlay: rgba(0,0,0,.5)}:root[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--text-primary: #e8e8e8;--text-secondary: #b8b8b8;--text-tertiary: #888888;--border-color: #444444;--genre-chip-bg: #2f343c;--genre-chip-border: #4a5561;--genre-chip-text: #f5f7fa;--shadow-sm: 0 2px 4px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--nav-bg: #1e1e1e;--nav-text: #e8e8e8;--nav-hover: #4a9eff;--heading-color: #e8e8e8;--primary-color: #4a9eff;--primary-hover: #2d7bd4;--secondary-color: #8a9099;--secondary-hover: #6c7279;--danger-color: #e74c5c;--danger-hover: #c82333;--error-bg: #3d2528;--error-text: #f8b4b4;--success-bg: #1e3a24;--success-text: #a8d5a8;--modal-overlay: rgba(0,0,0,.7)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:20px}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-link{background:transparent;color:var(--accent);padding:0;min-width:auto}.btn-link:hover{color:var(--accent-hover);background:none}.btn-link:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover{background-color:var(--secondary-hover)}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:var(--danger-hover)}.card{background:var(--bg-secondary);border-radius:8px;padding:20px;box-shadow:var(--shadow-sm);margin-bottom:20px;transition:background-color .3s ease,box-shadow .3s ease}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:600;font-size:14px}.form-control{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background-color:var(--bg-secondary);color:var(--text-primary);transition:border-color .2s ease,background-color .3s ease}.form-control:focus{outline:none;border-color:var(--primary-color)}.form-control-static{padding:10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-weight:600;transition:background-color .3s ease,color .3s ease}.read-only-field{background-color:var(--bg-tertiary)!important;color:var(--text-secondary)!important;cursor:not-allowed;font-style:italic}textarea.form-control{min-height:100px;resize:vertical}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.loading{text-align:center;padding:40px;color:var(--text-secondary)}.error{background-color:var(--error-bg);color:var(--error-text);padding:12px;border-radius:6px;margin-bottom:20px;transition:background-color .3s ease,color .3s ease}.success{background-color:var(--success-bg);color:var(--success-text);padding:12px;border-radius:6px;margin-bottom:20px;transition:background-color .3s ease,color .3s ease}.error-message{background-color:var(--error-bg);color:var(--error-text);padding:12px;border-radius:6px;margin-bottom:20px;border-left:4px solid #dc3545}.subtle-text{color:var(--text-secondary);font-size:.95rem;margin-bottom:10px}.success-message{background-color:var(--success-bg);color:var(--success-text);padding:12px;border-radius:6px;margin-bottom:20px;border-left:4px solid #27ae60}.info-text{font-size:14px;color:var(--text-secondary);margin-bottom:15px;line-height:1.5}.warning-text{background-color:#fff3cd;color:#856404;padding:10px;border-radius:4px;margin-top:10px;border-left:4px solid #ffc107}.nav{background-color:var(--nav-bg);padding:15px 0;margin-bottom:30px;transition:background-color .3s ease}.nav-container{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.nav-brand{color:var(--nav-text);font-size:24px;font-weight:700;text-decoration:none;transition:color .3s ease}.nav-links{display:flex;gap:20px;list-style:none;align-items:center}.nav-links a{color:var(--nav-text);text-decoration:none;font-weight:500;transition:color .2s}.nav-links a:hover{color:var(--nav-hover)}.usage-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-secondary);color:var(--nav-text);font-weight:600;min-width:110px;justify-content:center}.usage-pill-label{font-size:12px;text-transform:uppercase;letter-spacing:.03em;opacity:.8}.usage-pill-value{font-size:14px}.nav-brand-section{display:flex;align-items:center;gap:12px}.project-selector-label{color:var(--nav-text);font-size:16px;font-weight:600;white-space:nowrap}.project-selector-dropdown{background-color:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:6px;padding:8px 12px;font-size:16px;font-weight:600;min-width:200px;cursor:pointer;transition:all .2s ease}.project-selector-dropdown:hover{border-color:var(--nav-hover)}.project-selector-dropdown:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a9eff33}.project-selector-dropdown:disabled{opacity:.6;cursor:not-allowed}h1,h2,h3{margin-bottom:20px;color:var(--heading-color);transition:color .3s ease}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:30px;flex-wrap:wrap}.header-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.view-toggle{display:inline-flex;background-color:var(--bg-tertiary);padding:4px;border-radius:10px;gap:8px}.view-toggle .btn{border-radius:8px;min-width:110px}.project-card{cursor:pointer;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.project-card h3{color:var(--primary-color);margin-bottom:10px;transition:color .3s ease}.project-meta{display:flex;gap:15px;margin-top:10px;font-size:13px;color:var(--text-secondary);transition:color .3s ease}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.badge-concept{background-color:#e3f2fd;color:#1976d2}.badge-draft{background-color:#fff3e0;color:#f57c00}.badge-revision{background-color:#f3e5f5;color:#7b1fa2}.badge-complete{background-color:#e8f5e9;color:#388e3c}.modal-overlay{position:fixed;inset:0;background-color:var(--modal-overlay);display:flex;justify-content:center;align-items:center;z-index:1000;transition:background-color .3s ease}.modal{background:var(--bg-secondary);border-radius:8px;padding:30px;max-width:800px;width:90%;max-height:90vh;overflow-y:auto;transition:background-color .3s ease}.modal-large{max-width:960px}.refine-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.refine-column{display:flex;flex-direction:column;gap:8px}.refine-column-header{display:flex;align-items:center;justify-content:space-between;font-weight:700}@media(max-width:768px){.refine-compare-grid{grid-template-columns:1fr}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);transition:color .3s ease}.button-group{display:flex;gap:10px;margin-top:20px}.theme-toggle{background:none;border:2px solid var(--nav-text);color:var(--nav-text);padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:8px}.theme-toggle:hover{background-color:#ffffff1a;border-color:var(--nav-hover);color:var(--nav-hover)}.theme-icon{font-size:18px;line-height:1}.form-section{margin-bottom:30px;padding:20px;background-color:var(--bg-tertiary);border-radius:8px;transition:background-color .3s ease}.form-section h3{margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid var(--border-color);color:var(--heading-color);font-size:18px;transition:color .3s ease,border-color .3s ease}.form-section small{display:block;margin-top:5px;font-size:12px;color:var(--text-tertiary);transition:color .3s ease}.grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:768px){.grid-3{grid-template-columns:1fr}}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.checkbox-label span{-webkit-user-select:none;user-select:none}.beat-sheet{display:flex;flex-direction:column;gap:30px}.act-section{background-color:var(--bg-secondary);border-radius:8px;padding:20px;box-shadow:var(--shadow-sm)}.act-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:15px;margin-bottom:20px;border-bottom:2px solid var(--border-color);border-left:4px solid var(--primary-color);padding-left:15px}.act-header h2{margin:0;font-size:24px;color:var(--heading-color)}.beat-count{color:var(--text-secondary);font-size:14px}.beat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.beat-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:15px;transition:all .2s}.beat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.beat-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.beat-sequence{background-color:var(--primary-color);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.beat-type{flex:1;font-weight:600;font-size:14px;color:var(--text-primary)}.beat-summary{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:10px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.beat-meta{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.meta-item{background-color:var(--bg-tertiary);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--text-secondary)}.beat-card-actions{display:flex;gap:8px;margin-top:15px;padding-top:15px;border-top:1px solid var(--border-color)}.view-toggle{display:flex;gap:5px}.view-toggle .btn{padding:8px 16px;font-size:13px}.beats-table{width:100%;background-color:var(--bg-secondary);border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm)}.beats-table th,.beats-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.beats-table th{background-color:var(--bg-tertiary);font-weight:600;color:var(--text-primary)}.beats-table tr:hover{background-color:var(--bg-tertiary)}.beats-table tr:last-child td{border-bottom:none}.act-badge{display:inline-block;padding:4px 12px;border-radius:12px;color:#fff;font-size:12px;font-weight:600}.summary-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.beats-table .btn{margin-right:5px}.nav-error-text{margin-top:6px;color:#ffb347;font-size:12px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-primary);padding:40px 20px}.login-card{width:100%;max-width:420px;background-color:var(--bg-secondary);border-radius:12px;padding:32px;box-shadow:var(--shadow-md)}.login-card h1{margin-bottom:10px}.login-subtitle{margin-bottom:24px;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:16px}.login-form label{display:flex;flex-direction:column;font-weight:600;color:var(--text-secondary);gap:8px}.login-form input{padding:10px 12px;border-radius:6px;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary)}.login-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a9eff26}.filter-select{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-secondary);color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s}.filter-select:hover{border-color:var(--primary-color)}.filter-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a9eff1a}.beat-modal{width:90%;max-width:900px}@media(max-width:768px){.beat-cards{grid-template-columns:1fr}.view-toggle{width:100%;margin-bottom:10px}.view-toggle .btn{flex:1}.beats-table{font-size:14px}.beats-table th,.beats-table td{padding:8px}.summary-cell{max-width:150px}}.scenes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;margin-top:20px}.scene-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:0;box-shadow:var(--shadow-sm);transition:all .3s ease;display:flex;flex-direction:column}.scene-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.scene-card-header{padding:15px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-tertiary);border-radius:8px 8px 0 0}.scene-number-badge{background-color:var(--primary-color);color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.scene-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:1;margin-left:15px}.badge-int{background-color:#3498db;color:#fff}.badge-ext{background-color:#e67e22;color:#fff}.badge-int_ext{background-color:#9b59b6;color:#fff}.badge-time{background-color:#34495e;color:#fff}.badge-type{background-color:#16a085;color:#fff}.badge-success{background-color:#27ae60;color:#fff}.scene-card-body{padding:15px;flex:1}.scene-slug-line{font-size:18px;font-weight:600;color:var(--heading-color);margin:0 0 10px;font-family:Courier New,monospace}.scene-summary{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0 0 15px}.scene-metadata{display:flex;flex-direction:column;gap:8px;font-size:13px}.metadata-item{display:flex;flex-direction:column;gap:4px}.metadata-item strong{color:var(--text-primary);font-weight:600}.metadata-item span:not(.chip){color:var(--text-secondary)}.character-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.chip{display:inline-block;padding:3px 8px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;font-size:12px;color:var(--text-primary)}.chip-label{margin-left:4px;font-size:10px;text-transform:uppercase;color:var(--accent)}.chip-accent{background-color:#567dfa1a;border-color:var(--accent)}.chip-info{background-color:#00b5cc26;border-color:#00b5cc}.chip-warning{background-color:#ffaa0026;border-color:#ffa726}.inline-badge{margin-left:6px;font-size:11px;text-transform:uppercase;color:var(--accent)}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px}.checkbox-item{display:flex;gap:8px;font-size:14px;align-items:center}.arc-selection{justify-content:space-between}.arc-selection label{flex:1}.arc-emphasis-control{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.arc-emphasis-control input{width:80px}.modal-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.scene-card-actions{padding:12px 15px;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:flex-end;gap:10px}.scene-card-actions-left{margin-right:auto;display:flex;gap:12px;align-items:center}.scene-modal{width:90%;max-width:1000px;max-height:90vh;overflow-y:auto}.scene-form{display:flex;flex-direction:column;gap:0}@media(max-width:768px){.scenes-grid{grid-template-columns:1fr}.scene-card-header{flex-direction:column;align-items:flex-start;gap:10px}.scene-badges{justify-content:flex-start;margin-left:0}.scene-number-badge{width:35px;height:35px;font-size:14px}}.ai-field-controls{margin-top:10px;padding:12px;background-color:var(--bg-tertiary);border-radius:6px;border-left:3px solid var(--primary-color)}.ai-buttons{display:flex;gap:8px;flex-wrap:wrap}.btn-ai{padding:6px 12px;font-size:13px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:4px}.btn-ai:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.btn-ai:disabled{opacity:.5;cursor:not-allowed;background:var(--secondary-color)}.ai-loading{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;background-color:var(--bg-secondary);border-radius:4px;font-size:13px;color:var(--text-secondary)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-error{margin-top:10px;padding:10px 12px;background-color:var(--error-bg);color:var(--error-text);border-radius:4px;font-size:13px;display:flex;justify-content:space-between;align-items:center}.error-close{background:none;border:none;color:var(--error-text);font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.error-close:hover{opacity:.7}.review-result{display:flex;flex-direction:column;gap:20px}.review-rating{text-align:center;padding:20px;background-color:var(--bg-tertiary);border-radius:8px}.review-rating h4{margin-bottom:12px;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:1px}.rating-badge{display:inline-block;padding:8px 20px;border-radius:20px;color:#fff;font-weight:600;font-size:14px;letter-spacing:.5px}.review-section{padding:16px;background-color:var(--bg-tertiary);border-radius:6px;border-left:3px solid var(--primary-color)}.review-section.warning{border-left-color:#f39c12;background-color:#f39c121a}.review-section h4{margin-bottom:12px;color:var(--text-primary);font-size:15px;display:flex;align-items:center;gap:8px}.review-section ul{list-style:none;padding:0;margin:0}.review-section li{padding:8px 0 8px 20px;position:relative;color:var(--text-primary);line-height:1.5}.review-section li:before{content:"•";position:absolute;left:0;color:var(--primary-color);font-weight:700;font-size:18px}.review-section.warning li:before{color:#f39c12}.modal-small{max-width:500px}@media(max-width:768px){.ai-buttons{flex-direction:column}.btn-ai{width:100%;justify-content:center}.review-result{gap:15px}}.image-upload-container{width:100%}.image-upload-zone{border:2px dashed var(--border-color);border-radius:8px;padding:30px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:var(--bg-tertiary);min-height:200px;display:flex;align-items:center;justify-content:center}.image-upload-zone:hover{border-color:var(--primary-color);background-color:var(--bg-secondary)}.image-upload-zone.dragging{border-color:var(--primary-color);background-color:var(--primary-color);opacity:.1}.image-upload-zone.has-image{padding:0;border:none;min-height:300px}.image-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-secondary)}.image-placeholder svg{opacity:.5}.image-placeholder p{margin:5px 0;font-size:16px;font-weight:500}.upload-hint{font-size:12px;color:var(--text-tertiary)}.image-preview{position:relative;width:100%;height:100%;border-radius:8px;overflow:hidden}.image-preview img{width:100%;height:100%;object-fit:cover;display:block}.image-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;opacity:0;transition:opacity .3s ease}.image-preview:hover .image-overlay{opacity:1}.image-overlay .btn{min-width:140px}.character-card{display:flex;flex-direction:column;overflow:hidden}.character-image{width:50%;max-width:200px;aspect-ratio:9 / 16;overflow:hidden;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;margin:0 auto;position:relative}.character-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .3s ease}.character-image:hover img{transform:scale(1.05);opacity:.85}.location-image{width:100%;max-width:400px;aspect-ratio:16 / 9;overflow:hidden;background-color:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;position:relative}.location-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .3s ease}.location-image:hover img{transform:scale(1.05);opacity:.85}.scene-image{width:100%;max-width:400px;aspect-ratio:16 / 9;overflow:hidden;background-color:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;position:relative}.scene-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .3s ease}.scene-image:hover img{transform:scale(1.05);opacity:.85}.episode-image{width:100%;max-width:400px;aspect-ratio:16 / 9;overflow:hidden;background-color:var(--bg-tertiary);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;position:relative}.episode-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .3s ease}.episode-image:hover img{transform:scale(1.05);opacity:.85}.character-image-placeholder{width:100%;height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);color:var(--text-tertiary);transition:background-color .3s ease}.character-image-placeholder:hover{background-color:var(--bg-secondary)}.character-image-placeholder svg{opacity:.3;margin-bottom:10px}.character-image-placeholder p{font-size:14px;opacity:.5}.character-card-content{padding:20px;flex:1;display:flex;flex-direction:column}.character-card-content h3{margin-top:0;margin-bottom:10px}.draggable-card{cursor:grab}.draggable-card.dragging{opacity:.9;box-shadow:var(--shadow-lg);border:1px dashed var(--primary-color)}.character-card-content .button-group{margin-top:auto}@media(max-width:768px){.image-upload-zone{min-height:150px;padding:20px}.image-upload-zone.has-image{min-height:250px}.character-image,.character-image-placeholder{height:150px}}.tab-navigation{margin:20px 0;border-bottom:2px solid var(--border-color)}.tab-navigation-desktop{display:flex;gap:0}.tab-navigation-mobile{display:none}.tab{padding:12px 24px;border:none;background:none;color:var(--text-secondary);font-size:15px;font-weight:500;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;position:relative;top:2px}.tab:hover{color:var(--primary-color);background-color:var(--bg-tertiary)}.tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.tab-select{width:100%;padding:12px;font-size:15px;border:1px solid var(--border-color);border-radius:6px;background-color:var(--bg-secondary);color:var(--text-primary)}.season-navigator{display:flex;align-items:center;gap:12px;padding:16px 20px;background-color:var(--bg-secondary);border-radius:8px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.season-label{font-weight:600;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px}.season-select{padding:8px 16px;font-size:16px;font-weight:600;border:2px solid var(--border-color);border-radius:6px;background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .2s}.season-select:hover{border-color:var(--primary-color)}.season-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a9eff1a}.season-meta{margin-left:auto;font-size:14px;color:var(--text-tertiary)}.season-title{font-size:18px;font-weight:600;color:var(--text-primary)}.episode-grid-container{margin-top:20px}.episode-grid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.episode-grid-count{font-size:14px;font-weight:600;color:var(--text-secondary)}.episode-grid-toggle{display:flex;gap:4px;border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.view-toggle-btn{padding:8px 16px;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.view-toggle-btn:hover{background:var(--bg-tertiary)}.view-toggle-btn.active{background:var(--primary-color);color:#fff}.episode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.episode-grid-loading{padding:40px;text-align:center;color:var(--text-secondary)}.episode-card{background:var(--bg-secondary);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s}.episode-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.episode-card:focus{outline:2px solid var(--primary-color);outline-offset:2px}.episode-card-thumbnail{height:150px;display:flex;align-items:center;justify-content:center;position:relative}.episode-card-code{font-size:32px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.episode-card-content{padding:16px}.episode-card-title{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.episode-card-logline{font-size:14px;color:var(--text-secondary);line-height:1.4;margin-bottom:12px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.episode-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px}.episode-card-status{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;color:#fff}.episode-card-runtime{font-size:12px;color:var(--text-tertiary)}.episode-card-characters{display:flex;flex-wrap:wrap;gap:4px}.episode-card-character{padding:2px 8px;background:var(--bg-tertiary);border-radius:12px;font-size:11px;color:var(--text-secondary)}.episode-card-character-more{padding:2px 8px;background:var(--primary-color);color:#fff;border-radius:12px;font-size:11px;font-weight:600}.episode-list{background:var(--bg-secondary);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm)}.episode-table{width:100%;border-collapse:collapse}.episode-table thead{background:var(--bg-tertiary)}.episode-table th{padding:12px 16px;text-align:left;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.episode-table td{padding:12px 16px;border-top:1px solid var(--border-color);font-size:14px}.episode-row{cursor:pointer;transition:background .15s}.episode-row:hover{background:var(--bg-tertiary)}.episode-code{font-weight:600;color:var(--primary-color)}.episode-name{font-weight:500}.episode-logline{color:var(--text-secondary)}.panel-overlay{position:fixed;inset:0;background:var(--modal-overlay);z-index:999}.detail-panel{position:fixed;top:0;right:-500px;width:500px;height:100vh;background:var(--bg-secondary);box-shadow:-4px 0 12px #0003;z-index:1000;display:flex;flex-direction:column;transition:right .3s ease}.detail-panel-open{right:0}.detail-panel-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start}.detail-panel-subtitle{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.detail-panel-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.detail-panel-close{background:none;border:none;font-size:24px;color:var(--text-tertiary);cursor:pointer;padding:0;width:32px;height:32px;border-radius:4px;transition:all .2s}.detail-panel-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.detail-panel-content{flex:1;overflow-y:auto;padding:20px}.detail-panel-actions{padding:20px;border-top:1px solid var(--border-color);display:flex;gap:12px}.detail-section{margin-bottom:20px}.detail-section-title{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.detail-section p{color:var(--text-primary);line-height:1.6}.detail-text-preserve{white-space:pre-wrap;word-wrap:break-word}.story-thread{margin-bottom:12px;line-height:1.6}.story-thread strong{color:var(--text-secondary)}.character-chips{display:flex;flex-wrap:wrap;gap:8px}.character-chip{padding:6px 12px;background:var(--bg-tertiary);border-radius:16px;font-size:13px;color:var(--text-primary);font-weight:500}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-item{font-size:14px;line-height:1.6}.detail-item strong{color:var(--text-secondary)}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:4px 10px;background:var(--primary-color);color:#fff;border-radius:12px;font-size:12px;font-weight:500}.arc-list-container{margin-top:20px}.arc-list-header{margin-bottom:16px}.arc-list-count{font-size:14px;font-weight:600;color:var(--text-secondary)}.arc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.arc-list-loading{padding:40px;text-align:center;color:var(--text-secondary)}.arc-card{background:var(--bg-secondary);border-radius:8px;padding:20px;box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s}.arc-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.arc-card:focus{outline:2px solid var(--primary-color);outline-offset:2px}.arc-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.arc-card-character{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.arc-card-type{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px}.arc-card-content{margin-bottom:12px}.arc-state,.arc-conflict{font-size:14px;line-height:1.5;margin-bottom:8px;color:var(--text-primary)}.arc-state strong,.arc-conflict strong{color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.arc-card-theme{font-size:13px;color:var(--text-tertiary);font-style:italic;padding-top:12px;border-top:1px solid var(--border-color)}.fab{position:fixed;bottom:30px;right:30px;width:60px;height:60px;border-radius:50%;font-size:24px;box-shadow:0 4px 12px #0003;z-index:100}.fab:hover{transform:scale(1.05)}.intensity-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;display:inline-block}.breadcrumbs{margin-bottom:16px}.breadcrumbs-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.breadcrumb-item{display:flex;align-items:center;gap:8px}.breadcrumb-link{color:var(--primary-color);text-decoration:none;font-size:14px}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-text{font-size:14px;color:var(--text-secondary)}.breadcrumb-text.current{color:var(--text-primary);font-weight:600}.breadcrumb-separator{color:var(--text-tertiary);font-size:12px}@media(max-width:768px){.tab-navigation-desktop{display:none}.tab-navigation-mobile{display:block}.episode-grid,.arc-list{grid-template-columns:1fr}.detail-panel{width:100%;right:-100%}.fab{bottom:20px;right:20px;width:56px;height:56px;font-size:20px}.season-navigator{flex-direction:column;align-items:flex-start}.season-meta{margin-left:0}.detail-grid{grid-template-columns:1fr}}.image-upload-zone.aspect-portrait{aspect-ratio:9 / 16;max-width:300px;margin:0 auto}.image-upload-zone.aspect-landscape{aspect-ratio:16 / 9;max-width:600px;margin:0 auto}.image-preview .preview-portrait{object-fit:cover;aspect-ratio:9 / 16}.image-preview .preview-landscape{object-fit:cover;aspect-ratio:16 / 9}.aspect-hint{font-size:11px;color:var(--primary-color);font-weight:600;margin-top:5px}.crop-modal{max-width:90vw;max-height:90vh;width:auto;display:flex;flex-direction:column}.crop-modal-body{flex:1;overflow:auto;padding:20px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary)}.crop-modal .ReactCrop{max-width:100%;max-height:70vh}.crop-modal .ReactCrop__crop-selection{border:2px solid var(--primary-color);box-shadow:0 0 0 9999em #00000080}.crop-modal .ReactCrop__drag-handle{width:12px;height:12px;background-color:var(--primary-color);border:2px solid white}@media(max-width:768px){.image-upload-zone.aspect-portrait{max-width:200px}.image-upload-zone.aspect-landscape{max-width:100%}.crop-modal{max-width:95vw}.crop-modal-body{padding:10px}}:root[data-theme=light] ::-webkit-scrollbar{width:12px;height:12px}:root[data-theme=light] ::-webkit-scrollbar-track{background:#f1f1f1;border-radius:6px}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#888;border-radius:6px}:root[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#555}:root[data-theme=dark] ::-webkit-scrollbar{width:12px;height:12px}:root[data-theme=dark] ::-webkit-scrollbar-track{background:#2d2d2d;border-radius:6px}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#6a6a6a;border-radius:6px}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#888}:root[data-theme=light] *{scrollbar-width:thin;scrollbar-color:#888 #f1f1f1}:root[data-theme=dark] *{scrollbar-width:thin;scrollbar-color:#6a6a6a #2d2d2d}.ai-field-wrapper{position:relative;display:block}.ai-field-wrapper--active .ai-control-buttons{opacity:1;pointer-events:auto}.ai-field-input{width:100%}.ai-control-buttons{position:absolute;bottom:.5rem;right:.5rem;display:flex;gap:.35rem;opacity:0;pointer-events:none;transition:opacity .2s ease}.ai-undo-group{display:flex;gap:.25rem;align-items:center}.btn-icon{padding:.2rem .35rem;min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;transition:background .2s ease,border-color .2s ease;font-size:.9rem;line-height:1}.btn-icon:hover{background:var(--bg-secondary);border-color:var(--primary-color)}.btn-icon:disabled{opacity:1;cursor:default;color:var(--text-tertiary);border-color:var(--border-color)}.btn-ai{font-size:.78rem;padding:.25rem .5rem;border-radius:999px;background:#1d4ed8;color:#fff;border:none;cursor:pointer}.btn-ai:disabled{opacity:.6;cursor:not-allowed}.ai-status{margin-top:.4rem;font-size:.85rem;color:#1d4ed8}.ai-error{margin-top:.4rem;padding:.5rem .75rem;background:#fee2e2;border:1px solid #f87171;border-radius:4px;font-size:.85rem;position:relative}.ai-error .error-close{background:none;border:none;font-size:1rem;position:absolute;top:.2rem;right:.3rem;cursor:pointer}.ai-hint{margin-top:.25rem;font-size:.8rem;color:#6b7280}.ai-options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.ai-option-card{border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.ai-option-header{display:flex;align-items:center;gap:.5rem}.option-rank{font-weight:600;color:#1d4ed8}.ai-option-text{white-space:pre-wrap;font-size:.9rem;color:#111827}.ai-option-note{font-size:.8rem;color:#6b7280}:root[data-theme=dark] .ai-option-card{background-color:#1f2937;border-color:#374151;box-shadow:0 6px 18px #00000059}:root[data-theme=dark] .ai-option-card h4,:root[data-theme=dark] .ai-option-card p,:root[data-theme=dark] .ai-option-text{color:#f3f4f6}:root[data-theme=dark] .ai-option-note{color:#d1d5db}:root[data-theme=dark] .option-rank{color:#93c5fd}.metadata-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.log-block{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;padding:1rem;overflow-x:auto;white-space:pre-wrap;font-family:Roboto Mono,Consolas,monospace;font-size:.9rem}:root[data-theme=dark] .log-block{background-color:#111827;border-color:#1f2937}.ai-status-indicator{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:999px;background-color:#111827d9;color:#f9fafb;box-shadow:0 10px 25px #0006;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;transform:translateY(10px);z-index:1000}:root[data-theme=light] .ai-status-indicator{background-color:#fffffff2;color:#111827;box-shadow:0 10px 25px #0f172a33}.ai-status-indicator.show{opacity:1;pointer-events:auto;transform:translateY(0)}.ai-status-spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#60a5fa;animation:spin 1s linear infinite}:root[data-theme=light] .ai-status-spinner{border:3px solid rgba(15,23,42,.2);border-top-color:#2563eb}.ai-status-text{display:flex;flex-direction:column;font-size:.9rem}.ai-status-text strong{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.ai-status-history{margin-left:1rem;font-size:.75rem;max-width:260px;opacity:.8}.ai-status-history p{margin:0;line-height:1.3}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.review-rating{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.rating-badge{padding:.35rem .8rem;border-radius:999px;background:#10b981;color:#fff;font-weight:600}.creativity-score{font-weight:600;color:#1f2937}.review-section{margin-bottom:1rem}.review-section ul{margin:.5rem 0 0;padding-left:1.2rem}.entity-form{position:relative}.editor-close-btn{position:sticky;top:1rem;float:right;margin-top:-3rem;margin-right:-1rem;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;cursor:pointer;z-index:100;box-shadow:0 2px 4px #0000001a;transition:all .2s ease}.editor-close-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:scale(1.1)}
