/* Halko · pantalla de campo (#/campo) */
.cp{max-width:760px;margin:0 auto;padding-bottom:20px}
.cp-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 0 16px}
.cp-cab small{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.cp-cab h1{margin:2px 0 0;font-family:var(--fd);font-size:clamp(1.5rem,6vw,2rem);line-height:1.1}
.cp-gps{flex:none;font-size:.78rem;padding:6px 10px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--tx2);white-space:nowrap}
.cp-gps.ok{border-color:rgba(46,204,143,.5);color:#2ecc8f}
.cp-hoy{margin:0 0 16px}
.cp-hoy h2{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tx2);margin:0 0 8px}
.cp-vis{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.cp-vis-t{display:flex;gap:12px;align-items:flex-start}
.cp-vis-t>b{font-family:var(--fd);font-size:1.25rem;color:var(--acc);min-width:52px}
.cp-vis-t strong{display:block}.cp-vis-t span{display:block;color:var(--tx2);font-size:.9rem}.cp-vis-t small{color:var(--tx3);font-size:.8rem}
.cp-vis-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cp-nada{color:var(--tx2);font-size:.92rem;margin:0 0 14px}
.cp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:620px){.cp-grid{grid-template-columns:repeat(3,1fr)}}
.cp-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-height:118px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--tx);cursor:pointer;font:inherit;transition:transform .12s ease,border-color .12s ease;-webkit-tap-highlight-color:transparent}
.cp-tile:active{transform:scale(.97)}
.cp-tile:hover{border-color:var(--acc)}
.cp-tile svg{width:30px;height:30px;fill:none;stroke:var(--acc);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:auto}
.cp-tile b{font-size:1rem;line-height:1.2}
.cp-tile span{font-size:.78rem;color:var(--tx2);line-height:1.3}
.cp-tile.dest{grid-column:1/-1;min-height:96px;flex-direction:row;align-items:center;gap:14px;background:linear-gradient(135deg,rgba(245,165,36,.18),transparent 70%),var(--card);border-color:rgba(245,165,36,.5)}
.cp-tile.dest svg{width:40px;height:40px;margin:0}
.cp-tile.dest b{font-size:1.15rem;display:block}
.cp-tile.dest span{display:block}
#cpAqui{margin-top:14px;scroll-margin-top:12px}
.cp-res h3{margin:0}.cp-res-c{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.cp-lista{display:grid;gap:8px;margin:8px 0;max-height:52vh;overflow:auto}
.cp-it{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--tx);font:inherit;cursor:pointer}
.cp-it b{display:block}.cp-it span{display:block;color:var(--tx2);font-size:.88rem}.cp-it small{color:var(--tx3);font-size:.78rem}
.cp-it.cerca{border-color:#2ecc8f;background:linear-gradient(135deg,rgba(46,204,143,.14),transparent),var(--card2)}
.cp-pie{text-align:center;font-size:.82rem;color:var(--tx3);margin-top:22px}
.cp-pie a{color:var(--tx2)}
.cp-voz{text-align:center}
.cp-onda{display:flex;gap:5px;justify-content:center;align-items:center;height:56px;margin:10px 0 4px}
.cp-onda i{width:6px;border-radius:3px;background:var(--acc);height:12px;animation:cpOnda 1s ease-in-out infinite}
.cp-onda i:nth-child(2){animation-delay:.1s}.cp-onda i:nth-child(3){animation-delay:.2s}.cp-onda i:nth-child(4){animation-delay:.3s}.cp-onda i:nth-child(5){animation-delay:.2s}.cp-onda i:nth-child(6){animation-delay:.1s}
.cp-onda.quieta i{animation:none;height:6px;opacity:.5}
@keyframes cpOnda{50%{height:48px}}
.cp-t{display:block;font-family:var(--fd);font-size:1.6rem;margin-bottom:8px}
/* En la app de las tiendas: sin nada que lleve a pagar */
.app-nativa .solo-web{display:none!important}
/* En la app: respeta la muesca y la barra de estado del móvil */
.app-nativa body{padding-top:env(safe-area-inset-top)}
.app-nativa .modal{padding-top:calc(env(safe-area-inset-top) + 10px)}
.app-nativa .onb{padding-top:calc(env(safe-area-inset-top) + 12px)}
