.pi-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.pi-head h1 { font-size:1.4rem; margin:0 0 4px; }
.pi-head .sub { color:var(--eve-text-dim); font-size:0.85rem; }

/* Tier tabs (P0–P4) */
.pi-tier-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.pi-tier-tab {
  padding:8px 16px; border:1px solid var(--eve-border); border-radius:4px;
  background:var(--eve-panel); color:var(--eve-text-dim); text-decoration:none;
  font-weight:700; font-size:0.85rem; transition:border-color .15s,color .15s,background .15s;
}
.pi-tier-tab:hover { border-color:var(--eve-accent); color:var(--eve-accent); }
.pi-tier-tab.active { background:var(--eve-accent); color:#000; border-color:var(--eve-accent); }
.pi-tier-tab small { display:block; font-weight:400; font-size:0.68rem; opacity:.8; }

/* Filter bar + hub switch */
.filter-bar {
  background:var(--eve-panel); border:1px solid var(--eve-border); border-radius:4px;
  padding:12px 18px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:18px;
}
.market-tabs { display:flex; gap:4px; }
.market-tab {
  padding:6px 12px; border:1px solid var(--eve-border); border-radius:4px;
  background:var(--eve-bg); color:var(--eve-text-dim); text-decoration:none; font-size:0.8rem; font-weight:600;
}
.market-tab:hover { border-color:var(--eve-accent); color:var(--eve-accent); }
.market-tab.active { background:var(--eve-accent); color:#000; border-color:var(--eve-accent); }
.filter-sep { width:1px; height:22px; background:var(--eve-border); }
.filter-stat { font-size:0.82rem; color:var(--eve-text-dim); }

/* Page wrapper: every block shares one width and is centered on the page. */
.pi-page { max-width:1200px; margin:0 auto; }
.pi-table-wrap { overflow-x:auto; border:1px solid var(--eve-border); border-radius:4px; }
.pi-table { width:100%; border-collapse:collapse; font-size:0.85rem; }
.pi-table thead th {
  position:sticky; top:0; background:var(--eve-panel); color:var(--eve-text-dim);
  text-align:left; padding:10px 12px; font-size:0.72rem; text-transform:uppercase;
  letter-spacing:.04em; border-bottom:1px solid var(--eve-border); white-space:nowrap;
}
.pi-table thead th.r { text-align:right; }
.pi-table thead th.sortable { cursor:pointer; user-select:none; }
.pi-table thead th.sortable:hover { color:var(--eve-accent); }
.pi-table thead th .sort-ind { font-size:.7rem; margin-left:3px; color:var(--eve-border); }
.pi-table thead th.sort-asc  .sort-ind::after { content:"▲"; color:var(--eve-accent); }
.pi-table thead th.sort-desc .sort-ind::after { content:"▼"; color:var(--eve-accent); }
.pi-table thead th.sortable:not(.sort-asc):not(.sort-desc) .sort-ind::after { content:"⇅"; }
.pi-table tbody tr { border-bottom:1px solid var(--eve-border); }
.pi-table tbody tr:last-child { border-bottom:none; }
.pi-table tbody tr.producible { cursor:pointer; }
.pi-table tbody tr.producible:hover { background:var(--eve-highlight); }
.pi-table tbody tr.selected { background:rgba(79,195,247,0.08) !important; }
.pi-table td { padding:9px 12px; white-space:nowrap; }
.pi-table td.r { text-align:right; font-family:var(--font-mono); }
.pi-table td.item-name a { color:#fff; text-decoration:none; font-weight:600; }
.pi-table td.item-name a:hover { color:var(--eve-accent); text-decoration:underline; }
.margin-pos { color:var(--eve-green); }
.margin-neg { color:var(--eve-red,#ef5350); }
.sb-buy { color:var(--eve-text-dim); }   /* buy half of the combined Sell / Buy cell */
.b-locked { filter:blur(5px); user-select:none; pointer-events:none; }

/* Column tooltips (same pattern as station_trading / arbitrage tables) */

/* Calculator (drill-down C) */
.pi-calc {
  margin-top:20px; border:1px solid var(--eve-accent); border-radius:6px;
  background:var(--eve-panel); padding:18px 20px;
}
.pi-calc.hidden { display:none; }
.pi-calc h3 { margin:0 0 4px; font-size:1.05rem; }
.pi-calc .calc-sub { color:var(--eve-text-dim); font-size:0.8rem; margin-bottom:14px; }
.pi-calc-controls { display:flex; gap:18px; flex-wrap:wrap; margin-bottom:16px; }
.pi-calc-controls label { display:flex; flex-direction:column; gap:4px; font-size:0.75rem; color:var(--eve-text-dim); }
.pi-calc-controls input {
  width:130px; padding:7px 9px; background:var(--eve-bg); border:1px solid var(--eve-border);
  border-radius:4px; color:#fff; font-family:var(--font-mono); font-size:0.9rem;
  /* dark scheme → browser draws the number spinner arrows light, visible on dark bg */
  color-scheme:dark;
}
.pi-calc-controls input:focus { border-color:var(--eve-accent); outline:none; }
/* Always show the up/down spinners (some engines hide them until hover). */
.pi-calc-controls input[type=number]::-webkit-inner-spin-button,
.pi-calc-controls input[type=number]::-webkit-outer-spin-button { opacity:1; }
.calc-break { width:100%; border-collapse:collapse; font-size:0.85rem; }
.calc-break td { padding:6px 10px; border-bottom:1px solid var(--eve-border); }
.calc-break td.r { text-align:right; font-family:var(--font-mono); }
.calc-break tr.calc-input td { color:var(--eve-text-dim); }
.calc-break tr.calc-total td { font-weight:700; border-top:2px solid var(--eve-border); border-bottom:none; }
.calc-break tr.calc-cost td { color:var(--eve-red,#ef5350); }
.calc-break tr.calc-revenue td { color:var(--eve-green); }
.calc-profit { display:flex; gap:24px; flex-wrap:wrap; margin-top:14px; padding-top:14px; border-top:1px solid var(--eve-border); }
.calc-profit .big { font-size:1.5rem; font-weight:800; font-family:var(--font-mono); }
.calc-profit .lbl { font-size:0.72rem; color:var(--eve-text-dim); text-transform:uppercase; letter-spacing:.04em; }
/* Production tree (D) */
.pi-tree { font-size:0.82rem; margin-top:8px; }
.tn { display:flex; align-items:center; gap:8px; padding:3px 0; border-bottom:1px solid rgba(255,255,255,0.04); }
.tn-name { color:#fff; font-weight:600; }
.tn-qty { color:var(--eve-text-dim); font-family:var(--font-mono); font-size:0.76rem; }
.tn-cost { color:var(--eve-text-dim); font-family:var(--font-mono); font-size:0.76rem; margin-left:auto; white-space:nowrap; }
.tn-badge { font-size:0.66rem; font-weight:700; text-transform:uppercase; padding:1px 6px; border-radius:3px; letter-spacing:.03em; flex-shrink:0; }
.tn-build { background:rgba(0,230,118,0.15); color:var(--eve-green); }
.tn-buy { background:rgba(79,195,247,0.15); color:var(--eve-accent); }
.no-data-box { text-align:center; padding:48px 20px; border:1px dashed var(--eve-border); border-radius:6px; }
