.tsv-picker{min-width:0}.tsv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tsv-grid label{display:grid;gap:7px;font-size:13px;font-weight:600}.tsv-picker select{width:100%;min-width:0;min-height:42px}.tsv-meta{display:flex;align-items:center;gap:12px;min-height:36px;margin:14px 0;overflow-wrap:anywhere}.tsv-logo{width:56px;height:48px;object-fit:contain;flex:0 0 auto}.tsv-manual{display:flex;align-items:center;gap:8px;font-size:13px}.tsv-manual input{width:auto}.tsv-result{min-width:0}@media(max-width:760px){.tsv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.tsv-grid{grid-template-columns:1fr}}

/* fork TakeTune: dropdown marki z logami (wyzsze pozycje, ograniczona wysokosc listy) */
.tsv-combo { position: relative; }
.tsv-combo:focus-within { z-index: 60; }
.tsv-combo-list { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 50;
  background: var(--panel2); border: 1px solid var(--border); border-radius: 12px;
  box-shadow: var(--shadow-pop); max-height: 290px; overflow-y: auto; padding: 5px; display: none; }
.tsv-combo-list.open { display: block; }
.tsv-combo-item { display: flex; align-items: center; gap: 12px; min-height: 46px;
  padding: 6px 11px; border-radius: 8px; cursor: pointer; font-size: 14px;
  color: var(--text2); transition: background .12s, color .12s; }
