
.tv-form {display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:12px; margin:16px 0;}
.tv-row {display:flex; flex-direction:column; gap:6px;}
.tv-actions {grid-column: 1 / -1; display:flex; gap:8px; flex-wrap:wrap;}
.tv-actions button{padding:10px 14px; border:0; background:#111827; color:#fff; border-radius:8px; cursor:pointer;}
.tv-actions .tv-print{background:#0f766e;}
.tv-actions .tv-copy{background:#1d4ed8;}
.tv-actions .tv-download{background:#6b7280;}
.tv-meta{margin:12px 0; padding:10px 12px; background:#f8fafc; border-radius:10px;}
.tv-chart {display:grid; grid-template-columns: repeat(4, 1fr); gap:8px; margin:16px 0;}
.tv-cung {border:1px solid #e5e7eb; border-radius:10px; padding:10px; min-height:150px; display:flex; flex-direction:column; background:#fff;}
.tv-cung-title{font-weight:700; color:#0f172a; margin-bottom:6px; display:flex; justify-content:space-between; align-items:center;}
.tv-chi-badge{font-size:12px; padding:2px 6px; border-radius:9999px; border:1px solid #94a3b8; color:#334155;}
.tv-cung-stars{flex:1; display:flex; flex-wrap:wrap; gap:6px; align-content:flex-start;}
.tv-tag{font-size:12px; padding:2px 6px; border-radius:6px; background:#eef2ff; color:#3730a3; border:1px solid #c7d2fe;}
.tv-tag.tv-ts{background:#ecfeff; color:#0e7490; border-color:#a5f3fc;}
.tv-tag.tv-star{background:#fff7ed; color:#7c2d12; border-color:#fed7aa;}
.tv-tag.tv-than{background:#fde68a; color:#7c2d12; border-color:#f59e0b;}
.tv-cung-notes{color:#6b7280;}
.tv-advice{margin:16px 0; padding:12px 14px; background:#fff; border:1px solid #e5e7eb; border-radius:10px;}
.tv-advice-title{font-weight:700; margin-bottom:8px; color:#0f172a;}
.tv-advice ul{margin:0; padding-left:18px;}
.tv-advice li{margin:6px 0;}
.tv-sections{display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:12px; margin:12px 0;}
.tv-section{border:1px solid #e5e7eb; border-radius:10px; padding:12px; background:#fff;}
.tv-section-title{font-weight:700; margin-bottom:6px;}
@media (max-width: 900px){ .tv-chart{grid-template-columns: repeat(3, 1fr);} .tv-sections{grid-template-columns: 1fr;} }
@media (max-width: 640px){ .tv-chart{grid-template-columns: repeat(2, 1fr);} .tv-form{grid-template-columns:1fr;} }
@media print{
  body{background:#fff;}
  .tv-actions{display:none !important;}
  .tv-form{display:none !important;}
  .tv-section, .tv-cung, .tv-advice, .tv-meta{break-inside: avoid;}
}
