.tv-tool{display:grid;gap:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--card);padding:1rem;margin-bottom:2rem}
.tv-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.tv-tool label{display:grid;gap:.35rem;font-weight:700}
.tv-tool input,.tv-tool select,.tv-tool textarea{width:100%;border:1px solid var(--line);border-radius:.75rem;background:var(--soft);color:var(--text);padding:.8rem;font:inherit}
.tv-tool textarea{min-height:150px;resize:vertical}
.tv-tool-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.tv-output{border:1px solid var(--line);border-radius:.85rem;background:var(--soft);padding:1rem;min-height:72px;white-space:pre-wrap;overflow:auto}
.tv-preview{display:grid;gap:.75rem;align-items:start}
.tv-preview img,.tv-preview canvas{max-width:100%;border:1px solid var(--line);border-radius:.75rem;background:#fff}
.tv-table{width:100%;border-collapse:collapse;font-size:.95rem}.tv-table th,.tv-table td{border-bottom:1px solid var(--line);padding:.55rem;text-align:left}
.tv-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.tv-kpi span{border:1px solid var(--line);border-radius:.75rem;background:var(--soft);padding:.85rem}.tv-kpi b{display:block;font-size:1.45rem}
.tv-note{color:var(--muted);font-size:.93rem}.tv-good{color:#047857}.tv-bad{color:#b91c1c}.tv-warn{color:#b45309}
@media(max-width:700px){.tv-tool-grid,.tv-kpi{grid-template-columns:1fr}}
