﻿:root{
    --bg:#0f1417;
    --panel:#161d23;
    --panel-2:#1d262d;
    --line:#2b353d;
    --text:#e7ecef;
    --muted:#8a97a1;
    --copper:#e8935a;
    --accent:#f2a65a;
    --copper-dim:#8a5636;
    --teal:#57c7b8;
    --warn:#e2574c;
    --ok:#6fbf73;
  }
  html[data-theme="light"]{
    --bg:#f3f6f8;
    --panel:#ffffff;
    --panel-2:#eaf0f3;
    --line:#c7d3da;
    --text:#172229;
    --muted:#5f707a;
    --copper:#c85f1d;
    --accent:#d66c27;
    --copper-dim:#db9a70;
    --teal:#087c70;
    --warn:#bd342f;
    --ok:#247c3c;
  }
  html[data-theme="contrast"]{
    --bg:#000000;
    --panel:#090909;
    --panel-2:#141414;
    --line:#806d00;
    --text:#ffffff;
    --muted:#e0e0e0;
    --copper:#ffd60a;
    --accent:#ffdf33;
    --copper-dim:#a88e00;
    --teal:#29ffd6;
    --warn:#ff5a55;
    --ok:#61ff8b;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--text);overflow-x:hidden;}
  body{
    font-family:'IBM Plex Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;
  }
  .app{max-width:1280px;margin:0 auto;padding:20px 20px 60px;}
  @media (max-width:520px){ .app{padding:14px 12px 60px;} }

  /* ---- Header ---- */
  header.top{
    display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;
    padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line);
  }
  .brand{display:flex;flex-direction:column;gap:4px;}
  .brand .eyebrow{
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;
    color:var(--copper);text-transform:uppercase;
  }
  .brand h1{
    font-family:'IBM Plex Sans',sans-serif;font-weight:700;font-size:26px;margin:0;
    letter-spacing:-.01em;
  }
  .brand .sub{color:var(--muted);font-size:13px;margin-top:2px;}

  .stats{display:flex;gap:10px;flex-wrap:wrap;}
  .stat{
    background:var(--panel);border:1px solid var(--line);border-radius:8px;
    padding:8px 14px;min-width:96px;text-align:center;
  }
  .stat b{
    display:block;font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--teal);
  }
  .stat span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
  .theme-switcher{min-width:150px;align-self:flex-end;}
  .theme-switcher label{margin:0 0 5px;}
  .theme-switcher select{padding:7px 9px;font-size:12px;}

  /* ---- Breaker Tabs ---- */
  .tabs{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
  .breaker{
    display:flex;align-items:center;gap:10px;background:var(--panel);
    border:1px solid var(--line);border-radius:10px;padding:8px 16px 8px 10px;
    cursor:pointer;user-select:none;transition:border-color .15s ease, background .15s ease;
    flex:1 1 auto;min-width:130px;
  }
  .breaker:hover{border-color:var(--copper-dim);}
  .breaker:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
  .breaker.active{background:var(--panel-2);border-color:var(--copper);}
  .switch{
    width:30px;height:16px;border-radius:8px;background:#0c1114;border:1px solid var(--line);
    position:relative;flex:none;
  }
  .switch::after{
    content:'';position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;
    background:var(--muted);transition:all .18s ease;
  }
  .breaker.active .switch{border-color:var(--copper-dim);}
  .breaker.active .switch::after{left:16px;background:var(--copper);box-shadow:0 0 8px var(--copper);}
  .breaker .label{font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:14px;}
  .breaker .count{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);}

  /* ---- Layout ---- */
  .view{display:none;}
  .view.active{display:grid;grid-template-columns:300px 1fr;gap:18px;}
  @media (max-width:860px){ .view.active{grid-template-columns:1fr;} }

  .panel{
    background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;
    min-width:0;
  }
  .panel h2{
    font-family:'IBM Plex Sans',sans-serif;font-size:13px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--muted);margin:0 0 12px;
  }
  label{display:block;font-size:11px;color:var(--muted);margin:12px 0 6px;text-transform:uppercase;letter-spacing:.05em;}
  label:first-of-type{margin-top:0;}
  input[type=text], select{
    width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;
    color:var(--text);padding:9px 10px;font-family:'IBM Plex Mono',monospace;font-size:13px;
    outline:none;
  }
  input[type=text]:focus, select:focus{border-color:var(--copper);}
  .hint{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4;}
  .btn{
    margin-top:14px;width:100%;background:var(--copper);border:none;color:#161006;
    font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:13px;
    padding:10px;border-radius:6px;cursor:pointer;letter-spacing:.02em;
  }
  .btn:hover{filter:brightness(1.08);}
  .btn.secondary{
    background:transparent;border:1px solid #e8935a;color:var(--text);margin-top:8px;
  }

  .results-panel{display:flex;flex-direction:column;gap:14px;min-width:0;}
  .result-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);}
  .result-meta b{color:var(--teal);font-family:'IBM Plex Mono',monospace;}
  .warn-banner{
    background:#2a1c14;border:1px solid var(--warn);color:#f0b6ae;font-size:12px;
    padding:8px 12px;border-radius:6px;display:none;
  }

  table{width:100%;min-width:560px;border-collapse:collapse;font-size:12.5px;}
  thead th{
    text-align:left;font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--muted);
    text-transform:uppercase;letter-spacing:.05em;padding:6px 8px;border-bottom:1px solid var(--line);
    position:sticky;top:0;background:var(--panel);white-space:nowrap;
  }
  tbody td{padding:7px 8px;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;white-space:nowrap;}
  tbody tr:hover{background:var(--panel-2);cursor:pointer;}
  .table-scroll{max-height:340px;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px;}
 .maplink{display:inline-block;background:var(--copper);color:#161006;text-decoration:none;border:0;border-radius:5px;padding:5px 8px;font-family:'IBM Plex Sans',sans-serif;font-weight:700;font-size:11px;line-height:1.1;white-space:nowrap;}
  .maplink:hover{background:#f2a36e;color:#161006;filter:none;}

  #map-seds, #map-postes, #map-estructuras, #map-compare, #map-set, #map-suministros{
    height:380px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);
  }
  @media (max-width:520px){
    #map-seds, #map-postes, #map-estructuras, #map-compare, #map-set, #map-suministros{ height:280px; }
  }
  #compare-matrix table{min-width:100%;}
  #compare-matrix th, #compare-matrix td{
    padding:6px 9px;border:1px solid var(--line);text-align:center;white-space:nowrap;
  }
  #compare-matrix thead th{position:static;background:var(--panel-2);}
  textarea{outline:none;}
  textarea:focus{border-color:var(--copper) !important;}

  .empty{color:var(--muted);font-size:12px;padding:20px;text-align:center;}
  .poste-adjacent-action{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
  .poste-adjacent-action .btn{margin-top:0}.btn:disabled{cursor:not-allowed;opacity:.46;filter:none}
  .poste-adjacent-panel[hidden]{display:none}.poste-adjacent-panel{margin-top:0}
  .poste-code-label{padding:3px 6px!important;border:1px solid var(--line)!important;border-radius:5px!important;background:color-mix(in srgb,var(--panel) 92%,transparent)!important;color:var(--text)!important;box-shadow:0 2px 7px rgba(0,0,0,.35)!important;font:700 10px/1.25 'IBM Plex Mono',monospace!important;text-align:center!important}
  .poste-code-label::before{display:none!important}.poste-code-label small{color:var(--teal);font-size:8px;font-weight:600}
  .consulta-adjacent-action{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
  .consulta-adjacent-action .btn{margin-top:0}.consulta-adjacent-panel[hidden]{display:none}.consulta-adjacent-panel{margin-top:0}
  .supply-code-label{padding:3px 6px!important;border:1px solid var(--line)!important;border-radius:5px!important;background:color-mix(in srgb,var(--panel) 92%,transparent)!important;color:var(--text)!important;box-shadow:0 2px 7px rgba(0,0,0,.35)!important;font:700 10px/1.25 'IBM Plex Mono',monospace!important;text-align:center!important}
  .supply-code-label::before{display:none!important}.supply-code-label small{color:var(--teal);font-size:8px;font-weight:600}
  .mobile-apk-download{display:none;margin:18px 0 4px;text-align:center}.mobile-apk-download a{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);color:var(--muted);font:600 11px 'IBM Plex Mono',monospace;text-decoration:none;transition:border-color .18s ease,color .18s ease}.mobile-apk-download a:active{border-color:var(--accent);color:var(--text)}
  @media(max-width:768px){.mobile-apk-download{display:block}}
  html.is-app-webview .mobile-apk-download{display:none!important}
  footer{max-width:760px;margin:24px auto 0;padding:14px 12px 18px;border-top:1px solid var(--line);color:color-mix(in srgb,var(--text) 78%,var(--muted));font-size:12px;font-weight:600;text-align:center;line-height:1.55}
  footer span{display:block}.footer-note{margin-top:3px;color:var(--muted);font-size:10.5px;font-weight:400}
  html.is-app-webview footer{margin-bottom:max(24px,env(safe-area-inset-bottom,0px));padding-bottom:max(18px,env(safe-area-inset-bottom,0px))}
  ::-webkit-scrollbar{width:8px;height:8px;}
  ::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}

  /* ---- WhatsApp floating button ---- */
  .wa-float{
    position:fixed;right:16px;bottom:16px;z-index:2100;
    width:50px;height:50px;border:2px solid #fff;border-radius:50%;
    background:#25D366;display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 14px rgba(0,0,0,.45);text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .wa-float:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.5);}
  .wa-float svg{width:25px;height:25px;fill:#fff;}
  .wa-label{
    position:fixed;right:76px;bottom:31px;z-index:2100;display:block;
    background:var(--panel-2);border:1px solid var(--line);color:var(--text);
    padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;
    opacity:0;pointer-events:none;transition:opacity .15s ease;
  }
  .wa-float:hover + .wa-label{opacity:1;}
  .wa-close{
    position:fixed;right:10px;bottom:61px;z-index:2101;display:block;
    width:20px;height:20px;border-radius:50%;
    background:var(--panel-2);border:1px solid var(--line);color:var(--muted);
    font-size:13px;line-height:18px;text-align:center;cursor:pointer;padding:0;
    font-family:'IBM Plex Sans',sans-serif;
  }
  .wa-close:hover{color:var(--warn);border-color:var(--warn);}
  .share-float{position:fixed;right:76px;bottom:16px;z-index:2100;width:50px;height:50px;border:2px solid #fff;border-radius:50%;background:var(--copper);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.45);cursor:pointer;padding:0;transition:transform .15s ease,box-shadow .15s ease}
  .share-float:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.5)}
  .share-float svg{width:24px;height:24px;fill:#fff}
  .share-label{position:fixed;right:136px;bottom:31px;z-index:2100;display:block;background:var(--panel-2);border:1px solid var(--line);color:var(--text);padding:6px 10px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease}
  .share-float:hover + .share-label,.share-label.is-visible{opacity:1}
  .share-close{position:fixed;right:70px;bottom:61px;z-index:2101;display:block;width:20px;height:20px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-size:13px;line-height:18px;text-align:center;cursor:pointer;padding:0;font-family:'IBM Plex Sans',sans-serif}
  .share-close:hover{color:var(--warn);border-color:var(--warn)}

  html[data-theme="light"] .switch{background:#d9e2e7;}
  html[data-theme="light"] .btn{color:#fff;}
  html[data-theme="light"] .btn.secondary{color:var(--text);}
  html[data-theme="light"] .maplink{color:#fff;}
  html[data-theme="contrast"] .btn,html[data-theme="contrast"] .maplink{color:#000;}
  html[data-theme="contrast"] .btn.secondary{color:var(--text);}
  html[data-theme="contrast"] *:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}

  .leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel);color:var(--text);}
  .leaflet-popup-close-button{color:var(--text)!important;}

  /* ---- Seguridad ---- */
  #view-seguridad.active{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;align-items:start;
  }
  .safety-hero{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.75fr);gap:18px;align-items:center;border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:linear-gradient(135deg,var(--panel),color-mix(in srgb,var(--accent) 9%,var(--panel)))}
  .safety-hero h2{margin:8px 0!important;color:var(--text)!important;font-size:20px!important;text-transform:none!important;letter-spacing:0!important}.safety-hero p{max-width:780px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.version-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid var(--accent);color:var(--accent);font:700 10px/1 'IBM Plex Mono',monospace;letter-spacing:.08em}.safety-alert{display:grid;gap:5px;padding:14px;border-left:4px solid var(--warn);border-radius:7px;background:color-mix(in srgb,var(--warn) 10%,var(--panel-2))}.safety-alert b{font-size:13px;color:var(--text)}.safety-alert span{color:var(--muted);font-size:12px;line-height:1.5}
  .safety-section{min-width:0;overflow:hidden}.safety-section h2{line-height:1.35}.safety-checklist{display:grid;gap:9px;margin:0;padding:0;list-style:none}.safety-checklist li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.safety-checklist>li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:color-mix(in srgb,var(--teal) 15%,transparent);color:var(--teal);font:700 11px 'IBM Plex Mono',monospace}.safety-checklist div{display:grid;gap:3px}.safety-checklist b{font-size:13px}.safety-checklist small{color:var(--muted);font-size:12px;line-height:1.4}
  .procedures-panel{grid-column:1/-1}.procedure-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.procedure-heading .safety-intro{margin-bottom:0}.procedure-count{flex:none;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);color:var(--muted);font:700 11px 'IBM Plex Mono',monospace}.procedure-filters{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(240px,1.3fr);gap:12px;margin:16px 0}.procedure-filters label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.procedure-filters select,.procedure-filters input{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);color:var(--text);font:500 13px inherit}.procedure-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:560px;overflow:auto;padding-right:4px}.procedure-card{display:flex;min-width:0;flex-direction:column;gap:8px;padding:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.procedure-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.procedure-code{color:var(--accent);font:700 11px 'IBM Plex Mono',monospace}.procedure-area{max-width:55%;overflow:hidden;color:var(--muted);font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.procedure-card h3{margin:0;font-size:13px;line-height:1.4}.procedure-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.procedure-link{align-self:flex-start;margin-top:auto;color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.procedure-link:hover{text-decoration:underline}.procedure-unavailable{margin-top:auto;color:var(--muted);font-size:11px}.procedure-note,.procedure-empty{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.procedure-empty{grid-column:1/-1;padding:18px;text-align:center;border:1px dashed var(--line);border-radius:8px}
  .concepts-panel,.work-stages-panel,.form-guide-panel,.waste-panel{grid-column:1/-1}.concept-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch}.concept-flow article{display:grid;align-content:start;gap:7px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.concept-flow article b{font-size:14px}.concept-flow p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.concept-flow small{color:var(--text);font-size:11.5px;line-height:1.45}.concept-tag{width:max-content;padding:4px 7px;border-radius:5px;font:700 10px 'IBM Plex Mono',monospace}.concept-tag.danger{background:rgba(226,87,76,.16);color:#ff8279}.concept-tag.risk{background:rgba(242,166,90,.16);color:var(--accent)}.concept-tag.control{background:rgba(87,199,184,.16);color:var(--teal)}.flow-arrow{display:grid;place-items:center;color:var(--accent);font-size:22px}.example-line{display:grid;gap:4px;margin-top:11px;padding:11px;border-left:3px solid var(--teal);background:color-mix(in srgb,var(--teal) 7%,var(--panel-2));font-size:12px}.example-line span{color:var(--muted);line-height:1.5}
  .work-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.work-stages article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2)}.work-stages>article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#171006;font:700 13px 'IBM Plex Mono',monospace}.work-stages b{font-size:13px}.work-stages p{margin:4px 0 0;color:var(--muted);font-size:11.5px;line-height:1.45}
  .form-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.form-guide article{padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.form-guide b{font-size:12.5px;color:var(--text)}.form-guide p{margin:5px 0 0;color:var(--muted);font-size:11.5px;line-height:1.5}.fill-warning{display:grid;gap:4px;margin-top:10px;padding:11px;border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--warn) 7%,var(--panel));font-size:12px}.fill-warning span{color:var(--muted);line-height:1.5}
  .waste-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.waste-grid article{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.bin-icon{position:relative;width:28px;height:31px;flex:none;border:2px solid var(--bin-border,var(--bin));border-radius:3px 3px 6px 6px;background:var(--bin)}.bin-icon::before{content:'';position:absolute;left:-4px;top:-6px;width:32px;height:5px;border-radius:3px;background:var(--bin);border:1px solid var(--bin-border,var(--bin))}.waste-grid b{display:block;font-size:12.5px}.waste-grid small{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35}.safety-source{display:inline-block;margin-top:11px;color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}
  .hazard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.hazard-card{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.hazard-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--warn) 14%,transparent);font-size:17px}.hazard-card b{font-size:13px}.hazard-card p{margin:4px 0 0;color:var(--muted);font-size:11.5px;line-height:1.45}.ppe-list{display:flex;flex-wrap:wrap;gap:8px}.ppe-list span{padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);color:var(--text);font-size:11.5px}.emergency-panel{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.emergency-steps{display:grid;gap:8px;margin:0;padding:0;counter-reset:emergency;list-style:none}.emergency-steps li{counter-increment:emergency;display:grid;grid-template-columns:30px minmax(0,1fr);gap:2px 9px;padding:9px 10px;border-bottom:1px solid var(--line)}.emergency-steps li::before{content:counter(emergency);grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--warn);color:#fff;font:700 12px 'IBM Plex Mono',monospace}.emergency-steps b{font-size:12.5px}.emergency-steps span{color:var(--muted);font-size:11.5px;line-height:1.4}
  @media(max-width:900px){#view-seguridad.active{grid-template-columns:minmax(0,1fr)}.safety-hero,.concepts-panel,.work-stages-panel,.form-guide-panel,.waste-panel,.procedures-panel{grid-column:1}.safety-hero{grid-template-columns:minmax(0,1fr)}.concept-flow{grid-template-columns:minmax(0,1fr)}.flow-arrow{transform:rotate(90deg)}.work-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.waste-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:520px){
    #view-seguridad.active{width:100%;grid-template-columns:minmax(0,1fr)!important;gap:12px}
    #view-seguridad>*{grid-column:1!important;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
    #view-seguridad .safety-hero,#view-seguridad .safety-section{padding:13px}
    #view-seguridad .hazard-grid,#view-seguridad .work-stages,#view-seguridad .form-guide,#view-seguridad .waste-grid,#view-seguridad .procedure-filters,#view-seguridad .procedure-list,#view-seguridad .resource-grid{grid-template-columns:minmax(0,1fr)}
    #view-seguridad .procedure-heading,#view-seguridad .procedure-card-top{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
    #view-seguridad .procedure-count{justify-self:start}
    #view-seguridad .procedure-list{max-height:none;overflow:visible;padding-right:0}
    #view-seguridad .procedure-area{max-width:100%;white-space:normal}
    #view-seguridad .procedure-code,#view-seguridad .procedure-area,#view-seguridad .procedure-card h3,#view-seguridad .procedure-card p,#view-seguridad .procedure-link,#view-seguridad .safety-intro{overflow-wrap:anywhere;word-break:normal}
    #view-seguridad select,#view-seguridad input{max-width:100%;min-width:0;box-sizing:border-box}
    #view-seguridad .formula-box .f{font-size:17px;overflow-wrap:anywhere}
    #view-seguridad .ppe-list{display:grid;grid-template-columns:minmax(0,1fr)}
    #view-seguridad .ppe-list span{border-radius:7px}
    #view-seguridad .emergency-steps li{padding-inline:4px}
  }
  .formula-box{
    background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
    padding:14px;text-align:center;margin:10px 0;
  }
  .formula-box .f{font-family:'IBM Plex Mono',monospace;font-size:20px;color:var(--teal);letter-spacing:.03em;}
  .formula-box .f-note{font-size:11px;color:var(--muted);margin-top:4px;}
  .var-list{font-size:12.5px;color:var(--text);line-height:1.9;}
  .var-list b{color:var(--copper);font-family:'IBM Plex Mono',monospace;}
  /* ---- Leyenda tensión ---- */
  .legend-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
  .legend-title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
  .legend-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:4px 0;color:var(--text);}
  .legend-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;}

  /* ---- Buscador de suministros ---- */
  #view-suministros .consulta-types,#view-postes .consulta-types,#view-estructuras .consulta-types{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
  #view-suministros .consulta-type,#view-postes .consulta-type,#view-estructuras .consulta-type{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);padding:9px 8px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;}
  #view-suministros .consulta-type:hover,#view-postes .consulta-type:hover,#view-estructuras .consulta-type:hover{border-color:var(--copper-dim);color:var(--text);}
  #view-suministros .consulta-type.active,#view-postes .consulta-type.active,#view-estructuras .consulta-type.active{background:rgba(232,147,90,.13);border-color:var(--copper);color:var(--copper);}
  #consulta-status{min-height:18px;margin-top:10px;font-size:12px;line-height:1.4;}
  #consulta-status.loading{color:var(--copper);} #consulta-status.error{color:var(--warn);} #consulta-status.ok{color:var(--ok);}
  #consulta-result{display:none;} #consulta-result.show{display:block;}
  .consulta-fields{border:1px solid var(--line);border-radius:8px;overflow:hidden;max-height:345px;overflow-y:auto;}
  .consulta-field{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-bottom:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:11.5px;}
  .consulta-field:last-child{border-bottom:0;}.consulta-field:nth-child(odd){background:var(--panel-2);}.consulta-field b{color:var(--muted);font-weight:500;}.consulta-field span{text-align:right;overflow-wrap:anywhere;}
