@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg:#0c0f14;--bg-card:#13161d;--border:#252a35;--border-accent:#2d6a4f;--accent:#52b788;--accent-dim:#2d6a4f;--accent-glow:rgba(82,183,136,.15);--text-primary:#e8ede6;--text-secondary:#9ca3af;--text-muted:#5c6370;--success:#52b788;--error:#ef6461;--error-bg:hsla(1,82%,66%,.08);--font-display:"DM Serif Display",Georgia,serif;--font-body:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text-primary);font-family:var(--font-body)}@keyframes pulse-dot{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}@keyframes fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}input:focus,textarea:focus{outline:none;border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-glow)!important}button{transition:all .15s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app-root{position:relative;min-height:100vh;background:var(--bg);color:var(--text-primary);font-family:var(--font-body);padding:24px 16px 64px;max-width:1180px;margin:0 auto}.grain{position:fixed;inset:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.header{gap:14px;margin-bottom:32px;position:relative;z-index:1;flex-wrap:wrap}.header,.header-controls{display:flex;align-items:center}.header-controls{margin-left:auto;gap:10px}.settings-btn{width:36px;height:36px;display:inline-flex;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer}.logo-mark,.settings-btn{align-items:center;justify-content:center}.logo-mark{width:44px;height:44px;border-radius:10px;background:var(--accent-glow);display:flex;flex-shrink:0}.app-title{font-family:var(--font-display);font-size:26px;font-weight:400;letter-spacing:-.02em;line-height:1.2}.app-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}.reset-btn{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer;font-family:var(--font-body)}.progress-bar{justify-content:space-between;margin-bottom:32px;position:relative;z-index:1;padding:0 8px}.progress-bar,.progress-step{display:flex;align-items:center}.progress-step{flex-direction:column;gap:6px;z-index:2}.progress-dot{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--text-muted);background:var(--bg);transition:all .3s ease}.progress-dot.active{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.progress-label{font-size:11px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em;transition:color .3s ease}.progress-label.active{color:var(--text-primary)}.progress-track{position:absolute;top:16px;left:12%;right:12%;height:2px;background:var(--border);z-index:1;border-radius:1px}.progress-fill{height:100%;background:var(--accent);border-radius:1px;transition:width .4s ease}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:28px 24px;position:relative;z-index:1;margin-bottom:20px}.fade-in{animation:fade-in .35s ease-out}.card-title{font-family:var(--font-display);font-size:22px;font-weight:400;margin-bottom:8px}.card-desc{font-size:14px;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.drop-zone{border:2px dashed var(--border);border-radius:12px;padding:40px 24px;text-align:center;cursor:pointer;transition:all .2s ease}.drop-zone.active,.drop-zone:hover{border-color:var(--accent);background:var(--accent-glow)}.drop-icon{margin-bottom:12px}.drop-text{font-size:15px;color:var(--text-secondary);margin-bottom:4px}.drop-hint{font-size:12px;color:var(--text-muted);font-family:var(--font-mono)}.divider{display:flex;align-items:center;margin:24px 0;text-align:center}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.divider span{padding:0 16px;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px;color:var(--text-primary);font-size:14px;font-family:var(--font-mono);line-height:1.6;resize:vertical;transition:border-color .2s,box-shadow .2s}.primary-btn{width:100%;padding:14px 20px;background:var(--accent);color:#0c0f14;border:none;border-radius:10px;font-size:15px;font-weight:600;font-family:var(--font-body);cursor:pointer;margin-top:16px}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.primary-btn.loading{background:var(--accent-dim);cursor:wait}.secondary-btn{flex:1 1;padding:12px 16px;border:1px solid var(--border);border-radius:10px;font-size:14px;font-weight:500}.copy-btn,.secondary-btn{background:transparent;color:var(--text-secondary);font-family:var(--font-body);cursor:pointer}.copy-btn{display:flex;align-items:center;gap:6px;border:1px solid var(--border);padding:6px 12px;border-radius:6px;font-size:12px}.text-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text-primary);font-size:14px;font-family:var(--font-mono)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.settings-modal{width:100%;max-width:520px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px}.modal-title{font-family:var(--font-display);font-size:24px;font-weight:400;margin-bottom:6px}.modal-desc{color:var(--text-secondary);font-size:14px;margin-bottom:14px}.settings-section{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px}.settings-section-title{margin:0 0 10px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-family:var(--font-mono);font-weight:500}.model-field{margin-bottom:14px}.model-label{display:block;margin-bottom:6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-mono)}.model-select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.key-actions,.modal-actions{display:flex;gap:10px}.modal-link-btn,.modal-set-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.key-form{margin-top:14px}.key-form-actions{display:flex;gap:10px;margin-top:10px}.modal-save-btn{margin-top:0;flex:1 1}.modal-status{margin-top:10px}.modal-status,.uploaded-badge{color:var(--success);font-size:13px;font-family:var(--font-mono)}.uploaded-badge{gap:8px;padding:8px 14px;background:rgba(82,183,136,.06);border:1px solid var(--border-accent);border-radius:8px;margin-bottom:20px}.error-box,.uploaded-badge{display:flex;align-items:center}.error-box{gap:10px;padding:12px 16px;background:var(--error-bg);border:1px solid hsla(1,82%,66%,.2);border-radius:10px;color:var(--error);font-size:14px;margin-bottom:16px;position:relative;z-index:1}.spinner{display:inline-flex;align-items:center;gap:4px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#0c0f14;animation:pulse-dot 1s ease-in-out infinite}.dot.d2{animation-delay:.15s}.dot.d3{animation-delay:.3s}.result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}.result-content{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:24px 20px;line-height:1.7;font-size:14px;max-height:70vh;overflow-y:auto}.result-content .md-h1{font-family:var(--font-display);font-size:22px;margin:20px 0 10px}.result-content .md-h2{font-family:var(--font-display);font-size:19px;margin:24px 0 10px;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:6px}.result-content .md-h3{font-size:15px;font-weight:600;margin:16px 0 6px}.result-content .md-p{margin:6px 0;color:var(--text-secondary)}.result-content .md-list{padding-left:22px;margin:6px 0}.result-content .md-list li{margin:4px 0;color:var(--text-secondary);line-height:1.6}.result-content .md-hr{border:none;border-top:1px solid var(--border);margin:16px 0}.result-content .spacer{height:8px}.action-row{display:flex;gap:12px;margin-top:20px}.footer{text-align:center;font-size:12px;color:var(--text-muted);margin-top:40px;position:relative;z-index:1}