/* TrustIT View — complementos do tema do netportal */
.totp-key { font-size: 16px; letter-spacing: .08em; text-align: center; margin: 10px 0 4px; user-select: all; }
.st { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 12.5px; white-space: nowrap; }
.st i { width: 9px; height: 9px; border-radius: 50%; background: var(--k); flex: none; }
.st.ok { --k: var(--ok); color: var(--ok); }
.st.warn { --k: var(--warn); color: var(--warn); }
.st.bad { --k: var(--bad); color: var(--bad); }
.st.bad i { animation: tvblink 1.2s infinite; }
@keyframes tvblink { 50% { opacity: .35; } }
.probs { display: flex; flex-direction: column; gap: 2px; font-size: 12.5px; }
.probs .bad { color: var(--bad); } .probs .warn { color: var(--warn); }
.nav-portal { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 10px; color: var(--muted); font-size: 13px; }
.nav-portal:hover { background: var(--panel); color: var(--text); text-decoration: none; }
.nav-portal.active { background: color-mix(in srgb, var(--accent) 10%, var(--panel)); color: var(--text); }
.nav-portal i { width: 8px; height: 8px; border-radius: 50%; background: var(--k, var(--faint)); flex: none; }
.ph-meta { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.note { font-size: 12.5px; color: var(--muted); line-height: 1.5; }
.note b { color: var(--text); font-weight: 600; }
.code { font-family: var(--mono); font-size: 12.5px; background: var(--panel-2); border-radius: 6px; padding: 1px 6px; }
.pih { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.filters .spacer { flex: 1; }
.tbl-scroll { max-height: 640px; overflow: auto; }
.chart.bars { height: auto; min-height: 120px; }
@media (max-width: 700px) { .filters > select { flex: 1 1 100%; } }
/* 6 indicadores numa linha só no computador; 2 por linha no celular */
.grid.kpis { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
/* botão de menu só no celular (o .icon-btn do tema base sobrescrevia o display:none) */
.icon-btn.menu-btn { display: none; }
@media (max-width: 1000px) { .icon-btn.menu-btn { display: grid; } }
@media (max-width: 700px) { .grid.kpis { grid-template-columns: 1fr 1fr; } .kpi .value { font-size: 22px; } }
