.recommendations-container{max-width:1000px;margin:0 auto}.analysis-summary{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.analysis-summary h3{margin-bottom:1rem;color:#1f2937}.analysis-content{margin-bottom:1rem;line-height:1.6}.suggested-approach{margin:1rem 0;padding:1rem;background:#fff;border-radius:8px}.approach-badge{padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:600}.approach-use-existing{background:#d1fae5;color:#065f46}.approach-extend-existing{background:#dbeafe;color:#1e40af}.approach-create-new{background:#fef3c7;color:#92400e}.rationale{margin:1rem 0;padding:1rem;background:#fff;border-radius:8px}.considerations{margin-top:1rem;padding:1rem;background:#fff;border-radius:8px}.considerations ul{margin-top:.5rem;padding-left:1.5rem}.considerations li{margin-bottom:.5rem}.recommendations-list{margin-bottom:2rem}.recommendations-list h3{margin-bottom:.5rem;color:#1f2937}.recommendation-card{border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:1rem;cursor:pointer;transition:all .3s}.recommendation-card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea1a}.recommendation-card.selected{border-color:#667eea;background:#f5f7ff;box-shadow:0 4px 12px #667eea33}.recommendation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.recommendation-header h4{margin:0 0 .25rem;color:#1f2937;font-size:1.25rem}.ig-name{color:#6b7280;font-size:.875rem;margin:0}.relevance-score{background:#10b981;color:#fff;padding:.5rem 1rem;border-radius:8px;font-weight:700;font-size:1.25rem}.recommendation-body{margin-top:1rem}.reasoning{color:#374151;line-height:1.6;margin-bottom:1rem}.recommendation-details{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.detail-item{margin-bottom:.75rem;color:#4b5563;font-size:.875rem}.detail-item strong{color:#1f2937}.detail-item a{color:#667eea;text-decoration:none;word-break:break-all}.detail-item a:hover{text-decoration:underline}.element-list{margin:.5rem 0 0 1.5rem;padding:0}.element-list li{margin-bottom:.25rem;font-family:Courier New,monospace;font-size:.8125rem}.custom-requirements{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.custom-requirements h3{margin-bottom:.5rem;color:#1f2937}.profile-generator-container{max-width:1000px;margin:0 auto}.specification-section{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.specification-section h3{margin-bottom:1rem;color:#1f2937}.specification-content{background:#fff;padding:1.5rem;border-radius:8px;max-height:500px;overflow-y:auto;line-height:1.6}.specification-content h1,.specification-content h2,.specification-content h3,.specification-content h4{margin-top:1.5rem;margin-bottom:.75rem;color:#1f2937}.specification-content h1{font-size:1.75rem}.specification-content h2{font-size:1.5rem}.specification-content h3{font-size:1.25rem}.specification-content ul,.specification-content ol{margin-left:1.5rem;margin-bottom:1rem}.specification-content li{margin-bottom:.5rem}.specification-content code{background:#f3f4f6;padding:.125rem .375rem;border-radius:4px;font-family:Courier New,monospace;font-size:.875rem}.specification-content pre{background:#1f2937;color:#f9fafb;padding:1rem;border-radius:8px;overflow-x:auto;margin:1rem 0}.generate-section{text-align:center;padding:2rem;background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;margin-bottom:2rem}.generated-profile-section{background:#f9fafb;border:2px solid #10b981;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.profile-header h3{margin:0;color:#1f2937}.profile-actions{display:flex;gap:.5rem;flex-wrap:wrap}.profile-actions .btn{padding:.5rem 1rem;font-size:.875rem}.profile-summary{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.summary-item{color:#4b5563;font-size:.875rem}.summary-item strong{color:#1f2937;margin-right:.5rem}.status-badge{background:#fef3c7;color:#92400e;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.json-viewer{background:#1f2937;border-radius:8px;padding:1rem;max-height:500px;overflow:auto}.json-viewer pre{margin:0;color:#f9fafb;font-family:Courier New,monospace;font-size:.8125rem;line-height:1.5}.json-viewer code{color:#f9fafb}.simplifier-upload-container{max-width:800px;margin:0 auto}.not-configured{text-align:center}.info-box{background:#eff6ff;border:2px solid #3b82f6;border-radius:12px;padding:2rem;margin-bottom:2rem;text-align:left}.info-box h3{color:#1e40af;margin-bottom:1rem}.info-box p{color:#1e40af;line-height:1.6;margin-bottom:1rem}.info-box ol{margin:1rem 0 1rem 1.5rem;color:#1e40af}.info-box li{margin-bottom:.5rem}.info-box code{background:#dbeafe;padding:.125rem .375rem;border-radius:4px;font-family:Courier New,monospace;font-size:.875rem}.info-box a{color:#2563eb;text-decoration:none;font-weight:600}.info-box a:hover{text-decoration:underline}.upload-success{text-align:center}.success-box{background:#f0fdf4;border:2px solid #10b981;border-radius:12px;padding:2rem;margin-bottom:2rem;text-align:center}.success-icon{width:60px;height:60px;background:#10b981;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;margin:0 auto 1rem}.success-box h3,.success-box p{color:#065f46;margin-bottom:1rem}.profile-link{display:inline-block;color:#059669;font-weight:600;text-decoration:none;margin-top:.5rem}.profile-link:hover{text-decoration:underline}.next-steps{background:#fff;border-radius:8px;padding:1.5rem;margin-top:1.5rem;text-align:left}.next-steps h4{color:#065f46;margin-bottom:1rem}.next-steps ul{margin-left:1.5rem;color:#065f46}.next-steps li{margin-bottom:.5rem}.upload-form{margin-bottom:2rem}.profile-info{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.profile-info h3{margin-bottom:1rem;color:#1f2937}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;color:#4b5563;font-size:.875rem}.info-grid strong{color:#1f2937}.project-selection{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.project-selection h3{margin-bottom:1rem;color:#1f2937}.new-project-form{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e5e7eb}.app{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.app-header{text-align:center;margin-bottom:3rem;color:#fff}.app-header h1{font-size:3rem;margin-bottom:.5rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.app-header p{font-size:1.2rem;opacity:.9}.app-container{max-width:1200px;margin:0 auto;background:#fff;border-radius:20px;padding:2rem;box-shadow:0 20px 60px #0000004d;color:#333}.progress-steps{display:flex;align-items:center;justify-content:space-between;margin-bottom:3rem;padding:0 2rem}.step{display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative}.step-number{width:40px;height:40px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:700;transition:all .3s}.step.active .step-number{background:#667eea;color:#fff;transform:scale(1.1)}.step.completed .step-number{background:#10b981;color:#fff}.step-label{font-size:.875rem;font-weight:500;color:#6b7280}.step.active .step-label{color:#667eea}.step-line{flex:1;height:2px;background:#e5e7eb;margin:0 1rem}.main-content{min-height:400px}.form-container{max-width:800px;margin:0 auto}.form-title{font-size:2rem;margin-bottom:1rem;color:#1f2937}.form-description{color:#6b7280;margin-bottom:2rem;line-height:1.6}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-weight:600;margin-bottom:.5rem;color:#374151}.form-input,.form-textarea,.form-select{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:border-color .3s;font-family:inherit}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:#667eea}.form-textarea{min-height:120px;resize:vertical}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.btn{padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:#e5e7eb;color:#374151}.btn-secondary:hover{background:#d1d5db}.btn:disabled{opacity:.5;cursor:not-allowed}.loading{text-align:center;padding:2rem;color:#6b7280}.error{background:#fee2e2;border:2px solid #ef4444;color:#991b1b;padding:1rem;border-radius:8px;margin-bottom:1rem}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;margin:0 auto}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}button{background-color:#f9f9f9}}