.safety-intro{color:var(--muted);font-size:13px;line-height:1.55;margin:0 0 14px}.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.resource-card{display:flex;flex-direction:column;gap:6px;min-height:110px;padding:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);text-decoration:none}.resource-card:hover{border-color:var(--accent)}.resource-card span,.resource-card em{font-size:12px;color:var(--muted);font-style:normal}.resource-card em{color:var(--accent);margin-top:auto;font-weight:700}@media(max-width:640px){.resource-grid{grid-template-columns:1fr}}
/* Resultados múltiples y proximidad de suministros */
.consulta-results-list{display:grid;gap:7px;margin:8px 0}.consulta-result-item{display:grid;grid-template-columns:1fr auto;gap:2px;text-align:left;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);color:var(--text);cursor:pointer}.consulta-result-item:hover{border-color:var(--accent)}.consulta-result-item span{font-size:12px;color:var(--muted)}.consulta-result-item small{grid-column:2;grid-row:1/3;align-self:center;color:var(--accent);font-weight:700}.consulta-near-panel{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.consulta-near-panel h3{margin:0 0 10px;font-size:13px;color:var(--text)}.consulta-near-panel .btn{margin-top:10px}
.consulta-pin{background:transparent!important;border:0!important}.consulta-pin span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:19px;box-shadow:0 2px 8px rgba(0,0,0,.45);border:2px solid #fff}.consulta-pin-supply span{background:#ffd166}.consulta-pin-sed span{background:#39c38a;color:#08291d}

.consulta-pin-poste span{background:#ffd166}.table-scroll table{min-width:0}.table-scroll th,.table-scroll td{padding:8px 7px}

.panel h2::before{content:'✦';color:var(--accent);margin-right:8px}#view-suministros h2::before{content:'💡'}#view-seds h2::before{content:'⚡'}#view-postes h2::before{content:'🪜'}#view-transmision h2::before{content:'🔌'}#view-comparar h2::before{content:'🧭'}#view-seguridad h2::before{content:'🛡️'}
#view-gridexplorer h2::before{content:'⌁'}#map-gridexplorer{height:460px;margin-top:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.grid-search-panel{align-self:start;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--accent) 4%,var(--panel)))}.grid-intro{margin:-3px 0 15px;color:var(--muted);font-size:12px;line-height:1.5}.grid-actions{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px;margin-top:14px}.grid-actions .btn{margin:0}.grid-legend-title{margin-top:17px;padding-top:13px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.grid-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;color:var(--muted);font-size:11px}.grid-legend span{display:flex;align-items:center;gap:7px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}.grid-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#888;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 10%,transparent)}.grid-dot.poste{background:#3b82f6}.grid-dot.pmi{background:#8b5cf6}.grid-dot.pf{background:#06b6d4}.grid-dot.rc{background:#ef4444}.grid-dot.ps{background:#22c55e}#view-gridexplorer .maplink{color:#fff;font-weight:700;text-decoration:none;padding:7px 10px;box-shadow:0 2px 8px rgba(0,0,0,.22)}@media(max-width:520px){#map-gridexplorer{height:340px}.grid-actions{grid-template-columns:1fr}#view-gridexplorer .maplink{padding:8px 11px;font-size:12px}}

/* Reglas de oro: orden fijo y numeracion visible en cualquier pantalla. */
.gold-rules{display:grid;gap:10px;margin:0;padding:0;list-style:none}.gold-rule{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}.gold-number{display:grid;place-items:center;width:30px;height:30px;border:2px solid #fff;border-radius:50%;background:#f2a65a;color:#101416;box-shadow:0 2px 8px rgba(0,0,0,.55);font:700 15px/1 'IBM Plex Mono',monospace}.gold-rule div{display:grid;gap:4px;min-width:0}.gold-rule b{color:var(--text);font-size:14px}.gold-rule span:not(.gold-number){color:var(--muted);font-size:13px;line-height:1.45}@media(max-width:480px){.gold-rule{grid-template-columns:30px minmax(0,1fr);gap:8px;padding:10px}.gold-number{width:28px;height:28px;font-size:14px}}


.hidden{display:none}
.centered-link{text-align:center;text-decoration:none}
.table-scroll-220{max-height:220px}
.table-scroll-200{max-height:200px}
.section-divider-label{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.compact-inline-button{width:auto;margin:0;padding:6px 12px;font-size:12px}
.legend-bt{background:#6fbf73}.legend-mt{background:#e8c94a}.legend-at{background:#e8935a}.legend-mat{background:#c0392b}
.compare-input{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:9px 10px;font-family:Consolas,'Courier New',monospace;font-size:13px;resize:vertical}
.status-warning{color:var(--warn)}
.subsection-heading{margin-top:6px!important}
.compare-matrix-box{overflow-x:auto;font-family:Consolas,'Courier New',monospace;font-size:11.5px}
.bin-blue{--bin:#1677d2}.bin-white{--bin:#f5f5f5;--bin-border:#98a3aa}.bin-yellow{--bin:#f2c94c}.bin-brown{--bin:#82502d}.bin-gray{--bin:#737b82}.bin-red{--bin:#d83232}.bin-black{--bin:#15191c}
.formula-hint{margin-top:12px}.formula-compact{padding:10px}.formula-small{font-size:16px}
.theme-default-light{
  color-scheme:light;
}
:root{
  --bg:#f3f6f8;--panel:#ffffff;--panel-2:#eaf0f3;--line:#c7d3da;--text:#172229;--muted:#5f707a;
  --copper:#c85f1d;--accent:#d66c27;--copper-dim:#db9a70;--teal:#087c70;--warn:#bd342f;--ok:#247c3c;
}
html[data-theme="dark"]{
  --bg:#0f1417;--panel:#161d23;--panel-2:#1d262d;--line:#2b353d;--text:#e7ecef;--muted:#8a97a1;
  --copper:#e8935a;--accent:#f2a65a;--copper-dim:#8a5636;--teal:#57c7b8;--warn:#e2574c;--ok:#6fbf73;
}
.mobile-result-anchor{scroll-margin-top:12px}
@media(max-width:760px){
  #consulta-result,#consulta-adjacent-panel,#sed-near-panel,#poste-near-panel{scroll-margin-top:12px}
  #consulta-geoloc-status,#sed-geoloc-status,#poste-geoloc-status{min-height:32px;font-size:12px}
  .table-scroll-220{max-height:42vh}
}
