:root{
  --ink:#16200f; --ink2:#4a5d3f; --line:#d3d9cd; --soft:#f2f4ee; --bg:#fbfcfa;
  --green:#3f7d34; --amber:#c98a12; --grey:#8a8f86; --red:#b8442e; --accent:#2f4a26;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font-family:inherit;font-size:13px;color:var(--ink)}
button{cursor:pointer}

.bar{min-height:52px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--accent);color:#fff;flex-wrap:nowrap;overflow-x:auto}
.bar h1{font-size:14px;margin:0 14px 0 0;font-weight:650;white-space:nowrap}
.bar .sep{width:1px;height:26px;background:rgba(255,255,255,.25);flex:none}
.tb{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 11px;border-radius:7px;white-space:nowrap;font-size:12.5px}
.tb:hover{background:rgba(255,255,255,.22)}
.tb.on{background:#fff;color:var(--accent);font-weight:650;border-color:#fff}
.tb.pri{background:#fff;color:var(--accent);font-weight:700;border-color:#fff;padding:6px 16px}
.tb.pri:hover{background:#eef1ea}
.tb.ok{background:#2fa84f;color:#fff;border-color:#2fa84f}
#aviso{display:none;padding:9px 14px;font-size:12.5px;background:#fff6e0;border-bottom:1px solid #e8d9a8;color:#6b4e00}
#aviso.on{display:block}
#aviso.mal{background:#fdeee9;border-bottom-color:#e8c4b8;color:#8c2f13}
#aviso.bien{background:#eaf6ec;border-bottom-color:#bfe0c6;color:#1d5c2c}
#aviso button{margin-left:10px;padding:3px 10px;border-radius:6px;border:1px solid currentColor;background:#fff;font-size:12px}
body.solo-lectura #mAdd,body.solo-lectura #bSave,body.solo-lectura #bPub,body.solo-lectura #newM,
body.solo-lectura .solo-editor,body.solo-lectura .arow input[type=color]{display:none!important}
body.solo-lectura .arow{cursor:default}

#edit{position:relative}
#fTitulo{text-transform:none;font-size:13px;letter-spacing:0;color:var(--ink);font-weight:700}
#fCerrar{position:absolute;top:6px;right:8px;border:none;background:none;font-size:22px;line-height:1;
  color:var(--ink2);padding:2px 6px;display:none}
.fdato{display:flex;gap:8px;font-size:12.5px;padding:3px 0;border-bottom:1px solid var(--soft)}
.fdato b{min-width:78px;color:var(--ink2);font-weight:600}
.fdato span{flex:1}
.fcoord{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.fchip{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:650;color:#fff}
.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin-top:9px}
.fotos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:7px;border:1px solid var(--line);
  cursor:zoom-in;background:var(--soft);display:block}
.sinfoto{margin-top:8px;font-size:11.5px;color:var(--ink2);font-style:italic}
.irbtns{display:flex;gap:6px;margin-top:10px}
.irbtn{flex:1;text-align:center;padding:10px 6px;border-radius:8px;text-decoration:none;font-weight:650;
  font-size:12.5px;border:1px solid var(--line);color:var(--ink);background:#fff}
.irbtn.g{background:var(--accent);color:#fff;border-color:var(--accent)}

#visor{position:fixed;inset:0;background:rgba(8,10,7,.96);z-index:3000;display:none;
  flex-direction:column;align-items:center;justify-content:center}
#visor.on{display:flex}
#vImg{max-width:100%;max-height:calc(100% - 96px);object-fit:contain}
#vBarra{position:absolute;bottom:0;left:0;right:0;height:64px;display:flex;align-items:center;
  justify-content:center;gap:18px;color:#fff;font-size:13px}
#vBarra button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);color:#fff;font-size:22px;line-height:1}
#vCerrar{position:absolute;top:10px;right:12px;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;font-size:20px}
#vTit{position:absolute;top:18px;left:16px;color:#fff;font-size:13px;font-weight:650}
@media print{#aviso{display:none!important}}
@media (max-width:760px){
  .wrap{flex-direction:column}
  #side{width:100%;max-height:44%;border-right:none;border-bottom:1px solid var(--line)}
  #mapwrap{flex:1;min-height:280px}
  .bar h1{display:none}
  #mAdd{order:-3} #bSave{order:-2} #bPub{order:-1}
  /* la ficha del puesto sube como panel inferior, que es como se usa en el monte */
  #edit{position:fixed;left:0;right:0;bottom:0;max-height:74vh;overflow:auto;z-index:1200;
    background:#fff;border-top:2px solid var(--accent);border-bottom:none;
    box-shadow:0 -6px 24px rgba(0,0,0,.28);border-radius:14px 14px 0 0;padding:12px 14px 18px}
  #fCerrar{display:block}
  .fotos{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
}
#saved{font-variant-numeric:tabular-nums}
.bar select{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;padding:6px 8px;border-radius:7px}
.bar select option{color:#000}
.spacer{flex:1}
#saved{font-size:11px;opacity:.75;white-space:nowrap}

.wrap{display:flex;height:calc(100% - 52px)}
#side{width:330px;flex:none;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#fff}
#mapwrap{flex:1;position:relative}
#map{position:absolute;inset:0}

.sec{padding:10px 12px;border-bottom:1px solid var(--line)}
.sec h2{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);margin:0 0 7px}
.row{display:flex;gap:6px;align-items:center}
.row+.row{margin-top:6px}
label.f{display:block;font-size:10.5px;color:var(--ink2);margin:0 0 3px;text-transform:uppercase;letter-spacing:.05em}
input[type=text],textarea,select.f{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff}
textarea{resize:vertical;min-height:52px}
.btn{padding:6px 10px;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:12.5px}
.btn:hover{background:var(--soft)}
.btn.pri{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.pri:hover{opacity:.9}
.btn.dan{color:var(--red);border-color:#e6c8c0}
.btn.dan:hover{background:#fbeeea}

#list{flex:1;overflow:auto}
.item{padding:8px 12px;border-bottom:1px solid var(--soft);cursor:pointer;display:flex;gap:8px;align-items:center}
.item:hover{background:var(--soft)}
.item.sel{background:#e8efe3;box-shadow:inset 3px 0 0 var(--accent)}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.item .cd{font-weight:650;font-size:13px;min-width:56px}
.item .mt{font-size:11px;color:var(--ink2);flex:1;text-align:right}
.item .mt.warn{color:var(--red);font-weight:600}
.empty{padding:22px 14px;color:var(--ink2);font-size:12.5px;line-height:1.5}

.chips{display:flex;gap:4px;flex-wrap:wrap}
.arow{display:flex;align-items:center;gap:7px;padding:5px 2px;cursor:pointer;border-radius:6px}
.arow:hover{background:var(--soft)}
.arow.on{background:#e8efe3;font-weight:650}
.arow input[type=color]{width:20px;height:20px;padding:0;border:1px solid var(--line);border-radius:4px;background:none;cursor:pointer;flex:none}
.arow .sw{width:20px;height:20px;border-radius:4px;border:1px solid var(--line);flex:none;
  background:linear-gradient(135deg,#e8443a 0 25%,#f2a413 25% 50%,#3b82f6 50% 75%,#4fc94f 75% 100%)}
.arow .an{flex:1;font-size:12.5px}
.arow .ac{font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}
#pleg{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 3mm;font-size:9.5px;align-items:center}
#pleg span{display:inline-flex;align-items:center;gap:4px}
#pleg i{width:9px;height:9px;border-radius:50%;display:inline-block;border:1px solid #333}
.chip{padding:4px 8px;border-radius:99px;border:1px solid var(--line);font-size:11.5px;background:#fff}
.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}

#hud{position:absolute;left:8px;bottom:8px;z-index:500;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}
#hint{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:500;background:var(--accent);color:#fff;padding:6px 14px;border-radius:99px;font-size:12.5px;display:none;box-shadow:0 2px 8px rgba(0,0,0,.2)}
#hint.on{display:block}

.mk{width:22px;height:22px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:700;color:#fff}
.lbl{background:rgba(255,255,255,.88);border:1px solid rgba(0,0,0,.25);border-radius:4px;padding:0 4px;font-size:11px;font-weight:650;color:#16200f;white-space:nowrap;
  text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff}
.leaflet-tooltip.lbl:before{display:none}

#print,#printhead{display:none}

body.printing .bar,body.printing #side,body.printing #hud,body.printing #hint{display:none!important}
body.printing .wrap{display:block;height:auto}
body.printing #mapwrap{position:relative;width:275mm;height:163mm;border:1px solid #999}
body.printing #map{position:absolute;inset:0}
body.printing #print,body.printing #printhead{display:block;padding:4mm 0 0}
body.printing{background:#fff}
#printhead h2{font-size:15px;margin:0 0 1mm}
#printhead .meta{font-size:9.5px;color:#4a5d3f;margin:0 0 3mm}

@media print{
  .bar,#side,#hud,#hint,.leaflet-control-container{display:none!important}
  .wrap{height:auto;display:block}
  #mapwrap{position:relative;width:275mm;height:163mm;page-break-after:always;border:none}
  #map{position:absolute;inset:0}
  #print,#printhead{display:block;padding:0}
  @page{size:A4 landscape;margin:10mm}
  body{background:#fff}
  #printhead{position:running(h)}
  #print h2{font-size:14px;margin:0 0 2mm}
  #print .meta{font-size:9px;color:#4a5d3f;margin:0 0 4mm}
  table{width:100%;border-collapse:collapse;font-size:9px}
  th{background:#2f4a26;color:#fff;text-align:left;padding:3px 4px;font-size:8px;text-transform:uppercase;letter-spacing:.04em}
  td{border:.5px solid #c8cfc2;padding:3px 4px}
  tr:nth-child(even) td{background:#f6f8f4}
}
