@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/chakra-petch-latin-400-normal-SafcrIr2.woff2) format("woff2"),url(/assets/chakra-petch-latin-400-normal-D7EtbySE.woff) format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/chakra-petch-latin-600-normal-DVQm9bgb.woff2) format("woff2"),url(/assets/chakra-petch-latin-600-normal-DQKfcdKo.woff) format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2) format("woff2"),url(/assets/chakra-petch-latin-700-normal-D1s_c2du.woff) format("woff")}@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/exo-2-latin-400-normal-D8MC3_dU.woff2) format("woff2"),url(/assets/exo-2-latin-400-normal-_vYD6UCb.woff) format("woff")}@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/exo-2-latin-600-normal-DOMk466V.woff2) format("woff2"),url(/assets/exo-2-latin-600-normal-DZPWd1Z-.woff) format("woff")}@font-face{font-family:"Exo 2";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/exo-2-latin-700-normal-OoACPC18.woff2) format("woff2"),url(/assets/exo-2-latin-700-normal-CMe4g2cX.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff")}:root{--bg: #070a0f;--bg-2: #0d1117;--panel: rgba(13, 23, 36, .62);--panel-solid: #0e1622;--panel-2: rgba(21, 34, 52, .72);--line: rgba(0, 229, 255, .16);--line-soft: rgba(125, 147, 171, .14);--text: #d9e4f1;--muted: #7d93ab;--brand: #00e5ff;--green: #00ff87;--amber: #ffb800;--red: #ff0055;--glow-cyan: 0 0 15px rgba(0, 229, 255, .3);--glow-green: 0 0 15px rgba(0, 255, 135, .28);--glow-red: 0 0 15px rgba(255, 0, 85, .3);--font-display: "Chakra Petch", "Segoe UI", sans-serif;--font-body: "Exo 2", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--hud-cut: polygon(7px 0, 100% 0, 100% calc(100% - 7px) , calc(100% - 7px) 100%, 0 100%, 0 7px)}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;font-family:var(--font-body);background:repeating-linear-gradient(0deg,rgba(0,229,255,.022) 0 1px,transparent 1px 44px),repeating-linear-gradient(90deg,rgba(0,229,255,.022) 0 1px,transparent 1px 44px),radial-gradient(1100px 600px at 12% -8%,rgba(0,229,255,.07),transparent 60%),radial-gradient(900px 700px at 105% 110%,rgba(0,255,135,.05),transparent 55%),linear-gradient(180deg,#080c12 0%,var(--bg) 100%);background-attachment:fixed;color:var(--text);letter-spacing:.01em}a{color:inherit;text-decoration:none}::selection{background:#00e5ff40}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00e5ff2e;border-radius:6px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:#00e5ff59}.shell{display:flex;min-height:100vh}.sidebar{width:224px;background:#0a111bb8;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:.06em;color:var(--brand);text-shadow:0 0 12px rgba(0,229,255,.55);margin-bottom:18px;padding-left:8px;display:flex;align-items:center;gap:8px;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:4px}.navlink{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:6px;border-left:2px solid transparent;color:var(--muted);font-weight:600;font-size:13.5px;transition:all .3s ease}.navlink:hover{background:#00e5ff0f;color:var(--text)}.navlink.active{background:linear-gradient(90deg,#00e5ff24,#00e5ff08);border-left-color:var(--brand);color:#9df0ff;text-shadow:0 0 10px rgba(0,229,255,.45)}.nav-heading,.nav-group-header{font-family:var(--font-display);padding:10px 12px 2px;color:var(--muted);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.14em}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group-header{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;cursor:pointer;padding-bottom:4px;transition:color .3s ease}.nav-group-header:hover{color:var(--brand)}.nav-group-header .chev{font-size:10px}.navlink.sub{padding-left:26px;font-size:13px}.logout{margin-top:auto}.content{flex:1;padding:28px 32px;max-width:1240px;min-width:0}h1{font-family:var(--font-display);font-size:22px;margin:0 0 4px;letter-spacing:.04em;text-transform:uppercase}h1:after{content:"";display:block;width:46px;height:2px;margin-top:6px;background:linear-gradient(90deg,var(--brand),transparent);box-shadow:0 0 8px #00e5ff99}h2,h3{font-family:var(--font-display);letter-spacing:.03em}.subtitle{color:var(--muted);margin:0 0 22px;font-size:13.5px}.mono,code,pre{font-family:var(--font-mono);font-size:12px;letter-spacing:0;font-variant-numeric:tabular-nums}td{font-variant-numeric:tabular-nums}.card{position:relative;background:var(--panel);backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:0 4px 24px #00000059,inset 0 1px #ffffff08;transition:border-color .3s ease,box-shadow .3s ease;animation:rise .45s ease both}.card:focus-within{z-index:30}@supports not (backdrop-filter: blur(1px)){.card,.sidebar,.stat,.tile,.campo-head,.campo-public-head{background:var(--panel-solid)}}table{width:100%;border-collapse:collapse;font-size:13.5px}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-soft)}th{font-family:var(--font-display);color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.1em}tr:last-child td{border-bottom:none}tbody tr{transition:background .2s ease}tbody tr:hover td{background:#00e5ff09}.badge{font-family:var(--font-display);display:inline-block;padding:3px 10px;border-radius:0;clip-path:var(--hud-cut);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;border:1px solid transparent}.badge.active,.badge.paid,.badge.approved,.badge.done{background:#00ff871a;color:var(--green);border-color:#00ff8759;text-shadow:0 0 8px rgba(0,255,135,.5)}.badge.suspended,.badge.overdue,.badge.rejected{background:#ff00551a;color:#ff5c8f;border-color:#f056;text-shadow:0 0 8px rgba(255,0,85,.5)}.badge.pending,.badge.cancelled,.badge.submitted{background:#ffb8001a;color:var(--amber);border-color:#ffb80059}.badge.in_progress{background:#00e5ff1a;color:var(--brand);border-color:#00e5ff59}.btn{font-family:var(--font-display);border:1px solid rgba(0,229,255,.45);border-radius:6px;padding:8px 15px;font-weight:600;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;color:#aef4ff;background:linear-gradient(135deg,#00e5ff2e,#00e5ff0d);transition:all .3s ease}.btn:hover{box-shadow:var(--glow-cyan);border-color:#00e5ffcc;color:#d6faff}.btn:active{transform:translateY(1px)}.btn.ghost{background:transparent;border-color:var(--line-soft);color:var(--text)}.btn.ghost:hover{border-color:#00e5ff80;box-shadow:var(--glow-cyan)}.btn.sm{padding:5px 10px;font-size:11.5px}.btn.danger{background:linear-gradient(135deg,#f053,#ff00550f);border-color:#ff005580;color:#ff8bb0}.btn.danger:hover{box-shadow:var(--glow-red);border-color:#ff0055d9}.btn.ok{background:linear-gradient(135deg,#00ff872e,#00ff870d);border-color:#00ff8780;color:#7dffc0}.btn.ok:hover{box-shadow:var(--glow-green);border-color:#00ff87d9}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}input,select,textarea{background:#0a121cb3;border:1px solid var(--line-soft);color:var(--text);padding:9px 11px;border-radius:6px;font-size:14px;width:100%;font-family:var(--font-body);transition:border-color .3s ease,box-shadow .3s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:#00e5ff8c;box-shadow:0 0 0 2px #00e5ff1f,var(--glow-cyan)}input::placeholder{color:var(--muted)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-display)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:8px}.stat{background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:10px;padding:16px 18px;position:relative;overflow:hidden;transition:all .3s ease;animation:rise .45s ease both}.stats .stat:nth-child(2){animation-delay:.06s}.stats .stat:nth-child(3){animation-delay:.12s}.stats .stat:nth-child(4){animation-delay:.18s}.stats .stat:nth-child(5){animation-delay:.24s}.stat:hover{border-color:#00e5ff73;box-shadow:var(--glow-cyan)}.stat:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,229,255,.5),transparent)}.stat .n{font-family:var(--font-display);font-size:28px;font-weight:700}.stat .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.stat .noc-ico{position:absolute;right:14px;top:14px;opacity:.55}.stat-link{display:block;color:var(--text);text-decoration:none;cursor:pointer}.stat-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.panel-seccion{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:22px 0 10px}.pendientes{margin:0 0 6px}.pendientes-titulo{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 10px;color:var(--brand)}.pendientes-nota{margin:0;font-size:13px}.pendientes-lista{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}.pendiente{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel-2);color:var(--text);text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease}.pendiente:hover{border-color:#00e5ff80;box-shadow:var(--glow-cyan)}.pendiente:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.pendiente-texto{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13.5px}.pendiente-detalle{font-size:12px}.pendiente-n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:18px;color:var(--brand);flex-shrink:0}.pestanas-estado{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.pestanas-estado .btn[aria-selected=true]{font-weight:700;border-color:var(--brand)}.pestana-n{margin-left:6px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;opacity:.85}.distintivos{display:inline-flex;flex-wrap:wrap;gap:4px}.badge.neutro{background:#7d93ab1a;color:var(--muted);border-color:var(--line-soft)}@media(max-width:640px){.pendientes-lista{grid-template-columns:1fr;gap:6px}.pendiente-detalle{display:none}.pendiente{padding:6px 10px}.pendiente-n{font-size:16px}}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.tile{background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:10px;padding:18px 14px;text-align:center;cursor:pointer;color:var(--text);transition:all .3s ease}.tile:hover{border-color:#00e5ff80;box-shadow:var(--glow-cyan);transform:translateY(-2px)}.tile.active{border-color:var(--brand);background:#00e5ff14}.tile .tico{font-size:28px;margin-bottom:8px}.tile .tlabel{font-family:var(--font-display);font-weight:600;font-size:14px}.tile .tdesc{color:var(--muted);font-size:12px;margin-top:4px}.int-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px;margin-top:10px}.stdot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;position:relative}.stdot.live{animation:hud-pulse 1.8s ease-in-out infinite}.stdot.live:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1px solid currentColor;opacity:0;animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}.noc-live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em}.noc-ico{display:inline-flex;vertical-align:middle}.noc-ico.act{animation:hud-pulse 2.2s ease-in-out infinite}.noc-ico.spin{animation:rotate 6s linear infinite}.noc-meter{display:flex;flex-direction:column;gap:3px;min-width:120px}.noc-meter .bar{height:5px;border-radius:2px;background:#7d93ab26;overflow:hidden;position:relative}.noc-meter .fill{height:100%;border-radius:2px;transition:width .6s ease;box-shadow:0 0 8px currentColor;background:currentColor}.noc-meter .lbl{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10.5px;color:var(--muted)}.noc-bw{display:flex;gap:14px;font-family:var(--font-mono);font-size:12px}.noc-bw b{font-weight:600}.glass-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.glass-title strong{font-family:var(--font-display);letter-spacing:.04em;font-size:14px;display:inline-flex;align-items:center;gap:8px}.olt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.olt-kpi{background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:14px 18px;transition:all .3s ease;animation:rise .45s ease both}.olt-kpi:hover{box-shadow:var(--glow-cyan)}.olt-kpi .n{font-family:var(--font-display);font-size:30px;font-weight:700}.olt-kpi .l{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.olt-kpi .sub{color:var(--muted);font-size:12px;margin-top:4px;font-family:var(--font-mono)}.olt-detail{padding:14px 16px}.olt-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.olt-metrics{display:flex;flex-wrap:wrap;gap:8px;font-size:12.5px;margin:6px 0;font-family:var(--font-mono)}.onu-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}.onu-filters .field{margin:0}.onu-filters .field.grow{flex:1;min-width:200px}.onu-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.pager{display:flex;align-items:center;gap:4px}.onu-table td,.onu-table th{padding:6px 8px;font-size:13px}.onu-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.onu-chips .chip{background:var(--panel);border:1px solid var(--line-soft);border-radius:4px;clip-path:var(--hud-cut);padding:4px 12px;font-size:12.5px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-display);letter-spacing:.03em;transition:all .3s ease}.onu-chips .chip:hover{border-color:#00e5ff80;box-shadow:var(--glow-cyan)}.onu-chips .chip.active{border-color:var(--brand);background:#00e5ff1a;color:#9df0ff}.upd{font-size:12px;margin-right:6px}.onu-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.onu-table th.sortable:hover{color:var(--brand)}.onu-detail td{background:#00e5ff08}.onu-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:6px 4px;font-size:13px}.onu-table th.chk,.onu-table td.chk{width:26px;text-align:center;padding-right:0}.onu-table td.chk input,.onu-table th.chk input{cursor:pointer;width:auto}.onu-table tr.sel td{background:#00e5ff1a}.onu-table tr.rx-crit td:first-child{box-shadow:inset 3px 0 0 var(--red)}.onu-table tr.rx-warn td:first-child{box-shadow:inset 3px 0 0 var(--amber)}.onu-table tr.rx-crit td{background:#ff00550d}.onu-ficha{display:flex;flex-direction:column;gap:14px}.ficha-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:14px}.ficha-h{margin:0 0 10px;font-size:13px;color:var(--brand);text-transform:uppercase;letter-spacing:.08em;text-shadow:0 0 10px rgba(0,229,255,.4)}.deflist{display:flex;flex-direction:column}.deflist .r{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:5px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.deflist .r:last-child{border-bottom:none}.deflist .k{color:var(--muted)}.deflist .v{word-break:break-word}.ficha-actions{display:flex;gap:10px;flex-wrap:wrap}.onu-bulk{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.onu-bulk b{color:var(--brand)}.onu-table.dense td,.onu-table.dense th{padding:2px 8px;font-size:12px;line-height:1.35}.copysn{cursor:pointer;border-bottom:1px dotted var(--muted)}.copysn:hover{color:var(--brand);border-bottom-color:var(--brand)}.copied{color:var(--green);font-weight:700}.maplayers{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.maplayer{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text);cursor:pointer}.maplayer input{width:auto}.maplayer select{width:auto;max-width:100%}.mapa-red{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;min-width:0}.mapa-red-t{font-size:12px;color:var(--brand);text-transform:uppercase;letter-spacing:.08em}.mapa-cuenta{font-size:12px}.mapa-leyenda{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;font-size:12px;color:var(--muted)}.mapa-leyenda li{display:inline-flex;align-items:center;gap:5px}.mapa-leyenda-caja>summary{cursor:pointer;font-size:12px;color:var(--muted);width:fit-content}.mapa-leyenda-caja[open]>summary{margin-bottom:4px}@media(max-width:640px){.mapa-red{gap:4px}.mapa-cobertura{font-size:12px}}.mapa-punto{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid transparent;flex:none}.mapa-punto.hueca{background:transparent;border-style:dashed}.mapa-punto.lleno{background:transparent;border-color:#dc2626}.mapa-cobertura{font-size:13px;font-variant-numeric:tabular-nums}.mapa-cobertura p{margin:0;overflow-wrap:anywhere}.leaflet-marker-icon.mapa-celda{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#2563ebe0;color:#fff;border:2px solid #fff;font:600 12px var(--font-mono);box-shadow:0 0 0 1px #0000004d}.leaflet-marker-icon.mapa-celda.cajas{background:#475569e6}.leaflet-popup-content{font-size:13px}.leaflet-container{isolation:isolate;z-index:0}.error{color:#ff5c8f;font-size:14px}.muted{color:var(--muted)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.portal{max-width:860px;margin:0 auto}.portal-header{display:flex;align-items:center;gap:20px;padding:16px 24px;border-bottom:1px solid var(--line);background:#0a111b99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.portal-header .brand{margin:0}.portal-nav{display:flex;gap:6px;margin-left:8px}.portal-header .btn{margin-left:auto}.portal-content{padding:28px 24px}.login-wrap{display:grid;place-items:center;min-height:100vh}.login-card{width:min(350px,calc(100vw - 32px));position:relative}.login-card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:10px;z-index:-1;background:linear-gradient(140deg,rgba(0,229,255,.5),transparent 35%,transparent 65%,rgba(0,255,135,.35));filter:blur(6px);opacity:.55}.login-card .brand{text-align:center;font-size:24px;justify-content:center}.login-card .field{margin-bottom:12px}.login-card .btn{width:100%;margin-top:6px}.install-photos{display:flex;flex-wrap:wrap;gap:12px}.install-photo{margin:0}.install-photo img{max-height:140px;border-radius:8px;display:block}.install-photo figcaption{font-size:12px;text-align:center;margin-top:4px}.campo-shell{min-height:100vh;display:flex;flex-direction:column}.campo-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0a111bcc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.campo-main{padding:12px;max-width:640px;width:100%;margin:0 auto}.campo-public{min-height:100vh}.campo-public-head{padding:12px 16px;background:#0a111bcc;border-bottom:1px solid var(--line);font-family:var(--font-display);font-weight:700;color:var(--brand);text-shadow:0 0 12px rgba(0,229,255,.5)}.campo-public .campo-wrap{max-width:640px;margin:0 auto;padding:12px}.campo-wrap{display:flex;flex-direction:column;gap:12px}.campo-card{padding:14px 16px}.campo-card h3{font-size:15px}.campo-card .field{margin-top:10px}.campo-card input,.campo-card select{width:100%;padding:12px;font-size:16px}.campo-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.campo-photo-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft);gap:8px;font-size:14px}.campo-photo-row:last-child{border-bottom:none}.campo-order{display:block;margin:0}.campo-order:hover{border-color:#00e5ff80;box-shadow:var(--glow-cyan)}.campo-alert{background:#ff00551a;color:#ff5c8f;border:1px solid rgba(255,0,85,.3);padding:8px 10px;border-radius:6px;font-size:13px}.campo-msg{position:sticky;bottom:10px;background:var(--panel-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:8px;padding:10px 14px;text-align:center;margin:0}.campo-score{width:100%;border-collapse:collapse;font-size:13px}.campo-score td{padding:6px;border-bottom:1px solid var(--line-soft)}.campo-score tr.sc-ok td:first-child{color:var(--green)}.campo-score tr.sc-warn td:first-child{color:var(--amber)}.campo-score tr.sc-fail td:first-child{color:#ff5c8f}@media(max-width:640px){.campo-grid2{grid-template-columns:1fr}.campo-main,.campo-public .campo-wrap{padding:10px}.content{padding:18px 14px}}@keyframes hud-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes ping{0%{transform:scale(.6);opacity:.8}80%,to{transform:scale(1.9);opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.main-col{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:10px 32px;background:#0a111bd1;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);border-bottom:1px solid var(--line)}@supports not (backdrop-filter: blur(1px)){.topbar{background:var(--panel-solid)}}.topbar-logo-caja{display:flex;align-items:center;text-decoration:none}.topbar-logo{max-height:30px;max-width:150px;object-fit:contain;background:#fff;border-radius:6px;padding:3px 6px}.topbar-marca{font-family:var(--font-display);font-weight:600;letter-spacing:.04em;color:var(--text);white-space:nowrap}.topbar-buscador{position:relative;flex:1;max-width:520px}.topbar-buscador input{width:100%;padding:7px 12px 7px 32px;font-size:13px;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:8px;color:var(--text)}.topbar-buscador input:focus{outline:none;border-color:var(--brand);box-shadow:var(--glow-cyan)}.topbar-lupa{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.topbar-resultados,.topbar-desplegable{position:absolute;top:calc(100% + 6px);z-index:50;min-width:240px;max-height:340px;overflow-y:auto;background:var(--panel-solid);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #0000008c}.topbar-resultados{left:0;right:0}.topbar-desplegable{right:0}.topbar-resultado,.topbar-aviso{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 12px;font-size:13px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);color:var(--text);cursor:pointer;text-decoration:none}.topbar-resultado:last-child,.topbar-aviso:last-child{border-bottom:0}.topbar-resultado:hover,.topbar-aviso:hover{background:var(--panel-2)}.topbar-aviso b{color:var(--brand);font-family:var(--font-mono)}.topbar-salir{color:var(--red)}.topbar-salir span{display:inline-flex;align-items:center;gap:6px}.topbar-vacio{padding:12px;font-size:13px}.topbar-acciones{display:flex;align-items:center;gap:6px;margin-left:auto}.topbar-menu{position:relative}.topbar-icono{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:none;border:0;border-radius:8px;color:var(--muted);cursor:pointer}.topbar-icono:hover{background:var(--panel-2);color:var(--text)}.topbar-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;font-family:var(--font-mono)}.topbar-sesion{display:flex;align-items:center;gap:8px;padding:4px 8px;background:none;border:0;border-radius:8px;cursor:pointer;color:var(--text)}.topbar-sesion:hover{background:var(--panel-2)}.topbar-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);color:var(--brand);font-weight:700;font-size:12px}.topbar-quien{display:flex;flex-direction:column;line-height:1.15}.topbar-quien b{font-size:12.5px}.topbar-quien .muted{font-size:10.5px}@media(max-width:860px){.topbar{padding:8px 16px;gap:8px}.topbar-logo-caja,.topbar-quien{display:none}}.content{overflow-wrap:break-word}.content:focus{outline:none}pre{max-width:100%;overflow-x:auto}.topbar-menu-btn,.topbar-lupa-btn,.sidebar-cerrar,.sidebar-velo{display:none}.topbar-hueco{display:block;height:34px}.btn:focus-visible,.topbar-icono:focus-visible,.topbar-sesion:focus-visible,.sidebar-cerrar:focus-visible,.navlink:focus-visible,.nav-group-header:focus-visible,details.plegable>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.acciones-fila{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;white-space:nowrap}details.plegable>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px}details.plegable>summary::-webkit-details-marker{display:none}details.plegable>summary:after{content:"▸";color:var(--muted)}details.plegable[open]>summary:after{content:"▾"}details.plegable[open]>summary{margin-bottom:6px}.error-carga{margin:8px 0}.ip-libres-panel{margin:10px 0 14px;padding:14px}.ip-libres-panel h3:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.ip-libres{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:10px 0}.ip-libres .btn{font-family:var(--font-mono);letter-spacing:0;text-transform:none}@media(max-width:860px){.topbar-menu-btn{display:inline-flex}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:60;width:min(288px,86vw);height:auto;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--panel-solid);backdrop-filter:none;-webkit-backdrop-filter:none;transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s;overscroll-behavior:contain}.sidebar.abierta{transform:none;visibility:visible;transition:transform .2s ease;box-shadow:0 0 40px #0009}.sidebar-velo{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#03060a9e}.sidebar .brand{margin-bottom:10px}.sidebar-cerrar{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;width:40px;height:40px;background:none;border:0;border-radius:8px;color:var(--muted);cursor:pointer}.sidebar-cerrar:hover{background:var(--panel-2);color:var(--text)}.navlink{min-height:44px;padding:10px 12px}.navlink.sub{padding-left:26px}.nav-group-header{min-height:40px}}@media(max-width:640px){h1{font-size:19px}.card{padding:14px}.toolbar{flex-wrap:wrap}.deflist .r{grid-template-columns:minmax(96px,38%) 1fr}.topbar{flex-wrap:wrap;padding:6px 10px;gap:4px}.topbar-buscador{display:none}.topbar-lupa-btn{display:inline-flex}.topbar.buscando .topbar-buscador{display:block;order:10;flex:1 1 100%;max-width:none;margin:2px 0 4px}.topbar-icono{width:40px;height:40px}.topbar-sesion{min-height:40px;padding:4px}.topbar-desplegable{max-width:calc(100vw - 20px)}.acciones-fila{gap:8px}.acciones-fila .btn.danger{margin:0 10px}}@media(max-width:640px),(pointer:coarse){.btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.sm{padding:6px 12px}}@media(hover:none),(pointer:coarse){input,select,textarea,.topbar-buscador input,input.mono,select.mono,textarea.mono{font-size:16px}body{background-attachment:scroll}.card,.sidebar,.stat,.tile,.olt-kpi,.topbar,.campo-head,.campo-msg,.portal-header{backdrop-filter:none;-webkit-backdrop-filter:none}.card,.sidebar,.stat,.tile,.olt-kpi,.campo-head,.portal-header,.topbar{background:var(--panel-solid)}}@media(max-width:640px){.conv-chat-movil{height:calc(100vh - 96px);height:calc(100dvh - 96px)}}
