:root{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#232735;--border:#2d3343;--text:#e0e3eb;--text-muted:#8b9bb4;--accent:#4c8ddb;--accent-hover:#5b9fee;--success:#4caf50;--error:#ef4444;--radius:8px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, sans-serif;--mono:"SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);padding:20px;line-height:1.5}.app-container{max-width:1100px;margin:0 auto}.header{margin-bottom:24px}.header h1{font-size:1.8rem;font-weight:700}.header .subtitle{color:var(--text-muted);font-size:.95rem}.header .description{color:var(--text-muted);max-width:700px;margin-top:8px;font-size:.88rem;line-height:1.5}.mission-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.form-row:last-child{margin-bottom:0}.form-group{flex-direction:column;gap:4px;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.form-group input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font);border-radius:6px;outline:none;padding:8px 12px;font-size:1rem;transition:border-color .15s}.form-group input:focus{border-color:var(--accent)}.form-group input[type=text]{width:220px}.form-group input[type=date]{width:160px}.form-group input[type=number]{width:120px}.form-group.has-error input{border-color:var(--error)}.body-search{position:relative}.search-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-top:none;border-radius:6px;min-width:280px;max-height:320px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.search-dropdown.hidden{display:none}.search-result{cursor:pointer;padding:8px 12px;font-size:.9rem;transition:background .1s}.search-result:hover,.search-result.active{background:var(--surface-hover)}.search-result .result-type{color:var(--text-muted);font-size:.8rem}.search-result .result-a{color:var(--text-muted);font-family:var(--mono);margin-left:4px;font-size:.8rem}.search-status{color:var(--text-muted);padding:8px 12px;font-size:.85rem;font-style:italic}.btn{background:var(--accent);color:#fff;font-family:var(--font);cursor:pointer;border:none;border-radius:6px;padding:9px 24px;font-size:.95rem;font-weight:600;transition:background .15s}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.4;cursor:not-allowed}.progress-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px 20px}.progress-container.hidden{display:none}.progress-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.progress-text{color:var(--text-muted);font-size:.9rem}.btn-cancel{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font);cursor:pointer;background:0 0;border-radius:6px;padding:4px 14px;font-size:.8rem;font-weight:500;transition:all .15s}.btn-cancel:hover{border-color:var(--error);color:var(--error)}.progress-bar-track{background:var(--bg);border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--accent);width:0%;height:100%;transition:width .2s}.results-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.results-summary h3{margin-bottom:12px;font-size:1.1rem}.results-summary p{margin-bottom:4px}.results-summary strong{color:var(--accent)}.results-summary .result-label{color:var(--text-muted);width:180px;display:inline-block}.error-message{background:var(--surface);border:1px solid var(--error);border-radius:var(--radius);color:var(--error);margin-bottom:16px;padding:16px 20px}#plot-area{min-height:400px;position:relative}#plot-area svg{display:block}#plot-area text{fill:var(--text-muted);font-size:.75rem}#plot-area .domain,#plot-area .tick line{stroke:var(--border)}#plot-area .axis-label{fill:var(--text-muted);font-size:.85rem}#plot-area .cells rect{shape-rendering:crispedges;transition:stroke .1s}.plot-tooltip{border:1px solid var(--border);pointer-events:none;z-index:200;background:#0f1117eb;border-radius:6px;max-width:220px;padding:8px 12px;font-size:.85rem;line-height:1.6;transition:opacity .15s;position:absolute}.plot-tooltip strong{color:var(--accent)}.epoch-info{color:var(--text-muted);margin-top:12px;font-size:.8rem}.data-status{color:var(--text-muted);margin-bottom:16px;font-size:.8rem}@media (width<=700px){body{padding:12px}.header h1{font-size:1.4rem}.form-row{flex-direction:column}.form-group input[type=text],.form-group input[type=date],.form-group input[type=number],.body-search,.search-dropdown,.btn{width:100%}.results-summary .result-label{width:auto;margin-bottom:2px;display:block}#plot-area{overflow-x:auto}}
