:root{
  --bg:#f4f5f7; --card:#fff; --text:#1d2330; --muted:#6b7385; --line:#e2e5ec;
  --brand:#1d3f94; --brand-d:#142d6e; --accent:#e8710a; --ok:#2f9e44; --warn:#e67700; --bad:#d6336c;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:inherit}
.muted{color:var(--muted);margin:0;font-size:13px}
.bad{color:var(--bad)} .okc{color:var(--ok)}
[hidden]{display:none!important}
svg.dist{vertical-align:middle;flex:none;filter:drop-shadow(0 1px 1px #0005)}
img.dist{vertical-align:middle;flex:none;object-fit:contain;filter:drop-shadow(0 1px 1px #0006)}  /* totes al mateix requadre, sense retallar ni deformar */
.top .who{display:inline-flex;align-items:center;gap:6px}
.distcell{display:flex;align-items:center;gap:8px}.distcell select{width:auto;max-width:170px}
#dlgUsers{width:min(1080px,96vw)}#dlgUsers .tbl select{width:auto}
.distprev:empty{display:none}
button,select,input,textarea,.btn{font:inherit}
button,.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;text-decoration:none;color:var(--text);display:inline-block}
button:hover,.btn:hover{background:#f0f1f5}
button.primary{background:var(--brand);border-color:var(--brand);color:#fff}
button.primary:hover{background:var(--brand-d)}
button.danger{color:var(--bad)}
button.mini{padding:2px 8px;font-size:12px;margin-left:8px}
input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;width:100%;color:var(--text)}

.top{background:#1d3f94!important;border-bottom:4px solid var(--accent)!important;color:#fff;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none}
.logo{width:46px;height:46px;border-radius:50%}.logo-s{width:34px;height:34px;border-radius:50%;vertical-align:middle}.top h1{color:#fff}.top .muted{color:#c9d4f2}.top .who{color:#fff}
h1{font-size:19px;margin:0}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.who{font-weight:600;color:var(--muted)}
.menu{position:relative}
.menu summary{color:var(--text);list-style:none;border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;background:#fff}
.menu summary::-webkit-details-marker{display:none}
.menu-body{position:absolute;right:0;top:110%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;min-width:210px;box-shadow:0 8px 24px #0002;z-index:10}
.menu-body button{border:0;text-align:left}
.menu-body hr{border:0;border-top:1px solid var(--line);width:100%;margin:4px 0}
.not-admin .admin-only{display:none}
.no-hist .hist-only{display:none!important}
.no-stock .stock-only{display:none!important}

.page{max-width:1150px;margin:0 auto;padding:16px 20px 60px}
.gh{font-size:18px;margin:18px 0 10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;text-decoration:none}
.card:hover{border-color:var(--brand);box-shadow:0 4px 14px #0001}
.cn{font-size:22px}
.bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ok)}

.uhead{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px}
.uhead h2{margin:0;font-size:20px;flex:1}
.uname{color:var(--accent)}
.back{text-decoration:none;color:var(--muted)}
.uactions{display:flex;gap:8px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:10px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.stat b{display:block;font-size:24px}
.stat span{color:var(--muted);font-size:13px}
.stat .bar{margin-top:8px}
.stat.ok b{color:var(--ok)} .stat.warn b{color:var(--warn)} .stat.bad b{color:var(--bad)}
.filters{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:12px 0}

.group{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:12px}
.group>summary{cursor:pointer;padding:12px 16px;font-weight:600;display:flex;justify-content:space-between;gap:10px;background:#fafbfc}
.group>summary small{font-weight:400;color:var(--muted)}
/* Quadrícula de seccions del checklist (pensada per a tauleta) */
.tgh{font-size:17px;margin:18px 0 10px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:6px}
.tile{--tc:var(--brand);display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:left;min-height:118px;padding:14px 16px;border:1px solid var(--line);border-top:10px solid var(--tc);border-radius:12px;background:var(--card);cursor:pointer;font:inherit;color:inherit}
.tile:hover,.tile:focus-visible{box-shadow:0 4px 14px #0002;border-color:var(--brand);border-top-color:var(--tc)}
.tile:active{transform:scale(.98)}
.tile b{font-size:18px;line-height:1.2}
.tile>span{font-size:13px;color:var(--muted)}
.tile .bar{margin-top:auto}
.tile.done{background:#f2fbf4}
.tile.hasbad{background:#fff5f5}
.tile .bad,.tile .okc{font-weight:600}
.secbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 0}
.secnav{padding:10px 16px;font-size:15px;min-height:44px}
.sechead{padding:12px 16px;font-weight:600;font-size:17px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;background:#fafbfc}
.sechead small{font-weight:400;color:var(--muted);font-size:13px}
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:8px 12px;border-top:1px solid var(--line)}
.tbl td{padding:7px 12px;border-top:1px solid var(--line);vertical-align:middle}
.tbl td.r,.tbl th.r{text-align:right;white-space:nowrap}
.lines td select{width:auto;padding:5px 8px}
.lines td input{padding:5px 8px;min-width:140px}
.lines .meta{font-size:12px;color:var(--muted);white-space:nowrap}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:-1px;border:1px solid #0003}
.qty{color:var(--muted);font-size:13px}
.badge{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;background:#e7ecf7;color:#34457a}
.cad{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:600;background:#e6f4ea;color:#1e6b34;border:1px solid transparent;white-space:nowrap}
button.cad{cursor:pointer;min-height:0;line-height:1.4}
.cad.soon{background:#fff3d6;color:#8a5a00}
.cad.past{background:#fde2e1;color:#b3261e}
.cad.none{background:transparent;color:var(--muted);border:1px dashed var(--muted);font-weight:400}
tr.medrow td:first-child{border-left:4px solid #c0392b}
.lines tr.st-ok{background:#f2fbf4}
.lines tr.st-no,.lines tr.st-falta{background:#fff0f5}
.lines tr.st-rev{background:#fff}
.lines tr.exp td.nm{box-shadow:inset 4px 0 var(--warn)}
.lines tr.st-no td.nm,.lines tr.st-falta td.nm{box-shadow:inset 4px 0 var(--bad)}
.lines tr.st-ok td.nm{box-shadow:inset 4px 0 var(--ok)}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600}
.pill.st-ok{background:#d3f9d8;color:#1e7a33}.pill.st-no,.pill.st-falta{background:#ffdeeb;color:#a61e4d}.pill.st-rev{background:#eef0f4;color:var(--muted)}
.empty{text-align:center;color:var(--muted);padding:40px}
.err{color:var(--bad);min-height:1.2em;margin:8px 0 0;font-size:13px}

dialog{border:0;border-radius:14px;padding:20px;width:min(520px,94vw);box-shadow:0 20px 60px #0004}
dialog.wide{width:min(760px,94vw)}
dialog::backdrop{background:#0006}
dialog h2{margin:0 0 10px}
dialog h3{margin:16px 0 0;font-size:15px}
dialog label{display:block;font-size:13px;color:var(--muted);margin-top:10px}
dialog label input,dialog label select{margin-top:4px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dlg-actions{display:flex;gap:8px;margin-top:16px}
.spacer{flex:1}
.tpl-scroll{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px}

/* Preventius */
.svform{display:grid;grid-template-columns:150px 2fr 1fr 1fr auto;gap:8px 10px;align-items:end;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.svbar,.svcbar{background:#fff4e6;border:1px solid #ffd8a8;border-radius:8px;padding:6px 10px}
@media (max-width:720px){.svform{grid-template-columns:1fr 1fr}}

/* Emergències */
.top .btn-em{background:#c92a2a;border-color:#c92a2a;color:#fff;font-weight:600}.top .btn-em:hover{background:#a51111}
.embadge{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:99px;background:#fff;color:#c92a2a;font-size:12px;font-weight:700;text-align:center;animation:empulse 1s infinite}
@keyframes empulse{50%{transform:scale(1.25)}}
.emform{background:var(--card);border:1px solid var(--line);border-top:6px solid #c92a2a;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.emgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px}.emgrid .span2{grid-column:span 2}
.emto{border:1px solid var(--line);border-radius:8px;margin:0;padding:6px 12px 10px}.emto legend{font-weight:600}
.emquick{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.emquick button{padding:6px 12px;min-height:40px}
.emchecks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 12px;max-height:260px;overflow:auto}
.emchecks label.chk{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--text);margin:0}
.emchecks label.chk:hover{background:#f2f5fc}.emchecks input{width:20px;height:20px;margin:0;flex:none}
.emsend{background:#c92a2a!important;border-color:#c92a2a!important;font-size:17px;padding:12px 22px}
.emcard{background:var(--card);border:1px solid var(--line);border-left:8px solid #c92a2a;border-radius:12px;padding:12px 14px;margin-bottom:10px}
.emcard.prio-mitjana{border-left-color:var(--warn)}.emcard.prio-baixa{border-left-color:#868e96}.emcard.closed{opacity:.65}
.emch{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:17px}
.prio{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;color:#fff;background:#c92a2a;vertical-align:middle}
.prio.prio-mitjana{background:var(--warn)}.prio.prio-baixa{background:#868e96}
.emrow{display:flex;gap:10px;align-items:flex-start;margin:6px 0}.emrow>span{font-size:18px}
.emrow div{display:flex;flex-direction:column}.emrow small{font-size:11px;text-transform:uppercase;color:var(--muted)}.emrow b{font-size:15px}
.emdesc{white-space:pre-wrap;background:#fff5f5;border-radius:8px;padding:8px 10px;margin:8px 0;font-size:15px}
.emacks{margin-top:8px}.emacks .crewchips{margin-top:6px}
.ack{font-size:13px;padding:3px 10px;border-radius:99px;border:1px solid var(--line);background:#f7f8fa}
.ack-vaig{background:#e6f6ea;border-color:#b6e2c1;color:#2b7a3b}.ack-rebut{background:#e7edfb;border-color:#c5d2f2;color:#1d3f94}
.ack-no{background:#fff0f3;border-color:#f5c2d0;color:var(--bad)}.ack-vist{background:#fff8e6;border-color:#ffe08a;color:#8a6100}
.emfoot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.emfoot button{min-height:42px}
dialog.dlg-alert{width:min(620px,96vw);padding:0;border:4px solid #c92a2a;overflow:auto;max-height:94vh}
dialog.dlg-alert::backdrop{background:#7a0000cc}
dialog.dlg-alert #alBody{padding:0 18px}dialog.dlg-alert h2{margin:12px 0 4px}
.alhead{margin:0 -18px;padding:12px 18px;background:#c92a2a;color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;animation:emflash 1s infinite}
.alhead span{font-weight:800;font-size:18px;letter-spacing:.04em}.alhead small{opacity:.9}
.alhead.prio-mitjana{background:var(--warn)}.alhead.prio-baixa{background:#868e96;animation:none}
@keyframes emflash{50%{filter:brightness(1.25)}}
#alErr{padding:0 18px}
.alacts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:12px 18px 18px}
.alacts button{min-height:58px;font-size:17px;font-weight:700;border-width:2px}
.alvaig{background:#2f9e44!important;border-color:#2f9e44!important;color:#fff!important}
.alrebut{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}
.alno{color:var(--bad)}
.emnote textarea{border:2px solid var(--accent);background:#fff8f0}
.emnew{background:#fff3bf;border-radius:8px;outline:2px solid #fab005;padding:2px 6px}
.emupd{background:#fff3bf;border:2px solid #fab005;border-radius:10px;padding:8px 12px;margin:6px 0 10px;display:flex;flex-direction:column;gap:8px}
.emupd small{display:block;color:#8a6100;font-size:12px}.emupd b{font-size:15px}.emupd p{margin:0}
.emtl{background:#f7f8fa;border-radius:8px;padding:6px 10px;margin:8px 0}.emtl summary{cursor:pointer;font-weight:600}
.emtli{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-top:1px solid var(--line)}.emtli:first-of-type{border-top:0}
#dlgEmEdit .emform{border:0;padding:0}
@media (max-width:720px){.emgrid{grid-template-columns:1fr 1fr}.emgrid .span2{grid-column:1/-1}}

/* Preventius: calendari */
.cal{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.calhead{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.calhead b{font-size:19px;text-transform:capitalize;min-width:160px;text-align:center}
.calhead button{min-width:44px;min-height:40px;font-size:18px}.calhead button[data-cal="0"]{font-size:14px;margin-left:auto}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cdow{font-size:12px;font-weight:600;color:var(--muted);text-align:center;padding:2px 0;text-transform:uppercase}
.cday{min-height:92px;border:1px solid var(--line);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:3px;background:#fff;cursor:default;overflow:hidden}
.cday.oth{background:#f7f8fa}.cday.oth .dn{color:#b5bac6}
.cday.past{background:#fafbfc}
.cday.tod{border:2px solid var(--accent)}.cday.tod .dn{background:var(--accent);color:#fff;border-radius:99px;padding:0 7px}
.dn{font-size:13px;font-weight:600;align-self:flex-start}
.cev{display:block;width:100%;text-align:left;font-size:12px;line-height:1.25;padding:4px 6px;border-radius:6px;border:1px solid #c5d2f2;background:#e7edfb;color:#1d3f94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cev small{font-weight:700}
.cev.mine{background:var(--brand);border-color:var(--brand);color:#fff}
.cev.started{background:#e6f6ea;border-color:#b6e2c1;color:#2b7a3b}
.callegend{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.callegend .cev{display:inline-block;width:auto;cursor:default}
@media (max-width:600px){.cday{min-height:58px}.cev{font-size:0;padding:0;height:8px;border-radius:99px}.cev small{display:none}}
/* Propers preventius */
.uplist{display:flex;flex-direction:column;gap:8px}
.upc{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-left:6px solid #c5d2f2;border-radius:12px;padding:10px 14px;cursor:pointer}
.upc.mine{border-left-color:var(--brand)}
.upc:hover{box-shadow:0 4px 14px #0001}
.upd{display:flex;flex-direction:column;align-items:center;min-width:48px;line-height:1.1}.upd b{font-size:24px}.upd span{font-size:12px;text-transform:uppercase;color:var(--muted)}
.upi{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.upi b{font-size:16px}
.upbtn{min-height:44px;padding:8px 16px;white-space:nowrap}
/* Diàlegs del calendari */
.plgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px}.plgrid .span3{grid-column:span 3}
.plloc,.plneeds{border:1px solid var(--line);border-radius:8px;margin:12px 0 0;padding:6px 12px 10px}
.plsearch{display:flex;gap:8px;margin:8px 0}.plsearch input{flex:1}
.map{height:280px;border-radius:8px;border:1px solid var(--line);z-index:0}.map.small{height:200px;margin:6px 0}
#plMapInfo{margin-top:6px}
.linkbtn{border:0;background:none;padding:0;color:var(--bad);text-decoration:underline;font-size:13px}
.plneeds summary{cursor:pointer;font-weight:600;padding:4px 0;color:var(--text)}
.needgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 10px}
.needs{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.need{font-size:13px;padding:3px 10px;border-radius:99px;border:1px solid}
.need.ok{background:#e6f6ea;border-color:#b6e2c1;color:#2b7a3b}
.need.falta{background:#fff0f3;border-color:#f5c2d0;color:var(--bad)}
.pvhours{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px;margin:6px 0 10px}
.pvhours div{background:#f2f5fc;border-radius:8px;padding:6px 10px;display:flex;flex-direction:column}
.pvhours small{font-size:11px;text-transform:uppercase;color:var(--muted)}.pvhours b{font-size:18px}
.pvlinks{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.plveh{border:1px solid var(--line);border-radius:8px;margin:12px 0 0;padding:6px 12px 10px}
#plVehs label.chk{display:inline-flex;align-items:center;gap:6px;margin:6px 16px 0 0;color:var(--text);font-size:15px}
#plVehs input{width:auto;margin:0}
.pvl{display:flex;gap:10px;margin:6px 0;font-size:15px}.pvl span::first-letter{text-transform:uppercase}
.pvnotes{white-space:pre-wrap;background:#f7f8fa;border-radius:8px;padding:8px 10px;font-size:14px}
#dlgPlanView h3{margin-bottom:8px}
/* Formulari per començar */
.svform2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 10px;align-items:end;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.svform2 .span2{grid-column:span 2}
.svform2 .crew{grid-column:1/-1;border:1px solid var(--line);border-radius:8px;margin:0}
.svform2 .stbtns{grid-column:1/-1;justify-content:flex-end}
.svform2 [hidden]{display:none!important}
@media (max-width:720px){.svform2{grid-template-columns:1fr 1fr}.plgrid,.needgrid{grid-template-columns:1fr 1fr}.plgrid .span3{grid-column:1/-1}}
/* Magatzem */
.stform{display:grid;grid-template-columns:2fr 1fr 90px 100px 90px auto;gap:8px 10px;align-items:end;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.stbtns{display:flex;gap:6px}
.warnc{color:var(--warn)}
tr.low{background:#fff8e6}
button:disabled{opacity:.4;cursor:not-allowed}
.not-admin .stform{display:none}
@media (max-width:720px){.stform{grid-template-columns:1fr 1fr}}
/* Informes */
.rep fieldset{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:0 0 12px;padding:10px 14px 14px}
.rep legend{font-weight:600;padding:0 6px}
.rg{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 14px;align-items:end}
.rg .wide{grid-column:1/-1}
.rf{display:block;font-size:12px;color:var(--muted)}
.rf input,.rf select,.rf textarea{margin-top:3px;color:var(--text);font-size:15px}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:14px;padding:4px 0}
.chk input{width:auto;margin-top:3px}
.vwrap{overflow-x:auto}
.vt td{padding:4px 4px}.vt input,.vt select{padding:5px 6px;min-width:70px}
button.primary.btn,a.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
@media (max-width:720px){
  .page{padding:12px}
  .filters,.row2{grid-template-columns:1fr}
  .lines thead{display:none}
  .lines tr{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 12px;border-top:1px solid var(--line)}
  .lines td{border:0;padding:0}
  .lines td.nm{grid-column:1/3;font-weight:600}
  .lines td:nth-child(4){grid-column:1/3}
  .lines td.meta{grid-column:1/3}
  .lines td select,.lines td input{width:100%}
  .hist thead{display:none}
  .hist tr{display:block;padding:10px 12px;border-top:1px solid var(--line)}
  .hist td{display:block;border:0;padding:1px 0}
}
@media print{
  .top,.filters,.uactions,.back,.mini{display:none!important}
  body{background:#fff}
  .group{break-inside:avoid;border-color:#999}
  .lines select,.lines input{border:0;background:none;appearance:none;padding:0}
  .noprint,.rep .err{display:none!important}
  .rep fieldset{break-inside:avoid;border-color:#999;margin-bottom:6px;padding:4px 8px}
  .rep input:not([type=checkbox]),.rep select,.rep textarea{border:0;border-bottom:1px solid #ccc;border-radius:0;background:none;appearance:none;padding:2px 0;font-size:12px}
  .rep .chk{font-size:12px;padding:1px 0}
}
.crewl{display:flex;flex-wrap:wrap;gap:4px 16px}.svform .crew{margin:0}
.crewadd{display:flex;gap:8px;margin-bottom:8px}.crewadd input{flex:1}
.crewchips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#e7edfb;border:1px solid #c5d2f2;border-radius:999px;padding:3px 4px 3px 10px;font-size:14px}
.chip small{color:var(--muted)}.chip button{border:0;background:transparent;padding:0 6px;border-radius:50%;color:var(--bad);line-height:1.4}
.lesbox{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin-bottom:12px}
.lesl{flex:1 1 200px}
.lt{cursor:pointer;border-radius:8px;padding:4px 6px;align-items:center}
.lt.act{background:#fff3e0;outline:2px solid var(--accent)}
.num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px}
.bodywrap{position:relative;width:340px;max-width:100%;flex:0 0 auto;cursor:crosshair;border:1px solid var(--line);border-radius:8px;overflow:hidden;user-select:none}
.bodywrap img{display:block;width:100%;height:auto}
.mk{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 0 2px #fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.ggroup>summary{background:#eef2fb;font-size:16px}.gin{padding:8px 10px 2px}.gin .group{margin-bottom:8px}
.cardw{position:relative;display:flex}.cardw .card{flex:1}.cardedit{position:absolute;top:8px;right:8px;margin:0}
.cphoto{width:100%;height:130px;object-fit:cover;border-radius:8px}
.ued{margin-top:8px}.ued canvas{display:block;max-width:100%;margin:0 auto;border-radius:8px;touch-action:none;cursor:crosshair;background:#eee}
.uedtools{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}.uedtools button{padding:4px 10px;font-size:13px}
.itedit{margin:0 8px 0 0}
.homebar{margin:0 0 12px}

/* Emissores TETRA */
.radgrid{display:grid;grid-template-columns:1fr 340px;gap:14px;align-items:start}
.radmap{height:calc(100vh - 190px);min-height:420px}
.radside{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 190px);overflow:auto}
.radrow{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px}
.radrow.off{opacity:.55}
.radchk{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}
.raddot{width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0003}
.radinfo{flex:1;min-width:0;font-size:14px;line-height:1.35}
.radon{color:var(--ok);font-weight:600}
.radbtns{display:flex;flex-direction:column;gap:4px}
.radbtns button{padding:3px 7px;min-width:0}
.radhelp{margin-top:4px}
.radlbl{font-weight:600;font-size:12px;padding:1px 6px}
.radcfg{margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.radcfg summary{cursor:pointer}
.radcfg code{background:var(--bg);padding:3px 6px;border-radius:5px;word-break:break-all}
@media (max-width:820px){.radgrid{grid-template-columns:1fr}.radmap{height:60vh;min-height:300px}.radside{max-height:none}}
.tile.locked{--tc:#9aa0aa;cursor:not-allowed;opacity:.7;background:var(--bg)}
