:root{
  --bg:#f8fafc; /* slate-50 */
  --fg:#0f172a; /* slate-900 */
  --muted:#475569; /* slate-600 */
  --brand:#0ea5e9; /* sky-500 */
  --brand-600:#0284c7; /* sky-600 */
  --card:#ffffff;
  --border:#e2e8f0;
  --accent:#22c55e; /* green-500 */
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu; color:var(--fg); background:var(--bg);
}
.container{max-width:1100px;margin:0 auto;padding:24px}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.brand{display:flex;gap:12px;align-items:center}
.brand-logo{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--brand),var(--accent));box-shadow:0 6px 16px rgba(2,132,199,.25)}
.brand-title{font-weight:800;letter-spacing:.2px}
.nav a{color:var(--muted);text-decoration:none;margin-left:16px;font-weight:600}
.nav a.active{color:var(--brand)}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:0 10px 34px rgba(2,132,199,.06)}
.card h2{margin-top:0}
.row{display:flex;gap:20px;flex-wrap:wrap}
.col{flex:1;min-width:280px}
.input, textarea, select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:white;color:var(--fg);font-size:15px;outline:none}
.input:focus, textarea:focus, select:focus{border-color:rgba(14,165,233,.55);box-shadow:0 0 0 4px rgba(14,165,233,.14)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-weight:800;letter-spacing:.1px;cursor:pointer;box-shadow:0 8px 18px rgba(2,132,199,.18)}
.btn:hover{filter:brightness(0.98)}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn.secondary{background:white;color:var(--brand);box-shadow:none}
.help{color:var(--muted);font-size:13px}
.footer{margin-top:28px;color:var(--muted);font-size:13px}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#e2f6ff;color:#0369a1;font-weight:700;font-size:12px}

.table{width:100%;border-collapse:separate;border-spacing:0;margin-top:14px}
.table thead th{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:saturate(150%) blur(6px)}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px;text-align:left;font-size:14px}
.table tr:hover td{background:#f8fbff}
.kmer{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;letter-spacing:.6px}
.stat{display:flex;gap:8px;align-items:center}
.pill{padding:2px 8px;border-radius:999px;background:#f1f5f9;border:1px solid var(--border);font-size:12px}
.progress{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}
.progress>div{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent))}

.note{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:10px;border-radius:10px;font-size:13px}

/* Small layout helpers */
.inline-fields{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.inline-fields > .field{flex:1;min-width:140px}

.table-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-top:12px}
.table-actions .left{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.table-actions .right{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* Substring filter layout helpers */
.filters-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px 16px;
  margin-top:12px;
}

@media (max-width: 860px){
  .filters-grid{ grid-template-columns: 1fr; }
}

.filters-inline{
  display:flex;
  gap:10px;
  align-items:center;
}

.filters-card{
  padding:16px;
}

.toolbar .btn{
  white-space:nowrap;
}

/* Compact dropdown / details */
.details{
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.7);
}
.details > summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  font-size:14px;
}
.details > summary::-webkit-details-marker{ display:none; }
.details[open] > summary{
  border-bottom:1px solid var(--border);
}
.details-body{
  padding:14px;
}

/* Scrollable result tables (avoid huge vertical pages) */
.table-scroll{
  max-height: 420px;
  overflow:auto;
  border:1px solid var(--border);
  border-radius:12px;
}

.page-pill select.input{padding:8px 10px;border-radius:8px}


.table-scroll .table th,
.table-scroll .table td{
  background: white;
}
