/* ── LK0NOD Toolbox – Module Styles ── */
.tb-modules { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; margin-bottom:40px; }
.tb-modules:last-child { margin-bottom:0; }
.tb-module {
  background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
  padding:20px; cursor:pointer; transition:all .25s; position:relative; overflow:hidden;
}
.tb-module::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--accent),var(--blue)); opacity:0; transition:opacity .25s;
}
.tb-module:hover { border-color:var(--accent); transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,0.3); }
.tb-module:hover::before { opacity:1; }
.tb-module:active { transform:translateY(-1px); }
.tb-m-nr {
  font-size:11px; font-weight:700; color:var(--accent); letter-spacing:1px;
  text-transform:uppercase; margin-bottom:4px;
}
.tb-m-title { font-size:16px; font-weight:700; color:var(--text); margin-bottom:4px; }
.tb-m-desc { font-size:13px; color:var(--text-muted); line-height:1.5; }
.tb-m-icon {
  width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  font-size:18px; margin-bottom:12px; border:1px solid var(--border);
}
.tb-m-icon.green { background:var(--accent-dim); color:var(--accent); border-color:rgba(0,212,170,0.3); }
.tb-m-icon.blue { background:var(--blue-dim); color:var(--blue); border-color:rgba(59,130,246,0.3); }
.tb-m-icon.yellow { background:rgba(245,158,11,0.1); color:var(--yellow); border-color:rgba(245,158,11,0.3); }
.tb-m-icon.pink { background:rgba(236,72,153,0.1); color:var(--pink); border-color:rgba(236,72,153,0.3); }
.tb-m-icon.purple { background:rgba(168,85,247,0.1); color:var(--purple); border-color:rgba(168,85,247,0.3); }

/* Module Container */
.tb-container { display:none; }
.tb-container.active { display:block; animation:tbFadeIn .3s ease-out; }
@keyframes tbFadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* Module Header */
.tb-header {
  display:flex; align-items:center; gap:16px; margin-bottom:24px;
  padding-bottom:16px; border-bottom:1px solid var(--border); flex-wrap:wrap;
}
.tb-back {
  padding:8px 14px; border-radius:6px; border:1px solid var(--border);
  background:var(--surface); color:var(--text-muted); cursor:pointer;
  font-size:13px; font-family:inherit; transition:all .2s;
}
.tb-back:hover { border-color:var(--accent); color:var(--accent); }
.tb-title { font-size:22px; font-weight:700; color:var(--text); flex:1; }
.tb-actions { display:flex; gap:8px; flex-wrap:wrap; }
.tb-btn {
  padding:8px 16px; border-radius:6px; border:1px solid var(--border);
  background:var(--surface); color:var(--text-muted); cursor:pointer;
  font-size:12px; font-family:inherit; transition:all .2s; text-decoration:none; display:inline-flex; align-items:center; gap:6px;
}
.tb-btn:hover { border-color:var(--accent); color:var(--accent); }
.tb-btn.primary { background:var(--accent); color:#000; border-color:var(--accent); font-weight:600; }
.tb-btn.primary:hover { opacity:0.9; transform:translateY(-1px); }
.tb-btn.danger { border-color:#ef4444; color:#ef4444; }
.tb-btn.danger:hover { background:rgba(239,68,68,0.1); }

/* Wizard / Question Steps */
.tb-step { display:none; }
.tb-step.active { display:block; animation:tbFadeIn .25s ease-out; }
.tb-step-header { font-size:18px; font-weight:700; color:var(--text); margin-bottom:6px; }
.tb-step-sub { font-size:14px; color:var(--text-muted); margin-bottom:20px; }
.tb-options { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; margin-bottom:20px; }
.tb-opt {
  padding:14px 16px; border-radius:8px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); cursor:pointer;
  font-size:14px; font-family:inherit; text-align:left; transition:all .2s;
}
.tb-opt:hover { border-color:rgba(0,212,170,0.4); background:var(--card); }
.tb-opt.selected { border-color:var(--accent); background:var(--accent-dim); color:var(--accent); font-weight:600; }
.tb-opt.small { font-size:12px; padding:10px 12px; }

/* Navigation */
.tb-nav { display:flex; gap:10px; justify-content:space-between; margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }
.tb-nav-left, .tb-nav-right { display:flex; gap:8px; }

/* Result Cards */
.tb-result { display:grid; gap:16px; }
.tb-result-card {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  padding:20px; position:relative;
}
.tb-result-card .rc-title {
  font-size:13px; font-weight:600; color:var(--text-muted);
  text-transform:uppercase; letter-spacing:0.5px; margin-bottom:12px;
}
.tb-result-card .rc-value { font-size:20px; font-weight:700; color:var(--accent); }
.tb-result-card .rc-desc { font-size:13px; color:var(--text-muted); margin-top:4px; line-height:1.5; }
.tb-result-card .rc-list { list-style:none; margin:0; padding:0; }
.tb-result-card .rc-list li {
  padding:6px 0; border-bottom:1px solid rgba(30,42,69,0.4);
  font-size:13px; color:var(--text-muted); display:flex; justify-content:space-between; gap:12px;
}
.tb-result-card .rc-list li:last-child { border-bottom:none; }
.tb-result-card .rc-list .label { color:var(--text-muted); }
.tb-result-card .rc-list .val { color:var(--text); font-weight:500; text-align:right; }

/* Station Builder */
.tb-station-grid { display:grid; gap:12px; }
.tb-station-cat { margin-bottom:16px; }
.tb-station-cat-title { font-size:14px; font-weight:600; color:var(--text-muted); margin-bottom:8px; text-transform:uppercase; letter-spacing:0.5px; }
.tb-station-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px; }
.tb-station-item {
  padding:10px 12px; border-radius:6px; border:1px solid var(--border);
  background:var(--bg); cursor:pointer; transition:all .2s; font-size:12px;
  color:var(--text-muted); text-align:center;
}
.tb-station-item:hover { border-color:rgba(0,212,170,0.3); color:var(--text); }
.tb-station-item.selected { border-color:var(--accent); background:var(--accent-dim); color:var(--accent); font-weight:600; }

