*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}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;line-height:1.6;color:#333;background-color:#f8fafc}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.main-content{min-height:calc(100vh - 140px);padding:2rem 0}.auth-main-content{min-height:100vh;padding:0}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:1rem;color:#666}a{color:#3b82f6;text-decoration:none;transition:color .2s ease}a:hover{color:#2563eb}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.container{padding:0 .5rem}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.25rem}}.login-container{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;align-items:center;justify-content:center;padding:1rem}.login-content{width:100%;max-width:900px;margin:0 auto}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;overflow:hidden;min-height:550px}.login-card--questionnaire{min-height:650px}.card-left{background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;width:40%;text-align:center;border-right:1px solid #e5e7eb}.brand-logo.login-logo{width:280px;height:auto;object-fit:contain;margin-bottom:2.5rem}.welcome-text{margin-top:1rem}.welcome-text h2{font-size:2rem;font-weight:600;color:#1e293b;margin:0 0 .5rem;font-family:Inter,system-ui,-apple-system,sans-serif}.welcome-text p{color:#6b7280;font-size:1rem;margin:0}.card-right{padding:2rem;width:60%;display:flex;flex-direction:column}.signup-prompt-top{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-bottom:2rem}.signup-prompt-top span{color:#6b7280;font-size:.875rem}.signup-button{background:transparent;color:#1e40af;border:1px solid #1e40af;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;text-decoration:none}.signup-button:hover{background:#1e40af;color:#fff}.login-options{margin-bottom:1rem}.login-options-text{font-size:.875rem;color:#6b7280;margin-bottom:1rem;text-align:center}.login-divider{display:flex;align-items:center;margin:1rem 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.login-divider span{padding:0 1rem;font-size:.75rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.questionnaire-content{height:100%;display:flex;flex-direction:column}.question-section{margin-bottom:2rem}.question-section h3{font-size:1.5rem;margin-bottom:1rem;color:#1e293b}.question-explanation{color:#6b7280;font-size:.875rem}.answer-section{flex:1;margin-bottom:2rem}.options-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.option-button{padding:1rem;border:1px solid #d1d5db;border-radius:8px;background-color:#fff;cursor:pointer;transition:all .15s ease;text-align:left}.option-button:hover{border-color:#3b82f6;background-color:#f8fafc}.option-button.selected{border:2px solid #1e40af;background-color:#eff6ff}.option-label{font-weight:500}.questionnaire-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:auto}.progress-bar{width:100%;height:8px;background-color:#e5e7eb;border-radius:4px;margin-top:1rem;overflow:hidden}.progress-fill{width:100%;height:100%;background-color:#1e40af;transition:width .3s ease}.disclaimer{color:#9ca3af;font-size:.75rem;margin-top:1rem;font-style:italic;text-align:center}@media (max-width: 768px){.login-card{flex-direction:column;min-height:auto}.card-left,.card-right{width:100%;padding:2rem}.card-left{padding-bottom:1rem}.brand-logo.login-logo{width:140px;margin-bottom:1rem}.welcome-text h2{font-size:1.5rem}.options-grid{grid-template-columns:1fr}}@media (max-width: 480px){.login-container{padding:0}.login-card{border-radius:0;min-height:100vh}.card-left,.card-right{padding:1.5rem}.brand-logo.login-logo{width:120px}.welcome-text h2{font-size:1.25rem}.signup-prompt-top{margin-bottom:1.5rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:.5rem;font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s ease;white-space:nowrap;border:none}.btn.auth-btn{border-radius:8px;margin-top:auto;transition:all .15s ease}.btn.auth-btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled,.btn-disabled{opacity:.5;cursor:not-allowed}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.5rem 1rem;font-size:.75rem}.btn-md{padding:.75rem 1.5rem;font-size:.875rem}.btn-lg{padding:1rem 2rem;font-size:1rem}.btn-primary{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.btn-primary:hover:not(:disabled){background-color:#2563eb;border-color:#2563eb}.btn-primary.auth-btn{background-color:#1e40af}.btn-primary.auth-btn:hover:not(:disabled){background-color:#1d4ed8}.btn-secondary{background-color:#6b7280;color:#fff;border-color:#6b7280}.btn-secondary:hover:not(:disabled){background-color:#4b5563;border-color:#4b5563}.btn-outline{background-color:transparent;color:#3b82f6;border-color:#3b82f6}.btn-outline:hover:not(:disabled){background-color:#3b82f6;color:#fff}.btn-danger{background-color:#ef4444;color:#fff;border-color:#ef4444}.btn-danger:hover:not(:disabled){background-color:#dc2626;border-color:#dc2626}.btn-ghost{background-color:transparent;color:#6b7280;border-color:transparent}.btn-ghost:hover:not(:disabled){background-color:#f3f4f6;color:#374151}@media (max-width: 480px){.btn{padding:.625rem 1.25rem}}.login-form{display:flex;flex-direction:column;gap:1rem;flex:1}.form-group{margin-bottom:.5rem}.input-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.input-label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem}.input-label .required{color:#ef4444;margin-left:2px}.input{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;background:#fff;color:#111827;transition:all .15s ease;box-sizing:border-box}.input:focus{outline:none;border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a}.input::placeholder{color:#9ca3af}.form-input{width:100%;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:all .15s ease;background-color:#fff;color:#111827;box-sizing:border-box}.form-input:focus{outline:none;border-color:#1e40af;box-shadow:0 0 0 2px #1e40af1a}.form-input::placeholder{color:#9ca3af}.input.input-error,.form-input.error{border-color:#ef4444}.input.input-error:focus,.form-input.error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.input-error-message{color:#ef4444;font-size:.75rem;margin-top:.25rem;display:block}.input-helper-text{color:#6b7280;font-size:.75rem;margin-top:.25rem;display:block}.error-message{color:#ef4444;font-size:.875rem;margin-top:.5rem;display:block}.error-box{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem;margin:.5rem 0}.error-box p{color:#dc2626;margin:0;font-size:.875rem}.loading-text{display:flex;align-items:center;justify-content:center;gap:.5rem}@media (max-width: 480px){.form-input{padding:.625rem .875rem}}.loading-fullscreen{position:fixed;inset:0;background:#fff;display:flex;align-items:center;justify-content:center;z-index:9999}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.loading-spinner{position:relative}.loading-small .spinner-ring{width:32px;height:32px;border-width:2px}.loading-medium .spinner-ring{width:48px;height:48px;border-width:3px}.loading-large .spinner-ring{width:64px;height:64px;border-width:4px}.spinner-ring{display:inline-block;position:relative;width:48px;height:48px;border:3px solid transparent;border-top-color:#3b82f6;border-radius:50%;animation:spinner-ring 1s linear infinite}.btn-spinner{width:1rem;height:1rem;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spinner-ring 1s linear infinite}@keyframes spinner-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{text-align:center}.loading-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.loading-subtitle{font-size:.875rem;color:#6b7280;margin:0;line-height:1.4}.questionnaire-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:2rem}.questionnaire-loading .loading-title{font-size:1.25rem;margin-bottom:.75rem}.questionnaire-loading .loading-subtitle{font-size:1rem;max-width:300px}.loading-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.header{background:linear-gradient(135deg,#fff,#f8fafc);border-bottom:2px solid #e2e8f0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;position:sticky;top:0;z-index:1000}.header-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;position:relative}.header-left{display:flex;align-items:center}.header-right{display:flex;align-items:center;gap:1rem}.brand-link{display:flex;align-items:center;text-decoration:none;color:inherit;transition:transform .2s ease}.brand-link:hover{transform:translateY(-1px)}.brand-content{display:flex;align-items:center}.brand-logo{width:200px;height:60px;object-fit:contain}.brand-title{font-size:1.75rem;font-weight:700;color:#1e40af;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}.brand-subtitle{font-size:.875rem;color:#64748b;margin:10px 10px 4px;font-weight:500}.nav{display:flex;align-items:center;gap:2rem}.nav-link{text-decoration:none;color:#475569;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;position:relative}.nav-link:hover{color:#1e40af;background-color:#f1f5f9}.nav-link.active{color:#1e40af;background-color:#dbeafe;font-weight:600}.auth-button{text-decoration:none;padding:.75rem 1.5rem;border-radius:12px;font-weight:600;transition:all .2s ease;border:none;cursor:pointer;font-size:.875rem;display:inline-block}.auth-button.login{color:#1e40af;background-color:transparent;border:2px solid #1e40af}.auth-button.login:hover{background-color:#1e40af;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #1e40af4d}.auth-button.register{background-color:#1e40af;color:#fff}.auth-button.register:hover{background-color:#1d4ed8;transform:translateY(-2px);box-shadow:0 4px 12px #1e40af66}.user-profile-link{text-decoration:none;color:inherit}.user-profile{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;transition:all .2s ease;color:#1e293b}.user-profile:hover{background:#f1f5f9;border-color:#1e40af;transform:translateY(-1px)}.user-icon{color:#1e40af;width:20px;height:20px}.user-name{font-weight:600;font-size:.875rem}.nav-toggle{display:none;flex-direction:column;justify-content:space-between;width:24px;height:20px;background:transparent;border:none;cursor:pointer;padding:0;margin-left:1rem}.toggle-line{width:100%;height:2px;background-color:#1e40af;transition:all .3s ease}.nav-toggle.active .toggle-line:nth-child(1){transform:translateY(9px) rotate(45deg)}.nav-toggle.active .toggle-line:nth-child(2){opacity:0}.nav-toggle.active .toggle-line:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.nav-drawer{position:fixed;top:0;right:-300px;width:300px;height:100vh;background:#fff;box-shadow:-2px 0 10px #0000001a;transition:transform .3s ease;z-index:1000}.nav-drawer.open{transform:translate(-300px)}.drawer-nav{display:flex;flex-direction:column;padding:5rem 2rem 2rem}.drawer-link{text-decoration:none;color:#475569;font-weight:500;padding:1rem;border-radius:8px;transition:all .2s ease;margin-bottom:.5rem;display:block}.drawer-link:hover{color:#1e40af;background-color:#f1f5f9}.drawer-link.active{color:#1e40af;background-color:#dbeafe;font-weight:600}.drawer-link.logout-btn{background:none;border:none;cursor:pointer;text-align:left;font-size:1rem;width:100%;color:#ef4444}.drawer-link.logout-btn:hover{background-color:#fee2e2;color:#b91c1c}.drawer-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;opacity:0;animation:fadeIn .3s ease forwards;z-index:999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.header-container{padding:.75rem 1rem}.brand-logo{width:150px!important;height:40px!important}.brand-title{font-size:1.5rem}.brand-subtitle{font-size:.75rem}.nav-toggle{display:flex}.user-profile{padding:.375rem .75rem}.user-name{font-size:.8125rem}.auth-button{padding:.5rem 1rem;font-size:.8125rem}}@media (max-width: 480px){.header-container{padding:.5rem .75rem}.brand-logo{width:120px!important;height:35px!important}.brand-title{font-size:1.25rem}.brand-subtitle,.user-name{display:none}.user-profile{padding:.375rem}.auth-button{padding:.375rem .75rem;font-size:.75rem}.nav-drawer{width:250px;right:-250px}.nav-drawer.open{transform:translate(-250px)}}.chat-bubble{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #1e40af4d;transition:all .3s ease;z-index:1000;border:3px solid white}.chat-bubble:hover{transform:translateY(-2px);box-shadow:0 8px 20px #1e40af66}.chat-bubble-icon{color:#fff;transition:transform .2s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.chat-bubble:hover .chat-bubble-icon{transform:scale(1.1)}.chat-bubble-notification{position:absolute;top:-2px;right:-2px}.notification-dot{width:12px;height:12px;background:#ef4444;border-radius:50%;border:2px solid white;display:block;animation:pulse-notification 2s infinite}@keyframes pulse-notification{0%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}to{transform:scale(1);opacity:1}}.chat-window{position:fixed;bottom:2rem;right:2rem;width:380px;height:500px;background:#fff;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;z-index:999;animation:slideInUp .3s ease-out;overflow:hidden}.chat-window.keyboard-open{transition:height .3s ease}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-header{padding:1rem 1.5rem;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:16px 16px 0 0}.chat-header-info{display:flex;align-items:center;gap:.75rem}.chat-avatar{width:32px;height:32px;background:#1e40af;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.chat-header-text h4{font-size:.875rem;font-weight:600;color:#111827;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}.chat-status{font-size:.75rem;color:#10b981;font-weight:500}.chat-close-btn{background:none;border:none;color:#6b7280;cursor:pointer;padding:.375rem;border-radius:6px;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.chat-close-btn:hover{color:#fff;background:#ef4444;transform:scale(1.05)}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem;scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:#f1f5f9}.chat-messages::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#9ca3af}.chat-welcome{text-align:center;padding:2rem 1rem;color:#6b7280}.welcome-icon{color:#1e40af;margin-bottom:1rem}.chat-welcome h4{font-size:1rem;font-weight:600;color:#111827;margin:0 0 .5rem;font-family:Inter,system-ui,-apple-system,sans-serif}.chat-welcome p{font-size:.875rem;line-height:1.5;margin:0}.chat-message{display:flex;margin-bottom:.75rem}.chat-message.user{justify-content:flex-end}.chat-message.bot{justify-content:flex-start}.message-content{max-width:80%;padding:.75rem 1rem;border-radius:12px;position:relative}.chat-message.user .message-content{background:#1e40af;color:#fff;border-bottom-right-radius:4px;box-shadow:0 2px 8px #1e40af33}.chat-message.bot .message-content{background:#f1f5f9;color:#374151;border-bottom-left-radius:4px}.message-content p{font-size:.875rem;line-height:1.4;margin:0 0 .25rem;font-weight:500}.chat-message.user .message-content p{color:#fff;font-weight:500}.message-time{font-size:.6875rem;opacity:.7;display:block}.chat-message.user .message-time{color:#fff;opacity:.8}.typing-indicator{display:flex;align-items:center;gap:.75rem}.typing-indicator span{font-size:.875rem;color:#6b7280;font-style:italic}.typing-message{background:#f8fafc!important;border:1px solid #e2e8f0!important}.typing-dots{display:flex;gap:.25rem;align-items:center}.typing-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;animation:typingAnimation 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingAnimation{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-10px);opacity:1}}.chat-suggestions{padding:1rem 1.5rem;border-top:1px solid #f1f5f9;background:#fafafa}.chat-suggestions h5{font-size:.75rem;font-weight:600;color:#6b7280;margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.suggestions-grid{display:flex;flex-direction:column;gap:.5rem}.suggestion-btn{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:.5rem .75rem;font-size:.75rem;color:#374151;cursor:pointer;transition:all .15s ease;text-align:left;line-height:1.3}.suggestion-btn:hover{border-color:#1e40af;background:#f8fafc;color:#1e40af}.chat-input-container{padding:1rem 1.5rem;border-top:1px solid #f1f5f9;background:#fff;border-radius:0 0 16px 16px;flex-shrink:0;position:relative;z-index:10}.chat-input-form{display:flex;width:100%}.chat-input-wrapper{display:flex;align-items:flex-end;width:100%;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:.5rem;gap:.5rem;transition:border-color .15s ease}.chat-input-wrapper:focus-within,.chat-input-wrapper.focused{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a}.chat-input{flex:1;background:none;border:none;outline:none;resize:none;font-size:.875rem;color:#374151;line-height:1.4;min-height:20px;max-height:80px;padding:0;font-family:inherit}.chat-input::placeholder{color:#9ca3af}.chat-send-btn{background:#1e40af;border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all .15s ease;flex-shrink:0}.chat-send-btn:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.chat-send-btn:disabled{background:#d1d5db;cursor:not-allowed;transform:none}@media (max-width: 768px){.chat-window{bottom:5rem;right:1rem;left:1rem;width:auto;height:450px;border-radius:12px}.chat-window.mobile-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;border-radius:0;z-index:9999}.chat-window.mobile-fullscreen.keyboard-open{bottom:0;height:auto;min-height:100vh;min-height:100dvh}.chat-window.keyboard-open .chat-input-container{position:sticky;bottom:0;background:#fff;border-top:2px solid #e2e8f0;box-shadow:0 -4px 6px -1px #0000001a}.chat-window.keyboard-open .chat-suggestions{display:none}.chat-bubble{bottom:1.5rem;right:1.5rem;width:56px;height:56px}.chat-header{padding:.75rem 1rem;border-radius:12px 12px 0 0}.chat-window.mobile-fullscreen .chat-header{padding:1rem 1.5rem;border-radius:0}.chat-messages{padding:.75rem;gap:.75rem}.chat-window.mobile-fullscreen .chat-messages{padding:1rem 1.5rem;gap:1rem}.chat-input-container{padding:.75rem 1rem}.chat-window.mobile-fullscreen .chat-input-container{padding:1rem 1.5rem;border-radius:0;background:#fff;border-top:1px solid #e2e8f0}.chat-window.mobile-fullscreen.keyboard-open .chat-input-container{padding:1.25rem 1.5rem;background:#fff;border-top:2px solid #1e40af;box-shadow:0 -8px 16px #0000001a}.chat-window.mobile-fullscreen .chat-suggestions{padding:1rem 1.5rem}.suggestions-grid{gap:.375rem}.suggestion-btn{padding:.5rem .75rem;font-size:.75rem;line-height:1.2}.message-content{max-width:85%;padding:.625rem .875rem}.message-content p{font-size:.8125rem}}@media (max-width: 480px){.chat-window{bottom:4rem;right:.75rem;left:.75rem;height:420px;border-radius:12px}.chat-window.mobile-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;border-radius:0;z-index:9999}.chat-bubble{bottom:1rem;right:1rem;width:52px;height:52px}.chat-header{padding:.625rem .875rem}.chat-window.mobile-fullscreen .chat-header{padding:1rem;border-radius:0}.chat-messages{padding:.625rem;gap:.625rem}.chat-window.mobile-fullscreen .chat-messages{padding:1rem;gap:.875rem}.chat-input-container{padding:.625rem .875rem}.chat-window.mobile-fullscreen .chat-input-container{padding:1rem;border-radius:0;background:#fff;border-top:1px solid #e2e8f0}.chat-window.mobile-fullscreen.keyboard-open .chat-input-container{padding:1.25rem 1rem;background:#fff;border-top:2px solid #1e40af;box-shadow:0 -8px 16px #0000001a}.chat-window.mobile-fullscreen .chat-suggestions{padding:1rem}.message-content{max-width:88%;padding:.5rem .75rem}.message-content p{font-size:.8125rem;line-height:1.3}.chat-header-text h4{font-size:.8125rem}.chat-status{font-size:.6875rem}.chat-avatar{width:28px;height:28px}.chat-close-btn{padding:.25rem}.suggestion-btn{padding:.375rem .5rem;font-size:.6875rem}.chat-suggestions{padding:.75rem .875rem}.chat-input-wrapper{padding:.375rem}.chat-send-btn{width:28px;height:28px}.typing-dots{gap:.1875rem}.typing-dot{width:6px;height:6px}}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message{animation:messageSlideIn .3s ease-out}.chat-bubble:focus{outline:none;box-shadow:0 4px 12px #1e40af4d,0 0 0 3px #1e40af33}.suggestion-btn:focus{outline:none;border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a}.chat-send-btn:focus{outline:none;box-shadow:0 0 0 3px #1e40af4d}@supports (-webkit-touch-callout: none){.chat-window.mobile-fullscreen{height:-webkit-fill-available}.chat-window.mobile-fullscreen.keyboard-open{height:auto;min-height:-webkit-fill-available}}@media screen and (max-width: 768px){.chat-input{font-size:16px}}@supports (padding: max(0px)){.chat-window.mobile-fullscreen .chat-input-container{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.chat-window.mobile-fullscreen.keyboard-open .chat-input-container{padding-bottom:1.25rem}}.dashboard-container{min-height:100vh;background:#fafafa;padding:2rem 1rem}.dashboard-content{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;justify-content:center;align-items:center;margin-bottom:3rem;padding:3rem 0;text-align:center}.dashboard-welcome h1{font-size:2.5rem;font-weight:700;color:#111827;margin:0 0 .75rem;font-family:Inter,system-ui,-apple-system,sans-serif;letter-spacing:-.025em;background:linear-gradient(135deg,#1e40af,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-welcome p{color:#6b7280;font-size:1.125rem;font-weight:400;max-width:600px;margin:0 auto;line-height:1.6}.logout-button{background-color:#111827;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:Inter,system-ui,-apple-system,sans-serif}.logout-button:hover{background-color:#374151}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:3rem}.dashboard-card{background:#fff;padding:2rem;border-radius:12px;border:1px solid #e5e7eb;transition:all .15s ease}.dashboard-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.card-icon{margin-bottom:1rem;display:block}.trading-icon{color:#1d4ed8}.news-icon{color:#059669}.card-title{font-size:1.25rem;font-weight:600;color:#111827;margin-bottom:.75rem;font-family:Inter,system-ui,-apple-system,sans-serif}.card-description{color:#6b7280;line-height:1.5;margin-bottom:1.5rem;font-size:.875rem}.card-button{padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:Inter,system-ui,-apple-system,sans-serif;width:100%;border:none}.trading-button{background-color:#1d4ed8;color:#fff}.trading-button:hover{background-color:#1e40af;transform:translateY(-1px)}.coming-soon-badge{background-color:#f3f4f6;color:#6b7280;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;text-align:center;border:1px dashed #d1d5db;margin-top:1rem}.recent-activity{background:#fff;padding:2rem;border-radius:12px;border:1px solid #e5e7eb}.recent-activity h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 1.5rem;font-family:Inter,system-ui,-apple-system,sans-serif}.activity-content{text-align:center;padding:2rem;color:#6b7280;font-size:.875rem}.loading-spinner{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:400px;gap:1rem}.loading-spinner p{color:#6b7280;font-size:.875rem;margin:0}.compact-portfolio-summary{margin:0 auto 3rem}.portfolio-main-card{background:#fff;border-radius:16px;border:1px solid #e5e7eb;overflow:hidden}.portfolio-header-compact{padding:2rem;border-bottom:1px solid #e5e7eb}.portfolio-header-compact h1{font-size:1.75rem;font-weight:600;color:#111827;margin:0 0 1.5rem;font-family:Inter,system-ui,-apple-system,sans-serif}.portfolio-main-info-compact{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.portfolio-value-section-compact{display:flex;flex-direction:column;gap:.25rem}.value-amount-compact{font-size:2.25rem;font-weight:700;color:#111827;font-family:Inter,system-ui,-apple-system,sans-serif}.portfolio-type-compact{font-size:.875rem;color:#6b7280;font-weight:500}.portfolio-metrics-row-compact{display:flex;gap:2rem;align-items:flex-start}.metric-item-compact{display:flex;flex-direction:column;gap:.25rem;min-width:80px}.metric-label-compact{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.metric-value-compact{font-size:1rem;font-weight:600;color:#111827}.metric-value-compact.positive{color:#059669}.holdings-preview-compact{padding:2rem}.holdings-preview-compact h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 1.5rem}.holdings-preview-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.holding-preview-item-compact{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #f1f5f9}.holding-preview-item-compact:last-child{border-bottom:none}.holding-ticker-compact{font-size:.875rem;font-weight:600;color:#1e40af;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.holding-value-compact{font-size:.875rem;font-weight:600;color:#111827}.view-full-portfolio-btn{background:#f9fafb;color:#374151;border:1px solid #d1d5db;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:Inter,system-ui,-apple-system,sans-serif;width:100%}.view-full-portfolio-btn:hover{background:#f3f4f6;border-color:#9ca3af}.no-portfolio{background:#fff;border-radius:12px;border:1px solid #e5e7eb;margin-bottom:3rem;padding:4rem 2rem;text-align:center}.no-portfolio-content{max-width:400px;margin:0 auto}.no-portfolio-icon{color:#9ca3af;margin-bottom:1.5rem}.no-portfolio-content h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 .75rem;font-family:Inter,system-ui,-apple-system,sans-serif}.no-portfolio-content p{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 2rem}.choose-portfolio-button{background:#111827;color:#fff;border:none;padding:.875rem 2rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:Inter,system-ui,-apple-system,sans-serif}.choose-portfolio-button:hover{background:#374151}@media (max-width: 768px){.dashboard-container{padding:1rem}.dashboard-header{flex-direction:column;gap:1rem;text-align:center;padding:2rem 0 1.5rem}.dashboard-welcome h1{font-size:1.875rem}.dashboard-grid{grid-template-columns:1fr;gap:1rem}.dashboard-card,.recent-activity{padding:1.5rem}.recent-activity h2{font-size:1.25rem}.portfolio-header-compact{padding:1.5rem}.portfolio-main-info-compact{flex-direction:column;gap:1.5rem}.portfolio-metrics-row-compact{justify-content:flex-start}.holdings-preview-compact{padding:1.5rem}.no-portfolio{padding:3rem 1.5rem}.choose-portfolio-button{width:100%}}@media (max-width: 480px){.dashboard-header{padding:1.5rem 0 1rem}.dashboard-welcome h1{font-size:1.5rem}.dashboard-card{padding:1.25rem}.card-title{font-size:1.125rem}.portfolio-header-compact{padding:1rem}.portfolio-header-compact h1{font-size:1.5rem}.value-amount-compact{font-size:1.75rem}.portfolio-main-info-compact{flex-direction:column;gap:1rem}.portfolio-metrics-row-compact{gap:1rem;justify-content:flex-start}.metric-item-compact{min-width:70px}.holdings-preview-compact{padding:1rem}.no-portfolio{padding:2rem 1rem}.no-portfolio-content h2{font-size:1.25rem}}.dashboard-portfolio-summary{background:#fff;border-radius:16px;border:2px solid #10b981;padding:2rem;margin-bottom:2rem;transition:all .15s ease;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.portfolio-summary-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.portfolio-summary-info{display:flex;flex-direction:column;gap:.5rem}.portfolio-summary-name{font-size:1.5rem;font-weight:600;color:#111827;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}.portfolio-summary-meta{display:flex;align-items:center;gap:.75rem}.dashboard-portfolio-summary .risk-tier-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:9999px;font-size:.65rem;font-weight:500;color:#fff;text-transform:uppercase;letter-spacing:.05em}.dashboard-portfolio-summary .active-badge{background:#10b981;color:#fff;font-size:.65rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.portfolio-summary-value{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.portfolio-summary-value .value-amount{font-size:1.75rem;font-weight:700;color:#111827;font-family:Inter,system-ui,-apple-system,sans-serif}.portfolio-summary-value .value-label{font-size:.65rem;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.portfolio-summary-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 1.25rem}.goal-progress-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bfdbfe;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem;transition:all .3s ease}.goal-progress-section.goal-achieved{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #86efac}.goal-progress-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.goal-progress-info{display:flex;flex-direction:column;gap:.25rem}.goal-progress-label{font-size:.75rem;color:#1e40af;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.goal-achieved .goal-progress-label{color:#059669}.goal-progress-current{font-size:1.5rem;font-weight:700;color:#1e40af;font-family:Inter,system-ui,-apple-system,sans-serif}.goal-achieved .goal-progress-current{color:#059669}.goal-progress-target{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.goal-target-label{font-size:.75rem;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.goal-target-value{font-size:1.125rem;font-weight:600;color:#374151;font-family:Inter,system-ui,-apple-system,sans-serif}.goal-progress-bar-container{position:relative;width:100%;height:32px;background:#fff;border-radius:999px;overflow:hidden;box-shadow:inset 0 2px 4px #0000000f;margin-bottom:.75rem}.goal-progress-bar-fill{position:relative;height:100%;background:linear-gradient(90deg,#3b82f6,#1e40af);border-radius:999px;transition:width .8s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:flex-end;padding-right:1rem;min-width:60px;box-shadow:0 2px 8px #3b82f666}.goal-progress-bar-fill.goal-complete{background:linear-gradient(90deg,#10b981,#059669);box-shadow:0 2px 8px #10b98166}.goal-progress-percentage{font-size:.875rem;font-weight:700;color:#fff;font-family:Inter,system-ui,-apple-system,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.2)}.goal-progress-footer{display:flex;justify-content:center;align-items:center}.goal-remaining{font-size:.875rem;color:#1e40af;font-weight:600;font-family:Inter,system-ui,-apple-system,sans-serif}.goal-remaining.goal-exceeded{color:#059669;font-weight:700}.portfolio-summary-metrics{display:flex;gap:2.5rem;margin-bottom:1.5rem;padding:1rem 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.metric-summary-item{display:flex;flex-direction:column;gap:.25rem;flex:1;text-align:center}.metric-summary-label{font-size:.65rem;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.metric-summary-value{font-size:1.125rem;font-weight:600;color:#111827;font-family:Inter,system-ui,-apple-system,sans-serif}.metric-summary-value.return-positive{color:#10b981}.portfolio-summary-footer{display:flex;justify-content:space-between;align-items:center}.footer-info{display:flex;gap:1.5rem;font-size:.75rem;color:#6b7280;font-weight:500}.footer-actions{display:flex}@media (max-width: 768px){.dashboard-portfolio-summary{padding:1.5rem}.portfolio-summary-header{flex-direction:column;gap:1rem;align-items:stretch}.portfolio-summary-value{align-items:flex-start}.portfolio-summary-metrics{gap:1.5rem}.portfolio-summary-footer{flex-direction:column;gap:1rem;align-items:stretch}.footer-info{justify-content:center;text-align:center}.footer-actions{justify-content:center}.goal-progress-section{padding:1rem}.goal-progress-header{flex-direction:column;gap:.75rem}.goal-progress-target{align-items:flex-start}.goal-progress-current{font-size:1.25rem}.goal-target-value{font-size:1rem}}.home{min-height:100vh}.hero{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4rem 0;text-align:center}.hero-content{max-width:800px;margin:0 auto;padding:0 1rem}.hero h1{font-size:3rem;margin-bottom:1rem;font-weight:700}.hero-description{font-size:1.25rem;margin-bottom:2rem;opacity:.9}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.features{padding:4rem 0;background-color:#fff}.features h2{text-align:center;margin-bottom:3rem;color:#1f2937}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto;padding:0 1rem}.feature-card{text-align:center;padding:2rem;border-radius:.5rem;background-color:#f8fafc;border:1px solid #e5e7eb;transition:transform .2s ease,box-shadow .2s ease}.feature-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #0000001a}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card h3{color:#1f2937;margin-bottom:1rem}@media (max-width: 768px){.hero h1{font-size:2rem}.hero-description{font-size:1rem}.hero-actions{flex-direction:column;align-items:center}.features-grid{grid-template-columns:1fr}}.profile-container{min-height:100vh;background:#fafafa;padding:2rem 1rem}.profile-content{max-width:1200px;margin:0 auto}.profile-header{text-align:center;margin-bottom:3rem;padding:3rem 0}.profile-header-content h1{font-size:2.5rem;font-weight:700;color:#111827;margin:0 0 .75rem;font-family:Inter,system-ui,-apple-system,sans-serif;letter-spacing:-.025em;background:linear-gradient(135deg,#1e40af,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.profile-header-content p{color:#6b7280;font-size:1.125rem;margin:0 auto;font-weight:400;max-width:600px;line-height:1.6}.profile-card-full{background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:2rem;transition:all .15s ease;margin-bottom:2rem;width:100%}.profile-card-full:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-2px)}.profile-grid-bottom{display:flex;flex-wrap:wrap;gap:2rem;justify-content:flex-start}.profile-card{background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:2rem;transition:all .15s ease;flex:1 1 350px;min-width:350px}.profile-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-2px)}.card-header{margin-bottom:1.5rem;border-bottom:1px solid #f1f5f9;padding-bottom:1rem}.card-header h2{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 .5rem;font-family:Inter,system-ui,-apple-system,sans-serif}.card-header p{color:#6b7280;font-size:.875rem;margin:0;font-weight:400}.card-content{display:flex;flex-direction:column;gap:1.5rem}.info-grid{display:flex;flex-direction:column;gap:1rem}.info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #f8fafc}.info-item:last-child{border-bottom:none}.info-label{font-size:.875rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.info-value{font-size:.875rem;font-weight:600;color:#111827}.loading-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;text-align:center}.loading-state p{color:#6b7280;font-size:.875rem}.investment-profile{display:flex;flex-direction:column;gap:1.5rem}.risk-tier-section{display:flex;justify-content:center;margin-bottom:1rem}.risk-tier-display{display:flex;flex-direction:column;align-items:center;gap:.5rem}.risk-tier-badge-large{display:inline-flex;align-items:center;padding:.75rem 1.5rem;border-radius:9999px;font-size:.875rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em}.risk-score{font-size:.75rem;color:#6b7280;font-weight:500}.risk-level{font-size:.75rem;color:#374151;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.profile-details{display:flex;flex-direction:column;gap:.75rem}.profile-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin:1.5rem 0}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.detail-label{font-size:.875rem;font-weight:500;color:#6b7280}.detail-value{font-size:.875rem;font-weight:600;color:#111827}.profile-summary{padding:1rem;background:#f8fafc;border-radius:8px;border:1px solid #f1f5f9}.profile-summary h4{font-size:.875rem;font-weight:600;color:#111827;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em}.profile-summary p{font-size:.875rem;color:#6b7280;line-height:1.5;margin:0}.profile-meta{padding-top:1rem;border-top:1px solid #f1f5f9;margin-top:1rem}.no-profile{display:flex;justify-content:center;align-items:center;min-height:200px}.no-profile-content{text-align:center;max-width:300px}.no-profile-icon{color:#9ca3af;margin-bottom:1rem}.no-profile-content h4{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .5rem}.no-profile-content p{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 1.5rem}.security-actions{display:flex;justify-content:flex-start}.password-form{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;background:#f8fafc;border-radius:12px;border:1px solid #f1f5f9;margin-top:1rem}.password-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.profile-container{padding:1rem}.profile-header{padding:2rem 0}.profile-header-content h1{font-size:2rem}.profile-header-content p{font-size:1rem}.profile-grid-bottom{flex-direction:column;gap:1.5rem}.profile-details-grid{grid-template-columns:1fr;gap:1rem}.profile-card{flex:1 1 auto;min-width:auto;max-width:none;padding:1.5rem}.info-item{flex-direction:column;align-items:flex-start;gap:.25rem}.password-actions{flex-direction:column}.profile-card-full{padding:1.5rem}}@media (max-width: 480px){.profile-header{padding:1.5rem 0}.profile-header-content h1{font-size:1.75rem}.profile-card{padding:1.25rem}.card-header{margin-bottom:1rem;padding-bottom:.75rem}.card-header h2{font-size:1.125rem}.profile-card-full{padding:1.25rem}.password-form{padding:1rem}}.not-found{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f8fafc;padding:2rem 1rem}.not-found-content{text-align:center;max-width:500px}.error-code{font-size:8rem;font-weight:700;color:#3b82f6;line-height:1;margin-bottom:1rem}.not-found h1{color:#1f2937;margin-bottom:1rem}.not-found p{color:#6b7280;margin-bottom:2rem;font-size:1.125rem}.not-found-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}@media (max-width: 768px){.error-code{font-size:4rem}.not-found-actions{flex-direction:column;align-items:center}}.portfolio-generator-container{min-height:100vh;background:#fafafa;padding:2rem 1rem}.portfolio-generator-content{max-width:1400px;margin:0 auto}.portfolio-generator-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:3rem;padding:2rem 0;border-bottom:1px solid #e5e7eb}.header-content{display:flex;flex-direction:column;gap:1rem}.back-button{background:none;border:none;color:#6b7280;font-size:.875rem;font-weight:500;cursor:pointer;transition:color .15s ease;padding:0;text-align:left}.back-button:hover{color:#374151}.header-text h1{font-size:2.25rem;font-weight:600;color:#111827;margin:0 0 .5rem;font-family:Inter,system-ui,-apple-system,sans-serif;letter-spacing:-.025em}.header-text p{color:#6b7280;font-size:1rem;margin:0;font-weight:400}.header-actions{display:flex;align-items:flex-start}.portfolio-options-grid{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:3rem;justify-content:center}.portfolio-option-card{flex:1 1 400px;max-width:450px;min-width:350px}.portfolio-option-card{background:#fff;border-radius:16px;border:2px solid #e5e7eb;padding:2rem;cursor:pointer;transition:all .15s ease;position:relative}.portfolio-option-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-2px)}.portfolio-option-card.selected{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;background:#fefeff}.portfolio-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.portfolio-info{display:flex;flex-direction:column;gap:.75rem}.portfolio-name{font-size:1.5rem;font-weight:600;color:#111827;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}.risk-tier-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;color:#fff;text-transform:uppercase;letter-spacing:.05em;width:fit-content}.selected-indicator{color:#1e40af;background:#eff6ff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.portfolio-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 1.5rem}.portfolio-metrics{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding:1.5rem;background:#f8fafc;border-radius:12px;border:1px solid #f1f5f9}.portfolio-metrics .metric-item{flex:1 1 calc(50% - .5rem);min-width:120px}.metric-item{display:flex;flex-direction:column;gap:.25rem}.metric-label{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:1rem;font-weight:600;color:#111827}.metric-value.positive{color:#059669}.metric-value.negative{color:#dc2626}.portfolio-holdings{margin-bottom:1.5rem}.portfolio-holdings h4{font-size:1rem;font-weight:600;color:#111827;margin:0 0 1rem;font-family:Inter,system-ui,-apple-system,sans-serif}.holdings-list{display:flex;flex-direction:column;gap:.75rem}.holding-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #f1f5f9}.holding-item:last-child{border-bottom:none}.holding-info{display:flex;flex-direction:column;gap:.25rem}.ticker-symbol{font-size:.875rem;font-weight:600;color:#1e40af;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.ticker-name{font-size:.75rem;color:#6b7280;font-weight:400}.holding-allocation{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.weight-percentage{font-size:.875rem;font-weight:600;color:#111827}.weight-value{font-size:.75rem;color:#6b7280;font-weight:400}.holdings-more{text-align:center;font-size:.75rem;color:#9ca3af;font-style:italic;padding:.5rem 0}.diversification-section{margin-bottom:1.5rem}.diversification-section h4{font-size:1rem;font-weight:600;color:#111827;margin:0 0 1rem;font-family:Inter,system-ui,-apple-system,sans-serif}.diversification-metrics{display:flex;flex-direction:column;gap:.5rem}.diversification-item{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.diversification-item span:first-child{color:#6b7280}.diversification-item span:last-child{color:#111827;font-weight:500}.ai-rationale{padding:1.5rem;background:#eff6ff;border-radius:12px;border:1px solid #dbeafe}.ai-rationale h4{font-size:.875rem;font-weight:600;color:#1e40af;margin:0 0 .75rem;font-family:Inter,system-ui,-apple-system,sans-serif;text-transform:uppercase;letter-spacing:.05em}.ai-rationale p{color:#1e40af;font-size:.875rem;line-height:1.5;margin:0}.no-options{background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:4rem 2rem;text-align:center}.no-options-content{max-width:400px;margin:0 auto}.no-options-icon{color:#9ca3af;margin-bottom:1.5rem}.no-options-content h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 .75rem;font-family:Inter,system-ui,-apple-system,sans-serif}.no-options-content p{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 2rem}.no-options-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.portfolio-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #e5e7eb;padding:1.5rem 0;margin-top:2rem}.actions-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:0 1rem}.selected-info{flex:1}.selection-summary{display:flex;align-items:center;gap:1rem}.selected-label{font-size:.875rem;color:#6b7280;font-weight:500}.selected-name{font-size:.875rem;color:#111827;font-weight:600}.selected-risk{font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.no-selection{font-size:.875rem;color:#9ca3af;font-style:italic}.action-buttons{display:flex;gap:1rem}@media (max-width: 1024px){.portfolio-options-grid{gap:1.5rem}.portfolio-option-card{flex:1 1 350px;min-width:300px}}@media (max-width: 768px){.portfolio-generator-container{padding:1rem}.portfolio-generator-header{flex-direction:column;gap:1.5rem;align-items:stretch}.header-text h1{font-size:1.875rem}.portfolio-options-grid{flex-direction:column;gap:1rem}.portfolio-option-card{flex:1 1 auto;min-width:auto;max-width:none;padding:1.5rem}.portfolio-metrics .metric-item{flex:1 1 100%}.actions-content{flex-direction:column;gap:1rem;align-items:stretch}.action-buttons{width:100%;justify-content:stretch}.action-buttons .btn{flex:1}.selection-summary{justify-content:center;text-align:center}}@media (max-width: 480px){.portfolio-generator-header{padding:1.5rem 0}.header-text h1{font-size:1.5rem}.portfolio-option-card{padding:1.25rem}.portfolio-name{font-size:1.25rem}.portfolio-metrics{padding:1rem}.portfolio-metrics .metric-item{flex:1 1 100%}.holding-item{flex-direction:column;align-items:flex-start;gap:.5rem}.holding-allocation{align-items:flex-start}.no-options-actions{flex-direction:column;align-items:stretch}.action-buttons{flex-direction:column}.selection-summary{flex-direction:column;align-items:center;gap:.5rem}}@keyframes selectCard{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.portfolio-option-card.selected{animation:selectCard .3s ease-in-out}.portfolio-generator-content .loading-spinner{min-height:60vh}.holding-item:hover{background:#f8fafc;margin:0 -.75rem;padding:.75rem;border-radius:8px;border-bottom:1px solid #f1f5f9}.diversification-item:hover{background:#f8fafc;margin:0 -1rem;padding:.5rem 1rem;border-radius:6px}.portfolio-option-card:focus{outline:none;border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a}.back-button:focus{outline:none;color:#1e40af}.portfolio-list-container{min-height:100vh;background:#fafafa;padding:2rem 1rem}.portfolio-list-content{max-width:1200px;margin:0 auto}.portfolio-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:3rem;padding:2rem 0;border-bottom:1px solid #e5e7eb}.portfolios-grid{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:flex-start}.portfolio-list-card{flex:1 1 400px;min-width:350px}.portfolio-list-card{background:#fff;border-radius:16px;border:2px solid #e5e7eb;padding:2rem;transition:all .15s ease;position:relative}.portfolio-list-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.portfolio-list-card.active{border-color:#059669;box-shadow:0 0 0 3px #0596691a;background:#fefffe}.portfolio-list-header-card{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.portfolio-meta{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.active-badge{background:#059669;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.portfolio-value{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.value-amount{font-size:1.5rem;font-weight:700;color:#111827;font-family:Inter,system-ui,-apple-system,sans-serif}.value-label{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.portfolio-metrics-compact{display:flex;gap:2rem;margin-bottom:1.5rem;padding:1rem;background:#f8fafc;border-radius:8px}.portfolio-info-section{display:flex;gap:2rem;margin-bottom:1.5rem;font-size:.875rem;color:#6b7280}.info-item{display:flex;align-items:center}.portfolio-card-actions{display:flex;gap:1rem;justify-content:flex-start;padding-top:1rem;border-top:1px solid #f1f5f9}.select-portfolio-btn{width:100%;padding:.75rem 1rem;font-size:.875rem;font-weight:500;border-radius:8px;transition:all .15s ease}.no-portfolios{background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:4rem 2rem;text-align:center}.no-portfolios-content{max-width:400px;margin:0 auto}.no-portfolios-icon{color:#9ca3af;margin-bottom:1.5rem}.no-portfolios-content h2{font-size:1.5rem;font-weight:600;color:#111827;margin:0 0 .75rem;font-family:Inter,system-ui,-apple-system,sans-serif}.no-portfolios-content p{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0 0 2rem}@media (max-width: 1024px){.portfolio-list-card{flex:1 1 350px;min-width:300px}}@media (max-width: 768px){.portfolio-list-container{padding:1rem}.portfolio-list-header{flex-direction:column;gap:1.5rem;align-items:stretch}.portfolios-grid{flex-direction:column;gap:1rem}.portfolio-list-card{flex:1 1 auto;min-width:auto;max-width:none;padding:1.5rem}.portfolio-list-header-card{flex-direction:column;gap:1rem;align-items:stretch}.portfolio-value{align-items:flex-start}.portfolio-metrics-compact{gap:1rem}.portfolio-info-section{flex-direction:column;gap:.5rem}.portfolio-card-actions{flex-direction:column}}@media (max-width: 480px){.portfolio-list-header{padding:1.5rem 0}.portfolio-list-card{padding:1.25rem}.portfolio-metrics-compact{flex-direction:column;gap:.75rem}}.portfolio-detail-container{min-height:100vh;background:#fafafa;padding:2rem 1rem}.portfolio-detail-content{max-width:1400px;margin:0 auto}.portfolio-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding:2rem 0;border-bottom:1px solid #e5e7eb}.portfolio-meta-header{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.portfolio-performance-section{background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:2rem;margin-bottom:2rem}.portfolio-value-card{margin-bottom:2rem}.portfolio-current-value{display:flex;align-items:baseline;gap:1rem;margin-bottom:.5rem}.current-value{font-size:3rem;font-weight:700;color:#111827;font-family:Inter,system-ui,-apple-system,sans-serif}.current-return{font-size:1.25rem;font-weight:600}.current-return.positive{color:#10b981}.current-return.negative{color:#ef4444}.portfolio-value-details{display:flex;flex-direction:column;gap:.25rem}.portfolio-value-label{font-size:.875rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.timeframe-info{font-size:.75rem;color:#9ca3af;font-weight:400}.performance-chart-section{border-top:1px solid #f1f5f9;padding-top:2rem}.timeframe-selector{display:flex;gap:.5rem;margin-bottom:2rem;background:#f8fafc;padding:.5rem;border-radius:12px;width:fit-content}.timeframe-button{background:transparent;border:none;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s ease}.timeframe-button:hover{background:#e5e7eb;color:#374151}.timeframe-button.active{background:#111827;color:#fff}.chart-container{position:relative;height:240px;margin-bottom:1rem;background:#fafafa;border-radius:12px;padding:20px;border:1px solid #f1f5f9}.chart-placeholder{width:100%;height:200px;border-radius:8px;overflow:visible}.performance-chart{width:100%;height:100%;overflow:visible}.no-data-message{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af;font-size:.875rem}.chart-info{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.current-performance{display:flex;align-items:baseline;gap:.5rem}.performance-value{font-size:1.125rem;font-weight:600}.performance-value.positive{color:#10b981}.performance-value.negative{color:#ef4444}.performance-period{font-size:.75rem;color:#6b7280;font-weight:500}.portfolio-details-grid{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.detail-card{flex:1 1 400px;min-width:350px}.detail-card{background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:2rem}.detail-card h3{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 1.5rem;font-family:Inter,system-ui,-apple-system,sans-serif}.metrics-grid{display:flex;flex-wrap:wrap;gap:1.5rem}.metrics-grid .metric-item{flex:1 1 calc(50% - .75rem);min-width:150px}.holdings-card{flex:1 1 100%}.holdings-detail-list{display:flex;flex-direction:column;gap:1.5rem}.holding-detail-item{padding:1rem 0;border-bottom:1px solid #f1f5f9}.holding-detail-item:last-child{border-bottom:none}.holding-main-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.holding-symbol-name{display:flex;flex-direction:column;gap:.25rem}.holding-symbol{font-size:1rem;font-weight:600;color:#1e40af;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.holding-name{font-size:.875rem;color:#6b7280;font-weight:400}.holding-allocation-detail{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.holding-weight{font-size:1rem;font-weight:600;color:#111827}.holding-value{font-size:.875rem;color:#6b7280;font-weight:400}.holding-weight-bar{width:100%;height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden}.weight-fill{height:100%;background:linear-gradient(90deg,#1e40af,#3b82f6);border-radius:3px;transition:width .3s ease}.portfolio-info-section{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.portfolio-info-section .detail-card{flex:1 1 400px;min-width:350px}.portfolio-description-text{color:#6b7280;font-size:.875rem;line-height:1.6;margin:0}.ai-rationale-card{background:#eff6ff;border-color:#dbeafe}.ai-rationale-card h3{color:#1e40af}.ai-rationale-text{color:#1e40af;font-size:.875rem;line-height:1.6;margin:0}.portfolio-meta-info{display:flex;gap:3rem;padding:1.5rem 0;border-top:1px solid #e5e7eb;font-size:.875rem}.meta-item{display:flex;gap:.5rem}.meta-label{color:#6b7280;font-weight:500}.meta-value{color:#111827;font-weight:600}@media (max-width: 1024px){.portfolio-details-grid{flex-direction:column}.detail-card{flex:1 1 auto;min-width:auto}.holdings-card{flex:1 1 auto}.metrics-grid .metric-item{flex:1 1 calc(50% - .75rem)}}@media (max-width: 768px){.portfolio-detail-container{padding:1rem}.portfolio-detail-header{flex-direction:column;gap:1rem;align-items:stretch}.portfolio-performance-section{padding:1.5rem}.portfolio-current-value{flex-direction:column;gap:.5rem;align-items:flex-start}.current-value{font-size:2.5rem}.timeframe-selector{width:100%;justify-content:space-between}.timeframe-button{flex:1;text-align:center}.detail-card{padding:1.5rem}.metrics-grid .metric-item{flex:1 1 100%}.holding-main-info{flex-direction:column;align-items:flex-start;gap:.75rem}.holding-allocation-detail{align-items:flex-start}.portfolio-info-section{flex-direction:column;gap:1rem}.portfolio-info-section .detail-card{flex:1 1 auto;min-width:auto}.portfolio-meta-info{flex-direction:column;gap:1rem}}@media (max-width: 480px){.portfolio-detail-header{padding:1.5rem 0}.portfolio-performance-section{padding:1.25rem}.current-value{font-size:2rem}.timeframe-selector{padding:.375rem;gap:.25rem}.timeframe-button{padding:.375rem .5rem;font-size:.75rem}.detail-card{padding:1.25rem}.detail-card h3{font-size:1.125rem}}.footer{background:linear-gradient(135deg,#fff,#f8fafc);border-top:2px solid #e2e8f0;box-shadow:0 -4px 6px -1px #0000001a,0 -2px 4px -1px #0000000f;margin-top:auto;padding:3rem 0 1.5rem}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem}.footer-content{display:flex;justify-content:center;align-items:flex-start;gap:4rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.footer-brand{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:400px}.footer-logo{width:220px;height:auto;object-fit:contain;margin-bottom:1rem;transition:transform .2s ease}.footer-logo:hover{transform:translateY(-2px)}.footer-description{color:#6b7280;font-size:.875rem;line-height:1.6;margin:0;font-weight:400}.footer-links{display:flex;gap:3rem}.footer-section{display:flex;flex-direction:column;gap:1rem}.footer-section h4{font-size:.875rem;font-weight:600;color:#1e40af;margin:0;text-transform:uppercase;letter-spacing:.05em;font-family:Inter,system-ui,-apple-system,sans-serif}.footer-section ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.footer-section ul li{margin:0}.footer-section ul li a{color:#6b7280;text-decoration:none;font-size:.875rem;font-weight:400;transition:all .2s ease;padding:.25rem 0;display:block}.footer-section ul li a:hover{color:#1e40af;transform:translate(4px)}.footer-bottom{text-align:center;padding-top:1.5rem}.footer-bottom p{color:#9ca3af;font-size:.75rem;margin:0;font-weight:500;letter-spacing:.025em}.footer-year{color:#1e40af;font-weight:600}@media (max-width: 768px){.footer{padding:2rem 0 1rem}.footer-container{padding:0 1rem}.footer-content{flex-direction:column;gap:2rem;align-items:center;text-align:center}.footer-logo{width:180px;margin-bottom:.75rem}.footer-links{gap:2rem;justify-content:center}.footer-section{align-items:center;text-align:center}}@media (max-width: 480px){.footer{padding:1.5rem 0 .75rem}.footer-container{padding:0 .75rem}.footer-content{gap:1.5rem}.footer-logo{width:160px}.footer-links{flex-direction:column;gap:1.5rem;width:100%}.footer-section{width:100%}.footer-section ul{align-items:center}.footer-bottom{padding-top:1rem}.footer-bottom p{font-size:.6875rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.footer{animation:fadeInUp .6s ease-out}
