/* ===== Prime TI Platform — Design System Prime TI (tema claro, roxo nos detalhes) =====
   Fundo branco/lavanda levíssimo, superfícies brancas, roxo nos botões e destaques. */
:root {
    --bg: #f6f4fb;
    --surface: #ffffff;
    --surface-2: #f3effc;
    --surface-3: #ebe5f8;
    --border: #e2dcf0;
    --border-soft: #ece8f6;
    --text: #1d1832;
    --muted: #5d5677;
    --faint: #8c84a4;
    --accent: #7c5cff;
    --accent-2: #6a44e8;
    --accent-soft: rgba(124, 92, 255, .12);
    --good: #1f9d63;
    --good-soft: rgba(31, 157, 99, .12);
    --warn: #b3791c;
    --warn-soft: rgba(224, 166, 58, .18);
    --crit: #d63d43;
    --crit-soft: rgba(214, 61, 67, .10);
    --radius: 12px;
    --radius-sm: 8px;
    --shadow: 0 6px 20px rgba(60, 40, 120, .08);
    --font: "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 14px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
a { color: var(--accent-2); text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 600; text-wrap: balance; }
h1 { font-size: 24px; letter-spacing: -.01em; }
h2 { font-size: 16px; }
.tnum { font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
code { font-family: Consolas, "Cascadia Mono", monospace; font-size: 12px; }

/* ===================== shell ===================== */
.app { display: flex; min-height: 100vh; }
.sidebar {
    width: 232px; flex-shrink: 0; position: sticky; top: 0; height: 100vh;
    background: linear-gradient(180deg, var(--surface) 0%, var(--bg) 100%);
    border-right: 1px solid var(--border);
    display: flex; flex-direction: column; padding: 20px 14px; gap: 18px;
}
.brand { display: flex; align-items: center; gap: 10px; padding: 4px 6px; color: var(--text); }
.brand-mark { width: 34px; height: 34px; object-fit: contain; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-text strong { font-size: 15px; }
.brand-text small { color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.nav-section { color: var(--faint); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; padding: 14px 10px 6px; }
.nav-item {
    display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--radius-sm);
    color: var(--muted); transition: background .15s, color .15s;
}
.nav-item:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.nav-item.active { background: var(--accent-soft); color: var(--text); box-shadow: inset 3px 0 0 var(--accent); }
.nav-item-disabled { color: var(--faint); cursor: default; }
.nav-item-disabled:hover { background: transparent; color: var(--faint); }
.nav-item em { margin-left: auto; font-style: normal; font-size: 10px; color: var(--faint); border: 1px solid var(--border); border-radius: 999px; padding: 1px 7px; }
.nav-ico { width: 18px; text-align: center; color: var(--accent-2); font-size: 13px; }
.sidebar-foot { padding: 6px; }

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 12px 28px; border-bottom: 1px solid var(--border-soft);
    background: rgba(255, 255, 255, .82); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 5;
}
.topbar-right { display: flex; align-items: center; gap: 12px; }
.crumb { color: var(--muted); font-size: 13px; }
.tenant-form { margin: 0; }
.user-chip { display: flex; align-items: center; gap: 8px; }
.avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-2); display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.user-name { color: var(--muted); font-size: 13px; }
.content { padding: 28px; max-width: 1200px; width: 100%; display: flex; flex-direction: column; gap: 20px; }

/* ===================== componentes ===================== */
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.eyebrow { display: block; color: var(--accent-2); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; }
.card { background: var(--surface); border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.card h2 { margin-bottom: 12px; }
.card-table { padding: 0; overflow-x: auto; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.kpi { display: flex; flex-direction: column; gap: 4px; }
.kpi-label { color: var(--muted); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.kpi-value { font-size: 32px; font-weight: 700; letter-spacing: -.02em; }
.kpi-sub { color: var(--faint); font-size: 12px; }
.kpi-muted .kpi-value { color: var(--faint); }

.table { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: 12px 18px; text-align: left; border-bottom: 1px solid var(--border-soft); }
.table th { color: var(--muted); font-weight: 500; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; background: var(--surface-2); }
.table tbody tr:hover { background: var(--surface-2); }
.table tbody tr:last-child td { border-bottom: 0; }
.table .empty { color: var(--faint); text-align: center; padding: 28px; }

.pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 500; border: 1px solid transparent; }
.pill-muted { background: var(--surface-3); color: var(--muted); border-color: var(--border); }
.pill-accent { background: var(--accent-soft); color: var(--accent-2); }
.pill-good { background: var(--good-soft); color: var(--good); }
.pill-warn { background: var(--warn-soft); color: var(--warn); }
.pill-crit { background: var(--crit-soft); color: var(--crit); }

.checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.checklist li { padding-left: 26px; position: relative; color: var(--text); }
.checklist li::before { content: ""; position: absolute; left: 0; top: 5px; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--border); }
.checklist li.ok::before { background: var(--good-soft); border-color: var(--good); box-shadow: inset 0 0 0 3px var(--surface); background: var(--good); }
.checklist li.next { color: var(--muted); }
.checklist li.next::before { border-style: dashed; border-color: var(--accent-2); }

.empty-state { text-align: center; padding: 48px 20px; }
.empty-state p { color: var(--muted); max-width: 46ch; margin: 8px auto 0; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 16px; border-radius: var(--radius-sm); border: 1px solid transparent; font: inherit; font-weight: 600; cursor: pointer; transition: filter .15s, background .15s; }
.btn:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.btn-primary { background: linear-gradient(135deg, var(--accent) 0%, #6a48f0 100%); color: #fff; box-shadow: 0 6px 18px rgba(124, 92, 255, .3); }
.btn-primary:hover { filter: brightness(1.08); }
.btn-ghost { background: transparent; color: var(--muted); border-color: var(--border); }
.btn-ghost:hover { background: var(--surface-2); color: var(--text); }
.btn-sm { padding: 6px 12px; font-size: 13px; }
.btn-block { width: 100%; }

.input, .select { width: 100%; background: var(--surface-2); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; font: inherit; transition: border-color .15s, box-shadow .15s; }
.select { width: auto; min-width: 220px; padding: 7px 10px; }
.input:focus, .select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.field > span { color: var(--muted); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.validation-message { color: var(--crit); font-size: 12px; }
.alert { padding: 10px 12px; border-radius: var(--radius-sm); margin-bottom: 14px; font-size: 13px; }
.alert-crit { background: var(--crit-soft); color: var(--crit); border: 1px solid rgba(214, 61, 67, .32); }

/* ===================== auth ===================== */
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(1200px 600px at 20% -10%, rgba(124, 92, 255, .18), transparent 60%), var(--bg); }
.auth-card { width: 100%; max-width: 400px; background: var(--surface); border: 1px solid var(--border-soft); border-radius: 16px; padding: 32px; box-shadow: var(--shadow); }
.auth-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
.auth-brand img { width: 46px; height: 46px; object-fit: contain; }
.auth-brand h1 { font-size: 20px; }
.auth-brand p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.auth-foot { margin: 18px 0 0; color: var(--faint); font-size: 12px; text-align: center; }

#blazor-error-ui { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: var(--surface); color: var(--text); border-top: 1px solid var(--border); box-shadow: 0 -6px 20px rgba(60,40,120,.08); padding: 12px 20px; z-index: 100; font-size: 13.5px; }
#blazor-error-ui .reload { color: var(--accent-2); font-weight: 600; }
#blazor-error-ui .dismiss { cursor: pointer; float: right; color: var(--faint); }

/* ===== Aviso de reconexão — mensagem amigável (não parece erro) ===== */
#components-reconnect-modal { display: none; position: fixed; inset: 0; z-index: 1000; align-items: center; justify-content: center; padding: 20px; background: rgba(29, 24, 50, .28); backdrop-filter: blur(3px); }
#components-reconnect-modal.components-reconnect-show,
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected { display: flex; }
.rc-card { width: 100%; max-width: 380px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 24px 60px rgba(29, 24, 50, .28); padding: 26px 24px; text-align: center; }
.rc-state { display: none; flex-direction: column; align-items: center; gap: 14px; }
#components-reconnect-modal.components-reconnect-show .rc-reconnecting { display: flex; }
#components-reconnect-modal.components-reconnect-failed .rc-failed,
#components-reconnect-modal.components-reconnect-rejected .rc-failed { display: flex; }
.rc-spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--accent-soft); border-top-color: var(--accent); animation: rc-spin .8s linear infinite; }
@keyframes rc-spin { to { transform: rotate(360deg); } }
.rc-badge { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font-size: 24px; background: var(--accent-soft); }
.rc-text { display: flex; flex-direction: column; gap: 5px; }
.rc-text strong { font-size: 16px; color: var(--text); }
.rc-text span { font-size: 13.5px; color: var(--muted); line-height: 1.5; }
.rc-actions { display: flex; gap: 8px; margin-top: 6px; }
@media (prefers-reduced-motion: reduce) { .rc-spinner { animation: none; } }

@media (max-width: 860px) {
    .sidebar { display: none; }
    .content { padding: 18px; }
    .topbar { padding: 10px 16px; }
    .user-name { display: none; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ===================== framework / simulador ===================== */
.row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.row.end { justify-content: flex-end; margin-top: 10px; }
.stack { display: flex; flex-direction: column; gap: 16px; }
.inline { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 12px; }
.input-sm { padding: 6px 10px; font-size: 13px; }
.w-code { width: 90px; } .w-name { flex: 1; min-width: 200px; } .w-num { width: 80px; } .w-full { width: 100%; }
.mono { font-family: Consolas, "Cascadia Mono", monospace; font-size: 12.5px; }
/* Blocos de comando: quebram e ficam contidos na coluna (sem estourar/sobrepor) */
pre.mono { white-space: pre-wrap; overflow-wrap: anywhere; background: var(--surface-2); padding: 10px 12px; border-radius: var(--radius-sm); margin: 6px 0; }
.danger { color: var(--crit); }
.pilar-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.pilar-head h2 { flex: 1; }
.controls { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.control { border: 1px solid var(--border-soft); border-radius: var(--radius-sm); background: var(--surface-2); }
.control.open { border-color: var(--accent); }
.control-row { display: grid; grid-template-columns: 90px 1fr auto auto; gap: 12px; align-items: center; padding: 10px 14px; cursor: pointer; }
.control-row:hover { background: var(--surface-3); }
.control-row .code { color: var(--accent-2); font-weight: 600; font-variant-numeric: tabular-nums; }
.control-row .meta { color: var(--faint); font-size: 12px; }
.control-row .chev { color: var(--faint); }
.control-body { padding: 14px; border-top: 1px solid var(--border-soft); display: flex; flex-direction: column; gap: 10px; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 16px; }
.grid2 > * { min-width: 0; }
.field.check { flex-direction: row; align-items: center; gap: 8px; }
.field.check span { text-transform: none; letter-spacing: 0; color: var(--text); }
.rules-head { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.rules-head h3 { font-size: 13px; }
.rule { border: 1px solid var(--border-soft); border-radius: var(--radius-sm); padding: 10px; display: flex; flex-direction: column; gap: 6px; background: var(--surface); }
.rule.hit { border-color: var(--good); }
.rule-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cond { font-size: 12.5px; padding: 4px 8px; border-radius: 6px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.cond.ok { background: var(--good-soft); } .cond.fail { background: var(--crit-soft); }
.help pre { background: var(--surface-2); padding: 10px; border-radius: var(--radius-sm); overflow-x: auto; }
.alert-info { background: var(--accent-soft); color: var(--accent-2); border: 1px solid rgba(124,92,255,.35); }
.alert-good { background: var(--good-soft); color: var(--good); border: 1px solid rgba(63,191,135,.35); }
.alert ul { margin: 6px 0 0 18px; padding: 0; }
.sim { display: grid; grid-template-columns: minmax(320px, 2fr) 3fr; gap: 16px; align-items: start; }
@media (max-width: 1000px) { .sim { grid-template-columns: 1fr; } }
.score-card { display: flex; align-items: center; gap: 24px; }
.score-big { display: flex; align-items: baseline; gap: 6px; }
.score-num { font-size: 56px; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.score-of { color: var(--faint); font-size: 16px; }
.score-side { display: flex; flex-direction: column; gap: 4px; }
.avisos { margin: 6px 0 0; padding-left: 18px; color: var(--warn); font-size: 12px; }
.pilar-score { display: grid; grid-template-columns: 1fr auto 200px 60px; gap: 14px; align-items: center; margin-bottom: 10px; }
.bar { height: 8px; background: var(--surface-3); border-radius: 999px; overflow: hidden; display: block; }
.bar-fill { display: block; height: 100%; background: var(--accent); border-radius: 999px; transition: width .4s; }
.bar-fill.good { background: var(--good); } .bar-fill.warn { background: var(--warn); } .bar-fill.crit { background: var(--crit); }
.pnota, .cnota { font-weight: 700; text-align: right; }
.good { color: var(--good); } .warn { color: var(--warn); } .crit { color: var(--crit); }
@media (max-width: 700px) { .control-row { grid-template-columns: 1fr auto; } .control-row .meta { display: none; } .pilar-score { grid-template-columns: 1fr 60px; } .pilar-score .bar, .pilar-score .muted { display: none; } }

/* ===================== avaliação / evidências ===================== */
.row-active td { background: var(--accent-soft); }
.radar { display: flex; flex-direction: column; gap: 4px; min-width: 220px; margin-left: auto; }
.radar-row { display: grid; grid-template-columns: 40px 1fr 32px; gap: 8px; align-items: center; font-size: 12px; }
.radar-lbl { color: var(--muted); font-weight: 600; }
.control.pend .code { color: var(--warn); }
.lanc { display: grid; grid-template-columns: 220px 1fr; gap: 16px; padding: 12px; border: 1px dashed var(--border); border-radius: var(--radius-sm); }
.lanc-sug, .lanc-form { display: flex; flex-direction: column; gap: 6px; }
.lanc-sug strong { font-size: 22px; }
.token-box { margin-top: 12px; padding: 12px; background: var(--surface-2); border: 1px solid var(--accent); border-radius: var(--radius-sm); word-break: break-all; }
.score-num.good { color: var(--good); } .score-num.warn { color: var(--warn); } .score-num.crit { color: var(--crit); }
@media (max-width: 900px) { .lanc { grid-template-columns: 1fr; } .score-card { flex-wrap: wrap; } .radar { margin-left: 0; width: 100%; } }

.steps { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; }
.plain { margin: 6px 0 0; padding-left: 18px; color: var(--muted); display: flex; flex-direction: column; gap: 4px; }

.dash-grid { display: grid; grid-template-columns: auto 1fr minmax(220px, 300px); gap: 24px; align-items: center; }
.spark { margin-top: 14px; overflow-x: auto; }
.spark svg text { fill: var(--faint); }
@media (max-width: 900px) { .dash-grid { grid-template-columns: 1fr; } }

/* evidências: linha expansível + detalhe */
.ev-row { cursor: pointer; }
.ev-row .chev { color: var(--faint); width: 24px; }
.ev-detail { background: var(--surface-2); padding: 14px 18px !important; }
.ev-block h3 { font-size: 13px; margin: 0 0 8px; }
.ev-block .table { font-size: 13px; }
.ev-json { margin-top: 10px; }
.ev-json pre { max-height: 360px; overflow: auto; background: var(--surface); padding: 10px; border-radius: var(--radius-sm); font-size: 12px; white-space: pre-wrap; word-break: break-word; }
.sw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 14px; font-size: 12.5px; }

/* ============================================================
   REDESIGN v2 — Design System evoluído (sidebar escura + topbar + Home premium)
   ============================================================ */
:root{
  --card:#ffffff; --card2:var(--surface-2); --ink:var(--text); --line:var(--border-soft); --line2:var(--border);
  --brand:var(--accent); --brand-ink:var(--accent-2); --brand-soft:var(--accent-soft);
  --ok:var(--good); --ok-s:var(--good-soft); --warn-s:var(--warn-soft); --crit-s:var(--crit-soft);
  --op:#7c5cff; --diag:#3b82f6; --mon:#12a97e; --fer:#ef8f33; --adm:#e0568a;
  /* ===== Marca oficial Prime TI (brand pass) ===== */
  --brand-purple:#7000c2; --brand-purple-2:#5124d7; --brand-purple-3:#8100c4; --graphite:#2a2a2a;
  --brand-cta:linear-gradient(135deg,#7b3ff0 0%,#5a2cc0 100%);
  --brand-hero:linear-gradient(135deg,#2b1163 0%,#4a1f9e 46%,#6a34c9 100%);
  --sb1:#181334; --sb2:#141a34; --sb-text:#b7b0d4; --sb-faint:#7a739e; --sb-label:#938cc4;
  --sh-sm:0 1px 2px rgba(30,20,60,.05), 0 2px 6px rgba(30,20,60,.05); --sh:0 8px 26px rgba(55,40,105,.09);
  --r:15px; --r-sm:10px; --disp:var(--font); --mono:Consolas,"Cascadia Mono",monospace;
}
.ico{fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none}

/* ---------- SIDEBAR escura ---------- */
.sidebar{ width:256px; background:linear-gradient(180deg,var(--sb1),var(--sb2)); border-right:1px solid rgba(255,255,255,.05); padding:22px 14px 16px; gap:6px; }
.brand{ padding:4px 8px 16px; gap:12px; color:#fff; }
.brand .brand-mark{ width:40px; height:40px; }
.brand .brand-logo{ width:42px; height:42px; border-radius:12px; background:linear-gradient(135deg,#7c5cff,#8e3aa6); display:grid; place-items:center; box-shadow:0 8px 20px rgba(124,92,255,.4); }
.brand .brand-logo svg{ width:23px; height:23px; stroke:#fff; fill:none; stroke-width:2; }
.brand-text strong{ font-size:16px; color:#fff; }
.brand-text small{ color:var(--sb-faint); }
.nav{ gap:3px; overflow-y:auto; padding-right:2px; scrollbar-width:none; -ms-overflow-style:none; }
.nav::-webkit-scrollbar{ width:0; height:0; }
.nav-section{ color:var(--sb-label); font-size:10.5px; font-weight:700; padding:16px 10px 7px; }
.nav-item{ gap:11px; padding:9px 11px; border-radius:10px; color:var(--sb-text); font-size:13.5px; font-weight:500; }
.nav-item .nav-ico{ width:18px; text-align:center; color:#9a92c4; font-size:14px; }
.nav-item:hover{ background:rgba(255,255,255,.05); color:#fff; }
.nav-item.active{ background:linear-gradient(135deg,#7c5cff,#6a48f0); color:#fff; box-shadow:0 6px 16px rgba(124,92,255,.4); }
.nav-item.active .nav-ico{ color:#fff; }
.nav-item-disabled{ color:var(--sb-faint); }
.nav-item-disabled .nav-ico{ color:var(--sb-faint); opacity:.6; }
.nav-item-disabled:hover{ background:transparent; color:var(--sb-faint); }
.nav-item em{ color:var(--sb-faint); border-color:rgba(255,255,255,.14); }
.nav-item .pill{ background:rgba(255,255,255,.1) !important; color:#cfc7ee !important; border:0 !important; }
.nav-item .pill.pill-crit{ background:var(--crit) !important; color:#fff !important; }
.sidebar-foot{ border-top:1px solid rgba(255,255,255,.07); margin-top:8px; padding:14px 10px 2px; display:flex; flex-direction:column; gap:5px; }
.sidebar-foot .v{ font-family:var(--mono); font-size:11px; color:#cfc7ee; }
.sidebar-foot .env{ display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--sb-faint); }
.sidebar-foot .env i{ width:7px; height:7px; border-radius:50%; background:var(--ok); }

/* ---------- TOPBAR completa ---------- */
.topbar{ padding:12px 26px; gap:16px; }
.tb-search{ flex:1; max-width:420px; display:flex; align-items:center; gap:9px; background:var(--card2); border:1px solid var(--line2); border-radius:10px; padding:9px 13px; color:var(--faint); }
.tb-search .ico{ width:16px; height:16px; }
.tb-search input{ border:0; background:transparent; outline:none; font:inherit; font-size:13.5px; color:var(--ink); width:100%; }
.tb-search kbd{ font-family:var(--mono); font-size:10.5px; color:var(--faint); border:1px solid var(--line2); border-radius:5px; padding:1px 6px; background:#fff; }
.tb-right{ margin-left:auto; display:flex; align-items:center; gap:12px; }
.tb-btn{ position:relative; width:40px; height:40px; border-radius:10px; border:1px solid var(--line2); background:var(--card); display:grid; place-items:center; color:var(--muted); box-shadow:var(--sh-sm); cursor:pointer; }
.tb-btn .ico{ width:18px; height:18px; }
.tb-btn .dot{ position:absolute; top:8px; right:9px; width:8px; height:8px; border-radius:50%; background:var(--crit); border:2px solid var(--card); }
.tb-cta{ display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg,#7c5cff,#6a48f0); color:#fff; font-weight:700; font-size:13.5px; border:0; border-radius:10px; padding:10px 16px; box-shadow:0 8px 18px rgba(124,92,255,.32); cursor:pointer; }
.tb-cta .ico{ width:16px; height:16px; stroke-width:2.4; }
.tb-user{ display:flex; align-items:center; gap:9px; padding-left:4px; }
.tb-user .avatar{ width:36px; height:36px; font-size:13px; background:linear-gradient(135deg,#7c5cff,#8e3aa6); color:#fff; }
.tb-user .nm{ display:block; font-size:13px; font-weight:600; line-height:1.15; color:var(--ink); }
.tb-user .rl{ display:block; font-size:11px; color:var(--faint); line-height:1.1; }
.tenant-form .select{ min-width:0; box-shadow:var(--sh-sm); border-radius:10px; }

/* ---------- HOME (escopo .hub) ---------- */
.content{ max-width:1440px; margin-inline:auto; }   /* #1 — centraliza e alarga a área útil */
.hub{ display:flex; flex-direction:column; gap:26px; max-width:none; width:100%; }
.hub .hero{ position:relative; overflow:hidden; border-radius:18px; padding:26px 28px; border:1px solid var(--line); box-shadow:var(--sh-sm);
  background:radial-gradient(700px 200px at 92% -30%, rgba(124,92,255,.16), transparent 70%), linear-gradient(180deg,#ffffff,#fbfaff); }
.hub .hero .eyebrow{ color:var(--brand-ink); }
.hub .hero h1{ font-family:var(--disp); font-weight:800; font-size:30px; letter-spacing:-.02em; margin:0 0 6px; }
.hub .hero p{ margin:0; color:var(--muted); font-size:15px; }
.hub .hero .date{ position:absolute; top:26px; right:28px; font-size:13px; color:var(--faint); font-family:var(--mono); }

.hub .hkpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.hub .hkpi{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px 18px 16px; box-shadow:var(--sh-sm); transition:transform .15s,box-shadow .15s; }
.hub a.hkpi:hover{ transform:translateY(-3px); box-shadow:var(--sh); text-decoration:none; }
.hub .hkpi .top{ display:flex; align-items:center; justify-content:space-between; }
.hub .hkpi .badge{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center; }
.hub .hkpi .badge .ico{ width:22px; height:22px; }
.hub .hkpi .trend{ font-size:11.5px; font-weight:700; font-family:var(--mono); padding:3px 8px; border-radius:999px; }
.hub .hkpi .num{ font-family:var(--disp); font-weight:800; font-size:42px; line-height:1; letter-spacing:-.03em; margin:14px 0 4px; font-variant-numeric:tabular-nums; color:var(--ink); }
.hub .hkpi .lbl{ font-size:13px; color:var(--muted); font-weight:600; }
.hub .hkpi .sub{ font-size:12px; color:var(--faint); margin-top:2px; }
.hub .t-op .badge{ background:var(--brand-soft); color:var(--op); } .hub .t-op .trend{ background:var(--brand-soft); color:var(--brand-ink); }
.hub .t-ok .badge{ background:var(--ok-s); color:var(--ok); } .hub .t-ok .trend{ background:var(--ok-s); color:var(--ok); }
.hub .t-warn .badge{ background:var(--warn-s); color:var(--warn); } .hub .t-warn .trend{ background:var(--warn-s); color:var(--warn); }
.hub .t-crit .badge{ background:var(--crit-s); color:var(--crit); } .hub .t-crit .trend{ background:var(--crit-s); color:var(--crit); }

.hub .attn{ background:linear-gradient(120deg,#ffffff 42%,#fdeef0); border:1px solid #f0d2d4; border-left:5px solid var(--crit); border-radius:var(--r); padding:24px 26px; box-shadow:var(--sh); }
.hub .attn-h{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.hub .attn-h .ring{ width:34px; height:34px; border-radius:50%; background:var(--crit-s); color:var(--crit); display:grid; place-items:center; }
.hub .attn-h .ring .ico{ width:19px; height:19px; stroke-width:2; }
.hub .attn-h h3{ font-family:var(--disp); font-size:19px; margin:0; font-weight:700; }
.hub .attn-h .sub{ font-size:12.5px; color:var(--muted); }
.hub .attn-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }
.hub .attn-item{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:15px; transition:transform .14s,box-shadow .14s; }
.hub a.attn-item:hover{ transform:translateY(-2px); box-shadow:var(--sh-sm); text-decoration:none; }
.hub .attn-item .n{ font-family:var(--disp); font-weight:800; font-size:30px; line-height:1; }
.hub .attn-item .tx{ font-size:13px; color:var(--muted); line-height:1.3; }
.hub .attn-item .go{ margin-left:auto; color:var(--faint); display:grid; place-items:center; }
.hub .attn-item .go .ico{ width:16px; height:16px; }
.hub .attn-item.c-crit .n{ color:var(--crit); } .hub .attn-item.c-warn .n{ color:var(--warn); } .hub .attn-item.c-ok .n{ color:var(--ok); } .hub .attn-item.c-muted .n{ color:var(--faint); }

.hub .sh{ display:flex; align-items:center; gap:12px; }
.hub .sh .bar{ width:4px; height:19px; border-radius:3px; background:var(--c); }
.hub .sh h2{ font-family:var(--disp); font-size:15px; font-weight:700; margin:0; }
.hub .sh .hint{ font-size:12.5px; color:var(--faint); }
.hub .sh .line{ flex:1; height:1px; background:var(--line); }
.hub .s-op{ --c:var(--op); } .hub .s-diag{ --c:var(--diag); } .hub .s-mon{ --c:var(--mon); } .hub .s-fer{ --c:var(--fer); }

.hub .mods{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.hub .mcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:12px; transition:transform .15s,box-shadow .15s,border-color .15s; }
.hub a.mcard:hover{ transform:translateY(-3px); box-shadow:var(--sh); border-color:color-mix(in srgb,var(--c) 40%, var(--line)); text-decoration:none; }
.hub .mcard .mh{ display:flex; align-items:center; gap:11px; }
.hub .mcard .mi{ width:40px; height:40px; border-radius:11px; display:grid; place-items:center; background:color-mix(in srgb,var(--c) 13%, white); color:var(--c); }
.hub .mcard .mi .ico{ width:21px; height:21px; }
.hub .mcard h3{ font-family:var(--disp); font-size:15.5px; margin:0; font-weight:700; }
.hub .mcard .rows{ display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--muted); }
.hub .mcard .rows b{ color:var(--ink); }
.hub .mcard .rows .r{ display:flex; align-items:center; gap:7px; }
.hub .mcard .rows .d{ width:7px; height:7px; border-radius:50%; flex:none; }
.hub .mcard .foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:4px; }
.hub .mcard .cta{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--c); }
.hub .mcard .cta .ico{ width:14px; height:14px; }
.hub .mcard.soon{ opacity:.72; }
.hub .mcard .tag{ font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); border:1px solid var(--line2); border-radius:999px; padding:2px 9px; }
.hub .mcard .minibar{ display:flex; height:7px; border-radius:99px; overflow:hidden; background:var(--line); }
.hub .mcard .minibar b{ display:block; height:100%; }
.hub .fw{ grid-column:span 2; background:linear-gradient(135deg,#eef3ff,#ffffff); border:1px solid #d9e4fb; }
.hub .fw2{ display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
.hub .gauge{ width:130px; height:130px; position:relative; flex:none; }
.hub .gauge svg{ transform:rotate(-90deg); }
.hub .gauge .g-num{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hub .gauge .g-num b{ font-family:var(--disp); font-weight:800; font-size:36px; line-height:1; color:var(--diag); }
.hub .gauge .g-num span{ font-size:11px; color:var(--faint); font-family:var(--mono); margin-top:2px; }
.hub .fw2 .faixa{ display:inline-flex; align-items:center; gap:8px; font-family:var(--disp); font-weight:700; font-size:15px; color:var(--diag); }
.hub .fw2 .faixa .d{ width:9px; height:9px; border-radius:50%; background:var(--diag); }
.hub .fw2 .trend{ margin-top:8px; font-size:12.5px; color:var(--ok); font-weight:700; }
.hub .fw2 .cap{ font-size:12px; color:var(--faint); margin-top:3px; }
.hub .fw2 .evo{ margin-left:auto; text-align:center; }
.hub .spark{ display:flex; align-items:flex-end; gap:5px; height:58px; width:190px; }
.hub .spark i{ flex:1; background:linear-gradient(180deg,#7c8cf0,#3b82f6); border-radius:3px 3px 0 0; min-height:7px; }
.hub .spark i.hi{ background:linear-gradient(180deg,#5b6ee8,#2563c9); }
.hub .spark-lbl{ font-size:10.5px; color:var(--faint); margin-top:7px; font-family:var(--mono); }

.hub .mon-wrap{ display:grid; grid-template-columns:1.28fr .72fr; gap:16px; align-items:start; }
.hub .rail{ border:1px solid var(--line); border-top:3px solid var(--mon); border-radius:var(--r); padding:18px 20px; box-shadow:var(--sh-sm); background:var(--card); }
.hub .rail .ph{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.hub .rail .ph h3{ font-family:var(--disp); font-size:15px; margin:0; font-weight:700; }
.hub .rail .ph .ico{ width:17px; height:17px; color:var(--mon); }
.hub .rail-live{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-size:11px; color:var(--mon); font-weight:700; }
.hub .rail-live i{ width:7px; height:7px; border-radius:50%; background:var(--mon); }
.hub .act{ display:flex; gap:14px; padding:11px 0; border-bottom:1px dashed var(--line); }
.hub .act:last-child{ border-bottom:0; padding-bottom:0; }
.hub .act .tl{ font-family:var(--mono); font-size:11.5px; color:var(--faint); width:52px; flex:none; padding-top:2px; }
.hub .act .dt{ width:10px; height:10px; border-radius:50%; border:2px solid var(--c,#7c5cff); background:#fff; flex:none; margin-top:3px; }
.hub .act .body strong{ font-size:13.5px; font-weight:600; }
.hub .act .body span{ display:block; font-size:12px; color:var(--faint); }
.hub .act.a-op{ --c:var(--op); } .hub .act.a-ok{ --c:var(--ok); } .hub .act.a-diag{ --c:var(--diag); } .hub .act.a-mon{ --c:var(--mon); }

.hub .tools{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; box-shadow:var(--sh-sm); display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.hub .tool{ flex:1; min-width:180px; display:flex; align-items:center; gap:11px; background:var(--card2); border:1px solid var(--line); border-radius:11px; padding:10px 13px; }
.hub .tool .ti{ width:34px; height:34px; border-radius:9px; background:color-mix(in srgb,var(--fer) 12%, white); color:var(--fer); display:grid; place-items:center; flex:none; }
.hub .tool .ti .ico{ width:18px; height:18px; }
.hub .tool .tn{ font-weight:700; font-size:13.5px; }
.hub .tool .tv{ font-family:var(--mono); font-size:11px; color:var(--faint); }
.hub a.tool:hover{ text-decoration:none; border-color:var(--fer); }
.hub .tool .tgo{ margin-left:auto; font-size:12px; font-weight:700; color:var(--brand-ink); }

.hub .flow{ background:linear-gradient(135deg,#1a1440,#171d3a); border-radius:18px; padding:22px 24px; color:#e8e3f7; }
.hub .flow h3{ font-family:var(--disp); font-size:14px; margin:0 0 14px; color:#fff; display:flex; align-items:center; gap:9px; }
.hub .flow h3 .ico{ width:17px; height:17px; color:#a98bff; }
.hub .flow-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.hub .fchip{ display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:9px; padding:8px 12px; font-size:12.5px; font-weight:600; color:#efeaff; }
.hub .fchip .ico{ width:14px; height:14px; color:#b9a8f5; }
.hub .farr{ color:#6f6a9a; font-weight:700; }

@media (max-width:1180px){ .hub .hkpis, .hub .attn-grid, .hub .mods{ grid-template-columns:repeat(2,1fr); } .hub .fw{ grid-column:span 2; } .hub .mon-wrap{ grid-template-columns:1fr; } }
@media (max-width:760px){ .hub .hkpis, .hub .attn-grid, .hub .mods{ grid-template-columns:1fr; } .hub .fw{ grid-column:auto; } }

/* ---------- Clientes (grid de cards operacionais) ---------- */
.cli-toolbar{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
.cli-toolbar .search{ flex:1; min-width:220px; display:flex; align-items:center; gap:8px; background:var(--card2); border:1px solid var(--line2); border-radius:10px; padding:9px 12px; }
.cli-toolbar .search input{ border:0; background:transparent; outline:none; font:inherit; width:100%; color:var(--ink); }
.cli-toolbar .search .ico{ width:16px; height:16px; color:var(--faint); flex:none; fill:none; stroke:currentColor; stroke-width:1.8; }
.cli-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:16px; }
.cli-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:14px; transition:transform .15s, box-shadow .15s, border-color .15s; }
.cli-card:hover{ transform:translateY(-3px); box-shadow:var(--sh); border-color:color-mix(in srgb, var(--op) 35%, var(--line)); }
.cli-card.active{ border-color:var(--op); box-shadow:0 0 0 3px var(--brand-soft); }
.cli-top{ display:flex; align-items:center; gap:12px; }
.cli-av{ width:44px; height:44px; border-radius:12px; flex:none; background:var(--brand-soft); color:var(--op); display:grid; place-items:center; font-weight:800; font-size:16px; }
.cli-id{ min-width:0; flex:1; }
.cli-name{ font-weight:700; font-size:15.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cli-sub{ font-size:12px; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cli-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.cli-stat{ background:var(--card2); border:1px solid var(--line); border-radius:10px; padding:9px 6px; text-align:center; }
.cli-stat b{ display:block; font-size:20px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.cli-stat span{ font-size:11px; color:var(--faint); }
.cli-stat.is-warn{ border-color:color-mix(in srgb, var(--warn) 35%, white); } .cli-stat.is-warn b{ color:var(--warn); }
.cli-stat.is-crit{ border-color:color-mix(in srgb, var(--crit) 40%, white); background:var(--crit-s); } .cli-stat.is-crit b{ color:var(--crit); }
.cli-meta{ display:flex; flex-direction:column; gap:7px; font-size:12.5px; color:var(--muted); }
.cli-mrow{ display:flex; align-items:center; gap:8px; }
.cli-mrow .k{ color:var(--faint); min-width:66px; }
.cli-foot{ display:flex; gap:8px; margin-top:auto; padding-top:4px; flex-wrap:wrap; align-items:center; }
.cli-foot .tenant-form{ margin:0; }
.cli-empty{ grid-column:1/-1; }

/* ---------- Ativos (parque tecnológico) ---------- */
.ast-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:16px; }
.ast-card{ background:var(--card); border:1px solid var(--line); border-left:3px solid var(--hc, var(--line2)); border-radius:var(--r); padding:16px 18px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:11px; transition:transform .15s, box-shadow .15s; }
.ast-card:hover{ transform:translateY(-3px); box-shadow:var(--sh); }
.ast-card.h-crit{ --hc:var(--crit); } .ast-card.h-warn{ --hc:var(--warn); } .ast-card.h-ok{ --hc:var(--good); }
.ast-top{ display:flex; align-items:flex-start; gap:10px; }
.ast-dot{ width:9px; height:9px; border-radius:50%; flex:none; margin-top:6px; }
.ast-dot.on{ background:var(--good); box-shadow:0 0 0 3px var(--good-soft); }
.ast-dot.off{ background:var(--faint); }
.ast-dot.na{ background:var(--line2); }
.ast-id{ min-width:0; flex:1; }
.ast-name{ font-weight:700; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ast-sub{ font-size:12px; color:var(--faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ast-vitals{ display:flex; gap:6px; flex-wrap:wrap; }
.vchip{ font-size:11px; padding:2px 8px; border-radius:7px; background:var(--card2); border:1px solid var(--line2); color:var(--muted); font-variant-numeric:tabular-nums; }
.vchip.v-ok{ border-color:color-mix(in srgb, var(--good) 30%, white); color:#157a4b; }
.vchip.v-warn{ border-color:color-mix(in srgb, var(--warn) 35%, white); color:var(--warn); }
.vchip.v-crit{ border-color:color-mix(in srgb, var(--crit) 40%, white); color:var(--crit); }
.ast-meta{ display:flex; flex-wrap:wrap; gap:5px 14px; font-size:12px; color:var(--muted); }
.ast-meta .m{ display:inline-flex; align-items:center; gap:5px; }
.ast-meta .m .k{ color:var(--faint); }
.ast-foot{ display:flex; gap:8px; margin-top:auto; padding-top:2px; flex-wrap:wrap; align-items:center; }
.ast-foot .tenant-form{ margin:0; }
.ast-situ{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ast-sit{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; border:1px solid; }
.ast-sit .dt{ width:7px; height:7px; border-radius:50%; }
.ast-sit.on{ background:var(--good-soft); border-color:color-mix(in srgb, var(--good) 35%, white); color:#157a4b; } .ast-sit.on .dt{ background:var(--good); box-shadow:0 0 0 3px var(--good-soft); }
.ast-sit.off{ background:var(--crit-s); border-color:color-mix(in srgb, var(--crit) 35%, white); color:var(--crit); } .ast-sit.off .dt{ background:var(--crit); }
.ast-sit.na{ background:var(--card2); border-color:var(--line2); color:var(--faint); } .ast-sit.na .dt{ background:var(--faint); }
.ast-when{ font-size:12px; color:var(--faint); }
.live-pill{ display:inline-flex; align-items:center; gap:7px; }
.live-pill .d{ width:7px; height:7px; border-radius:50%; background:var(--good); box-shadow:0 0 0 0 rgba(31,157,99,.5); animation:livep 2s infinite; }
@keyframes livep{ 0%{box-shadow:0 0 0 0 rgba(31,157,99,.45)} 70%{box-shadow:0 0 0 6px rgba(31,157,99,0)} 100%{box-shadow:0 0 0 0 rgba(31,157,99,0)} }
@media (prefers-reduced-motion:reduce){ .live-pill .d{ animation:none } }

/* ---------- Alertas (feed operacional) ---------- */
.alt-list{ display:flex; flex-direction:column; gap:10px; }
.alt{ background:var(--card); border:1px solid var(--line); border-left:4px solid var(--sc, var(--line2)); border-radius:12px; padding:14px 16px; display:flex; gap:13px; align-items:flex-start; box-shadow:var(--sh-sm); transition:box-shadow .15s; }
.alt:hover{ box-shadow:var(--sh); }
.alt.s-crit{ --sc:var(--crit); } .alt.s-warn{ --sc:var(--warn); } .alt.s-info{ --sc:var(--op); }
.alt.done{ opacity:.62; }
.alt-ico{ width:34px; height:34px; border-radius:9px; flex:none; display:grid; place-items:center; background:color-mix(in srgb, var(--sc) 12%, white); color:var(--sc); }
.alt-ico svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.alt-body{ flex:1; min-width:0; }
.alt-h{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.alt-title{ font-weight:700; font-size:14.5px; }
.alt-det{ font-size:13px; color:var(--muted); margin-top:3px; }
.alt-meta{ display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12px; color:var(--faint); margin-top:7px; }
.alt-meta .m{ display:inline-flex; align-items:center; gap:5px; }
.alt-meta .m .k{ color:var(--line2); text-transform:uppercase; letter-spacing:.04em; font-size:10px; }
.alt-meta .m b{ color:var(--muted); font-weight:600; }
.alt-actions{ display:flex; flex-direction:column; gap:6px; align-items:stretch; flex:none; }
.alt-actions .btn{ white-space:nowrap; justify-content:center; }
.alt.s-ok{ --sc:var(--good); } .alt.s-mut{ --sc:var(--faint); }

/* ---------- Coletas (triagem + rastreabilidade) ---------- */
.col-toast{ display:flex; align-items:flex-start; gap:12px; padding:14px 18px; border-radius:var(--r); margin-bottom:2px; font-size:14px; }
.col-toast.good{ background:var(--good-soft); color:var(--ink); border:1px solid color-mix(in srgb, var(--good) 32%, white); }
.col-toast.bad{ background:var(--warn-soft); color:var(--ink); border:1px solid color-mix(in srgb, var(--warn) 40%, white); }
.col-toast-ico{ flex:none; } .col-toast-ico svg{ width:22px; height:22px; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.col-toast.good .col-toast-ico{ color:var(--good); } .col-toast.bad .col-toast-ico{ color:var(--warn); }
.cl-flags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.cl-flag{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:500; padding:3px 9px 3px 7px; border-radius:999px; background:var(--card2); color:var(--muted); border:1px solid var(--line2); }
.cl-flag .d{ display:inline-grid; place-items:center; width:14px; height:14px; border-radius:50%; font-size:9px; font-weight:800; background:var(--line2); color:var(--faint); }
.cl-flag.ok{ background:var(--good-soft); color:#157a4b; border-color:color-mix(in srgb, var(--good) 30%, white); } .cl-flag.ok .d{ background:var(--good); color:#fff; }
.cl-flag.bad{ background:var(--crit-s); color:var(--crit); border-color:color-mix(in srgb, var(--crit) 30%, white); } .cl-flag.bad .d{ background:var(--crit); color:#fff; }
.cl-detail{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--line); font-size:12.5px; color:var(--muted); display:flex; flex-direction:column; gap:5px; }
.cl-detail .k{ color:var(--faint); }
.cl-spin{ width:14px; height:14px; border-radius:50%; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; display:inline-block; animation:clspin .7s linear infinite; }
@keyframes clspin{ to{ transform:rotate(360deg) } }

/* ---------- Framework 100 (carro-chefe) ---------- */
.fwk{ display:flex; flex-direction:column; gap:22px; max-width:1440px; }
.fwk-hero{ position:relative; overflow:hidden; border-radius:18px; padding:24px 28px; border:1px solid #d9e4fb; box-shadow:var(--sh-sm);
  background:radial-gradient(620px 190px at 90% -30%, rgba(59,130,246,.18), transparent 70%), linear-gradient(135deg,#eef3ff,#faf9ff); }
.fwk-hero .eyebrow{ color:var(--diag); font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.fwk-hero h1{ font-family:var(--disp); font-weight:800; font-size:29px; letter-spacing:-.02em; margin:6px 0 4px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fwk-hero .sub{ color:var(--muted); font-size:14px; }
.fwk-hchips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.fwk-chip{ background:rgba(255,255,255,.72); border:1px solid var(--line2); border-radius:11px; padding:9px 14px; font-size:13px; color:var(--muted); }
.fwk-chip b{ font-family:var(--disp); font-weight:800; font-size:17px; margin-right:6px; color:var(--ink); }
.fwk-score{ display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:center; }
@media (max-width:820px){ .fwk-score{ grid-template-columns:1fr; } }
.fwk-gauge{ width:150px; height:150px; position:relative; flex:none; }
.fwk-gauge svg{ transform:rotate(-90deg); }
.fwk-gauge .n{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.fwk-gauge .n b{ font-family:var(--disp); font-weight:800; font-size:44px; color:var(--diag); line-height:1; letter-spacing:-.02em; }
.fwk-gauge .n span{ font-size:12px; color:var(--faint); font-family:var(--mono); margin-top:2px; }
.fwk-gcol{ display:flex; flex-direction:column; align-items:center; gap:0; }
.fwk-gcap{ text-align:center; font-size:11px; color:var(--faint); margin-top:8px; max-width:160px; line-height:1.35; }
.fwk-scoreside{ min-width:0; }
.fwk-faixa{ display:inline-flex; align-items:center; gap:8px; font-family:var(--disp); font-weight:700; font-size:16px; color:var(--diag); } .fwk-faixa .d{ width:10px; height:10px; border-radius:50%; background:var(--diag); }
.fwk-sideline{ font-size:13px; color:var(--muted); margin:6px 0 12px; display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.fwk-sideline .t{ color:var(--good); font-weight:700; }
.fwk-dist{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
@media (max-width:820px){ .fwk-dist{ grid-template-columns:repeat(3,1fr); } } @media (max-width:480px){ .fwk-dist{ grid-template-columns:repeat(2,1fr); } }
.fwk-d{ background:var(--card2); border:1px solid var(--line); border-radius:12px; padding:12px 8px; text-align:center; }
.fwk-d b{ display:block; font-family:var(--disp); font-weight:800; font-size:23px; }
.fwk-d span{ font-size:11px; color:var(--faint); }
.fwk-d.ok b{ color:var(--good); } .fwk-d.warn b{ color:var(--warn); } .fwk-d.crit b{ color:var(--crit); } .fwk-d.na b{ color:var(--faint); } .fwk-d.nv b{ color:var(--muted); }
.fwk-pilares{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:980px){ .fwk-pilares{ grid-template-columns:repeat(2,1fr); } } @media (max-width:640px){ .fwk-pilares{ grid-template-columns:1fr; } }
.fwk-pilar{ background:var(--card); border:1px solid var(--line); border-top:3px solid var(--diag); border-radius:14px; padding:16px; box-shadow:var(--sh-sm); }
.fwk-pilar .ph{ display:flex; align-items:center; gap:10px; }
.fwk-pilar .pc{ font-family:var(--mono); font-weight:700; color:var(--diag); font-size:12.5px; background:rgba(59,130,246,.1); border-radius:7px; padding:3px 8px; }
.fwk-pilar .pn{ font-weight:700; font-size:14.5px; } .fwk-pilar .pw{ margin-left:auto; font-size:11px; color:var(--faint); }
.fwk-pilar .pnota{ display:flex; align-items:baseline; gap:5px; margin:12px 0 6px; } .fwk-pilar .pnota b{ font-family:var(--disp); font-weight:800; font-size:26px; } .fwk-pilar .pnota span{ font-size:12px; color:var(--faint); }
.fwk-bar{ height:8px; border-radius:99px; background:var(--line); overflow:hidden; } .fwk-bar i{ display:block; height:100%; border-radius:99px; }
.fwk-pilar .pfoot{ font-size:12px; color:var(--faint); margin-top:9px; display:flex; justify-content:space-between; align-items:center; }
.fwk-ctltoggle{ cursor:pointer; color:var(--diag); font-weight:700; font-size:12px; user-select:none; }
.fwk-ctls{ margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.fwk-ctl{ border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:var(--card2); }
.fwk-ctl .ch{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.fwk-ctl .cc{ font-family:var(--mono); font-size:11.5px; font-weight:700; color:var(--diag); }
.fwk-ctl .cn{ font-weight:600; font-size:13px; }
.fwk-ctl .cw{ margin-left:auto; font-size:11px; color:var(--faint); }
.fwk-ctl .cmeta{ font-size:11.5px; color:var(--faint); margin-top:5px; display:flex; flex-wrap:wrap; gap:4px 12px; }
.fwk-ctl .crec{ font-size:12px; color:var(--muted); margin-top:6px; padding-top:6px; border-top:1px dashed var(--line); }
.fwk-ver{ display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.fwk-ver:last-child{ border-bottom:0; } .fwk-ver .vname{ font-weight:700; } .fwk-ver .vmeta{ color:var(--faint); font-size:12px; } .fwk-ver .vact{ margin-left:auto; display:flex; gap:8px; }

/* ---------- Avaliações (ciclo de diagnóstico) ---------- */
.av-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(370px, 1fr)); gap:16px; }
.av-card{ background:var(--card); border:1px solid var(--line); border-left:3px solid var(--sc, var(--line2)); border-radius:var(--r); padding:18px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:12px; transition:transform .15s, box-shadow .15s; }
.av-card:hover{ transform:translateY(-3px); box-shadow:var(--sh); }
.av-card.st-fechado{ --sc:var(--good); } .av-card.st-and{ --sc:var(--diag); } .av-card.st-aberto{ --sc:var(--faint); }
.av-top{ display:flex; align-items:flex-start; gap:12px; }
.av-tid{ min-width:0; flex:1; } .av-title{ font-weight:700; font-size:15.5px; line-height:1.2; } .av-sub{ font-size:12px; color:var(--faint); margin-top:2px; }
.av-score{ text-align:right; flex:none; } .av-score b{ font-family:var(--disp); font-weight:800; font-size:30px; line-height:1; letter-spacing:-.02em; } .av-score span{ display:block; font-size:11px; color:var(--faint); }
.av-prog .lbl{ display:flex; justify-content:space-between; font-size:11.5px; color:var(--faint); margin-bottom:4px; }
.av-bar{ height:7px; border-radius:99px; background:var(--line); overflow:hidden; } .av-bar i{ display:block; height:100%; background:var(--diag); border-radius:99px; }
.av-dist{ display:flex; flex-wrap:wrap; gap:6px; }
.av-dchip{ font-size:11px; padding:2px 9px; border-radius:999px; border:1px solid var(--line2); background:var(--card2); color:var(--muted); }
.av-dchip b{ font-weight:800; margin-right:3px; } .av-dchip.ok{ color:#157a4b; } .av-dchip.warn{ color:var(--warn); } .av-dchip.crit{ color:var(--crit); }
.av-meta{ display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12px; color:var(--faint); }
.av-meta .m{ display:inline-flex; align-items:center; gap:5px; } .av-meta .m .k{ color:var(--line2); text-transform:uppercase; letter-spacing:.04em; font-size:10px; } .av-meta .m b{ color:var(--muted); font-weight:600; }
.av-foot{ display:flex; gap:8px; margin-top:auto; padding-top:2px; align-items:center; }
.av-cmp{ font-size:12px; font-weight:700; margin-right:auto; } .av-cmp.up{ color:var(--good); } .av-cmp.down{ color:var(--crit); } .av-cmp.flat{ color:var(--faint); }

/* selo de estado por controle (detalhe da avaliação) */
.ctl-state{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:2px 8px; border-radius:999px; white-space:nowrap; }
.ctl-state.ok{ background:var(--good-soft); color:#157a4b; } .ctl-state.warn{ background:var(--warn-soft); color:var(--warn); } .ctl-state.crit{ background:var(--crit-s); color:var(--crit); } .ctl-state.na{ background:var(--card2); color:var(--faint); border:1px solid var(--line2); } .ctl-state.nv{ background:var(--card2); color:var(--muted); border:1px solid var(--line2); }

/* ---------- Evidências (rastreabilidade técnica — a moeda) ---------- */
.ev-flow{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); background:linear-gradient(135deg,#f2eefc,#fff); border:1px solid var(--line2); border-radius:12px; padding:10px 14px; }
.ev-flow b{ color:var(--ink); } .ev-flow .ar{ color:var(--op); font-weight:800; }
.ev2-list{ display:flex; flex-direction:column; gap:10px; }
.ev2-detail{ border:1px solid var(--line); border-radius:12px; margin-top:-3px; padding:4px 16px 12px; background:var(--card2); }
.ev-code{ font-family:var(--mono); font-size:11.5px; font-weight:700; color:var(--op); background:var(--brand-soft); border-radius:6px; padding:2px 8px; }
.ev-ctl{ font-family:var(--mono); font-size:11px; font-weight:700; color:var(--diag); background:rgba(59,130,246,.1); border-radius:6px; padding:2px 8px; }

/* ---------- Relatórios (central de documentos) ---------- */
.doc-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(340px, 1fr)); gap:16px; }
.doc-card{ background:var(--card); border:1px solid var(--line); border-left:3px solid var(--sc, var(--line2)); border-radius:var(--r); padding:18px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:12px; transition:transform .15s, box-shadow .15s; }
.doc-card:hover{ transform:translateY(-3px); box-shadow:var(--sh); }
.doc-card.has{ --sc:var(--good); } .doc-card.no{ --sc:var(--faint); }
.doc-top{ display:flex; gap:12px; align-items:flex-start; }
.doc-ico{ width:46px; height:46px; border-radius:12px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--op); position:relative; }
.doc-ico svg{ width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.doc-id{ flex:1; min-width:0; } .doc-title{ font-weight:700; font-size:15px; line-height:1.2; } .doc-sub{ font-size:12px; color:var(--faint); margin-top:2px; }
.doc-new{ font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#fff; background:var(--op); border-radius:999px; padding:2px 7px; margin-left:6px; vertical-align:middle; }
.doc-score{ flex:none; }
.doc-status{ display:flex; align-items:center; gap:8px; font-size:12.5px; }
.doc-status .d{ width:8px; height:8px; border-radius:50%; } .doc-status.on .d{ background:var(--good); } .doc-status.off .d{ background:var(--faint); }
.doc-meta{ display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12px; color:var(--faint); }
.doc-meta .m{ display:inline-flex; align-items:center; gap:5px; } .doc-meta .m .k{ color:var(--line2); text-transform:uppercase; letter-spacing:.04em; font-size:10px; } .doc-meta .m b{ color:var(--muted); font-weight:600; }
.doc-foot{ display:flex; gap:8px; margin-top:auto; padding-top:2px; align-items:center; flex-wrap:wrap; }

/* ---------- Alertas: selo do espelho Prime Backup (read-only) ---------- */
.alt-src-bkp{ display:inline-flex; align-items:center; gap:5px; background:var(--good-soft); color:#157a4b; border:1px solid rgba(31,157,99,.28); }
.alt-src-bkp .ico{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8; }
.alt-mirror{ font-size:11px; color:var(--faint); font-style:italic; white-space:nowrap; }

/* ---------- Monitoramento → Prime Backup (card consolidado, /backup) ---------- */
.bk-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:16px; }
.bk-kpi{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:16px 18px; box-shadow:var(--sh-sm); }
.bk-kpi .badge{ width:40px; height:40px; border-radius:11px; display:grid; place-items:center; }
.bk-kpi .badge .ico{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bk-kpi .num{ font-family:var(--disp); font-weight:800; font-size:32px; line-height:1; letter-spacing:-.02em; margin:12px 0 3px; font-variant-numeric:tabular-nums; color:var(--ink); }
.bk-kpi .lbl{ font-size:12.5px; color:var(--muted); }
.bk-kpi.t-good .badge{ background:var(--good-soft); color:#157a4b; }
.bk-kpi.t-warn .badge{ background:var(--warn-soft); color:var(--warn); }
.bk-kpi.t-crit .badge{ background:var(--crit-soft); color:var(--crit); }
.bk-kpi.t-mon .badge{ background:rgba(18,169,126,.12); color:var(--mon); }
.bk-note{ display:flex; align-items:flex-start; gap:9px; font-size:12.5px; color:var(--muted); background:linear-gradient(135deg,#eefaf5,#fff); border:1px solid var(--line2); border-radius:12px; padding:11px 14px; margin-bottom:16px; }
.bk-note .ico{ width:16px; height:16px; flex:none; margin-top:1px; fill:none; stroke:var(--mon); stroke-width:1.7; }
.bk-note b{ color:var(--ink); } .bk-err{ color:var(--crit); }
.bk-list{ display:flex; flex-direction:column; gap:10px; }
.bk-row{ display:flex; align-items:center; gap:14px; background:var(--card); border:1px solid var(--line); border-left:3px solid var(--sc,var(--line2)); border-radius:12px; padding:14px 16px; box-shadow:var(--sh-sm); flex-wrap:wrap; }
.bk-row.s-good{ --sc:var(--good); } .bk-row.s-warn{ --sc:var(--warn); } .bk-row.s-crit{ --sc:var(--crit); }
.bk-dot{ width:10px; height:10px; border-radius:50%; flex:none; background:var(--sc,var(--faint)); }
.bk-id{ min-width:180px; } .bk-nome{ font-weight:700; font-size:14.5px; } .bk-sub{ font-size:12px; color:var(--faint); margin-top:1px; }
.bk-stats{ display:flex; gap:6px 16px; flex-wrap:wrap; margin-left:auto; font-size:12.5px; color:var(--muted); align-items:center; }
.bk-stats .s b{ color:var(--ink); font-weight:700; } .bk-stats .s.crit b{ color:var(--crit); } .bk-stats .s.warn b{ color:var(--warn); } .bk-stats .s.muted{ color:var(--faint); }
@media (max-width:820px){ .bk-kpis{ grid-template-columns:repeat(2,1fr); } .bk-stats{ margin-left:0; width:100%; } }

/* ---------- Chamados / Service Desk — fila interna ---------- */
.tk-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:16px; }
.tk-kpi{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; box-shadow:var(--sh-sm); cursor:pointer; text-align:left; transition:transform .15s, box-shadow .15s; border-top:3px solid var(--kc,var(--line2)); }
.tk-kpi:hover{ transform:translateY(-2px); box-shadow:var(--sh); }
.tk-kpi.on{ border-color:var(--kc,var(--op)); box-shadow:0 0 0 2px color-mix(in srgb, var(--kc,var(--op)) 22%, transparent); }
.tk-kpi .num{ font-family:var(--disp); font-weight:800; font-size:30px; line-height:1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; color:var(--ink); }
.tk-kpi .lbl{ font-size:12.5px; color:var(--muted); margin-top:4px; }
.tk-kpi.k-new{ --kc:var(--op); } .tk-kpi.k-att{ --kc:var(--diag,#3b82f6); } .tk-kpi.k-wait{ --kc:var(--warn); } .tk-kpi.k-crit{ --kc:var(--crit); }

.tk-views{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.tk-view{ font-size:13px; font-weight:600; color:var(--muted); background:var(--card); border:1px solid var(--line2); border-radius:999px; padding:6px 14px; cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.tk-view:hover{ border-color:var(--op); color:var(--op); }
.tk-view.on{ background:var(--op); color:#fff; border-color:var(--op); }
.tk-view .c{ font-size:11px; font-weight:700; background:color-mix(in srgb, currentColor 16%, transparent); border-radius:999px; padding:0 7px; font-variant-numeric:tabular-nums; }

.tk-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(340px,1fr)); gap:14px; }
.tk-card{ background:var(--card); border:1px solid var(--line); border-left:4px solid var(--pc,var(--line2)); border-radius:13px; padding:15px 16px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; gap:9px; transition:transform .15s, box-shadow .15s; cursor:pointer; }
.tk-card:hover{ transform:translateY(-3px); box-shadow:var(--sh); }
.tk-card.p-p1{ --pc:var(--crit); } .tk-card.p-p2{ --pc:var(--warn); } .tk-card.p-p3{ --pc:var(--diag,#3b82f6); } .tk-card.p-p4{ --pc:var(--faint); }
.tk-top{ display:flex; align-items:center; gap:9px; }
.tk-num{ font-family:var(--mono); font-size:12px; font-weight:700; color:var(--faint); letter-spacing:.02em; }
.tk-subj{ font-weight:700; font-size:15px; line-height:1.25; }
.tk-meta{ display:flex; flex-wrap:wrap; gap:3px 12px; font-size:12px; color:var(--faint); }
.tk-meta b{ color:var(--muted); font-weight:600; }
.tk-foot{ display:flex; align-items:center; gap:8px 12px; flex-wrap:wrap; margin-top:2px; padding-top:9px; border-top:1px solid var(--line); font-size:11.5px; color:var(--faint); }
.tk-foot .who{ display:inline-flex; align-items:center; gap:5px; color:var(--muted); }
.tk-foot .who.none{ color:var(--faint); font-style:italic; }
.tk-foot .asset{ font-family:var(--mono); font-size:11px; background:var(--card2); border:1px solid var(--line2); border-radius:6px; padding:1px 7px; color:var(--muted); }
.tk-foot .time{ margin-left:auto; text-align:right; }

/* badge de prioridade */
.pri{ font-family:var(--mono); font-size:10.5px; font-weight:800; letter-spacing:.03em; padding:2px 8px; border-radius:6px; border:1px solid transparent; }
.pri.p1{ background:var(--crit-soft); color:var(--crit-ink,var(--crit)); border-color:var(--crit); }
.pri.p2{ background:var(--warn-soft); color:var(--warn-ink,var(--warn)); border-color:var(--warn); }
.pri.p3{ background:rgba(59,130,246,.12); color:#2f6fd6; border-color:#3b82f6; }
.pri.p4{ background:var(--card2); color:var(--faint); border-color:var(--line2); }
/* badge de status */
.tk-st{ font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; white-space:nowrap; display:inline-flex; align-items:center; gap:5px; margin-left:auto; }
.tk-st::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.tk-st.s-novo{ background:var(--brand-soft); color:var(--op); }
.tk-st.s-triagem{ background:var(--brand-soft); color:var(--op); }
.tk-st.s-atend{ background:rgba(59,130,246,.12); color:#2f6fd6; }
.tk-st.s-cli{ background:var(--warn-soft); color:var(--warn); }
.tk-st.s-terc{ background:var(--warn-soft); color:var(--warn); }
.tk-st.s-resolv{ background:var(--good-soft); color:#157a4b; }
.tk-st.s-fech{ background:var(--card2); color:var(--faint); }
.tk-st.s-canc{ background:var(--card2); color:var(--faint); }

.tk-pager{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:18px; font-size:13px; color:var(--muted); }
.tk-pager .btn[disabled]{ opacity:.45; pointer-events:none; }
@media (max-width:820px){ .tk-kpis{ grid-template-columns:repeat(2,1fr); } .tk-foot .time{ margin-left:0; } }

/* ---------- Chamado — detalhe ---------- */
.tkd-back{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--muted); text-decoration:none; margin-bottom:12px; }
.tkd-back:hover{ color:var(--op); }
.tkd-head{ background:var(--card); border:1px solid var(--line); border-left:4px solid var(--pc,var(--line2)); border-radius:var(--r); box-shadow:var(--sh-sm); padding:18px 20px; margin-bottom:16px; }
.tkd-head.p-p1{ --pc:var(--crit); } .tkd-head.p-p2{ --pc:var(--warn); } .tkd-head.p-p3{ --pc:var(--diag,#3b82f6); } .tkd-head.p-p4{ --pc:var(--faint); }
.tkd-head .l1{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tkd-head .num{ font-family:var(--mono); font-size:12.5px; font-weight:700; color:var(--faint); }
.tkd-head h1{ font-size:22px; font-weight:800; margin:8px 0 10px; }
.tkd-head .l3{ display:flex; align-items:center; gap:8px 18px; flex-wrap:wrap; font-size:13px; color:var(--muted); }
.tkd-head .l3 b{ color:var(--ink); font-weight:600; }
.tkd-lead{ font-size:14px; color:var(--muted); margin:0 0 12px; line-height:1.5; max-width:72ch; }
.pt-main .tkd-head{ border-radius:20px; padding:22px 26px; box-shadow:var(--sh-sm); }
.pt-main .tkd-head h1{ font-size:24px; margin:10px 0 8px; letter-spacing:-.01em; }
.pt-main .tkd-head .l3 span{ display:inline-flex; align-items:center; gap:5px; }
.tkd-grid{ display:grid; grid-template-columns:1fr 320px; gap:18px; align-items:start; }
@media (max-width:900px){ .tkd-grid{ grid-template-columns:1fr; } }

/* timeline */
.tl{ display:flex; flex-direction:column; gap:12px; }
.tl-item{ display:flex; gap:12px; }
.tl-dot{ width:30px; flex:none; display:flex; justify-content:center; position:relative; }
.tl-dot::before{ content:""; position:absolute; top:30px; bottom:-18px; width:2px; background:var(--line2); }
.tl-item:last-child .tl-dot::before{ display:none; }
.tl-dot i{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--card2); color:var(--faint); border:1px solid var(--line2); z-index:1; }
.tl-dot i svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tl-body{ flex:1; min-width:0; }
.tl-msg{ border:1px solid var(--line); border-radius:12px; padding:11px 14px; background:var(--card); }
.tl-msg .who{ font-size:12.5px; font-weight:700; margin-bottom:3px; display:flex; align-items:center; gap:8px; }
.tl-msg .tag{ font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:1px 7px; border-radius:999px; }
.tl-msg .txt{ font-size:14px; color:var(--ink); white-space:pre-wrap; line-height:1.5; }
.tl-when{ font-size:11px; color:var(--faint); margin-top:5px; }
/* variantes */
.tl-item.c-prime .tl-dot i{ background:var(--brand-soft); color:var(--op); border-color:var(--op); }
.tl-item.c-prime .tl-msg{ background:color-mix(in srgb,var(--op) 5%, var(--card)); border-color:color-mix(in srgb,var(--op) 25%,var(--line)); }
.tl-item.c-prime .tag{ background:var(--brand-soft); color:var(--op); }
.tl-item.c-cli .tl-dot i{ background:rgba(59,130,246,.12); color:var(--diag,#3b82f6); border-color:var(--diag,#3b82f6); }
.tl-item.c-cli .tag{ background:rgba(59,130,246,.12); color:#2f6fd6; }
.tl-item.c-note .tl-dot i{ background:var(--warn-soft); color:var(--warn); border-color:var(--warn); }
.tl-item.c-note .tl-msg{ background:color-mix(in srgb,var(--warn) 7%, var(--card)); border:1px dashed var(--warn); }
.tl-item.c-note .tag{ background:var(--warn); color:#fff; }
.tl-item.c-res .tl-dot i{ background:var(--good-soft); color:#157a4b; border-color:var(--good); }
.tl-item.c-res .tl-msg{ background:color-mix(in srgb,var(--good) 7%, var(--card)); border-color:var(--good); }
.tl-item.c-res .tag{ background:var(--good); color:#fff; }
/* evento de sistema / worklog = linha compacta, sem balão */
.tl-item.c-sys .tl-body, .tl-item.c-work .tl-body{ padding-top:5px; font-size:12.5px; color:var(--muted); }
.tl-item.c-sys .tl-body b, .tl-item.c-work .tl-body b{ color:var(--ink); font-weight:600; }
.tl-item.c-sys .tl-dot i{ background:var(--card2); }
.tl-item.c-work .tl-dot i{ background:var(--card2); color:var(--mon,#12a97e); border-color:var(--mon,#12a97e); }
.tl-reopen{ color:var(--crit); font-weight:600; }

/* composer */
.tkd-composer{ margin-top:16px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:4px; }
.tkd-tabs{ display:flex; gap:4px; padding:6px 6px 0; }
.tkd-tab{ font-size:13px; font-weight:600; color:var(--muted); background:transparent; border:0; border-radius:9px 9px 0 0; padding:8px 14px; cursor:pointer; }
.tkd-tab.on{ color:var(--op); } .tkd-tab.on.note{ color:var(--warn); }
.tkd-composer.note{ border-color:var(--warn); }
.tkd-composer textarea{ width:100%; border:0; outline:none; resize:vertical; min-height:80px; font:inherit; font-size:14px; padding:10px 12px; background:transparent; color:var(--ink); }
.tkd-composer .cf{ display:flex; justify-content:space-between; align-items:center; padding:6px 10px 8px; }
.tkd-composer .hint{ font-size:11.5px; color:var(--faint); }
.tkd-composer .hint.note{ color:var(--warn); }

/* aside */
.tkd-aside{ display:flex; flex-direction:column; gap:14px; }
.tkd-panel{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm); padding:16px; }
.tkd-panel h3{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); margin:0 0 12px; font-weight:700; }
.tkd-dl{ display:flex; flex-direction:column; gap:9px; }
.tkd-dl .row{ display:flex; justify-content:space-between; gap:12px; font-size:13px; }
.tkd-dl .row .k{ color:var(--faint); } .tkd-dl .row .v{ color:var(--ink); font-weight:600; text-align:right; }
.tkd-dl .row .v.none{ color:var(--faint); font-weight:400; font-style:italic; }
.tkd-acts{ display:flex; flex-direction:column; gap:8px; }
.tkd-acts .grp{ display:flex; gap:6px; flex-wrap:wrap; }
.tkd-acts .btn{ font-size:12.5px; padding:7px 11px; }
.tkd-mini{ display:flex; flex-direction:column; gap:7px; padding-top:6px; border-top:1px solid var(--line); }
.tkd-mini label{ font-size:11px; color:var(--faint); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.tkd-err{ background:var(--crit-soft); color:var(--crit-ink,var(--crit)); border:1px solid var(--crit); border-radius:9px; padding:8px 12px; font-size:13px; margin-bottom:12px; }
.tkd-inp{ width:100%; border:1px solid var(--line2); border-radius:9px; padding:8px 10px; font:inherit; font-size:13px; background:var(--card); color:var(--ink); }

/* prioridade sugerida (novo chamado) */
.pri-suggest{ display:flex; align-items:center; gap:10px; background:var(--card2); border:1px solid var(--line2); border-radius:10px; padding:10px 14px; font-size:13px; color:var(--muted); }
.pri-suggest b{ color:var(--ink); }

/* ---------- Portal — login em tela cheia (brand pass Prime TI) ---------- */
.plog{ min-height:100vh; display:grid; grid-template-columns:1.04fr .96fr; background:var(--bg); }
.plog-hero{ position:relative; overflow:hidden; color:#fff; display:flex; flex-direction:column; justify-content:space-between; gap:10px; padding:34px 54px 50px; background:var(--brand-hero); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.plog-hero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(620px 460px at 84% 14%, rgba(148,96,255,.34), transparent 62%),
    radial-gradient(420px 380px at -6% 108%, rgba(255,255,255,.10), transparent 66%); }
/* motivo do círculo da marca (arcos concêntricos) */
.plog-hero::after{ content:""; position:absolute; right:-160px; top:44%; transform:translateY(-50%); width:620px; height:620px; border-radius:50%; pointer-events:none;
  background:
    radial-gradient(circle, transparent 0 218px, rgba(255,255,255,.05) 219px 221px, transparent 222px),
    radial-gradient(circle, transparent 0 168px, rgba(255,255,255,.06) 169px 171px, transparent 172px),
    radial-gradient(circle, transparent 0 118px, rgba(255,255,255,.07) 119px 121px, transparent 122px); }
.plog-hero > *{ position:relative; z-index:1; }
.plog-inst{ display:flex; flex-direction:column; gap:13px; }
.plog-inst .cols{ display:flex; align-items:flex-start; gap:24px; }
.plog-inst .col{ font-size:12px; font-weight:700; letter-spacing:.15em; line-height:1.85; opacity:.9; }
.plog-inst .col.b{ opacity:.72; align-self:center; }
.plog-inst .sig{ display:flex; align-items:center; gap:12px; font-size:13.5px; font-weight:600; letter-spacing:.01em; opacity:.92; }
.plog-inst .sig .u{ width:34px; height:3px; border-radius:2px; background:rgba(255,255,255,.6); flex:none; }
.plog-mid{ display:flex; flex-direction:column; gap:6px; }
.plog-hero h1{ font-family:var(--disp); font-size:clamp(28px,3.1vw,40px); font-weight:800; line-height:1.08; letter-spacing:-.02em; margin:2px 0 8px; max-width:20ch; }
.plog-hero h1 .soft{ color:#c9b3ff; }
.plog-hero .tag{ font-size:14.5px; opacity:.9; max-width:42ch; margin:0; line-height:1.5; }
.plog-illus{ align-self:center; display:flex; justify-content:center; width:100%; margin:8px auto 0; }
.plog-illus svg{ width:100%; max-width:425px; max-height:44vh; height:auto; display:block; }
.plog-bottom{ display:flex; flex-direction:column; gap:16px; }
.plog-feats{ display:flex; flex-direction:column; gap:12px; }
.plog-feat{ display:flex; align-items:center; gap:13px; }
.plog-feat .ic{ width:42px; height:42px; border-radius:12px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.16); display:grid; place-items:center; flex:none; }
.plog-feat .ic svg{ width:21px; height:21px; fill:none; stroke:#fff; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.plog-feat b{ display:block; font-size:14.5px; font-weight:700; }
.plog-feat span{ display:block; font-size:12.5px; opacity:.82; }
.plog-script{ font-family:"Segoe Script","Segoe Print","Lucida Handwriting",cursive; font-style:italic; font-size:22px; opacity:.95; margin-top:2px; }
.plog-script .sw{ display:block; width:180px; height:8px; margin-top:4px;
  background:radial-gradient(closest-side at 50% 0, rgba(200,170,255,.9), transparent 78%); }

.plog-side{ display:grid; place-items:center; padding:40px 34px; }
.plog-card{ width:100%; max-width:480px; background:var(--card); border:1px solid var(--line); border-radius:26px; padding:34px 42px 30px; box-shadow:0 34px 80px rgba(43,17,99,.18), 0 2px 6px rgba(43,17,99,.06); }
.plog-brand{ display:block; text-align:center; margin-bottom:20px; }
.plog-brand img{ height:84px; width:auto; max-width:100%; }
.plog-card .div{ height:1px; background:var(--line); margin:0 0 22px; }
.plog-card h2{ font-family:var(--disp); font-size:26px; font-weight:800; margin:0 0 8px; letter-spacing:-.01em; color:var(--graphite); }
.plog-card .sub{ color:var(--muted); margin:0 0 24px; font-size:13.5px; line-height:1.5; }
.plog-field{ margin-bottom:15px; }
.plog-field > span{ display:block; font-size:12px; letter-spacing:.02em; color:var(--ink); font-weight:700; margin-bottom:7px; }
.plog-inpwrap{ position:relative; }
.plog-inpwrap > .fi{ position:absolute; left:14px; top:50%; transform:translateY(-50%); width:18px; height:18px; fill:none; stroke:var(--brand-purple); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; opacity:.85; }
.plog-inp{ width:100%; border:1px solid var(--line2); border-radius:13px; padding:13px 14px 13px 42px; font:inherit; font-size:14.5px; background:var(--surface-2); color:var(--ink); transition:border-color .15s, box-shadow .15s, background .15s; }
.plog-inp:focus{ outline:none; border-color:var(--brand-purple); background:var(--card); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-purple) 16%,transparent); }
.plog-row{ display:flex; align-items:center; justify-content:flex-end; margin:-2px 0 18px; }
.plog-recover{ font-size:13px; font-weight:600; color:var(--brand-purple); text-decoration:none; }
.plog-recover:hover{ text-decoration:underline; }
.plog-btn{ width:100%; justify-content:center; gap:9px; padding:14px; font-size:15.5px; font-weight:800; margin-top:2px; border:0; border-radius:13px; color:#fff; background:var(--brand-cta); box-shadow:0 14px 30px rgba(90,44,192,.34); cursor:pointer; }
.plog-btn:hover{ filter:brightness(1.06); transform:translateY(-1px); }
.plog-btn svg{ width:17px; height:17px; fill:none; stroke:#fff; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.plog-sec{ margin-top:22px; padding-top:20px; border-top:1px solid var(--line); text-align:center; }
.plog-sec .hd{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--ink); }
.plog-sec .hd svg{ width:17px; height:17px; flex:none; fill:none; stroke:var(--good); stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.plog-sec p{ margin:6px 0 0; font-size:12px; color:var(--faint); line-height:1.5; }
.plog-foot{ text-align:center; color:var(--faint); font-size:12px; margin:16px 0 0; }
.plog-alert{ background:var(--crit-soft); color:var(--crit-ink,var(--crit)); border:1px solid var(--crit); border-radius:12px; padding:11px 14px; font-size:13.5px; margin-bottom:16px; }
.plog-ok{ background:var(--good-soft); color:#157a4b; border:1px solid var(--good); border-radius:12px; padding:11px 14px; font-size:13.5px; margin-bottom:16px; }
@media(max-width:1120px){ .plog-illus{ max-width:360px; } .plog-hero{ padding:40px 44px; } }
/* tela de carregamento entre Entrar e a Home */
.plog-loading{ position:fixed; inset:0; z-index:9999; display:none; place-items:center; background:var(--brand-hero); color:#fff; overflow:hidden; }
.plog-loading::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(620px 520px at 50% 42%, rgba(148,96,255,.34), transparent 60%), radial-gradient(700px 480px at 50% 120%, rgba(0,0,0,.28), transparent 60%); }
.plog-loading.show{ display:grid; animation:plog-fade .18s ease; }
@keyframes plog-fade{ from{ opacity:0 } to{ opacity:1 } }
.plog-loading .box{ display:flex; flex-direction:column; align-items:center; gap:22px; position:relative; z-index:1; }
.plog-loading .ring{ position:relative; width:112px; height:112px; display:grid; place-items:center; }
.plog-loading .ring::before{ content:""; position:absolute; inset:0; border-radius:50%; border:3px solid rgba(255,255,255,.18); border-top-color:#fff; animation:plog-spin .9s linear infinite; }
.plog-loading .ring img{ width:58px; height:58px; opacity:.95; animation:plog-pulse 1.6s ease-in-out infinite; }
.plog-loading .t{ font-size:15px; font-weight:600; letter-spacing:.02em; opacity:.92; }
.plog-loading .bar{ width:200px; height:5px; border-radius:3px; background:rgba(255,255,255,.18); overflow:hidden; }
.plog-loading .bar span{ display:block; width:0; height:100%; border-radius:3px; background:#fff; box-shadow:0 0 10px rgba(255,255,255,.55); animation:plog-fill .95s cubic-bezier(.35,.9,.35,1) forwards; }
@keyframes plog-spin{ to{ transform:rotate(360deg) } }
@keyframes plog-pulse{ 0%,100%{ transform:scale(1); opacity:.9 } 50%{ transform:scale(1.08); opacity:1 } }
@keyframes plog-fill{ 0%{ width:2% } 55%{ width:72% } 100%{ width:100% } }

/* ===== flutuação dos cards da ilustração (Login/Home) — sempre ativa ===== */
.pt-illus .ph-tile, .plog-illus .ph-tile{ transform-box:fill-box; transform-origin:center; animation:ph-float 4.2s ease-in-out infinite; will-change:transform; }
.pt-illus .ph-tile.t2, .plog-illus .ph-tile.t2{ animation-name:ph-float-b; animation-duration:4.9s; animation-delay:-1.4s; }
.pt-illus .ph-tile.t3, .plog-illus .ph-tile.t3{ animation-duration:5.4s; animation-delay:-.7s; }
.pt-illus .ph-tile.t4, .plog-illus .ph-tile.t4{ animation-name:ph-float-b; animation-duration:4.5s; animation-delay:-2.2s; }
@keyframes ph-float{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-12px) } }
@keyframes ph-float-b{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(11px) } }
/* olho de mostrar/ocultar senha */
.eye{ position:absolute; right:6px; top:50%; transform:translateY(-50%); width:34px; height:34px; border:0; background:transparent; cursor:pointer; display:grid; place-items:center; color:var(--faint); border-radius:8px; }
.eye:hover{ color:var(--op); }
.eye svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.eye .off{ display:none; } .eye.on .on{ display:none; } .eye.on .off{ display:block; }
.plog-inpwrap .plog-inp{ padding-right:42px; }
/* checklist ao vivo de requisitos de senha */
.pwreq{ display:flex; flex-direction:column; gap:5px; margin:2px 0 14px; }
.pwreq li{ list-style:none; display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--faint); }
.pwreq li .dot{ width:15px; height:15px; border-radius:50%; border:1.5px solid var(--line2); display:grid; place-items:center; flex:none; }
.pwreq li.ok{ color:#157a4b; } .pwreq li.ok .dot{ background:var(--good); border-color:var(--good); }
.pwreq li.ok .dot::after{ content:""; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg) translate(-.5px,-1px); }
@media (max-width:860px){ .plog{ grid-template-columns:1fr; } .plog-hero{ display:none; } .plog-card .mark{ display:flex; } }

/* ==================== Portal do cliente — visual premium v2 (shell próprio) ==================== */
.pt-shell{ min-height:100vh; position:relative; background:var(--bg); }
.pt-shell::before{ content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1000px 540px at 86% -12%, rgba(124,92,255,.18), transparent 60%),
    radial-gradient(760px 460px at -8% 4%, rgba(142,58,166,.11), transparent 56%),
    radial-gradient(720px 560px at 50% 120%, rgba(124,92,255,.07), transparent 60%); }
.pt-shell > *{ position:relative; z-index:1; }
.pt-main a:focus-visible, .pt-main button:focus-visible, .pt-main input:focus-visible, .pt-main select:focus-visible, .pt-main textarea:focus-visible{ outline:2px solid var(--op); outline-offset:2px; }
.btn-lg{ padding:12px 22px; font-size:15px; font-weight:800; border-radius:12px; }

/* topbar translúcida */
.pt-top{ position:sticky; top:0; z-index:20; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 1px 0 rgba(43,17,99,.03); }
.pt-top .in{ max-width:1180px; margin-inline:auto; display:flex; align-items:center; gap:18px; padding:18px 26px; flex-wrap:wrap; }
.pt-brand{ display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; }
.pt-brand img{ height:38px; width:auto; display:block; }
.pt-brand .sep{ width:1px; height:26px; background:var(--line2); }
.pt-brand small{ font-weight:700; color:var(--muted); font-size:12.5px; letter-spacing:.01em; }
.pt-nav{ display:flex; gap:3px; margin-left:6px; flex-wrap:wrap; }
.pt-nav a{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--muted); text-decoration:none; padding:9px 14px; border-radius:11px; transition:background .15s,color .15s; }
.pt-nav a svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-nav a:hover{ background:var(--brand-soft); color:var(--brand-purple); }
.pt-nav a.on{ background:var(--brand-cta); color:#fff; box-shadow:0 8px 18px rgba(90,44,192,.28); }
.pt-user{ margin-left:auto; display:flex; align-items:center; gap:11px; }
.pt-ava{ width:38px; height:38px; border-radius:50%; flex:none; background:var(--brand-cta); color:#fff; display:grid; place-items:center; font-weight:800; font-size:14px; box-shadow:0 4px 12px rgba(90,44,192,.32); }
.pt-uname{ font-size:13px; font-weight:700; color:var(--ink); line-height:1.2; }
.pt-uname small{ display:block; font-weight:500; color:var(--faint); font-size:11.5px; max-width:22ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pt-sair{ display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:13px; font-weight:600; color:var(--muted); background:#fff; border:1px solid var(--line2); border-radius:11px; padding:8px 14px; cursor:pointer; transition:.15s; }
.pt-sair svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-sair:hover{ border-color:var(--brand-purple); color:var(--brand-purple); background:var(--brand-soft); }
@media(max-width:820px){ .pt-nav a span, .pt-uname{ display:none; } }
@media(max-width:620px){ .pt-uname{ display:none; } .pt-brand small{ display:none; } }

.pt-main{ max-width:1120px; margin-inline:auto; padding:30px 26px 76px; }
.pt-h1{ font-size:27px; font-weight:800; margin:0 0 4px; letter-spacing:-.02em; }
.pt-sub{ color:var(--muted); margin:0 0 22px; font-size:14.5px; }
.pt-section{ font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint); font-weight:800; margin:0 0 14px; }
.pt-section.big{ font-size:16px; text-transform:none; letter-spacing:-.01em; color:var(--ink); font-weight:800; }
.pt-pagehead{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.pt-link{ font-size:13px; font-weight:700; color:var(--op); text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
.pt-link:hover{ text-decoration:underline; }

/* ===== HERO — Início (brand pass Prime TI) ===== */
.pt-hero{ position:relative; overflow:hidden; border-radius:24px; padding:40px 46px; min-height:270px; color:#fff; margin-bottom:8px; display:flex; align-items:center;
  background:var(--brand-hero);
  box-shadow:0 30px 70px rgba(43,17,99,.34), inset 0 1px 0 rgba(255,255,255,.12); }
.pt-hero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(560px 420px at 84% 20%, rgba(148,96,255,.34), transparent 62%),
    radial-gradient(360px 320px at -6% 118%, rgba(255,255,255,.10), transparent 66%); }
/* watermark do símbolo oficial + arcos concêntricos */
.pt-hero::after{ content:""; position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:440px; height:440px; pointer-events:none; opacity:.07;
  background:url(img/brand/primeti-symbol-white.png) center/contain no-repeat; }
.pt-hero .in{ position:relative; z-index:2; max-width:min(50%,480px); }
.pt-hero .hi{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.14); }
.pt-hero .emp{ display:inline-flex; align-items:center; gap:9px; font-size:14.5px; font-weight:700; color:#fff; margin:14px 0 8px; padding:6px 15px 6px 12px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18); }
.pt-hero .emp svg{ width:16px; height:16px; opacity:.95; }
.pt-hero h1{ font-family:var(--disp); font-size:clamp(28px,3.3vw,40px); font-weight:800; letter-spacing:-.02em; margin:2px 0 10px; line-height:1.04; }
.pt-hero .support{ font-size:14.5px; opacity:.9; margin:0 0 22px; max-width:42ch; line-height:1.55; }
.pt-hero .cta-row{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.pt-hero .btn.hero-cta{ background:#fff; color:#5a2cc0; font-weight:800; box-shadow:0 12px 28px rgba(20,0,60,.24); }
.pt-hero .btn.hero-cta:hover{ background:#f2ecff; transform:translateY(-1px); }
.pt-hero .btn.hero-cta svg{ stroke:#5a2cc0; }
.pt-hero .btn.hero-ghost{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.42); font-weight:700; }
.pt-hero .btn.hero-ghost:hover{ background:rgba(255,255,255,.22); }
.pt-hero .tagline{ font-family:"Segoe Script","Segoe Print","Lucida Handwriting",cursive; font-style:italic; font-size:20px; opacity:.92; margin:20px 0 0; position:relative; z-index:2; }
.pt-illus{ position:absolute; right:112px; top:50%; transform:translateY(-50%); width:34%; max-width:340px; z-index:1; pointer-events:none; }
.pt-illus svg{ width:100%; height:auto; display:block; overflow:visible; }
.pt-hero .inst{ position:absolute; right:22px; top:50%; transform:translateY(-50%); z-index:2; text-align:right; font-size:10.5px; font-weight:700; letter-spacing:.16em; line-height:2; opacity:.7; }
.pt-hero .inst .u{ display:block; width:24px; height:3px; border-radius:2px; background:rgba(255,255,255,.5); margin:9px 0 9px auto; }
.pt-hero .inst .b{ display:block; opacity:.92; }
@media(max-width:1040px){ .pt-illus{ opacity:.16; right:-20px; } .pt-hero .in{ max-width:100%; } .pt-hero .inst{ display:none; } }
@media(max-width:620px){ .pt-illus{ display:none; } .pt-hero{ padding:30px 26px; } .pt-hero::after{ opacity:.05; } }

/* ===== KPIs (cards importantes, clicáveis) ===== */
.pt-counts{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:24px 0 16px; }
.pt-count{ position:relative; display:block; background:var(--card); border:1px solid var(--line); border-radius:20px; padding:22px 24px; box-shadow:var(--sh-sm); overflow:hidden; text-decoration:none; color:inherit; transition:transform .14s, box-shadow .14s, border-color .14s; }
a.pt-count:hover{ transform:translateY(-3px); box-shadow:var(--sh); border-color:color-mix(in srgb,var(--cc,var(--op)) 34%,var(--line)); }
.pt-count::after{ content:""; position:absolute; right:-26px; top:-26px; width:96px; height:96px; border-radius:50%; background:var(--cc,var(--op)); opacity:.09; }
.pt-count .top{ display:flex; align-items:flex-start; justify-content:space-between; }
.pt-count .ic{ width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:color-mix(in srgb,var(--cc,var(--op)) 16%,#fff); color:var(--cc,var(--op)); }
.pt-count .ic svg{ width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.pt-count .arw{ color:var(--faint); position:relative; z-index:1; opacity:0; transform:translateX(-4px); transition:.14s; }
.pt-count .arw svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
a.pt-count:hover .arw{ opacity:1; transform:translateX(0); color:var(--cc,var(--op)); }
.pt-count .n{ font-family:var(--disp); font-weight:800; font-size:36px; color:var(--ink); line-height:1; margin-top:16px; }
.pt-count .l{ font-size:14px; color:var(--ink); margin-top:8px; font-weight:700; }
.pt-count .exp{ font-size:12px; color:var(--muted); margin-top:2px; }
.pt-count.c-att{ --cc:var(--diag); } .pt-count.c-wait{ --cc:var(--warn); } .pt-count.c-done{ --cc:var(--good); }
@media(max-width:760px){ .pt-counts{ grid-template-columns:1fr; gap:12px; } }

/* faixa de confiança/segurança (discreta) */
.pt-trust{ display:flex; align-items:center; gap:14px; background:linear-gradient(120deg,color-mix(in srgb,var(--op) 8%,#fff),var(--card)); border:1px solid color-mix(in srgb,var(--op) 16%,var(--line)); border-radius:16px; padding:14px 20px; margin:0 0 30px; }
.pt-trust .ic{ width:40px; height:40px; border-radius:12px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--brand-purple); }
.pt-trust .ic svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-trust .tx{ flex:1; min-width:0; }
.pt-trust b{ font-size:13.5px; color:var(--ink); }
.pt-trust span{ font-size:12.5px; color:var(--muted); }
.pt-trust .right{ display:flex; align-items:center; gap:9px; flex:none; padding-left:18px; border-left:1px solid color-mix(in srgb,var(--op) 16%,var(--line)); }
.pt-trust .right svg{ width:22px; height:22px; flex:none; fill:none; stroke:var(--brand-purple); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-trust .right span{ font-size:11.5px; font-weight:600; color:var(--muted); line-height:1.3; }
@media(max-width:720px){ .pt-trust .right{ display:none; } }
/* watermark + assinatura no estado vazio */
.pt-empty{ position:relative; }
.pt-empty-wm{ position:absolute; right:24px; bottom:16px; width:150px; height:auto; opacity:.06; pointer-events:none; }
.pt-empty-sig{ position:absolute; right:34px; top:34px; font-family:"Segoe Script","Segoe Print","Lucida Handwriting",cursive; font-style:italic; font-size:19px; color:var(--op); opacity:.55; }
@media(max-width:760px){ .pt-empty-wm, .pt-empty-sig{ display:none; } }

/* ===== toolbar (busca + chips) Meus chamados ===== */
.pt-toolbar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:2px 0 18px; }
.pt-search{ position:relative; flex:1; min-width:200px; }
.pt-search svg{ position:absolute; left:14px; top:50%; transform:translateY(-50%); width:17px; height:17px; fill:none; stroke:var(--faint); stroke-width:1.8; stroke-linecap:round; }
.pt-search input{ width:100%; border:1px solid var(--line2); background:var(--card); border-radius:12px; padding:11px 14px 11px 40px; font:inherit; font-size:14px; color:var(--ink); box-shadow:var(--sh-sm); transition:border-color .15s, box-shadow .15s; }
.pt-search input:focus{ outline:none; border-color:var(--op); box-shadow:0 0 0 3px var(--brand-soft); }
.pt-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.pt-chip{ display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line2); background:var(--card); color:var(--muted); font-weight:600; font-size:13px; padding:8px 14px; border-radius:999px; cursor:pointer; transition:all .14s; }
.pt-chip .ct{ font-weight:800; color:var(--ink); background:var(--surface-2); border-radius:999px; padding:0 7px; font-size:11.5px; min-width:18px; text-align:center; }
.pt-chip:hover{ border-color:var(--op); color:var(--op); }
.pt-chip.on{ background:var(--op); color:#fff; border-color:var(--op); box-shadow:0 6px 16px rgba(124,92,255,.28); }
.pt-chip.on .ct{ background:rgba(255,255,255,.22); color:#fff; }
.pt-pills{ display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 20px; }
.pt-pill{ border:1px solid var(--line2); background:var(--card); color:var(--muted); font-weight:600; font-size:13px; padding:8px 16px; border-radius:999px; cursor:pointer; transition:all .14s; }
.pt-pill:hover{ border-color:var(--op); color:var(--op); }
.pt-pill.on{ background:var(--op); color:#fff; border-color:var(--op); box-shadow:0 6px 16px rgba(124,92,255,.28); }

/* ===== cards de chamado (ricos, horizontais) ===== */
.pt-list{ display:flex; flex-direction:column; gap:12px; }
.pt-card{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:18px 20px 18px 26px; box-shadow:var(--sh-sm); text-decoration:none; color:var(--ink); display:flex; align-items:center; gap:16px; overflow:hidden; transition:transform .14s, box-shadow .14s, border-color .14s; }
.pt-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--pc,var(--line2)); }
.pt-card:hover{ transform:translateY(-2px); box-shadow:var(--sh); border-color:color-mix(in srgb,var(--op) 30%,var(--line)); }
.pt-card.p-p1{ --pc:var(--crit); } .pt-card.p-p2{ --pc:var(--warn); } .pt-card.p-p3{ --pc:var(--diag); } .pt-card.p-p4{ --pc:var(--faint); }
.pt-card .tk-ic{ width:48px; height:48px; border-radius:14px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--op); }
.pt-card .tk-ic svg{ width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-card .mid{ flex:1; min-width:0; }
.pt-card .r1{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.pt-card .num{ font-family:var(--mono); font-size:11.5px; color:var(--faint); font-weight:700; }
.pt-card .subj{ font-weight:800; font-size:15.5px; letter-spacing:-.01em; margin:5px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pt-card .desc{ font-size:12.5px; color:var(--muted); margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pt-card .r3{ display:flex; gap:5px 14px; flex-wrap:wrap; font-size:11.5px; color:var(--faint); margin-top:8px; }
.pt-card .r3 .mi{ display:inline-flex; align-items:center; gap:5px; }
.pt-card .r3 .mi svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.7; }
.pt-card .r3 b{ color:var(--muted); font-weight:600; }
.pt-card .go{ flex:none; color:var(--faint); display:grid; place-items:center; }
.pt-card .go svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pt-card:hover .go{ color:var(--op); transform:translateX(2px); transition:transform .14s; }

/* ===== layout 2 colunas + painéis laterais ===== */
.pt-2col{ display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:24px; align-items:start; }
@media(max-width:900px){ .pt-2col{ grid-template-columns:1fr; } }
.pt-side{ display:flex; flex-direction:column; gap:18px; position:sticky; top:82px; }
@media(max-width:900px){ .pt-side{ position:static; } }
.pt-panel{ background:var(--card); border:1px solid var(--line); border-radius:20px; padding:22px 24px; box-shadow:var(--sh-sm); }
.pt-panel.tinted{ background:linear-gradient(165deg,color-mix(in srgb,var(--op) 10%,#fff),var(--card)); border-color:color-mix(in srgb,var(--op) 20%,var(--line)); }
.pt-panel .ph{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.pt-panel .ph .ic{ width:40px; height:40px; border-radius:13px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--op); }
.pt-panel .ph .ic svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-panel .ph h3{ font-size:15px; font-weight:800; margin:0; letter-spacing:-.01em; }
.pt-panel .ph p{ font-size:12px; color:var(--faint); margin:1px 0 0; }
.pt-tips{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:15px; }
.pt-tips li{ display:flex; gap:12px; font-size:13px; color:var(--muted); line-height:1.5; }
.pt-tips li .n{ width:25px; height:25px; border-radius:50%; flex:none; background:var(--brand-soft); color:var(--op); font-weight:800; font-size:12px; display:grid; place-items:center; }
.pt-tips li b{ color:var(--ink); display:block; font-size:13px; margin-bottom:1px; }
.pt-tips li .n svg{ display:block; }
.pt-help{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.pt-help b{ display:block; font-size:13px; color:var(--ink); }
.pt-help span{ font-size:12.5px; color:var(--muted); }

/* mini definition-list */
.pt-dl{ display:flex; flex-direction:column; }
.pt-dl .row{ display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid var(--line); font-size:13px; }
.pt-dl .row:first-child{ padding-top:0; } .pt-dl .row:last-child{ border-bottom:0; padding-bottom:0; }
.pt-dl .k{ color:var(--faint); font-weight:600; }
.pt-dl .v{ color:var(--ink); font-weight:700; text-align:right; word-break:break-word; }
.pt-dl .v.none{ color:var(--faint); font-weight:500; font-style:italic; }

/* stepper "Próximas ações" */
.pt-steps{ list-style:none; margin:0; padding:0; }
.pt-steps li{ position:relative; padding:0 0 20px 32px; }
.pt-steps li::before{ content:""; position:absolute; left:10px; top:20px; bottom:-2px; width:2px; background:var(--line2); }
.pt-steps li:last-child{ padding-bottom:0; } .pt-steps li:last-child::before{ display:none; }
.pt-steps li.done::before{ background:var(--good); }
.pt-steps li .dot{ position:absolute; left:0; top:1px; width:22px; height:22px; border-radius:50%; background:var(--card); border:2px solid var(--line2); }
.pt-steps li.done .dot{ background:var(--good); border-color:var(--good); }
.pt-steps li.done .dot::after{ content:""; position:absolute; left:6px; top:3px; width:4px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.pt-steps li.active .dot{ background:var(--op); border-color:var(--op); box-shadow:0 0 0 4px var(--brand-soft); }
.pt-steps li .t{ font-weight:700; font-size:13.5px; color:var(--ink); }
.pt-steps li.pending .t{ color:var(--faint); font-weight:600; }
.pt-steps li .d{ font-size:12px; color:var(--muted); margin-top:2px; line-height:1.4; }

/* ===== estados vazios elaborados ===== */
.pt-empty{ position:relative; overflow:hidden; background:linear-gradient(180deg,color-mix(in srgb,var(--op) 5%,#fff),var(--card)); border:1px solid var(--line); border-radius:20px; padding:42px 34px; text-align:center; color:var(--muted); box-shadow:var(--sh-sm); }
.pt-empty::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(420px 200px at 50% -12%, var(--brand-soft), transparent 70%); }
.pt-empty .art{ position:relative; z-index:1; width:128px; height:102px; margin:0 auto 16px; }
.pt-empty .art svg{ width:100%; height:100%; }
.pt-empty .ic{ width:66px; height:66px; border-radius:20px; margin:0 auto 16px; display:grid; place-items:center; background:var(--brand-soft); color:var(--op); position:relative; z-index:1; }
.pt-empty .ic svg{ width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.pt-empty b{ position:relative; z-index:1; color:var(--ink); font-size:16.5px; display:block; margin-bottom:5px; letter-spacing:-.01em; }
.pt-empty p{ position:relative; z-index:1; max-width:40ch; margin:0 auto; font-size:13.5px; line-height:1.55; }
.pt-empty .btn{ position:relative; z-index:1; margin-top:16px; }

/* ===== formulários / conta ===== */
.pt-formcard{ background:var(--card); border:1px solid var(--line); border-radius:20px; padding:0; box-shadow:var(--sh-sm); overflow:hidden; }
.pt-formcard .fc-head{ display:flex; align-items:center; gap:13px; padding:20px 28px; border-bottom:1px solid var(--line); background:linear-gradient(120deg,color-mix(in srgb,var(--op) 7%,#fff),var(--card)); }
.pt-formcard .fc-head .ic{ width:42px; height:42px; border-radius:13px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--op); }
.pt-formcard .fc-head .ic svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-formcard .fc-head h3{ font-size:16px; font-weight:800; margin:0; letter-spacing:-.01em; }
.pt-formcard .fc-head p{ font-size:12.5px; color:var(--muted); margin:1px 0 0; }
.pt-formcard .fc-body{ padding:24px 28px 26px; }
.pt-grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; align-items:start; }
@media(max-width:860px){ .pt-grid3{ grid-template-columns:1fr; } }
.pt-main .tkd-inp, .pt-main .select{ border-radius:12px; padding:12px 14px; font-size:14.5px; }
.pt-main .field > span{ font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--faint); }
.pt-main .field .hint{ font-weight:500; text-transform:none; letter-spacing:0; color:var(--faint); font-size:12px; margin-top:5px; }

/* input com ícone */
.pt-inpico{ position:relative; }
.pt-inpico > svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; height:18px; fill:none; stroke:var(--faint); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.pt-inpico .tkd-inp{ padding-left:40px; }
.pt-inpico.haseye .tkd-inp{ padding-right:42px; }

/* dropzone de anexo */
.pt-drop{ position:relative; display:flex; align-items:center; gap:14px; border:1.6px dashed var(--line2); border-radius:14px; padding:16px 18px; background:var(--surface-2); cursor:pointer; transition:border-color .15s, background .15s; }
.pt-drop:hover{ border-color:var(--op); background:var(--brand-soft); }
.pt-drop input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; }
.pt-drop .di{ width:42px; height:42px; border-radius:12px; flex:none; display:grid; place-items:center; background:var(--brand-soft); color:var(--op); }
.pt-drop .di svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-drop .dt b{ display:block; font-size:13.5px; color:var(--ink); }
.pt-drop .dt span{ font-size:12px; color:var(--muted); }
.pt-drop.has{ border-style:solid; border-color:var(--good); background:var(--good-soft); }
.pt-drop.has .di{ background:var(--good-soft); color:var(--good); }
.pt-drop .dt{ flex:1; min-width:0; }
.pt-drop .dt b{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pt-drop-thumb{ width:52px; height:52px; border-radius:11px; object-fit:cover; flex:none; border:1px solid rgba(0,0,0,.08); background:#fff; }
.pt-drop-x{ flex:none; width:32px; height:32px; border-radius:9px; border:1px solid var(--line2); background:var(--card); color:var(--muted); display:grid; place-items:center; cursor:pointer; transition:.14s; }
.pt-drop-x:hover{ border-color:var(--crit); color:var(--crit); background:var(--crit-soft); }
.pt-drop-x svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
/* miniatura da imagem colada (Ctrl+V) abaixo da descrição */
.pt-attach{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:10px 12px; border:1px solid var(--good); background:var(--good-soft); border-radius:12px; }
.pt-attach-thumb{ width:48px; height:48px; border-radius:9px; object-fit:cover; flex:none; border:1px solid rgba(0,0,0,.10); background:#fff; }
.pt-attach-ic{ width:48px; height:48px; border-radius:9px; flex:none; display:grid; place-items:center; background:#fff; color:var(--good); }
.pt-attach-ic svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-attach-tx{ flex:1; min-width:0; }
.pt-attach-tx b{ display:block; font-size:13.5px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pt-attach-tx span{ font-size:12px; color:var(--muted); }
.pt-attach-x{ flex:none; width:32px; height:32px; border-radius:9px; border:1px solid var(--line2); background:#fff; color:var(--muted); display:grid; place-items:center; cursor:pointer; transition:.14s; }
.pt-attach-x:hover{ border-color:var(--crit); color:var(--crit); background:var(--crit-soft); }
.pt-attach-x svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }

/* hero de página (Minha conta) */
.pt-achero{ position:relative; overflow:hidden; border-radius:24px; padding:30px 34px; min-height:112px; margin-bottom:22px; color:#fff;
  background:linear-gradient(120deg,#54269e 0%,#6f45e6 46%,#9a6bff 100%); box-shadow:0 24px 56px rgba(84,38,158,.32), inset 0 1px 0 rgba(255,255,255,.14); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.pt-achero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(360px 260px at 88% -20%, rgba(255,255,255,.22), transparent 64%), repeating-radial-gradient(circle at 80% 40%, rgba(255,255,255,.05) 0 1px, transparent 1px 15px); }
.pt-achero .t h1{ font-size:25px; font-weight:800; margin:0; letter-spacing:-.02em; position:relative; z-index:1; }
.pt-achero .t p{ margin:6px 0 0; opacity:.92; font-size:14px; position:relative; z-index:1; max-width:52ch; }
.pt-achero .em{ position:relative; z-index:1; width:88px; height:88px; border-radius:24px; flex:none; display:grid; place-items:center; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.22); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.pt-achero .em::before{ content:""; position:absolute; inset:-9px; border-radius:30px; border:1.5px solid rgba(255,255,255,.16); }
.pt-achero .em svg{ width:44px; height:44px; fill:none; stroke:#fff; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
@media(max-width:520px){ .pt-achero .em{ display:none; } }
.pt-idcard{ display:flex; align-items:center; gap:15px; margin-bottom:20px; }
.pt-idcard .av{ width:60px; height:60px; border-radius:18px; flex:none; background:linear-gradient(135deg,#8b6bff,#6a3cd6); color:#fff; display:grid; place-items:center; font-weight:800; font-size:23px; box-shadow:0 8px 20px rgba(106,60,214,.32); }
.pt-idcard .nm{ font-size:18px; font-weight:800; letter-spacing:-.01em; }
.pt-idcard .em{ font-size:13px; color:var(--muted); }

/* anexos (detalhe) */
.tkd-anexos{ display:flex; flex-direction:column; gap:6px; }
.tkd-anexos .anexo{ display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--ink); font-size:13px; padding:7px 9px; border:1px solid var(--line); border-radius:8px; background:var(--card2); }
.tkd-anexos .anexo:hover{ border-color:var(--op); }
.tkd-anexos .anexo svg{ width:15px; height:15px; flex:none; fill:none; stroke:var(--op); stroke-width:1.8; }
.tkd-anexos .anexo .nm{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tkd-anexos .anexo .sz{ font-size:11px; color:var(--faint); white-space:nowrap; }
.tkd-upload{ position:relative; overflow:hidden; margin-top:8px; }
.tkd-upload input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; }

/* ==== Acessos (central de acessos) — global (o projeto não usa scoped css) ==== */
.acc-group{ margin-bottom:26px; }
.acc-group-head{ display:flex; align-items:baseline; gap:10px; margin:0 0 12px; }
.acc-group-head h2{ font-size:15px; font-weight:700; margin:0; color:var(--text,#2a2a2a); }
.acc-dot{ width:9px; height:9px; border-radius:50%; align-self:center; flex:none; }
.acc-group-sub{ font-size:12.5px; }
.acc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.acc-card{ display:flex; gap:14px; align-items:flex-start; padding:16px 18px; background:var(--surface,#fff);
  border:1px solid var(--border-soft,#ece8f6); border-radius:var(--radius,12px); box-shadow:var(--shadow,0 6px 20px rgba(60,40,120,.08));
  text-decoration:none; color:var(--text,#2a2a2a); position:relative; overflow:hidden;
  transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease; }
.acc-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--acc,var(--op,#7c5cff)); opacity:.55; transition:opacity .12s ease; }
.acc-card:hover{ transform:translateY(-2px); border-color:var(--acc,var(--op,#7c5cff)); box-shadow:0 10px 26px rgba(60,40,120,.16); }
.acc-card:hover::before{ opacity:1; }
.acc-card:focus-visible{ outline:2px solid var(--acc,var(--op,#7c5cff)); outline-offset:2px; }
.acc-here{ background:var(--surface-2,#f3effc); }
.acc-ico{ font-size:22px; line-height:1; width:42px; height:42px; display:grid; place-items:center; border-radius:11px;
  background:color-mix(in srgb, var(--acc,var(--op,#7c5cff)) 14%, transparent); flex:none; }
.acc-body{ display:flex; flex-direction:column; gap:3px; min-width:0; flex:1; }
.acc-title{ font-weight:700; font-size:14.5px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--text,#2a2a2a); }
.acc-tag{ font-size:10px; padding:1px 8px; font-weight:700; }
.acc-desc{ color:var(--muted,#6b6580); font-size:12.5px; line-height:1.45; }
.acc-host{ margin-top:5px; font-family:var(--mono,Consolas,monospace); font-size:11.5px; color:var(--faint,#8c84a4);
  display:flex; align-items:center; justify-content:space-between; gap:8px; }
.acc-go{ color:var(--acc,var(--op,#7c5cff)); font-family:var(--font,inherit); font-weight:700; opacity:0; transform:translateX(-4px);
  transition:opacity .12s ease, transform .12s ease; white-space:nowrap; }
.acc-card:hover .acc-go{ opacity:1; transform:translateX(0); }

/* ==================================================================
   PRIME CONTROL — Central de Projetos e Evolução (módulo interno)
   ================================================================== */
.pc-skel{ padding:40px; text-align:center; color:var(--muted); }
.pc-actions-row{ margin:0 0 12px; }
.ico-plus{ font-weight:800; margin-right:4px; }

/* ---- resumo ---- */
.pc-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:20px; }
.pc-kpi{ background:var(--surface); border:1px solid var(--border-soft); border-left:3px solid var(--op);
  border-radius:var(--radius); padding:14px 16px; box-shadow:var(--shadow); }
.pc-kpi .n{ font-size:26px; font-weight:800; letter-spacing:-.02em; line-height:1.1; }
.pc-kpi .l{ font-size:12.5px; color:var(--muted); margin-top:2px; }
.pc-kpi.t-op{ border-left-color:var(--op); } .pc-kpi.t-op .n{ color:var(--op); }
.pc-kpi.t-accent{ border-left-color:#6a3cd6; } .pc-kpi.t-accent .n{ color:#6a3cd6; }
.pc-kpi.t-warn{ border-left-color:#c9781a; } .pc-kpi.t-warn .n{ color:#c9781a; }
.pc-kpi.t-good{ border-left-color:#12a97e; } .pc-kpi.t-good .n{ color:#12a97e; }
.pc-kpi.t-muted{ border-left-color:var(--faint); } .pc-kpi.t-muted .n{ color:var(--faint); }

/* ---- cards de projeto ---- */
.pc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:16px; }
.pc-card{ display:flex; flex-direction:column; gap:10px; padding:18px 20px; background:var(--surface);
  border:1px solid var(--border-soft); border-radius:16px; box-shadow:var(--shadow); text-decoration:none; color:var(--text);
  position:relative; overflow:hidden; transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease; }
.pc-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--op); opacity:.8; }
.pc-card.h-good::before{ background:#12a97e; } .pc-card.h-warn::before{ background:#e0a33a; }
.pc-card.h-crit::before{ background:#e5484d; } .pc-card.h-muted::before{ background:var(--faint); }
.pc-card:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(60,40,120,.16); border-color:var(--op); }
.pc-card-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.pc-name{ font-size:16.5px; font-weight:800; letter-spacing:-.01em; }
.pc-health{ white-space:nowrap; flex:none; }
.pc-meta{ font-size:12.5px; color:var(--muted); display:flex; gap:6px; align-items:center; margin-top:-4px; }
.pc-phase{ font-weight:700; color:var(--op); }
.pc-sep{ opacity:.5; }
.pc-block{ display:flex; flex-direction:column; gap:2px; }
.pc-lbl{ font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); }
.pc-txt{ font-size:13.5px; line-height:1.45; }
.pc-next{ font-weight:600; }
.pc-card-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto;
  padding-top:10px; border-top:1px solid var(--border-soft); font-size:12px; color:var(--faint); }

/* ---- progresso ---- */
.pc-prog{ position:relative; height:8px; border-radius:99px; background:var(--surface-2); margin:2px 0 4px; }
.pc-prog-bar{ height:100%; border-radius:99px; background:linear-gradient(135deg,#7b3ff0,#5a2cc0); transition:width .5s ease; }
.pc-prog-n{ position:absolute; right:0; top:-17px; font-size:11.5px; font-weight:800; color:var(--op); }
.pc-prog-lg{ height:10px; max-width:340px; }

/* ---- pulso ---- */
.pc-pulse{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; }
.pc-pulse i{ width:7px; height:7px; border-radius:50%; background:currentColor; }
.pu-good{ color:#12a97e; } .pu-good i{ animation:pc-beat 2s ease-in-out infinite; }
.pu-op{ color:var(--op); } .pu-warn{ color:#c9781a; } .pu-muted{ color:var(--faint); }
@keyframes pc-beat{ 0%,100%{ transform:scale(1); opacity:1 } 50%{ transform:scale(1.5); opacity:.55 } }

/* ---- vazio ---- */
.pc-empty{ text-align:center; padding:50px 20px; background:var(--surface); border:1px dashed var(--border-soft); border-radius:18px; }
.pc-empty-ico{ font-size:34px; }
.pc-empty h3{ margin:10px 0 4px; font-size:17px; }
.pc-empty p{ color:var(--muted); font-size:13.5px; max-width:52ch; margin:0 auto 16px; }

/* ---- detalhe ---- */
.pc-back{ display:inline-block; margin-bottom:12px; font-size:13px; color:var(--op); text-decoration:none; font-weight:700; }
.pc-hero{ display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-wrap:wrap;
  padding:22px 24px; border-radius:18px; background:var(--surface); border:1px solid var(--border-soft);
  box-shadow:var(--shadow); position:relative; overflow:hidden; margin-bottom:16px; }
.pc-hero::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--op); }
.pc-hero.h-good::before{ background:#12a97e; } .pc-hero.h-warn::before{ background:#e0a33a; }
.pc-hero.h-crit::before{ background:#e5484d; } .pc-hero.h-muted::before{ background:var(--faint); }
.pc-hero-top{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pc-hero-top h1{ margin:0; font-size:26px; font-weight:800; letter-spacing:-.02em; }
.pc-hero-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:8px; font-size:12.5px; }
.pc-owner{ color:var(--muted); }
.pc-hero-actions{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

.pc-suggest{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  background:#fdf6e6; border:1px solid #f0dfba; border-left:4px solid #e0a33a; color:#7a5312;
  border-radius:12px; padding:12px 16px; font-size:13.5px; margin-bottom:16px; }

.pc-two{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:18px; }
.pc-state{ padding:16px 18px; }
.pc-state-txt{ margin:6px 0 0; font-size:14.5px; line-height:1.5; }
.pc-state-next .pc-state-txt{ font-weight:600; }
@media(max-width:860px){ .pc-two{ grid-template-columns:1fr; } }

.pc-cols{ display:grid; grid-template-columns:1.25fr .9fr; gap:16px; align-items:start; }
@media(max-width:1000px){ .pc-cols{ grid-template-columns:1fr; } }
.pc-col-main{ display:flex; flex-direction:column; gap:14px; }
.pc-sec{ padding:16px 18px; }
.pc-sec-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.pc-sec-head h2{ margin:0; font-size:14.5px; font-weight:800; }
.pc-add{ width:26px; height:26px; border-radius:8px; border:1px solid var(--border-soft); background:var(--surface-2);
  cursor:pointer; font-size:14px; line-height:1; color:var(--op); }
.pc-add:hover{ border-color:var(--op); }
.pc-none{ color:var(--faint); font-size:13px; margin:2px 0 0; }
.pc-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.pc-list li{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13.5px;
  padding:8px 10px; border:1px solid var(--border-soft); border-radius:10px; background:var(--surface-2); }
.pc-li-name{ font-weight:600; }
.pc-li-name.done{ text-decoration:line-through; color:var(--faint); font-weight:500; }
.pc-inline{ display:flex; gap:8px; margin-bottom:10px; }
.pc-inline .input{ flex:1; }
.pc-inline-col{ display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.pc-decs{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.pc-decs li{ display:flex; flex-direction:column; gap:3px; padding:10px 12px; border-left:3px solid var(--op);
  background:var(--surface-2); border-radius:0 10px 10px 0; font-size:13.5px; }
.pc-dec-txt{ color:var(--muted); }
.pc-dec-when{ font-size:11.5px; color:var(--faint); }

/* ---- linha do tempo ---- */
.pc-timeline{ list-style:none; margin:0; padding:0 0 0 6px; position:relative; }
.pc-timeline::before{ content:""; position:absolute; left:10px; top:6px; bottom:6px; width:2px; background:var(--border-soft); }
.pc-timeline li{ position:relative; padding:0 0 16px 28px; }
.tl-dot{ position:absolute; left:4px; top:4px; width:13px; height:13px; border-radius:50%; background:var(--op);
  border:3px solid var(--surface); box-shadow:0 0 0 1px var(--border-soft); }
.tl-good .tl-dot{ background:#12a97e; } .tl-crit .tl-dot{ background:#e5484d; }
.tl-accent .tl-dot{ background:#6a3cd6; } .tl-muted .tl-dot{ background:var(--faint); }
.tl-top{ display:flex; align-items:center; gap:8px; }
.tl-type{ font-size:10px; padding:1px 7px; font-weight:800; }
.tl-when{ font-size:11.5px; color:var(--faint); }
.tl-title{ font-size:13.5px; font-weight:700; margin-top:3px; }
.tl-content{ font-size:13px; color:var(--muted); margin-top:2px; line-height:1.45; }

/* ---- modal ---- */
.pc-modal-backdrop{ position:fixed; inset:0; background:rgba(26,16,50,.45); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  display:grid; place-items:center; z-index:900; padding:18px; animation:pc-fade .14s ease; }
@keyframes pc-fade{ from{ opacity:0 } to{ opacity:1 } }
.pc-modal{ width:min(560px,100%); max-height:88vh; overflow:auto; background:var(--surface); border-radius:18px;
  box-shadow:0 28px 70px rgba(30,15,70,.34); animation:pc-rise .18s ease; }
@keyframes pc-rise{ from{ transform:translateY(10px); opacity:.6 } to{ transform:none; opacity:1 } }
.pc-modal-head{ display:flex; align-items:flex-start; justify-content:space-between; padding:18px 20px 6px; }
.pc-modal-head h3{ margin:2px 0 0; font-size:18px; font-weight:800; }
.pc-x{ border:none; background:transparent; font-size:16px; cursor:pointer; color:var(--faint); padding:4px 6px; }
.pc-modal-body{ padding:8px 20px 4px; display:flex; flex-direction:column; gap:10px; }
.pc-modal-foot{ display:flex; justify-content:flex-end; gap:8px; padding:14px 20px 18px; }
.pc-row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media(max-width:520px){ .pc-row2{ grid-template-columns:1fr; } }
.pc-toggles{ display:flex; flex-direction:column; gap:8px; padding:10px 12px; background:var(--surface-2);
  border:1px solid var(--border-soft); border-radius:12px; }
.pc-check{ display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; }
.pc-erro{ background:#fdecec; border:1px solid #f3c4c4; color:#a22; border-radius:10px; padding:9px 12px; font-size:13px; }

/* ==================================================================
   MODO TV — Mission Control (escuro, sem sidebar)
   ================================================================== */
.tv-root{ --tv-bg:#141020; --tv-card:#1d1733; --tv-line:#2c2447; --tv-ink:#f2eefb; --tv-mut:#a79fc4; --tv-faint:#7d75a0;
  --tv-op:#8b5cf6; --tv-good:#17b98b; --tv-warn:#e0a33a; --tv-crit:#e5484d;
  position:fixed; inset:0; background:var(--tv-bg); color:var(--tv-ink); overflow:hidden; }
.tv-wrap{ height:100%; display:flex; flex-direction:column; padding:22px 30px 16px; gap:16px; }
.tv-head{ display:flex; align-items:center; justify-content:space-between; }
.tv-brand{ display:flex; align-items:center; gap:13px; }
.tv-brand img{ height:40px; width:auto; }
.tv-brand-txt{ display:flex; flex-direction:column; line-height:1.15; }
.tv-brand-txt strong{ font-size:17px; font-weight:800; letter-spacing:-.01em; }
.tv-brand-txt span{ font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--tv-op); font-weight:700; }
.tv-clock{ text-align:right; }
.tv-hour{ font-size:30px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.tv-date{ font-size:12.5px; color:var(--tv-mut); text-transform:capitalize; }

.tv-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.tv-kpi{ background:var(--tv-card); border:1px solid var(--tv-line); border-radius:14px; padding:12px 18px;
  display:flex; align-items:baseline; gap:12px; }
.tv-kpi .n{ font-size:30px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.tv-kpi .l{ font-size:12.5px; color:var(--tv-mut); }
.tv-kpi.k-op .n{ color:var(--tv-op); } .tv-kpi.k-accent .n{ color:#a78bfa; }
.tv-kpi.k-warn .n{ color:var(--tv-warn); } .tv-kpi.k-muted .n{ color:var(--tv-faint); }

.tv-main{ flex:1; min-height:0; overflow:hidden; }
.tv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; height:100%; }
.tv-card{ background:var(--tv-card); border:1px solid var(--tv-line); border-radius:16px; padding:16px 18px;
  display:flex; flex-direction:column; gap:8px; position:relative; overflow:hidden; min-height:0;
  transition:border-color .4s ease; }
.tv-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--tv-op); }
.tv-card.h-good::before{ background:var(--tv-good); } .tv-card.h-warn::before{ background:var(--tv-warn); }
.tv-card.h-crit::before{ background:var(--tv-crit); } .tv-card.h-muted::before{ background:var(--tv-faint); }
.tv-card-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.tv-card-top h2{ margin:0; font-size:18px; font-weight:800; letter-spacing:-.01em; }
.tv-health{ font-size:11px; font-weight:800; padding:2px 10px; border-radius:99px; white-space:nowrap;
  background:rgba(255,255,255,.07); }
.th-good{ color:var(--tv-good); } .th-warn{ color:var(--tv-warn); } .th-crit{ color:var(--tv-crit); } .th-muted{ color:var(--tv-faint); }
.tv-phase{ font-size:12px; color:var(--tv-op); font-weight:700; }
.tv-prog{ position:relative; height:7px; border-radius:99px; background:rgba(255,255,255,.08); }
.tv-prog-bar{ height:100%; border-radius:99px; background:linear-gradient(90deg,#7c3aed,#a78bfa); transition:width .6s ease; }
.tv-prog span{ position:absolute; right:0; top:-16px; font-size:11px; font-weight:800; color:#a78bfa; }
.tv-block{ min-height:0; }
.tv-lbl{ font-size:9.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--tv-faint); }
.tv-block p{ margin:2px 0 0; font-size:13.5px; line-height:1.4; color:var(--tv-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tv-next p{ font-weight:600; }
.tv-card-foot{ margin-top:auto; padding-top:8px; border-top:1px solid var(--tv-line);
  display:flex; align-items:center; justify-content:space-between; font-size:11.5px; color:var(--tv-faint); }
.tv-pulse{ display:inline-flex; align-items:center; gap:6px; font-weight:700; }
.tv-pulse i{ width:7px; height:7px; border-radius:50%; background:currentColor; }
.tp-good{ color:var(--tv-good); } .tp-good i{ animation:pc-beat 2s ease-in-out infinite; }
.tp-op{ color:#a78bfa; } .tp-warn{ color:var(--tv-warn); } .tp-muted{ color:var(--tv-faint); }
.tv-empty{ display:grid; place-items:center; height:100%; color:var(--tv-faint); font-size:15px; }

.tv-foot{ border-top:1px solid var(--tv-line); padding-top:10px; display:flex; align-items:center; gap:16px; min-height:40px; }
.tv-foot-lbl{ font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--tv-faint); flex:none; }
.tv-feed{ display:flex; gap:22px; overflow:hidden; flex:1; }
.tv-feed-item{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--tv-mut); white-space:nowrap; }
.tv-feed-item b{ color:var(--tv-ink); }
.tv-feed-item em{ font-style:normal; color:var(--tv-faint); font-size:11px; }
.tv-feed-item i{ width:6px; height:6px; border-radius:50%; background:var(--tv-op); flex:none; }
.tv-feed-item i.tf-good{ background:var(--tv-good); } .tv-feed-item i.tf-crit{ background:var(--tv-crit); }
.tv-feed-item i.tf-accent{ background:#a78bfa; } .tv-feed-item i.tf-muted{ background:var(--tv-faint); }
.tv-feed-none{ font-size:12.5px; color:var(--tv-faint); }
@media(max-width:1200px){ .tv-grid{ grid-template-columns:repeat(2,1fr); } .tv-kpis{ grid-template-columns:repeat(2,1fr); } }

/* edição inline de estado / frentes / confirmação */
.pc-state-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pc-li-right{ display:inline-flex; align-items:center; gap:8px; flex:none; }
.pc-modal-sm{ width:min(430px,100%); }

@media (prefers-reduced-motion: reduce){
  .pc-card, .pc-prog-bar, .tv-prog-bar, .tv-card{ transition:none; }
  .pu-good i, .tp-good i{ animation:none; }
  .pc-modal, .pc-modal-backdrop{ animation:none; }
}

/* ===== Ativos — lista estilo Milvus (Fase 1 do Agent) ===== */
.faint{ color:var(--faint); }
.ast-toolbar .field{ min-width:130px; margin:0; }
.ast-toolbar .select{ min-width:0; width:100%; }
.ast-toolbar .search{ flex:1 1 260px; }
.tbl-ast{ font-size:13px; }
.tbl-ast th, .tbl-ast td{ padding:9px 12px; vertical-align:middle; }
.tbl-ast th{ white-space:nowrap; }
.tbl-ast th.sortable{ cursor:pointer; user-select:none; }
.tbl-ast th.sortable:hover{ color:var(--text); }
.tbl-ast td.tnum, .tbl-ast th.tnum{ text-align:center; }
.ast-cell-host{ display:flex; align-items:center; gap:10px; min-width:170px; }
.ast-host{ font-weight:700; color:var(--text); text-decoration:none; }
.ast-host:hover{ color:var(--accent-2); text-decoration:underline; }
.ast-small{ font-size:12.5px; white-space:nowrap; }
.ast-line{ display:flex; align-items:center; gap:5px; font-size:12px; color:var(--muted); margin-top:2px; white-space:nowrap; }
.ast-line.mono{ font-size:11.5px; }
.ast-line .ico{ width:12px; height:12px; flex:none; }
.ast-sub.crit{ color:var(--crit); }
.ast-sit.mini{ padding:0; border:0; background:none; }
.ast-sit.mini .dt{ width:9px; height:9px; }
.ast-kind{ display:inline-flex; align-items:center; gap:5px; font-weight:600; color:var(--muted); }
.ast-kind .ico{ width:14px; height:14px; }
.vuln{ display:inline-block; min-width:74px; text-align:center; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; border:1px solid; }
.vuln-crit{ background:var(--crit-s); color:var(--crit); border-color:color-mix(in srgb, var(--crit) 35%, white); }
.vuln-warn{ background:var(--warn-soft); color:var(--warn); border-color:color-mix(in srgb, var(--warn) 35%, white); }
.vuln-ok{ background:var(--good-soft); color:#157a4b; border-color:color-mix(in srgb, var(--good) 35%, white); }
.vuln-na{ background:var(--card2); color:var(--faint); border-color:var(--line2); }
.mon-icons{ display:flex; gap:5px; }
.mon-i{ display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; border:1.5px solid; }
.mon-i .ico{ width:14px; height:14px; }
.mon-i-ok{ color:var(--good); border-color:color-mix(in srgb, var(--good) 55%, white); background:var(--good-soft); }
.mon-i-warn{ color:var(--warn); border-color:color-mix(in srgb, var(--warn) 55%, white); background:var(--warn-soft); }
.mon-i-bad{ color:var(--crit); border-color:color-mix(in srgb, var(--crit) 55%, white); background:var(--crit-s); }
.mon-i-na{ color:var(--faint); border-color:var(--line2); background:var(--card2); }
.ast-legend{ font-size:12px; display:flex; align-items:center; gap:4px; flex-wrap:wrap; margin:10px 2px 0; }
.ast-legend .mon-i{ width:20px; height:20px; } .ast-legend .mon-i .ico{ width:11px; height:11px; }
.ico-btn{ padding:5px 8px; line-height:0; }
.ico-btn .ico{ width:15px; height:15px; }
.tbl-ast tr.row-active + tr.row-active td{ padding:16px 18px; }

/* ===== Ativo — detalhe ===== */
.asd-head{ display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.asd-head h1{ margin:0; }
.asd-head .asd-meta{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:6px; color:var(--muted); font-size:13px; }
.asd-head .asd-actions{ margin-left:auto; display:flex; gap:8px; }
.asd-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; }
.asd-grid .card{ margin:0; }
.asd-dl{ display:grid; grid-template-columns:140px 1fr; gap:8px 12px; font-size:13px; margin:0; }
.asd-dl dt{ color:var(--faint); }
.asd-dl dd{ margin:0; word-break:break-word; }
.asd-mon{ display:grid; gap:12px; }
.asd-mon .it{ display:grid; grid-template-columns:28px 90px 1fr; gap:10px; align-items:center; font-size:13px; }
.asd-mon .it .bar{ margin:0; }
.asd-back{ display:inline-flex; align-items:center; gap:6px; color:var(--muted); text-decoration:none; font-size:13px; margin-bottom:10px; }
.asd-back:hover{ color:var(--accent-2); }
.live-card{ display:grid; gap:10px; }
.live-head{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.live-head h2{ margin:0; }
.live-state{ font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; border:1px solid var(--line2); color:var(--faint); background:var(--card2); }
.live-state.on{ color:#157a4b; background:var(--good-soft); border-color:color-mix(in srgb, var(--good) 40%, white); }
.live-state.wait{ color:var(--warn); background:var(--warn-soft); border-color:color-mix(in srgb, var(--warn) 40%, white); }
.live-now{ margin-left:auto; display:flex; gap:16px; flex-wrap:wrap; font-size:13px; color:var(--muted); }
.live-now b{ color:var(--text); font-variant-numeric:tabular-nums; }
.live-now .lg{ display:inline-block; width:10px; height:3px; border-radius:2px; margin-right:6px; vertical-align:middle; }
.lg.cpu{ background:var(--accent); } .lg.ram{ background:var(--diag); }
.live-chart{ position:relative; }
.live-chart svg{ width:100%; height:170px; display:block; background:var(--surface-2); border-radius:var(--r-sm); }
.live-ylabels{ position:absolute; left:6px; top:0; height:170px; pointer-events:none; }
.live-ylabels span{ position:absolute; left:0; transform:translateY(-50%); font-size:10px; color:var(--faint); line-height:1; }
.live-chart .gl{ stroke:var(--line2); stroke-width:1; vector-effect:non-scaling-stroke; }
.live-chart .ln{ fill:none; stroke-width:2.2; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.live-chart .ln.cpu{ stroke:var(--accent); } .live-chart .ln.ram{ stroke:var(--diag); }
.live-axis{ display:flex; justify-content:space-between; font-size:11px; color:var(--faint); margin-top:4px; }
.asd-disks{ display:grid; gap:10px; }
.asd-disk{ border:1px solid var(--line); border-radius:var(--r-sm); padding:10px 12px; display:grid; gap:6px; }
.asd-disk-head{ display:flex; align-items:center; gap:10px; }
.asd-disk-name{ display:grid; min-width:0; font-size:13px; }
.asd-disk-name b{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.asd-disk-name .muted{ font-size:12px; }
.asd-disk-meta{ display:flex; flex-wrap:wrap; gap:4px 12px; font-size:12px; color:var(--muted); }
.asd-disk-why{ font-size:12px; color:var(--warn); }
.disk-st{ flex:none; min-width:92px; text-align:center; font-size:12px; font-weight:800; padding:6px 10px; border-radius:var(--r-sm); border:1.5px solid; }
.disk-st.ok{ color:#157a4b; background:var(--good-soft); border-color:color-mix(in srgb, var(--good) 45%, white); }
.disk-st.warn{ color:var(--warn); background:var(--warn-soft); border-color:color-mix(in srgb, var(--warn) 45%, white); }
.disk-st.bad{ color:var(--crit); background:var(--crit-s); border-color:color-mix(in srgb, var(--crit) 45%, white); }
.disk-st.na{ color:var(--faint); background:var(--card2); border-color:var(--line2); }
@media (max-width:860px){ .asd-dl{ grid-template-columns:110px 1fr; } .asd-head .asd-actions{ margin-left:0; } }

/* ===== Máquina — detalhe (redesenho) ===== */
.md-page{ display:grid; gap:16px; }
.md-hero{ display:flex; gap:18px; align-items:flex-start; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:20px 22px; box-shadow:var(--sh-sm); flex-wrap:wrap; }
.md-hero-ico{ flex:none; width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:color-mix(in srgb, var(--accent) 12%, white); color:var(--accent-2); }
.md-hero-ico .ico{ width:26px; height:26px; }
.md-hero-main{ flex:1; min-width:260px; display:grid; gap:8px; }
.md-hero-l1{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.md-hero-l1 h1{ margin:0; font-size:24px; letter-spacing:-.01em; }
.md-hero-l2{ display:flex; gap:6px 14px; flex-wrap:wrap; font-size:13px; color:var(--muted); }
.md-facts{ display:flex; gap:10px 28px; flex-wrap:wrap; margin-top:6px; padding-top:12px; border-top:1px solid var(--line); }
.md-facts div{ display:grid; gap:2px; }
.md-facts span{ font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); }
.md-facts b{ font-size:13.5px; font-weight:600; }
.md-hero-act{ display:flex; gap:8px; }
.md-hero-act .ico{ width:14px; height:14px; margin-right:4px; vertical-align:-2px; }

.md-kpis{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px; }
.md-kpi{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; display:grid; gap:6px; box-shadow:var(--sh-sm); }
.md-kpi .h{ display:flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--muted); }
.md-kpi .h .ico{ width:15px; height:15px; }
.md-kpi .v{ font-size:24px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.md-kpi .s{ font-size:12px; color:var(--faint); }
.md-kpi .bar{ height:6px; }
.md-kpi.warn .v{ color:var(--warn); } .md-kpi.bad .v{ color:var(--crit); } .md-kpi.na .v{ color:var(--faint); }

.md-chart-card{ display:grid; gap:12px; }
.md-chart-head{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.md-chart-head h2{ margin:0; }
.md-seg{ display:inline-flex; background:var(--card2); border:1px solid var(--line); border-radius:10px; padding:3px; gap:2px; }
.md-seg button{ border:0; background:none; font:inherit; font-size:12.5px; font-weight:600; color:var(--muted); padding:5px 12px; border-radius:8px; cursor:pointer; }
.md-seg button.on{ background:var(--card); color:var(--text); box-shadow:var(--sh-sm); }
.md-legend{ margin-left:auto; display:flex; gap:14px; flex-wrap:wrap; align-items:center; font-size:12.5px; color:var(--muted); }
.md-legend .lg{ display:inline-block; width:16px; height:3px; border-radius:2px; margin-right:6px; vertical-align:middle; }
.lg.tmp{ background:repeating-linear-gradient(90deg, #e07b2e 0 5px, transparent 5px 8px); }
.live-chart .ln.tmp{ stroke:#e07b2e; stroke-dasharray:5 4; }
.md-chart-empty{ position:absolute; top:0; left:0; right:0; height:170px; display:grid; place-items:center; font-size:13px; color:var(--faint); text-align:center; padding:0 20px; }
.md-chart-foot{ display:flex; gap:8px 24px; flex-wrap:wrap; font-size:12.5px; color:var(--muted); }
.md-chart-foot b{ color:var(--text); font-variant-numeric:tabular-nums; }

.md-cols{ display:grid; grid-template-columns:minmax(0, 1.55fr) minmax(0, 1fr); gap:16px; align-items:start; }
.md-col{ display:grid; gap:16px; }
.md-block{ display:grid; gap:12px; margin:0; }
.md-block-head{ display:flex; align-items:baseline; gap:10px; }
.md-block-head h2{ margin:0; }
.md-block-head .muted{ font-size:12px; margin-left:auto; }

.md-disk{ border:1px solid var(--line); border-radius:12px; padding:14px; display:grid; gap:12px; }
.md-disk-top{ display:flex; gap:14px; align-items:center; }
.md-health{ flex:none; width:104px; min-height:64px; border-radius:10px; border:2px solid; display:grid; place-items:center; align-content:center; gap:2px; text-align:center; }
.md-health .st{ font-weight:800; font-size:15px; }
.md-health .pc{ font-weight:800; font-size:19px; font-variant-numeric:tabular-nums; }
.md-health.ok{ color:#157a4b; background:var(--good-soft); border-color:color-mix(in srgb, var(--good) 55%, white); }
.md-health.warn{ color:var(--warn); background:var(--warn-soft); border-color:color-mix(in srgb, var(--warn) 55%, white); }
.md-health.bad{ color:var(--crit); background:var(--crit-s); border-color:color-mix(in srgb, var(--crit) 55%, white); }
.md-health.na{ color:var(--faint); background:var(--card2); border-color:var(--line2); }
.md-disk-id{ display:grid; gap:3px; min-width:0; }
.md-disk-id b{ font-size:15px; }
.md-disk-id span{ font-size:12.5px; color:var(--muted); }
.md-disk-id .why{ color:var(--warn); }
.md-disk-stats{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:8px; }
.md-disk-stats div{ background:var(--card2); border-radius:8px; padding:8px 10px; display:grid; gap:2px; }
.md-disk-stats span{ font-size:11px; color:var(--faint); }
.md-disk-stats b{ font-size:14px; font-variant-numeric:tabular-nums; }
.md-disk-stats b.warn{ color:var(--warn); }
.md-parts{ display:grid; gap:6px; }
.md-part{ display:grid; grid-template-columns:minmax(150px, 1.2fr) minmax(80px, 1fr) auto; gap:12px; align-items:center; font-size:13px; }
.md-part .nm b{ display:inline-block; min-width:26px; }
.md-part .nm span{ display:block; font-size:11.5px; color:var(--faint); }
.md-part .sz{ font-size:12px; color:var(--muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
.md-part.aux{ opacity:.72; }
.md-part .bar{ margin:0; }
.md-link{ justify-self:start; border:0; background:none; padding:0; font:inherit; font-size:12.5px; font-weight:600; color:var(--accent-2); cursor:pointer; }
.md-link:hover{ text-decoration:underline; }
.md-smart{ overflow-x:auto; border:1px solid var(--line); border-radius:8px; }
.md-smart table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.md-smart th, .md-smart td{ padding:6px 10px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
.md-smart th{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--faint); background:var(--card2); }
.md-smart .n{ text-align:right; font-variant-numeric:tabular-nums; }
.md-smart tr.warn td{ background:var(--warn-soft); }
.md-smart tr.bad td{ background:var(--crit-s); color:var(--crit); }
.md-smart tbody tr:last-child td{ border-bottom:0; }

.md-sec{ display:grid; gap:12px; }
.md-sec .it{ display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; }
.md-sec .it div{ display:grid; gap:1px; font-size:13px; }
.md-sec .it span{ color:var(--muted); font-size:12.5px; }
.md-dl{ display:grid; grid-template-columns:118px 1fr; gap:8px 12px; font-size:13px; margin:0; }
.md-dl dt{ color:var(--faint); }
.md-dl dd{ margin:0; word-break:break-word; }
.md-slots{ display:grid; gap:4px; margin-top:6px; }
.md-slots div{ font-size:12.5px; padding:5px 8px; border-radius:6px; background:var(--card2); }
.md-slots .mono{ font-size:11.5px; color:var(--muted); margin-right:6px; }
.md-slots .vazio{ background:none; border:1px dashed var(--line2); color:var(--faint); }
.md-coletas{ display:grid; gap:6px; font-size:13px; }
.md-coletas div{ display:flex; justify-content:space-between; gap:10px; }

@media (max-width:1100px){ .md-cols{ grid-template-columns:1fr; } .md-kpis{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:560px){ .md-kpis{ grid-template-columns:1fr; } .md-part{ grid-template-columns:1fr; } .md-legend{ margin-left:0; } }

/* ---------- Inventário: programas e serviços, antivírus, licenças (Fase 2) ---------- */
.inv-lead{ margin:-6px 0 14px; max-width:820px; }
.inv-kpis{ margin-bottom:14px; }
.inv-kpi-btn{ text-align:left; font:inherit; color:inherit; cursor:pointer; }
.inv-kpi-btn:hover{ border-color:var(--line2); }
.inv-kpi-btn.sel{ border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; }
.inv-tbl td{ vertical-align:top; }
.inv-tbl.compact td, .inv-tbl.compact th{ padding-top:6px; padding-bottom:6px; font-size:12.5px; }
.inv-row{ cursor:pointer; }
.inv-row:hover td{ background:var(--card2); }
.inv-chev{ color:var(--faint); width:24px; text-align:center; }
.inv-pill{ margin-left:6px; font-size:10.5px; padding:1px 7px; }
.inv-sub{ display:grid; gap:6px; padding:4px 2px 6px 14px; border-left:2px solid var(--accent); }
.inv-sub > div{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; font-size:13px; }
.inv-path{ font-size:11.5px; max-width:520px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.inv-prod{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:14px; }
.inv-prod .pill b{ margin-left:4px; }
.inv-av{ display:grid; gap:4px; }
.inv-av > div{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; }
.inv-av .muted{ font-size:12px; }
.inv-foot{ font-size:12px; margin:8px 0 0; }
.md-block-head .md-seg{ margin-left:auto; }
.md-seg .inv-n{ margin-left:4px; color:var(--faint); font-weight:500; }
.inv-search{ display:flex; align-items:center; gap:8px; background:var(--card2); border:1px solid var(--line2); border-radius:10px; padding:7px 12px; margin:12px 0 8px; flex-wrap:wrap; }
.inv-search input[type=text], .inv-search input:not([type]){ border:0; background:transparent; outline:none; font:inherit; flex:1; min-width:160px; color:var(--ink); }
.inv-search .ico{ width:16px; height:16px; color:var(--faint); flex:none; fill:none; stroke:currentColor; stroke-width:1.8; }
.inv-check{ display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--muted); white-space:nowrap; }
.inv-scroll{ max-height:420px; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.inv-scroll thead th{ position:sticky; top:0; background:var(--card); z-index:1; }
.inv-mini{ font-size:11px; }
@media (max-width:760px){ .inv-path{ max-width:220px; } .md-block-head{ flex-wrap:wrap; } }

/* ---------- Fase 3: ações remotas (Windows Update), credencial da máquina, códigos ---------- */
.md-acao-btn{ margin-top:8px; width:100%; }
.md-acao-msg{ font-size:12.5px; margin:8px 0 0; }
.md-cmd{ border-top:1px solid var(--line); padding:8px 0 0; margin-top:8px; font-size:12.5px; display:grid; gap:3px; }
.md-cmd .pill{ justify-self:start; }
.md-barra{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; margin:2px 0; }
.md-barra b{ font-size:11.5px; color:var(--muted); min-width:32px; text-align:right; }
.prog-nome{ display:inline-flex; align-items:center; gap:8px; }
.prog-ico{ width:18px; height:18px; flex:none; border-radius:4px; object-fit:contain; }
.prog-ini{ display:inline-grid; place-items:center; background:var(--surface-3); color:var(--muted); font-size:10.5px; font-weight:700; }
/* Fase 4.3: PowerShell remoto */
.md-ps{ border-top:1px solid var(--line); margin-top:12px; padding-top:10px; display:grid; gap:8px; }
.md-ps-script{ width:100%; min-height:96px; resize:vertical; font-family:ui-monospace,Consolas,monospace; font-size:12px; line-height:1.45; }
.md-ps-opcoes{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; }
.md-ps-tempo{ width:auto; margin-left:auto; }
.md-ps-ajuda{ font-size:11.5px; margin:0; }
.md-ps-det summary{ cursor:pointer; color:var(--muted); font-size:12px; }
.md-ps-pre{ margin:6px 0 0; padding:8px 10px; border-radius:8px; background:var(--surface-2); border:1px solid var(--line); font-family:ui-monospace,Consolas,monospace;
  font-size:11.5px; line-height:1.45; white-space:pre-wrap; word-break:break-word; max-height:320px; overflow:auto; }
.md-ps-saida{ background:var(--surface-3); }
.inv-det{ font-size:12px; margin-top:4px; }
.inv-det summary{ cursor:pointer; color:var(--muted); }
.inv-det .crit{ color:var(--crit); }
.code-pill{ display:inline-block; background:var(--card2); border:1px solid var(--line2); border-radius:8px; padding:3px 10px; font-weight:700; letter-spacing:.06em; }
.inv-cmd{ font-size:12px; }
.btn-danger{ background:var(--crit); color:#fff; border-color:var(--crit); }
.alert-warn { background: var(--warn-soft, rgba(230,160,40,.12)); color: var(--warn); border: 1px solid rgba(230,160,40,.35); }

.lg.tcpu{ background:#d6453d; }
.live-chart .ln.tcpu{ stroke:#d6453d; stroke-width:1.6; }

/* ---------- Login com aprovação pelo celular + Segurança da conta ---------- */
.ap-wait{ text-align:center; display:grid; gap:10px; justify-items:center; padding:6px 0 14px; }
.ap-spinner{ width:38px; height:38px; border-radius:50%; border:3px solid var(--border-soft, var(--line)); border-top-color:var(--accent); animation:ap-gira 1s linear infinite; }
@keyframes ap-gira{ to{ transform:rotate(360deg); } }
.ap-reserva{ margin-top:14px; border-top:1px solid var(--border-soft, var(--line)); padding-top:12px; }
.ap-reserva summary{ cursor:pointer; color:var(--muted); font-size:13px; margin-bottom:10px; }
.ap-codes{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:6px; margin:10px 0; }
.ap-codes span{ background:var(--card2); border:1px solid var(--line2); border-radius:8px; padding:6px 10px; text-align:center; letter-spacing:.05em; }

.ap-numero{ font-size:44px; font-weight:800; letter-spacing:.08em; color:var(--accent); line-height:1.1; }
/* Confiar neste navegador (tela de aprovação do login) */
.ap-confiar{ margin-top:14px; }
.ap-check{ display:flex; align-items:flex-start; gap:10px; width:100%; background:none; border:0; padding:6px 0; color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.ap-check .box{ flex:0 0 18px; height:18px; margin-top:1px; border:1.5px solid var(--muted); border-radius:4px; display:grid; place-items:center; font-size:12px; font-weight:800; color:#fff; }
.ap-check.on .box{ background:var(--accent); border-color:var(--accent); }
.ap-check small{ display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.ap-check:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }
.tb-list{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.tb-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; border:1px solid var(--border-soft, var(--line)); border-radius:8px; }
@media (max-width:600px){ .tb-row{ flex-direction:column; align-items:flex-start; } }
/* Fase 4.2 — instalar / desinstalar programa */
.md-acao-inst{ display:flex; align-items:flex-end; gap:8px; margin-top:12px; flex-wrap:wrap; }
.md-acao-inst .field{ flex:1 1 180px; margin:0; }
.md-desinst{ border:1px solid var(--crit, #E0506E); border-radius:8px; padding:10px 12px; margin:6px 0 10px; font-size:13px; }
.inv-acao{ text-align:right; white-space:nowrap; }
.btn-xs{ padding:2px 8px; font-size:12px; min-height:0; }
.inv-inst{ margin-bottom:14px; }
.inv-inst-maq{ display:flex; flex-wrap:wrap; gap:6px 16px; margin:8px 0; max-height:180px; overflow:auto; }
.inv-recentes{ margin-top:12px; }
.md-desinst-linha{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:4px 0 8px; margin-bottom:6px; border-bottom:1px solid var(--line); }

/* ---- Avisos de comando (AvisosComandos.razor): canto inferior direito, somem sozinhos ---- */
.avisos { position: fixed; right: 20px; bottom: 20px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; max-width: min(380px, calc(100vw - 32px)); }
.aviso { display: flex; gap: 12px; align-items: flex-start; text-align: left; width: 100%; padding: 12px 14px; border-radius: var(--radius);
  background: var(--surface); color: var(--text); border: 1px solid var(--border); border-left: 4px solid var(--good);
  box-shadow: 0 10px 30px rgba(40, 25, 90, .18); font: inherit; cursor: pointer; animation: aviso-entra .3s ease-out; transition: opacity .35s, transform .35s; }
.aviso.erro { border-left-color: var(--crit); }
.aviso.saindo { opacity: 0; transform: translateX(24px); }
.aviso-ic { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-weight: 700;
  background: var(--good-soft); color: var(--good); }
.aviso.erro .aviso-ic { background: var(--crit-soft); color: var(--crit); }
.aviso-tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 13.5px; }
.aviso-tx b { font-weight: 600; overflow-wrap: anywhere; }
.aviso-tx span { color: var(--muted); overflow-wrap: anywhere; }
@keyframes aviso-entra { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .aviso { animation: none; transition: none; } }

/* ---------- Mapa de disco (detalhe do ativo) ---------- */
.dm-drive { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.dm-drive-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 8px; }
.dm-drive-head b { font-size: 15px; }
.dm-drive-head span { color: var(--muted); font-size: 12.5px; }
.dm-drive-head .why { color: var(--warn); font-size: 11.5px; }
.dm-folders { margin-top: 10px; display: flex; flex-direction: column; gap: 3px; }
.dm-folder { display: grid; grid-template-columns: minmax(90px, 1.4fr) 2fr auto; align-items: center; gap: 10px; font-size: 13px; padding: 2px 0; }
.dm-folder .dm-nm { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dm-folder .dm-track { height: 7px; background: var(--surface-3); border-radius: 999px; overflow: hidden; }
.dm-folder .dm-fill { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.dm-folder .dm-gb { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; min-width: 56px; }
@media (max-width: 640px) { .dm-folder { grid-template-columns: 1fr auto; } .dm-folder .dm-track { display: none; } }