/* Config Generator Output */
.tb-config { background:#0d1117; border:1px solid var(--border); border-radius:8px; overflow:hidden; margin-bottom:16px; }
.tb-config-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:8px 14px; background:var(--surface); border-bottom:1px solid var(--border);
}
.tb-config-name { font-size:13px; font-weight:600; color:var(--accent); font-family:'JetBrains Mono',monospace; }
.tb-config-copy { cursor:pointer; color:var(--text-muted); font-size:12px; padding:4px 8px; border-radius:4px; }
.tb-config-copy:hover { color:var(--accent); background:var(--card); }
.tb-config pre {
  margin:0; padding:14px; overflow-x:auto; font-size:12px;
  font-family:'JetBrains Mono',monospace; line-height:1.6; color:var(--text-muted);
}

/* SWR / Diagnosis */
.tb-diagnosis { display:grid; gap:16px; }
.tb-diag-card {
  padding:16px; border-radius:8px; border:1px solid var(--border);
  display:grid; gap:8px;
}
.tb-diag-card.green { border-color:rgba(0,212,170,0.3); background:rgba(0,212,170,0.05); }
.tb-diag-card.yellow { border-color:rgba(245,158,11,0.3); background:rgba(245,158,11,0.05); }
.tb-diag-card.red { border-color:rgba(239,68,68,0.3); background:rgba(239,68,68,0.05); }
.tb-diag-priority { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; }
.tb-diag-priority.high { color:#ef4444; }
.tb-diag-priority.medium { color:var(--yellow); }
.tb-diag-priority.low { color:var(--accent); }

/* Comparison Table */
.tb-compare { overflow-x:auto; }
.tb-compare table { min-width:600px; }
.tb-compare th { text-align:center; }
.tb-compare td { text-align:center; white-space:nowrap; }
.tb-compare .best { color:var(--accent); font-weight:700; }

/* Knowledge Navigator */
.tb-knav { display:grid; gap:12px; }
.tb-knav-cat {
  background:var(--card); border:1px solid var(--border); border-radius:var(--radius);
  padding:16px; cursor:pointer; transition:all .2s;
}
.tb-knav-cat:hover { border-color:var(--accent); }
.tb-knav-cat-title { font-size:15px; font-weight:600; color:var(--text); margin-bottom:4px; }
.tb-knav-cat-desc { font-size:12px; color:var(--text-muted); }
.tb-knav-search {
  width:100%; padding:10px 14px; border-radius:8px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); font-size:14px;
  font-family:inherit; outline:none; transition:border-color .2s; margin-bottom:16px;
}
.tb-knav-search:focus { border-color:var(--accent); }
.tb-knav-history { font-size:12px; color:var(--text-muted); display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.tb-knav-history span { cursor:pointer; padding:2px 8px; border-radius:4px; background:var(--surface); border:1px solid var(--border); }
.tb-knav-history span:hover { color:var(--accent); border-color:var(--accent); }

/* Charts */
.tb-chart { margin:16px 0; padding:16px; background:var(--surface); border-radius:8px; border:1px solid var(--border); }
.tb-chart-bar {
  display:flex; align-items:center; gap:8px; margin:4px 0;
  font-size:12px; color:var(--text-muted);
}
.tb-chart-fill {
  height:24px; border-radius:4px; transition:width .5s;
  background:linear-gradient(90deg,var(--accent),rgba(0,212,170,0.5));
  min-width:2px; display:flex; align-items:center; padding:0 8px;
  font-weight:600; font-size:11px; color:#000;
}
.tb-chart-label { width:100px; text-align:right; flex-shrink:0; }

/* Tooltips */
[data-tip] { position:relative; cursor:help; }
[data-tip]:hover::after {
  content:attr(data-tip); position:absolute; bottom:calc(100% + 6px); left:50%; transform:translateX(-50%);
  padding:6px 10px; border-radius:6px; background:#1a1f2e; color:var(--text);
  font-size:11px; white-space:nowrap; border:1px solid var(--border); z-index:100;
  box-shadow:0 4px 12px rgba(0,0,0,0.4); pointer-events:none;
}

/* Mobile */
@media (max-width:768px) {
  .tb-modules { grid-template-columns:1fr 1fr; gap:10px; }
  .tb-module { padding:14px; }
  .tb-m-title { font-size:14px; }
  .tb-m-desc { display:none; }
  .tb-options { grid-template-columns:1fr 1fr; }
  .tb-header { flex-direction:column; align-items:flex-start; gap:10px; }
  .tb-actions { width:100%; }
  .tb-btn { font-size:11px; padding:6px 12px; }
  .tb-station-items { grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); }
}
@media (max-width:480px) {
  .tb-modules { grid-template-columns:1fr; }
  .tb-options { grid-template-columns:1fr; }
  .tb-result-card { padding:14px; }
  .tb-result-card .rc-value { font-size:16px; }
  .tb-chart-label { width:60px; font-size:10px; }
}
