:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}h1{font-size:3.2em;line-height:1.1}button{font-family:inherit;cursor:pointer;transition:all .3s ease}button:focus-visible{outline:2px solid rgba(99,102,241,.5);outline-offset:2px}a{text-decoration:none;color:inherit}.app-header{position:fixed;top:0;left:0;right:0;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.08);z-index:1000;height:60px}.header-container{max-width:1200px;margin:0 auto;padding:0 24px;height:100%;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center}.header-logo{font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;cursor:pointer;transition:opacity .2s ease}.header-logo:hover{opacity:.8}.header-right{display:flex;align-items:center;gap:20px}.user-info{display:flex;align-items:center;gap:16px}.user-name{font-size:.95rem;color:#333;font-weight:500}.logout-btn{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #667eea33}.logout-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.logout-btn:active{transform:translateY(0)}@media (max-width: 600px){.header-container{padding:0 16px}.header-logo{font-size:1.2rem}.user-name{display:none}.logout-btn{padding:6px 12px;font-size:.85rem}}.home-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);animation:gradient 10s ease infinite;background-size:200% 200%}.home-container.with-header{padding-top:60px}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.content-wrapper{text-align:center;padding:3rem}.main-title{font-size:4rem;font-weight:700;color:#fff;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:1.5rem;color:#ffffffe6;margin-bottom:3rem}.start-button{padding:1rem 3rem;font-size:1.25rem;font-weight:700;color:#667eea;background-color:#fff;border:none;border-radius:50px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0003}.start-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.start-button:active{transform:translateY(0)}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.login-content{background:#fff;border-radius:20px;padding:60px 50px;box-shadow:0 20px 60px #00000026;text-align:center;max-width:450px;width:90%;animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.login-title{font-size:2.5rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:40px}.login-message{margin-bottom:40px}.login-message h2{font-size:1.5rem;color:#333;margin-bottom:10px}.login-message p{font-size:1rem;color:#666}.login-spinner{margin:40px 0}.spinner{width:50px;height:50px;border:4px solid #f0f0f0;border-top:4px solid #667eea;border-radius:50%;margin:0 auto;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-footer{margin-top:30px}.login-hint{font-size:.9rem;color:#999;margin:0}@media (max-width: 600px){.login-content{padding:40px 30px;border-radius:15px}.login-title{font-size:2rem}.login-message h2{font-size:1.3rem}.login-message p{font-size:.95rem}}.idea-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3c72,#2a5298,#7e22ce);padding:2rem}.idea-container.with-header{padding-top:calc(60px + 2rem)}.idea-content{width:100%;max-width:800px;text-align:center}.idea-title{font-size:3rem;font-weight:700;color:#fff;margin-bottom:1rem}.idea-subtitle{font-size:1.25rem;color:#fffc;margin-bottom:3rem}.input-section{background:#1e293bf2;border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid rgba(99,102,241,.3);box-shadow:0 20px 40px #0000004d}.idea-textarea{width:100%;min-height:40px;max-height:150px;background:transparent;border:none;color:#ffffffe6;font-size:1rem;padding:.5rem .75rem;resize:none;outline:none;font-family:inherit;overflow-y:auto;transition:height .1s ease;line-height:1.4}.idea-textarea::placeholder{color:#fff6}.options-row{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.options-row.visible{opacity:1;visibility:visible}.submit-button{padding:.75rem 2rem;background:#6366f1cc;color:#fff;border:none;border-radius:25px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease}.submit-button:hover{background:#6366f1;transform:translate(2px);box-shadow:0 4px 15px #6366f166}.submit-button:active{transform:translate(0)}.chat-container{min-height:100vh;background:#f8f9fa;position:relative}.chat-header{position:fixed;top:0;left:0;right:0;padding:1rem 2rem;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d;z-index:100}.back-to-idea{padding:.5rem 1rem;background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s ease;font-weight:500}.back-to-idea:hover{background:#e5e7eb;border-color:#d1d5db}.messages-container{padding:3rem 2rem;padding-bottom:120px;display:flex;flex-direction:column;gap:1.5rem;max-width:1200px;margin:0 auto;width:100%}.messages-container.with-header{padding-top:5rem}.message-wrapper{display:flex;flex-direction:column;gap:1rem}.message-wrapper.user{align-items:flex-end}.message-wrapper.bot{align-items:flex-start}.message-card{display:flex;gap:.75rem;align-items:flex-start;max-width:70%;animation:fadeIn .3s ease;background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 8px #00000014;border:1px solid #e5e7eb}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-card.user{margin-left:auto;background:#5b61fb;border-color:#5b61fb;color:#fff}.message-card.bot{margin-right:auto;background:#fff}.message-card.bot.questions{background:#f0f4ff;border-color:#d0d9ff}.message-card.bot.prd-complete{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.card-icon{width:36px;height:36px;min-width:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-card.user .card-icon{background:#fff3}.message-card.bot .card-icon{background:#f0f4ff}.message-card.bot.questions .card-icon{background:#fff}.message-card.bot.prd-complete .card-icon{background:#fff3}.icon-emoji{font-size:1.25rem}.card-content{flex:1;min-width:0}.card-text{line-height:1.6;font-size:.95rem;word-wrap:break-word;white-space:pre-wrap}.message-card.user .card-text{color:#fff}.message-card.bot .card-text{color:#1e293b}.questions-header{font-size:.9rem;color:#6b7280;margin-bottom:.75rem;font-weight:500}.questions-list{display:flex;flex-direction:column;gap:.5rem}.question-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#fff;border-radius:8px;transition:all .2s ease}.question-item:hover{background:#f9fafb;transform:translate(4px)}.question-number{color:#5b61fb;font-weight:600;flex-shrink:0;min-width:20px}.question-text{color:#374151;font-size:.9rem;line-height:1.5;font-weight:500;margin-bottom:.5rem}.question-options{margin-left:1rem;margin-top:.5rem}.option-item{color:#6b7280;font-size:.85rem;line-height:1.6;padding:.25rem 0;transition:color .2s}.option-item:hover{color:#374151}.message-card.bot.prd-complete h3{color:#fff;font-size:1.1rem;margin:0 0 .5rem;font-weight:600}.message-card.bot.prd-complete p{color:#ffffffe6;margin:0 0 1rem;font-size:.9rem;line-height:1.5}.prd-download-button{padding:.625rem 1.25rem;background:#fff;color:#5b61fb;border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.prd-download-button:hover{background:#fffffff2;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.prd-download-button:active{transform:translateY(0)}.prd-download-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.input-container{position:fixed;bottom:0;left:0;right:0;padding:1rem 1.5rem;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -2px 10px #0000000d;z-index:100}.input-wrapper{display:flex;gap:.75rem;max-width:1200px;margin:0 auto;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:.5rem;align-items:flex-end;transition:border-color .2s ease}.input-wrapper:focus-within{border-color:#5b61fb;box-shadow:0 0 0 3px #5b61fb1a}.chat-input{flex:1;background:transparent;border:none;color:#1f2937;font-size:.95rem;padding:.5rem .75rem;resize:none;outline:none;font-family:inherit;min-height:40px;max-height:120px;overflow-y:auto;line-height:1.5}.chat-input::placeholder{color:#9ca3af}.chat-input:disabled{background:transparent;color:#9ca3af;cursor:not-allowed}.send-button{width:36px;height:36px;border-radius:50%;background:#e5e7eb;color:#6b7280;border:none;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.send-button.active{background:#5b61fb;color:#fff}.send-button.active:hover{background:#4c51bf;transform:scale(1.05)}.send-button:disabled{cursor:not-allowed;opacity:.5}.input-hint{text-align:center;color:#9ca3af;font-size:.75rem;margin-top:.5rem}.message.bot.loading{display:flex;gap:.75rem;align-items:center;max-width:70%;animation:fadeIn .3s ease}.message.bot.loading .message-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:#5b61fb;flex-shrink:0}.message.bot.loading .message-content{display:flex;gap:.25rem;padding:1rem 1.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #00000014}.loading-dot{width:8px;height:8px;background:#6b7280;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}body::-webkit-scrollbar{width:8px}body::-webkit-scrollbar-track{background:#f3f4f6}body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}body::-webkit-scrollbar-thumb:hover{background:#9ca3af}.questions-input-wrapper{max-width:1200px;margin:0 auto;padding:1.5rem;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000014}.question-header{display:flex;justify-content:center;margin-bottom:1.5rem}.question-counter{padding:.5rem 1rem;background:#f0f4ff;color:#5b61fb;border-radius:20px;font-size:.85rem;font-weight:600}.active-question{margin-bottom:1.5rem}.question-title{font-size:1.1rem;color:#1e293b;margin-bottom:1.5rem;font-weight:600;line-height:1.5}.options-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem}.option-button{width:100%;padding:.875rem 1.25rem;background:#f9fafb;color:#374151;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease;text-align:left}.option-button:hover{background:#f0f4ff;border-color:#a8b5ff;transform:translateY(-2px)}.option-button.selected{background:#5b61fb;color:#fff;border-color:#5b61fb}.option-button.selected:hover{background:#4c51bf;border-color:#4c51bf}.custom-option-container{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.custom-option-button{width:100%}.custom-input-field{width:100%;padding:.875rem 1rem;background:#fff;border:2px solid #5b61fb;border-radius:12px;font-size:.95rem;outline:none;transition:all .2s ease;font-family:inherit}.custom-input-field:focus{box-shadow:0 0 0 3px #5b61fb1a;background:#fafaff}.answer-textarea{width:100%;padding:.875rem 1rem;background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;font-size:.95rem;font-family:inherit;resize:vertical;outline:none;transition:all .2s ease;min-height:100px}.answer-textarea:focus{background:#fff;border-color:#5b61fb;box-shadow:0 0 0 3px #5b61fb1a}.question-navigation{display:flex;gap:1rem;justify-content:space-between;margin-top:1.5rem}.nav-button{padding:.75rem 1.5rem;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:100px}.nav-button.prev{background:#f3f4f6;color:#374151}.nav-button.prev:hover:not(:disabled){background:#e5e7eb}.nav-button.next{background:#5b61fb;color:#fff;margin-left:auto}.nav-button.next:hover:not(:disabled){background:#4c51bf;transform:translateY(-1px)}.nav-button.submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;margin-left:auto}.nav-button.submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.nav-button:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 768px){.messages-container{padding:2rem 1rem;padding-bottom:100px}.messages-container.with-header{padding-top:4rem}.message-card,.message.bot.loading{max-width:85%}.chat-header,.input-container{padding:.75rem 1rem}.questions-input-wrapper{padding:1rem}.question-navigation{flex-direction:column;gap:.75rem}.nav-button{width:100%}.nav-button.next,.nav-button.submit{margin-left:0}}.message-card.bot.retry{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #ffc107}.retry-button{margin-top:1rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #ee5a6f33}.retry-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ee5a6f4d;background:linear-gradient(135deg,#ff5252,#e84857)}.retry-button:active{transform:translateY(0)}*{margin:0;padding:0;box-sizing:border-box}#root{width:100%;min-height:100vh}
