.noc-geo-section{margin:0 0 18px;padding:18px;border:1px solid #2d4961;border-radius:14px;background:#0e1b2a;min-width:0}
.noc-geo-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.noc-geo-head h2{font-size:19px;margin:4px 0}.noc-geo-head p{font-size:12px;margin:3px 0}
.noc-geo-body{display:grid;grid-template-columns:245px minmax(0,1fr);gap:12px;min-width:0}
.noc-geo-sidebar{display:flex;flex-direction:column;gap:9px;min-height:390px;max-height:580px;overflow:hidden}
.noc-geo-sidebar label{font-size:11px;color:#99b8d0;display:flex;flex-direction:column;gap:5px}
.noc-geo-sidebar input,.noc-geo-sidebar select{min-width:0;width:100%;background:#162c42;color:#eef7ff;border:1px solid #355772;padding:9px;border-radius:7px}
.noc-geo-message{font-size:11px;color:#a6d5f1;padding:8px;background:#162e43;border-radius:7px;min-height:34px;margin:0}
.noc-geo-items{display:flex;flex-direction:column;gap:5px;overflow:auto;min-height:80px;flex:1}
.noc-geo-item{text-align:left;border:1px solid #29465e;background:#14283d;border-radius:7px;padding:9px;color:#e7f3ff;cursor:pointer}
.noc-geo-item strong{display:block;font-size:12px}.noc-geo-item small{display:block;color:#91b3c9;font-size:10px;margin-top:4px}
.noc-geo-item.active{border-color:#58d4a6;background:#1a403e}
.noc-geo-mapbox{min-width:0;position:relative;overflow:hidden;border:1px solid #365670;border-radius:10px}
#noc-geo-map{height:510px;min-height:330px;background:#142638;z-index:0}
.noc-geo-map-footer{position:absolute;left:9px;bottom:22px;z-index:500;background:#0c223bdf;color:#eaf8ff;padding:8px 10px;border:1px solid #4a708c;border-radius:8px;display:flex;align-items:center;gap:10px;font-size:11px;max-width:calc(100% - 18px)}
.noc-geo-map-footer button{border:1px solid #57bca2;background:#1f534a;border-radius:6px;color:#fff;padding:5px;cursor:pointer}
.noc-geo-icon{background:none!important;border:0!important}.noc-geo-marker{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:3px solid;border-radius:6px;background:#102334;box-shadow:0 2px 8px #000b;font-size:17px;font-weight:800}
@media(max-width:750px){.noc-geo-section{padding:11px}.noc-geo-head{flex-wrap:wrap}.noc-geo-body{grid-template-columns:minmax(0,1fr)}.noc-geo-sidebar{min-height:0;max-height:none;display:grid;grid-template-columns:1fr 1fr}.noc-geo-sidebar .noc-geo-message,.noc-geo-sidebar .noc-geo-items{grid-column:1/-1}.noc-geo-items{max-height:145px}#noc-geo-map{height:57vh;min-height:320px}}
.noc-geo-cable-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px;margin-bottom:12px;border:1px solid #2e526b;border-radius:10px;background:#10283b}
.noc-geo-cable-tools strong{font-size:12px;color:#d5efff;margin-right:3px}
.noc-geo-cable-tools select{border:1px solid #365c74;border-radius:7px;background:#17364b;color:#e7faff;padding:8px;max-width:170px;min-width:105px}
.noc-geo-cable-tools button{border:1px solid #417690;border-radius:7px;background:#174763;color:#e7faff;padding:8px;cursor:pointer;font-size:11px}
.noc-geo-cable-tools button:disabled{opacity:.45;cursor:default}
.noc-geo-cable-tools #geo-fiber-info{flex-basis:100%;color:#a6cee4;font-size:11px}
@media(max-width:750px){.noc-geo-cable-tools select{flex:1;max-width:none}.noc-geo-cable-tools strong{flex-basis:100%}}

/* v4: cores independentes das quatro PONs */
.noc-geo-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 0 10px;padding:7px 11px;border:1px solid #294a61;border-radius:9px;background:#0f2536;color:#c9e0ee;font-size:12px}
.noc-geo-legend span{display:inline-flex;gap:6px;align-items:center}
.noc-geo-legend i{display:block;width:20px;height:5px;border-radius:5px;box-shadow:0 0 7px #0004}
@media(max-width:680px){.noc-geo-legend{gap:8px;justify-content:space-between;font-size:11px}}

.noc-geo-onu-tools{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:12px;padding:10px;border:1px solid #2d675a;border-radius:9px;background:#102e31}.noc-geo-onu-tools strong{color:#c2f6e0;font-size:12px}.noc-geo-onu-tools input,.noc-geo-onu-tools select{padding:8px;min-width:120px;max-width:240px;border:1px solid #3e746e;border-radius:7px;background:#122e37;color:white}.noc-geo-onu-tools button{padding:8px;border:1px solid #3d8d72;border-radius:7px;background:#1b5949;color:white;cursor:pointer}.noc-geo-onu-tools #geo-onu-status{flex-basis:100%;font-size:11px;color:#a7d7c3}@media(max-width:740px){.noc-geo-onu-tools input,.noc-geo-onu-tools select{min-width:0;max-width:none;flex:1 1 45%}}

.noc-geo-auto-list{flex-basis:100%;max-height:230px;overflow:auto;display:grid;gap:4px}.noc-geo-auto-row{display:grid;grid-template-columns:auto minmax(160px,1fr) minmax(150px,220px);gap:8px;align-items:center;padding:7px 9px;border:1px solid #2e645a;border-radius:6px;background:#122e36;color:#cdece5;font-size:11px}.noc-geo-auto-row select{max-width:100%;min-width:0}.noc-geo-auto-row input{accent-color:#55d3a4}@media(max-width:750px){.noc-geo-auto-row{grid-template-columns:auto 1fr}.noc-geo-auto-row select{grid-column:2}}

/* v10: separate viewing and edit modes */
.noc-geo-section:not(.noc-geo-editing) .noc-geo-cable-tools,.noc-geo-section:not(.noc-geo-editing) .noc-geo-onu-tools,.noc-geo-section:not(.noc-geo-editing) #noc-geo-cancel{display:none!important}
#noc-geo-edit-toggle[aria-pressed="true"]{border-color:#41c994!important;color:#a6f5d9!important;background:#174536!important}
.noc-geo-section:not(.noc-geo-editing) #noc-geo-map{cursor:grab}
.noc-geo-section .noc-geo-head{flex-wrap:wrap}
#noc-geo-edit-toggle{min-height:38px;white-space:nowrap}

/* v12 - visualizacao com mapa na largura total; edicao mantem lateral */
.noc-geo-section:not(.noc-geo-editing) .noc-geo-sidebar{display:none!important}
.noc-geo-section:not(.noc-geo-editing) .noc-geo-body{grid-template-columns:minmax(0,1fr)!important}
.noc-geo-section:not(.noc-geo-editing) .noc-geo-mapbox{width:100%;grid-column:1/-1;min-width:0}
.noc-geo-section:not(.noc-geo-editing) #noc-geo-map{height:max(580px,72vh)}
@media(max-width:750px){.noc-geo-section:not(.noc-geo-editing) #noc-geo-map{height:70vh;min-height:360px}}
