/* css/infra.css — página Infraestrutura RPA (carrega antes de shell.css) */
.infra-head { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.infra-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.infra-status { font-size:12px; color:var(--muted); padding:4px 10px; border:1px solid var(--line); border-radius:999px; background:var(--panel); }
.infra-status:empty { display:none; }
.infra-status.ok { color:var(--ext); border-color:color-mix(in srgb, var(--ext) 45%, var(--line)); }
.infra-status.dirty { color:var(--warn); border-color:color-mix(in srgb, var(--warn) 55%, var(--line)); }
.infra-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.infra-empty { background:var(--panel); border:1px dashed var(--line); border-radius:8px; padding:32px 20px; text-align:center; color:var(--muted); }
.infra-empty p { margin:0 0 14px; }
.infra-aviso { display:flex; justify-content:space-between; gap:12px; background:var(--warn-bg); border:1px solid var(--warn-border); color:var(--ink); border-radius:8px; padding:10px 14px; margin-bottom:14px; font-size:13px; }
.infra-aviso ul { margin:6px 0 0; padding-left:18px; max-height:140px; overflow:auto; }
.infra-scroll { overflow-x:auto; }
.infra-table { width:100%; border-collapse:collapse; font-size:13px; }
.infra-table th { text-align:left; font-size:11.5px; font-weight:600; color:var(--muted); padding:8px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
.infra-table td { padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
.infra-table .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.infra-click { cursor:pointer; }
.infra-click:hover td { background:var(--soft); }
.infra-detrow td { background:var(--soft); }
.infra-det { padding:4px 0; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.infra-sub { font-size:11px; color:var(--muted); }
.infra-top { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); }
.infra-pct { margin-left:8px; font-variant-numeric:tabular-nums; font-weight:600; }
.infra-bar { display:inline-block; vertical-align:middle; width:90px; height:8px; border-radius:4px; background:var(--chip); overflow:hidden; }
.infra-bar i { display:block; height:100%; border-radius:4px; background:var(--ext); }
.infra-bar.atencao i { background:var(--warn); }
.infra-bar.critica i { background:var(--inc-col); }
.infra-badge { display:inline-block; padding:2px 8px; border-radius:999px; font-size:11.5px; font-weight:600; margin-left:4px; white-space:nowrap; }
.infra-badge.disponivel { background:color-mix(in srgb, var(--ext) 16%, transparent); color:var(--ext); }
.infra-badge.atencao { background:color-mix(in srgb, var(--warn) 18%, transparent); color:var(--warn); }
.infra-badge.critica { background:color-mix(in srgb, var(--inc-col) 18%, transparent); color:var(--inc-col); }
.infra-chip { display:inline-block; padding:1px 7px; margin:1px 3px 1px 0; border-radius:4px; background:var(--chip); font-size:11.5px; }
.infra-chips { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.infra-dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; vertical-align:middle; }
.infra-mini { border:1px solid var(--line); background:var(--panel); color:var(--ink); padding:2px 9px; border-radius:5px; font-size:11.5px; cursor:pointer; }
.infra-mini:hover { border-color:var(--accent); color:var(--accent); }
.infra-mini.danger:hover { border-color:var(--inc-col); color:var(--inc-col); }
.infra-acoes { display:inline-flex; gap:6px; white-space:nowrap; }
.infra-vmbar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:8px; }
.infra-vmbar label { font-size:13px; color:var(--muted); display:flex; align-items:center; gap:8px; }
.infra-vmbar .btn-primary-action { margin-left:auto; }
.infra-warn-line { color:var(--warn); font-size:12.5px; margin:10px 0 0; }

/* grade semanal */
.infra-grid { min-width:760px; }
.infra-grid-head, .infra-grid-body { display:grid; grid-template-columns:52px repeat(7, minmax(90px, 1fr)); }
.infra-dayhead { padding:6px 4px; text-align:center; border-bottom:1px solid var(--line); border-left:1px solid var(--line); font-size:12.5px; }
.infra-dayhead span { display:block; font-size:11px; color:var(--muted); }
.infra-gutter-h { border-bottom:1px solid var(--line); }
.infra-hour { font-size:10.5px; color:var(--muted); text-align:right; padding-right:6px; box-sizing:border-box; }
.infra-col { 
  position:relative; 
  border-left:1px solid var(--line);
  background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 79px, var(--line) 79px, var(--line) 80px); 
}
.infra-col[onclick] { cursor:cell; }
.infra-bloco { position:absolute; left:2px; right:2px; border-radius:4px; color:#fff; font-size:10.5px; line-height:1.2; padding:2px 4px; overflow:hidden; box-sizing:border-box; box-shadow:0 1px 2px rgba(0,0,0,.35); }
.infra-bloco b { display:block; font-size:11px; }
.infra-bloco span { display:block; opacity:.9; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.infra-bloco.edit { cursor:pointer; }
.infra-bloco.edit:hover { filter:brightness(1.15); }
.infra-bloco.conf { outline:2px solid var(--inc-col); outline-offset:-1px; }

/* modal */
.infra-form { display:flex; flex-direction:column; gap:12px; }
.infra-f label { display:block; font-size:12px; color:var(--muted); margin-bottom:4px; }
.infra-f-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.infra-input { width:100%; box-sizing:border-box; border:1px solid var(--line); background:var(--bg); color:var(--ink); padding:7px 9px; border-radius:6px; font-size:13px; font-family:inherit; }
.infra-input:focus { outline:none; border-color:var(--accent); }
.infra-dias { display:flex; flex-wrap:wrap; gap:6px; }
.infra-dia { display:inline-flex; align-items:center; gap:5px; margin:0 !important; padding:5px 9px; border:1px solid var(--line); border-radius:6px; font-size:12.5px !important; color:var(--ink) !important; cursor:pointer; }
/* Correção para blocos muito curtos (15 minutos) */
.infra-bloco.mini { display:flex; flex-direction:row; align-items:center; gap:4px; padding-top:0; padding-bottom:0; }
.infra-bloco.mini b, .infra-bloco.mini span { display:inline-block; font-size:10.5px; }
/* gráficos da aba evolução */
.infra-c-box { height:270px; display:flex; justify-content:center; align-items:center; }
.infra-c-box svg { max-width:100%; height:auto; }

.infra-delta { display:inline-flex; align-items:center; gap:2px; font-size:11.5px; font-weight:700; padding:1px 6px; border-radius:4px; margin-left:6px; }
.infra-delta.positivo { background:color-mix(in srgb, var(--ext) 15%, transparent); color:var(--ext); }
.infra-delta.negativo { background:color-mix(in srgb, var(--inc-col) 15%, transparent); color:var(--inc-col); }
.infra-delta.neutro { color:var(--muted); font-weight:400; }
/* sugestão de máquinas no cadastro de schedule */
.infra-sug-linha { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; margin-bottom:6px; background:var(--soft); }
.infra-sug-tag { font-size:10.5px; padding:1px 8px; border-radius:999px; border:1px solid var(--line); margin-left:6px; font-weight:600; }
.infra-sug-tag.ok { color:#0E8074; border-color:#0E8074; } .infra-sug-tag.bad { color:#dc2626; border-color:#dc2626; } .infra-sug-tag.off { color:#d97706; border-color:#d97706; }
