
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#08111f;color:#fff}
#app{height:100vh;display:flex;overflow:hidden}.main-sidebar{width:270px;background:#0b1220;border-right:1px solid rgba(255,255,255,.1);padding:14px;display:flex;flex-direction:column}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:18px}.brand-logo{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#00d084,#0099ff);display:flex;align-items:center;justify-content:center;font-weight:900;color:#001b2e}.brand h1{margin:0;font-size:19px}.brand span{color:#9fb3c8;font-size:12px}
.nav{display:grid;gap:7px}.nav-btn,.tool,button,.importLabel,select,input,textarea{border:0;border-radius:12px;padding:10px 12px;background:#1f2d46;color:#fff;font-weight:700}
.nav-btn{text-align:left;cursor:pointer}.nav-btn.active,.tool.active{background:#00a86b;color:#03120c}.nav-btn:hover,button:hover,.tool:hover,.importLabel:hover{filter:brightness(1.12)}
.sidebar-footer{margin-top:auto;display:grid;gap:7px}.danger{background:#9d1b1b!important}.primary{background:#0f91c9}.secondary{background:#64748b}.quick{text-align:left;margin:5px 0}.importLabel{text-align:center;cursor:pointer}.importLabel input{display:none}
.content{flex:1;overflow:auto}.page{display:none;min-height:100%;padding:22px}.page.active{display:block}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-head h2{margin:0;font-size:28px}.page-head p,.muted{color:#9fb3c8}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.card,.panel{background:#111b2d;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px;box-shadow:0 10px 28px rgba(0,0,0,.25)}.card span{color:#b8c7d9}.card b{display:block;font-size:34px;color:#00d084;margin-top:8px}
.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.wide{min-height:300px}.bar-chart{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:130px 1fr 42px;gap:8px;align-items:center}.bar-track{height:18px;background:#0b1220;border-radius:20px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#00d084,#0099ff);border-radius:20px}
.map-layout{height:calc(100vh - 44px);display:grid;grid-template-columns:330px 1fr auto;gap:0;margin:-22px}.map-tools{background:#0b1220;border-right:1px solid rgba(255,255,255,.1);padding:14px;overflow:auto}.map-tools .panel{margin-bottom:12px;padding:12px}.map-tools h3{margin:0 0 10px}.map-area{position:relative}#map{height:100%;width:100%}.map-status{position:absolute;left:15px;right:15px;top:12px;z-index:4;background:rgba(11,18,32,.9);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:10px 14px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.zone-row{display:flex;gap:6px}.zone-row input{flex:1}.zone-row button{width:52px}.zone-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:6px 0}.hidden{display:none!important}
.right-panel{width:305px;background:#1b2738;border-left:1px solid rgba(255,255,255,.16);padding:14px;overflow:auto;box-shadow:-10px 0 30px rgba(0,0,0,.35)}.right-head{display:flex;align-items:center;justify-content:space-between}.right-head button{width:42px;background:#26374f}.right-panel label{display:block;margin-top:12px;margin-bottom:5px;color:#cfe7ff}.right-panel input[type=range]{width:100%;accent-color:#38bdf8}.small{font-size:12px;color:#cfe7ff;margin:6px 0 8px}#fiberPreview{height:14px;border-radius:20px;background:#ff3333;margin:8px 0 14px;box-shadow:0 0 12px #ff3333}
.info{color:#111;min-width:315px;max-width:410px}.info h3{margin:0 0 8px;color:#111}.info input,.info select,.info textarea{width:100%;padding:7px;margin:4px 0;border:1px solid #ccc;border-radius:8px;color:#111;background:#fff}.info label{font-weight:bold;color:#111}.info textarea{height:60px}.info .row{display:flex;gap:6px}.info .row button{color:#fff;background:#0b65c2;border-radius:8px;padding:7px;margin-top:8px}.info .row button.delete{background:#b91c1c}
.ports{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0}.port{border-radius:8px;padding:6px;text-align:center;font-size:12px;font-weight:bold;border:1px solid #ccc}.port.libre{background:#dcfce7;color:#166534}.port.ocupado{background:#fee2e2;color:#991b1b}.port select,.port input{font-size:11px;padding:4px;margin-top:3px;color:#111;background:#fff}
.table-wrap table{width:100%;border-collapse:collapse;background:#111b2d;border-radius:16px;overflow:hidden}.table-wrap th,.table-wrap td{padding:12px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}.table-wrap th{background:#0b1220;color:#9ee7ff}.table-wrap td{color:#e8f1ff}.pill{padding:4px 8px;border-radius:20px;background:#1f2d46;color:#9ee7ff;font-size:12px}.zone-color{width:14px;height:14px;border-radius:50%;display:inline-block;margin-right:6px;border:1px solid #fff}
@media(max-width:900px){.main-sidebar{width:210px}.dashboard-grid{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}.map-tools,.right-panel{position:absolute;z-index:8;width:320px;max-height:80vh}.right-panel{right:0}}

.olt-tree{background:#f8fafc;color:#111;border-radius:12px;padding:10px;max-height:320px;overflow:auto;border:1px solid #ddd}
.olt-slot{border:1px solid #ddd;border-radius:10px;margin:8px 0;padding:8px;background:#fff}
.olt-slot h4{margin:0 0 6px;color:#111}
.pon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.pon-item{background:#eef6ff;border:1px solid #bfdbfe;border-radius:8px;padding:6px;font-size:12px;color:#111}
.pon-item input{font-size:11px;padding:5px;margin-top:4px;color:#111;background:#fff}
.slot-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:6px 0}
.slot-row input,.slot-row select{color:#111;background:#fff;border:1px solid #ccc}

.olt-marker-label{
  background:#0f172a;
  color:#9ee7ff;
  border:2px solid #38bdf8;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(56,189,248,.75);
}
.pon-name-input{
  font-size:11px!important;
  padding:5px!important;
  margin-top:4px!important;
}

.fdp-tree{background:#f8fafc;color:#111;border-radius:12px;padding:10px;max-height:360px;overflow:auto;border:1px solid #ddd}
.fdp-port{border:1px solid #ddd;border-radius:10px;margin:8px 0;padding:8px;background:#fff}
.fdp-port h4{margin:0 0 6px;color:#111}
.fdp-fiber{background:#eef6ff;border:1px solid #bfdbfe;border-radius:8px;padding:7px;margin:6px 0;color:#111}
.fiber-strands{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:6px}
.strand-item{background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;padding:5px;font-size:11px;color:#111}
.strand-item input,.strand-item select,.fdp-fiber input,.fdp-port input,.fdp-port select{font-size:11px!important;padding:5px!important;margin-top:3px!important;color:#111!important;background:#fff!important;border:1px solid #ccc!important}
.fdp-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}

.fdp-marker-label{
  background:#1f2937;
  color:#ffd28a;
  border:2px solid #f97316;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(249,115,22,.75);
}

.fdp-out-strands{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px}
.fdp-out-strand{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:6px;color:#111;font-size:11px}
.fdp-out-strand input,.fdp-out-strand select{font-size:11px!important;padding:5px!important;margin-top:3px!important;color:#111!important;background:#fff!important;border:1px solid #ccc!important}
.strand-title{font-weight:900;color:#7c2d12;margin-bottom:4px}

.fdp-port-manual-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:end}
.fdp-port-manual-row input,.fdp-port-manual-row select{
  color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}

.distribution-box{background:#f8fafc;color:#111;border:1px solid #ddd;border-radius:12px;padding:10px;margin:8px 0}
.distribution-box select,.distribution-box input{
  color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}
.distribution-info{background:#eef6ff;border:1px solid #bfdbfe;border-radius:8px;padding:8px;color:#111;margin-top:8px;font-size:12px}

.distribution-fiber{background:#eef6ff;border:1px solid #bfdbfe;border-radius:8px;padding:8px;margin:8px 0;color:#111}
.distribution-strands{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px}
.distribution-strand{background:#fefce8;border:1px solid #fde68a;border-radius:8px;padding:6px;color:#111;font-size:11px}
.distribution-strand input,.distribution-strand select,.distribution-fiber input,.distribution-fiber select{
  font-size:11px!important;padding:5px!important;margin-top:3px!important;color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}
.distribution-title{font-weight:900;color:#854d0e;margin-bottom:4px}

.splitter-outputs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}
.splitter-output{background:#ecfeff;border:1px solid #67e8f9;border-radius:8px;padding:6px;color:#111;font-size:11px}
.splitter-output select,.splitter-output input{
  font-size:11px!important;padding:5px!important;margin-top:3px!important;color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}
.splitter-capacity-ok{background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:8px;padding:8px;margin:8px 0;font-weight:bold}
.splitter-capacity-full{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;border-radius:8px;padding:8px;margin:8px 0;font-weight:bold}

.distribution-fiber-manual-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:end}
.distribution-fiber-manual-row input,.distribution-fiber-manual-row select{
  color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}
.distribution-marker-label{
  background:#0f172a;
  color:#fff7ad;
  border:2px solid #facc15;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(250,204,21,.75);
}

.distribution-strand-manual-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:end}
.distribution-strand-manual-row input,.distribution-strand-manual-row select{
  color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}

.nap-box{background:#f8fafc;color:#111;border:1px solid #ddd;border-radius:12px;padding:10px;margin:8px 0}
.nap-box select,.nap-box input{color:#111!important;background:#fff!important;border:1px solid #ccc!important}
.nap-info{background:#f3e8ff;border:1px solid #d8b4fe;border-radius:8px;padding:8px;color:#581c87;margin-top:8px;font-size:12px;font-weight:bold}
.nap-marker-label{
  background:#1e1b4b;
  color:#f5d0fe;
  border:2px solid #c084fc;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(192,132,252,.75);
}

.nap-auto-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.nap-auto-grid input,.nap-auto-grid select{
  color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}

.nap-client-capacity-ok{background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:8px;padding:8px;margin:8px 0;font-weight:bold}
.nap-client-capacity-full{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;border-radius:8px;padding:8px;margin:8px 0;font-weight:bold}

.client-box{background:#f8fafc;color:#111;border:1px solid #ddd;border-radius:12px;padding:10px;margin:8px 0}
.client-box input,.client-box select{color:#111!important;background:#fff!important;border:1px solid #ccc!important}
.client-auto-info{background:#dcfce7;border:1px solid #86efac;border-radius:8px;padding:8px;color:#166534;margin-top:8px;font-size:12px;font-weight:bold}
.client-marker-label{
  background:#052e16;
  color:#bbf7d0;
  border:2px solid #22c55e;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(34,197,94,.75);
}

.splice-box{background:#f8fafc;color:#111;border:1px solid #ddd;border-radius:12px;padding:10px;margin:8px 0}
.splice-box input,.splice-box select{color:#111!important;background:#fff!important;border:1px solid #ccc!important}
.splice-fiber{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:8px;margin:8px 0;color:#111}
.splice-strands{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px}
.splice-strand{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:6px;color:#111;font-size:11px}
.splice-strand input,.splice-strand select,.splice-fiber input,.splice-fiber select{
  font-size:11px!important;padding:5px!important;margin-top:3px!important;color:#111!important;background:#fff!important;border:1px solid #ccc!important;
}
.splice-manual-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:end}
.splice-marker-label{
  background:#111827;
  color:#fde68a;
  border:2px solid #f59e0b;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(245,158,11,.75);
}

.poste-marker-label{
  background:#3b2414;
  color:#ffdd88;
  border:2px solid #f59e0b;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
  box-shadow:0 0 12px rgba(245,158,11,.75);
}

.marker-size-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.marker-size-grid label{background:#0b1220;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px;color:#dbeafe;font-weight:800}
.marker-size-grid input[type=range]{width:100%;accent-color:#38bdf8;margin:8px 0}
.marker-size-grid span{display:inline-block;color:#00d084;font-weight:900}

.ai-panel{margin:14px 0;border:1px solid rgba(56,189,248,.35)}
.ai-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.ai-score{font-size:28px;font-weight:900;color:#00d084;background:#0b1220;border-radius:14px;padding:12px;margin:12px 0;text-align:center}
.ai-findings{display:grid;gap:8px}
.ai-item{border-radius:12px;padding:10px;background:#0b1220;border:1px solid rgba(255,255,255,.08)}
.ai-item.ok{border-color:#22c55e}
.ai-item.warn{border-color:#f59e0b}
.ai-item.danger{border-color:#ef4444}
.ai-item b{display:block;margin-bottom:4px}
.ai-item.ok b{color:#22c55e}
.ai-item.warn b{color:#f59e0b}
.ai-item.danger b{color:#ef4444}

.optical-panel{margin:14px 0;border:1px solid rgba(34,197,94,.35)}
.optical-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.optical-grid label{background:#0b1220;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px;color:#dbeafe;font-weight:800}
.optical-grid input{width:100%;margin-top:6px;background:#fff!important;color:#111!important;border:1px solid #ccc!important}
.power-good{color:#22c55e;font-weight:900}
.power-warn{color:#f59e0b;font-weight:900}
.power-bad{color:#ef4444;font-weight:900}

.layer-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.layer-actions button{font-size:12px;padding:8px}
.layers-list{display:grid;gap:6px}
.layers-list label{
  display:flex;align-items:center;gap:8px;
  background:#0b1220;border:1px solid rgba(255,255,255,.08);
  border-radius:10px;padding:8px;color:#dbeafe;font-weight:800;
  cursor:pointer;
}
.layers-list input{width:auto;margin:0;accent-color:#00d084}
.layers-list label:hover{filter:brightness(1.15)}

.accordion-nav{display:block}
.accordion-section{
  background:#111b2d;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  margin-bottom:9px;
  overflow:hidden;
}
.accordion-title{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#0b1220;
  color:#dbeafe;
  border-radius:0;
  padding:11px 12px;
  font-weight:900;
  text-align:left;
}
.accordion-title:hover{filter:brightness(1.15)}
.accordion-content{
  display:none;
  padding:7px;
  gap:7px;
}
.accordion-section.open .accordion-content{
  display:grid;
}
.accordion-section.open .accordion-title span{
  transform:rotate(0deg);
}
.accordion-content .nav-btn{
  margin:0;
  width:100%;
  font-size:13px;
  padding:9px 10px;
}

.fiber-edit-box{background:#eef6ff;border:1px solid #bfdbfe;border-radius:12px;padding:10px;color:#111;margin:8px 0}
.fiber-edit-box input,.fiber-edit-box select{color:#111!important;background:#fff!important;border:1px solid #ccc!important}
.fiber-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.fiber-edit-actions button{font-size:12px;padding:8px}

.gps-panel{border:1px solid rgba(34,197,94,.35)}
.gps-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.gps-status{background:#0b1220;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px;margin-top:8px;color:#bbf7d0;font-size:12px;line-height:1.4}
.gps-user-marker{
  background:#0f766e;
  color:#ccfbf1;
  border:2px solid #5eead4;
  border-radius:10px;
  padding:3px 7px;
  font-weight:900;
}

#gpsSearchInput{
  width:100%;
  background:#fff!important;
  color:#111!important;
  border:1px solid #ccc!important;
  margin:4px 0;
}
.gps-search-count{
  font-size:11px;
  color:#9ee7ff;
  margin:4px 0 6px;
}

.auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.auto-grid label{background:#0b1220;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px;color:#dbeafe;font-weight:900}
.auto-grid input{width:auto;margin-right:8px;accent-color:#00d084}
.auto-badge{display:inline-block;background:#0b1220;border:1px solid rgba(34,197,94,.45);color:#bbf7d0;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900;margin-left:6px}

.locked{display:none!important}
.login-screen{position:fixed;inset:0;background:radial-gradient(circle at top,#123,#050b14 65%);display:flex;align-items:center;justify-content:center;z-index:99999}
.login-card{width:360px;max-width:92vw;background:#0b1220;border:1px solid rgba(56,189,248,.35);border-radius:24px;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.login-logo{width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,#00d084,#0099ff);display:flex;align-items:center;justify-content:center;font-weight:900;color:#001b2e;font-size:24px;margin:0 auto 14px}
.login-card h1{text-align:center;margin:0;font-size:28px}
.login-card p{text-align:center;color:#9fb3c8;margin:6px 0 18px}
.login-card label{display:block;margin:10px 0 5px;color:#dbeafe;font-weight:800}
.login-card input{width:100%;background:#fff!important;color:#111!important;border:1px solid #ccc!important}
.login-help{background:#111b2d;border-radius:12px;padding:10px;color:#cfe7ff;font-size:13px;margin-top:12px;text-align:center}
.login-error{color:#fca5a5;font-weight:900;text-align:center;margin-top:10px}
.user-session-box{background:#111b2d;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px;margin-bottom:10px;color:#dbeafe;font-weight:800;font-size:13px}
.users-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:10px 0}
.users-grid input,.users-grid select{background:#fff!important;color:#111!important;border:1px solid #ccc!important}
.users-list{display:grid;gap:8px;margin-top:10px}
.user-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#0b1220;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:9px;color:#dbeafe}
.user-row b{color:#00d084}
.user-row button{width:auto;padding:6px 9px;font-size:12px}
.readonly-mode .tool,
.readonly-mode #clearBtn,
.readonly-mode #importInput,
.readonly-mode .danger:not([onclick="logoutSystem()"]){
  opacity:.55;
}

.login-card .secondary{margin-top:6px;background:#334155}
.login-card button{width:100%}

.sidebar-toggle-btn{
  position:fixed;
  top:14px;
  left:286px;
  z-index:9999;
  width:42px;
  height:42px;
  border-radius:14px;
  background:#00a86b;
  color:#03120c;
  border:2px solid rgba(255,255,255,.25);
  box-shadow:0 8px 28px rgba(0,0,0,.35);
  font-size:20px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sidebar-toggle-btn:hover{filter:brightness(1.15)}
body.sidebar-collapsed .main-sidebar{
  transform:translateX(-280px);
  width:0;
  padding-left:0;
  padding-right:0;
  border-right:0;
  overflow:hidden;
}
.main-sidebar{
  transition:transform .25s ease,width .25s ease,padding .25s ease;
}
body.sidebar-collapsed .content{
  margin-left:0;
}
body.sidebar-collapsed .sidebar-toggle-btn{
  left:14px;
  background:#38bdf8;
  color:#001b2e;
}
body.sidebar-collapsed .map-layout{
  margin-left:-22px;
}
@media(max-width:900px){
  .sidebar-toggle-btn{left:224px;top:10px}
  body.sidebar-collapsed .sidebar-toggle-btn{left:10px}
}

.map-tools-header{
  background:linear-gradient(135deg,#00a86b,#0f91c9);
  color:#03120c;
  font-weight:900;
  padding:12px;
  border-radius:16px;
  margin-bottom:12px;
  text-align:center;
  box-shadow:0 8px 22px rgba(0,0,0,.25);
}
.map-accordion{
  padding:0!important;
  overflow:hidden;
}
.map-accordion-title{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#0b1220;
  color:#dbeafe;
  border-radius:0;
  padding:11px 12px;
  font-weight:900;
  text-align:left;
}
.map-accordion-title:hover{filter:brightness(1.15)}
.map-accordion-content{
  display:none;
  padding:12px;
}
.map-accordion.open .map-accordion-content{
  display:block;
}
.map-accordion-content button,
.map-accordion-content select,
.map-accordion-content input{
  margin-bottom:6px;
}

/* V47: corregir doble menú en Mapa FTTH */
body.map-page-active .main-sidebar{
  display:none!important;
}
body.map-page-active .sidebar-toggle-btn{
  left:14px!important;
  top:14px!important;
  background:#38bdf8;
  color:#001b2e;
}
body.map-page-active .content{
  width:100%;
}
body.map-page-active .map-layout{
  margin-left:-22px;
  grid-template-columns:330px 1fr auto;
}
body.map-page-active.map-tools-hidden .map-layout{
  grid-template-columns:0 1fr auto;
}
body.map-page-active.map-tools-hidden .map-tools{
  width:0!important;
  min-width:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
  transform:translateX(-340px);
}
body.map-page-active.map-tools-hidden .map-area{
  grid-column:2;
}
body.map-page-active.map-tools-hidden .sidebar-toggle-btn{
  background:#00a86b;
  color:#03120c;
}
body:not(.map-page-active).map-tools-hidden .map-tools{
  width:0!important;
  padding:0!important;
  overflow:hidden!important;
}

.map-back-btn{
  margin-top:8px;
  width:100%;
  background:#0b1220!important;
  color:#dbeafe!important;
  font-size:12px;
  padding:8px!important;
}

/* V48: botón de ocultar menú más pequeño */
.sidebar-toggle-btn{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  border-radius:9px!important;
  font-size:15px!important;
  padding:0!important;
  top:10px!important;
  left:278px!important;
  box-shadow:0 4px 14px rgba(0,0,0,.28)!important;
  border:1px solid rgba(255,255,255,.28)!important;
}
body.sidebar-collapsed .sidebar-toggle-btn,
body.map-page-active .sidebar-toggle-btn,
body.map-page-active.map-tools-hidden .sidebar-toggle-btn{
  left:10px!important;
  top:10px!important;
}
@media(max-width:900px){
  .sidebar-toggle-btn{left:210px!important;top:8px!important}
  body.sidebar-collapsed .sidebar-toggle-btn,
  body.map-page-active .sidebar-toggle-btn,
  body.map-page-active.map-tools-hidden .sidebar-toggle-btn{left:8px!important;top:8px!important}
}

#enterpriseSyncPanel{
  border:1px solid rgba(34,197,94,.35);
}
#enterpriseSyncStatus{
  background:#0b1220;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  padding:8px;
  color:#bbf7d0;
}

.gps-create-box{margin-top:10px;background:#0b1220;border:1px solid rgba(34,197,94,.35);border-radius:12px;padding:10px}
.gps-create-box h4{margin:0 0 8px;color:#bbf7d0}
.gps-create-box label{font-size:12px;font-weight:900;color:#dbeafe;margin-top:6px;display:block}
.gps-create-box input,.gps-create-box select{width:100%;background:#fff!important;color:#111!important;border:1px solid #ccc!important;margin:4px 0}
.gps-coord-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.gps-create-box button{font-size:12px;padding:8px;margin-top:4px}

.fiber-anchor-box{
  background:#f0fdf4;
  border:1px solid #86efac;
  border-radius:12px;
  padding:10px;
  margin:8px 0;
  color:#111;
}
.fiber-anchor-box h4{margin:0 0 6px;color:#166534}
.fiber-anchor-box p{font-size:12px;margin:4px 0 8px;color:#14532d}
.fiber-anchor-row{
  background:#fff;
  border:1px solid #bbf7d0;
  border-radius:10px;
  padding:8px;
  margin:6px 0;
  display:grid;
  gap:5px;
}
.fiber-anchor-row select{
  color:#111!important;
  background:#fff!important;
  border:1px solid #ccc!important;
}
.fiber-anchor-row small{color:#166534;font-weight:800}

.fiber-anchor-policy{
  background:#fee2e2;
  border:1px solid #fca5a5;
  color:#7f1d1d;
  border-radius:8px;
  padding:7px;
  font-weight:900;
  font-size:12px;
  margin:6px 0;
}

.fiber-sub-layers{
  margin-left:16px;
  display:grid;
  gap:5px;
  border-left:2px solid rgba(56,189,248,.35);
  padding-left:8px;
}
.fiber-sub-layers label{
  font-size:12px!important;
  padding:6px 8px!important;
  background:#07111f!important;
}
