body{margin:0;background:#08090d;color:#f6f7f9}.ops-shell{width:min(1480px,calc(100% - 28px));margin:18px auto 60px}.ops-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px;border:1px solid #30343e;border-radius:24px;background:linear-gradient(120deg,#101218,#24050a)}.ops-header h1{font-size:clamp(30px,4vw,52px);margin:4px 0}.ops-header>div:last-child,.view-head>div:last-child{display:flex;gap:9px;flex-wrap:wrap}.ops-nav{display:flex;overflow:auto;gap:7px;margin:18px 0;padding:8px;background:#111319;border:1px solid #30343e;border-radius:15px}.ops-nav button{white-space:nowrap;border:0;border-radius:10px;padding:12px 16px;background:transparent;color:#aeb4c0;font-weight:800}.ops-nav button.active{background:#ed0016;color:#fff}.ops-panel,.view{padding:22px;border:1px solid #30343e;border-radius:20px;background:#111319}.view-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.view-head h2{margin:0;font-size:28px}.ops-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.ops-kpis article{padding:18px;border:1px solid #333945;border-radius:16px;background:#151820}.ops-kpis span{display:block;color:#9aa1ad;font-size:12px;text-transform:uppercase}.ops-kpis strong{font-size:30px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.item-card{padding:17px;border:1px solid #343945;border-radius:15px;background:#151820;display:grid;gap:8px}.item-card h3,.item-card p{margin:0}.item-card small{color:#a1a8b4}.item-card .meta{display:flex;gap:7px;flex-wrap:wrap}.tag{padding:5px 8px;border-radius:99px;background:#272c36;font-size:12px}.tag.red{background:#4a111a;color:#ff9ba4}.big-search{width:100%;padding:14px;margin-bottom:15px;background:#0a0c10;border:1px solid #343a45;border-radius:12px;color:#fff}.ops-form{width:min(680px,calc(100vw - 24px));padding:24px;background:#12141a;color:#fff;border:1px solid #3b414d;border-radius:20px}.wide-form{width:min(960px,calc(100vw - 24px))}.ops-form header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #30343e;margin-bottom:15px}.ops-form header button{border:0;background:none;color:#fff;font-size:27px}.ops-form label{display:grid;gap:6px;margin:11px 0;font-weight:800}.ops-form input,.ops-form select,.ops-form textarea{padding:12px;background:#090b0f;color:#fff;border:1px solid #3b414d;border-radius:10px}.ops-form footer{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.grid2,.grid3{display:grid;grid-template-columns:repeat(2,1fr);gap:0 12px}.grid3{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.ops-kpis{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr}}@media(max-width:600px){.ops-shell{width:calc(100% - 12px);margin-top:6px}.ops-header,.view-head{align-items:flex-start;flex-direction:column}.cards,.grid2,.grid3{grid-template-columns:1fr}.ops-form footer{display:grid;grid-template-columns:1fr 1fr}}
dialog:has(.ops-form){padding:0;border:0;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);background:transparent;overflow:hidden}dialog:has(.ops-form)::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}dialog .ops-form{box-sizing:border-box;width:min(680px,calc(100vw - 24px));max-width:100%;max-height:calc(100dvh - 24px);margin:0;overflow-y:auto;overflow-x:hidden}dialog .ops-form.wide-form{width:min(960px,calc(100vw - 24px))}dialog .ops-form input,dialog .ops-form select,dialog .ops-form textarea{box-sizing:border-box;width:100%;min-width:0}dialog .ops-form .grid2,dialog .ops-form .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:620px){dialog:has(.ops-form){max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}dialog .ops-form,dialog .ops-form.wide-form{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:18px 14px}dialog .ops-form .grid2,dialog .ops-form .grid3{grid-template-columns:1fr}dialog .ops-form footer{position:sticky;bottom:-18px;margin:16px -14px -18px;padding:12px 14px;background:#12141a;border-top:1px solid #30343e;z-index:2}}

#project-dialog,#project-document-dialog,#location-dialog,#equipment-dialog,#license-dialog,#ticket-dialog{box-sizing:border-box;width:min(960px,calc(100vw - 16px));max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:0;border:0;background:transparent;overflow:hidden}#project-dialog .ops-form,#project-document-dialog .ops-form,#location-dialog .ops-form,#equipment-dialog .ops-form,#license-dialog .ops-form,#ticket-dialog .ops-form{box-sizing:border-box;width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px);margin:0;overflow-x:hidden!important;overflow-y:auto}#project-dialog .grid2,#project-dialog .grid3,#location-dialog .grid2,#location-dialog .grid3,#equipment-dialog .grid2,#equipment-dialog .grid3,#license-dialog .grid2,#license-dialog .grid3,#ticket-dialog .grid2,#ticket-dialog .grid3{grid-template-columns:repeat(2,minmax(0,1fr))}#project-dialog input,#project-dialog select,#project-dialog textarea,#location-dialog input,#location-dialog select,#location-dialog textarea,#equipment-dialog input,#equipment-dialog select,#equipment-dialog textarea,#license-dialog input,#license-dialog select,#license-dialog textarea,#ticket-dialog input,#ticket-dialog select,#ticket-dialog textarea{box-sizing:border-box;width:100%;min-width:0}@media(max-width:640px){#project-dialog,#project-document-dialog,#location-dialog,#equipment-dialog,#license-dialog,#ticket-dialog{width:calc(100vw - 8px);max-width:calc(100vw - 8px);max-height:calc(100dvh - 8px)}#project-dialog .grid2,#project-dialog .grid3,#location-dialog .grid2,#location-dialog .grid3,#equipment-dialog .grid2,#equipment-dialog .grid3,#license-dialog .grid2,#license-dialog .grid3,#ticket-dialog .grid2,#ticket-dialog .grid3{grid-template-columns:1fr}}
.project-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.equipment-actions{padding-top:10px;border-top:1px solid #30343e}.button.danger{background:#7f1420;border-color:#a51e2d;color:#fff}.button.danger:hover{background:#a51e2d}

.ops-kpis .online-kpi strong{color:#35d59a}.ops-kpis .offline-kpi strong{color:#ff5262}.toast.error-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9999;width:min(620px,calc(100vw - 24px));padding:16px 18px;background:#8e1421!important;color:#fff!important;border:1px solid #ff6876!important;border-radius:12px;box-shadow:0 18px 48px #000c;white-space:normal;line-height:1.45;font-size:15px}@media(max-width:1100px){.ops-kpis{grid-template-columns:repeat(3,1fr)}}
.ops-nav a{display:inline-flex;align-items:center;padding:.75rem 1rem;border-radius:12px;color:inherit;text-decoration:none;font-weight:700}.ops-nav a:hover{background:#272a35}.infrastructure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px}.rack-card{border:1px solid #353945;border-radius:18px;padding:18px;background:linear-gradient(145deg,#171920,#101116)}.rack-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.rack-card header h3{margin:4px 0}.rack-card section{border-top:1px solid #30333d;padding-top:14px;margin-top:14px}.port-grid{display:grid;grid-template-columns:repeat(12,minmax(24px,1fr));gap:6px;margin:10px 0}.port{display:grid;place-items:center;min-height:27px;border-radius:6px;background:#292d36;color:#aeb3be;font-size:.72rem;font-weight:800;border:1px solid #3a3f4a}.port.free{background:#20232a}.port.used{background:#1d4ed8;color:white;border-color:#3b82f6}.port.online{background:#15803d;color:white;border-color:#22c55e}.port.offline{background:#b91c1c;color:white;border-color:#ef4444}@media(max-width:700px){.infrastructure-grid{grid-template-columns:1fr}.port-grid{grid-template-columns:repeat(8,1fr)}}

.equipment-filter-bar{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(185px,.8fr) minmax(155px,.65fr) minmax(155px,.65fr) auto;gap:12px;align-items:end;margin:0 0 12px}.equipment-filter-bar label{display:grid;gap:6px;font-weight:700}.equipment-filter-bar select,.equipment-filter-bar input{box-sizing:border-box;width:100%;min-height:44px;border:1px solid #3a3f4a;border-radius:12px;background:#171920;color:#f7f7f8;padding:0 12px}.equipment-filter-summary,.equipment-batch-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px}.equipment-batch-bar{padding:12px 14px;border:1px solid #3a3f4a;border-radius:13px;background:#171920}.equipment-batch-bar label{display:flex;align-items:center;gap:9px;font-weight:800}.equipment-batch-bar input,.equipment-select{width:20px;height:20px;accent-color:#ed0016}.equipment-batch-bar .button:disabled,.equipment-filter-bar .button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:860px){.equipment-filter-bar{grid-template-columns:1fr 1fr}.equipment-filter-bar label:first-child{grid-column:1/-1}}@media(max-width:600px){.equipment-filter-bar{grid-template-columns:1fr}.equipment-filter-bar label:first-child{grid-column:auto}.equipment-filter-bar .button,.equipment-filter-summary .button,.equipment-batch-bar .button{width:100%}}


/* Alpha 35: lista de racks com detalhes expansíveis */
.infrastructure-list{display:grid;gap:10px;color:#f6f7f9}
.infrastructure-list-head,.infrastructure-row-main{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(220px,1.7fr) minmax(90px,.55fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(250px,1.25fr);gap:14px;align-items:center}
.infrastructure-list-head{padding:0 16px 7px;color:#9fa7b5;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
#infrastructure-list .infrastructure-row{overflow:hidden;border:1px solid #353945;border-radius:14px;background:#151820;color:#f6f7f9!important}
#infrastructure-list .infrastructure-row-main{padding:15px 16px}
#infrastructure-list .infrastructure-row strong,#infrastructure-list .infrastructure-row h3{color:#fff!important}
#infrastructure-list .infrastructure-row small,#infrastructure-list .infrastructure-row .muted{display:block;margin-top:4px;color:#aeb6c5!important}
.infrastructure-actions,.infrastructure-detail-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
#infrastructure-list .rack-details{padding:4px 16px 16px;border-top:1px solid #30343e;background:#101218;color:#f6f7f9!important}
#infrastructure-list .rack-details section{padding:14px 0 0;color:#f6f7f9!important}
#infrastructure-list .rack-details section+section{margin-top:14px;border-top:1px solid #30343e}
.infrastructure-detail-actions{justify-content:flex-start;margin-top:9px}
@media(max-width:1050px){.infrastructure-list-head{display:none}.infrastructure-row-main{grid-template-columns:repeat(3,minmax(0,1fr))}.infrastructure-row-main>div:before{content:attr(data-label);display:block;margin-bottom:4px;color:#9fa7b5;font-size:.7rem;font-weight:800;text-transform:uppercase}.infrastructure-actions{justify-content:flex-start}}
@media(max-width:680px){.infrastructure-row-main{grid-template-columns:1fr 1fr}.infrastructure-actions{grid-column:1/-1}.infrastructure-actions .button{flex:1}.port-grid{grid-template-columns:repeat(6,1fr)}}


/* Alpha 38: inventário de equipamentos em lista */
#equipment-list{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:10px;width:100%;min-width:0}
.equipment-list-head,.equipment-list-row{display:grid;grid-template-columns:42px minmax(220px,1.55fr) minmax(190px,1.25fr) minmax(150px,1fr) minmax(145px,.9fr) minmax(120px,.75fr) minmax(280px,1.45fr);gap:14px;align-items:center}
.equipment-list-head{padding:0 16px 7px;color:#687083;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
#equipment-list .equipment-list-row{padding:15px 16px;border:1px solid #d9dee8;border-radius:14px;background:#f8f9fc;color:#151821}
#equipment-list .equipment-list-row strong{display:block;color:#11141b}
#equipment-list .equipment-list-row small{display:block;margin-top:4px;color:#697286;overflow-wrap:anywhere}
.equipment-list-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1100px){.equipment-list-head{display:none}.equipment-list-row{grid-template-columns:repeat(3,minmax(0,1fr))}.equipment-list-row>div:before{content:attr(data-label);display:block;margin-bottom:4px;color:#8a93a6;font-size:.7rem;font-weight:800;text-transform:uppercase}.equipment-list-actions{justify-content:flex-start}}
@media(max-width:700px){.equipment-list-row{grid-template-columns:1fr}.equipment-list-actions .button{flex:1}}

.equipment-select-cell{display:flex;align-items:center;justify-content:center}@media(max-width:1100px){.equipment-select-cell{justify-content:flex-start}}