:root {
  --brand: #00BF63; --brand-strong: #0E3B26; --brand-deep: #0E3B26; --brand-soft: #EFF7E3; --on-brand: #0E3B26;
  --bg: #FAFBF7; --panel: #ffffff; --panel-2: #F3F6EC; --text: #0E3B26; --muted: #4A5550; --line: #E1E9D9;
  /* Claro: más blanco y verde pistacho; el verde tinta queda para el texto */
  --pistacho: #B9DE8E; --pistacho-suave: #EFF7E3; --boton: var(--pistacho); --boton-borde: #A3CF73;
  --barra-bg: #ffffff; --barra-texto: #0E3B26; --barra-borde: #B9DE8E; --barra-ctrl: #F3F6EC; --barra-ctrl-borde: #D5E0CB; --busca-bg: #F3F6EC;
  --olive: var(--brand-strong); --olive-dark: var(--brand-deep); --leaf: var(--brand); --accent: #E9B949;
  --ok: #00813F; --warn: #8A5A00; --err: #B3261E; --info: #22617F; --tinta: #0E3B26; --albero: #E9B949; --rejilla: #DCE6DA;
  --fuente-display: 'Fraunces', Georgia, serif; --fuente-texto: 'Atkinson Hyperlegible Next', 'Segoe UI', system-ui, sans-serif; --fuente-datos: 'IBM Plex Mono', ui-monospace, monospace;
  --wa: #d9fdd3; --wa-bg: #efeae2; --radius: 10px; --shadow: 0 1px 0 #DCE6DA, 0 10px 24px -14px rgb(14 59 38 / .18);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --brand: #00BF63; --brand-strong: #00BF63; --brand-deep: #B9E8CD; --brand-soft: #123024; --on-brand: #0E3B26;
    --bg: #0A1F15; --panel: #123024; --panel-2: #173A2B; --text: #F6F3EA; --muted: #B9C8BF; --line: #24453A;
    --olive: var(--brand-strong); --olive-dark: var(--brand-deep); --leaf: var(--brand); --ok: #3FD486; --warn: #F0C060; --err: #FF8A80; --info: #7CC3E3; --rejilla: #24453A;
    --wa: #1f4a2c; --wa-bg: #071710; --shadow: 0 1px 3px rgba(0,0,0,.4);
    --pistacho-suave: #173A2B; --boton: #00BF63; --boton-borde: #00BF63; --barra-bg: #0E3B26; --barra-texto: #ffffff; --barra-borde: #00BF63; --barra-ctrl: rgba(255,255,255,.14); --barra-ctrl-borde: rgba(255,255,255,.45); --busca-bg: #F6F3EA;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --brand: #00BF63; --brand-strong: #00BF63; --brand-deep: #B9E8CD; --brand-soft: #123024; --on-brand: #0E3B26;
  --bg: #0A1F15; --panel: #123024; --panel-2: #173A2B; --text: #F6F3EA; --muted: #B9C8BF; --line: #24453A;
  --olive: var(--brand-strong); --olive-dark: var(--brand-deep); --leaf: var(--brand); --ok: #3FD486; --warn: #F0C060; --err: #FF8A80; --info: #7CC3E3; --rejilla: #24453A;
  --wa: #1f4a2c; --wa-bg: #071710; --shadow: 0 1px 3px rgba(0,0,0,.4);
    --pistacho-suave: #173A2B; --boton: #00BF63; --boton-borde: #00BF63; --barra-bg: #0E3B26; --barra-texto: #ffffff; --barra-borde: #00BF63; --barra-ctrl: rgba(255,255,255,.14); --barra-ctrl-borde: rgba(255,255,255,.45); --busca-bg: #F6F3EA;
  color-scheme: dark;
}
* { box-sizing: border-box; }
/* Sin barras de desplazamiento visibles: se mueve con la rueda del ratón, el panel táctil o el dedo (Mayús + rueda para lo horizontal). */
* { scrollbar-width: none; -ms-overflow-style: none; }
*::-webkit-scrollbar { display: none; width: 0; height: 0; }
html, body { margin: 0; height: 100%; }
body { background: var(--bg); color: var(--text); font: 15px/1.5 var(--fuente-texto);
  display: grid; grid-template-columns: 200px 1fr auto; grid-template-rows: 56px auto 1fr; grid-template-areas: "top top top" "aviso aviso aviso" "nav main copilot"; overflow: hidden; }

/* Iconos propios (sprite /icons.svg) */
.ic { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }
.ic.grande { width: 28px; height: 28px; stroke-width: 1.5; }
.ic.enorme { width: 44px; height: 44px; stroke-width: 1.3; color: var(--muted); }
.c-brand { color: var(--brand-strong); } .c-warn { color: var(--warn); } .c-err { color: var(--err); font-weight: 600; }
.c-brand .ic, .c-warn .ic { width: 15px; height: 15px; }
a { color: var(--olive); }
.muted { color: var(--muted); font-weight: 400; }
h2 { margin: 0 0 14px; font: 600 26px/1.1 var(--fuente-display); letter-spacing: -.01em; color: var(--brand-deep); } h3 { margin: 16px 0 8px; font: 700 15px/1.3 var(--fuente-texto); }
h4 { font-family: var(--fuente-texto); }
.mono, .dato, code, .badge, .tag { font-family: var(--fuente-datos); }

