:root{--light-bg-primary: #F8FAFC;--light-bg-secondary: #FFFFFF;--light-bg-card: #FFFFFF;--light-text-primary: #1E293B;--light-text-secondary: #64748B;--light-border: #E2E8F0;--light-blue-50: #EFF6FF;--light-blue-100: #DBEAFE;--light-blue-500: #3B82F6;--light-blue-600: #2563EB;--light-purple-50: #FAF5FF;--light-purple-100: #F3E8FF;--light-purple-500: #A855F7;--light-purple-600: #9333EA;--dark-bg-primary: #0F172A;--dark-bg-secondary: #1E293B;--dark-bg-card: #1E293B;--dark-text-primary: #F1F5F9;--dark-text-secondary: #94A3B8;--dark-border: #334155;--dark-blue-500: #3B82F6;--dark-blue-600: #2563EB;--dark-blue-700: #1D4ED8;--dark-purple-500: #A855F7;--dark-purple-600: #9333EA;--dark-purple-700: #7E22CE;--success: #10B981;--warning: #F59E0B;--error: #EF4444}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;transition:all .3s ease}.app.light{background:linear-gradient(135deg,var(--light-blue-50) 0%,var(--light-purple-50) 100%);color:var(--light-text-primary)}.app.dark{background:linear-gradient(135deg,var(--dark-bg-primary) 0%,#1a1f35 100%);color:var(--dark-text-primary)}.app-header{padding:1.5rem 2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:100}.light .app-header{background:#fffc;border-bottom:1px solid var(--light-border)}.dark .app-header{background:#1e293bcc;border-bottom:1px solid var(--dark-border)}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.75rem}.logo-icon{color:var(--light-blue-500)}.dark .logo-icon{color:var(--dark-blue-500)}.logo h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dark .logo h1{background:linear-gradient(135deg,var(--dark-blue-500),var(--dark-purple-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.theme-toggle{padding:.75rem;border-radius:12px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.light .theme-toggle{background:var(--light-blue-100);color:var(--light-blue-600)}.dark .theme-toggle{background:var(--dark-bg-card);color:var(--dark-blue-500);border:1px solid var(--dark-border)}.theme-toggle:hover{transform:scale(1.1) rotate(15deg)}.main-content{max-width:1400px;margin:0 auto;padding:2rem;min-height:calc(100vh - 180px)}.upload-container{max-width:800px;margin:0 auto}.upload-header{text-align:center;margin-bottom:3rem}.upload-header h2{font-size:2.5rem;font-weight:800;margin-bottom:1rem}.upload-header p{font-size:1.125rem;color:var(--light-text-secondary)}.dark .upload-header p{color:var(--dark-text-secondary)}.upload-card{padding:2.5rem;border-radius:24px;margin-bottom:3rem;box-shadow:0 20px 50px #0000001a}.light .upload-card{background:var(--light-bg-card);border:2px solid var(--light-border)}.dark .upload-card{background:var(--dark-bg-card);border:2px solid var(--dark-border)}.dropzone{border:3px dashed var(--light-border);border-radius:16px;padding:3rem;text-align:center;cursor:pointer;transition:all .3s ease;margin-bottom:1.5rem}.dark .dropzone{border-color:var(--dark-border)}.dropzone:hover,.dropzone.active{border-color:var(--light-blue-500);background:var(--light-blue-50)}.dark .dropzone:hover,.dark .dropzone.active{border-color:var(--dark-blue-500);background:#3b82f61a}.upload-icon{display:inline-flex;padding:1.5rem;border-radius:50%;margin-bottom:1.5rem;background:linear-gradient(135deg,var(--light-blue-100),var(--light-purple-100));color:var(--light-blue-600)}.dark .upload-icon{background:linear-gradient(135deg,#3b82f633,#a855f733);color:var(--dark-blue-500)}.dropzone h3{font-size:1.25rem;margin-bottom:.5rem}.upload-hint{color:var(--light-text-secondary);font-size:.875rem}.dark .upload-hint{color:var(--dark-text-secondary)}.file-preview{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;border-radius:12px;background:var(--light-blue-50);margin-bottom:1rem}.dark .file-preview{background:#3b82f61a}.file-preview svg{color:var(--light-blue-600)}.dark .file-preview svg{color:var(--dark-blue-500)}.file-info{text-align:left;flex:1}.file-name{font-weight:600;margin-bottom:.25rem}.file-size{font-size:.875rem;color:var(--light-text-secondary)}.dark .file-size{color:var(--dark-text-secondary)}.change-file-btn{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--light-border);background:#fff;cursor:pointer;font-size:.875rem;transition:all .2s ease}.dark .change-file-btn{background:var(--dark-bg-secondary);border-color:var(--dark-border);color:var(--dark-text-primary)}.change-file-btn:hover{background:var(--light-blue-50)}.dark .change-file-btn:hover{background:#3b82f61a}.analyse-btn{width:100%;padding:1rem 2rem;border-radius:12px;border:none;font-size:1.125rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:all .3s ease;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff;box-shadow:0 10px 30px #3b82f64d}.dark .analyse-btn{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600));box-shadow:0 10px 30px #3b82f633}.analyse-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 15px 40px #3b82f666}.analyse-btn:disabled{opacity:.6;cursor:not-allowed}.spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:12px;background:#ef44441a;color:var(--error);margin-bottom:1rem;border:1px solid rgba(239,68,68,.2)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}.feature{text-align:center;padding:2rem;border-radius:16px;transition:all .3s ease}.light .feature{background:var(--light-bg-card)}.dark .feature{background:var(--dark-bg-card);border:1px solid var(--dark-border)}.feature:hover{transform:translateY(-5px)}.feature-icon{font-size:2.5rem;margin-bottom:1rem}.feature h4{font-size:1.125rem;margin-bottom:.5rem}.feature p{font-size:.875rem;color:var(--light-text-secondary)}.dark .feature p{color:var(--dark-text-secondary)}.results-container{max-width:1200px;margin:0 auto}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.back-btn,.download-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:12px;border:none;font-weight:600;cursor:pointer;transition:all .3s ease}.back-btn{background:transparent;border:2px solid var(--light-border)}.dark .back-btn{border-color:var(--dark-border);color:var(--dark-text-primary)}.download-btn{background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff}.dark .download-btn{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600))}.back-btn:hover,.download-btn:hover{transform:translateY(-2px)}.overall-score-card{display:flex;align-items:center;gap:3rem;padding:3rem;border-radius:24px;margin-bottom:2rem;box-shadow:0 20px 50px #0000001a}.light .overall-score-card{background:var(--light-bg-card);border:2px solid var(--light-border)}.dark .overall-score-card{background:var(--dark-bg-card);border:2px solid var(--dark-border)}.score-visual{position:relative}.score-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.score-text h2{font-size:3rem;font-weight:800;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dark .score-text h2{background:linear-gradient(135deg,var(--dark-blue-500),var(--dark-purple-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.score-text p{font-size:1.25rem;color:var(--light-text-secondary)}.dark .score-text p{color:var(--dark-text-secondary)}.score-info{flex:1}.score-info h3{font-size:1.75rem;margin-bottom:1rem}.rating-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;font-weight:600;margin-bottom:1rem}.summary-text{font-size:1.125rem;line-height:1.7;color:var(--light-text-secondary)}.dark .summary-text{color:var(--dark-text-secondary)}.buckets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:2rem;margin-bottom:2rem}.bucket-card{padding:2rem;border-radius:20px;box-shadow:0 10px 30px #00000014;transition:all .3s ease}.light .bucket-card{background:var(--light-bg-card);border:2px solid var(--light-border)}.dark .bucket-card{background:var(--dark-bg-card);border:2px solid var(--dark-border)}.bucket-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #0000001f}.bucket-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.bucket-header h4{font-size:1.125rem;font-weight:700}.bucket-score{display:flex;align-items:baseline;gap:.25rem}.score-value{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dark .score-value{background:linear-gradient(135deg,var(--dark-blue-500),var(--dark-purple-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.score-max{font-size:1.25rem;color:var(--light-text-secondary)}.dark .score-max{color:var(--dark-text-secondary)}.progress-bar{height:12px;background:var(--light-blue-50);border-radius:999px;overflow:hidden;margin-bottom:1.5rem}.dark .progress-bar{background:#3b82f61a}.progress-fill{height:100%;border-radius:999px;transition:width 1s ease}.bucket-section{margin-top:1.5rem}.bucket-section h5{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem;color:var(--light-text-secondary)}.dark .bucket-section h5{color:var(--dark-text-secondary)}.strengths-list,.recommendations-list{list-style:none;padding:0}.strengths-list li,.recommendations-list li{padding:.75rem;margin-bottom:.5rem;border-radius:8px;font-size:.9375rem;line-height:1.6}.light .strengths-list li{background:#10b9811a;color:var(--light-text-primary)}.dark .strengths-list li{background:#10b9811a;color:var(--dark-text-primary)}.light .recommendations-list li{background:var(--light-blue-50);color:var(--light-text-primary)}.dark .recommendations-list li{background:#3b82f61a;color:var(--dark-text-primary)}.priorities-card{padding:2.5rem;border-radius:24px;box-shadow:0 20px 50px #0000001a}.light .priorities-card{background:linear-gradient(135deg,var(--light-blue-50),var(--light-purple-50));border:2px solid var(--light-border)}.dark .priorities-card{background:linear-gradient(135deg,#3b82f61a,#a855f71a);border:2px solid var(--dark-border)}.priorities-card h3{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;margin-bottom:1.5rem;color:var(--light-blue-600)}.dark .priorities-card h3{color:var(--dark-blue-500)}.priorities-list{list-style:none;counter-reset:priority-counter}.priorities-list li{counter-increment:priority-counter;position:relative;padding:1.25rem 1.5rem 1.25rem 3.5rem;margin-bottom:1rem;border-radius:12px;font-size:1rem;line-height:1.6}.light .priorities-list li{background:#fff}.dark .priorities-list li{background:var(--dark-bg-card)}.priorities-list li:before{content:counter(priority-counter);position:absolute;left:1rem;top:1.25rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff;font-size:.875rem}.dark .priorities-list li:before{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600))}.chat-toggle{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff;box-shadow:0 10px 30px #3b82f666;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:999}.dark .chat-toggle{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600))}.chat-window{position:fixed;bottom:6rem;right:2rem;width:400px;height:600px;border-radius:24px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden;z-index:998}.light .chat-window{background:#fff;border:2px solid var(--light-border)}.dark .chat-window{background:var(--dark-bg-card);border:2px solid var(--dark-border)}.chat-header{padding:1.25rem;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff}.dark .chat-header{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600))}.chat-title h4{font-size:1.125rem;font-weight:600}.chat-close{background:transparent;border:none;color:#fff;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.chat-close:hover{background:#fff3}.chat-message{max-width:80%;animation:slideIn .3s ease}.chat-message.user{align-self:flex-end}.chat-message.assistant{align-self:flex-start}.message-content{padding:.875rem 1.125rem;border-radius:16px;font-size:.9375rem;line-height:1.6}.user .message-content{background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff;border-bottom-right-radius:4px}.light .assistant .message-content{background:var(--light-blue-50);color:var(--light-text-primary);border-bottom-left-radius:4px}.dark .assistant .message-content{background:#3b82f61a;color:var(--dark-text-primary);border-bottom-left-radius:4px}.chat-input-container{padding:1rem;display:flex;gap:.75rem;border-top:1px solid var(--light-border)}.dark .chat-input-container{border-top-color:var(--dark-border)}.chat-input{flex:1;padding:.875rem 1.125rem;border-radius:12px;border:2px solid var(--light-border);font-size:.9375rem;transition:all .2s ease}.dark .chat-input{background:var(--dark-bg-secondary);border-color:var(--dark-border);color:var(--dark-text-primary)}.chat-input:focus{outline:none;border-color:var(--light-blue-500)}.dark .chat-input:focus{border-color:var(--dark-blue-500)}.chat-send{padding:.875rem 1rem;border-radius:12px;border:none;background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.dark .chat-send{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600))}.chat-send:hover:not(:disabled){transform:scale(1.05)}.app-footer{text-align:center;padding:2rem;font-size:.875rem;color:var(--light-text-secondary)}.dark .app-footer{color:var(--dark-text-secondary)}@media (max-width: 768px){.buckets-grid{grid-template-columns:1fr}.overall-score-card{flex-direction:column;text-align:center}.chat-window{width:calc(100vw - 2rem);right:1rem}}.preppal-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--light-purple-500),var(--light-blue-500));display:flex;align-items:center;justify-content:center;margin-right:.5rem;box-shadow:0 2px 8px #a855f74d}.dark .preppal-avatar{background:linear-gradient(135deg,var(--dark-purple-500),var(--dark-blue-500));box-shadow:0 2px 8px #a855f766}.robot-emoji{font-size:24px;display:inline-block}.preppal-subtitle{font-size:.75rem;opacity:.8;font-weight:400}.chat-title{display:flex;align-items:center;gap:.5rem}.chat-title>div{display:flex;flex-direction:column;gap:.125rem}.chat-title h4{font-size:1.125rem;font-weight:600;margin:0}.chat-message{display:flex;align-items:flex-start;gap:.75rem;max-width:80%;animation:slideIn .3s ease}.message-avatar{width:32px;height:32px;min-width:32px;border-radius:50%;background:linear-gradient(135deg,var(--light-purple-500),var(--light-blue-500));display:flex;align-items:center;justify-content:center;font-size:18px;margin-top:.25rem;box-shadow:0 2px 6px #a855f74d}.dark .message-avatar{background:linear-gradient(135deg,var(--dark-purple-600),var(--dark-blue-600));box-shadow:0 2px 6px #a855f766}.light .assistant .message-content{background:linear-gradient(135deg,var(--light-purple-50),var(--light-blue-50));color:var(--light-text-primary);border-bottom-left-radius:4px;border:1px solid var(--light-purple-100)}.dark .assistant .message-content{background:linear-gradient(135deg,#a855f71a,#3b82f61a);color:var(--dark-text-primary);border-bottom-left-radius:4px;border:1px solid rgba(168,85,247,.2)}.user .message-content{background:linear-gradient(135deg,var(--light-blue-600),var(--light-purple-600));color:#fff;border-bottom-right-radius:4px;margin-left:auto}.dark .user .message-content{background:linear-gradient(135deg,var(--dark-blue-600),var(--dark-purple-600))}.typing-indicator{display:flex;align-items:center;gap:.375rem;padding:.75rem 1rem}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--light-purple-500);animation:typingBounce 1.4s infinite ease-in-out}.dark .typing-dot{background:var(--dark-purple-500)}.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 typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{flex-direction:row-reverse;margin-left:auto}.message-content{padding:.875rem 1.125rem;border-radius:16px;font-size:.9375rem;line-height:1.6;flex:1;max-width:100%}.chat-messages{flex:1;padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--light-border);border-radius:3px}.dark .chat-messages::-webkit-scrollbar-thumb{background:var(--dark-border)}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--light-purple-300)}.dark .chat-messages::-webkit-scrollbar-thumb:hover{background:var(--dark-purple-500)}.chat-send{padding:.875rem 1rem;border-radius:12px;border:none;background:linear-gradient(135deg,var(--light-purple-600),var(--light-blue-600));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.dark .chat-send{background:linear-gradient(135deg,var(--dark-purple-600),var(--dark-blue-600))}.chat-send:disabled{opacity:.5;cursor:not-allowed}.chat-send:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #a855f74d}.chat-toggle{background:linear-gradient(135deg,var(--light-purple-600),var(--light-blue-600));box-shadow:0 10px 30px #a855f766}.dark .chat-toggle{background:linear-gradient(135deg,var(--dark-purple-600),var(--dark-blue-600))}.chat-toggle:hover{box-shadow:0 12px 35px #a855f780}@media (max-width: 768px){.message-avatar{width:28px;height:28px;min-width:28px;font-size:16px}.preppal-avatar{width:36px;height:36px}.robot-emoji{font-size:20px}.chat-message{max-width:85%}}
