*{margin:0;padding:0;box-sizing:border-box}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:#f5f5f5;color:#333}.container{max-width:1200px;margin:0 auto;padding:2rem}.header{text-align:center;margin-bottom:3rem}.header-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;flex-wrap:nowrap;gap:.5rem}.back-button{background:transparent;border:1px solid #ddd;border-radius:6px;padding:.5rem 1rem;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:.5rem;color:#555;transition:background .2s}.back-button:hover{background:#f5f5f5}.header-title{margin:0;position:absolute;left:50%;transform:translate(-50%);font-size:2.5rem;color:#2c3e50}.header-spacer{width:140px}.header-project{color:#7f8c8d;font-size:1.1rem;text-align:center}.header h1{font-size:2.5rem;margin-bottom:.5rem;color:#2c3e50}.header p{color:#7f8c8d;font-size:1.1rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.section{background:white;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.section h2{margin-bottom:1rem;color:#2c3e50;font-size:1.5rem}.generation-form{margin-bottom:2rem}.prompt-input{width:100%;min-height:100px;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;resize:vertical;margin-bottom:1rem}.btn{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}.btn:hover{background:#2980b9}.btn:disabled{background:#bdc3c7;cursor:not-allowed}.btn-success{background:#27ae60}.btn-success:hover{background:#229954}.btn-small{padding:.5rem 1rem;font-size:.875rem}.job-list{display:flex;flex-direction:column;gap:1rem}.job-item{border:1px solid #e1e1e1;border-radius:6px;padding:1rem;background:#f8f9fa}.job-header{display:flex;justify-content:between;align-items:center;margin-bottom:.5rem}.job-status{padding:.25rem .5rem;border-radius:4px;font-size:.875rem;font-weight:500}.status-queued{background:#f39c12;color:#fff}.status-running{background:#3498db;color:#fff}.status-done{background:#27ae60;color:#fff}.status-error{background:#e74c3c;color:#fff}.job-prompt{font-style:italic;color:#555;margin-bottom:1rem}.job-actions{display:flex;gap:.5rem;align-items:center}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;padding:0}.asset-item{border-radius:16px;overflow:hidden;background:white;box-shadow:0 2px 12px #00000014;transition:all .3s ease;cursor:pointer;position:relative}.asset-item:hover{transform:translateY(-4px);box-shadow:0 8px 32px #00000029}.asset-video-container{position:relative;aspect-ratio:9/16;overflow:hidden;border-radius:16px 16px 0 0;cursor:pointer}.asset-video-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(transparent 60%,rgba(0,0,0,.3));pointer-events:none;z-index:1}.asset-duration{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.7);color:#fff;padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:500;z-index:2}.asset-play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);opacity:0;transition:opacity .3s ease;z-index:3}.asset-video-container:hover .asset-play-overlay{opacity:1}.play-button{width:48px;height:48px;background:rgba(255,255,255,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#333;font-weight:700;box-shadow:0 2px 8px #0000004d;transform:scale(1);transition:transform .2s ease}.asset-video-container:hover .play-button{transform:scale(1.1)}.asset-info{padding:12px}.asset-title{font-size:.85rem;font-weight:600;color:#1a1a1a;margin-bottom:6px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.asset-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.asset-size{font-size:.7rem;color:#888;background:#f5f5f5;padding:2px 6px;border-radius:8px}.asset-date{font-size:.7rem;color:#666}.asset-actions{display:flex;gap:6px;flex-wrap:wrap}.btn-small-xs{padding:4px 8px;font-size:.7rem;border-radius:6px;border:1px solid #ddd;background:white;color:#666;cursor:pointer;transition:all .2s ease}.btn-small-xs:hover{background:#f8f9fa;border-color:#ccc;color:#333}.btn-primary-xs{background:#ff2e4d;color:#fff;border-color:#ff2e4d}.btn-primary-xs:hover{background:#e02440;border-color:#e02440}.metadata-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.metadata-content{background:white;border-radius:16px;max-width:600px;max-height:80vh;overflow-y:auto;padding:24px;position:relative}.metadata-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #eee}.metadata-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.metadata-close:hover{background:#f0f0f0}.metadata-section{margin-bottom:20px}.metadata-section h4{font-size:.9rem;font-weight:600;color:#333;margin-bottom:8px}.metadata-json{background:#f8f9fa;border-radius:8px;padding:16px;font-family:Monaco,Menlo,monospace;font-size:.8rem;overflow-x:auto;border:1px solid #e9ecef}.asset-video{width:100%;height:200px;object-fit:cover}.asset-info{padding:1rem}.asset-filename{font-weight:500;margin-bottom:.5rem}.asset-details{font-size:.875rem;color:#666}.loading{text-align:center;padding:2rem;color:#666}.error{color:#e74c3c;background:#ffeaea;padding:1rem;border-radius:4px;margin-bottom:1rem}.project-selector{max-width:600px;margin:0 auto}.project-form{margin-bottom:2rem}.recent-projects-grid{display:grid;gap:.75rem}.recent-project-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left}.recent-project-item:hover{background:#e9ecef;border-color:#3498db;transform:translate(4px)}.recent-project-name{font-weight:500;color:#2c3e50}.recent-project-arrow{color:#3498db;font-weight:700;font-size:1.2rem}.job-list-improved{display:flex;flex-direction:column;gap:.75rem}.job-row{border:1px solid #e1e1e1;border-radius:8px;background:white;overflow:hidden;transition:box-shadow .2s ease}.job-row:hover{box-shadow:0 2px 8px #0000001a}.job-row-main{display:grid;grid-template-columns:140px 1fr auto;gap:1rem;padding:1rem;align-items:start}.job-status-section{display:flex;flex-direction:column;gap:.25rem}.job-time{font-size:.75rem;color:#666}.job-content-section{min-width:0;flex:1}.job-prompt-row{display:flex;align-items:start;gap:.5rem;margin-bottom:.5rem}.job-prompt-text{font-style:italic;color:#555;line-height:1.4;flex:1}.btn-expand{background:none;border:none;color:#3498db;cursor:pointer;padding:0 .25rem;font-size:.8rem;line-height:1;flex-shrink:0}.btn-expand:hover{color:#2980b9}.job-progress{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.progress-bar-small{flex:1;height:6px;background:#e1e1e1;border-radius:3px;overflow:hidden;border:1px solid #ddd}.progress-fill{height:100%;background:#3498db;transition:width .3s ease;min-width:2px}.progress-text{font-size:.75rem;color:#666;font-weight:500;min-width:35px}.job-error-section{margin-top:.5rem}.btn-error-details{background:#fff5f5;border:1px solid #fed7d7;color:#c53030;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s ease}.btn-error-details:hover{background:#fed7d7}.error-details{background:#fff5f5;border:1px solid #fed7d7;border-radius:4px;padding:.75rem;margin-top:.5rem;font-family:monospace;font-size:.75rem;color:#c53030;white-space:pre-line}.job-actions-section{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.btn-view,.btn-save,.btn-check,.btn-retry{background:white;border:1px solid #ddd;padding:.375rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-view:hover,.btn-check:hover{background:#f8f9fa;border-color:#3498db;color:#3498db}.btn-save{background:#27ae60;color:#fff;border-color:#27ae60}.btn-save:hover{background:#229954;border-color:#229954}.btn-retry{background:#f39c12;color:#fff;border-color:#f39c12}.btn-retry:hover{background:#e67e22;border-color:#e67e22}.btn-retry:disabled{background:#bdc3c7;border-color:#bdc3c7;cursor:not-allowed;opacity:.6}.saved-indicator{color:#27ae60;font-size:.8rem;font-weight:500;padding:.375rem .75rem}.saving-indicator{color:#f39c12;font-size:.8rem;font-weight:500;padding:.375rem .75rem;animation:pulse 1.5s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.7}to{opacity:1}}.btn-clear-jobs{background:#fff;border:1px solid #dc3545;color:#dc3545;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.btn-clear-jobs:hover{background:#dc3545;color:#fff}.video-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.video-modal-content{background:white;border-radius:16px;max-width:90vw;max-height:90vh;overflow:auto;position:relative;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column}.video-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee;background:white;flex-shrink:0}.video-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.video-modal-close:hover{background:#f0f0f0}.video-modal-player{background:black;display:flex;align-items:center;justify-content:center;flex:1 1 auto;min-height:0;overflow:auto}.video-modal-info{padding:12px 20px;background:white;border-top:1px solid #eee;flex-shrink:0}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}.container{padding:1rem}.header{margin-bottom:1.5rem}.header-nav{gap:.5rem}.header-title{position:static;transform:none;font-size:1.5rem;order:-1}.back-button{font-size:.85rem;padding:.4rem .8rem}.header-spacer{display:none}.header-project{font-size:.9rem}.asset-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.asset-item{border-radius:12px}.asset-video-container{aspect-ratio:9/16;border-radius:12px 12px 0 0}.asset-info{padding:8px}.asset-title{font-size:.75rem;margin-bottom:4px;-webkit-line-clamp:2}.asset-size{font-size:.65rem;padding:2px 4px}.asset-date{font-size:.65rem}.asset-actions{gap:4px}.btn-small-xs{padding:3px 6px;font-size:.65rem;border-radius:4px}.job-row-main{grid-template-columns:1fr;gap:.75rem}.job-actions-section{flex-direction:row;justify-content:flex-start;align-items:center}.video-modal-content{max-width:95vw;max-height:95vh}.video-modal-player video,.video-modal-player img{max-height:60vh}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;background:white;border-radius:8px;padding:16px;box-shadow:0 4px 12px #00000026;animation:toast-slide-in .3s ease-out;pointer-events:all;cursor:pointer;border-left:4px solid;min-width:300px;max-width:400px}.toast-exit{animation:toast-slide-out .3s ease-in forwards}.toast-icon{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.toast-message{flex:1;font-size:14px;line-height:1.4;color:#333}.toast-close{flex-shrink:0;background:none;border:none;color:#999;font-size:24px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s}.toast-close:hover{color:#333}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{background:#d1fae5;color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{background:#fee2e2;color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{background:#fef3c7;color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{background:#dbeafe;color:#3b82f6}@keyframes toast-slide-in{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto;max-width:none}}
