*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{color:#e5e7eb;-webkit-font-smoothing:antialiased;background:#101827;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{display:block}.login-page{color:#e2e8f0;background:#0f172a;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#111827;border:1px solid #1f2937;border-radius:16px;width:100%;max-width:400px;padding:32px 28px;box-shadow:0 20px 50px #00000059}.login-card h1{margin:0 0 8px;font-size:1.5rem}.login-sub{color:#94a3b8;margin:0 0 24px;font-size:.9rem;line-height:1.5}.login-google-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:10px;width:100%;padding:12px 16px;font-size:.95rem;font-weight:600}.login-google-btn:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#f87171;margin:16px 0 0;font-size:.85rem}.account-app{flex-direction:column;min-height:100vh;display:flex}.account-header{background:#0b1220;border-bottom:1px solid #1f2937;padding:16px 20px}.account-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.account-title{color:#f3f4f6;margin:0;font-size:1.25rem}.account-back{color:#93c5fd;font-size:13px;text-decoration:none}.account-back:hover{text-decoration:underline}.account-body{flex:1;min-height:0;display:flex}.account-nav{background:#0f172a;border-right:1px solid #1f2937;flex-direction:column;flex-shrink:0;gap:4px;width:200px;padding:16px 12px;display:flex}.account-nav-link{color:#9ca3af;border-radius:8px;padding:10px 12px;font-size:14px;text-decoration:none;display:block}.account-nav-link:hover{color:#e5e7eb;background:#1e293b}.account-nav-link-active{color:#93c5fd;background:#1e3a5f}.account-main{flex:1;padding:20px 24px;overflow:auto}.account-panel{max-width:720px}.account-panel h2{color:#f3f4f6;margin:0 0 16px;font-size:1.1rem}.account-muted{color:#9ca3af;font-size:14px;line-height:1.5}.account-error{color:#fca5a5;font-size:14px}.account-field{margin-bottom:16px}.account-field label{color:#9ca3af;margin-bottom:6px;font-size:12px;display:block}.account-field input{color:#e5e7eb;background:#111827;border:1px solid #374151;border-radius:8px;width:100%;max-width:400px;padding:8px 10px;font-size:14px}.account-field .readonly{color:#d1d5db;font-size:14px}.account-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.account-btn{color:#e5e7eb;cursor:pointer;background:#111827;border:1px solid #374151;border-radius:8px;padding:8px 14px;font-size:13px}.account-btn-primary{background:#1d4ed8;border-color:#2563eb}.account-btn:disabled{opacity:.5;cursor:not-allowed}.account-msg{margin-top:8px;font-size:13px}.account-msg-error{color:#fca5a5}.account-msg-ok{color:#86efac}.usage-cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.usage-card{background:#0c1929;border:1px solid #1e3a5f;border-radius:10px;padding:14px}.usage-card-label{color:#9ca3af;margin-bottom:4px;font-size:11px}.usage-card-value{color:#93c5fd;font-size:1rem}.usage-period-select{color:#e5e7eb;background:#111827;border:1px solid #374151;border-radius:8px;margin-bottom:16px;padding:6px 10px}.usage-table-wrap{overflow-x:auto}.usage-table{border-collapse:collapse;width:100%;font-size:13px}.usage-table th,.usage-table td{text-align:left;border-bottom:1px solid #1f2937;padding:8px 10px}.usage-table th{color:#9ca3af;font-weight:500}.usage-table td{color:#d1d5db}.billing-placeholder{color:#9ca3af;background:#111827;border:1px dashed #374151;border-radius:10px;padding:20px;line-height:1.6}.billing-balance{background:#111827;border:1px solid #374151;border-radius:10px;align-items:baseline;gap:12px;margin-bottom:24px;padding:16px 20px;display:flex}.billing-balance-label{color:#9ca3af;font-size:14px}.billing-balance-value{color:#f3f4f6;font-size:1.75rem;font-weight:600}.billing-section{margin-bottom:28px}.billing-section h3{color:#e5e7eb;margin:0 0 8px;font-size:1rem}.billing-tier-row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.billing-tier-btn,.billing-subscribe-btn{color:#e5e7eb;cursor:pointer;background:#1e3a5f;border:1px solid #374151;border-radius:8px;padding:10px 18px;font-size:14px}.billing-tier-btn:hover:not(:disabled),.billing-subscribe-btn:hover:not(:disabled){background:#2563eb;border-color:#3b82f6}.billing-tier-btn:disabled,.billing-subscribe-btn:disabled{opacity:.5;cursor:not-allowed}.billing-ledger{margin:0;padding:0;list-style:none}.billing-ledger li{border-bottom:1px solid #1f2937;grid-template-columns:1fr auto;gap:4px 16px;padding:10px 0;font-size:13px;display:grid}.billing-credit{color:#6ee7b7}.billing-debit{color:#fca5a5}.app{box-sizing:border-box;max-width:880px;min-height:100vh;margin:0 auto;padding:24px 16px 48px}.header{margin-bottom:20px}.header-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.user-bar{flex-flow:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.user-email{color:#9ca3af;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:.75rem;overflow:hidden}.usage-monthly{color:#93c5fd;text-align:right;max-width:280px;font-size:.72rem;line-height:1.35}.usage-line{color:#93c5fd;background:#0c1929;border:1px solid #1e3a5f;border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:.78rem}.btn-account,.btn-signout{color:#e5e7eb;cursor:pointer;background:#111827;border:1px solid #374151;border-radius:8px;padding:6px 10px;font-size:.75rem;text-decoration:none}.btn-account:hover{color:#93c5fd;border-color:#4b5563}.app-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.title{color:#f9fafb;margin:0 0 8px;font-size:1.25rem;font-weight:600}.subtitle{color:#9ca3af;margin:0;font-size:.875rem;line-height:1.45}.chat{background:#111827;border:1px solid #1f2937;border-radius:12px;flex-direction:column;gap:10px;max-height:min(52vh,420px);margin-bottom:16px;padding:12px;display:flex;overflow-y:auto}.bubble{text-align:left;border-radius:12px;max-width:95%;padding:10px 14px;font-size:.9rem;line-height:1.45}.bubble-system{color:#e5e7eb;background:#1f2937;border:1px dashed #374151;align-self:center}.bubble-user{color:#fff;background:#1d4ed8;align-self:flex-end}.bubble-progress{color:#cbd5e1;background:#0f172a;border-left:3px solid #3b82f6;align-self:stretch;font-size:.8rem}.bubble-error{color:#fecaca;background:#450a0a;border:1px solid #7f1d1d;align-self:stretch}.job-panel{color:#cbd5e1;background:#0f172a;border:1px solid #1e3a5f;border-radius:12px;margin-bottom:16px;padding:14px 16px;font-size:.8125rem}.job-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.job-panel-title{color:#f1f5f9;font-size:.9rem;font-weight:600}.job-panel-meta{color:#94a3b8;font-size:.75rem}.job-progress-bar-wrap{background:#1e293b;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.job-progress-bar{background:linear-gradient(90deg,#2563eb,#38bdf8);border-radius:4px;height:100%;transition:width .25s}.job-progress-stats{color:#94a3b8;margin-bottom:12px;line-height:1.4}.job-running-block{background:#111c33;border:1px solid #334155;border-radius:8px;margin-bottom:12px;padding:10px 12px}.job-running-title{color:#38bdf8;margin-bottom:6px;font-size:.75rem;font-weight:600}.job-running-list{color:#e2e8f0;margin:0;padding-left:18px}.job-running-list li{margin-bottom:4px}.job-slot-badge{color:#38bdf8;min-width:2rem;margin-right:6px;font-family:ui-monospace,monospace;font-size:.75rem;display:inline-block}.job-path{word-break:break-all}.job-file-table-wrap{border:1px solid #334155;border-radius:8px;max-height:min(36vh,320px);overflow:auto}.job-file-table{border-collapse:collapse;width:100%;font-size:.75rem}.job-file-table th{color:#94a3b8;text-align:left;background:#1e293b;border-bottom:1px solid #334155;padding:8px 10px;position:sticky;top:0}.job-file-table td{vertical-align:top;border-bottom:1px solid #1e293b;padding:6px 10px}.job-path-cell{word-break:break-all;max-width:70%}.job-status-cell{white-space:nowrap;color:#cbd5e1}.job-row-running .job-status-cell{color:#38bdf8}.job-row-done .job-status-cell{color:#6ee7b7}.job-row-failed .job-status-cell{color:#fca5a5;white-space:normal;vertical-align:top}.job-fail-wrap{max-width:min(22rem,42vw)}.job-err-detail{color:#fecaca;word-break:break-word;white-space:normal;margin-top:4px;font-size:.75rem;line-height:1.35}.job-row-queued .job-status-cell{color:#64748b}.job-err{cursor:help;border-bottom:1px dotted #fca5a5}.job-tabs-shell{background:#0f172a;border:1px solid #1e3a5f;border-radius:12px;margin-bottom:16px;overflow:hidden}.job-tabs-shell .job-panel{border:none;border-radius:0;margin-bottom:0}.job-tab-bar{background:#111c33;border-bottom:1px solid #1e3a5f;gap:0;display:flex}.job-tab{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex:1;padding:10px 14px;font-size:.8125rem;font-weight:500;transition:color .15s,background .15s}.job-tab:hover{color:#e2e8f0;background:#1e3a5f59}.job-tab-active{color:#f1f5f9;background:#0f172a;box-shadow:inset 0 -2px #38bdf8}.job-panel-download-prep .job-panel-meta{text-align:right;max-width:70%}.job-prep-hint{color:#94a3b8;background:#111c33;border:1px dashed #475569;border-radius:8px;margin:0 0 12px;padding:8px 10px;font-size:.75rem;line-height:1.4}.job-prep-error{color:#fecaca;background:#450a0a;border:1px solid #7f1d1d;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:.8125rem;line-height:1.4}.job-step-list{margin:0;padding:0;list-style:none}.job-step{border-bottom:1px solid #1e293b;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.job-step:last-child{border-bottom:none}.job-step-glyph{text-align:center;flex-shrink:0;width:1.5rem;font-size:.9rem;font-weight:600}.job-step-pending .job-step-glyph{color:#64748b}.job-step-active .job-step-glyph{color:#38bdf8}.job-step-done .job-step-glyph{color:#6ee7b7}.job-step-warn .job-step-glyph{color:#fbbf24}.job-step-error .job-step-glyph{color:#f87171}.job-step-body{flex:1;min-width:0}.job-step-title{color:#f1f5f9;margin-bottom:2px;font-size:.875rem;font-weight:600}.job-step-desc{color:#94a3b8;font-size:.75rem;line-height:1.35}.job-step-active .job-step-title{color:#38bdf8}.dropzone{background:#0b1220;border:2px dashed #374151;border-radius:12px;padding:28px 16px 20px;transition:border-color .15s,background .15s;position:relative}.dropzone-active{background:#0c1526;border-color:#3b82f6}.dropzone-busy{opacity:.75;pointer-events:none}.dropzone-hint{text-align:center;color:#9ca3af;margin:0 0 16px;font-size:.875rem}.toolbar{justify-content:center;display:flex}.add-wrap{position:relative}.btn-add{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.75rem;line-height:1;display:flex;box-shadow:0 4px 14px #2563eb59}.btn-add:disabled{opacity:.5;cursor:not-allowed}.add-menu{z-index:10;background:#1f2937;border:1px solid #374151;border-radius:8px;min-width:160px;padding:6px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000073}.menu-item{color:#e5e7eb;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;width:100%;padding:10px 12px;font-size:.875rem;display:block}.menu-item:hover{background:#374151}.hidden-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.download-bar{text-align:center;margin-top:20px}.btn-download{color:#fff;background:#059669;border:1px solid #047857;border-radius:10px;justify-content:center;align-items:center;padding:12px 20px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-download:hover{background:#047857}.btn-download:disabled{color:#9ca3af;cursor:not-allowed;background:#374151;border-color:#4b5563}.landing{color:#e2e8f0;background:#0f172a;min-height:100vh}.landing-nav{justify-content:space-between;align-items:center;gap:16px;max-width:960px;margin:0 auto;padding:20px 20px 0;display:flex}.landing-logo{color:#e2e8f0;letter-spacing:-.02em;font-size:1.1rem;font-weight:700;text-decoration:none}.landing-nav-links{flex-wrap:wrap;align-items:center;gap:12px 20px;font-size:.85rem;display:flex}.landing-nav-links a{color:#94a3b8;text-decoration:none}.landing-nav-links a:hover{color:#cbd5e1}.landing-nav-cta{background:#2563eb;border-radius:8px;padding:6px 14px;font-weight:600;color:#fff!important}.landing-nav-cta:hover{background:#1d4ed8;color:#fff!important}.landing-nav-link-muted{color:#64748b!important}.landing-hero{text-align:center;max-width:960px;margin:0 auto;padding:56px 20px 48px}.landing-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:#60a5fa;margin:0 0 16px;font-size:.8rem;font-weight:600}.landing-headline{letter-spacing:-.03em;margin:0 0 20px;font-size:clamp(1.75rem,5vw,2.5rem);font-weight:700;line-height:1.2}.landing-lead{color:#94a3b8;max-width:560px;margin:0 auto 32px;font-size:1rem;line-height:1.65}.landing-hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.landing-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:12px 22px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.landing-btn-primary{color:#fff;background:#2563eb}.landing-btn-primary:hover:not(:disabled){background:#1d4ed8}.landing-btn-primary:disabled{opacity:.6;cursor:not-allowed}.landing-btn-secondary{color:#e2e8f0;background:0 0;border:1px solid #334155}.landing-btn-secondary:hover{background:#111827;border-color:#475569}.landing-error{color:#f87171;margin:16px 0 0;font-size:.85rem}.landing-value{text-align:center;border-top:1px solid #1e293b;max-width:960px;margin:0 auto;padding:40px 20px}.landing-value h2{margin:0 0 12px;font-size:1.35rem;font-weight:600}.landing-value p{color:#94a3b8;margin:0;line-height:1.65}.landing-section-title{text-align:center;margin:0 0 28px;font-size:1.35rem;font-weight:600}.landing-features{border-top:1px solid #1e293b;max-width:960px;margin:0 auto;padding:48px 20px}.landing-feature-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=560px){.landing-feature-grid{grid-template-columns:repeat(2,1fr)}}.landing-feature-card{background:#111827;border:1px solid #1f2937;border-radius:12px;padding:20px}.landing-feature-card h3{color:#e2e8f0;margin:0 0 8px;font-size:.95rem;font-weight:600}.landing-feature-card p{color:#94a3b8;margin:0;font-size:.85rem;line-height:1.55}.landing-how{border-top:1px solid #1e293b;max-width:960px;margin:0 auto;padding:48px 20px}.landing-how-grid{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=640px){.landing-how-grid{grid-template-columns:repeat(2,1fr)}}.landing-how-card{background:#111827;border:1px solid #1f2937;border-radius:14px;padding:24px}.landing-how-step{letter-spacing:.04em;text-transform:uppercase;color:#93c5fd;background:#1e3a5f;border-radius:6px;margin-bottom:12px;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-block}.landing-how-card h3{margin:0 0 10px;font-size:1.05rem}.landing-how-card p{color:#94a3b8;margin:0;font-size:.88rem;line-height:1.6}.landing-pricing{border-top:1px solid #1e293b;max-width:960px;margin:0 auto;padding:48px 20px}.landing-plan-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=640px){.landing-plan-grid{grid-template-columns:repeat(3,1fr)}}.landing-plan-card{text-align:center;background:#111827;border:1px solid #1f2937;border-radius:12px;padding:24px 20px}.landing-plan-highlight{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb40}.landing-plan-card h3{margin:0 0 10px;font-size:1.1rem}.landing-plan-card p{color:#94a3b8;margin:0;font-size:.85rem;line-height:1.55}.landing-pricing-note{text-align:center;color:#64748b;margin:24px 0 0;font-size:.85rem}.landing-pricing-note a{color:#60a5fa;text-decoration:none}.landing-pricing-note a:hover{text-decoration:underline}.landing-cta-block{text-align:center;border-top:1px solid #1e293b;max-width:960px;margin:0 auto;padding:56px 20px}.landing-cta-block h2{margin:0 0 12px;font-size:1.35rem}.landing-cta-block p{color:#94a3b8;margin:0 0 24px}.landing-footer{color:#64748b;border-top:1px solid #1e293b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:960px;margin:0 auto;padding:24px 20px 40px;font-size:.8rem;display:flex}.landing-footer-brand{color:#94a3b8;font-weight:600}.landing-footer-links{gap:16px;display:flex}.landing-footer-links a{color:#64748b;text-decoration:none}.landing-footer-links a:hover{color:#94a3b8}
