:root{
  --navy:#083c6f; --navy-2:#0a4d87; --blue:#1b70b7; --cyan:#31a9c8; --green:#79a86c;
  --bg:#edf3f7; --panel:#f8fbfd; --white:#fff; --line:#d8e2e9; --text:#183041; --muted:#627789;
  --shadow:0 8px 24px rgba(17,49,72,.12); --rail:78px; --tools:294px; --inspector:354px; --top:68px;
}
*{box-sizing:border-box} html,body{height:100%;margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
button,input,select{font:inherit} button{cursor:pointer}.app-shell{height:100%;display:grid;grid-template-rows:var(--top) 1fr;overflow:hidden}
.topbar{display:grid;grid-template-columns:minmax(300px,1fr) auto minmax(360px,1fr);align-items:center;background:#fff;border-bottom:1px solid var(--line);z-index:1200;padding:0 14px 0 12px;box-shadow:0 2px 10px rgba(20,50,70,.05)}
.brand-wrap{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand img{width:46px;height:46px;border-radius:11px}.brand-name{font-size:20px;font-weight:800;letter-spacing:-.3px;color:var(--navy)}.brand-name span{font-weight:650;color:var(--blue)}.brand-sub{font-size:11px;color:var(--muted);margin-top:1px}.prototype-badge{font-size:10px;background:#eef7f0;border:1px solid #cfe3d1;color:#4e7750;border-radius:999px;padding:4px 8px;white-space:nowrap}
.project-name{min-width:220px;display:flex;align-items:center;gap:9px;padding:7px 13px;border-radius:11px;background:#f6f9fb;border:1px solid var(--line)}.project-name .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.project-name small{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.project-name strong{display:block;font-size:12px;margin-top:1px}
.top-actions{justify-self:end;display:flex;gap:4px}.top-actions button,.top-actions a{display:flex;align-items:center;gap:5px;border:0;background:transparent;text-decoration:none;color:#385064;padding:9px 10px;border-radius:9px;font-size:12px;font-weight:700}.top-actions button:hover,.top-actions a:hover{background:#eef4f8;color:var(--navy)}
.workspace{min-height:0;display:grid;grid-template-columns:var(--rail) var(--tools) minmax(400px,1fr) var(--inspector);position:relative}.workspace.tools-collapsed{grid-template-columns:var(--rail) 0 minmax(400px,1fr) var(--inspector)}.workspace.inspector-collapsed{grid-template-columns:var(--rail) var(--tools) minmax(400px,1fr) 0}.workspace.tools-collapsed.inspector-collapsed{grid-template-columns:var(--rail) 0 minmax(400px,1fr) 0}
.tool-rail{background:linear-gradient(180deg,#0a477e,#07365f);padding:9px 7px;display:flex;flex-direction:column;gap:6px;z-index:800}.tool-button{border:1px solid transparent;background:transparent;color:#dceaf5;border-radius:10px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.tool-button span{font-size:19px;line-height:1}.tool-button small{font-size:9.5px;font-weight:650}.tool-button:hover{background:rgba(255,255,255,.08)}.tool-button.active{background:#fff;color:var(--navy);box-shadow:0 4px 12px rgba(0,0,0,.17)}
.tool-panel,.inspector{min-width:0;background:var(--panel);z-index:700;overflow:hidden}.tool-panel{border-right:1px solid var(--line)}.panel-head{height:68px;padding:13px 12px 10px 16px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.panel-kicker{font-size:9px;color:var(--blue);letter-spacing:1px;font-weight:800;text-transform:uppercase}.panel-head h2{font-size:17px;margin:2px 0 0;color:var(--navy)}.icon-button{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;color:#50677a;font-size:18px;display:grid;place-items:center}.tool-content{height:calc(100% - 68px);overflow:auto;padding:14px}
.map-stage{position:relative;min-width:0;background:#ccd6dc;overflow:hidden}#map{height:100%;width:100%;z-index:1}.leaflet-control-attribution{font-size:9px!important}.leaflet-control-zoom{box-shadow:0 4px 12px rgba(0,0,0,.15)!important}
.panel-reopen{position:absolute;z-index:650;top:50%;transform:translateY(-50%);width:28px;height:56px;border:1px solid #cbd8e1;background:#fff;color:var(--navy);font-size:20px;box-shadow:var(--shadow);display:none}.left-reopen{left:8px;border-radius:0 10px 10px 0}.right-reopen{right:8px;border-radius:10px 0 0 10px}.workspace.tools-collapsed .left-reopen,.workspace.inspector-collapsed .right-reopen{display:block}.map-toolbar{position:absolute;z-index:600;top:10px;left:10px;display:flex;gap:6px}.map-toolbar button{width:34px;height:34px;border:1px solid #cad6df;background:#fff;border-radius:8px;color:var(--navy);font-weight:800;box-shadow:0 3px 10px rgba(0,0,0,.12)}.map-hint{position:absolute;z-index:620;left:50%;top:18px;transform:translateX(-50%);background:rgba(7,40,69,.92);color:#fff;border-radius:10px;padding:8px 12px;font-size:12px;box-shadow:var(--shadow)}.coords-hud{position:absolute;z-index:600;left:10px;bottom:11px;background:rgba(255,255,255,.94);border:1px solid #d5e0e6;border-radius:8px;padding:5px 8px;font-size:10px;color:#3e596c;display:flex;gap:10px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.inspector{border-left:1px solid var(--line)}.inspector-tabs{height:48px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:end;padding:0 7px;gap:2px}.inspector-tabs>button:not(.icon-button){height:40px;padding:0 12px;border:0;background:transparent;color:#6b7e8c;font-size:11px;font-weight:750;border-bottom:3px solid transparent}.inspector-tabs>button.active{color:var(--navy);border-bottom-color:var(--cyan)}.collapse-right{margin-left:auto;margin-bottom:8px}.tab-pane{display:none;height:calc(100% - 48px);overflow:auto;padding:14px}.tab-pane.active{display:block}
.section-label{font-size:9px;font-weight:850;letter-spacing:1px;color:#7a8b98;text-transform:uppercase;margin:10px 0 7px}.section-label:first-child{margin-top:0}.card{background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:9px;box-shadow:0 1px 0 rgba(0,0,0,.02)}.card-row{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid #edf2f5}.card-row:last-child{border-bottom:0}.card-row .grow{min-width:0;flex:1}.card-row strong{display:block;font-size:12px}.card-row small{display:block;font-size:9.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-row button.mini{border:1px solid var(--line);background:#fff;border-radius:7px;color:#42647b;font-size:9px;padding:4px 6px}.swatch{width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.15)}.swatch.blue{background:#1879c6}.swatch.orange{background:#ef8c30}.swatch.green{background:#73a56a}.swatch.purple{background:#7b65b9}.eye{width:28px;height:20px;border-radius:999px;border:0;background:#dbe4ea;position:relative}.eye:after{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.15s}.eye.on{background:#3b8ac2}.eye.on:after{left:11px}.opacity{width:80px}.pill{font-size:9px;font-weight:750;color:#466276;background:#edf4f8;border-radius:999px;padding:3px 6px}.pill.local{background:#edf7ef;color:#4f7854}.pill.wms{background:#eef1fb;color:#5d63a7}
.tool-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;margin-bottom:10px}.tool-card h3{font-size:13px;margin:0 0 5px;color:var(--navy)}.tool-card p{font-size:10.5px;line-height:1.4;color:var(--muted);margin:0 0 9px}.choice-grid{display:grid;grid-template-columns:1fr;gap:7px}.choice{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px;text-align:left;color:var(--text)}.choice:hover,.choice.active{border-color:#8dbbd8;background:#f0f7fb}.choice .symbol{width:30px;height:30px;border-radius:8px;background:#edf4f8;color:var(--navy);display:grid;place-items:center;font-weight:850}.choice strong{font-size:11.5px}.choice small{display:block;font-size:9.5px;color:var(--muted);margin-top:2px}.primary,.secondary{border-radius:8px;padding:8px 10px;font-size:11px;font-weight:750}.primary{border:1px solid var(--navy-2);background:var(--navy-2);color:#fff}.secondary{border:1px solid var(--line);background:#fff;color:#3e5e73}.button-row{display:flex;gap:6px;flex-wrap:wrap}.note{border-left:3px solid var(--cyan);background:#eff8fb;padding:8px 9px;border-radius:0 8px 8px 0;font-size:10px;line-height:1.4;color:#456174;margin:8px 0}.warning{border-left-color:#e1a64c;background:#fff8ea;color:#725b34}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:7px 0}.form-row label{font-size:9.5px;color:var(--muted)}.form-row select,.form-row input{width:100%;margin-top:3px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:7px;font-size:10.5px}.search-input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 9px;font-size:10.5px;margin-bottom:8px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.metric{background:#f4f8fb;border:1px solid #e0e8ee;border-radius:8px;padding:8px}.metric b{font-size:13px;color:var(--navy)}.metric span{display:block;font-size:8.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:2px}
.object-item{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;margin-bottom:7px;cursor:pointer}.object-item:hover,.object-item.selected{border-color:#92bdd8;background:#f2f8fb}.object-icon{width:31px;height:31px;border-radius:8px;background:#eef4f7;display:grid;place-items:center;color:var(--navy);font-weight:850}.object-item .grow{min-width:0;flex:1}.object-item strong{display:block;font-size:11px}.object-item small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.prop-grid{display:grid;grid-template-columns:92px 1fr;gap:7px;font-size:10px;padding:4px 0}.prop-grid dt{color:var(--muted)}.prop-grid dd{margin:0;font-weight:650}.prop-title{font-size:16px;color:var(--navy);margin:3px 0 2px}.prop-type{font-size:10px;color:var(--muted);margin-bottom:12px}.prop-actions{display:flex;gap:6px;margin-top:12px}.empty-props{height:100%;display:grid;place-items:center;text-align:center;color:#7890a0;font-size:11px}.empty-props span{font-size:28px;display:block;color:#b0c1cd;margin-bottom:8px}

.modal-backdrop{position:fixed;inset:0;background:rgba(8,31,49,.35);z-index:1999}.modal{position:fixed;z-index:2000;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 30px));background:#fff;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.28);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-head small{font-size:9px;color:var(--blue);font-weight:850;letter-spacing:1px}.modal-head h3{margin:2px 0 0;font-size:18px;color:var(--navy)}.modal-close{border:0;background:transparent;font-size:22px;color:#718492}.modal-body{padding:16px}.drop-zone{min-height:170px;border:2px dashed #b9ccd8;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:#f7fafc}.drop-zone strong{font-size:14px;color:var(--navy)}.drop-zone span,.subtle{font-size:10px;color:var(--muted)}.drop-zone button{margin-top:5px;border:1px solid var(--navy-2);background:var(--navy-2);color:#fff;border-radius:8px;padding:8px 12px;font-size:11px}.select-list.compact label{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid #edf1f4;font-size:11px}.select-list label span{margin-left:auto;font-size:9px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}.modal-actions select{border:1px solid var(--line);border-radius:8px;padding:7px}.project-cards{display:grid;grid-template-columns:1fr 1fr;gap:9px}.project-cards button{text-align:left;border:1px solid var(--line);background:#f9fbfc;border-radius:10px;padding:12px}.project-cards strong{display:block;color:var(--navy);font-size:12px}.project-cards span{display:block;color:var(--muted);font-size:9.5px;line-height:1.4;margin-top:4px}
[hidden]{display:none!important}
@media(max-width:1050px){:root{--tools:260px;--inspector:310px}.topbar{grid-template-columns:1fr auto}.project-name{display:none}.top-actions span{display:none}.workspace{grid-template-columns:70px var(--tools) minmax(350px,1fr)}.inspector{position:absolute;right:0;top:0;bottom:0;width:330px;box-shadow:-10px 0 25px rgba(20,50,70,.12)}.workspace.inspector-collapsed .inspector{display:none}.right-reopen{display:block}}
@media(max-width:760px){.topbar{padding-right:7px}.prototype-badge,.brand-sub{display:none}.brand-name{font-size:17px}.workspace{grid-template-columns:64px 0 1fr}.tool-panel{position:absolute;left:64px;top:0;bottom:0;width:min(290px,calc(100vw - 64px));box-shadow:10px 0 25px rgba(20,50,70,.18);display:none}.workspace:not(.tools-collapsed) .tool-panel{display:block}.inspector{width:min(340px,calc(100vw - 64px))}.tool-button small{font-size:8.5px}.tool-button{min-height:54px}.project-cards{grid-template-columns:1fr}}

/* ===== Ajustes de legibilidad e iconografía · maqueta v2 ===== */
:root{
  --rail:82px;
  --tools:300px;
  --inspector:360px;
  --top:72px;
  --bottom:34px;
}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.action-icon,.tool-button svg,.map-toolbar svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.action-icon{width:17px;height:17px;flex:0 0 auto}
.brand-name{font-size:21px}.brand-sub{font-size:12px}.prototype-badge{font-size:11px;padding:5px 9px}
.project-name small{font-size:10px}.project-name strong{font-size:13px}
.top-actions button,.top-actions a{font-size:13px;gap:7px;padding:10px 11px}
.tool-button{min-height:61px;gap:5px}
.tool-button svg{width:22px;height:22px}
.tool-button small{font-size:10.5px;font-weight:700}
.panel-kicker{font-size:10px}.panel-head h2{font-size:18px}
.icon-button{width:32px;height:32px;font-size:19px}
.tool-content{padding:15px}
.inspector-tabs>button:not(.icon-button){font-size:12.5px;padding:0 13px}
.section-label{font-size:10px}
.card-row strong{font-size:13px}.card-row small{font-size:10.5px}.card-row button.mini{font-size:10px}
.pill{font-size:10px}
.tool-card{padding:14px;margin-bottom:11px}
.tool-card h3{font-size:14.5px;margin-bottom:6px}
.tool-card p{font-size:12px;line-height:1.48;margin-bottom:11px}
.choice{padding:10px}.choice .symbol{width:33px;height:33px}.choice strong{font-size:12.5px}.choice small{font-size:10.5px}
.primary,.secondary{font-size:12px;padding:9px 11px}
.note{font-size:11.5px;line-height:1.45;padding:9px 10px}
.form-row label{font-size:10.5px}.form-row select,.form-row input,.search-input{font-size:11.5px}
.metric b{font-size:14px}.metric span{font-size:9.5px}
.object-item{padding:10px}.object-icon{width:34px;height:34px}.object-item strong{font-size:12.5px}.object-item small{font-size:10px}
.prop-grid{font-size:11.5px;grid-template-columns:100px 1fr;padding:5px 0}.prop-title{font-size:17px}.prop-type{font-size:11px}.empty-props{font-size:12px}

.map-hint{font-size:12.5px}
.coords-hud{font-size:11px;padding:6px 9px}
.drop-zone strong{font-size:15px}.drop-zone span,.subtle{font-size:11px}.drop-zone button{font-size:12px}.select-list.compact label{font-size:12px}.select-list label span{font-size:10px}.project-cards strong{font-size:13px}.project-cards span{font-size:10.5px}

/* Los controles propios se sitúan a la derecha del zoom nativo de Leaflet. */
.map-toolbar{top:10px;left:54px;gap:7px}
.map-toolbar button{width:36px;height:36px;display:grid;place-items:center}
.map-toolbar svg{width:19px;height:19px}

/* El mapa debe ocupar siempre el espacio liberado por los paneles. */
.workspace,.tool-panel,.inspector,.map-stage{transition:grid-template-columns .16s ease,width .16s ease}

@media(max-width:1050px){
  :root{--tools:270px;--inspector:330px}
  .tool-button small{font-size:10px}
}
@media(max-width:760px){
  .tool-button small{font-size:9.5px}
  .tool-button{min-height:57px}
  .map-toolbar{left:52px}
}

/* ===== CartoField Web · Fase funcional 1 ===== */
.prototype-badge{background:#eef7f0;border-color:#cfe3d1;color:#47744c}
.compact-card{padding:11px 12px}.compact-card p{margin-bottom:0}
.object-list-head{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}.object-list-head .search-input{margin:0}.mini-action{padding:8px 9px;white-space:nowrap}
.empty-list{border:1px dashed #c9d7df;border-radius:10px;padding:18px 12px;text-align:center;color:var(--muted);font-size:11.5px;line-height:1.45;background:#fff}
.prop-notes{margin-top:12px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.prop-notes strong{font-size:11px;color:var(--navy)}.prop-notes p{margin:5px 0 0;font-size:11.5px;line-height:1.45;color:#526b7c;white-space:pre-wrap}.prop-actions.wrap{flex-wrap:wrap}
.danger-button{border:1px solid #dfb6b2;background:#fff7f6;color:#973b32;border-radius:8px;padding:9px 11px;font-size:12px;font-weight:750}.danger-button:hover{background:#fceceb}

/* HUDs de dibujo y edición */
.draw-hud{position:absolute;z-index:690;left:50%;top:10px;transform:translateX(-50%);width:min(640px,calc(100% - 120px));display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,255,255,.97);border:1px solid #cbd8e1;border-radius:11px;padding:9px 11px;box-shadow:0 7px 22px rgba(18,49,72,.18)}
.draw-hud>div:first-child{min-width:0}.draw-hud strong{display:block;font-size:13px;color:var(--navy)}.draw-hud span{display:block;margin-top:2px;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draw-actions{display:flex;gap:6px;flex:0 0 auto}.draw-actions button{padding:7px 9px;font-size:11px}.draw-actions button:disabled{opacity:.42;cursor:not-allowed}.editing-mode #map,.drawing-mode #map,.placing-waypoint #map{cursor:crosshair}

/* Marcadores propios */
.cf-waypoint-icon-wrap,.cf-edit-icon-wrap{background:transparent!important;border:0!important}.cf-waypoint-icon{position:relative;display:block;width:26px;height:26px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#fff;border:3px solid #0a5f91;box-shadow:0 2px 7px rgba(0,0,0,.26)}.cf-waypoint-icon i{position:absolute;width:7px;height:7px;border-radius:50%;background:#0a5f91;left:7px;top:7px}.cf-waypoint-icon.selected{border-color:#f07a32;transform:rotate(-45deg) scale(1.08)}.cf-waypoint-icon.selected i{background:#f07a32}
.cf-vertex{display:block;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #0a5f91;box-shadow:0 2px 6px rgba(0,0,0,.26)}.cf-vertex.selected{border-color:#f07a32;background:#fff3eb;transform:scale(1.15)}.cf-midpoint,.cf-radius-handle{display:grid;place-items:center;border-radius:50%;background:#fff;border:2px solid #31a9c8;color:#0a5f91;font-size:15px;font-weight:900;box-shadow:0 2px 6px rgba(0,0,0,.22)}.cf-midpoint{width:18px;height:18px}.cf-radius-handle{width:22px;height:22px;font-size:12px;border-color:#7b65b9;color:#5b4c93}

/* Importar / exportar */
.modal-wide{width:min(720px,calc(100vw - 34px));max-height:min(760px,calc(100vh - 34px));display:flex;flex-direction:column}.modal-wide .modal-body{overflow:auto}.drop-zone.dragover{border-color:var(--cyan);background:#eef9fb}.import-preview{margin-top:12px;display:grid;gap:7px}.import-status{font-size:11.5px;color:var(--muted);padding:8px}.import-file{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:#f9fbfc}.import-file strong{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-file span{font-size:10.5px;color:#397355}.import-file small{grid-column:1/-1;color:var(--muted);font-size:10px}.import-file.error{background:#fff7f6;border-color:#e6c3bf}.import-file.error span{color:#9a463d}
.export-body{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.export-section{border:1px solid var(--line);border-radius:11px;padding:12px;background:#f9fbfc}.export-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.export-section-head strong{display:block;font-size:13px;color:var(--navy)}.export-section-head span{display:block;font-size:9.5px;color:var(--muted);margin-top:2px}.export-section-head select{border:1px solid var(--line);border-radius:8px;padding:7px;background:#fff;font-size:11px}.picker-list{max-height:250px;overflow:auto;border:1px solid #e4ebef;border-radius:8px;background:#fff}.picker-row{display:flex;align-items:center;gap:8px;padding:8px 9px;border-bottom:1px solid #edf2f5;cursor:pointer}.picker-row:last-child{border-bottom:0}.picker-row input{margin:0}.picker-row span{min-width:0}.picker-row strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-row small{display:block;font-size:9.5px;color:var(--muted);margin-top:2px}.picker-empty{font-size:10.5px;color:var(--muted);padding:12px;margin:0}.filename-field,.field-label{display:block;font-size:10.5px;color:#5e7384;font-weight:650}.filename-field{margin-top:10px}.filename-field input,.field-label input,.field-label textarea,.field-label select{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:8px;padding:8px 9px;background:#fff;color:var(--text);font:inherit;font-size:11.5px}.field-label{margin-bottom:10px}.field-label textarea{resize:vertical;line-height:1.45}.export-button{width:100%;margin-top:9px}.export-button:disabled,.primary:disabled{opacity:.45;cursor:not-allowed}.form-grid-2,.form-grid-3{display:grid;gap:9px}.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:100px 1fr 1fr}

@media(max-width:900px){.export-body{grid-template-columns:1fr}.draw-hud{width:calc(100% - 90px);align-items:flex-start}.draw-hud span{white-space:normal}.draw-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:760px){.draw-hud{left:10px;right:10px;transform:none;width:auto;top:10px;display:block}.draw-actions{margin-top:8px;justify-content:flex-start}.form-grid-3{grid-template-columns:1fr}.form-grid-2{grid-template-columns:1fr}}

/* ===== Fase funcional 1 · revisión 2 ===== */
.topbar{grid-template-columns:minmax(300px,1fr) auto}
.top-actions{grid-column:2}

/* Paneles laterales redimensionables */
.panel-resizer{position:absolute;top:0;bottom:0;width:8px;z-index:930;cursor:col-resize;background:transparent;touch-action:none}
.panel-resizer::after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:transparent;transition:.15s}
.panel-resizer:hover::after,.resizing-panels .panel-resizer::after{background:rgba(49,169,200,.55)}
.left-resizer{left:calc(var(--rail) + var(--tools) - 4px)}
.right-resizer{right:calc(var(--inspector) - 4px)}
.workspace.tools-collapsed .left-resizer,.workspace.inspector-collapsed .right-resizer{display:none}
.resizing-panels{user-select:none;cursor:col-resize!important}.resizing-panels *{cursor:col-resize!important}

/* Selección múltiple en el listado de objetos */
.object-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 10px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#f7fafc}
.object-selection-bar>span{font-size:11px;color:var(--muted);white-space:nowrap}.object-selection-bar>span b{color:var(--navy)}
.object-selection-bar>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.object-selection-bar button{padding:6px 8px;font-size:10.5px}
.object-selection-bar button:disabled{opacity:.45;cursor:not-allowed}
.object-check{width:20px;height:26px;display:grid;place-items:center;flex:0 0 auto;cursor:pointer}.object-check input{width:15px;height:15px;margin:0;accent-color:var(--navy-2)}

/* Edición avanzada */
.edit-hud{width:min(900px,calc(100% - 110px))}
.edit-actions{flex-wrap:wrap;justify-content:flex-end}
.simplify-hud{position:absolute;z-index:700;left:50%;bottom:16px;transform:translateX(-50%);width:min(660px,calc(100% - 100px));background:rgba(255,255,255,.98);border:1px solid #cbd8e1;border-radius:13px;padding:13px 14px;box-shadow:0 9px 28px rgba(18,49,72,.2)}
.simplify-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.simplify-head strong{display:block;font-size:14px;color:var(--navy)}.simplify-head>div:first-child span{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.simplify-tolerance{display:grid;grid-template-columns:auto 72px auto;align-items:center;gap:6px;font-size:10.5px;color:var(--muted);white-space:nowrap}.simplify-tolerance input{width:72px;border:1px solid var(--line);border-radius:7px;padding:6px 7px;color:var(--text);background:#fff}
.simplify-range{width:100%;margin:13px 0 10px;accent-color:var(--navy-2)}
.simplify-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.simplify-metrics>div{padding:8px 10px;border:1px solid #dfe8ee;border-radius:9px;background:#f7fafc}.simplify-metrics span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.55px;color:var(--muted)}.simplify-metrics b{display:block;margin-top:2px;font-size:15px;color:var(--navy)}
.simplify-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}.simplify-actions button{font-size:11px;padding:8px 10px}

@media(max-width:1050px){.panel-resizer{display:none}.edit-hud{width:calc(100% - 90px)}.simplify-hud{width:calc(100% - 90px)}}
@media(max-width:760px){.object-selection-bar{align-items:flex-start;flex-direction:column}.simplify-hud{left:10px;right:10px;bottom:10px;transform:none;width:auto}.simplify-head{align-items:flex-start;flex-direction:column}.simplify-actions{justify-content:flex-start;flex-wrap:wrap}}


/* ===== Fase funcional 1 · revisión 3 · identidad y lectura ===== */
:root{
  --navy:#173f58; --navy-2:#176c70; --blue:#397b8c; --cyan:#4ba69d; --green:#779a73;
  --amber:#d18b38; --plum:#816e92; --bg:#f0f2ef; --panel:#f7f8f5; --white:#fff;
  --line:#d8dfdc; --text:#29373d; --muted:#65747a;
  --shadow:0 8px 24px rgba(31,48,54,.12);
}
body{color:var(--text)}
.topbar{background:#fffdfb;border-bottom-color:#dce2df}.brand-name{color:var(--navy)}.brand-name span{color:#2f897f}.brand-sub{color:#6d787b}
.top-actions button,.top-actions a{color:#43545a}.top-actions button:hover,.top-actions a:hover{background:#edf5f1;color:#176c70}
.tool-panel,.inspector{background:#f7f8f5}.panel-head,.inspector-tabs{background:#fffdfb}.panel-kicker{color:#2c887f}.panel-head h2,.tool-card h3,.prop-title{color:#173f58}
.primary{background:#176c70;border-color:#176c70}.primary:hover{background:#125d61;border-color:#125d61}.secondary{color:#41575d;background:#fffdfb}.choice:hover,.choice.active{border-color:#9ac8bb;background:#f0f7f3}
.note{border-left-color:#4ba69d;background:#eef7f3;color:#435f5d}.metric{background:#f5f6f2}.metric b{color:#176c70}.object-item:hover,.object-item.selected{border-color:#9fc5b9;background:#f1f7f4}.object-icon{background:#eef3ef;color:#176c70}.inspector-tabs>button.active{color:#173f58;border-bottom-color:#d18b38}.eye.on{background:#4b9c86}.object-check input{accent-color:#176c70}.simplify-range{accent-color:#176c70}

/* Barra de herramientas: fondo azul profundo + iconos en placas de color suave */
.tool-rail{background:linear-gradient(180deg,#0b446e 0%,#073552 100%);gap:7px;padding:9px 7px}
.tool-button{color:#edf4f4;border-radius:11px;min-height:62px;gap:5px;transition:.15s ease}
.tool-button svg{width:34px;height:34px;padding:6px;border-radius:9px;background:#dcefe8;color:#16596a;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 2px 7px rgba(0,0,0,.12);transition:.15s ease}
.tool-button[data-tool="layers"] svg{background:#e2edf4;color:#315f7a}.tool-button[data-tool="geometry"] svg{background:#f5e8d8;color:#9b6327}.tool-button[data-tool="waypoints"] svg{background:#ece5f1;color:#695779}.tool-button[data-tool="tracks"] svg{background:#e2f0e8;color:#3c755e}.tool-button[data-tool="csv"] svg{background:#edf0dd;color:#65753f}.tool-button[data-tool="measure"] svg{background:#f4e4df;color:#945c4d}
.tool-button small{font-size:10px;font-weight:700;color:#eef5f5}.tool-button:hover{background:rgba(255,255,255,.07)}.tool-button:hover svg{transform:translateY(-1px)}
.tool-button.active{background:rgba(255,255,255,.11);color:#fff;box-shadow:inset 3px 0 0 #dfaa58,0 4px 12px rgba(0,0,0,.12);border-color:rgba(255,255,255,.08)}.tool-button.active small{color:#fff}.tool-button.active svg{box-shadow:0 3px 10px rgba(0,0,0,.18);transform:scale(1.03)}

/* Nodos de edición: principales y secundarios inequívocos, como en Android */
.cf-vertex{position:relative;width:20px;height:20px;border:3px solid #315f87;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.28)}
.cf-vertex i{position:absolute;width:7px;height:7px;border-radius:50%;background:#e8972e;left:50%;top:50%;transform:translate(-50%,-50%)}
.cf-vertex.selected{border-color:#1c6c91;background:#fff;transform:scale(1.12)}.cf-vertex.selected i{background:#ef7e2c}
.cf-midpoint{width:14px;height:14px;display:flex;align-items:center;justify-content:center;border:2px solid #d6a04b;background:#fff8e9;color:#b86f1e;font-size:13px;font-weight:900;box-shadow:0 2px 5px rgba(0,0,0,.18)}
.cf-midpoint i{display:block;font-style:normal;line-height:1;height:12px;transform:translateY(-1px)}

/* Coordenadas + UTM y escala cartográfica */
.coords-hud{left:10px;bottom:40px;padding:6px 9px;font-size:10.5px;color:#34494f;gap:8px;border-color:#d4ddda;background:rgba(255,253,251,.95);align-items:center;max-width:calc(100% - 20px)}
.coord-block{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.coord-block b{font-size:8.5px;letter-spacing:.45px;text-transform:uppercase;color:#728085}.coord-sep{width:1px;height:18px;background:#d6dfdc}.coord-zoom{font-weight:700;color:#53666b;white-space:nowrap}
.leaflet-bottom.leaflet-left .leaflet-control-scale{margin-left:10px;margin-bottom:9px}.leaflet-control-scale-line{border:2px solid #33484d!important;border-top:none!important;background:rgba(255,253,251,.93)!important;color:#26383d!important;font-size:10px!important;font-weight:700!important;line-height:1.1!important;padding:3px 5px 2px!important;box-shadow:0 2px 7px rgba(0,0,0,.11)}

/* Importar / Exportar más limpios y selección masiva */
.modal-head h3{margin-top:0}.picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;padding:6px 7px;border-radius:8px;background:#eef3ef;border:1px solid #dde6e1}.picker-toolbar>span{font-size:10px;color:#66757a}.picker-toolbar>span b{color:#176c70}.picker-toolbar>div{display:flex;gap:5px}.picker-bulk{border:1px solid #cfdad5;background:#fffdfb;color:#40575c;border-radius:7px;padding:5px 8px;font-size:9.5px;font-weight:750}.picker-bulk:hover{background:#eaf4ef;border-color:#a9c9bd}.picker-bulk:disabled{opacity:.42;cursor:not-allowed}
.export-section{background:#fafbf8}.picker-list{border-color:#dde5e1}.picker-row:hover{background:#f1f7f3}.picker-row input{accent-color:#176c70}

/* Pequeños acentos cálidos para romper la continuidad azul */
.warning{border-left-color:#d8a04c;background:#fff7e9}.prototype-badge{background:#edf6ef;border-color:#cfdfd0;color:#547153}.danger-button{background:#fff8f5;color:#8f463d}.swatch.orange{background:#d88c38}.swatch.green{background:#729a72}.swatch.purple{background:#816e92}

@media(max-width:980px){.coords-hud{flex-wrap:wrap;row-gap:3px}.coord-sep{display:none}}


/* ===== Fase funcional 1 · revisión 4 · iconografía Android + HUD compacto ===== */
/* La barra lateral reutiliza los iconos reales de CartoField Android. */
.tool-button .mobile-tool-icon{
  width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;
  background:#f7faf8;box-shadow:inset 0 0 0 1px rgba(23,63,88,.08),0 2px 7px rgba(0,0,0,.14);
  transition:.15s ease;overflow:hidden;color:#173f58;
}
.tool-button .mobile-tool-icon svg{width:27px;height:27px;padding:0;background:transparent!important;box-shadow:none!important;border-radius:0!important;transform:none!important}
.tool-button .mobile-tool-icon.icon-emoji{font-size:23px;line-height:1;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif}
.tool-button .mobile-tool-icon.icon-text{font-size:25px;line-height:1;font-weight:800;color:#5e7140}
.tool-button[data-tool="maps"] .mobile-tool-icon{background:#e8f2f4}
.tool-button[data-tool="layers"] .mobile-tool-icon{background:#edf3f8}
.tool-button[data-tool="geometry"] .mobile-tool-icon{background:#fff7e9}
.tool-button[data-tool="waypoints"] .mobile-tool-icon{background:#fff6df}
.tool-button[data-tool="tracks"] .mobile-tool-icon{background:#f1ebf6}
.tool-button[data-tool="csv"] .mobile-tool-icon{background:#f0f4df}
.tool-button[data-tool="measure"] .mobile-tool-icon{background:#f7e9e4;color:#945c4d}
.tool-button:hover .mobile-tool-icon{transform:translateY(-1px)}
.tool-button.active .mobile-tool-icon{box-shadow:0 3px 10px rgba(0,0,0,.20);transform:scale(1.035)}
/* Anula el tratamiento de v3 que se aplicaba a SVG directos de los botones. */
.tool-button>svg{display:none}

/* Iconos Android también dentro de los paneles. */
.tool-card-title{display:flex;align-items:center;gap:9px;margin:0 0 6px}
.tool-card-title h3{margin:0}
.mobile-inline-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:#f2f6f3;box-shadow:inset 0 0 0 1px #e0e7e2}
.mobile-inline-icon svg{width:25px;height:25px}
.mobile-inline-icon.icon-emoji{font-size:21px;line-height:1;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;background:#fff7e6}
.mobile-inline-icon.icon-text{font-size:23px;font-weight:850;color:#60713f;background:#f0f4df}
.object-type-symbol{width:42px!important;height:42px!important;padding:0!important;background:transparent!important;border-radius:0!important;overflow:hidden}
.object-type-symbol svg{width:42px;height:42px;display:block}
.object-icon{width:40px;height:40px;border-radius:0;background:transparent!important;color:inherit;overflow:hidden;flex:0 0 auto}
.object-icon svg{width:40px;height:40px;display:block}.object-icon .track-type-icon{width:38px;height:38px;border-radius:10px;background:#f1ebf6;display:grid;place-items:center;font-size:21px;box-shadow:inset 0 0 0 1px #e0d4e8}

/* HUD inferior: justo a continuación de la escala, en una sola línea. */
.coords-hud{
  z-index:1100;bottom:8px;left:100px;padding:4px 7px;font-size:10px;gap:7px;border-radius:6px;
  max-width:none;white-space:nowrap;box-shadow:0 2px 7px rgba(0,0,0,.12);
}
.coord-block b{font-size:8px}.coord-sep{height:16px}.coord-zoom{font-size:10px}
.leaflet-bottom.leaflet-left .leaflet-control-scale{margin-left:10px;margin-bottom:8px}
.leaflet-control-attribution{z-index:700!important}
@media(max-width:980px){.coords-hud{flex-wrap:nowrap;row-gap:0}.coord-sep{display:block}}

/* ===== Fase funcional 2 · capas cartográficas y buscador ===== */
.modal-xwide{width:min(1040px,calc(100vw - 34px));max-height:min(820px,calc(100vh - 34px));display:flex;flex-direction:column}.modal-xwide .modal-body{overflow:auto}.modal-head>div>small{display:block;margin-top:2px;color:#6b787c;font-size:10px;letter-spacing:0;font-weight:600}

/* Buscador de lugares — esquina superior derecha del visor */
.place-search{position:absolute;z-index:1150;top:10px;right:10px;width:min(390px,calc(100% - 120px));filter:drop-shadow(0 4px 13px rgba(0,0,0,.14))}.place-search-row{display:flex;align-items:center;gap:5px;background:rgba(255,253,251,.97);border:1px solid #cfdad6;border-radius:10px;padding:5px}.place-search-icon{width:28px;height:28px;display:grid;place-items:center;font-size:20px;color:#176c70}.place-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;padding:6px 2px;font-size:12px;color:#29373d}.place-search-row button{border:0;border-radius:7px;padding:7px 9px;font-size:10.5px;font-weight:800;background:#176c70;color:#fff}.place-search-row .place-clear{width:30px;padding:7px 0;background:#f4e7e3;color:#8e5146;font-size:15px}.place-search-status{margin:4px 6px 0;padding:5px 8px;border-radius:7px;background:rgba(255,253,251,.97);border:1px solid #d8dfdc;font-size:10px;color:#58686d}.place-search-status.warn{background:#fff8e9;color:#7e612a}.place-search-status.danger{background:#fff3f0;color:#914b42}.place-search-results{margin-top:4px;background:rgba(255,253,251,.99);border:1px solid #d5ded9;border-radius:10px;overflow:hidden;max-height:330px;overflow-y:auto}.place-result{width:100%;display:grid;grid-template-columns:28px 1fr;gap:5px;text-align:left;border:0;border-bottom:1px solid #e9eeeb;background:transparent;padding:9px 10px;color:#2d3d42}.place-result:last-child{border-bottom:0}.place-result:hover{background:#eff6f2}.place-result>span:first-child{font-size:17px}.place-result strong{display:block;font-size:11.5px;color:#173f58}.place-result small{display:block;margin-top:2px;font-size:9.5px;color:#69787c}.place-empty{padding:11px;font-size:10.5px;color:#6a777b}.cf-search-icon{background:transparent;border:0}.cf-search-marker{font-size:28px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.cf-search-popup strong{display:block;font-size:13px;color:#173f58}.cf-search-popup small{display:block;margin:3px 0 6px;color:#68777b}.cf-search-popup>div{font-size:10px}.cf-search-popup-actions{display:flex;gap:5px;margin-top:9px}.cf-search-popup-actions button{font-size:10px;padding:6px 8px}

/* Panel Capas */
.layer-tools-head{display:flex;gap:7px;margin:4px 0 12px}.layer-tools-head button{flex:1}.section-label span{float:right;color:#4d666d;font-size:9px}.layer-card{border:1px solid #d9e1dd;background:#fffdfb;border-radius:10px;padding:9px 9px 8px;margin-bottom:7px}.layer-card-head{display:flex;align-items:center;gap:7px}.layer-card-head .grow{min-width:0;flex:1}.layer-card-head strong{display:block;font-size:11.5px;color:#173f58;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-card-head small{display:block;margin-top:2px;font-size:9px;color:#6c7a7e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-badge{display:grid;place-items:center;min-width:30px;height:24px;padding:0 5px;border-radius:6px;font-size:8px;font-weight:900;letter-spacing:.5px}.layer-badge.wms{background:#ece8f3;color:#665779}.layer-badge.mb{background:#e7f1e8;color:#477056}.layer-opacity{display:grid;grid-template-columns:56px 1fr 42px;gap:7px;align-items:center;margin-top:8px}.layer-opacity label,.layer-opacity output{font-size:9px;color:#68767a}.layer-opacity output{text-align:right}.layer-opacity input{width:100%;accent-color:#176c70}.layer-actions{display:flex;align-items:center;gap:5px;margin-top:7px}.layer-actions .queryable-chip{margin-left:auto;padding:3px 6px;border-radius:999px;background:#eef5ef;color:#47705a;font-size:8.5px;font-weight:700}.tiny{padding:5px 7px!important;font-size:9px!important}.layer-note{line-height:1.45;margin:6px 2px 11px}.wms-query-bar{display:flex;align-items:center;gap:8px;margin:8px 0 12px;padding:7px;border-radius:9px;background:#eef3ef;border:1px solid #dde5e0}.wms-query-bar button{padding:6px 8px;font-size:9.5px}.wms-query-bar span{font-size:9px;color:#68787b}.wms-info-mode #map{cursor:crosshair!important}
.order-list{display:grid;gap:6px}.order-row{display:grid;grid-template-columns:24px 34px minmax(0,1fr) 28px 28px;align-items:center;gap:5px;border:1px solid #dbe2df;border-radius:9px;background:#fffdfb;padding:6px}.order-rank{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#edf2ef;color:#52676c;font-size:9px;font-weight:800}.order-row strong{display:block;font-size:10.5px;color:#24383e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-row small{display:block;font-size:8.5px;color:#718085}.order-btn{width:28px;height:28px;border:1px solid #d3ddd8;border-radius:7px;background:#fff;color:#38565e;font-weight:900}.order-btn:disabled{opacity:.3;cursor:default}

/* Gestor WMS */
.wms-manager-grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(430px,1.35fr);gap:18px}.wms-manager-grid section{min-width:0}.wms-manager-grid h4{margin:3px 0 8px;color:#173f58;font-size:12px}.wms-manager-grid h4:not(:first-child){margin-top:16px}.wms-catalog-row,.wms-service-row{display:flex;align-items:center;gap:7px;border:1px solid #dce4e0;border-radius:9px;padding:7px 8px;margin-bottom:6px;background:#fbfcfa}.wms-catalog-row>div{min-width:0;flex:1}.wms-catalog-row strong,.wms-service-main strong{display:block;font-size:10.8px;color:#263b42}.wms-catalog-row small,.wms-service-main small{display:block;margin-top:2px;font-size:8.8px;color:#718084;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wms-catalog-row button{font-size:9px;padding:5px 7px}.wms-service-row.selected{border-color:#9bc5b7;background:#f0f7f3}.wms-service-main{min-width:0;flex:1;border:0;background:transparent;text-align:left;padding:1px;color:inherit}.wms-service-list{max-height:230px;overflow:auto}.wms-detail-head{display:flex;align-items:flex-start;gap:10px;border:1px solid #dce4e0;border-radius:10px;background:#f7faf8;padding:9px;margin-bottom:8px}.wms-detail-head>div{min-width:0;flex:1}.wms-detail-head strong{display:block;font-size:12px;color:#173f58}.wms-detail-head small{display:block;margin-top:2px;font-size:9px;color:#6c7b7f;overflow-wrap:anywhere}.wms-layer-list{max-height:360px;overflow:auto;border:1px solid #dce4e0;border-radius:9px}.wms-cap-row{display:flex;gap:8px;align-items:center;padding:8px 9px;border-bottom:1px solid #e8eeeb;background:#fff}.wms-cap-row:last-child{border-bottom:0}.wms-cap-row .grow{min-width:0;flex:1}.wms-cap-row strong{display:block;font-size:10.8px;color:#263b42}.wms-cap-row small{display:block;font-size:8.8px;color:#6f7c80;margin-top:2px}.wms-cap-row p{margin:4px 0 0;font-size:8.8px;line-height:1.35;color:#77858a}.wms-cap-row button{font-size:9px;padding:5px 8px}.manual-wms{margin-top:10px;border:1px solid #dce4e0;border-radius:9px;background:#fbfcfa;padding:8px}.manual-wms summary{cursor:pointer;font-size:10.5px;font-weight:800;color:#425d64}.manual-wms .form-grid-2,.manual-wms .form-grid-3{margin-top:9px}.check-row{display:flex;align-items:center;gap:6px;margin:8px 0;font-size:9.5px;color:#5d6f74}.check-row input{accent-color:#176c70}.field-label input,.field-label select{font-size:10.5px}.info-loading{padding:25px;text-align:center;color:#66777b}.wms-info-coord{margin-bottom:10px;padding:7px 9px;border-radius:8px;background:#eef4f1;color:#4f656a;font-size:10px;font-weight:700}.wms-info-result{border:1px solid #dce4e0;border-radius:10px;padding:10px;margin-bottom:8px}.wms-info-result h4{margin:0;color:#173f58;font-size:12px}.wms-info-result small{display:block;margin:2px 0 7px;color:#6b7a7e;font-size:9px}.wms-info-result pre{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto;margin:0;padding:8px;border-radius:7px;background:#f6f8f6;color:#34474c;font:10px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.wms-info-result a{display:inline-block;margin-top:7px;font-size:9.5px;color:#176c70}

@media(max-width:1100px){.wms-manager-grid{grid-template-columns:1fr}.place-search{width:min(330px,calc(100% - 110px))}}

/* ===== Fase 2 r2 · simplificación de interfaz y flujo ===== */
:root{--rail:66px}
.topbar{
  display:flex;align-items:center;justify-content:flex-start;
  background:linear-gradient(100deg,#8f5435 0%,#a8683f 58%,#b77a4a 100%);
  border-bottom:1px solid #7f4b31;box-shadow:0 3px 12px rgba(74,43,25,.18);
}
.topbar .brand{color:#fff}.topbar .brand img{background:rgba(255,255,255,.94);padding:2px;box-shadow:0 2px 8px rgba(55,29,16,.18)}
.topbar .brand-name{color:#fff}.topbar .brand-name span{color:#d9f0e6}.topbar .brand-sub{color:#f2e5dc}

.tool-rail{padding:8px 6px;gap:6px}
.tool-button{min-height:52px;border-radius:11px;gap:0}
.tool-button small{display:none!important}
.tool-button .mobile-tool-icon{width:40px;height:40px;border-radius:11px}
.tool-button .mobile-tool-icon svg{width:27px;height:27px}
.tool-button.more-button{margin-top:auto}
.tool-button[data-tool="more"] .mobile-tool-icon{background:#edf4ef}

.base-map-grid .choice{min-height:48px;padding:7px 9px;gap:10px}
.base-map-grid .choice .symbol{width:48px;height:34px;flex:0 0 48px;font-size:12px;letter-spacing:-.2px;border-radius:8px}
.base-map-grid .choice>span:last-child{min-width:0;display:block}.base-map-grid .choice strong{display:block;white-space:normal;line-height:1.22}
.layer-add-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}.layer-add-buttons button{width:100%}

.inspector-tabs>button:not(.icon-button){flex:1;text-align:center;font-size:12px}
.inspector-tabs>button.active{border-bottom-color:#c87943;color:#7f4b31}

/* Objetos: clasificación + propiedades internas del seleccionado */
.selected-object-card{border:1px solid #d9e1dd;background:#fffdfb;border-radius:11px;margin-bottom:11px;overflow:hidden;box-shadow:0 2px 8px rgba(34,61,66,.05)}
.selected-object-card>summary{list-style:none;display:flex;align-items:center;gap:9px;padding:9px 10px;cursor:pointer;background:#f7faf7;border-bottom:1px solid transparent}
.selected-object-card[open]>summary{border-bottom-color:#e3e9e5}.selected-object-card>summary::-webkit-details-marker{display:none}
.selected-object-card .selected-object-icon{width:38px;height:38px;flex:0 0 38px}.selected-object-card .selected-object-icon svg{width:38px;height:38px}.selected-object-card .selected-object-icon .track-type-icon{width:36px;height:36px;display:grid;place-items:center;background:#f1ebf6;border-radius:9px}
.selected-object-card summary strong{display:block;font-size:12.5px;color:#173f58}.selected-object-card summary small{display:block;margin-top:2px;font-size:9.5px;color:#6a797d}.selected-object-card .detail-chevron{font-size:16px;color:#8a6b58}
.selected-object-body{padding:9px 10px 10px}.selected-object-body dl{margin:0 0 9px}
.object-groups{display:grid;gap:8px}.object-group{border:1px solid #dbe3df;border-radius:10px;background:#fff;overflow:hidden}.object-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;cursor:pointer;background:#f7faf8;color:#29444c;font-size:11.5px;font-weight:800}.object-group>summary::-webkit-details-marker{display:none}.object-group>summary b{min-width:25px;height:21px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:#e8f0ec;color:#557067;font-size:9px}.object-group-body{padding:5px}.empty-group{padding:9px;color:#819095;font-size:10px;text-align:center}.object-group .object-item{margin-bottom:4px}.object-group .object-item:last-child{margin-bottom:0}

/* Más herramientas */
.more-tools-list{display:grid;gap:8px}.more-tool-option{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;border:1px solid #d9e1dd;background:#fff;border-radius:11px;padding:9px 10px;color:#24383e;box-shadow:0 2px 7px rgba(34,61,66,.04)}.more-tool-option:hover{background:#f7faf7;border-color:#bdcfc5}.more-tool-option .mobile-inline-icon{width:36px;height:36px;border-radius:9px;background:#eef4ef}.more-tool-option .mobile-inline-icon svg{width:24px;height:24px}.more-tool-option strong{display:block;font-size:12px;color:#173f58}.more-tool-option small{display:block;margin-top:2px;font-size:9.5px;color:#6d7b7e}.more-tool-option>b{font-size:22px;color:#a8683f;font-weight:700}

/* Buscador más compacto */
.place-search{width:min(280px,calc(100% - 125px))}.place-search input{font-size:11.5px}.place-search-row button{padding:7px 8px}

@media(max-width:1050px){.workspace{grid-template-columns:66px var(--tools) minmax(350px,1fr)}.place-search{width:min(255px,calc(100% - 110px))}}
@media(max-width:760px){.workspace{grid-template-columns:60px 0 1fr}.tool-panel{left:60px;width:min(290px,calc(100vw - 60px))}.tool-button{min-height:50px}.tool-button .mobile-tool-icon{width:38px;height:38px}.place-search{width:min(245px,calc(100% - 105px))}}
.more-tool-icon{width:36px;height:36px;border-radius:9px;background:#eef4ef;color:#315d61;display:grid;place-items:center}.more-tool-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}


/* Fase 2 v3 · ficha de propiedades integrada en el objeto */
.object-entry{border-radius:10px;overflow:hidden;margin-bottom:4px}
.object-entry .object-item{margin-bottom:0}
.object-entry.expanded{border:1px solid #cfdcd5;background:#fffdfb;box-shadow:0 2px 8px rgba(34,61,66,.05)}
.object-entry.expanded .object-item{border:0;border-bottom:1px solid #e5ebe7;border-radius:0;background:#f7faf7}
.object-entry.expanded .selected-object-inline{padding:9px 10px 10px;background:#fffdfb}
.selected-object-inline dl{margin:0 0 9px}
.selected-object-inline .prop-actions{margin-top:9px}
.object-group .object-entry:last-child{margin-bottom:0}

/* Modo de dibujo: barra principal visible y solo paneles laterales ocultos.
   Los paneles permanecen en el DOM (columnas a 0) para conservar la colocación
   del visor y permitir que Leaflet recalcule correctamente su tamaño. */
.workspace.draw-focus{grid-template-columns:var(--rail) 0 minmax(400px,1fr) 0!important}
.workspace.draw-focus .tool-rail{display:flex!important}
.workspace.draw-focus .panel-reopen{display:none!important}
.workspace.draw-focus .place-search{opacity:.96}


/* Fase 2 v5 · modo de edición ampliado.
   Crear y editar geometrías comparten el mismo espacio de trabajo: se mantienen
   visibles los iconos principales y se ocultan solo los dos paneles laterales. */
.workspace.edit-focus{grid-template-columns:var(--rail) 0 minmax(400px,1fr) 0!important}
.workspace.edit-focus .tool-rail{display:flex!important}
.workspace.edit-focus .panel-reopen{display:none!important}
.workspace.edit-focus .place-search{opacity:.96}

/* Revisión 6 · HUD de edición compacto */
.edit-actions .edit-icon-action{
  width:34px;
  min-width:34px;
  height:32px;
  padding:0;
  display:grid;
  place-items:center;
}
.edit-actions .edit-icon-action svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Revisión 7 · HUD de edición aún más compacto para evitar solape con el buscador */
.edit-hud{
  width:auto;
  max-width:calc(100% - 360px);
  justify-content:flex-start;
  gap:10px;
  padding:8px 10px;
}
.edit-hud > div:first-child{
  flex:0 1 auto;
  max-width:320px;
  min-width:0;
}
.edit-hud .edit-actions{
  gap:5px;
}
.edit-hud .draw-actions button{
  padding:7px 8px;
}
@media(max-width:1180px){
  .edit-hud{
    max-width:calc(100% - 290px);
  }
}

/* ===== Fase funcional 3 · Tracks, CSV y proyectos ===== */
.more-tools-list.compact{margin-top:8px}
.work-preview-hud{position:absolute;z-index:705;left:50%;top:12px;transform:translateX(-50%);display:flex;align-items:center;gap:18px;max-width:calc(100% - 330px);background:rgba(255,255,255,.97);border:1px solid #cbd8e1;border-radius:12px;padding:9px 11px;box-shadow:0 7px 22px rgba(18,49,72,.18)}
.work-preview-hud>div:first-child{min-width:0;display:flex;flex-direction:column}.work-preview-hud strong{font-size:13px;color:var(--navy)}.work-preview-hud span,.work-preview-hud small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-actions{display:flex;gap:6px;flex:0 0 auto}.preview-actions button{padding:7px 9px;font-size:11px}
.csv-preview-hud{top:auto;bottom:14px;max-width:min(720px,calc(100% - 140px))}.csv-preview-hud>div:first-child{min-width:180px}
.track-preview-number{width:28px;height:28px;border-radius:50%;background:#2f70b7;color:white;border:2px solid white;box-shadow:0 2px 8px rgba(0,0,0,.25);display:grid;place-items:center;font:800 12px/1 Arial,sans-serif}
.track-merge-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;border:1px solid #d7e0e5;border-radius:10px;background:#f7faf9;color:#425761;margin-bottom:12px}.track-merge-summary b{color:var(--navy)}
.track-plan-list{display:grid;gap:7px;max-height:300px;overflow:auto;margin:12px 0}.track-plan-row{display:flex;align-items:center;gap:8px;border:1px solid #d9e2e7;border-radius:10px;padding:8px;background:#fff}.track-plan-row strong{display:block;color:var(--navy)}.track-plan-row small{display:block;color:var(--muted);margin-top:2px}.order-btn.reverse.active{background:#f7ead8;border-color:#d49a59;color:#8f552a}
.csv-file-row{display:grid;gap:8px}.selected-file-list{display:flex;gap:6px;flex-wrap:wrap}.selected-file-list span,.selected-file-line{font-size:12px;color:#526772}.selected-file-list span{padding:5px 8px;border-radius:8px;background:#f1f5f4;border:1px solid #d9e2df}
.csv-settings-grid{display:grid;grid-template-columns:1.3fr 1fr .7fr;gap:10px;margin:14px 0}.check-line{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:13px;color:#3f515b}.check-line input{width:18px;height:18px}.full-button{width:100%}
.csv-analysis-card{margin:14px 0 10px;border:1px solid #ccdcd4;border-radius:11px;padding:11px;background:#f7fbf8}.csv-analysis-card>strong{display:block;color:#175c45}.csv-analysis-card>span{display:block;color:#53666a;font-size:12px;margin-top:3px}.csv-result{padding:8px 0;border-top:1px solid #dde7e1}.csv-result:first-of-type{margin-top:8px}.csv-result b,.csv-result small{display:block}.csv-result small{color:#5f7176;margin-top:2px}.csv-result.error b{color:#9b3c34}.csv-result.error small{color:#8a5b56}
.csv-export-list{max-height:320px;overflow:auto}
.project-body{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-panel{border:1px solid #d6e0e4;border-radius:12px;padding:14px;background:#fff}.project-panel h4{margin:0 0 5px;color:var(--navy);font-size:15px}.project-panel p{margin:0 0 12px;font-size:12.5px;color:#53666f}.project-panel .primary,.project-file-button{width:100%}.project-summary{display:grid;gap:9px;margin-top:12px;padding:12px;border:1px solid #cbded3;border-radius:11px;background:#f6fbf8}.project-summary>strong{color:#175c45}.project-summary>span{font-size:12px;color:#5e706f}.project-counts{display:flex;gap:6px;flex-wrap:wrap}.project-counts b{font-size:11px;padding:5px 8px;border-radius:999px;background:#eef5f0;color:#355d49;border:1px solid #d2e0d6}
.workspace.csv-preview-focus{grid-template-columns:var(--rail) 0 minmax(400px,1fr) 0!important}.workspace.csv-preview-focus .tool-rail{display:flex!important}.workspace.csv-preview-focus .panel-reopen{display:none!important}
@media(max-width:1050px){.work-preview-hud{max-width:calc(100% - 110px)}.project-body{grid-template-columns:1fr}.csv-settings-grid{grid-template-columns:1fr 1fr}.check-line{grid-column:1/-1}}
@media(max-width:760px){.work-preview-hud{left:76px;right:10px;transform:none;max-width:none;top:10px;flex-wrap:wrap}.csv-preview-hud{top:auto;bottom:10px}.csv-settings-grid{grid-template-columns:1fr}.preview-actions{flex-wrap:wrap}}
.workspace.track-preview-focus{grid-template-columns:var(--rail) 0 minmax(400px,1fr) 0!important}.workspace.track-preview-focus .tool-rail{display:flex!important}.workspace.track-preview-focus .panel-reopen{display:none!important}


/* Fase 3 v2 · refinamientos de tracks y listado de objetos */
.track-preview-action{
  border:1px solid #c7782d;
  background:#c7782d;
  color:#fff;
  border-radius:8px;
  padding:8px 11px;
  font-size:11px;
  font-weight:800;
  box-shadow:0 2px 7px rgba(143,85,42,.16);
}
.track-preview-action:hover{background:#b96d28;border-color:#b96d28}
.track-line-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;margin-bottom:11px;border:1px solid #d7e0e5;border-radius:10px;background:#f7faf9;color:#4b6068}.track-line-summary strong{color:var(--navy)}.track-line-summary span{font-size:10.5px;color:var(--muted)}
.track-line-option{display:flex;align-items:center;gap:10px;padding:11px 12px;margin:8px 0;border:1px solid #d9e2df;border-radius:10px;background:#fff;cursor:pointer}.track-line-option.selected{border-color:#7eb3a3;background:#f0f7f4}.track-line-option input{width:18px;height:18px;accent-color:#176c70;flex:0 0 auto}.track-line-option strong{display:block;font-size:12px;color:#173f58}.track-line-option small{display:block;margin-top:3px;font-size:10px;line-height:1.35;color:#6b7a7e}.track-line-warning{margin-top:10px}

/* Fase 3 v3 · planificación de línea continua desde track segmentado */
#trackLineContinuous .button-row{margin-top:10px;align-items:center}
#trackLineContinuous .track-plan-list{margin-top:10px;max-height:280px}
#trackLineContinuous .track-plan-row .grow{min-width:0}
#trackLineContinuous .track-plan-row strong,#trackLineContinuous .track-plan-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Fase 3 v4 · encuadre visual del visor cartográfico */
.map-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:590;
  pointer-events:none;
  border:1px solid rgba(255,248,242,.92);
  box-shadow:inset 0 0 0 1px rgba(112,68,39,.10);
}

/* ===== Fase 3 v5 · navegación principal integrada en la cabecera ===== */
/* La cabecera marrón pasa a ser la barra principal de herramientas. */
.topbar{
  gap:16px;
  padding:0 12px;
  overflow:hidden;
}
.brand-wrap{flex:0 0 auto;min-width:205px}
.header-tools{
  min-width:0;
  flex:1 1 auto;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:3px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  padding:4px 0;
}
.header-tools::-webkit-scrollbar{display:none}
.header-tools .tool-button,
.header-action-button{
  flex:0 0 auto;
  min-width:57px;
  height:62px;
  padding:4px 5px 3px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:#fff7f1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.header-tools .tool-button small,
.header-action-button small{
  display:block!important;
  font-size:9px;
  line-height:1.05;
  font-weight:760;
  white-space:nowrap;
  color:inherit;
}
.header-tools .tool-button:hover,
.header-action-button:hover{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.16);
}
.header-tools .tool-button.active{
  background:#0d5f99;
  border-color:#277bb2;
  color:#fff;
  box-shadow:0 4px 12px rgba(19,60,92,.28),inset 0 0 0 1px rgba(255,255,255,.08);
}
.header-tools .tool-button .mobile-tool-icon,
.header-action-icon{
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:10px;
  display:grid;
  place-items:center;
  box-shadow:inset 0 0 0 1px rgba(23,63,88,.08),0 2px 6px rgba(48,28,17,.17);
  transition:.15s ease;
}
.header-tools .tool-button .mobile-tool-icon svg{width:25px;height:25px}
.header-tools .tool-button .mobile-tool-icon.icon-emoji{font-size:21px}
.header-tools .tool-button .mobile-tool-icon.icon-text{font-size:23px}
.header-tools .tool-button:hover .mobile-tool-icon,
.header-tools .tool-button.active .mobile-tool-icon,
.header-action-button:hover .header-action-icon{transform:translateY(-1px)}
.header-tools .tool-button.active .mobile-tool-icon{box-shadow:0 3px 9px rgba(0,0,0,.22)}
.header-tools-separator{
  width:1px;
  height:42px;
  margin:0 4px;
  flex:0 0 1px;
  background:rgba(255,255,255,.28);
}
.header-action-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.import-action-icon{background:#e9f4eb;color:#327554}
.export-action-icon{background:#eef0fa;color:#5a62a0}
.project-action-icon{background:#fff1e5;color:#9b5d32}

/* Sin barra vertical: los paneles y el visor aprovechan todo el ancho. */
.workspace{grid-template-columns:var(--tools) minmax(400px,1fr) var(--inspector)}
.workspace.tools-collapsed{grid-template-columns:0 minmax(400px,1fr) var(--inspector)}
.workspace.inspector-collapsed{grid-template-columns:var(--tools) minmax(400px,1fr) 0}
.workspace.tools-collapsed.inspector-collapsed{grid-template-columns:0 minmax(400px,1fr) 0}
.left-resizer{left:calc(var(--tools) - 4px)}

/* Modos de trabajo ampliado: solo mapa entre paneles de ancho cero. */
.workspace.draw-focus,
.workspace.edit-focus,
.workspace.csv-preview-focus,
.workspace.track-preview-focus{grid-template-columns:0 minmax(400px,1fr) 0!important}
.workspace.draw-focus .panel-reopen,
.workspace.edit-focus .panel-reopen,
.workspace.csv-preview-focus .panel-reopen,
.workspace.track-preview-focus .panel-reopen{display:none!important}

.metric-grid.single-metric{grid-template-columns:minmax(110px,1fr)}
.metric-grid.single-metric .metric{max-width:150px}

@media(max-width:1180px){
  .brand-wrap{min-width:180px}
  .brand-sub{display:none}
  .header-tools .tool-button,.header-action-button{min-width:52px}
}
@media(max-width:1050px){
  .workspace{grid-template-columns:var(--tools) minmax(350px,1fr)}
  .workspace.tools-collapsed{grid-template-columns:0 minmax(350px,1fr)}
  .workspace.inspector-collapsed{grid-template-columns:var(--tools) minmax(350px,1fr)}
  .workspace.tools-collapsed.inspector-collapsed{grid-template-columns:0 minmax(350px,1fr)}
  .brand-wrap{min-width:160px}
  .brand img{width:40px;height:40px}
  .brand-name{font-size:18px}
}
@media(max-width:760px){
  .topbar{gap:7px;padding:0 7px}
  .brand-wrap{min-width:auto}
  .brand-name{font-size:16px}
  .brand img{width:38px;height:38px}
  .header-tools .tool-button,.header-action-button{min-width:48px;height:60px;padding-left:3px;padding-right:3px}
  .header-tools .tool-button small,.header-action-button small{font-size:8px}
  .header-tools .tool-button .mobile-tool-icon,.header-action-icon{width:33px;height:33px;flex-basis:33px}
  .workspace{grid-template-columns:1fr}
  .workspace.tools-collapsed,.workspace.inspector-collapsed,.workspace.tools-collapsed.inspector-collapsed{grid-template-columns:1fr}
  .tool-panel{left:0;width:min(290px,100vw)}
  .inspector{width:min(340px,100vw)}
}


/* ===== Fase 3 v6 · contexto de proyecto en cabecera ===== */
.project-context{
  flex:0 1 230px;
  min-width:150px;
  max-width:250px;
  margin-left:auto;
  height:42px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:10px;
  background:rgba(70,34,18,.18);
  color:#fffaf6;
  display:flex;
  align-items:center;
  gap:8px;
  overflow:hidden;
}
.project-context svg{
  width:19px;
  height:19px;
  flex:0 0 19px;
  fill:none;
  stroke:#f3dbc9;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.project-context strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  font-weight:720;
  letter-spacing:.1px;
}
@media(max-width:1280px){.project-context{max-width:190px;flex-basis:170px}}
@media(max-width:1120px){.project-context{display:none}}


/* === CARTOFIELD WEB RC01: mapa libre + ventanas flotantes === */
:root{--top:82px;--cf-bottom-safe:76px;--cf-popup-edge:12px}
html,body{height:100%;height:100dvh}
.app-shell{height:100vh;height:100dvh;grid-template-rows:var(--top) minmax(0,1fr)!important}
.topbar{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:8px 18px!important;background:linear-gradient(105deg,#123c39 0%,#0e404a 53%,#0b2d4f 100%)!important;border-bottom:1px solid #1c5f60!important;box-shadow:0 4px 14px rgba(2,27,41,.24)!important}
.topbar .brand-name,.topbar .brand-name span{color:#fff!important}.topbar .brand-sub{color:#c4e2df!important}
.topbar .brand img{background:rgba(255,255,255,.11)!important;border:1px solid rgba(218,243,240,.22);padding:3px!important}
.brand-wrap{flex:0 1 auto;min-width:0}
.header-tools{display:flex!important;align-items:center;gap:9px;justify-content:flex-end;min-width:0;flex:0 1 auto;overflow:visible}
.header-tools .tool-button{order:9;display:flex;min-height:62px!important;width:81px;padding:5px!important;border:1px solid transparent!important;border-radius:13px!important;color:#e6f3f3;background:transparent;flex-direction:column;gap:4px!important}
.header-tools .tool-button small{display:block!important;color:#e8f7f5!important;font-size:10px!important;font-weight:700}
.header-tools .tool-button[data-tool="geometry"]{order:1}
.header-tools .tool-button[data-tool="waypoints"]{order:2}
.header-tools .tool-button[data-tool="tracks"]{order:3}
.header-tools .tool-button[data-tool="layers"]{order:4}
.header-tools .tool-button[data-tool="more"]{order:5}
.header-tools .tool-button[data-tool="maps"],.header-tools .tool-button[data-tool="csv"],.header-tools .tool-button[data-tool="measure"],.header-tools .header-action-button,.header-tools .header-tools-separator{display:none!important}
.header-tools .tool-button.active,.header-tools .tool-button:hover{background:rgba(233,255,247,.12)!important;border-color:rgba(208,243,228,.3)!important;box-shadow:inset 0 -3px 0 rgba(113,207,165,.75)!important}
.header-tools .tool-button .mobile-tool-icon{width:30px!important;height:30px!important;display:grid;place-items:center;background:transparent!important;border-radius:0!important;box-shadow:none!important;font-size:23px;color:#c9e8e6}
.header-tools .tool-button .mobile-tool-icon svg{background:transparent!important;width:29px!important;height:29px!important;padding:0!important;box-shadow:none!important;transform:none!important;filter:brightness(1.15)}
.header-tools .tool-button[data-tool="geometry"] .mobile-tool-icon svg{width:34px!important;height:34px!important}
.header-tools .tool-button[data-tool="more"] .mobile-tool-icon{color:#e7f5f2}
.project-context{display:none!important}
/* Ninguna columna lateral consume espacio del visor. Se conservan sus nodos y listeners. */
.workspace,.workspace.tools-collapsed,.workspace.inspector-collapsed,.workspace.tools-collapsed.inspector-collapsed,.workspace.draw-focus,.workspace.edit-focus,.workspace.track-preview-focus,.workspace.csv-preview-focus{display:block!important;position:relative!important;height:100%!important;min-height:0!important;grid-template-columns:none!important;overflow:hidden!important}
.workspace .map-stage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-width:0!important;z-index:1}
.workspace .tool-panel,.workspace .inspector{display:none!important;position:absolute!important;z-index:1100!important;left:auto!important;top:12px!important;right:12px!important;bottom:auto!important;width:min(410px,calc(100% - 24px))!important;max-width:none!important;max-height:calc(100% - 26px)!important;background:rgba(251,253,251,.99)!important;border:1px solid #cbded7!important;border-radius:18px!important;box-shadow:0 18px 48px rgba(9,41,51,.26)!important;overflow:hidden!important;transition:none!important;flex-direction:column!important}
.workspace.cf-tool-open .tool-panel{display:flex!important}
.workspace.cf-inspector-open .inspector{display:flex!important}
.panel-head{flex:0 0 66px;height:66px!important;padding:10px 14px!important;background:linear-gradient(180deg,#fff,#f1f8f4)!important;border-bottom:1px solid #d9e8e1!important}
.panel-kicker{color:#66867b!important;letter-spacing:1.3px;font-size:10px!important}
.panel-head h2{color:#143e34!important;font-size:19px!important}
#collapseTools,#collapseInspector{width:40px!important;height:40px!important;font-size:24px!important;color:#234c43!important;border-radius:12px!important}
.tool-content{height:auto!important;min-height:0!important;flex:1 1 auto!important;overflow:auto!important;padding:14px!important;overscroll-behavior:contain}
.inspector-tabs{flex:0 0 56px;height:56px!important;align-items:center!important;padding:5px 12px!important;background:linear-gradient(180deg,#fff,#f1f8f4)!important}
.inspector-tabs>button:not(.icon-button){height:43px!important;font-size:13px!important;color:#35695d!important}
.inspector-tabs>button.active{border-bottom-color:#1d9775!important;color:#133f36!important}
.inspector .tab-pane{height:auto!important;flex:1 1 auto!important;min-height:0!important;overflow:auto!important;padding:12px!important;overscroll-behavior:contain}
.panel-reopen,.panel-resizer,.left-resizer,.right-resizer{display:none!important}
.place-search{right:11px!important;top:11px!important;width:min(350px,calc(100% - 170px))!important;z-index:640!important}
.cf-floating-tools{position:absolute;top:66px;right:11px;z-index:650;display:flex;flex-direction:column;gap:9px;pointer-events:auto}
.cf-floating-tools button{height:46px;width:46px;display:grid;place-items:center;border-radius:13px;border:1px solid #cbded5;background:linear-gradient(180deg,#fff,#edf6f1);color:#1e5a4f;box-shadow:0 5px 16px rgba(4,34,41,.18);padding:0}
.cf-floating-tools button:hover{background:#e4f5eb;transform:translateY(-1px)}
.cf-floating-tools button svg{width:25px;height:25px}
.cf-floating-tools button span{font-size:23px;line-height:1}
.cf-layers-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.cf-layers-quick button{min-height:43px}
.cf-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cf-more-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:97px;background:linear-gradient(180deg,#fff,#f2f8f5);border:1px solid #d3e1d9;border-radius:14px;color:#214d40;font-size:12px;font-weight:800;padding:10px;text-align:center}
.cf-more-choice:hover{background:#e7f5ec;border-color:#9bbfae}
.cf-more-choice svg{height:29px;width:29px;fill:none;stroke:#236b64;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* Las ventanas propias del motor conservan su lógica pero evitan cubrir toda la pantalla. */
.modal{border:1px solid #c8dfd5!important;border-radius:17px!important;max-height:calc(100dvh - 94px)!important;box-shadow:0 20px 55px rgba(0,34,42,.28)!important}
.modal-head{background:linear-gradient(105deg,#123f3b,#125867)!important}
.modal-head h3,.modal-head small{color:#fff!important}
.modal-head .modal-close{color:#fff!important;font-size:26px!important}
.modal-body{min-height:0;overflow:auto!important;max-height:calc(100dvh - 165px)!important}
.modal-xwide{width:min(800px,calc(100vw - 30px))!important;max-height:calc(100dvh - 94px)!important}
.wms-manager-grid{grid-template-columns:1fr!important}
/* Los HUDs permanecen independientes del sistema de ventanas. */
.draw-hud,.edit-hud,.simplify-hud,.work-preview-hud{z-index:850!important}
@media(max-width:800px){
 :root{--top:134px}
 .topbar{flex-wrap:wrap!important;align-content:center!important;justify-content:center!important;gap:4px!important;padding:7px 10px!important}
 .brand-wrap{width:100%;justify-content:flex-start}.brand img{width:39px!important;height:39px!important}.brand-name{font-size:17px!important}.brand-sub{display:block!important;font-size:10px!important}
 .header-tools{width:100%;justify-content:space-around!important;gap:2px!important}
 .header-tools .tool-button{width:auto!important;flex:1 1 0!important;min-width:0!important;min-height:57px!important;border-radius:12px!important;padding:3px 2px!important}
 .header-tools .tool-button small{font-size:9.5px!important}
 .header-tools .tool-button .mobile-tool-icon{width:26px!important;height:26px!important;font-size:21px!important}
 .header-tools .tool-button .mobile-tool-icon svg{width:25px!important;height:25px!important}
 .workspace .tool-panel,.workspace .inspector{top:auto!important;left:10px!important;right:10px!important;bottom:max(var(--cf-bottom-safe),env(safe-area-inset-bottom,0px))!important;width:auto!important;max-height:calc(100% - 98px)!important;border-radius:20px!important}
 .panel-head{height:61px!important;flex-basis:61px!important}.panel-head h2{font-size:18px!important}
 .cf-floating-tools{top:70px;right:10px}
 .place-search{width:min(270px,calc(100% - 115px))!important;right:10px!important}
 .map-toolbar{top:12px!important;left:58px!important}
 .modal{top:auto!important;bottom:max(var(--cf-bottom-safe),env(safe-area-inset-bottom,0px))!important;left:10px!important;right:10px!important;transform:none!important;width:auto!important;max-height:calc(100dvh - var(--top) - 95px)!important}
 .modal-body{max-height:calc(100dvh - var(--top) - 164px)!important}
 .modal-xwide,.modal-wide{width:auto!important}
 .wms-manager-grid{grid-template-columns:1fr!important}
 .draw-hud,.edit-hud,.simplify-hud,.work-preview-hud,.csv-preview-hud{top:auto!important;bottom:max(76px,env(safe-area-inset-bottom,0px))!important;left:10px!important;right:10px!important;transform:none!important;width:auto!important;max-width:none!important;max-height:calc(100% - 100px)!important;overflow:auto!important;flex-wrap:wrap!important}
 .draw-hud .draw-actions,.work-preview-hud .preview-actions{flex-wrap:wrap!important}
 .coords-hud{bottom:39px!important;max-width:calc(100% - 20px)!important;overflow-x:auto;font-size:9px!important}
}
@media (max-width:400px){.brand-name{font-size:16px!important}.header-tools .tool-button small{font-size:9px!important}}

/* RC01: la barra móvil no debe heredar el alto 100% de la cabecera antigua. */
@media(max-width:800px){
  .header-tools{height:62px!important;min-height:62px!important;flex:0 0 100%!important;align-self:auto!important;align-items:center!important;padding:0!important;overflow:visible!important}
  .brand-wrap{flex:0 0 40px!important;height:40px!important;align-self:auto!important}
  .topbar{align-content:center!important;row-gap:6px!important}
}
@media(max-width:800px){
  .brand-wrap{width:100%!important;flex:0 0 40px!important;justify-content:flex-start!important}
  .brand{height:40px!important;width:auto!important;max-width:100%!important}
  .brand-name{white-space:nowrap!important}
  .brand-sub{white-space:nowrap!important}
}
@media(max-width:800px){.topbar .brand-wrap{flex:0 0 100%!important;width:100%!important;min-width:0!important}.topbar .brand{width:max-content!important;height:40px!important}}


/* RC02: map object context menu, layer/objects separation, measurement in header */
.header-tools .tool-button[data-tool="measure"]{display:flex!important;order:5!important}
.header-tools .tool-button[data-tool="more"]{order:6!important}
.header-tools .tool-button[data-tool="measure"] .mobile-tool-icon svg{stroke:#cbe8e5!important;color:#cbe8e5!important}
.workspace[data-cf-inspector="layers"] .inspector-tabs>button[data-tab="objectsTab"],
.workspace[data-cf-inspector="objects"] .inspector-tabs>button[data-tab="layersTab"]{display:none!important}
.workspace[data-cf-inspector="layers"] .inspector-tabs,
.workspace[data-cf-inspector="objects"] .inspector-tabs{justify-content:space-between!important}
.workspace[data-cf-inspector="layers"] .inspector-tabs>button[data-tab="layersTab"],
.workspace[data-cf-inspector="objects"] .inspector-tabs>button[data-tab="objectsTab"]{pointer-events:none!important;border-bottom:0!important;font-size:17px!important;font-weight:800!important}
.cf-object-map-popup .leaflet-popup-content-wrapper{border-radius:16px;box-shadow:0 14px 45px rgba(0,32,48,.23);overflow:hidden;padding:0;border:1px solid #c9ddd6}
.cf-object-map-popup .leaflet-popup-content{margin:0!important;min-width:260px;max-width:min(385px,calc(100vw - 60px));}
.cf-object-map-popup .leaflet-popup-close-button{right:10px!important;top:8px!important;font-size:22px!important;color:#31594b!important;z-index:5}
.cf-object-popup-inner{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#23433a;font-size:12px}
.cf-object-popup-title{display:flex;align-items:center;gap:8px;min-height:45px;padding:10px 36px 10px 13px;background:linear-gradient(100deg,#eef8f2,#f9fcf9);border-bottom:1px solid #d4e6db}
.cf-object-popup-title strong{font-size:14px;min-width:0;overflow-wrap:anywhere}
.cf-object-popup-title button{width:28px;height:28px;flex:0 0 28px;border:1px solid #c6d8cd;border-radius:9px;background:white;color:#2f6550;font-size:18px;cursor:pointer}
.cf-rename-row{display:flex;gap:4px;padding:9px;border-bottom:1px solid #d4e6db}
.cf-rename-row[hidden],.cf-object-popup-title[hidden]{display:none!important}
.cf-rename-row input{flex:1;min-width:0;border:1px solid #c0d4c9;border-radius:8px;padding:8px}
.cf-rename-row button{border:1px solid #bed4c7;background:#ecf7f1;border-radius:8px;padding:6px 8px}
.cf-object-popup-data{padding:8px 12px;max-height:185px;overflow:auto}
.cf-object-prop{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed #e2ece5}
.cf-object-prop span{color:#718278}.cf-object-prop b{text-align:right;font-size:12px;font-weight:650;overflow-wrap:anywhere}
.cf-object-popup-notes{margin:1px 12px 8px;max-height:65px;overflow:auto;color:#53685f;font-style:italic}
.cf-object-popup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px 12px 13px;background:#f7faf8;border-top:1px solid #e0eae5}
.cf-object-popup-actions button{padding:8px 5px;min-height:36px;border:1px solid #c9d8cf;border-radius:9px;background:white;color:#245847;font-size:11px;font-weight:750;cursor:pointer}
.cf-object-popup-actions button:hover{background:#e6f4ec}.cf-object-popup-actions button.cf-danger{color:#a43e3e;border-color:#e9caca}
.cf-import-group{display:block!important;padding:12px!important;margin-top:12px!important}
.cf-import-file-title{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.cf-import-file-title small{color:#687b71}
.cf-import-selectbar{display:flex;gap:6px;justify-content:flex-end;margin:6px 0}
.cf-import-selectbar button{font-size:11px;padding:5px 10px;border:1px solid #c8dbce;border-radius:8px;background:#f7fbf8;color:#245e4e}
.cf-import-items{border:1px solid #e0e9e1;border-radius:10px;max-height:235px;overflow:auto}
.cf-import-item{display:flex;gap:10px;align-items:center;padding:8px 9px;border-bottom:1px solid #e8eee8;cursor:pointer}
.cf-import-item:last-child{border-bottom:0}.cf-import-item:has(input:checked){background:#f2faf4}
.cf-import-item input{height:18px;width:18px;flex:0 0 18px;accent-color:#20845b}
.cf-import-type{width:35px;height:35px;display:flex;align-items:center;justify-content:center;flex:0 0 35px}
.cf-import-type svg{max-width:35px;max-height:35px}
.cf-import-details{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}
.cf-import-details strong{overflow-wrap:anywhere;font-size:12px}
.cf-import-details small{color:#688075}
@media(max-width:800px){
 .header-tools .tool-button{min-width:0!important}
 .header-tools .tool-button small{font-size:9px!important}
 .cf-object-map-popup .leaflet-popup-content{max-width:calc(100vw - 54px)}
}
/* Keep visor shortcuts reachable while a desktop floating window is open. */
@media(min-width:801px){
 .workspace.cf-tool-open .cf-floating-tools,.workspace.cf-inspector-open .cf-floating-tools{right:435px!important;z-index:1300!important}
}