/* Barra superior */
.topbar { grid-area: top; display: flex; align-items: center; gap: 16px; padding: 0 16px; background: var(--barra-bg); color: var(--barra-texto); border-bottom: 3px solid var(--barra-borde); }
.brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.logo { display: flex; align-items: center; gap: 8px; color: var(--barra-texto); }
.logo > svg:first-child { width: 30px; height: 30px; fill: var(--brand); flex: none; }
.wordmark { height: 15px; width: auto; display: block; }
.selector-explotacion { max-width: 300px; font-size: 13px; font-weight: 500; color: var(--barra-texto); background: var(--barra-ctrl); border: 1px solid var(--barra-ctrl-borde); padding: 6px 8px; }
.selector-explotacion option { color: #14261b; background: #fff; }
.aviso-admin { grid-area: aviso; display: flex; gap: 10px; align-items: center; padding: 8px 16px; background: #fff4d6; color: #5c3d00; border-bottom: 1px solid #f0d58a; font-size: 13px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .aviso-admin { background: #3a2c08; color: #ffdf94; border-color: #5c4510; } }
.aviso-admin[hidden] { display: none; }
.menu-usuario { position: relative; }
.dropdown.derecha { left: auto; right: 0; width: 260px; top: 44px; }
.dropdown .menu-cab { padding: 10px 12px; border-bottom: 1px solid var(--line); }
.dropdown button { display: flex; gap: 8px; align-items: center; }
.topbar .search input { background: var(--busca-bg); border-color: var(--barra-ctrl-borde); color: #14261b; }
.topbar .badge, .topbar .badge.off { background: var(--barra-ctrl); border-color: var(--barra-ctrl-borde); color: var(--barra-texto); font-weight: 500; }
.topbar .badge.on { background: var(--boton); color: #0E3B26; border-color: var(--boton-borde); }
.topbar .badge.err { background: #fff; color: #b3261e; border-color: #EBB8B4; }
.topbar .badge.warn { background: #fff; color: #9a5b00; border-color: #EBD39A; }
.topbar .btn.ghost { color: var(--barra-texto); border-color: var(--barra-ctrl-borde); }
.topbar .btn.ghost:hover { background: var(--barra-ctrl); }
.search { position: relative; flex: 1; max-width: 420px; margin-left: auto; }
.search > .ic { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.search input { width: 100%; padding-left: 34px; }
.dropdown { position: absolute; top: 40px; left: 0; right: 0; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); z-index: 1000; max-height: 320px; overflow: auto; }
.dropdown button { display: block; width: 100%; text-align: left; padding: 8px 12px; background: none; border: 0; color: var(--text); cursor: pointer; }
.dropdown button:hover { background: var(--panel-2); }
.badges { display: flex; gap: 6px; }
.badge { font-size: 12px; padding: 2px 8px; border-radius: 99px; background: var(--panel-2); border: 1px solid var(--line); white-space: nowrap; }
.badge.on { border-color: var(--ok); color: var(--ok); } .badge.off { color: var(--muted); }
.badge.err { color: var(--err); border-color: var(--err); } .badge.warn { color: var(--warn); border-color: var(--warn); }

/* Navegación */
.sidenav { grid-area: nav; background: var(--panel); border-right: 1px solid var(--line); padding: 12px 8px; display: flex; flex-direction: column; gap: 2px; }
.sidenav a { display: flex; gap: 10px; align-items: center; padding: 9px 12px; border-radius: 8px; color: var(--text); text-decoration: none; }
.sidenav a:hover { background: var(--panel-2); }
.sidenav a.activo { background: var(--brand-soft); color: var(--brand-deep); font-weight: 600; box-shadow: inset 3px 0 0 var(--boton-borde); }

main { grid-area: main; overflow: auto; position: relative; }
.vista { display: none; padding: 20px; max-width: 1280px; }
.vista.activa { display: block; }
#v-mapa { padding: 0; max-width: none; height: 100%; }
#v-mapa.activa { display: block; }

/* Controles */
input, select, textarea { font: inherit; color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; min-width: 0; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--leaf); outline-offset: 0; }
textarea { resize: vertical; min-height: 60px; }
.btn { font: inherit; background: var(--boton); color: var(--on-brand); border: 1px solid var(--boton-borde); padding: 8px 14px; border-radius: 8px; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; justify-content: center; }
.btn.icono { padding: 8px; } .btn.sm.icono { padding: 4px 6px; }
.btn.sm .ic { width: 15px; height: 15px; }
.btn:hover { filter: brightness(.95); } .btn:disabled { opacity: .45; cursor: not-allowed; }
.btn.ghost { background: transparent; color: var(--text); border-color: var(--line); }
.btn.danger { background: transparent; color: var(--err); border-color: var(--err); }
.btn.sm { padding: 4px 8px; font-size: 12px; }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.grid { display: grid; gap: 12px; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 12px 0; }
.kpi { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; }
.kpi b { display: block; font-size: 22px; color: var(--olive-dark); } .kpi span { color: var(--muted); font-size: 12px; }
table.t { width: 100%; border-collapse: collapse; background: var(--panel); border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
table.t th, table.t td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
table.t th { background: var(--panel-2); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); }
table.t tr.anulada td { text-decoration: line-through; color: var(--muted); }
.table-wrap { overflow-x: auto; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 14px; }
.chip { padding: 5px 12px; border-radius: 99px; border: 1px solid var(--line); background: var(--panel); cursor: pointer; color: var(--text); font: inherit; font-size: 13px; }
.chip.on { background: var(--boton); color: var(--on-brand); border-color: var(--boton-borde); }
.tag { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 99px; background: var(--panel-2); border: 1px solid var(--line); }
.tag.wa { background: var(--brand-soft); color: var(--brand-deep); border-color: var(--brand); }
.tag { display: inline-flex; align-items: center; gap: 4px; } .tag .ic { width: 13px; height: 13px; }
.tag.ok { color: var(--brand-deep); border-color: var(--brand); background: var(--brand-soft); }
.tag.warn { color: var(--warn); border-color: var(--warn); } .tag.info { color: var(--info); border-color: var(--info); }
.badge { display: inline-flex; align-items: center; gap: 4px; } .badge .ic { width: 14px; height: 14px; }
.pre { white-space: pre-wrap; font-size: 12px; background: var(--panel-2); padding: 8px; border-radius: 8px; margin: 0; }
.mono { font-family: ui-monospace, monospace; font-size: 12px; }
td.detalle { font-size: 12px; color: var(--muted); max-width: 420px; overflow-wrap: anywhere; }

/* Mapa */
.map-layout { display: grid; grid-template-columns: 1fr 300px; height: 100%; }
#map { height: 100%; min-height: 400px; }
.map-side { background: var(--panel); border-left: 1px solid var(--line); padding: 12px; overflow: auto; }
.map-side h3 { margin-top: 0; }
.lista-parcelas button { display: block; width: 100%; text-align: left; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin-bottom: 6px; cursor: pointer; color: var(--text); font: inherit; }
.lista-parcelas button:hover, .lista-parcelas button.sel { border-color: var(--olive); background: var(--panel-2); }
.lista-parcelas small { color: var(--muted); display: block; }
.leyenda { display: grid; gap: 4px; font-size: 12px; color: var(--muted); margin-top: 12px; }
.leyenda span { display: flex; align-items: center; } .leyenda .ic { width: 14px; height: 14px; margin-right: 4px; color: var(--brand-strong); }
.leyenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.leaflet-popup-content { font: 14px/1.4 var(--fuente-texto); }
.leaflet-popup-content .ic { width: 14px; height: 14px; }
.pop-ok { color: #00813F; } .pop-warn { color: #8A5A00; }
.parcela-label { background: rgba(255,255,255,.85); border: 0; border-radius: 4px; padding: 1px 5px; font-weight: 600; font-size: 11px; color: #1f2a1a; box-shadow: none; }

/* Expediente */
.exp-head { display: grid; grid-template-columns: 1fr 320px; gap: 16px; }
#mini-map { height: 220px; border-radius: var(--radius); border: 1px solid var(--line); }
dl.datos { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0; }
dl.datos dt { color: var(--muted); } dl.datos dd { margin: 0; }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { display: grid; grid-template-columns: 92px 28px 1fr; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.timeline .ico { color: var(--brand-strong); }
.alerta { padding: 10px 12px; border-radius: 8px; margin: 6px 0; border-left: 4px solid; background: var(--panel); display: flex; gap: 8px; align-items: flex-start; }
.alerta > .ic { margin-top: 1px; }
.alerta.err > .ic { color: var(--err); } .alerta.warn > .ic { color: var(--warn); } .alerta.ok > .ic { color: var(--ok); } .alerta.info > .ic { color: var(--info); }
.geo-estado { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; padding: 10px 12px; border-radius: 8px; font-size: 13px; }
.geo-estado.ok { background: var(--brand-soft); color: var(--brand-deep); } .geo-estado.warn { background: #fff4d6; color: #5c3d00; }
.geo-estado .btn { margin-left: auto; }
.doc-linea { display: flex; gap: 10px; align-items: flex-start; border-bottom: 1px solid var(--line); padding: 8px 0; } .doc-linea > .ic { color: var(--muted); margin-top: 2px; }
.alerta.err { border-color: var(--err); } .alerta.warn { border-color: var(--warn); } .alerta.ok { border-color: var(--ok); } .alerta.info { border-color: var(--info); }

/* Formulario de labor */
.reg-layout { display: grid; grid-template-columns: 1fr 340px; gap: 16px; align-items: start; }
.tipos { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-bottom: 16px; }
.tipos button { padding: 12px 8px; border: 1px solid var(--line); background: var(--panel); border-radius: var(--radius); cursor: pointer; font: inherit; color: var(--text); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.tipos button .ic { color: var(--brand-strong); }
.tipos button.on { border-color: var(--olive); box-shadow: inset 0 0 0 2px var(--olive); }
.tipos button span { display: block; font-size: 22px; }
.campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.campo label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.campo label .req { color: var(--err); }
.campo input, .campo select, .campo textarea { width: 100%; }
.campo.mal input, .campo.mal select { border-color: var(--err); }
.parcelas-check { display: flex; flex-wrap: wrap; gap: 6px; }
.parcelas-check label { display: flex; gap: 6px; align-items: center; border: 1px solid var(--line); padding: 5px 10px; border-radius: 99px; cursor: pointer; background: var(--panel); font-size: 13px; color: var(--text); }
.parcelas-check input { margin: 0; width: auto; }
.conv-list + p, code { overflow-wrap: anywhere; }
.panel-validacion { position: sticky; top: 0; display: grid; gap: 12px; max-height: calc(100vh - 110px); overflow: auto; }
.panel-validacion h4 { margin: 12px 0 6px; font-size: 13px; }
table.compacta th, table.compacta td { padding: 5px 6px; font-size: 12px; }

/* Documentos */
.docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.doc { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.doc .thumb { height: 130px; background: var(--panel-2); display: grid; place-items: center; font-size: 40px; overflow: hidden; }
.doc .thumb img { width: 100%; height: 100%; object-fit: cover; }
.doc .body { padding: 10px; flex: 1; display: grid; gap: 4px; font-size: 13px; }
.doc .acciones { display: flex; gap: 6px; padding: 0 10px 10px; flex-wrap: wrap; }

/* WhatsApp */
.wa-layout { display: grid; grid-template-columns: 260px minmax(0, 420px) 1fr; gap: 16px; align-items: start; }
.phone { background: var(--wa-bg); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; height: 640px; max-height: calc(100vh - 140px); }
.phone-head { background: var(--boton); color: var(--on-brand); padding: 10px 14px; display: flex; gap: 10px; align-items: center; }
.phone-head select { background: rgba(255,255,255,.55); color: #0E3B26; border: 0; padding: 4px; }
.phone-head select option { color: #000; }
.chat { flex: 1; overflow: auto; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.msg { max-width: 85%; padding: 7px 10px; border-radius: 8px; white-space: pre-wrap; word-wrap: break-word; box-shadow: 0 1px 1px rgba(0,0,0,.1); font-size: 13.5px; }
.msg.in { align-self: flex-end; background: var(--wa); }
.msg.out { align-self: flex-start; background: var(--panel); }
.msg img { max-width: 100%; border-radius: 6px; display: block; margin-bottom: 4px; }
.msg .ts { display: block; text-align: right; font-size: 10px; color: var(--muted); }
.msg .wa-btns { display: grid; gap: 4px; margin-top: 6px; }
.msg .wa-btns button { background: var(--panel-2); border: 0; color: var(--info); padding: 7px; border-radius: 6px; cursor: pointer; font: inherit; }
.chat-input { display: flex; gap: 6px; padding: 8px; background: var(--panel-2); align-items: center; }
.chat-input input[type=text] { flex: 1; border-radius: 20px; }
.chat-input label.btn { padding: 8px; }
.phone-head .btn.ghost { color: inherit; border-color: rgba(14,59,38,.35); margin-left: auto; }
.conv-list button { display: block; width: 100%; text-align: left; padding: 10px; border: 1px solid var(--line); background: var(--panel); border-radius: 8px; margin-bottom: 6px; cursor: pointer; color: var(--text); font: inherit; }
.conv-list button.sel { border-color: var(--olive); }
.typing { align-self: flex-start; color: var(--muted); font-style: italic; font-size: 12px; }

/* Copiloto */
.copilot { grid-area: copilot; width: 340px; background: var(--panel); border-left: 1px solid var(--line); display: flex; flex-direction: column; }
.copilot[hidden] { display: none; }
.copilot-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.copilot-log { flex: 1; overflow: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.bubble { padding: 8px 12px; border-radius: 12px; max-width: 92%; }
.bubble.bot { background: var(--panel-2); align-self: flex-start; }
.bubble.user { background: var(--boton); color: var(--on-brand); align-self: flex-end; }
.copilot-form { display: flex; gap: 6px; padding: 10px; border-top: 1px solid var(--line); }
.copilot-form input { flex: 1; }
.mic-on { background: var(--err) !important; color: #fff !important; }

dialog { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); padding: 20px; width: min(560px, 92vw); max-height: 92vh; }
dialog.grande { width: min(900px, 94vw); }
.modal-cuerpo { margin-top: 12px; }
dialog.grande .campos.sigpac-ref { grid-template-columns: repeat(4, 1fr); }
#sigpac-map { height: 260px; border-radius: var(--radius); border: 1px solid var(--line); margin: 14px 0 10px; }
dialog::backdrop { background: rgba(0,0,0,.4); }
dialog .campos { grid-template-columns: 1fr 1fr; }
.toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: var(--text); color: var(--bg); padding: 10px 18px; border-radius: 8px; z-index: 5000; box-shadow: var(--shadow); }

@media (max-width: 1100px) {
  .wa-layout { grid-template-columns: 1fr; }
  .reg-layout, .exp-head { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body { grid-template-columns: 1fr; grid-template-rows: 56px 1fr 60px; grid-template-areas: "top" "main" "nav"; }
  .sidenav { flex-direction: row; overflow-x: auto; padding: 4px; border-right: 0; border-top: 1px solid var(--line); }
  .sidenav a { flex-direction: column; gap: 0; font-size: 11px; padding: 6px 10px; }
  .badges, .wordmark, #toggle-copilot span { display: none; }
  body { grid-template-rows: 56px auto 1fr 60px; grid-template-areas: "top" "aviso" "main" "nav"; }
  .selector-explotacion { max-width: 120px; }
  dialog.grande .campos.sigpac-ref { grid-template-columns: 1fr 1fr; }
  .topbar { padding: 0 12px; gap: 8px; }
  .vista { padding: 16px; }
  .map-layout { grid-template-columns: 1fr; grid-template-rows: 60% 40%; }
  .copilot { position: fixed; inset: 56px 0 60px 0; width: auto; z-index: 2000; }
  #toggle-copilot { padding: 6px 8px; }
  dialog .campos { grid-template-columns: 1fr; }
}

.acciones-td { flex-wrap: nowrap; gap: 6px; }

/* Identidad «El visto bueno»: cuadrícula de libreta y el anillo a mano */
.cuadricula, .map-side, .panel-validacion > .card:first-child { background-image: linear-gradient(var(--rejilla) 1px, transparent 1px), linear-gradient(90deg, var(--rejilla) 1px, transparent 1px); background-size: 24px 24px; }
.panel-validacion > .card:first-child { background-color: var(--panel); }
.rodeado { position: relative; display: inline-block; white-space: nowrap; isolation: isolate; }
.rodeado svg { position: absolute; left: -7%; top: -10%; width: 114%; height: 124%; z-index: -1; overflow: visible; }
.rodeado path { fill: none; stroke: var(--brand); stroke-width: 4; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 900; animation: trazar 600ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes trazar { from { stroke-dashoffset: 900; } }
@media (prefers-reduced-motion: reduce) { .rodeado path { animation: none; } }
.btn { font-weight: 700; } .btn:not(.sm) { border-radius: 999px; }
.kpi b { font-family: var(--fuente-display); font-weight: 600; }
.tipos button span, .lista-parcelas strong { font-family: var(--fuente-texto); }
.alerta.ok { background: var(--brand-soft); }
table.t th { font-family: var(--fuente-datos); font-weight: 500; }
.sidenav a.activo { background: var(--brand-soft); color: var(--text); box-shadow: inset 3px 0 0 var(--boton-borde); }
em { font-family: var(--fuente-display); font-style: italic; font-weight: 400; }

/* ===== Versión 2: navegación agrupada y módulos nuevos ===== */
@media (min-width: 761px) { body { grid-template-columns: 220px 1fr auto; } }
.sidenav { overflow-y: auto; gap: 0; padding: 10px 8px 16px; }
.nav-grupo { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.nav-titulo { font: 500 11px/1 var(--fuente-datos); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); padding: 8px 12px 6px; }
.nav-mas { display: none; }
.toast { display: flex; gap: 8px; align-items: center; border-radius: 999px; padding: 10px 20px; }
.toast .ic { color: var(--brand); width: 20px; height: 20px; }
.toast[hidden] { display: none; }
tr.recien td { background: var(--brand-soft); transition: background 2s; }
tr.recien .rodeado { padding: 0 6px; font-weight: 700; }
.insignia { display: inline-flex; align-items: center; gap: 5px; font: 500 11px/1 var(--fuente-datos); padding: 4px 9px; border-radius: 999px; border: 1px dashed var(--muted); color: var(--muted); white-space: nowrap; vertical-align: middle; }
.insignia .ic { width: 13px; height: 13px; }
.insignia.prox { border-color: var(--albero); color: var(--warn); background: color-mix(in srgb, var(--albero) 14%, transparent); }
.insignia.v2 { border-color: var(--line); }
.intro { max-width: 760px; margin: -6px 0 16px; }
.card.preparacion { border-style: dashed; background: color-mix(in srgb, var(--panel) 70%, transparent); }
.card.preparacion input:disabled { background: var(--panel-2); border-style: dashed; }
.nota-prep { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--muted); margin: 12px 0 0; }
.inicio-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; padding: 20px 22px; border-radius: var(--radius); border: 1px solid var(--line); background-color: var(--panel); }
.inicio-cab .sobre { font: 500 12px/1 var(--fuente-datos); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0 0 10px; }
.saludo { font-size: 34px; margin: 0 0 6px; }
.inicio-cab p { margin: 0; }
.acciones-rapidas { display: flex; gap: 8px; flex-wrap: wrap; }
.inicio-grid { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }
.lista-avisos { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.aviso-fila { display: grid; grid-template-columns: 20px 1fr 18px; gap: 10px; align-items: start; text-align: left; padding: 10px 12px; border: 1px solid var(--line); border-left: 4px solid var(--info); border-radius: 8px; background: var(--panel); color: var(--text); font: inherit; font-size: 14px; cursor: pointer; }
.aviso-fila:hover { background: var(--panel-2); }
.aviso-fila > .ic:first-child { color: var(--info); margin-top: 1px; } .aviso-fila > .ic:last-child { color: var(--muted); }
.aviso-fila.warn { border-left-color: var(--albero); } .aviso-fila.warn > .ic:first-child { color: var(--warn); }
.aviso-fila.err { border-left-color: var(--err); } .aviso-fila.err > .ic:first-child { color: var(--err); }
.vacio-ok { display: flex; gap: 12px; align-items: center; padding: 14px; color: var(--ok); font-weight: 700; }
.avisos-grid { grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); align-items: start; }
.interruptor { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.barras { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.barra-fila { display: grid; grid-template-columns: minmax(90px, 1fr) 2fr auto; gap: 10px; align-items: center; font-size: 14px; margin: 6px 0; }
.barra-fila b { font: 500 13px var(--fuente-datos); }
.barra { height: 10px; border-radius: 999px; background: var(--panel-2); overflow: hidden; }
.barra i { display: block; height: 100%; background: var(--brand); border-radius: 999px; }
.barra-celda { display: grid; grid-template-columns: 80px auto; gap: 8px; align-items: center; } .barra-celda b { font: 500 13px var(--fuente-datos); }
.proximos { list-style: none; margin: 0; padding: 0; } .proximos li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; } .proximos li > .ic { color: var(--brand-strong); margin-top: 2px; }
.pasos-flujo { list-style: none; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; counter-reset: paso; }
.pasos-flujo li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); font-size: 14px; }
.pasos-flujo li > .ic { color: var(--brand-strong); }
.tipos button.pronto { opacity: .6; cursor: not-allowed; border-style: dashed; } .tipos button.pronto small { font: 500 10px var(--fuente-datos); text-transform: uppercase; color: var(--warn); }
.card.cultivo .ic.grande { color: var(--brand-strong); }
tr.actual td { background: var(--brand-soft); }
@media (max-width: 1100px) { .avisos-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .sidenav { flex-direction: row; align-items: stretch; overflow: visible; padding: 4px; }
  .nav-grupo { display: contents; } .nav-titulo { display: none; }
  .sidenav a { display: none; flex: 1; } .sidenav a.principal { display: flex; }
  .nav-mas { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1; gap: 0; font: inherit; font-size: 11px; background: none; border: 0; color: var(--text); padding: 6px 4px; }
  body.nav-abierta .sidenav { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 2100; flex-direction: column; overflow-y: auto; max-height: 70vh; background: var(--panel); border-top: 3px solid var(--brand); box-shadow: 0 -12px 30px rgb(0 0 0 / .2); padding: 8px; }
  body.nav-abierta .nav-grupo { display: flex; } body.nav-abierta .nav-titulo { display: block; }
  body.nav-abierta .sidenav a { display: flex; flex-direction: row; font-size: 15px; gap: 10px; }
  body.nav-abierta .nav-mas { flex-direction: row; gap: 8px; font-size: 15px; justify-content: flex-start; padding: 12px; border-top: 1px solid var(--line); flex: none; }
  .saludo { font-size: 27px; } .inicio-cab { padding: 16px; } .inicio-grid { grid-template-columns: 1fr; }
  .barra-fila { grid-template-columns: 1fr 1fr auto; }
}

.tipos { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); }

/* Importación en bloque y primeros pasos */
.lote-entrada { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; align-items: start; }
.lote-entrada textarea { width: 100%; font: 14px/1.5 var(--fuente-datos); }
.lote-ayuda { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; padding-top: 24px; }
.lote-ayuda p { margin: 0; font-size: 13px; }
.lote-resumen { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 14px 0; }
#lote-mapa { height: 260px; border-radius: var(--radius); margin-bottom: 12px; }
.primeros-pasos { margin-bottom: 12px; border-left: 4px solid var(--brand); }
.pasos-alta { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 4px 20px; }
.pasos-alta li { display: grid; grid-template-columns: 20px 1fr auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.pasos-alta li > .ic { color: var(--muted); } .pasos-alta li.hecho > .ic { color: var(--ok); } .pasos-alta li.hecho span { color: var(--muted); text-decoration: line-through; }
@media (max-width: 760px) { .lote-entrada, .lote-resumen { grid-template-columns: 1fr 1fr; } .lote-entrada { grid-template-columns: 1fr; } }

/* Versión 3: cuatro pestañas (Inicio, Cuaderno, Personal, Ajustes). Blanco de base, pistacho para acciones y verde tinta para lo importante. */
.topbar .badges { display: none; }
.ic.girado { transform: rotate(180deg); }
.volver { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); text-decoration: none; font-size: 14px; margin-bottom: 12px; }
.volver:hover { color: var(--text); }
.cab-vista { justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 16px; }
.cab-vista h2 { margin-bottom: 4px; } .cab-vista p { margin: 0; }
.hola { padding: 28px 26px; border-radius: 16px; background: var(--pistacho-suave); border: 1px solid var(--line); margin-bottom: 18px; }
.hola .sobre { font: 500 12px/1.3 var(--fuente-datos); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0 0 10px; }
.hola p { margin: 0; }
.acciones-inicio { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.accion { display: flex; align-items: center; gap: 16px; text-align: left; padding: 20px; border-radius: 16px; border: 1px solid var(--line); background: var(--panel); color: var(--text); font: inherit; cursor: pointer; box-shadow: var(--shadow); transition: border-color .15s, transform .15s; }
.accion:hover { border-color: var(--boton-borde); transform: translateY(-1px); }
.accion-ic { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--pistacho-suave); color: var(--tinta); flex: none; }
.accion-txt { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.accion-txt b { font: 600 19px/1.2 var(--fuente-display); }
.accion-txt span { color: var(--muted); font-size: 14px; }
.accion > .ic:last-child { color: var(--muted); }
.accion.principal { background: var(--tinta); color: #fff; border-color: var(--tinta); }
.accion.principal .accion-txt span, .accion.principal > .ic:last-child { color: rgba(255,255,255,.82); }
.accion.principal .accion-ic { background: var(--pistacho); color: #0E3B26; }
.accion.pistacho { background: var(--pistacho); border-color: var(--boton-borde); color: #0E3B26; }
.accion.pistacho .accion-ic { background: #fff; color: #0E3B26; }
.accion.pistacho .accion-txt span, .accion.pistacho > .ic:last-child { color: #2E4A37; }
.pendientes { margin-top: 16px; width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 12px; border: 1px solid #EBD39A; background: #FFF8E6; color: #5C3D00; font: inherit; cursor: pointer; text-align: left; }
.pendientes span { flex: 1; }
.fincas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.finca { display: flex; flex-direction: column; gap: 6px; text-align: left; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--line); border-top: 5px solid var(--pistacho); background: var(--panel); color: var(--text); font: inherit; cursor: pointer; }
.finca:hover { box-shadow: var(--shadow); border-color: var(--boton-borde); }
.finca-cab { display: flex; gap: 6px; align-items: center; } .finca-cab b { font: 600 20px/1.2 var(--fuente-display); }
.finca-datos { display: flex; gap: 10px; flex-wrap: wrap; font-size: 14px; } .finca-datos span:first-child { font-family: var(--fuente-datos); }
.finca-pie { font-size: 12px; color: var(--muted); display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 4px; }
.nueva-parcela { margin-bottom: 16px; background: var(--pistacho-suave); } .nueva-parcela h3 { margin: 0; }
.opciones-alta { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.finca-top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; }
#finca-mapa { min-height: 360px; border-radius: 14px; border: 1px solid var(--line); }
.finca-top .geo-estado { flex-wrap: wrap; }
.pestanas { margin: 20px 0 14px; border-bottom: 1px solid var(--line); display: flex; gap: 4px; overflow-x: auto; }
.pestanas button { font: inherit; background: none; border: 0; padding: 10px 14px; color: var(--muted); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.pestanas button.on { color: var(--text); font-weight: 600; border-bottom-color: var(--boton-borde); }
.dat-vista { width: 100%; height: 60vh; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.personas { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.persona-cab { display: flex; gap: 12px; align-items: center; } .persona-cab > div { flex: 1; min-width: 0; }
.avatar { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--pistacho); color: #0E3B26; font-weight: 700; flex: none; }
.persona h4 { margin: 16px 0 6px; font: 500 12px/1 var(--fuente-datos); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.pendiente { color: var(--muted); font-style: italic; }
p.pendiente { margin: 10px 0 0; font-size: 13px; }
.ajustes { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; align-items: start; }
.ajustes h3 { margin-top: 0; }
.ajustes .campo { margin-bottom: 12px; }
.pasos-cab { margin-top: 16px; } .pasos-cab .barra { margin: 8px 0; }
.lista-enlaces { display: flex; flex-direction: column; }
.lista-enlaces button { display: flex; align-items: center; gap: 12px; padding: 12px 4px; background: none; border: 0; border-bottom: 1px solid var(--line); font: inherit; color: var(--text); cursor: pointer; text-align: left; }
.lista-enlaces button:last-child { border-bottom: 0; }
.lista-enlaces button > span { flex: 1; }
.lista-enlaces button > .ic:first-child { color: var(--boton-borde); }
html.letra-grande body { font-size: 17px; }
html.letra-grande .accion-txt span, html.letra-grande .muted, html.letra-grande small, html.letra-grande .t { font-size: 16px; }
@media (max-width: 760px) {
  .acciones-inicio, .finca-top { grid-template-columns: 1fr; }
  #finca-mapa { min-height: 240px; }
  .cab-vista { align-items: flex-start; flex-direction: column; }
  .hola { padding: 20px 16px; }
  .accion { padding: 16px; }
}
.ajustes .pasos-alta { grid-template-columns: 1fr; }
.ajustes .row { margin-top: 12px; }
.finca { border-top-width: 1px; box-shadow: inset 0 5px 0 var(--pistacho); padding-top: 20px; }
.finca:hover { box-shadow: inset 0 5px 0 var(--boton-borde), var(--shadow); }
.sidenav a { padding: 11px 14px; }

/* Firmas del técnico */
.sidenav a .cuenta { margin-left: auto; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--tinta); color: #fff; font: 600 12px/22px var(--fuente-texto); text-align: center; }
.sidenav a .cuenta[hidden] { display: none; }
.informes { display: grid; gap: 14px; margin-bottom: 22px; }
.informe { background: var(--panel); border: 1px solid var(--line); border-left: 5px solid var(--pistacho); border-radius: 14px; padding: 16px 18px; }
.informe.ambar { border-left-color: var(--albero); } .informe.rojo { border-left-color: var(--err); }
.informe header { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-bottom: 12px; }
.informe header b { font: 600 18px/1.2 var(--fuente-display); }
.semaforo { font: 600 11px/1 var(--fuente-datos); text-transform: uppercase; letter-spacing: .06em; padding: 5px 9px; border-radius: 99px; background: var(--pistacho); color: #0E3B26; }
.semaforo.ambar { background: #FBE7B5; color: #5C3D00; } .semaforo.rojo { background: #F9D7D3; color: #8C1D18; }
.informe .datos { grid-template-columns: 170px 1fr; }
.informe .alerta { margin: 8px 0 0; }
.informe footer { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.informe footer .check { display: flex; gap: 6px; align-items: center; font-size: 14px; }
.hueco-flex { flex: 1; }
.bloque-tecnico { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: var(--pistacho-suave); }
@media (max-width: 760px) { .informe .datos { grid-template-columns: 1fr; } .bloque-tecnico { grid-template-columns: 1fr; } .hueco-flex { display: none; } }
.tag.err { color: var(--err); border-color: var(--err); }

/* Recetas del asesor */
.informe.receta.aplicada, .informe.receta.anulada { opacity: .85; }
.informe.receta.emitida { border-left-color: var(--albero); }
.informe.receta.caducada { border-left-color: var(--err); }
.pendientes.recetas-pend { background: var(--pistacho-suave); border-color: var(--boton-borde); color: var(--text); }

/* Repetir la última labor y registro sin conexión */
.repetir { margin: -4px 0 14px; }
.cola-chip { position: fixed; left: 50%; transform: translateX(-50%); bottom: 18px; z-index: 3000; display: inline-flex; gap: 8px; align-items: center; padding: 9px 16px; border-radius: 99px; border: 1px solid var(--boton-borde); background: var(--pistacho); color: #0E3B26; font: 600 14px/1 var(--fuente-texto); box-shadow: var(--shadow); cursor: pointer; }
.cola-chip.error { background: #FFF1D6; border-color: #EBD39A; color: #5C3D00; }
.cola-item { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.cola-item.error b { color: var(--err); }
@media (max-width: 760px) { .cola-chip { bottom: 72px; } }

/* Alta paso a paso de personal y equipos */
dialog.asistente-dlg { width: min(620px, 96vw); }
.asistente-progreso { display: flex; gap: 6px; margin: 14px 0 6px; }
.asistente-progreso i { flex: 1; height: 5px; border-radius: 3px; background: var(--line); }
.asistente-progreso i.hecho { background: var(--boton-borde); } .asistente-progreso i.actual { background: var(--tinta); }
.asistente-paso { margin: 0; font: 500 12px/1 var(--fuente-datos); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.asistente-pregunta { margin: 6px 0 4px; font: 600 21px/1.25 var(--fuente-display); }
.asistente-cuerpo { margin-top: 12px; display: grid; gap: 12px; }
.opciones-si-no, .opciones-nivel { display: grid; gap: 8px; }
.opcion { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; background: var(--panel); }
.opcion:has(input:checked) { border-color: var(--boton-borde); background: var(--pistacho-suave); }
.opcion input { margin-top: 3px; } .opcion span { display: flex; flex-direction: column; gap: 2px; } .opcion small { color: var(--muted); }
.ilustracion { width: 100%; max-width: 420px; height: auto; display: block; margin: 0 auto; }
.ilustracion .il-tarjeta { fill: #FFFFFF; stroke: var(--line); stroke-width: 2; }
.ilustracion .il-banda { fill: var(--pistacho-suave); }
.ilustracion .il-tit { font: 700 13px var(--fuente-texto); fill: #0E3B26; } .ilustracion .il-sub { font: 400 10px var(--fuente-texto); fill: #4A5550; }
.ilustracion .il-tit2 { font: 700 12px var(--fuente-texto); fill: #0E3B26; } .ilustracion .il-sub2 { font: 400 9.5px var(--fuente-texto); fill: #4A5550; }
.ilustracion .il-foto { fill: #F3F6EC; stroke: var(--line); } .ilustracion .il-foto-c { fill: none; stroke: #B9C8BF; stroke-width: 2; }
.ilustracion .il-etq { font: 600 9px var(--fuente-texto); fill: #4A5550; text-transform: uppercase; letter-spacing: .04em; }
.ilustracion .il-val { font: 500 11px var(--fuente-datos); fill: #4A5550; }
.ilustracion .il-campo rect, .ilustracion .il-campo circle { fill: #F3F6EC; stroke: #DCE3D6; }
.ilustracion .il-campo.il-foco rect, .ilustracion .il-campo.il-foco circle { fill: #EAF5D9; stroke: #6FA83A; stroke-width: 3; }
.ilustracion .il-campo.il-foco .il-val { fill: #0E3B26; font-weight: 700; }
.ilustracion .il-campo.il-foco .il-etq { fill: #0E3B26; }
.ilustracion .il-pie { font: italic 400 9.5px var(--fuente-texto); fill: #7A847F; }

/* DAT oficial */
.dat-sec { border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; margin-bottom: 10px; background: var(--panel); }
.dat-sec summary { font: 600 15px/1.3 var(--fuente-texto); cursor: pointer; padding: 4px 0; }
.dat-sec[open] summary { margin-bottom: 8px; }
.dat-sec .check { margin-top: 8px; }
.opciones-si-no.fila { grid-template-columns: 1fr 1fr; margin-bottom: 8px; }

/* Documentación del cuaderno */
.docs-req { list-style: none; margin: 0; padding: 0; }
.doc-req { display: grid; grid-template-columns: 22px 1fr auto auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.doc-req:last-child { border-bottom: 0; }
.doc-req > .ic { color: var(--muted); } .doc-req.ok > .ic { color: var(--ok); } .doc-req.falta > .ic { color: var(--warn); }
.doc-req-n { font: 500 12px var(--fuente-datos); color: var(--muted); white-space: nowrap; } .doc-req.ok .doc-req-n { color: var(--ok); }
.doc-req small { font-size: 13px; }
@media (max-width: 760px) { .doc-req { grid-template-columns: 22px 1fr; } .doc-req-n, .doc-req > .btn { grid-column: 2; justify-self: start; } }

/* Despacho del técnico */
.clientes { display: grid; gap: 14px; }
.cliente-nombre { font: 600 19px/1.25 var(--fuente-display); }
.cliente-kpis { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.cliente-kpis span { padding: 6px 10px; border-radius: 10px; background: var(--panel-2); font-size: 13px; color: var(--muted); }
.cliente-kpis span b { color: var(--text); font-family: var(--fuente-datos); margin-right: 3px; }
.cliente-kpis span.aviso { background: #FFF6E0; color: #5C3D00; } .cliente-kpis span.aviso b { color: #5C3D00; }
.t td.num, .t th.num { text-align: right; font-family: var(--fuente-datos); white-space: nowrap; }
.fa-total { margin: 12px 0 0; text-align: right; font-size: 15px; }
.t.compacta input { width: 100%; min-width: 70px; }

/* IA en el despacho: reparto de documentos y borradores */
.reparto td input, .reparto td select { width: 100%; min-width: 120px; }
.alerta.redactar { justify-content: space-between; align-items: center; flex-wrap: wrap; }
.alerta.redactar > div { display: flex; gap: 8px; align-items: flex-start; flex: 1 1 320px; }

/* Alta de clientes: invitación */
.invitacion { border: 1px solid var(--line); border-radius: 10px; padding: 12px; margin-top: 12px; background: var(--panel); }
.tag.warn { background: var(--albero, #F2C14E); color: var(--tinta, #0E3B26); }

/* Tratamiento compartido y años anteriores */
.comp-parcelas { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.comp-parcelas fieldset { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px 10px; margin: 0; display: grid; gap: 4px; }
.comp-parcelas legend { font-weight: 600; padding: 0 4px; }
.check-fila { display: flex; gap: 8px; align-items: center; font-size: 15px; }
.lista-doc { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; font-size: 15px; }
.lista-doc .ic { width: 16px; height: 16px; vertical-align: -3px; }
