.brand-wave{width:39px;height:34px;display:inline-flex;flex:0 0 39px;transform:none}.brand-wave svg{width:100%;height:100%;fill:none;stroke:#26dc71;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.host-group{height:auto;min-height:324px}.host-grid{height:auto;min-height:252px;grid-auto-rows:121px}
@media(max-width:520px){.groups-grid{grid-template-columns:1fr}.host-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.details-panel{padding:13px}.info-list{grid-template-columns:105px 1fr}}

.breadcrumbs{font-size:14px;color:#526780;margin-bottom:26px}.breadcrumbs span{padding:0 12px;color:#94a0ad}.page-head.client-head{height:165px;align-items:flex-start;padding-top:22px}.page-head.client-head .head-copy{min-width:520px}.page-head.client-head .head-summary{margin-top:45px}.page-head.client-head .head-actions{margin-top:0}.updated-label{font-size:14px;color:#526173;white-space:nowrap}.dashboard-page{padding-top:5px}.dashboard-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.dashboard-metric{height:110px;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:22px;padding:18px 25px;box-shadow:var(--shadow)}.dashboard-metric .metric-icon{width:52px;text-align:center;font-size:43px;color:#536174}.dashboard-metric .metric-icon.online,.dashboard-metric strong.online{color:#0aa84f}.dashboard-metric .metric-icon.offline,.dashboard-metric strong.offline{color:#e31d2b}.dashboard-metric .metric-icon.unknown,.dashboard-metric strong.unknown{color:#697586}.dashboard-metric span{color:#435570}.dashboard-metric strong{display:block;font-size:35px;line-height:1.05;margin-top:4px}.availability-panel,.equipment-panel,.client-hosts-panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.availability-panel{height:178px;margin-top:17px;padding:13px 18px}.availability-panel header{display:flex;align-items:center;justify-content:space-between}.availability-panel h2,.equipment-panel h2,.client-hosts-panel h2{font-size:19px;margin:0}.availability-panel header strong{font-size:29px;color:#079b48}.availability-chart{height:115px;display:grid;grid-template-columns:44px 1fr}.axis{display:flex;flex-direction:column;justify-content:space-between;padding:8px 0 18px;color:#52657d;font-size:12px}.plot{position:relative;margin-top:12px;border-left:1px solid #b9c5d0;border-bottom:1px solid #b9c5d0;background:repeating-linear-gradient(to bottom,#fff 0,#fff 36px,#e8edf2 37px)}.plot .area{position:absolute;inset:0 0 0 0;border-top:2px solid #08a84e;background:linear-gradient(#25ba6840,#e7f7ec80);clip-path:polygon(0 4%,7% 2%,16% 5%,25% 3%,34% 6%,44% 2%,54% 5%,64% 3%,74% 5%,84% 2%,92% 5%,100% 3%,100% 100%,0 100%)}.times{position:absolute;left:0;right:0;bottom:-20px;display:flex;justify-content:space-between;color:#53657d;font-size:11px}.equipment-panel{margin-top:16px}.equipment-panel>header{height:66px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between}.equipment-panel header p{margin:4px 0 0;color:#5d6d82;font-size:13px}.equipment-filters{display:flex;gap:16px;padding:0 14px 12px}.equipment-filters .search{flex:1}.equipment-filters select{height:39px;min-width:215px;border:1px solid var(--line);border-radius:5px;padding:0 15px;background:#fff}.equipment-panel th,.equipment-panel td{padding:8px 12px}.equipment-panel tbody tr{height:47px}.name-cell{display:flex;align-items:center;gap:10px}.name-cell .host-icon{width:29px;height:29px;margin:0}.name-cell button{border:0;background:transparent;text-align:left;padding:0}.name-cell button b,.name-cell button small{display:block}.name-cell button small{color:#66768a}.openweb{display:inline-flex;border:1px solid #11a65a;border-radius:6px;padding:8px 12px;color:#09203a;text-decoration:none;white-space:nowrap}.table-footer{height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#607086;font-size:13px}.table-footer div{word-spacing:12px}.table-footer b{background:#079c4c;color:#fff;padding:7px 10px;border-radius:4px}

.client-detail-page{padding-top:0}.client-filterbar{height:84px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px 16px;display:flex;align-items:center;gap:12px;margin-bottom:20px}.client-filterbar .search{flex:1}.client-filterbar select{height:45px;min-width:220px;border:1px solid var(--line);border-radius:7px;padding:0 18px;background:#fff}.client-host-actions{display:flex;align-items:center;gap:7px;margin-left:auto}.client-host-actions span{color:#607086;font-size:12px;white-space:nowrap}.client-host-actions .btn.compact{height:36px;padding:0 11px;border-radius:6px;font-size:13px}.btn.danger{border-color:#e5a8aa;color:#bb151b;background:#fff}.btn.danger.solid{border-color:#c91017;color:#fff;background:#c91017}.btn:disabled{cursor:not-allowed;opacity:.45}.client-hosts-panel>header{height:59px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line)}.client-hosts-panel header small{color:#607086}.client-hosts-panel th,.client-hosts-panel td{padding:12px 14px}.client-hosts-panel .select-column{width:42px;min-width:42px;padding-left:16px;padding-right:6px;text-align:center}.client-hosts-panel input[type=checkbox]{width:17px;height:17px;margin:0;accent-color:var(--green);vertical-align:middle}.client-hosts-panel tr.selected-row td{background:#effaf3}.client-table-note{min-height:43px;padding:10px 18px;color:#77879b;font-size:13px;display:flex;justify-content:space-between;border-bottom:1px solid var(--line)}.client-table-note span{display:flex;gap:14px;align-items:center}.selected-host-strip{height:51px;background:#fff;border:1px solid var(--line);border-radius:8px;margin-top:15px;display:flex;align-items:center;gap:16px;padding:0 20px}.selected-host-strip span{color:#637389}.confirm-dialog h2{margin-top:0}.confirm-dialog p{color:var(--muted);line-height:1.5}.confirm-dialog .confirm-note{font-size:13px;background:var(--soft-gray);padding:10px 12px;border-radius:7px}

@media(max-width:1300px){.dashboard-metrics{grid-template-columns:repeat(3,1fr)}.dashboard-metric{height:96px}.equipment-filters{flex-wrap:wrap}.equipment-filters select{flex:1}.page-head.client-head .head-copy{min-width:390px}.client-filterbar{height:auto;flex-wrap:wrap}.client-filterbar select{flex:1;min-width:180px}.client-host-actions{margin-left:0}}
@media(max-width:760px){.page-head.client-head{height:auto}.page-head.client-head .head-copy{min-width:0}.page-head.client-head .head-summary{margin-top:0}.breadcrumbs{margin-bottom:12px}.dashboard-metrics{grid-template-columns:repeat(2,1fr)}.dashboard-metric{padding:13px;gap:10px}.dashboard-metric .metric-icon{font-size:30px;width:36px}.equipment-filters select{min-width:calc(50% - 8px)}.client-host-actions{width:100%;justify-content:flex-end}.client-table-note{display:block}.selected-host-strip{height:auto;min-height:51px;flex-wrap:wrap;padding:12px}}

/* Hosts: 50 cards compactos, justificados e alinhados no desktop. */
body:has(#hosts:not([hidden])){height:100dvh;overflow:hidden}
.shell:has(#hosts:not([hidden])){height:100dvh;min-height:0;overflow:hidden}
.shell:has(#hosts:not([hidden])) main{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.shell:has(#hosts:not([hidden])) .page-head{flex:0 0 auto}
.shell:has(#hosts:not([hidden])) .sidebar{height:100dvh;overflow:hidden}
.shell:has(#hosts:not([hidden])) .head-copy{min-width:360px}
.shell:has(#hosts:not([hidden])) .head-summary>div{width:clamp(110px,7.2vw,128px);height:72px;border-radius:8px}
#hosts.page{height:auto;min-height:0;overflow:hidden;display:flex;flex:1 1 auto;flex-direction:column;padding-top:10px;padding-bottom:6px}
#hosts>.filterbar{flex:0 0 auto;margin-bottom:10px}
#hosts>.filterbar .search{flex:1 1 320px}
#hosts>.filterbar select{flex:1 1 190px;min-width:150px}
#hosts .host-pagination-top{flex:0 0 auto;margin-left:auto}
#hosts>.hosts-layout{flex:1 1 auto;min-height:0;display:grid}
#hosts .hosts-content{height:100%;min-height:0}
#hosts .groups-grid{height:100%;min-height:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-flow:row;gap:6px;align-content:stretch;justify-content:stretch;place-items:center}
#hosts .host-card{width:min(100%,calc((100dvh - 222px)/5));height:auto;min-height:0;aspect-ratio:1/1;padding:5px 4px 4px;border-radius:7px;justify-self:center;align-self:center}
#hosts .host-card .status-dot{width:9px;height:9px;right:6px;top:6px;margin:0}
#hosts .host-icon{width:clamp(26px,2.35vw,40px);height:clamp(24px,2.15vw,36px);margin-bottom:4px}
#hosts .host-card b{font-size:clamp(11px,.78vw,13px);line-height:1.15}
#hosts .host-card small{font-size:clamp(10px,.7vw,12px);line-height:1.1;margin-top:2px}
#hosts .host-empty{grid-column:1/-1;grid-row:1/-1}
#hosts .details-panel{height:100%;min-height:0}
#hosts .table-panel{height:100%;overflow:auto}
#hosts .host-pagination button{width:36px;height:36px}
#hosts .hosts-layout.details-open .groups-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr))}

@media(max-width:1450px) and (min-width:1121px){#hosts .filterbar .search{width:260px}#hosts .filterbar select{min-width:120px;flex:1}#hosts .view-toggle button{min-width:90px}}
@media(max-width:1300px) and (min-width:1121px){#hosts .groups-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr))}#hosts .hosts-layout.details-open .groups-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr))}}

@media(max-width:1120px){.shell:has(#hosts:not([hidden])) .head-copy{min-width:260px}#hosts.page{height:auto;min-height:0;overflow:hidden;display:flex}#hosts>.hosts-layout{display:grid}#hosts .groups-grid,#hosts .hosts-layout.details-open .groups-grid{height:100%;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-rows:unset}#hosts .host-card{min-height:0}#hosts .hosts-layout.details-open{grid-template-columns:1fr}#hosts .hosts-layout.details-open .hosts-content{display:none}}
@media(max-width:760px){#hosts .groups-grid,#hosts .hosts-layout.details-open .groups-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:minmax(92px,1fr);overflow:auto}#hosts .host-card{width:100%;height:auto;min-height:92px}}
@media(max-width:520px){#hosts .groups-grid,#hosts .hosts-layout.details-open .groups-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(104px,1fr)}#hosts .host-card{min-height:104px}}
.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-metric .metric-icon.degraded,.dashboard-metric strong.degraded{color:#9b6d00}@media(max-width:1300px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
#hosts .details-panel{position:fixed;z-index:100;left:50%;top:50%;transform:translate(-50%,-50%);width:min(920px,calc(100vw - 32px));height:auto;min-height:0;max-height:calc(100dvh - 32px);padding:22px 24px;overflow:hidden;box-shadow:0 24px 70px #071b3150}#hosts .details-head{min-height:56px;cursor:move;touch-action:none;user-select:none}#hosts .details-head p{margin:4px 0 0;color:var(--muted);font-size:14px}#hosts .details-panel.dragging .details-head{cursor:grabbing}.details-head-actions{display:flex;align-items:center;gap:8px}.details-close{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:24px;line-height:1}.details-close:hover{background:var(--soft-gray)}#hosts .details-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:0}@media(max-width:520px){#hosts .details-panel{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:12px}.host-detail-grid{gap:6px;margin:10px 0}.host-detail-grid>div{min-height:54px;padding:7px}.host-detail-grid span{font-size:10px}.host-detail-grid strong{font-size:12px}.state-pill{padding:8px}.details-head-actions{gap:4px}}
.client-hosts-panel>header{height:50px}.client-hosts-panel tbody tr{cursor:pointer}.client-hosts-panel tbody tr:hover td{background:#f6fbf8}.client-hosts-panel tbody tr.selected-row td{background:#effaf3}.client-hosts-panel .openweb{cursor:pointer}.client-pagination{display:flex;align-items:center;gap:8px}.client-pagination button{width:34px;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#516176;font-size:20px}.client-pagination button:not(:disabled):hover{border-color:var(--green);color:var(--green)}.client-pagination button:disabled{cursor:not-allowed;opacity:.38}.client-pagination b{min-width:52px;text-align:center;color:#21324a;font-size:13px}

/* Layout compacto e cards maiores conforme as referências aprovadas. */
.shell:has(#hosts:not([hidden])) .page-head .head-actions,.shell:has(#clients:not([hidden])) .page-head .head-actions{display:none}
#hosts>.filterbar{border-radius:0;padding-inline:12px;gap:10px}
#hosts>.filterbar .search{max-width:540px}
#hosts>.filterbar select{min-width:150px}
#hosts .local-refresh,#hosts .host-view-toggle,#hosts .local-add-host{height:45px;flex:0 0 auto;padding-inline:18px}
#hosts .host-view-toggle{min-width:76px;font-weight:700}
#hosts .host-view-toggle.active{border-color:#079c4c;background:#e8f8ee;color:#087d3f}
#hosts .local-add-host{min-width:128px}
#hosts .groups-grid{place-items:center;padding:10px 12px 12px;gap:10px;box-sizing:border-box}
#hosts .host-card{width:calc(100% - 4px);height:calc(100% - 4px);max-width:none;aspect-ratio:auto;padding:8px 6px;border-radius:7px}
#hosts .host-times{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-top:5px}
#hosts .host-times span{min-width:0;padding-top:4px;border-top:1px solid #081a3417;display:flex;flex-direction:column;align-items:center;line-height:1.05}
#hosts .host-times em{font-size:clamp(7px,.5vw,9px);font-style:normal;color:#607187}
#hosts .host-times strong{max-width:100%;margin-top:2px;font-size:clamp(8px,.58vw,10px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#hosts .groups-grid.all-view{grid-template-columns:repeat(var(--all-columns,15),minmax(0,1fr));grid-template-rows:repeat(var(--all-rows,10),minmax(0,1fr));gap:4px;padding:6px;place-items:stretch}
#hosts .groups-grid.all-view .host-card{width:100%;height:100%;padding:2px;border-radius:5px;justify-self:stretch;align-self:stretch}
#hosts .groups-grid.all-view .host-icon{width:clamp(15px,1.15vw,22px);height:clamp(14px,1.05vw,20px);margin-bottom:2px}
#hosts .groups-grid.all-view .host-card b{font-size:clamp(8px,.55vw,10px);line-height:1.05}
#hosts .groups-grid.all-view .host-card small{display:none}
#hosts .groups-grid.all-view .host-times{display:none}
#hosts .groups-grid.all-view .host-card .status-dot{width:6px;height:6px;right:3px;top:3px}
.shell:has(#clients:not([hidden])){height:100dvh;min-height:0;overflow:hidden}
.shell:has(#clients:not([hidden])) main{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.shell:has(#clients:not([hidden])) .page-head{flex:0 0 auto}
.client-detail-page{flex:1 1 auto;min-height:0;display:flex;padding:0 16px 12px}
.client-hosts-panel{flex:1 1 auto;min-height:0;width:100%;display:flex;flex-direction:column;border-radius:0}
.client-hosts-panel>.table-wrap{flex:1 1 auto;min-height:0;overflow:auto}
.client-hosts-panel>header.client-panel-toolbar{height:52px;min-height:52px;padding:6px 10px;gap:8px;justify-content:flex-start}
.client-panel-toolbar h2{flex:0 0 auto;white-space:nowrap;margin-right:6px;font-size:16px}
.client-panel-toolbar #client-selector{flex:0 1 245px;min-width:185px;max-width:280px;border:1px solid #d7e0e8;font-weight:700;color:#10243d;background:#f8fbfd;font-size:12px}
.client-panel-toolbar .search{height:38px;flex:1 1 290px;min-width:180px;border:0}
.client-panel-toolbar .search span{font-size:22px}
.client-panel-toolbar select{height:38px;min-width:135px;max-width:170px;border:0;background:#fff;padding:0 9px}
.client-panel-toolbar .client-host-actions{margin-left:0;flex:0 0 auto}
.client-panel-toolbar .client-pagination{flex:0 0 auto;gap:4px}
.client-panel-toolbar .client-pagination button{width:32px;height:32px}
.client-panel-toolbar .local-refresh{height:38px;min-width:108px;padding:0 12px;flex:0 0 auto}
.client-panel-toolbar .local-add-host{height:38px;min-width:102px;padding:0 13px;flex:0 0 auto}
@media(min-width:761px){.client-hosts-panel thead tr,.client-hosts-panel tbody tr{height:32px}.client-hosts-panel th,.client-hosts-panel td{height:32px;padding:3px 12px;box-sizing:border-box;font-size:12px;line-height:1.15}.client-hosts-panel .openweb{height:26px;padding:0 9px;font-size:12px}}
.client-hosts-panel th{font-size:11px}.client-host-name{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-host-name small{color:#748292;font-size:10px}
.clear-web-login{display:flex;align-items:center;gap:8px;font-size:13px;color:#53657d}.clear-web-login input{width:16px;height:16px;margin:0}
.client-ip-cell>span{vertical-align:middle}.client-ip-cell .edit-ip{margin-left:6px;padding:1px 4px;border:0;border-radius:4px;background:transparent;color:#15824a;font-size:14px;cursor:pointer;vertical-align:middle}.client-ip-cell .edit-ip:hover,.client-ip-cell .edit-ip:focus-visible{background:#e6f7eb;outline:1px solid #15824a}.ip-edit-dialog{width:min(420px,calc(100% - 30px))}.ip-edit-dialog h2{margin:0 0 5px}.ip-edit-dialog p{margin:0;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:1300px){.client-panel-toolbar{flex-wrap:wrap}.client-hosts-panel>header.client-panel-toolbar{height:auto;min-height:98px}.client-panel-toolbar h2{width:100%}.client-panel-toolbar .client-host-actions{margin-left:auto}}
@media(max-width:1450px) and (min-width:761px){.client-panel-toolbar{flex-wrap:wrap}.client-hosts-panel>header.client-panel-toolbar{height:auto;min-height:98px}.client-panel-toolbar h2{width:100%}.client-panel-toolbar .client-host-actions{margin-left:auto}}
@media(max-width:760px){.shell:has(#clients:not([hidden])){height:auto;overflow:auto}.shell:has(#clients:not([hidden])) main{height:auto;overflow:visible}.client-detail-page{display:block;padding:10px}.client-hosts-panel>header.client-panel-toolbar{min-height:0}.client-panel-toolbar #client-selector{flex:1;max-width:none;border:1px solid var(--line)}.client-panel-toolbar .search{flex-basis:100%;border:1px solid var(--line)}.client-panel-toolbar select{flex:1;max-width:none;border:1px solid var(--line)}.client-panel-toolbar .client-host-actions{width:100%}.client-panel-toolbar .local-add-host{margin-left:auto}#hosts>.filterbar{flex-wrap:wrap}#hosts>.filterbar .search{max-width:none}#hosts .local-refresh,#hosts .host-view-toggle,#hosts .local-add-host{flex:1}#hosts .groups-grid{padding:8px;gap:8px}#hosts .groups-grid.all-view{overflow:hidden;grid-auto-rows:unset}}
