@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Courier+Prime:wght@400;700&family=Crimson+Pro:wght@300;400;500;600&display=swap";*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;width:100%}#root{width:100%;min-height:100vh}.projects-page{width:100%}.projects-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-xl)}.loading-reel{display:flex;gap:var(--space-lg)}.reel-circle{width:48px;height:48px;border:3px solid var(--noir-border);border-radius:50%;position:relative;animation:reelSpin 2s linear infinite}.reel-circle:before{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;background:var(--gold-primary);border-radius:50%;transform:translate(-50%,-50%)}.reel-circle:nth-child(2){animation-delay:-.5s}@keyframes reelSpin{to{transform:rotate(360deg)}}.projects-loading p{color:var(--text-muted);font-style:italic;font-size:1.1rem}.projects-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--noir-border)}.header-content{display:flex;flex-direction:column;gap:var(--space-sm)}.header-title{display:flex;align-items:baseline;gap:var(--space-md)}.title-accent{font-family:var(--font-body);font-size:1rem;font-weight:400;color:var(--gold-primary);text-transform:uppercase;letter-spacing:.2em}.header-title h2{font-size:2.5rem;font-weight:600;letter-spacing:-.02em}.header-subtitle{color:var(--text-muted);font-size:1rem;font-style:italic}.projects-header .btn-icon{font-size:1.25rem;font-weight:300}.error-banner{display:flex;align-items:center;justify-content:space-between;background:#c45c5c1a;border:1px solid var(--danger);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl);border-radius:2px}.error-banner p{color:var(--danger);margin:0}.empty-library{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;gap:var(--space-lg)}.empty-icon{width:120px;height:120px;display:flex;align-items:center;justify-content:center;border:2px solid var(--noir-border);border-radius:50%;color:var(--noir-muted);margin-bottom:var(--space-lg)}.empty-icon svg{width:56px;height:56px}.empty-library h3{font-size:1.5rem;color:var(--text-primary)}.empty-library p{color:var(--text-muted);font-size:1.1rem;max-width:400px}.projects-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl)}@media(min-width:640px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1400px){.projects-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:1800px){.projects-grid{grid-template-columns:repeat(5,1fr)}}.project-card{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;cursor:pointer;position:relative;overflow:hidden;transition:all var(--transition-normal);animation:cardFadeIn var(--transition-slow) backwards}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-primary),var(--gold-dim));transform:scaleX(0);transform-origin:left;transition:transform var(--transition-normal)}.project-card:hover{border-color:var(--gold-dim);transform:translateY(-4px);box-shadow:0 12px 40px #0006}.project-card:hover:before{transform:scaleX(1)}.card-frame{position:absolute;top:var(--space-md);right:var(--space-md)}.card-number{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.1em}.card-content{padding:var(--space-xl);padding-bottom:var(--space-lg)}.card-title{font-size:1.35rem;font-weight:500;margin-bottom:var(--space-sm);padding-right:var(--space-2xl);line-height:1.3}.card-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.card-genre{display:inline-block;font-family:var(--font-body);font-size:.75rem;font-weight:500;color:var(--gold-primary);text-transform:uppercase;letter-spacing:.15em}.card-language{display:inline-block;font-family:var(--font-body);font-size:.7rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;padding:2px 6px;background:var(--noir-deep);border-radius:2px}.card-logline{color:var(--text-secondary);font-size:.95rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-xl);border-top:1px solid var(--noir-border);background:var(--noir-deep)}.card-date{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);letter-spacing:.05em}.card-delete{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:2px;transition:all var(--transition-fast)}.card-delete svg{width:16px;height:16px}.card-delete:hover{color:var(--danger);background:#c45c5c1a}.projects-page .modal-body{padding:var(--space-xl)}@media(max-width:500px){.form-row{grid-template-columns:1fr}}@media(max-width:768px){.projects-header{flex-direction:column;gap:var(--space-lg);align-items:stretch}.header-title h2{font-size:2rem}}.character-manager{display:grid;grid-template-columns:1fr;gap:var(--space-xl);min-height:600px}@media(min-width:900px){.character-manager{grid-template-columns:320px 1fr}}@media(min-width:1400px){.character-manager{grid-template-columns:380px 1fr}}.characters-panel,.character-detail-panel{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--noir-border);background:var(--noir-deep)}.panel-header h3{font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.character-list{flex:1;overflow-y:auto}.character-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);cursor:pointer;border-bottom:1px solid var(--noir-border);transition:all var(--transition-fast);position:relative}.character-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold-primary);transform:scaleY(0);transition:transform var(--transition-normal)}.character-item:hover,.character-item.selected{background:var(--noir-elevated)}.character-item.selected:before{transform:scaleY(1)}.character-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--gold-dim),var(--gold-primary));border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--noir-black);flex-shrink:0}.character-info{flex:1;min-width:0}.character-name{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--text-primary);margin-bottom:2px}.character-role{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--space-2xl);text-align:center}.empty-panel p{color:var(--text-muted);font-style:italic;max-width:200px}.character-detail{flex:1;overflow-y:auto;padding:var(--space-xl)}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--noir-border)}.detail-title{display:flex;align-items:center;gap:var(--space-lg)}.detail-avatar{width:64px;height:64px;background:linear-gradient(135deg,var(--gold-dim),var(--gold-primary));border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--noir-black)}.detail-name{font-size:1.5rem;font-weight:500;margin-bottom:var(--space-xs)}.detail-occupation{color:var(--text-muted);font-size:.95rem}.detail-actions{display:flex;gap:var(--space-sm)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);margin-bottom:var(--space-xl)}.detail-item{background:var(--noir-deep);padding:var(--space-md);border-radius:2px}.detail-label{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:var(--space-xs)}.detail-value{font-size:.95rem;color:var(--text-primary)}.detail-section{margin-bottom:var(--space-xl)}.detail-section h4{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-primary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--noir-border)}.detail-section p{font-size:.95rem;line-height:1.7;color:var(--text-secondary)}.relationships-section{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--noir-border)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.section-header h4{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-primary);margin:0;padding:0;border:none}.relationship-list{display:flex;flex-direction:column;gap:var(--space-md)}.relationship-card{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-md);background:var(--noir-deep);border-radius:2px;border-left:3px solid var(--gold-dim)}.relationship-info{flex:1}.relationship-name{font-family:var(--font-display);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-xs)}.relationship-type{font-size:.75rem;font-weight:500;color:var(--gold-primary);text-transform:uppercase;letter-spacing:.1em}.relationship-desc{font-size:.85rem;color:var(--text-muted);margin-top:var(--space-sm);line-height:1.5}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:900px){.character-detail-panel{min-height:500px}}.scene-generator{display:grid;grid-template-columns:1fr;gap:var(--space-xl);min-height:600px}@media(min-width:1000px){.scene-generator{grid-template-columns:380px 1fr}}@media(min-width:1400px){.scene-generator{grid-template-columns:420px 1fr}}.setup-panel{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;display:flex;flex-direction:column;overflow:hidden}.setup-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--noir-border);background:var(--noir-deep)}.setup-header svg{width:20px;height:20px;color:var(--gold-primary)}.setup-header h3{font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin:0}.setup-form{flex:1;overflow-y:auto;padding:var(--space-lg)}.setup-form .form-group{margin-bottom:var(--space-lg)}.setup-form label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-primary);margin-bottom:var(--space-sm)}.character-selector{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.character-checkbox{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--noir-deep);border:1px solid var(--noir-border);border-radius:2px;cursor:pointer;transition:all var(--transition-fast)}.character-checkbox:hover{border-color:var(--gold-dim)}.character-checkbox:has(input:checked){background:linear-gradient(135deg,#d4af3726,#d4af370d);border-color:var(--gold-primary)}.character-checkbox input{width:14px;height:14px;accent-color:var(--gold-primary);cursor:pointer}.character-checkbox span{font-size:.9rem;color:var(--text-primary)}.slugline-input{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.position-select{width:100%;padding:var(--space-sm) var(--space-md);font-size:.9rem;background:var(--noir-deep);border:1px solid var(--noir-border);border-radius:2px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.position-select:hover{border-color:var(--gold-dim)}.position-select:focus{outline:none;border-color:var(--gold-primary);box-shadow:0 0 0 2px #d4af3733}.position-select option{background:var(--noir-surface);color:var(--text-primary);padding:var(--space-sm)}.setup-actions{display:flex;gap:var(--space-md);padding:var(--space-lg);border-top:1px solid var(--noir-border);background:var(--noir-deep)}.setup-actions .btn{flex:1}.output-panel{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;display:flex;flex-direction:column;overflow:hidden;position:relative}.output-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--noir-border);background:var(--noir-deep)}.output-title{display:flex;align-items:center;gap:var(--space-md)}.output-title svg{width:20px;height:20px;color:var(--gold-primary)}.output-title h3{font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin:0}.typing-indicator{display:flex;align-items:center;gap:var(--space-sm);font-size:.8rem;color:var(--gold-primary)}.typing-dot{width:6px;height:6px;background:var(--gold-primary);border-radius:50%;animation:typingPulse 1s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typingPulse{0%,to{opacity:.3}50%{opacity:1}}.typewriter-page{flex:1;display:flex;flex-direction:column;background:linear-gradient(to bottom,#f5f3ef,#f8f6f2);margin:var(--space-lg);border-radius:2px;box-shadow:0 4px 20px #0000004d,0 0 1px #00000080,inset 0 1px #ffffff80;position:relative;overflow:hidden}.typewriter-page:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none}.typewriter-page:after{content:"";position:absolute;left:60px;top:0;bottom:0;width:1px;background:#dc64644d}.fountain-content{flex:1;padding:var(--space-2xl);padding-left:80px;overflow-y:auto;font-family:var(--font-mono);font-size:.95rem;line-height:1.7;color:#1a1a1a;white-space:pre-wrap;word-wrap:break-word}.fountain-content pre{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap}.fountain-content.generating:after{content:"|";animation:cursorBlink .8s step-end infinite;color:#1a1a1a;font-weight:300}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.empty-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl);color:#6b6b6b}.empty-page svg{width:48px;height:48px;opacity:.4;margin-bottom:var(--space-lg)}.empty-page p{font-family:var(--font-body);font-style:italic;font-size:1rem;max-width:280px}.feedback-section{padding:var(--space-lg);border-top:1px solid var(--noir-border);background:var(--noir-deep)}.feedback-section .form-group{margin-bottom:var(--space-md)}.feedback-section label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-primary);margin-bottom:var(--space-sm)}.feedback-row{display:flex;gap:var(--space-md)}.feedback-row textarea{flex:1}.feedback-row .btn{align-self:flex-end;white-space:nowrap}.save-hint{text-align:center;padding:var(--space-md) var(--space-lg);font-size:.85rem;color:var(--text-muted);font-style:italic;border-top:1px solid var(--noir-border);background:var(--noir-deep)}.empty-notice{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:#d4af371a;border:1px solid var(--gold-dim);border-radius:2px;color:var(--text-secondary);font-size:.9rem}.empty-notice svg{width:18px;height:18px;color:var(--gold-primary);flex-shrink:0}@media(max-width:1000px){.setup-panel{max-height:400px}.output-panel{min-height:500px}}.screenplay-view{display:grid;grid-template-columns:1fr;gap:var(--space-xl);min-height:600px}@media(min-width:1000px){.screenplay-view{grid-template-columns:320px 1fr}}@media(min-width:1400px){.screenplay-view{grid-template-columns:380px 1fr}}.scenes-panel{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;display:flex;flex-direction:column;overflow:hidden}.scenes-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--noir-border);background:var(--noir-deep)}.scenes-panel .panel-header h3{font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin:0}.scene-list{flex:1;overflow-y:auto}.scene-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--noir-border);transition:all var(--transition-fast);position:relative}.scene-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold-primary);transform:scaleY(0);transition:transform var(--transition-normal)}.scene-item:hover{background:var(--noir-elevated)}.scene-item:hover:before{transform:scaleY(1)}.scene-number{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--gold-primary);min-width:36px;text-align:center;padding:var(--space-xs) var(--space-sm);background:var(--noir-deep);border-radius:2px}.scene-info{flex:1;min-width:0}.scene-slugline{font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.03em}.scene-status{font-size:.7rem;color:var(--text-muted);text-transform:capitalize;margin-top:2px}.scene-status.draft{color:var(--gold-dim)}.scene-status.final{color:var(--success)}.scene-actions{display:flex;gap:var(--space-xs);opacity:0;transition:opacity var(--transition-fast)}.scene-item:hover .scene-actions{opacity:1}.scene-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--noir-deep);border:1px solid var(--noir-border);border-radius:2px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.scene-btn svg{width:14px;height:14px}.scene-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--gold-dim)}.scene-btn:disabled{opacity:.3;cursor:not-allowed}.scene-btn.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.screenplay-panel{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;display:flex;flex-direction:column;overflow:hidden}.screenplay-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--noir-border);background:var(--noir-deep)}.screenplay-panel .panel-header h3{font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin:0}.page-count{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.script-container{flex:1;padding:var(--space-lg);overflow-y:auto;display:flex;justify-content:center}.script-page{width:100%;max-width:650px;min-height:800px;background:linear-gradient(to bottom,#f5f3ef,#f8f6f2);border-radius:2px;box-shadow:0 4px 20px #0000004d,0 0 1px #00000080,inset 0 1px #ffffff80;position:relative;padding:40px 60px 60px 90px}.script-page:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;border-radius:2px}.script-page:after{content:"";position:absolute;left:30px;top:60px;width:12px;height:12px;border-radius:50%;background:var(--noir-surface);box-shadow:0 300px 0 var(--noir-surface),0 600px 0 var(--noir-surface)}.script-content{font-family:var(--font-mono);font-size:12pt;line-height:1.5;color:#1a1a1a;white-space:pre-wrap;word-wrap:break-word}.script-content pre{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap}.empty-script{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl);background:var(--noir-deep)}.empty-script svg{width:64px;height:64px;color:var(--text-muted);opacity:.3;margin-bottom:var(--space-lg)}.empty-script p{color:var(--text-muted);font-style:italic;font-size:1rem;max-width:300px}.empty-scenes{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl)}.empty-scenes svg{width:48px;height:48px;color:var(--text-muted);opacity:.3;margin-bottom:var(--space-md)}.empty-scenes p{color:var(--text-muted);font-style:italic;font-size:.9rem;max-width:200px}.edit-modal-content{display:flex;flex-direction:column;gap:var(--space-md)}.edit-textarea{font-family:var(--font-mono);min-height:400px;line-height:1.6;resize:vertical}.modal-wide{max-width:800px;width:90%}@media(max-width:1000px){.scenes-panel{max-height:300px}.script-page{padding:30px 40px 40px 60px}.script-page:after{display:none}}.project-view{display:flex;flex-direction:column;min-height:calc(100vh - 120px)}.project-loading,.project-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-xl);text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid var(--noir-border);border-top-color:var(--gold-primary);border-radius:50%;animation:spin 1s linear infinite}.project-loading p,.project-error p{color:var(--text-muted);font-style:italic}.project-error h2{color:var(--text-primary)}.project-header{display:flex;align-items:center;gap:var(--space-xl);padding-bottom:var(--space-xl);margin-bottom:var(--space-lg);border-bottom:1px solid var(--noir-border)}.back-button{display:flex;align-items:center;gap:var(--space-sm);background:transparent;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:.9rem;cursor:pointer;padding:var(--space-sm) var(--space-md);margin-left:calc(var(--space-md) * -1);border-radius:2px;transition:all var(--transition-fast)}.back-button svg{width:18px;height:18px}.back-button:hover{color:var(--gold-primary);background:var(--noir-elevated)}.project-title-section{flex:1;display:flex;align-items:center;gap:var(--space-lg)}.project-title-section h1{font-size:1.75rem;font-weight:500;letter-spacing:-.01em}.project-genre-badge{font-family:var(--font-body);font-size:.7rem;font-weight:500;color:var(--gold-primary);text-transform:uppercase;letter-spacing:.15em;padding:var(--space-xs) var(--space-md);border:1px solid var(--gold-dim);border-radius:2px}.project-meta{display:flex;align-items:center;gap:var(--space-lg);color:var(--text-muted);font-size:.9rem}.meta-item strong{color:var(--text-primary);font-weight:500;margin-right:var(--space-xs)}.meta-divider{width:1px;height:20px;background:var(--noir-border)}.project-nav{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl)}.nav-tab{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;color:var(--text-muted);font-family:var(--font-body);font-size:.85rem;font-weight:500;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;transition:all var(--transition-normal);position:relative;overflow:hidden}.nav-tab svg{width:18px;height:18px;opacity:.6;transition:opacity var(--transition-fast)}.nav-tab:before{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold-primary);transform:scaleX(0);transition:transform var(--transition-normal)}.nav-tab:hover{color:var(--text-secondary);background:var(--noir-elevated)}.nav-tab:hover svg{opacity:.8}.nav-tab.active{color:var(--gold-primary);border-color:var(--gold-dim);background:var(--noir-elevated)}.nav-tab.active svg{opacity:1}.nav-tab.active:before{transform:scaleX(1)}.project-content{flex:1}@media(max-width:900px){.project-header{flex-wrap:wrap}.project-title-section{order:-1;width:100%;flex:none;margin-bottom:var(--space-md)}.back-button{order:0}.project-meta{margin-left:auto}}@media(max-width:600px){.project-nav{flex-direction:column}.nav-tab{justify-content:center}}.settings-page{max-width:900px;margin:0 auto}.settings-header{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--noir-border)}.back-link{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted);text-decoration:none;font-size:.9rem;padding:var(--space-sm) var(--space-md);margin-left:calc(var(--space-md) * -1);border-radius:2px;transition:all var(--transition-fast)}.back-link svg{width:18px;height:18px}.back-link:hover{color:var(--gold-primary);background:var(--noir-elevated)}.settings-header h1{font-size:2rem;font-weight:500}.settings-card{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;overflow:hidden}.card-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--noir-deep);border-bottom:1px solid var(--noir-border)}.card-header svg{width:22px;height:22px;color:var(--gold-primary)}.card-header h2{font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.card-body{padding:var(--space-xl)}.card-body .form-group{margin-bottom:var(--space-lg)}.card-body .form-group:last-child{margin-bottom:0}.card-body label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-primary);margin-bottom:var(--space-sm)}.card-body input{font-family:var(--font-mono);letter-spacing:.02em}.field-hint{font-size:.8rem;color:var(--text-muted);margin-top:var(--space-xs);font-style:italic}.card-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);background:var(--noir-deep);border-top:1px solid var(--noir-border)}.status-indicator{display:flex;align-items:center;gap:var(--space-sm);font-size:.85rem}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-indicator.connected .status-dot{background:var(--success)}.status-indicator.error .status-dot{background:var(--danger)}.status-indicator.connected{color:var(--success)}.status-indicator.error{color:var(--danger)}.info-banner{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:#d4af3714;border:1px solid var(--gold-dim);border-radius:2px;margin-top:var(--space-xl)}.info-banner svg{width:20px;height:20px;color:var(--gold-primary);flex-shrink:0;margin-top:2px}.info-banner p{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin:0}.message{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:2px;margin-bottom:var(--space-lg);font-size:.9rem}.message.success{background:#4caf501a;border:1px solid var(--success);color:var(--success)}.message.error{background:#c45c5c1a;border:1px solid var(--danger);color:var(--danger)}.message svg{width:18px;height:18px;flex-shrink:0}:root{--noir-black: #0a0a0a;--noir-deep: #111111;--noir-surface: #1a1a1a;--noir-elevated: #242424;--noir-border: #2a2a2a;--noir-muted: #3a3a3a;--gold-primary: #d4af37;--gold-light: #e8c547;--gold-dim: #a68a2a;--gold-glow: rgba(212, 175, 55, .15);--text-primary: #f5f5f0;--text-secondary: #a0a0a0;--text-muted: #666666;--success: #4a9f6e;--danger: #c45c5c;--warning: #d4a03a;--font-display: "Playfair Display", Georgia, serif;--font-body: "Crimson Pro", Georgia, serif;--font-mono: "Courier Prime", "Courier New", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--content-max-width: 2000px;--sidebar-width: 350px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-weight:400;background:var(--noir-black);color:var(--text-primary);line-height:1.6;min-height:100vh}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.03;z-index:10000;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,var(--noir-deep) 0%,var(--noir-black) 100%);border-bottom:1px solid var(--noir-border);padding:var(--space-lg) var(--space-xl);position:relative;overflow:hidden}@media(min-width:1200px){.app-header{padding:var(--space-lg) var(--space-3xl)}}.app-header:before{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-primary),transparent);opacity:.5}.logo-link{text-decoration:none}.app-header h1{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:.05em;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-md);transition:color var(--transition-fast)}@media(min-width:768px){.app-header h1{font-size:1.75rem}}.logo-link:hover h1{color:var(--gold-primary)}.app-header h1:before{content:"";width:8px;height:8px;background:var(--gold-primary);transform:rotate(45deg)}.header-nav{display:flex;align-items:center;gap:var(--space-md)}.header-link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);color:var(--text-muted);text-decoration:none;font-size:.85rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;border-radius:2px;transition:all var(--transition-fast)}.header-link svg{width:18px;height:18px}.header-link span{display:none}@media(min-width:768px){.header-link span{display:inline}}.header-link:hover{color:var(--gold-primary);background:var(--noir-elevated)}.app-main{flex:1;width:100%;padding:var(--space-lg)}@media(min-width:768px){.app-main{padding:var(--space-xl) var(--space-2xl)}}@media(min-width:1200px){.app-main{padding:var(--space-xl) var(--space-3xl)}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:1.3;color:var(--text-primary)}h2{font-size:1.75rem;letter-spacing:.02em}h3{font-size:1.25rem;letter-spacing:.01em}h4{font-size:1rem}p{color:var(--text-secondary)}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;transition:all var(--transition-normal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:.9rem;font-weight:500;letter-spacing:.02em;border-radius:2px;text-transform:uppercase}.btn-primary{background:linear-gradient(135deg,var(--gold-primary) 0%,var(--gold-dim) 100%);color:var(--noir-black);box-shadow:0 2px 8px #d4af374d}.btn-primary:hover{background:linear-gradient(135deg,var(--gold-light) 0%,var(--gold-primary) 100%);box-shadow:0 4px 16px #d4af3766;transform:translateY(-1px)}.btn-secondary{background:var(--noir-elevated);color:var(--text-primary);border:1px solid var(--noir-border)}.btn-secondary:hover{background:var(--noir-muted);border-color:var(--gold-dim)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#d46a6a}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#5ab87d}.btn-ghost{background:transparent;color:var(--text-secondary);padding:var(--space-xs) var(--space-sm)}.btn-ghost:hover{color:var(--gold-primary)}.btn-small{padding:var(--space-xs) var(--space-md);font-size:.75rem}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.form-group{margin-bottom:var(--space-lg)}.form-group label{display:block;font-family:var(--font-body);font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.1em}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--space-md);background:var(--noir-deep);border:1px solid var(--noir-border);border-radius:2px;color:var(--text-primary);font-family:var(--font-body);font-size:1rem;transition:all var(--transition-normal)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--gold-primary);box-shadow:0 0 0 2px var(--gold-glow)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted);font-style:italic}.form-group textarea{resize:vertical;min-height:100px;line-height:1.6}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a0a0a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;padding-right:var(--space-2xl)}.card{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold-primary),transparent);opacity:0;transition:opacity var(--transition-normal)}.card:hover:before{opacity:1}.modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md);animation:fadeIn var(--transition-normal) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--noir-surface);border:1px solid var(--noir-border);border-radius:2px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp var(--transition-slow) forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-primary),var(--gold-dim))}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--noir-border)}.modal-title{font-family:var(--font-display);font-size:1.25rem;font-weight:500}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);font-size:1.5rem;line-height:1;border-radius:2px;transition:all var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background:var(--noir-elevated)}.modal-body{padding:var(--space-xl)}.modal-actions{display:flex;gap:var(--space-md);justify-content:flex-end;padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--noir-border);background:var(--noir-deep)}.modal-wide{max-width:800px}.loading{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--text-muted);font-style:italic}.loading:before{content:"";width:20px;height:20px;border:2px solid var(--noir-border);border-top-color:var(--gold-primary);border-radius:50%;margin-right:var(--space-md);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--space-3xl);color:var(--text-muted)}.empty-state p{font-style:italic;font-size:1.1rem}.error{background:#c45c5c1a;border:1px solid var(--danger);color:var(--danger);padding:var(--space-md) var(--space-lg);border-radius:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--noir-deep)}::-webkit-scrollbar-thumb{background:var(--noir-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--gold-primary);color:var(--noir-black)}
