
:root{
  --bg:#0b0f14;
  --panel:#111827;
  --text:#e5e7eb;
  --muted:#94a3b8;
  --stroke:rgba(255,255,255,14);
}

*{box-sizing:border-box}

body{
  margin:0;
  background: var(--bg);
  color:var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  display:flex;
  flex-direction:column;
  min-height:100vh;
}

.wrap{
  padding:0 18px 18px;
  flex:1;
  display:flex;
}


header{
  padding:16px 18px 10px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}

h1{
  margin:0;
  font-size:20px;
}

.sub{
  color:var(--muted);
  font-size:12px;
  margin-top:6px;
  max-width:980px;
}

.wrap{
  padding:0 18px 18px;
}

.panel{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:10px;
  box-shadow: 0 6px 24px rgba(0,0,0,30);

  flex:1;
  display:flex;
}


#viz{
  flex:1;
  min-height:0;
}


svg{
  width:100%;
  height:100%;
  display:block;
}

.controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

select {
  background: #111827;
  color: var(--text);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 13px;

  /* Remove default OS styling */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

select option {
  background: #111827;
  color: var(--text);
}

select:focus {
  outline: none;
  border-color: #334155;
  box-shadow: 0 0 0 2px rgba(148,163,184,0.15);
}


.badge{
  color: var(--muted);
  font-size: 12px;
}

.node rect{
  rx:10;
  ry:10;
  stroke: rgba(255,255,255,14);
  stroke-width: 1;
}

.node text{
  fill: var(--text);
  font-size: 16px;
}

.link{
  fill:none;
  stroke-opacity:.45;
}

.link:hover{
  stroke-opacity:.8;
}

.tooltip{
  position:fixed;
  pointer-events:none;
  background:rgba(17,24,39,0.95);
  border:1px solid rgba(255,255,255,0.12);
  padding:8px 10px;
  border-radius:10px;
  display:none;
  font-size:12px;
  max-width:360px;
}

.tooltip b{display:block}
.tooltip .m{color:var(--muted);margin-top:2px}

.err{
  color:#fca5a5;
  padding:12px;
}
.sankeyHeader{
  padding:16px 18px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.leftNav{
  display:flex;
  gap:10px;
  align-items:center;
}

.titleBlock{
  flex:1;
  min-width:260px;
}

.titleBlock h1{
  margin:0;
  font-size:20px;
}

.rightControls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}