:root{--bg:#030c17;--panel:#091a2b;--panel2:#061525;--line:#19364e;--text:#f4f8ff;--muted:#8ba9c4;--blue:#3794ff;--green:#20d9a0;--yellow:#ffb43c;--red:#ff4968;--gray:#7892aa}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}button,input{font:inherit}.topbar{height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);background:#04111e}.brand{display:flex;align-items:center;gap:12px}.brand>span:last-child{display:flex;gap:10px;align-items:baseline}.brand b{font-size:25px}.brand em{font-style:normal;color:#31c9ef;font-weight:900;letter-spacing:2px}.logo{width:44px;height:44px;border-radius:12px;background:#2e91f5;padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:4px}.logo i{background:#fff;border-radius:3px}.global-state{min-width:230px;border:1px solid var(--line);border-radius:30px;padding:10px 22px;text-align:center}.global-state i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:10px;background:var(--gray)}.global-state.ok{border-color:#087d64;color:var(--green)}.global-state.ok i{background:var(--green);box-shadow:0 0 12px var(--green)}.global-state.warning{color:var(--yellow);border-color:#8a5c16}.global-state.warning i{background:var(--yellow)}.global-state.problem{color:var(--red);border-color:#9d1831;animation:pulseText 1s infinite}.global-state.problem i{background:var(--red);box-shadow:0 0 15px var(--red)}.clock{text-align:right}.clock b{display:block;font-size:28px}.clock span{color:var(--muted);font-size:12px;letter-spacing:1px}.summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:10px 20px}.sum{height:70px;border:1px solid var(--line);background:var(--panel2);border-radius:12px;display:grid;grid-template-columns:8px 52px auto;align-items:center;padding:10px 15px}.sum i{height:40px;border-radius:5px;background:var(--blue)}.sum b{font-size:27px;text-align:center}.sum span{font-size:13px;font-weight:800}.sum.ok i{background:var(--green)}.sum.warning i{background:var(--yellow)}.sum.problem i{background:var(--red)}.sum.unknown i{background:var(--gray)}.incident{margin:0 20px 10px;background:linear-gradient(90deg,#3e0712,#1b0710);border:1px solid var(--red);border-radius:10px;min-height:48px;display:flex;align-items:center;gap:20px;padding:8px 16px;color:#fff;animation:incidentPulse 1.2s infinite}.incident strong{font-size:18px;color:var(--red)}.incident button{margin-left:auto;background:transparent;border:1px solid var(--red);color:#fff;border-radius:20px;padding:7px 16px;font-weight:800}.hidden{display:none!important}.toolbar{display:flex;gap:12px;align-items:center;margin:0 20px 12px;padding:8px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:12px}.filters,.view-switch{display:flex;gap:6px}.toolbar button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:18px;padding:7px 13px;text-transform:uppercase;font-size:11px;font-weight:900}.toolbar button.active{color:#fff;border-color:var(--blue);background:#0d2b4b}.search{margin-left:auto;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:5px 10px;min-width:280px}.search input{width:100%;border:0;outline:0;color:#fff;background:transparent}.groups{padding:0 5vw 58px}.company{border:1px solid var(--line);border-radius:12px;background:var(--panel2);margin:12px 0;overflow:hidden;transition:transform .25s}.company.PROBLEM{border-color:#9f2037}.company-head{width:100%;height:58px;border:0;background:transparent;color:#fff;display:grid;grid-template-columns:22px 8px minmax(180px,1fr) repeat(4,90px) 92px;gap:10px;align-items:center;padding:0 14px;text-align:left}.chev{font-size:24px;transition:transform .2s}.company.open .chev{transform:rotate(90deg)}.company-mark{height:30px;border-radius:5px;background:var(--green);box-shadow:0 0 12px color-mix(in srgb,var(--green),transparent 30%)}.company.PROBLEM .company-mark{background:var(--red);animation:criticalBlink .9s infinite}.company.WARNING .company-mark{background:var(--yellow)}.company.UNKNOWN .company-mark{background:var(--gray)}.company-name b{display:block;font-size:19px}.company-name small{color:var(--muted);font-size:11px;text-transform:uppercase}.company-count{text-align:center}.company-count b{display:block;font-size:19px}.company-count small{font-size:9px;text-transform:uppercase}.company-count.ok b{color:var(--green)}.company-count.warning b{color:var(--yellow)}.company-count.problem b{color:var(--red)}.company-count.unknown b{color:var(--gray)}.company-badge{border:1px solid var(--green);color:var(--green);border-radius:18px;padding:6px 10px;text-align:center;font-size:10px;font-weight:900}.company.PROBLEM .company-badge{border-color:var(--red);color:var(--red);animation:criticalBlink .9s infinite}.company.WARNING .company-badge{border-color:var(--yellow);color:var(--yellow)}.company.UNKNOWN .company-badge{border-color:var(--gray);color:var(--gray)}.company-body{display:none;border-top:1px solid var(--line);padding:10px}.company.open .company-body{display:block}.host-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.host{position:relative;border:1px solid var(--line);border-radius:11px;background:var(--panel);overflow:hidden}.host:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--green)}.host.WARNING:before{background:var(--yellow)}.host.UNKNOWN:before{background:var(--gray)}.host.PROBLEM{border-color:var(--red);box-shadow:0 0 18px rgba(255,73,104,.3)}.host.PROBLEM:before{background:var(--red);animation:criticalBlink .8s infinite}.host>header{height:62px;display:flex;align-items:center;gap:11px;padding:9px 14px 9px 20px;border-bottom:1px solid var(--line)}.host-icon{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;padding:8px;color:#22d3ee}.host-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8}.host h3{margin:0;font-size:19px}.host p{margin:3px 0 0;color:#9ec0df;font-size:12px}.badge{margin-left:auto;border:1px solid var(--green);color:var(--green);border-radius:16px;padding:5px 9px;font-size:10px;font-weight:900}.host.OK .badge{font-size:0;border:0;padding:0;width:11px;height:11px;background:var(--green);border-radius:50%}.host.WARNING .badge{border-color:var(--yellow);color:var(--yellow)}.host.UNKNOWN .badge{border-color:var(--gray);color:var(--gray)}.host.PROBLEM .badge{border-color:var(--red);color:var(--red);animation:criticalBlink .8s infinite}.metrics,.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px}.metric{min-height:64px;border:1px solid #173249;background:#041220;border-radius:8px;padding:8px 10px;position:relative}.metric b{display:block;font-size:24px;line-height:1.05}.metric small{display:block;margin-top:4px;color:#91aec8;font-size:9px;font-weight:900;letter-spacing:1px}.metric em{display:block;color:#8eb2cf;font-size:9px;font-style:normal;margin-top:3px}.metric.OK b{color:var(--green)}.metric.PROBLEM b{color:var(--red)}.bar{position:absolute;left:9px;right:9px;bottom:7px;height:3px;background:#193448;border-radius:3px}.bar i{display:block;height:100%;background:#1dd6bd;border-radius:3px}.host>footer{height:40px;display:flex;align-items:center;padding:0 12px;border-top:1px solid var(--line);font-size:11px}.agent-age{color:var(--green)}.agent-age.late{color:var(--yellow);animation:pulseText 1.4s infinite}.agent-age.offline{color:var(--red);animation:criticalBlink .8s infinite}.host footer button{margin-left:auto;border:0;background:transparent;color:#20cfff;font-size:11px;font-weight:800}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:4px 2px 9px;color:var(--muted);font-size:11px}.pager span{margin-right:auto}.pager button{border:1px solid var(--line);border-radius:6px;background:#07182a;color:#fff;padding:5px 9px}.pager button:disabled{opacity:.35}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:9px;border-bottom:1px solid var(--line);text-align:left}td small{display:block;color:var(--muted)}tr.PROBLEM{background:rgba(255,73,104,.08)}.table-state{padding:4px 7px;border-radius:10px}.table-state.OK{color:var(--green)}.table-state.WARNING{color:var(--yellow)}.table-state.PROBLEM{color:var(--red)}.modal{position:fixed;inset:0;background:rgba(0,5,12,.84);backdrop-filter:blur(7px);z-index:50;display:grid;place-items:center;padding:3vh 4vw}.modal-panel{width:min(78vw,1280px);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#071726}.modal-panel>header{display:flex;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-panel h2{margin:4px 0 0}.modal-panel header button{margin-left:auto;width:42px;height:42px;border:0;border-radius:50%;background:var(--blue);color:#fff;font-size:28px}.modal-body{padding:14px}.services,.checks{margin:10px 12px;padding:12px;border:1px solid var(--line);border-radius:9px}.services span{display:inline-block;border:1px solid var(--green);color:var(--green);border-radius:14px;padding:5px 9px;margin:4px;font-size:11px}.checks>div{display:grid;grid-template-columns:1fr 100px 100px;padding:8px;border-bottom:1px solid var(--line)}.checks em{text-align:right;font-style:normal}.footer{position:fixed;left:0;right:0;bottom:0;height:34px;background:#04111e;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 20px;color:#92acc3;font-size:10px;z-index:10}.footer i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--gray)}.footer i.online{background:var(--green);box-shadow:0 0 8px var(--green)}.footer i.offline{background:var(--red);box-shadow:0 0 8px var(--red)}.empty,.loading{text-align:center;color:var(--muted);padding:50px}@keyframes criticalBlink{0%,100%{opacity:1;filter:brightness(1)}50%{opacity:.4;filter:brightness(1.8)}}@keyframes pulseText{0%,100%{opacity:1}50%{opacity:.55}}@keyframes incidentPulse{0%,100%{box-shadow:0 0 4px rgba(255,73,104,.2)}50%{box-shadow:0 0 25px rgba(255,73,104,.65)}}
@media(min-width:2500px){.host-grid{grid-template-columns:repeat(3,1fr)}.groups{padding-left:3vw;padding-right:3vw}.metric b{font-size:27px}.modal-panel{width:min(84vw,1900px)}}@media(min-width:3400px){.host-grid{grid-template-columns:repeat(4,1fr)}.topbar{height:98px}.brand b{font-size:34px}.host h3{font-size:23px}.metric b{font-size:31px}.modal-panel{width:88vw}}
@media(max-width:1200px){.summary{grid-template-columns:repeat(3,1fr)}.sum:nth-child(n+4){display:none}.host-grid{grid-template-columns:1fr}.company-head{grid-template-columns:20px 7px 1fr repeat(2,70px) 80px}.company-count.warning,.company-count.unknown{display:none}.search{display:none}.modal-panel{width:92vw}}
@media(max-width:700px){.topbar{grid-template-columns:1fr auto;height:64px}.global-state{display:none}.clock b{font-size:20px}.summary{padding:7px;grid-template-columns:repeat(2,1fr)}.sum{height:58px}.sum:nth-child(n+3){display:none}.toolbar{margin:7px;overflow:auto}.view-switch,.search{display:none}.groups{padding:0 7px 44px}.company-head{grid-template-columns:18px 6px 1fr 55px}.company-count,.company-badge{display:none}.metrics,.detail-grid{grid-template-columns:repeat(2,1fr)}.footer span:nth-child(n+3){display:none}}
.mode-tv .toolbar,.mode-tv .summary,.mode-tv .footer{display:none}.mode-tv .topbar{height:86px}.mode-tv .groups{padding:10px 2vw}.mode-tv .host-grid{grid-template-columns:repeat(2,1fr)}.mode-tv .company{margin:8px 0}.mode-tv .company-head{height:66px}.mode-tv .host h3{font-size:24px}.mode-tv .host p{font-size:14px}.mode-tv .metric{min-height:78px}.mode-tv .metric b{font-size:31px}.mode-tv .metric small{font-size:11px}@media(min-width:3000px){.mode-tv .host-grid{grid-template-columns:repeat(3,1fr)}}

/* EduMonitor Wallboard 2.0.1 — refinamento final de leitura */
.sum b{font-size:30px}.sum span{font-size:14px}.company-count b{font-size:23px}.company-count small{font-size:10px}.company-badge{font-size:9px;padding:5px 9px}.metric.ping-metric b{font-size:28px}.metric.smart-metric b{font-size:26px}.metric.smart-metric em{font-size:10px;font-weight:800;color:#a8c7df}.bar{height:4px}.host.PROBLEM .badge,.host.PROBLEM:before{animation:criticalBlink .72s infinite}.host.PROBLEM .badge{box-shadow:0 0 13px rgba(255,73,104,.95)}.host.PROBLEM{box-shadow:0 0 22px rgba(255,73,104,.38)}
@media (min-width:3000px){.sum b{font-size:40px}.sum span{font-size:18px}.company-count b{font-size:31px}.metric.ping-metric b{font-size:38px}.metric.smart-metric b{font-size:34px}}


/* EduMonitor Wallboard 2.0.2 — acabamento e criticidade validada */
.summary .sum{grid-template-columns:8px 58px minmax(0,1fr);align-content:center}
.summary .sum b,.summary .sum span{align-self:center;line-height:1}
.company-count b{font-size:28px;line-height:1}.company-count small{margin-top:4px;display:block;font-size:10px}
.company-badge{font-size:8px;padding:4px 8px;min-width:70px}
.bar{height:5px}
.company.PROBLEM{animation:companyCriticalGlow 1.15s ease-in-out infinite}
.company.PROBLEM .company-head{background:linear-gradient(90deg,rgba(255,73,104,.10),transparent 38%)}
.host.PROBLEM{animation:hostCriticalGlow 1.05s ease-in-out infinite}
.host.PROBLEM .badge,.host.PROBLEM:before,.company.PROBLEM .company-mark,.company.PROBLEM .company-badge{animation:criticalBlink .72s steps(2,end) infinite}
@keyframes companyCriticalGlow{0%,100%{box-shadow:0 0 5px rgba(255,73,104,.22)}50%{box-shadow:0 0 26px rgba(255,73,104,.68)}}
@keyframes hostCriticalGlow{0%,100%{box-shadow:0 0 8px rgba(255,73,104,.30)}50%{box-shadow:0 0 28px rgba(255,73,104,.78)}}
@media(min-width:3000px){.company-count b{font-size:36px}.company-count small{font-size:13px}.company-badge{font-size:11px;min-width:92px}.bar{height:7px}}
