body { margin:0; font:14px -apple-system,system-ui,sans-serif; background:#1a1a2e; color:#e0e0e0; overflow:hidden; }
#wrap { display:flex; height:100vh; }
#left { width:320px; min-width:280px; max-width:400px; overflow-y:auto; padding:12px 12px 40px 12px; background:#16213e; flex-shrink:0; }
#right { flex:1; padding:8px 12px; min-width:0; }
h1 { font-size:16px; color:#e94560; margin:0 0 10px 0; }
.upload-box { border:2px dashed #444; border-radius:6px; padding:8px 10px; text-align:center; cursor:pointer; margin-bottom:8px; }
.upload-box:hover { border-color:#e94560; }
.upload-box.loaded { border-color:#4ecca3; border-style:solid; }
.upload-box input { display:none; }
.upload-box .label { font-size:11px; color:#aaa; }
.upload-box .info { font-size:10px; color:#4ecca3; margin-top:2px; }
.upload-box .hdr { font-size:9px; color:#666; margin-top:2px; text-align:left; max-height:40px; overflow:hidden; }
.section-title { font-size:12px; color:#e94560; padding:4px 0; }
.param-row { display:grid; gap:4px; margin-bottom:4px; }
.param-row.col2 { grid-template-columns:1fr 1fr; }
.param-row.col3 { grid-template-columns:1fr 1fr 1fr; }
.param-row label { font-size:10px; color:#888; display:flex; flex-direction:column; }
.param-row input, .param-row select { background:#0f3460; color:#e0e0e0; border:1px solid #333; border-radius:3px; padding:2px 4px; font-size:11px; }
.param-row input:focus, .param-row select:focus { outline:none; border-color:#e94560; }
details.group { margin-bottom:8px; }
details.group > summary { font-size:12px; color:#e94560; cursor:pointer; padding:4px 0; }
details.group > summary:hover { color:#ff6b81; }
#btn-run { background:#e94560; color:#fff; border:none; padding:8px 0; border-radius:5px; cursor:pointer; font-size:13px; width:100%; margin:8px 0; }
#btn-run:disabled { opacity:0.4; cursor:default; }
.btn-disabled { opacity:0.4; cursor:default; pointer-events:none; }
#btn-run:hover:not(:disabled) { background:#c73650; }
#downloads { display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap; }
#results { font-size:11px; background:#0f3460; color:#bbb; padding:6px; border-radius:3px; min-height:40px; max-height:400px; overflow-y:auto; white-space:pre-wrap; }
#downloads a { color:#4ecca3; font-size:11px; text-decoration:none; background:#0f3460; padding:2px 6px; border-radius:3px; }
#status { font-size:11px; color:#888; margin-bottom:4px; min-height:16px; }
.err { color:#f44; }
table { width:100%; font-size:10px; border-collapse:collapse; margin-top:4px; }
table th, table td { padding:1px 3px; text-align:right; border-bottom:1px solid #333; }
table th { color:#888; font-weight:normal; }
.sm-btn { font-size:11px; padding:3px 8px; background:#0f3460; color:#aaa; border:1px solid #444; border-radius:3px; cursor:pointer; }
.sm-btn:hover { border-color:#e94560; color:#e0e0e0; }
.running-hint { font-size:10px; color:#f0c040; min-height:14px; margin-top:2px; }
#bottom-bar { text-align:center; color:#555; font-size:10px; padding:4px 0 8px; }
#bottom-bar a { color:#888; text-decoration:none; }