.tsv-combo-item:hover, .tsv-combo-item.active { background: var(--grad-heat-soft); color: var(--text); }
.tsv-combo-item img { width: 36px; height: 36px; object-fit: contain; flex: none;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.35)); }
.tsv-combo-item .tsv-logo-ph { width: 36px; height: 36px; flex: none; }
.tsv-combo-search { display: flex; align-items: center; gap: 7px; padding: 7px 11px 9px;
  margin-bottom: 4px; border-bottom: 1px solid var(--border-soft); color: var(--accent-light);
  font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.tsv-combo-item b { color: var(--accent-light); font-weight: 700; }

/* fork TakeTune: futurystyczna karta wyniku (tsv-result) */
.tsv-result{position:relative;min-width:0;overflow:hidden;isolation:isolate;border:1px solid var(--border);background:radial-gradient(120% 70% at 0% 0%,rgba(245,68,59,.10),transparent 60%),radial-gradient(90% 60% at 100% 100%,rgba(255,138,30,.08),transparent 60%),var(--panel)}
.tsv-result::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad-heat);box-shadow:0 0 18px 2px rgba(255,90,44,.55);z-index:1}
.tsv-result::after{content:"";position:absolute;left:8%;right:8%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-light),transparent);opacity:.5}
.tsv-heading{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.tsv-logo-wrap{flex:0 0 auto;display:grid;place-items:center;width:72px;height:72px;border-radius:16px;background:var(--panel2);border:1px solid var(--border);box-shadow:0 0 22px -6px rgba(255,90,44,.55)}
.tsv-logo{width:46px;height:46px;object-fit:contain}
.tsv-title{min-width:0;flex:1}
.tsv-title h2{margin:0 0 10px;font-family:'Space Grotesk',var(--sans),sans-serif;font-size:clamp(22px,4vw,34px);line-height:1.05;letter-spacing:-.01em;text-transform:uppercase;overflow-wrap:anywhere}
.tsv-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tsv-chip{display:flex;align-items:center;gap:9px;min-width:0;padding:7px 12px 7px 9px;border-radius:12px;background:var(--panel2);border:1px solid var(--border-soft,var(--border));transition:transform .2s,border-color .2s}
.tsv-chip:hover{transform:translateY(-2px);border-color:var(--accent-light)}
.tsv-chip .tsv-ico{flex:0 0 auto;width:26px;height:26px;padding:5px;border-radius:8px;color:var(--accent-light);background:var(--grad-heat-soft)}
.tsv-chip span{display:grid;min-width:0}
.tsv-chip small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tsv-chip b{font-size:13px;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.tsv-chart{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:20px;align-items:center;padding:18px;border-radius:var(--radius-card,16px);border:1px solid var(--border);background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px) 0 0/100% 22px,linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px) 0 0/22px 100%,var(--panel2);overflow:hidden}
.tsv-chart:not(:has(.tsv-bars)){grid-template-columns:minmax(0,1fr)}
.tsv-chart::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-light),transparent)}
.tsv-gauge-box,.tsv-bars{min-width:0;position:relative}
.tsv-gauge{display:block;width:100%;max-width:340px;height:auto;margin:0 auto;overflow:visible}
.tsv-track{fill:none;stroke:var(--border);stroke-width:9;stroke-linecap:round;opacity:.7}
.tsv-ring{fill:none;stroke-width:9;stroke-linecap:round}
.tsv-ring-top{stroke:url(#tsvHeat)}
.tsv-ring-s1:not(.tsv-ring-top){stroke:var(--accent-light);opacity:.8}
.tsv-ring-stock{stroke:var(--muted)}
.tsv-ticks{fill:none;stroke:var(--muted);stroke-width:6;opacity:.35}
.tsv-g-num{font-family:'Space Grotesk',var(--sans),sans-serif;font-size:54px;font-weight:700;fill:var(--text)}
.tsv-g-unit{font-size:13px;letter-spacing:.12em;fill:var(--muted);text-transform:uppercase}
.tsv-g-delta{font-family:'Space Grotesk',var(--sans),sans-serif;font-size:20px;font-weight:700;fill:var(--accent-light)}
.tsv-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:8px 0 0;padding:0;list-style:none;font-size:12px;color:var(--text2)}
.tsv-legend b{color:var(--text)}
.tsv-dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:var(--muted)}
.tsv-dot-s1{background:var(--accent-light)}.tsv-dot-s2{background:var(--grad-heat);box-shadow:0 0 8px var(--accent)}
.tsv-bars{display:grid;gap:14px}
.tsv-fig{margin:0;min-width:0}
.tsv-fig figcaption{display:flex;align-items:center;gap:7px;margin-bottom:2px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text2)}
.tsv-fig figcaption .tsv-ico{width:16px;height:16px;color:var(--accent-light)}
.tsv-fig figcaption em{font-style:normal;color:var(--accent-light)}
.tsv-fig svg{display:block;width:100%;height:auto}
.tsv-grid-l{stroke:var(--border);stroke-width:1;stroke-dasharray:3 4;opacity:.8}
.tsv-axis{font-size:10px;fill:var(--muted)}
.tsv-val{font-family:'Space Grotesk',var(--sans),sans-serif;font-size:13px;font-weight:700;fill:var(--text)}
.tsv-bar-heat{fill:url(#tsvHeat)}
.tsv-bar-stock{fill:var(--muted);opacity:.55}
.tsv-cap{fill:#fff;opacity:.7}
.tsv-stock{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin:14px 2px 0;font-size:13px;color:var(--muted)}
.tsv-stock b{color:var(--text)}
.tsv-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.tsv-nodata{grid-column:1/-1;margin:0;padding:16px;border:1px dashed var(--border);border-radius:var(--radius-card,14px);color:var(--muted);text-align:center}
.tsv-stage{position:relative;display:grid;gap:8px;padding:18px;border-radius:var(--radius-card,16px);background:var(--panel2);border:1px solid transparent;background-clip:padding-box;box-shadow:var(--shadow-card);transition:transform .25s,box-shadow .25s}
.tsv-stage::before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;background:var(--grad-heat);opacity:.55;transition:opacity .25s}
.tsv-stage::after{content:"";position:absolute;left:14%;right:14%;top:-1px;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.55;filter:blur(.5px)}
.tsv-stage:hover{transform:translateY(-4px);box-shadow:var(--shadow-pop),var(--glow-accent)}
.tsv-stage:hover::before{opacity:1}
.tsv-stage header{display:flex;align-items:center;gap:10px}
.tsv-stage h3{margin:0;font-family:'Space Grotesk',var(--sans),sans-serif;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.tsv-stage-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:#fff;background:var(--grad-heat)}
.tsv-stage-ico .tsv-ico{width:18px;height:18px}
/* fork TakeTune: delta BIALA — gradientowy tekst zlewal sie z pomaranczowym tlem kafelka */
.tsv-delta{font-family:'Space Grotesk',var(--sans),sans-serif;font-size:clamp(34px,6vw,46px);line-height:1;font-weight:700;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.tsv-delta small{font-size:.42em;font-weight:600}
.tsv-stage-sub{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--text2)}
.tsv-stage-sub em{font-style:normal;font-weight:700;color:var(--ok-text)}
.tsv-result .muted{font-size:12px;margin:6px 0 0}
@media(max-width:760px){.tsv-chart{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.tsv-heading{gap:12px;align-items:flex-start}.tsv-logo-wrap{width:52px;height:52px;border-radius:12px}.tsv-logo{width:34px;height:34px}.tsv-stages{grid-template-columns:minmax(0,1fr)}.tsv-chart{padding:12px}.tsv-chip{flex:1 1 auto}}
@media(prefers-reduced-motion:no-preference){
@keyframes tsvIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes tsvArc{from{stroke-dasharray:0 100}to{stroke-dasharray:var(--len) 100}}
@keyframes tsvGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes tsvPulse{0%,100%{filter:drop-shadow(0 0 8px rgba(255,90,44,.3))}50%{filter:drop-shadow(0 0 20px rgba(255,138,30,.8))}}
@keyframes tsvScan{from{background-position:0 0,0 0,0 0}to{background-position:0 44px,0 0,0 0}}
.tsv-result{animation:tsvIn .5s ease-out both}
.tsv-ring{animation:tsvArc 1.2s cubic-bezier(.2,.8,.2,1) var(--dly,0s) both}
.tsv-col,.tsv-cap{transform-box:fill-box;transform-origin:bottom;animation:tsvGrow .8s cubic-bezier(.2,.8,.2,1) var(--d,0s) both}
.tsv-cap{animation-delay:.1s}
.tsv-chart{animation:tsvScan 6s linear infinite}
.tsv-stage{animation:tsvIn .5s ease-out .2s both}
}
/* fork TakeTune: SVG wykresow skaluje sie do kolumny (bez sztywnej szerokosci viewBox) */
.tsv-fig svg { display: block; width: 100%; height: auto; }
.tsv-chip small { white-space: nowrap; }

/* fork TakeTune: KOMPAKT (mniejsza skala calej karty) + wykres dyno zamiast gauge/slupkow */
.tsv-compact { padding: 16px 16px 12px; }
.tsv-compact .tsv-heading { gap: 12px; margin-bottom: 10px; }
.tsv-compact .tsv-logo-wrap { width: 46px; height: 46px; border-radius: 10px; }
.tsv-compact .tsv-logo { width: 30px; height: 30px; }
.tsv-compact .tsv-title h2 { font-size: clamp(17px, 2.4vw, 22px); margin: 0 0 7px; }
.tsv-compact .tsv-chips { gap: 7px; }
.tsv-compact .tsv-chip { padding: 4px 9px 4px 7px; border-radius: 9px; gap: 7px; }
.tsv-compact .tsv-chip .tsv-ico { width: 14px; height: 14px; }
.tsv-compact .tsv-chip small { font-size: 9px; }
.tsv-compact .tsv-chip b { font-size: 12px; }
.tsv-compact .tsv-stages { gap: 10px; margin: 10px 0 8px; }
.tsv-compact .tsv-stage { padding: 10px 13px; }
.tsv-compact .tsv-stage h3 { font-size: 12px; }
.tsv-compact .tsv-stage-ico { width: 26px; height: 26px; }
.tsv-compact .tsv-stage-ico .tsv-ico { width: 14px; height: 14px; }
.tsv-compact .tsv-delta { font-size: 23px; }
.tsv-compact .tsv-stage-sub { font-size: 12px; }
.tsv-compact .tsv-stock { font-size: 12.5px; margin: 8px 2px 0; }
.tsv-compact > .muted { font-size: 11.5px; margin: 6px 2px 0; }

.tsvd { position: relative; border: 1px solid var(--border); border-radius: var(--radius-card, 14px);
  padding: 10px 6px 4px; overflow: hidden; background:
  linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px) 0 0/100% 20px,
  linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px) 0 0/20px 100%, var(--panel2); }
.tsvd::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--grad-heat); opacity: .7; }
.tsvd svg { display: block; width: 100%; height: auto; }
.tsvd-grid { stroke: var(--border-soft); stroke-width: 1; stroke-dasharray: 3 4; }
.tsvd-axis { font-size: 10px; fill: var(--muted); font-family: var(--sans); }
.tsvd-axis-nm { fill: var(--accent2); opacity: .75; }
.tsvd-cap { font-size: 9.5px; letter-spacing: .05em; }
.tsvd-line { fill: none; stroke-width: 2.6; stroke-linecap: round; }
.tsvd-nm { stroke-width: 1.8; stroke-dasharray: 5 5; opacity: .85; }
.tsvd-stock { stroke: #8C97A7; }
.tsvd-s1 { stroke: var(--accent-light); }
.tsvd-s2 { stroke: url(#tsvHeat); }
.tsvd-ps.tsvd-s1:last-of-type, .tsvd-ps.tsvd-s2 { stroke-width: 3; }
.tsvd-fill { fill: url(#tsvFill); stroke: none; }
.tsvd-end { font-size: 12px; font-weight: 700; font-family: var(--sans); }
.tsvd-peak { font-size: 10.5px; font-weight: 600; font-family: var(--sans); }
.tsvd-end-stock { fill: #8C97A7; }
.tsvd-end-s1 { fill: var(--accent-light); }
.tsvd-end-s2 { fill: var(--accent2); }
.tsvd-leg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px;
  list-style: none; margin: 4px 0 6px; padding: 0 6px; font-size: 11.5px; color: var(--text2); }
.tsvd-leg b { color: var(--text); font-weight: 600; }
.tsvd-leg li { display: flex; align-items: center; gap: 6px; }
.tsvd-sw { width: 16px; height: 0; border-top: 2.6px solid #8C97A7; border-radius: 2px; }
.tsvd-sw-s1 { border-top-color: var(--accent-light); }
.tsvd-sw-s2 { border-top: 3px solid; border-image: linear-gradient(90deg, #F5443B, #FF9A1E) 1; }
.tsvd-sw-dash { border-top-style: dashed; }
@media (prefers-reduced-motion: no-preference) {
  .tsvd-ps { stroke-dasharray: 100 100; stroke-dashoffset: 100; animation: tsvdDraw 1.1s cubic-bezier(.3,.7,.3,1) forwards; animation-delay: var(--dly, 0s); }
  @keyframes tsvdDraw { to { stroke-dashoffset: 0; } }
  .tsvd-fill, .tsvd-end, .tsvd-peak { opacity: 0; animation: tsvdFade .5s ease-out .9s forwards; }
  @keyframes tsvdFade { to { opacity: 1; } }
  .tsvd-fill { animation-name: tsvdFadeFill; }
  @keyframes tsvdFadeFill { to { opacity: 1; } }
}
.tsvd-leg-rpm { margin-left: auto; color: var(--muted); font-size: 10.5px; }
/* fork TakeTune: etykiety wykresu zawsze czytelne (halo + warstwa nad liniami) */
.tsvd-end, .tsvd-peak { paint-order: stroke; stroke: var(--panel2); stroke-width: 3.5px; stroke-linejoin: round; }
.tsvd-dot { stroke: var(--panel2); stroke-width: 1.6; }
.tsvd-dlt { color: var(--ok-text); font-style: normal; font-weight: 600; }
.tsvd-axis-title { font-size: 10.5px; font-weight: 600; letter-spacing: .09em; fill: var(--muted);
  font-family: var(--sans); text-transform: uppercase; }
/* fork TakeTune: overlay ladowania pickera (przyciemnienie + logo + laser) */
.tsv-picker { position: relative; }
.tsv-busy-ov { position: absolute; inset: -6px; z-index: 6; display: none; flex-direction: column;
  align-items: center; justify-content: center; gap: 14px; border-radius: 14px;
  background: rgba(10,13,18,.66); backdrop-filter: blur(2.5px); }
:root[data-theme="light"] .tsv-busy-ov { background: rgba(244,246,248,.72); }
.tsv-picker.tsv-busy .tsv-busy-ov { display: flex; }
.tsv-busy-ov img { width: 52px; height: 52px; object-fit: contain;
  animation: tslPulse 1.35s ease-in-out infinite; filter: drop-shadow(0 0 12px rgba(245,68,59,.45)); }
.tsv-busy-ov .tsl-bar { width: 200px; max-width: 70%; margin: 0; }
