:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#0a1628,#0d2137);color:#e0e0e0;min-height:100vh}a{color:#2196f3;text-decoration:none}a:hover{color:#64b5f6}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 3rem;background:#0000004d;border-bottom:1px solid rgba(33,150,243,.2);width:100%}.nav-brand a{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:#fff;background:linear-gradient(90deg,#2196f3,#5cb3e8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.nav-logo{height:40px;width:auto}.nav-search{display:flex;flex:1;max-width:500px;margin:0 2rem}.nav-search input{flex:1;padding:.6rem 1rem;border:1px solid rgba(33,150,243,.3);border-radius:8px 0 0 8px;background:#0000004d;color:#fff;font-size:.95rem}.nav-search input:focus{outline:none;border-color:#2196f3}.nav-search button{padding:.6rem 1.2rem;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none;border-radius:0 8px 8px 0;cursor:pointer;font-weight:600;transition:all .2s}.nav-search button:hover{background:linear-gradient(135deg,#42a5f5,#2196f3)}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-links a{color:#e0e0e0}.user-email{color:#888;font-size:.9rem}.btn-logout{background:transparent;border:1px solid #f44336;color:#f44336;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s}.btn-logout:hover{background:#f44336;color:#fff}.main-content{padding:2rem 3rem;width:100%;flex:1}.loading{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.2rem;color:#888}.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;border:none;text-align:center}.btn-primary{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#42a5f5,#2196f3);transform:translateY(-2px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;border:2px solid #2196f3;color:#2196f3}.btn-secondary:hover{background:#2196f31a}.btn-large{padding:1rem 2rem;font-size:1.1rem}.hero{text-align:center;padding:4rem 2rem}.hero h1{font-size:3.5rem;margin-bottom:1rem;background:linear-gradient(90deg,#2196f3,#5cb3e8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.tagline{font-size:1.5rem;color:#b0b0b0;margin-bottom:1rem}.description{max-width:700px;margin:0 auto 2rem;color:#888;line-height:1.6}.hero-actions{display:flex;gap:1rem;justify-content:center}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:4rem;padding:0 2rem}.feature{background:#ffffff0d;padding:2rem;border-radius:12px;text-align:center;border:1px solid rgba(33,150,243,.2);display:flex;flex-direction:column;gap:.5rem}.feature h3{color:#fff;margin-bottom:.5rem}.feature p{color:#888;flex:1}.feature.custom-solution{border-color:#ff980066;background:#ff98000d}.feature.custom-solution h3{color:#ffb74d}.feature .btn{margin-top:1rem}.home-models{margin-top:5rem;padding:0 2rem}.home-models h2{font-size:2.5rem;color:#fff;text-align:center;margin-bottom:.5rem}.section-subtitle{text-align:center;color:#888;margin-bottom:2rem}.auth-page{display:flex;justify-content:center;align-items:center;min-height:60vh}.auth-form{background:#ffffff0d;padding:2.5rem;border-radius:12px;width:100%;max-width:400px;border:1px solid rgba(33,150,243,.2)}.auth-form h2{margin-bottom:1.5rem;text-align:center;color:#fff}.auth-form input{width:100%;padding:.875rem;margin-bottom:1rem;border:1px solid rgba(33,150,243,.3);border-radius:8px;background:#0000004d;color:#fff;font-size:1rem}.auth-form input:focus{outline:none;border-color:#2196f3}.auth-form .btn{width:100%;margin-bottom:1rem}.auth-form p{text-align:center;color:#888}.error{background:#f443361a;border:1px solid #f44336;color:#f44336;padding:.75rem;border-radius:8px;margin-bottom:1rem}.success{background:#00c8961a;border:1px solid #00c896;color:#00c896;padding:.75rem;border-radius:8px;margin-bottom:1rem}.models-page h1{color:#fff;margin-bottom:.5rem}.subtitle{color:#888;margin-bottom:2rem}.models-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.model-card{background:#ffffff0d;border-radius:12px;padding:1.5rem;border:1px solid rgba(33,150,243,.2);transition:transform .2s,border-color .2s}.model-card:hover{transform:translateY(-4px);border-color:#2196f3}.model-card.complex{border-color:#ff98004d}.model-type{display:inline-block;background:#2196f333;color:#2196f3;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;text-transform:uppercase;margin-bottom:.75rem}.model-card h3{color:#fff;margin-bottom:.5rem}.model-card p{color:#888;font-size:.9rem;margin-bottom:1rem;line-height:1.5}.required-cols{font-size:.85rem;color:#5cb3e8;margin-bottom:1rem;padding:.5rem;background:#2196f31a;border-radius:6px}.model-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(33,150,243,.1)}.price{font-weight:700;color:#00c896}.run-model-page{max-width:700px}.back-link{display:inline-block;margin-bottom:1.5rem;color:#888}.back-link:hover{color:#2196f3}.run-model-page h1{color:#fff;margin-bottom:.5rem}.model-desc{color:#888;margin-bottom:2rem}.schema-info{background:#2196f31a;border-radius:8px;padding:1rem 1.5rem;margin-bottom:2rem}.schema-info h3{color:#fff;margin-bottom:.5rem;font-size:1rem}.schema-info ul{margin-left:1.5rem;color:#5cb3e8}.upload-section,.run-section{background:#ffffff0d;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid rgba(33,150,243,.2)}.upload-section h3,.run-section h3{color:#fff;margin-bottom:1rem}.file-upload input{margin-bottom:1rem}.existing-uploads{margin-top:1rem}.existing-uploads label{display:block;margin-bottom:.5rem;color:#888}.existing-uploads select{width:100%;padding:.75rem;border-radius:8px;border:1px solid rgba(33,150,243,.3);background:#0000004d;color:#fff}.jobs-page h1{color:#fff;margin-bottom:1.5rem}.no-jobs{text-align:center;padding:3rem;color:#888}.jobs-list{display:grid;gap:1rem}.job-card{background:#ffffff0d;border-radius:12px;padding:1.5rem;border:1px solid rgba(33,150,243,.2)}.job-card.complete{border-color:#00c8964d}.job-card.failed{border-color:#f443364d}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.job-header h3{color:#fff}.status{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;text-transform:uppercase}.status.pending{background:#ffc10733;color:#ffc107}.status.running{background:#2196f333;color:#2196f3}.status.complete{background:#00c89633;color:#00c896}.status.failed{background:#f4433633;color:#f44336}.job-file,.job-date{color:#888;font-size:.9rem;margin-bottom:.25rem}.job-error{color:#f44336;margin-top:.5rem;font-size:.9rem}.job-card .btn{margin-top:1rem}.footer{background:#0006;border-top:1px solid rgba(33,150,243,.2);padding:3rem;margin-top:auto}.footer-content{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:1400px;margin:0 auto}.footer-section h4{color:#fff;margin-bottom:1rem;font-size:1.1rem}.footer-section p{color:#888;line-height:1.6}.footer-section a{display:block;color:#888;margin-bottom:.5rem;transition:color .2s}.footer-section a:hover{color:#2196f3}.footer-bottom{text-align:center;padding-top:2rem;margin-top:2rem;border-top:1px solid rgba(255,255,255,.1)}.footer-bottom p{color:#666;font-size:.9rem}@media(max-width:1024px){.features,.footer-content{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.navbar{flex-direction:column;gap:1rem;padding:1rem}.nav-search{width:100%;max-width:none;margin:0}.features,.footer-content{grid-template-columns:1fr}.hero h1{font-size:2.5rem}}
