/* ── setup ── */
.setup-note{font-size:10px;color:var(--fg-5);margin-top:8px;padding:0 2px}

/* ── mode badge (under the page-tagline) ── */
.mode-badge{font-size:9px;font-weight:700;padding:2px 8px;border-radius:var(--r-2);letter-spacing:.07em;text-transform:uppercase}
.mode-badge.detecting{background:var(--bg-strip);color:var(--fg-5)}
.mode-badge.wasm{background:var(--accent-tint);color:var(--accent-strong)}
.mode-badge.backend{background:#f0fff4;color:var(--status-success)}
.mode-badge.error{background:#fff0f0;color:var(--status-error)}

/* ── banner ── */
.banner{background:#fff0f0;border:1px solid #fca5a5;border-radius:var(--r-6);padding:12px 16px;margin-top:16px;font-size:11px;line-height:1.8;color:#b91c1c;display:none}
.banner-action{background:#fff;border:1.5px solid #fca5a5;border-radius:var(--r-3);padding:4px 12px;font-size:11px;font-weight:700;color:#b91c1c;text-decoration:none;white-space:nowrap;transition:background var(--tr)}
.banner-action:hover{background:#fca5a5;color:#fff}
.banner-cmd{background:#fff;border:1px solid #fca5a5;border-radius:var(--r-3);padding:3px 8px;font-family:monospace;font-size:11px;color:#b91c1c;white-space:nowrap}

/* ── sources table ── */
.src-table{width:100%;border-collapse:collapse}
.src-table thead th{background:none;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-5);padding:4px 6px;text-align:left;border-bottom:1px solid var(--border-soft);font-weight:600}
.src-table thead th:first-child{width:130px}
.src-td{padding:4px 3px;border-bottom:1px solid var(--bg-soft);vertical-align:middle}
.src-upload{background:var(--bg-strip);border:1.5px solid var(--border);border-radius:var(--r-3);color:var(--fg-3);font-family:inherit;font-size:14px;line-height:1;padding:5px 9px;cursor:pointer;transition:all var(--tr)}
.src-upload:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-tint)}
.src-del{background:none;border:none;color:var(--fg-ghost);cursor:pointer;font-size:15px;padding:4px 7px;border-radius:var(--r-2);transition:all var(--tr);line-height:1;font-family:inherit}
.src-del:hover{color:#e53e3e;background:#fff0f0}
.src-add{background:none;border:1.5px dashed var(--border);color:var(--fg-5);border-radius:var(--r-4);font-family:inherit;font-size:11px;cursor:pointer;padding:7px;width:100%;margin-top:8px;transition:all var(--tr)}
.src-add:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-tint)}

/* ── tabs ── */
.tab-container{margin-top:14px;display:none}
.tab-bar{display:flex;border-bottom:2px solid var(--border)}
.tab-btn{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:7px 16px;font-family:inherit;font-size:11px;font-weight:700;color:var(--fg-5);cursor:pointer;transition:all var(--tr);letter-spacing:.03em}
.tab-btn:hover{color:var(--accent-strong)}
.tab-btn.active{color:var(--accent-strong);border-bottom-color:var(--accent)}
.tab-btn.tab-result{font-style:italic;font-weight:600}
.tab-pane{display:none;background:var(--bg-card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--r-6) var(--r-6);overflow:hidden}
.tab-pane.active{display:block}
.tab-pane.active>*{padding:16px}
.tab-pane.active>.tbl-wrap{padding:0}

/* ── preview table ── */
.tbl-wrap{overflow:auto;max-height:440px}
table{border-collapse:collapse;width:100%;font-size:11px}
.hdr-col th{position:sticky;top:0;background:var(--bg-strip);padding:6px 10px;text-align:left;border-bottom:2px solid var(--border);z-index:2;white-space:nowrap}
.col-hdr{display:flex;align-items:center;gap:5px}
.c-name{font-size:11px;font-weight:700;color:var(--fg-3)}
.c-type{font-size:9px;color:var(--fg-5);display:flex;align-items:center;gap:2px}
.c-type .ms{font-size:14px}
.stats-btn{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--fg-ghost);padding:1px 2px;border-radius:3px;transition:color var(--tr);line-height:1;display:inline-flex;align-items:center;flex-shrink:0}
.stats-btn:hover{color:var(--accent-strong)}
.stats-btn.active{color:var(--accent)}
.stats-btn .ms{font-size:14px}
.hdr-sv th{background:var(--accent-tint);padding:7px 10px;text-align:left;border-bottom:2px solid var(--accent);font-weight:400;vertical-align:top}
.hdr-sv th.empty{background:var(--bg-soft)}
.sv-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}
.sv-item{display:flex;flex-direction:column;gap:1px}
.sv-lbl{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-ghost)}
.sv-val{font-size:11px;color:var(--fg-3)}
tbody td{padding:5px 10px;border-bottom:1px solid var(--border-soft);color:var(--fg-1);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
tbody tr:hover td{background:var(--accent-tint)}

/* ── meta ── */
.meta{font-size:10px;color:var(--fg-5);padding:8px 16px 14px;display:flex;gap:12px;flex-wrap:wrap}
.meta span{display:flex;gap:4px;align-items:center}
.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}