/* JHYPERIONM — Sistema de Seguimiento
   Tokens y componentes copiados del sistema en producción (v1.9.0).
   Todo lo nuevo de Operaciones está al final, bajo "OPERACIONES". */
:root{
  --accent:#1F7D53;--accent-2:#2E9E63;--green-low:#C5E0B2;
  --btn:#1F7D53;--btn-hover:#176845;--btn-warn:#955c00;--btn-danger:#c0392b;
  --ok:#2f8f3e;--ok-t:#1f6b2a;--ok-bg:rgba(47,143,62,.13);
  --warn:#d98200;--warn-t:#8f5a00;--warn-bg:rgba(217,130,0,.14);
  --info:#2d7dd2;--info-t:#1d5fa6;--info-bg:rgba(45,125,210,.14);
  --danger:#c0392b;--danger-bg:rgba(192,57,43,.12);
  --gold:#e0a500;--forest:#0C3E2D;--forest-2:#1d4a35;--focus:#1F7D53;
  /* Forma: --r para tarjetas y paneles; --r-s para botones, campos e ítems */
  --r:14px;--r-s:10px;--radius:var(--r);
  /* Tipografía: Inter para el texto; Plus Jakarta Sans para títulos */
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-display:'Plus Jakarta Sans','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
html[data-theme="light"]{
  --bg:#F1F6F2;--surface:#FFFFFF;--surface-2:#F6FAF7;
  --sidebar:#FFFFFF;--sidebar-text:#33493d;--sidebar-muted:#58705f;
  --sidebar-active:rgba(31,125,83,.11);--sidebar-border:#e6efe9;
  --topbar:#FFFFFF;--text:#16271e;--muted:#56695d;--border:#e3ede7;--border-strong:#cfdcd3;
  --shadow:0 1px 2px rgba(16,40,28,.05),0 4px 14px rgba(16,40,28,.06);
  --shadow-lg:0 2px 4px rgba(16,40,28,.06),0 14px 30px rgba(16,40,28,.12);
  --cream:#fdf8ec;--cream-b:#f1e2bd;--cream-t:#7a5b10;
}
html[data-theme="dark"]{
  --bg:#18230F;--surface:#1f2e15;--surface-2:#233318;
  --sidebar:#11190a;--sidebar-text:#d4e3c8;--sidebar-muted:#8aa07e;
  --sidebar-active:rgba(58,169,109,.2);--sidebar-border:#243017;
  --topbar:#1f2e15;--text:#eaf2e4;--muted:#a3b899;--border:#2c3b20;--border-strong:#3e5234;
  --accent:#3aa96d;--accent-2:#46b878;--btn:#237a4c;--btn-hover:#1d6640;--btn-warn:#955c00;
  --ok:#5fcf74;--ok-t:#5fcf74;--warn:#f0a52a;--warn-t:#f0b44d;--info:#6aaef0;--info-t:#7dbcf5;--danger:#ff7a6b;
  --focus:#5fd08f;
  --shadow:0 1px 2px rgba(0,0,0,.28),0 4px 14px rgba(0,0,0,.22);
  --shadow-lg:0 2px 4px rgba(0,0,0,.3),0 14px 30px rgba(0,0,0,.4);
  --cream:#2b2a17;--cream-b:#4a4322;--cream-t:#e3c56b;--forest:#10382a;--forest-2:#1d4a35;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
body{font-family:var(--font);font-size:14px;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text);line-height:1.5;transition:background-color .2s,color .2s}
h1,h2{font-family:var(--font-display);letter-spacing:-.02em;line-height:1.2}
button{font-family:inherit;cursor:pointer}
a{color:var(--accent);text-decoration:none}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:rgba(120,140,128,.35);border-radius:5px}
.serif{font-family:var(--font-display);letter-spacing:-.02em}


/* ════ APP SHELL ════ */
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.scrim{display:none}
.sidebar{background:var(--sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh}
.side-brand{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 6px 16px;border-bottom:1px solid var(--sidebar-border);margin-bottom:12px}
.side-brand .mark{font-family:var(--font-display);font-weight:800;font-size:20px;letter-spacing:.04em;color:var(--text)}
.side-brand .tag{font-size:9.5px;letter-spacing:1.5px;color:var(--sidebar-muted);text-transform:uppercase}
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.side-group{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--sidebar-muted);padding:16px 13px 6px;font-weight:700}
.side-item{display:flex;align-items:center;gap:11px;min-height:38px;padding:8px 12px 8px 14px;border:none;background:none;color:var(--sidebar-text);font-size:14px;font-weight:500;border-radius:var(--r-s);text-align:left;width:100%;position:relative;transition:background-color .15s,color .15s}
.side-item .ic{width:22px;text-align:center;font-size:15px;line-height:1;flex-shrink:0}
.side-item:hover{background:var(--surface-2)}
.side-item.active{background:var(--sidebar-active);color:var(--accent);font-weight:600}
.side-item.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.side-item .pill{margin-left:auto;background:var(--btn);color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px}
.side-item .pill.new{background:var(--gold);color:#222}
.side-sep{height:1px;background:var(--sidebar-border);margin:8px 4px}
.side-foot{padding-top:10px;border-top:1px solid var(--sidebar-border);margin-top:8px}

.main{display:flex;flex-direction:column;min-width:0}
.topbar{background:var(--topbar);border-bottom:1px solid var(--border);height:60px;display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:40}
.topbar .ttl{font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:-.01em}
.crumbs{font-size:13px;color:var(--muted)}.crumbs b{color:var(--text);font-weight:600}
.topbar .grow{flex:1}
.search{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:7px 12px;width:260px;max-width:32vw}
.search input{border:none;background:none;outline:none;color:var(--text);font-family:inherit;font-size:13.5px;width:100%}
.icon-btn{width:40px;height:40px;border-radius:var(--r-s);border:1px solid var(--border);background:var(--surface);color:var(--text);display:flex;align-items:center;justify-content:center;font-size:16px;position:relative}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn .dot{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 3px}
.net{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:8px}
.net.on{color:var(--ok);background:var(--ok-bg)}.net.off{color:var(--cream-t);background:var(--cream)}
.user-chip{display:flex;align-items:center;gap:9px;padding:5px 8px;border-radius:9px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--btn);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.avatar.sm{width:28px;height:28px;font-size:11px}
.user-chip .n{font-size:13px;font-weight:600;line-height:1.15}.user-chip .r{font-size:11px;color:var(--muted);text-transform:capitalize}
.menu-btn{display:none}

.content{padding:24px;max-width:1320px;width:100%}
.ph{margin-bottom:20px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.ph h1{font-size:24px;font-weight:800;letter-spacing:-.025em;line-height:1.15}.ph .d{color:var(--muted);font-size:14px}
.eyebrow{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);font-weight:600}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:20px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .15s var(--ease),box-shadow .15s,border-color .15s}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.kpi.warn::before{background:var(--warn)}.kpi.info::before{background:var(--info)}.kpi.ok::before{background:var(--ok)}.kpi.danger::before{background:var(--danger)}.kpi.gold::before{background:var(--gold)}
.kpi .l{font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;margin-bottom:6px}
.kpi .v{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12px;color:var(--muted)}
.kpi.click{cursor:pointer}.kpi.click:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:16px}
.card-h{padding:14px 18px;border-bottom:1px solid var(--border);font-weight:600;font-size:15px;letter-spacing:-.01em;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.card-h small{font-weight:400;color:var(--muted);font-size:12px}
.card-b{padding:18px}
.card-b.flush{padding:0}
.two{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.two>.card{margin-bottom:0}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

.actions-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:20px}
.action{border-radius:var(--r);padding:20px;display:flex;align-items:center;gap:16px;cursor:pointer;border:1px solid var(--border);background:var(--surface);transition:transform .15s var(--ease),box-shadow .15s,border-color .15s;box-shadow:var(--shadow)}
.action:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}
.action.primary{background:var(--forest);color:#fff;border-color:var(--forest)}
.action .ai{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;background:var(--surface-2)}
.action.primary .ai{background:rgba(255,255,255,.15)}
.action .ai.o{background:#d98200;color:#fff}.action .ai.g{background:var(--accent);color:#fff}
.action .at{font-size:15.5px;font-weight:600;letter-spacing:-.01em}.action .as{font-size:12.5px;opacity:.85}

.attn{border-left:4px solid var(--warn)}
.attn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.attn-box{border:1px solid var(--border);border-radius:var(--r-s);padding:12px 14px;cursor:pointer}
.attn-box:hover{background:var(--surface-2)}
.attn-box .l{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.attn-box .v{font-size:22px;font-weight:700;color:var(--warn)}
.attn-box .v.i{color:var(--info)}.attn-box .v.d{color:var(--danger)}
.attn-box small{font-size:11.5px;color:var(--muted)}

.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.b-ok{background:var(--ok-bg);color:var(--ok-t)}.b-warn{background:var(--warn-bg);color:var(--warn-t)}.b-info{background:var(--info-bg);color:var(--info-t)}.b-danger{background:var(--danger-bg);color:var(--danger)}.b-soft{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}
.b-rol{background:var(--forest);color:#fff}.b-rol.gerencia{background:var(--accent)}.b-rol.supervisor{background:var(--info)}.b-rol.operario{background:#68877D}.b-rol.owner{background:#111}
.b-new{background:var(--gold);color:#222}

table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
table.tbl th{text-align:left;padding:10px 12px;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border-strong);white-space:nowrap}
table.tbl td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
table.tbl tr:hover td{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
table.tbl tr.click{cursor:pointer}
table.tbl td.num,table.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.tbl-wrap{overflow-x:auto}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.muted{color:var(--muted)}.small{font-size:12px}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}
.tab{padding:9px 14px;border:none;background:none;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.tab .c{font-size:11px;background:var(--surface-2);border-radius:10px;padding:0 6px;margin-left:4px}

.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.filters .f{display:flex;flex-direction:column;gap:4px;min-width:150px;flex:1}
.filters label,.fld label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
input.in,select.in,textarea.in{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--r-s);background:var(--surface);color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}
input.in:focus,select.in:focus,textarea.in:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
textarea.in{min-height:84px;resize:vertical}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:var(--r-s);border:1px solid transparent;font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;user-select:none;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .08s}
.btn:not(:disabled):active{transform:translateY(1px)}
.btn.p{background:var(--btn);color:#fff;box-shadow:0 1px 2px rgba(16,40,28,.14)}.btn.p:hover:not(:disabled){background:var(--btn-hover);box-shadow:0 3px 10px rgba(16,40,28,.18)}
.btn.dk{background:var(--forest);color:#fff}.btn.dk:hover:not(:disabled){filter:brightness(1.15)}
.btn.s{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:0 1px 2px rgba(16,40,28,.05)}.btn.s:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}
.btn.gh{background:transparent;color:var(--accent);box-shadow:none}.btn.gh:hover:not(:disabled){background:var(--sidebar-active)}
.btn.w{background:var(--btn-warn);color:#fff}.btn.w:hover:not(:disabled){filter:brightness(1.12)}
.btn.d{background:var(--btn-danger);color:#fff}.btn.d:hover:not(:disabled){filter:brightness(.92)}
.btn.sm{padding:0 12px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.btn.link{background:none;border:none;color:var(--accent);padding:0;min-height:0;border-radius:4px}.btn.link:hover:not(:disabled){text-decoration:underline;background:none}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}

.empty{text-align:center;padding:44px 20px;color:var(--muted);font-size:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-wrap:balance}
.empty .e{font-size:40px;line-height:1;margin-bottom:8px;opacity:.5}
.empty.load{flex-direction:row;gap:10px;padding:28px 20px}
.empty.load::before{content:"";width:18px;height:18px;flex-shrink:0;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}

/* Organigrama */
.org{display:flex;flex-direction:column;align-items:center;gap:18px;padding:10px 0}
.org-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.org-node{border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:10px;padding:10px 14px;min-width:150px;text-align:center;background:var(--surface-2)}
.org-node.top{border-top-color:#111}
.org-node .n{font-weight:600;font-size:13.5px}.org-node .r{font-size:11.5px;color:var(--muted)}

.health{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.health div{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;font-size:13px}

/* Chat */
.chat{display:grid;grid-template-columns:280px 1fr;min-height:460px}
.chat-list{border-right:1px solid var(--border)}
.chat-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer}
.chat-item:hover,.chat-item.active{background:var(--surface-2)}
.chat-item .n{font-weight:600;font-size:13.5px}.chat-item .m{font-size:12px;color:var(--muted)}
.chat-body{display:flex;flex-direction:column}
.msgs{flex:1;padding:16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:420px}
.msg{max-width:70%;padding:9px 12px;border-radius:12px;background:var(--surface-2);font-size:13.5px}
.msg.me{align-self:flex-end;background:var(--accent);color:#fff}
.msg small{display:block;font-size:10.5px;opacity:.7}
.chat-send{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}

/* Drawer y modal */
.backdrop{position:fixed;inset:0;background:rgba(10,20,14,.45);z-index:80;display:flex;justify-content:flex-end;animation:fade .15s}
.backdrop.center{justify-content:center;align-items:center;padding:16px}
.drawer{background:var(--surface);width:min(620px,100%);height:100%;display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.2);animation:slide .2s}
.drawer.wide{width:min(980px,100%)}
@keyframes slide{from{transform:translateX(30px);opacity:.6}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.dh{padding:22px 28px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.dh h2{font-size:22px;font-weight:800;letter-spacing:-.02em}
.db{padding:22px 28px;overflow-y:auto;flex:1;min-height:0}
.drawer{max-height:100vh}
.df{padding:14px 28px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;background:var(--surface)}
.x{background:none;border:none;font-size:24px;color:var(--muted);line-height:1}
.modal{background:var(--surface);border-radius:var(--r);width:min(480px,100%);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal .db{padding:22px}.modal .dh{padding:18px 22px}.modal .df{padding:12px 22px;border-radius:0 0 16px 16px}

.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fgrid .wide{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:6px}
.fld>span.lab{font-size:13.5px;font-weight:600;color:var(--text)}
.fld .opt{font-size:11px;color:var(--muted);font-weight:400;margin-top:-4px}
.fld small{font-size:12px;color:var(--muted)}
.hint{display:flex;gap:10px;align-items:flex-start;background:var(--ok-bg);color:var(--ok);border:1px solid rgba(47,143,62,.25);border-radius:10px;padding:12px 16px;font-size:13.5px;margin-bottom:18px}
.hint.warn{background:var(--cream);color:var(--cream-t);border-color:var(--cream-b)}
.hint.err{background:var(--danger-bg);color:var(--danger);border-color:rgba(192,57,43,.3)}
.boxed{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:16px}
.measure{display:flex;gap:14px;align-items:center;background:var(--surface-2);border-radius:12px;padding:14px 18px}
.measure .ic{font-size:22px}
.measure strong{font-size:16px;display:block}
.measure small{color:var(--muted)}
.evid h3{font-size:18px;margin:6px 0 2px}
.evid p{color:var(--muted);font-size:13.5px;margin-bottom:12px}
.file-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;padding:7px 10px;margin-top:8px;font-size:13px}
.file-row span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumbs{display:flex;gap:8px;flex-wrap:wrap}
.thumb{width:86px;height:64px;border-radius:8px;background:linear-gradient(135deg,#6b4f2a,#a67c45 45%,#caa06a);position:relative;overflow:hidden;border:1px solid var(--border)}
.thumb::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(0,0,0,.18) 7px 8px)}
.thumb span{position:absolute;bottom:2px;left:4px;right:4px;font-size:9px;color:#fff;z-index:1;text-shadow:0 1px 2px #000}

.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:120;display:flex;flex-direction:column;gap:8px}
.toast{background:#16271e;color:#fff;padding:11px 16px;border-radius:var(--r-s);font-size:13.5px;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:360px;animation:fade .2s}
.toast.err{background:var(--btn-danger)}

/* ════ OPERACIONES ════ */
.banner{display:flex;align-items:center;gap:10px;border-radius:10px;padding:10px 16px;font-size:13px;margin-bottom:14px;border:1px solid var(--cream-b);background:var(--cream);color:var(--cream-t);flex-wrap:wrap}
.banner .dotc{width:7px;height:7px;border-radius:50%;background:var(--cream-t)}
.banner .grow{flex:1}
.hero-op{background:var(--forest);color:#fff;border-radius:16px;padding:26px 28px;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;flex-wrap:wrap}
.hero-op .eyebrow{color:rgba(255,255,255,.7)}
.hero-op h2{font-size:28px;margin:4px 0;font-weight:800;letter-spacing:-.025em}
.hero-op p{opacity:.85;font-size:14px}
.hero-op .btn{background:#e9f3ed;color:var(--forest)}
.okpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.okpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;min-height:150px}
.okpi.hl{background:var(--forest-2);color:#fff;border-color:var(--forest-2)}
.okpi .top{display:flex;justify-content:space-between;font-size:13px}
.okpi .v{font-size:34px;font-weight:700;letter-spacing:-.025em;margin-top:14px;line-height:1.1;font-variant-numeric:tabular-nums}
.okpi .u{font-size:12px;opacity:.75}
.okpi .f{font-size:11px;opacity:.7;margin-top:auto;padding-top:10px}
.pipe{display:flex;flex-direction:column}
.pipe-step{display:flex;align-items:center;gap:14px;padding:12px 0;position:relative}
.pipe-step:not(:last-child)::after{content:"";position:absolute;left:21px;top:54px;height:14px;border-left:2px dashed var(--border)}
.pipe-ic{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--ok-bg);flex-shrink:0}
.pipe-ic.t{background:var(--warn-bg)}.pipe-ic.a{background:var(--info-bg)}.pipe-ic.d{background:var(--surface-2)}
.pipe-step .n{font-weight:600}.pipe-step small{display:block;color:var(--muted);font-size:11.5px}
.pipe-step .q{margin-left:auto;font-size:20px;font-weight:600;color:var(--accent)}
.chart svg{width:100%;height:auto;display:block}
.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-bottom:6px}
.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}

.saldo-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--surface-2);min-width:110px}
.saldo-bar i{display:block;height:100%}
.sb-campo{background:#2f8f3e}.sb-transito{background:#d98200}.sb-acopio{background:#2d7dd2}.sb-despachadas{background:#7a8f82}.sb-danadas{background:#c0392b}.sb-faltantes{background:#5b2a86}
.saldo-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;margin-top:8px}
.saldo-legend span{display:flex;align-items:center;gap:5px}
.saldo-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

.ficha-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}
.dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px}
.dl dt{color:var(--muted)}.dl dd{font-weight:500}
.qr{width:118px;height:118px;display:grid;grid-template-columns:repeat(21,1fr);background:#fff;padding:6px;border-radius:8px;border:1px solid var(--border)}
.qr i{background:#111}.qr b{background:#fff}
.timeline{position:relative;padding-left:26px}
.timeline::before{content:"";position:absolute;left:9px;top:4px;bottom:4px;border-left:2px solid var(--border)}
.ev{position:relative;padding-bottom:18px}
.ev::before{content:"";position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 2px var(--accent)}
.ev.envio::before{background:var(--warn);box-shadow:0 0 0 2px var(--warn)}
.ev.recepcion::before{background:var(--info);box-shadow:0 0 0 2px var(--info)}
.ev.despacho::before{background:#7a8f82;box-shadow:0 0 0 2px #7a8f82}
.ev.observar::before,.ev.anulacion::before{background:var(--danger);box-shadow:0 0 0 2px var(--danger)}
.ev.aprobar::before,.ev.cerrar::before{background:var(--ok);box-shadow:0 0 0 2px var(--ok)}
.ev .h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ev .t{font-weight:600;font-size:14px}
.ev .w{font-size:12px;color:var(--muted)}
.ev .b{font-size:13px;margin-top:3px}
.ev .delta{display:inline-block;font-size:11.5px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 7px;margin:4px 6px 0 0}
.progress{height:8px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--accent)}
.stock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.stock-cell{border:1px solid var(--border);border-radius:10px;padding:12px}
.stock-cell .c{font-size:12px;color:var(--muted)}.stock-cell .v{font-size:22px;font-weight:700}
.pending-tag{font-size:10.5px;background:var(--cream);color:var(--cream-t);border:1px solid var(--cream-b);border-radius:6px;padding:1px 6px;margin-left:6px}
.avail{font-size:12.5px;padding:8px 12px;border-radius:8px;background:var(--info-bg);color:var(--info);font-weight:600}
.sumline{display:flex;justify-content:space-between;font-size:13px;padding:8px 12px;border-radius:8px;background:var(--surface-2)}

/* ════ RESPONSIVE ════ */
@media (max-width:1100px){.okpis{grid-template-columns:repeat(2,1fr)}.two,.ficha-grid{grid-template-columns:1fr}}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;height:100vh;width:260px;z-index:90;transform:translateX(-100%);transition:transform .2s}
  .sidebar.open{transform:none}
  .scrim.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:85}
  .menu-btn{display:flex}
  .search{display:none}
  .content{padding:16px}
  .user-chip .n,.user-chip .r{display:none}
  .fgrid{grid-template-columns:1fr}
  .chat{grid-template-columns:1fr}.chat-list{border-right:none;border-bottom:1px solid var(--border)}
  .three{grid-template-columns:1fr}
  .dh,.db,.df{padding-left:18px;padding-right:18px}
  .topbar{padding:0 14px;gap:8px}
  .net span.t{display:none}
}
@media (max-width:520px){.okpis{grid-template-columns:1fr}.hero-op h2{font-size:22px}.okpi{min-height:0}}

/* ════ TABLERO DE ACOPIO · registro guiado ════ */
.step-t{font-weight:700;font-size:15px;margin:6px 0 12px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.tile{border:2px solid var(--border);background:var(--surface);color:var(--text);border-radius:14px;padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:all .12s}
.tile b{font-size:30px;line-height:1}.tile small{color:var(--muted);font-size:12px}
.tile:hover{border-color:var(--accent-2)}
.tile.on{border-color:var(--accent);background:var(--ok-bg);box-shadow:0 0 0 3px rgba(31,125,83,.15)}
.qty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.qty{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface-2)}
.qty .lab{font-weight:700;font-size:14px}
.in.big{font-size:24px;font-weight:700;text-align:center;padding:10px}
.quick{display:flex;gap:6px}
.quick button{flex:1;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:7px;padding:4px 0;font-size:12px;font-weight:600}
.quick button:hover{background:var(--ok-bg)}
.total-big{text-align:center;font-size:16px;padding:12px;border-radius:10px;background:var(--surface-2);margin-bottom:22px}
.total-big b{font-size:26px;color:var(--accent)}
@media (max-width:640px){.qty-grid{grid-template-columns:1fr}.tiles b{font-size:24px}}

/* ════ OPERACIONES v2 · flujo campo → Puerto Inca → Lima ════ */
.dotw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:middle}
.le-head,.le-row{display:grid;grid-template-columns:1fr 130px 110px 30px;gap:10px;align-items:center}
.le-head{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;padding:0 4px 6px}
.le-row{padding:10px 4px;border-top:1px solid var(--border)}
.le-med{display:flex;flex-direction:column;gap:1px}.le-med b{font-size:15px}.le-med small{font-size:11.5px}
.le-q{font-size:18px;font-weight:700;text-align:right}
.le-pt{font-weight:600;color:var(--accent)}
.le-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 4px 4px;border-top:1px solid var(--border)}
.chip{border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600}
.chip:hover{background:var(--ok-bg)}.chip small{font-weight:400;color:var(--muted)}
.le-tot{margin:14px 0 20px}
.tbl.tot td,.tbl.tot th{padding:8px 10px}.tbl.tot tr.sum td{font-weight:700;background:var(--surface-2);border-top:2px solid var(--border)}
.in.bad,input.bad{border-color:var(--danger)!important;background:var(--danger-bg)}
.bad-t{color:var(--danger);font-weight:700}
.tiles.sm{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin:0}
.tiles.sm .tile{padding:8px 4px}.tiles.sm .tile b{font-size:16px}
.pick{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.pick-i{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--surface)}
.pick-i:hover{border-color:var(--accent-2)}.pick-i.on{border-color:var(--accent);background:var(--ok-bg)}
.pick-i input{margin-top:4px;accent-color:var(--accent)}.pick-i b{display:block;font-size:14px}.pick-i small{color:var(--muted);font-size:12px}
.chk{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}
.chk span{font-size:12.5px;padding:4px 10px;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}
.chk span.ok{background:var(--ok-bg);color:var(--ok);border-color:rgba(47,143,62,.3);font-weight:600}
.flow{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding-bottom:4px}
.flow-step{flex:1;min-width:150px;border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:2px}
.flow-step .n{font-weight:600;font-size:13.5px;margin-top:6px}.flow-step .v{font-size:26px;font-weight:700;line-height:1.1;margin-top:4px}.flow-step>small{color:var(--muted);font-size:11.5px}
.flow-arr{align-self:center;color:var(--muted);font-size:20px}
.mov{display:flex;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer}
.mov:hover{background:var(--surface-2)}
@media (max-width:640px){.le-head{display:none}.le-row{grid-template-columns:1fr 100px 30px}.le-pt{display:none}.flow{flex-direction:column}.flow-arr{transform:rotate(90deg)}}

/* ════ Documentos: galería, visor y lectura ════ */
.spin{display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.doc-row{align-items:flex-start;flex-wrap:wrap}
.doc-row .mini,.doc-row .dnoimg{width:56px;height:56px;border-radius:8px;object-fit:cover;background:var(--surface-2);border:1px solid var(--border);flex:none;font-size:22px;display:flex;align-items:center;justify-content:center}
.fr-main{flex:1;min-width:160px;display:flex;flex-direction:column;gap:4px}
.fr-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-sub{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.fr-sub .delta{font-size:11.5px}
.sel-sm{width:auto;max-width:150px;padding:5px 8px;font-size:12.5px}
.in.autofill{background:var(--info-bg);border-color:var(--info)}
.docs-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.dgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}
.dgal.big{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.dcard{display:flex;flex-direction:column;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden;padding:0;color:var(--text);font:inherit;cursor:pointer}
.dcard:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.dcard[hidden]{display:none}
.dimg{position:relative;aspect-ratio:4/3;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.dimg img{width:100%;height:100%;object-fit:cover}
.dimg .thumb{width:100%;height:100%;border:none;border-radius:0}
.dnoimg{font-size:30px;color:var(--muted)}
.dnoimg.big{font-size:60px;text-align:center;padding:30px}
.dpdf{position:absolute;top:6px;left:6px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px}
.dmeta{padding:8px 9px;display:flex;flex-direction:column;gap:3px;min-width:0}
.dmeta b{font-size:12.5px}
.dmeta small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dmeta .badge{font-size:9.5px;padding:2px 7px;align-self:flex-start}
.visor{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:start}
.vimg{background:#1b1f1c;border-radius:12px;min-height:280px;max-height:72vh;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:8px;color:#ccc}
.vimg img,.vimg .vpage{max-width:100%;max-height:70vh;object-fit:contain;cursor:zoom-in;background:#fff;border-radius:4px}
.vimg.zoom{justify-content:flex-start;align-items:flex-start}
.vimg.zoom img{max-width:none;max-height:none;cursor:zoom-out}
.vimg .thumb.big{width:100%;height:260px}
.vside{display:flex;flex-direction:column;gap:14px;min-width:0}
.vocr{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vres{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13.5px;margin:0}
.vtxt{min-height:180px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.45}
.docs-search{width:100%;max-width:none}
@media (max-width:860px){.visor{grid-template-columns:1fr}.vimg{max-height:55vh}}
.two>*,.ficha-grid>*,.visor>*{min-width:0}

/* ════ REPORTES POR ÁREA ════ */
.av{--c:var(--accent);width:36px;height:36px;border-radius:50%;background:var(--c);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;letter-spacing:.3px;box-shadow:0 0 0 2px var(--surface);vertical-align:middle}
.av.xs{width:22px;height:22px;font-size:9.5px}.av.lg{width:52px;height:52px;font-size:18px}
.av.ch{border-radius:11px;font-size:17px;background:color-mix(in srgb,var(--c) 16%,var(--surface));color:var(--c)}
.av.lg.ch{font-size:26px;border-radius:14px}
.achips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.achip{--c:var(--accent);display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--c) 30%,var(--border));background:color-mix(in srgb,var(--c) 8%,var(--surface));color:var(--text);border-radius:20px;padding:5px 12px;font-size:12.5px;font-weight:600;white-space:nowrap}
.achip b{background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c);border-radius:10px;padding:0 7px;font-size:11px}
.achip.on{background:var(--c);color:#fff;border-color:var(--c)}.achip.on b{background:rgba(255,255,255,.25);color:#fff}
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:none;background:none;padding:6px 12px;border-radius:7px;font-size:13px;font-weight:600;color:var(--muted)}
.seg button.on{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.dia-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:16px 0 10px}
.dia-h::first-letter{text-transform:uppercase}
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px}
.rcard{--c:var(--accent);text-align:left;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--c);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;color:var(--text);font-size:13px;transition:transform .12s,box-shadow .12s;min-width:0}
.rcard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.rc-top{display:flex;gap:10px;align-items:center}
.rc-who{flex:1;min-width:0;display:flex;flex-direction:column}.rc-who b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rc-who small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-tit{font-weight:600;font-size:14px;line-height:1.35}
.rc-ind{display:flex;gap:6px;flex-wrap:wrap}.rc-ind span{background:var(--surface-2);border-radius:7px;padding:2px 8px;font-size:11.5px;color:var(--muted)}.rc-ind b{color:var(--text)}
.rc-bar{height:6px;border-radius:4px;background:var(--surface-2);overflow:hidden;border:1px solid var(--border)}.rc-bar i{display:block;height:100%;background:var(--c,var(--accent));border-radius:4px}
.rc-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.tarde{color:var(--danger)!important;font-weight:600}
.cumpl .btn{white-space:normal;text-align:left}
.cumpl{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:center}
.cumpl-tot{display:flex;gap:16px;align-items:center}.cumpl-tot .v{font-size:30px;font-weight:700;line-height:1}
.ring{width:84px;height:84px;flex-shrink:0}.ring circle{fill:none;stroke-width:3.6}.ring .bg{stroke:var(--surface-2)}.ring .fg{stroke:var(--accent);stroke-linecap:round}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ctile{--c:var(--accent);text-align:left;border:1px solid var(--border);border-left:4px solid var(--c);background:var(--surface);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:4px;color:var(--text);min-width:0}
.ctile:hover{background:var(--surface-2)}
.ct-h{display:flex;gap:6px;align-items:center;font-size:12.5px;white-space:nowrap;overflow:hidden}.ct-h b{overflow:hidden;text-overflow:ellipsis}
.ct-v{font-size:20px;font-weight:700;line-height:1}.ct-v small{font-size:12px;color:var(--muted);font-weight:500}
.faltan{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pchip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:2px 10px 2px 3px;font-size:12px}
.rep-dh{border-top:5px solid var(--c)}
.rep-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
.rep-main,.rep-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.rep-main .step-t{margin:6px 0 0}
.rep-strip{display:flex;gap:10px;flex-wrap:wrap}
.rep-strip>div{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;font-size:14px}
.rep-strip small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.rep-strip .animo{flex-direction:row;gap:10px;align-items:center}.rep-strip .animo>div{display:flex;flex-direction:column}
.animo span{font-size:22px}
.animo.verde{background:var(--ok-bg)!important;border-color:rgba(47,143,62,.3)!important}.animo.ambar{background:var(--warn-bg)!important;border-color:rgba(217,130,0,.3)!important}.animo.rojo{background:var(--danger-bg)!important;border-color:rgba(192,57,43,.3)!important}
.animo-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.animo-pick label{border:2px solid var(--border);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;text-align:center;font-size:13px;background:var(--surface)!important}
.animo-pick input{position:absolute;opacity:0;pointer-events:none}
.animo-pick label:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,125,83,.15)}
.animo-pick label.verde:has(input:checked){background:var(--ok-bg)!important}.animo-pick label.ambar:has(input:checked){background:var(--warn-bg)!important;border-color:var(--warn)}.animo-pick label.rojo:has(input:checked){background:var(--danger-bg)!important;border-color:var(--danger)}
.kpis.mini{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:0}
.kpis.mini .kpi{padding:10px 12px;box-shadow:none}.kpis.mini .kpi .v{font-size:20px}.kpis.mini .kpi .l{font-size:10.5px}
.acts{display:flex;flex-direction:column;gap:6px}
.act{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-size:13.5px}
.act .ai{font-size:16px}.act .at{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.act.hecho .rc-bar i{background:var(--ok)}.act.curso .rc-bar i{background:var(--info)}.act.bloqueado{border-color:rgba(192,57,43,.35);background:var(--danger-bg)}.act.bloqueado .rc-bar i{background:var(--danger)}
.lpm{display:grid;gap:8px}
.lpm-i{border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:13.5px}.lpm-i p{margin-top:2px;white-space:pre-wrap}
.lpm-i.ok{background:var(--ok-bg);border-color:rgba(47,143,62,.25)}.lpm-i.bad{background:var(--danger-bg);border-color:rgba(192,57,43,.3)}
.coms{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto}
.com{display:flex;gap:8px;font-size:13px}.com>div{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:7px 10px;flex:1;min-width:0}
.com.observacion>div{border-color:rgba(192,57,43,.4)}.com.aprobacion>div{border-color:rgba(47,143,62,.4)}
.com-f{display:flex;gap:6px;margin-top:10px}
.ia-box{border:1px dashed var(--accent);background:linear-gradient(135deg,rgba(31,125,83,.07),rgba(45,125,210,.07));border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.ia-box[hidden]{display:none}.ia-box textarea{min-height:70px}.ia-box .btn{align-self:flex-start}
.act-row{display:grid;grid-template-columns:1fr 150px 130px 28px;gap:8px;align-items:center;margin-bottom:8px}
.av-r{display:flex;gap:6px;align-items:center}.av-r input{flex:1;accent-color:var(--accent)}.av-r small{width:34px;text-align:right;font-size:11.5px}
.dnoimg span,.dnoimg b{font-family:ui-monospace,monospace}

/* ════ MENSAJES ════ */
.chat2{display:grid;grid-template-columns:300px minmax(0,1fr);height:calc(100vh - 230px);min-height:520px;overflow:hidden;margin:0}
.cl{border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;background:var(--surface)}
.cl-list{overflow-y:auto;flex:1;padding:0 6px 10px}
.cl-g{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:12px 10px 4px}
.ci{display:flex;gap:10px;align-items:center;width:100%;border:none;background:none;text-align:left;padding:8px 10px;border-radius:10px;color:var(--text)}
.ci:hover{background:var(--surface-2)}.ci.on{background:var(--sidebar-active)}
.ci-b{flex:1;min-width:0}
.ci-t{display:flex;justify-content:space-between;gap:6px;font-size:13.5px}.ci-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ci-t small{color:var(--muted);font-size:11px;flex-shrink:0}
.ci-m{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.ci-m span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci-m em{font-style:normal;background:var(--accent);color:#fff;border-radius:10px;font-size:10.5px;font-weight:700;padding:0 7px;min-width:18px;text-align:center}
.cv{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg)}
.cvh{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface)}
.cvh-t{flex:1;min-width:0;display:flex;flex-direction:column}.cvh-t b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cvh-t small{color:var(--muted);font-size:12px}
.cvh .back{display:none}
.cv-q{display:flex;gap:8px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--border)}
.cv-pin{padding:7px 14px;font-size:12.5px;background:var(--cream);color:var(--cream-t);border-bottom:1px solid var(--cream-b);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msgs2{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.dsep{text-align:center;margin:12px 0 8px}.dsep span{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2px 12px;font-size:11.5px;color:var(--muted);font-weight:600}
.dsep span::first-letter{text-transform:uppercase}
.mrow{display:flex;gap:8px;align-items:flex-end;margin-top:8px;position:relative;max-width:100%}
.mrow.junto{margin-top:0;padding-left:44px}.mrow.yo{flex-direction:row-reverse;padding-left:0}
.mb{max-width:min(560px,78%);display:flex;flex-direction:column;position:relative;min-width:0}
.mrow.yo .mb{align-items:flex-end}
.bub{background:var(--surface);border:1px solid var(--border);border-radius:14px 14px 14px 4px;padding:7px 11px;font-size:13.8px;box-shadow:0 1px 2px rgba(0,0,0,.04);min-width:0;max-width:100%;overflow-wrap:anywhere}
.mrow.yo .bub{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:14px 14px 4px 14px}
.mrow.pinned .bub{box-shadow:0 0 0 2px var(--gold)}
.mn{font-weight:700;font-size:12.5px;margin-bottom:2px}.mn small{font-weight:400;color:var(--muted)}
.mq{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:6px;padding:4px 8px;font-size:12px;margin-bottom:5px;cursor:pointer;color:var(--muted)}.mq b{display:block;color:var(--text);font-size:11.5px}
.mimgs{display:grid;gap:3px;border-radius:10px;overflow:hidden;margin:2px 0 4px;max-width:340px}
.mimgs.n2,.mimgs.n3,.mimgs.n4{grid-template-columns:1fr 1fr}
.mimgs img{width:100%;height:100%;max-height:260px;object-fit:cover;cursor:zoom-in;background:var(--surface-2);min-height:90px;display:block}
.mimgs.n1 img{max-height:320px}
.mfile{display:flex;gap:10px;align-items:center;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:8px 10px;margin:3px 0;text-align:left;color:var(--text);width:100%;max-width:320px}
.mfile span:last-child{display:flex;flex-direction:column;min-width:0}.mfile b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mfile small{font-size:11px;color:var(--muted)}
.fx{width:38px;height:44px;border-radius:7px;background:var(--forest);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase;flex-shrink:0}
.mt{white-space:pre-wrap}
.mtime{font-size:10.5px;color:var(--muted);text-align:right;margin-top:1px;display:flex;gap:4px;justify-content:flex-end}
.tick{color:var(--muted)}.tick.ok{color:var(--info);font-weight:700}
.reacs{display:flex;gap:4px;flex-wrap:wrap;margin-top:-4px;position:relative;z-index:1;padding:0 6px}
.reacs button{border:1px solid var(--border);background:var(--surface);border-radius:12px;font-size:12px;padding:0 7px}.reacs button.on{border-color:var(--accent);background:var(--sidebar-active)}
.macts{position:absolute;top:-14px;right:0;display:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:2px;z-index:3}
.mrow.yo .macts{right:auto;left:0}
.macts button{border:none;background:none;font-size:14px;padding:3px 5px;border-radius:6px}.macts button:hover{background:var(--surface-2)}
.mrow:hover .macts{display:flex}
.mention{color:var(--info);font-weight:600}.mention.yo{background:var(--warn-bg);color:var(--warn);border-radius:4px;padding:0 3px}
.mcard{--c:var(--accent);display:flex;gap:10px;border:1px solid var(--border);border-left:4px solid var(--c);background:var(--surface);border-radius:10px;padding:9px 11px;margin:3px 0;max-width:360px;text-align:left}
.mc-ic{font-size:22px}.mc-b{display:flex;flex-direction:column;min-width:0;gap:2px}.mc-b small{color:var(--muted);font-size:11.5px}.mc-b b{font-size:13.5px}
.comp{border-top:1px solid var(--border);background:var(--surface);padding:8px 10px;position:relative}
.comp-r{font-size:12px;background:var(--surface-2);border-left:3px solid var(--accent);border-radius:6px;padding:5px 30px 5px 8px;margin-bottom:6px;position:relative;color:var(--muted)}
.comp-r .x{position:absolute;right:6px;top:2px;font-size:18px}
.comp-f{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.comp-f .pchip{padding:3px 4px 3px 10px}
.comp-row{display:flex;gap:6px;align-items:flex-end}
.comp-row textarea{min-height:40px;max-height:140px;resize:none;padding:9px 12px;border-radius:20px}
.comp-row .icon-btn{flex-shrink:0;border:none}
.send{border-radius:50%;width:42px;height:42px;padding:0;flex-shrink:0;font-size:16px}
.emoji-pop{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:6px;margin-bottom:6px;max-width:400px}
.emoji-pop button{border:none;background:none;font-size:20px;border-radius:6px;padding:2px}.emoji-pop button:hover{background:var(--surface-2)}
.mention-pop{position:absolute;bottom:calc(100% - 2px);left:60px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:4px;min-width:260px;z-index:5}
.mention-pop[hidden]{display:none}
.mention-pop button{display:flex;gap:8px;align-items:center;width:100%;border:none;background:none;padding:6px 8px;border-radius:8px;text-align:left;color:var(--text);font-size:13px}.mention-pop button:hover{background:var(--surface-2)}
.gente{display:flex;flex-direction:column;gap:2px;max-height:52vh;overflow-y:auto}
.gente.small-list{max-height:240px;border:1px solid var(--border);border-radius:10px;padding:4px}
.pers{display:flex;gap:10px;align-items:center;border:none;background:none;padding:8px 10px;border-radius:10px;text-align:left;width:100%;color:var(--text);cursor:pointer}
.pers:hover{background:var(--surface-2)}.pers>span:last-child{display:flex;flex-direction:column;min-width:0}.pers small{color:var(--muted);font-size:12px}
.pers input{accent-color:var(--accent);width:16px;height:16px}
.pers[hidden],.ci[hidden]{display:none}

/* ════ REUNIONES ════ */
.reu-hero{--c:var(--forest);background:radial-gradient(circle at 85% -20%,rgba(255,255,255,.18),transparent 55%),linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 55%,#000));color:#fff;border-radius:20px;padding:26px 28px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;margin-bottom:18px;box-shadow:0 12px 34px rgba(12,62,45,.25);position:relative;overflow:hidden}
.rh-l{display:flex;flex-direction:column;gap:10px;min-width:0}
.rh-ey{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;opacity:.85;font-weight:600}
.reu-hero h2{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-.025em;line-height:1.1}
.rh-m{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:13.5px;opacity:.92;align-items:center}.rh-m span{display:inline-flex;gap:6px;align-items:center}
.reu-hero .av{box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.live{color:#ff6b5b;animation:pulse 1.4s infinite;font-weight:700}
.reu-hero .live,.sala-bar .live{color:#ff8a7d}
@keyframes pulse{50%{opacity:.45}}
.cd{display:flex;gap:8px}
.cd>div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:8px 12px;min-width:66px;text-align:center;backdrop-filter:blur(4px)}
.cd b{display:block;font-size:28px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}
.cd small{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;opacity:.8}
.cd.now{font-size:16px;font-weight:700;background:rgba(255,255,255,.14);border-radius:12px;padding:10px 14px;display:inline-block;align-self:flex-start}
.rh-a{margin-top:4px}
.btn.big{padding:13px 22px;font-size:15px;border-radius:12px}
.btn.join{background:#fff;color:var(--c,var(--forest));box-shadow:0 6px 18px rgba(0,0,0,.18)}
.btn.join:hover{transform:translateY(-1px)}
.btn.ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.3)}.btn.ghost:hover{background:rgba(255,255,255,.2)}
.seg.rsvp{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);align-self:flex-start}
.reu-hero .seg.rsvp button{color:#fff;opacity:.85}
.seg.rsvp button.on{background:#fff;color:var(--forest);opacity:1}
.seg.rsvp button.on.si{color:var(--ok)}.seg.rsvp button.on.no{color:var(--danger)}.seg.rsvp button.on.quizas{color:var(--warn)}
.reu-list .seg.rsvp{background:var(--surface-2);border-color:var(--border)}
.sala-bar .seg.rsvp{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}.sala-bar .seg.rsvp button{color:#fff}
.reu-list .seg.rsvp button{padding:3px 9px;font-size:11.5px}
.reu-list .seg.rsvp button.on{background:var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.1)}.sala-bar .seg.rsvp button.on{background:#fff}
.rh-r{display:flex;flex-direction:column;gap:12px;min-width:0}
.rh-box{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:12px 14px}
.rh-bt{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;opacity:.8;font-weight:700;margin-bottom:8px}
.rh-ag{list-style:none;counter-reset:a;display:flex;flex-direction:column;gap:5px;font-size:13px}
.rh-ag li{counter-increment:a;display:flex;gap:8px;align-items:baseline}.rh-ag li::before{content:counter(a);font-size:11px;font-weight:700;background:rgba(255,255,255,.2);border-radius:50%;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.rh-ag li span{flex:1}.rh-ag li small{opacity:.7;font-size:11px;white-space:nowrap}.rh-ag li.ok span{text-decoration:line-through;opacity:.7}
.avs{display:inline-flex;align-items:center;padding-left:4px}.avs .av{margin-left:-4px;width:26px;height:26px;font-size:10px}
.avs .av.more{background:var(--surface-2);color:var(--muted);font-size:9px}
.reu-hero .avs .av.more{background:rgba(255,255,255,.25);color:#fff}
.reu-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.reu-list{display:flex;flex-direction:column;gap:8px}
.reu-row{--c:var(--accent);display:flex;gap:14px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer;background:var(--surface);transition:background .12s,transform .12s}
.reu-row:hover{background:var(--surface-2);transform:translateX(2px)}
.reu-row[hidden]{display:none}
.fb{width:54px;flex-shrink:0;border-radius:10px;background:color-mix(in srgb,var(--c) 12%,var(--surface));color:var(--c);display:flex;flex-direction:column;align-items:center;padding:5px 0;line-height:1.1}
.fb b{font-size:21px}.fb small{font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:.5px}
.rr-b{flex:1;min-width:0}.rr-t{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rr-t b{font-size:14px}
.rr-f{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}
.rr-a{flex-shrink:0}
.reu-row.past .fb{background:var(--surface-2);color:var(--muted)}
.pill-n{background:var(--warn);color:#fff;border-radius:10px;font-size:11px;padding:0 8px}
.acu-list{display:flex;flex-direction:column;gap:6px}
.acu{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13.5px;background:var(--surface)}
.acu-b{flex:1;min-width:0}.acu-b .small{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:2px}
.acu.hecho .acu-b>div:first-child{text-decoration:line-through;color:var(--muted)}
.chk{width:24px;height:24px;border-radius:7px;border:2px solid var(--border);background:var(--surface);color:#fff;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.chk:not(:disabled):hover{border-color:var(--accent)}
.acu.hecho .chk,.ag-list li.ok .chk{background:var(--ok);border-color:var(--ok)}
.ag-list .chk{color:var(--muted)}.ag-list li.ok .chk{color:#fff}
.x.sm{font-size:18px}
.reu-how ol{padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.sala-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 60%,#000));color:#fff;border-radius:14px;padding:14px 16px;margin-bottom:14px}
.sala-bar .btn.join{color:var(--c)}
.sb-i{flex:1;font-size:14px;min-width:160px;font-variant-numeric:tabular-nums}
.ag-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.ag-list li{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:8px 10px}
.ag-list li.ok .ag-b>div:first-child{text-decoration:line-through;color:var(--muted)}
.ag-b{flex:1;min-width:0}.ag-b .small{display:flex;gap:6px;align-items:center}
.add-row{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.add-row input[name=t]{flex:2;min-width:200px}.add-row select{flex:1;min-width:160px}
.asis-top{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center}
.asis-areas{display:flex;gap:6px;flex-wrap:wrap}
.asis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;margin-top:10px}
.asis{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:7px 10px;background:var(--surface);text-align:left;color:var(--text);min-width:0}
.asis>span:not(.av){flex:1;min-width:0;display:flex;flex-direction:column}.asis b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asis small{color:var(--muted);font-size:11px}
.asis em{font-style:normal;font-size:11px;color:var(--muted);white-space:nowrap}
.asis.on{border-color:rgba(47,143,62,.4);background:var(--ok-bg)}.asis.on em{color:var(--ok);font-weight:700}
.asis.si em{color:var(--info)}.asis.no{opacity:.7}.asis.no em{color:var(--danger)}.asis.qz em{color:var(--warn)}
button.asis:hover{border-color:var(--accent)}
textarea.notas-in{min-height:300px;font-size:14px;line-height:1.6}
.notas-ro,.acta-ro{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:16px;font-size:14px;line-height:1.6}
.acta-ro{white-space:normal}.acta-ro h3{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px;color:var(--accent)}.acta-ro h4{font-size:12px;letter-spacing:1px;margin:12px 0 2px;color:var(--accent)}
textarea.acta-in{min-height:380px;font-family:ui-monospace,Consolas,monospace;font-size:12.8px;line-height:1.55}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.prog{display:flex;flex-direction:column;gap:14px}
.chk-l{display:flex;gap:8px;align-items:center;font-size:13.5px;cursor:pointer}.chk-l input{accent-color:var(--accent);width:16px;height:16px}
.seg.big{display:flex;flex-wrap:wrap}
.seg.big label{flex:1;min-width:150px;cursor:pointer}
.seg.big input{position:absolute;opacity:0;pointer-events:none}
.seg.big span{display:block;text-align:center;padding:9px 10px;border-radius:7px;font-size:13px;font-weight:600;color:var(--muted)}
.seg.big input:checked+span{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.1)}
#q-area[hidden],#q-pers[hidden],#q-link[hidden]{display:none}
.midia{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:-6px 0 18px}
.md{display:flex;gap:12px;align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:12px 14px;color:var(--text);box-shadow:var(--shadow);min-width:0;transition:transform .12s}
.md:hover{transform:translateY(-1px)}
.md-i{width:40px;height:40px;border-radius:11px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.md>span:last-child{display:flex;flex-direction:column;min-width:0}.md small{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600}.md b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.md.ok .md-i{background:var(--ok-bg)}.md.warn{border-color:rgba(217,130,0,.4)}.md.warn .md-i{background:var(--warn-bg)}.md.info .md-i{background:var(--info-bg)}
.md.live{border-color:rgba(192,57,43,.45)}.md.live .md-i{background:var(--danger-bg)}.md.live small{color:var(--danger)}

@media (max-width:1100px){.rep-grid,.reu-grid{grid-template-columns:1fr}.cumpl{grid-template-columns:1fr}}
@media (max-width:860px){
  .search.docs-search{display:flex}
  .chat2{grid-template-columns:1fr;height:calc(100vh - 190px);min-height:440px}
  .chat2.sel .cl{display:none}.chat2:not(.sel) .cv{display:none}
  .cvh .back{display:flex;border:none;font-size:24px;width:30px}
  .mb{max-width:86%}
  .macts{display:none!important}
  .reu-hero{grid-template-columns:1fr;padding:20px 18px;gap:16px}
  .reu-hero h2{font-size:25px}
  .cd>div{min-width:0;flex:1;padding:6px 4px}.cd b{font-size:22px}
  .asis-top{grid-template-columns:1fr}
  .act-row{grid-template-columns:1fr 1fr 28px}.act-row>input.in{grid-column:1/-1}.act-row .av-r{grid-column:1/3}
  .grid3{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  .animo-pick{grid-template-columns:1fr}
  .rr-a{display:none}
  .reu-row{gap:10px}
  .rh-a .btn{flex:1}
  .grid3{grid-template-columns:1fr}
  .midia{grid-template-columns:1fr 1fr}
  .md{padding:10px}.md-i{width:32px;height:32px;font-size:16px}
}

/* ════ REPORTE SENCILLO ════ */
.rform{display:flex;flex-direction:column;gap:16px}
.rf-row{display:grid;grid-template-columns:200px 1fr;gap:12px}
textarea.rf-txt{min-height:150px;font-size:15px;line-height:1.55}
.opc{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.opc label{cursor:pointer;position:relative;font-size:inherit;text-transform:none;letter-spacing:0;color:var(--text);font-weight:500}
.opc input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.opc label span{display:inline-block;border:1.5px solid var(--border);background:var(--surface);border-radius:20px;padding:7px 14px;font-size:13.5px;font-weight:500;transition:all .12s}
.opc label:hover span{border-color:var(--accent)}
.opc input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.opc input:focus-visible+span{box-shadow:0 0 0 3px rgba(31,125,83,.25)}
.opc .otro-in{flex:1 1 220px;min-width:180px;padding:7px 12px;border-radius:20px}
.opc.est input:checked+span{color:#fff}
.opc.est .e-ok input:checked+span{background:var(--ok);border-color:var(--ok)}.opc.est .e-info input:checked+span{background:var(--info);border-color:var(--info)}
.opc.est .e-warn input:checked+span{background:var(--warn);border-color:var(--warn)}.opc.est .e-bad input:checked+span{background:var(--danger);border-color:var(--danger)}
.frases{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.frase{border:1px dashed color-mix(in srgb,var(--accent) 50%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--surface));color:var(--text);border-radius:14px;padding:3px 10px;font-size:12.5px}
.frase::before{content:"+ ";color:var(--accent);font-weight:700}
.frase:hover{background:var(--sidebar-active)}
.et{display:inline-flex;gap:4px;align-items:center;border-radius:10px;padding:1px 8px;font-size:11.5px;font-weight:600}
.et.ok{background:var(--ok-bg);color:var(--ok)}.et.info{background:var(--info-bg);color:var(--info)}.et.warn{background:var(--warn-bg);color:var(--warn)}.et.bad{background:var(--danger-bg);color:var(--danger)}
.rep-strip .et{font-size:13px;padding:2px 8px}
.rc-txt{font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rc-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.rc-tags>span:not(.et){background:var(--surface-2);border-radius:7px;padding:1px 8px;font-size:11.5px;color:var(--muted)}
.rep-txt{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:14.5px;line-height:1.6}
@media (max-width:520px){.rf-row{grid-template-columns:1fr}.opc label span{padding:7px 12px}}

/* ════ PRODUCCIÓN EN CAMPO · CONTEO · ATF · EDICIÓN ════ */
.opc input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.chkl{display:flex;gap:8px;align-items:center;font-size:13.5px;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text)}
.chkl input{width:18px;height:18px;accent-color:var(--accent)}
.fgrid .chkl.wide{grid-column:1/-1}
.bl-row{display:flex;gap:6px;align-items:center;margin-bottom:6px;max-width:320px}
.bl-row .in{text-transform:uppercase}
.mes-nav{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.mes-nav b{font-size:17px;min-width:150px;text-align:center}
.pf-grid{display:grid;grid-template-columns:70px repeat(3,1fr);gap:8px;align-items:center;max-width:520px}
.pf-h{text-align:center;font-weight:700;font-size:15px}
.pf-l{font-weight:600;font-size:13.5px;color:var(--muted)}
.pf-q{font-size:22px;font-weight:700;text-align:center;padding:12px 6px}
.pf-total{display:flex;gap:16px;align-items:center;border-radius:12px;padding:12px 16px;margin-top:12px;border:1.5px solid var(--border);background:var(--surface)}
.pf-total>div:first-child{display:flex;flex-direction:column;align-items:center;min-width:92px}
.pf-total>div:first-child b{font-size:30px;line-height:1.1}
.pf-total small{color:var(--muted);font-size:11.5px}
.pf-total.ok{border-color:var(--ok)}.pf-total.ok .progress i{background:var(--ok)}
.pf-total.mid{border-color:#d98200}.pf-total.mid .progress i{background:#d98200}
.pf-total.low{border-color:var(--danger)}.pf-total.low .progress i{background:var(--danger)}
.stepper{display:flex;gap:6px;align-items:center}.stepper .in{text-align:center;max-width:90px;font-size:17px;font-weight:700}.stepper .btn{min-width:42px;font-size:18px;padding:8px 0}
.inc{display:inline-block;font-size:12px;border:1px solid var(--border);border-radius:14px;padding:2px 9px;margin:2px 4px 2px 0;background:var(--surface)}
.hoy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.hoy-k{text-align:left;border:1.5px solid var(--border);border-radius:12px;padding:12px;background:var(--surface);cursor:pointer;color:var(--text);font:inherit}
.hoy-k .hk-n{font-weight:700;font-size:14px}.hoy-k .hk-v{font-size:26px;font-weight:800;margin:4px 0}
.hoy-k .progress{height:8px;margin-bottom:6px}.hoy-k small{color:var(--muted);font-size:12px}
.hoy-k.ok{border-color:var(--ok)}.hoy-k.ok .progress i{background:var(--ok)}
.hoy-k.mid{border-color:#d98200}.hoy-k.mid .progress i{background:#d98200}
.hoy-k.low{border-color:var(--danger)}.hoy-k.low .progress i{background:var(--danger)}
.hoy-k.none{border-style:dashed}
.ibar{display:grid;grid-template-columns:minmax(150px,1.2fr) 1fr auto;gap:10px;align-items:center;margin-bottom:8px;font-size:13.5px}
.ibar i{display:block;height:10px;border-radius:6px;background:var(--danger);opacity:.75}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-h{text-align:center;font-size:11px;font-weight:700;color:var(--muted)}
.cal-d{min-height:54px;border-radius:9px;border:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;font:inherit;color:var(--text);cursor:pointer;padding:3px;font-size:11px}
.cal-d .n{font-size:10.5px;color:var(--muted);align-self:flex-start;margin-left:3px}
.cal-d b{font-size:13.5px}
.cal-d.ok{background:rgba(31,125,83,.16);border-color:var(--ok)}
.cal-d.mid{background:rgba(217,130,0,.16);border-color:#d98200}
.cal-d.low{background:rgba(200,50,50,.14);border-color:var(--danger)}
.cal-d.no{background:repeating-linear-gradient(45deg,rgba(127,127,127,.12) 0 6px,transparent 6px 12px)}
.cal-d.fut{opacity:.35;cursor:default}.cal-d:disabled{cursor:default}
.cal-leg{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11.5px;color:var(--muted)}
.cal-leg span::before{content:'';display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid var(--border)}
.cal-leg .ok::before{background:rgba(31,125,83,.35)}.cal-leg .mid::before{background:rgba(217,130,0,.35)}.cal-leg .low::before{background:rgba(200,50,50,.3)}.cal-leg .no::before{background:repeating-linear-gradient(45deg,rgba(127,127,127,.3) 0 3px,transparent 3px 6px)}
/* Conteo: misma forma que la planilla de Puerto Inca */
.conteo-wrap{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin-bottom:12px}
.conteo{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;max-width:100%;background:#fff;color:#111;border-radius:10px;padding:14px;border:1px solid var(--border);font-family:'Times New Roman',Times,serif}
.conteo table{border-collapse:collapse;min-width:420px;font-size:15px}
.conteo caption{font-weight:700;font-size:16px;padding-bottom:6px;text-align:center}
.conteo th{background:#ED7D31;color:#111;font-weight:700;padding:5px 14px;text-align:center;border:1px solid #f4b183}
.conteo th:first-child{text-align:left}
.conteo td{padding:4px 14px;text-align:center;border-left:1px solid #f4b183;border-right:1px solid #f4b183;cursor:pointer}
.conteo td:first-child{text-align:left;white-space:nowrap}.conteo td small{color:#666;font-size:11px;margin-left:6px;font-family:system-ui,sans-serif}
.conteo tbody tr:nth-child(odd) td{background:#FCE4D6}
.conteo tbody tr:hover td{background:#f8cbad}
.conteo td.vacio{text-align:center;color:#777;cursor:default;padding:18px}
.conteo tfoot td{font-weight:700;border-top:3px double #ED7D31;cursor:default;background:#fff}
.conteo .tt{font-weight:700}
.conteo-prev{min-width:120px;border:1px solid #d9d9d9;text-align:center}
.conteo-prev .cp-h{font-size:12px;font-weight:700;padding:5px;background:#f2f2f2;font-family:system-ui,sans-serif}
.conteo-prev .cp-r{padding:4px 10px;font-size:15px}
.conteo-prev .cp-t{border:2px solid #217346;margin-top:10px;padding:4px 10px;font-weight:700;text-align:right}
.conteo-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;flex:1;min-width:260px}
.conteo-res>div{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;background:var(--surface)}
.conteo-res b{font-size:24px}.conteo-res small{color:var(--muted);font-size:11.5px}
/* Guía ATF */
.atf{border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;margin-top:12px;background:var(--surface)}
.atf-row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:6px 0;border-bottom:1px dashed var(--border)}
.atf-row small{grid-column:1/-1;color:var(--muted);font-size:11.5px}
.atf-row b{font-size:16px}.atf-row.mas b{color:#d98200}
.atf-bar{height:12px;border-radius:7px;background:rgba(127,127,127,.18);margin:10px 0 6px;overflow:hidden}
.atf-bar i{display:block;height:100%;background:var(--accent);border-radius:7px}.atf-bar i.over{background:var(--danger)}
@media (max-width:640px){
  .pf-grid{grid-template-columns:54px repeat(3,1fr);gap:6px}.pf-q{font-size:19px;padding:10px 2px}
  .cal-d{min-height:46px}.cal-d b{font-size:12px}
  .conteo table{min-width:0;font-size:14px}.conteo td,.conteo th{padding:4px 8px}
  .ibar{grid-template-columns:1fr 70px auto}
}
#pf-trab .tile b{font-size:16px;line-height:1.2}#pf-trab .tile b:first-child{font-size:24px}
/* Contabilización: como la planilla del mes (8 pies rosado, 7 pies verde, totales en amarillo) */
.contab-sheet{overflow-x:auto;max-width:100%;background:#fff;color:#111;border-radius:10px;padding:14px;border:1px solid var(--border);font-family:Arial,Helvetica,sans-serif}
.contab-sheet table{border-collapse:collapse;font-size:15px;min-width:560px}
.contab-sheet caption{font-weight:700;font-size:13px;padding-bottom:8px;text-align:left;color:#333}
.contab-sheet th,.contab-sheet td{border:1px solid #bfbfbf;padding:5px 12px;text-align:right;white-space:nowrap}
.contab-sheet th{font-weight:400;text-align:center;font-size:16px}
.contab-sheet th.s{font-size:11.5px;color:#555}
.contab-sheet .med{text-align:right;background:#fff}
.contab-sheet thead .med{text-align:left}
.contab-sheet .p8{background:#EBD3EF}.contab-sheet .p7{background:#DDF0D2}
.contab-sheet tr.tq td{font-size:13px;color:#444}
.contab-sheet tfoot td{border:none;padding:6px 12px}
.contab-sheet td.am{background:#FFFF00;font-weight:700;border:1px solid #d6d600}
.contab-sheet td.am.big{font-size:17px}
.contab-sheet td.am small{display:block;font-size:10px;font-weight:400;color:#555}
.atf-card .atf-bar{margin:6px 0}

/* ════ OPERACIONES EN 3 PASOS (bocetos del jefe): plantación · acopio · despacho ════ */
.contab-sheet .p5{background:#D7E7F7}
.delta{display:inline-block;font-size:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 8px;margin:2px 6px 2px 0}
.delta .x{font-size:15px;line-height:1;margin-left:4px;background:none;border:0;color:var(--muted)}
.card.flujo{border:1.5px solid var(--accent);box-shadow:var(--shadow)}
.card.flujo .card-h span{font-weight:700;font-size:16px}
.fgrid.g3{grid-template-columns:repeat(3,1fr)}
.fgrid.g4{grid-template-columns:repeat(4,1fr)}
.sec{border:1px solid var(--border);border-radius:12px;padding:14px 16px 16px;margin-bottom:14px;background:var(--surface-2)}
.sec-t{font-weight:700;font-size:15px;margin-bottom:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sec-n{display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:8px;background:var(--accent);color:#fff;font-size:12.5px}
.btn-bar{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px dashed var(--border)}
.btn-bar .btn{min-width:150px;padding:12px 18px;font-size:15px}
.btn[disabled],fieldset[disabled] .in{opacity:.6;cursor:not-allowed}
.pl-fs{border:0;min-width:0}
.sino{display:flex;gap:8px}.sino label{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:1.5px solid var(--border);border-radius:10px;padding:9px 10px;cursor:pointer;background:var(--surface);font-weight:600}
.sino label.on{border-color:var(--accent);background:var(--ok-bg);color:var(--accent)}.sino input{accent-color:var(--accent)}
table.tbl tr.sel td{background:var(--ok-bg)}
.ac-top{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start;margin-bottom:14px}
.alerta{border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:var(--surface);font-size:13.5px}
.alerta b{font-size:14px}.alerta.warn{border-color:var(--warn);background:var(--warn-bg)}.alerta .btn{align-self:flex-start}
.ac-cargas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin-bottom:14px}
.mg-head{display:flex;align-items:center;gap:10px}
.seg-btn.on{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.mg-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mg-cal.seg{margin-top:14px;padding-top:12px;border-top:1px dashed var(--warn)}
.mg-cal-t{font-weight:700;color:var(--warn);margin-bottom:8px}
.mg-box{border:1.5px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--surface)}
.mg-box-t{font-weight:700;font-size:14px;margin-bottom:6px;padding:3px 8px;border-radius:6px;display:inline-block;color:#222}
.mg-box.p8 .mg-box-t{background:#EBD3EF}.mg-box.p7 .mg-box-t{background:#DDF0D2}.mg-box.p5 .mg-box-t{background:#D7E7F7}
.mg-row{display:grid;grid-template-columns:78px 1fr;gap:4px 10px;align-items:center;padding:4px 0}
.mg-row span{font-weight:600;font-size:14px;white-space:nowrap}
.mg-row .in{text-align:right;font-size:17px;padding:8px 10px}
.mg-row small{grid-column:2;text-align:right;color:var(--muted);font-size:11.5px;min-height:14px}
.in.bad{border-color:var(--danger);background:var(--danger-bg)}
.mg-res{display:grid;grid-template-columns:repeat(3,1fr) 1.4fr;gap:10px}
.mg-res>div{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;background:var(--surface)}
.mg-res>div.p8{border-left:5px solid #c79ad0}.mg-res>div.p7{border-left:5px solid #9fd085}.mg-res>div.p5{border-left:5px solid #8db8e3}
.mg-res small{color:var(--muted);font-size:12px}.mg-res b{font-size:20px}
.mg-res .tot{background:#FFF3B0;color:#222;border-color:#e8d36a}.mg-res .tot small{color:#5a4e10}.mg-res .tot b{font-size:24px}
.lotes{margin-top:10px}
details.mas{margin-top:16px;border:1px solid var(--border);border-radius:10px;padding:10px 14px;background:var(--surface)}
details.mas summary{cursor:pointer;font-weight:600}
.mg-t .mg-in{width:110px;text-align:right}
.mg-t tr.seg td{background:var(--warn-bg)}
.mg-t tfoot th{font-size:15px}
@media (max-width:900px){.fgrid.g3,.fgrid.g4{grid-template-columns:1fr 1fr}.ac-top{grid-template-columns:1fr}.mg-res{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.fgrid.g3,.fgrid.g4{grid-template-columns:1fr}.mg-boxes{grid-template-columns:1fr}.btn-bar .btn{flex:1;min-width:0}}
/* Menú condensado: pestañas dentro de cada sección de Operaciones */
.sec-tabs{display:flex;gap:6px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:6px;margin-bottom:20px;box-shadow:var(--shadow)}
.sec-tabs button{flex:1 1 auto;border:0;background:none;color:var(--muted);font-weight:600;font-size:14.5px;padding:10px 16px;border-radius:10px;white-space:nowrap}
.sec-tabs button:hover{background:var(--surface-2);color:var(--text)}
.sec-tabs button.on{background:var(--btn);color:#fff}
@media (max-width:640px){.sec-tabs{flex-wrap:nowrap;overflow-x:auto}.sec-tabs button{flex:0 0 auto;padding:9px 12px;font-size:13.5px}}
/* ── Plantación: unidades catastrales ── */
.uc-row{display:grid;grid-template-columns:26px 1fr 120px auto;gap:8px;align-items:center;margin-bottom:8px}
.uc-n{width:24px;height:24px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--muted)}
.uc-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px}
@media (max-width:640px){.uc-row{grid-template-columns:22px 1fr 90px auto}}
/* ── Campo: mapa y GPS ── */
.mapa-wrap{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:16px;align-items:start}
.mapa-card{position:relative;margin:0;overflow:hidden}
.mapa-bar{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--border)}
.mapa-capas{display:flex;gap:6px;flex-wrap:wrap}
.mapa-capas label{font-size:12.5px;padding:5px 9px;border-radius:999px;border:1px solid var(--border);cursor:pointer;color:var(--muted);user-select:none}
.mapa-capas label.on{background:var(--surface-2);color:var(--text);border-color:var(--accent)}
.mapa-capas input{display:none}
.mapa-zoom{display:flex;gap:4px}
.mapa-box{background:#e6efe2;touch-action:none;cursor:grab;height:min(72vh,720px)}
.mapa-box:active{cursor:grabbing}
.mapa-box svg{width:100%;height:100%;display:block}
.mp-grid{stroke:#5a7a5a;stroke-opacity:.14;stroke-width:calc(1px*var(--e))}
.mp-gl{font-size:calc(10px*var(--e));fill:#4b5e4b;opacity:.8}
.mp-rio{fill:none;stroke:#5aa6d6;stroke-width:calc(7px*var(--e));stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.mp-rio.q{stroke-width:calc(3.5px*var(--e))}
.mp-rio-t{font-size:calc(13px*var(--e));paint-order:stroke;stroke:#e6efe2;stroke-width:calc(3px*var(--e));font-style:italic;fill:#2d6f99;font-weight:600}
.mp-carretera{stroke:#a3825a;stroke-width:calc(2.5px*var(--e));fill:none}
.mp-sitio path{fill-opacity:.18;stroke:#2f6b3a;stroke-width:calc(1.5px*var(--e));cursor:pointer}
.mp-sitio{color:#2f6b3a}
.mp-st{font-size:calc(12px*var(--e));font-weight:700;text-anchor:middle;fill:#1e3b24;paint-order:stroke;stroke:#e6efe2;stroke-width:calc(3px*var(--e))}
.mp-st.s{font-weight:500;font-size:calc(9.5px*var(--e))}
.mp-rec{fill:none;stroke-width:calc(2.5px*var(--e));stroke-opacity:.7;stroke-linejoin:round;stroke-dasharray:1 0}
.mp-punto circle{fill:#fff;stroke:#334155;stroke-width:1.5}
.mp-punto text,.mp-bote text,.mp-k text{text-anchor:middle;font-size:15px}
.mp-pt{font-size:11px!important;font-weight:700;fill:#1f2937;paint-order:stroke;stroke:#fff;stroke-width:3}
.mp-punto,.mp-bote,.mp-k{cursor:pointer}
.mp-bote rect{fill:#fff7e6;stroke:#d98200;stroke-width:2}
.mp-k text{fill:#fff;font-size:10px;font-weight:800}
.mp-k text.mp-pt{fill:#1f2937}
.mp-k .halo{opacity:.25;animation:mpPulso 2s ease-out infinite;transform-box:fill-box;transform-origin:center}
.mp-k.rojo .halo{animation:none;opacity:.12}
.mp-k.rojo circle:not(.halo){fill:#94a3b8!important}
.mp-k.sel circle:not(.halo){stroke:#111;stroke-width:3}
@keyframes mpPulso{0%{transform:scale(.6);opacity:.4}100%{transform:scale(1.5);opacity:0}}
.mp-yo circle{fill:#dc2626;stroke:#fff;stroke-width:3}
.mapa-info{position:absolute;left:12px;right:12px;bottom:58px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 36px 10px 14px;box-shadow:var(--shadow)}
.mapa-info .x{position:absolute;right:8px;top:6px;border:0;background:none;font-size:20px;color:var(--muted)}
.mapa-hora{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--border);font-size:13px}
.mapa-hora input{flex:1}
.mapa-side{margin:0}
.mp-li{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-top:8px;cursor:pointer}
.mp-li:hover,.mp-li.on{border-color:var(--accent);background:var(--surface-2)}
.mp-li-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mp-li-h i{width:12px;height:12px;border-radius:50%;flex:none}
.mp-li-n{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;margin:4px 0}
.mp-est{margin-left:auto;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px}
.mp-est.verde{background:#dcfce7;color:#166534}.mp-est.azul{background:#dbeafe;color:#1e40af}.mp-est.ambar{background:#fef3c7;color:#92400e}.mp-est.rojo{background:#fee2e2;color:#991b1b}.mp-est.gris{background:var(--surface-2);color:var(--muted)}
.mp-sub{font-weight:700;font-size:13px;margin:14px 0 0}
.real-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.real-grid p{margin:6px 0 0}
@media (max-width:1000px){.mapa-wrap{grid-template-columns:1fr}.real-grid{grid-template-columns:1fr 1fr}.mapa-box{height:62vh}}
@media (max-width:640px){.real-grid{grid-template-columns:1fr}}
/* ── Saldo en campo ── */
.camion-bar{display:flex;height:22px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.camion-bar i{display:block;height:100%}
.camion-ley{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin-top:10px}
.camion-ley i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
/* ── Equipos ── */
.tbl tr.grp td{background:var(--surface-2)}
.cb-k{display:grid;grid-template-columns:1fr auto 90px;gap:8px;font-size:13.5px;padding:4px 0;border-bottom:1px dashed var(--border)}
.cb-k small{color:var(--muted);text-align:right}
/* ── Sitios y U.C. ── */
.sitios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-top:16px}
.sitio-c{margin:0}
.tbl.mini th,.tbl.mini td{padding:6px 8px;font-size:13px}
.tbl tr.tot td{font-weight:700;border-top:2px solid var(--border)}
.sitio-n{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.sitio-n>div{background:var(--surface-2);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}
.sitio-n b{font-size:18px}
.sitio-n small{color:var(--muted);font-size:12px}
/* ── Dashboard: operaciones en un vistazo ── */
.vistazo{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vistazo>div{border:1px solid var(--border);border-radius:14px;padding:14px;cursor:pointer;background:var(--surface)}
.vistazo>div:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.vistazo .n{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.vistazo .v{font-size:24px;font-weight:800;margin:4px 0 2px}
.vistazo .s{font-size:12.5px;color:var(--muted)}
@media (max-width:900px){.vistazo{grid-template-columns:1fr 1fr}}
.flujo .card-h{flex-wrap:wrap;gap:6px}
.eq-two{grid-template-columns:1.2fr 1fr}
.sitios-grid{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr))}
.cb-k{grid-template-columns:minmax(0,1fr) auto auto}
@media (max-width:1100px){.eq-two{grid-template-columns:1fr}}
.mapa-wrap>*{min-width:0}
.flujo .card-h .badge{white-space:normal}
/* ── Mapa 3D y funciones ── */
.mapa-box.m3{background:linear-gradient(#cfe3ef,#e8f0e4);cursor:grab;position:relative}
.mapa-box.m3 canvas{display:block;width:100%!important;height:100%!important;touch-action:none}
.m3-carga{height:100%;display:grid;place-items:center;color:var(--muted);font-weight:600}
.m3-carga .spin{display:inline-block;width:18px;height:18px;border:3px solid #cbd5e1;border-top-color:var(--accent);border-radius:50%;animation:m3g 0.8s linear infinite;vertical-align:-4px;margin-right:8px}
@keyframes m3g{to{transform:rotate(360deg)}}
.mapa-zoom{flex-wrap:wrap;align-items:center}
.mp-modo{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-right:4px}
.mp-modo button{border:0;background:var(--surface);padding:6px 11px;font-weight:700;font-size:13px;color:var(--muted)}
.mp-modo button.on{background:var(--btn);color:#fff}
.btn.on{border-color:#dc2626;color:#dc2626;background:#fef2f2}
.mp-girar{font-size:12.5px;display:inline-flex;align-items:center;gap:4px;padding:0 6px;cursor:pointer}
.mp-medir{padding:8px 14px;background:#fef2f2;border-bottom:1px solid #fecaca;font-size:13px;color:#7f1d1d}
.mapa-hora .btn{white-space:nowrap}
.mp-al{display:grid;grid-template-columns:44px 1fr;gap:8px;font-size:13px;padding:6px 8px;border-radius:8px;cursor:pointer}
.mp-al:hover{background:var(--surface-2)}
.mp-al.w{color:#9a3412}
.mp-al .mono{color:var(--muted)}
#mapa-alertas{max-height:260px;overflow:auto}
@media (max-width:640px){.mapa-hora>span{display:none}.mapa-hora{gap:8px;flex-wrap:wrap}.mapa-hora input[type=range]{flex:1 1 100%;min-width:0}}
/* Mapa con datos reales (v6) */
.mp-pueblo rect{fill:#334155;stroke:#fff;stroke-width:2}
.mp-pueblo text{font:700 calc(12px*var(--e)) system-ui,sans-serif;fill:#1e293b;paint-order:stroke;stroke:#fff;stroke-width:3px}
.mp-pasos ol{margin:0;padding-left:20px;display:grid;gap:6px}
.mp-dia{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.mp-dia input{font:inherit;padding:3px 6px;border:1px solid var(--line,#d0d7de);border-radius:6px;background:var(--surface,#fff);color:inherit}
.mp-dias{font-size:12px;color:var(--muted);padding:0 14px 8px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.mp-lug{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 14px;border-bottom:1px dashed var(--line,#e5e7eb);cursor:pointer}
.mp-lug:hover{background:var(--surface-2)}
#gps-vivo.on{background:#dc2626;color:#fff;border-color:#dc2626}
/* Sin textos descriptivos (pedido de Kely, 12/10/2026) */
.ayuda,#content .ph .d{display:none!important}
#content .boxed>p.small.muted{display:none}
/* Mapa más amplio: el mapa ocupa todo el ancho y el panel va debajo */
.mapa-wrap{grid-template-columns:1fr!important}
.mapa-box{height:min(80vh,900px)!important}
.mapa-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}
.mapa-side>.card-h{grid-column:1/-1}
.mapa-side>.card-b{border-top:0!important;border-left:1px solid var(--border)}
.mapa-card:fullscreen{background:var(--surface);overflow:auto}
.mapa-card:fullscreen .mapa-box{height:calc(100vh - 120px)!important}
/* Puntos claros (pin de color con su ícono y nombre) */
.mp-pin{cursor:pointer}
.mp-pin path{stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.mp-pin .sombra{fill:rgba(0,0,0,.28)}
.mp-pin .ic{text-anchor:middle;font-size:13px}
.mp-pin .mp-pt{text-anchor:middle;font-size:12.5px!important}
.mp-pin.sel path{stroke:#facc15;stroke-width:3}
.mp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
/* Envíos al acopio */
.mp-flujo{cursor:pointer}
.mp-flujo path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.mp-flujo .base{stroke:rgba(255,255,255,.85)}
.mp-flujo .mov{animation:mp-fluir 1.1s linear infinite}
@keyframes mp-fluir{to{stroke-dashoffset:calc(-17px*var(--e))}}
.mp-fl-t{text-anchor:middle;font-weight:700;fill:#1f2937;paint-order:stroke;stroke:#fff;stroke-width:calc(3px*var(--e))}
/* Capas de ArcGIS */
.mp-gis{fill:none;stroke-linejoin:round}
.mp-gis.pg{fill-opacity:.16}
@media (prefers-reduced-motion:reduce){.mp-flujo .mov{animation:none}}
/* ── Base de sitios (catastro) ── */
:root{--ct-fondo:#eef3ea}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ct-fondo:#1c2620}}
:root[data-theme="dark"]{--ct-fondo:#1c2620}
.ct-capa path{fill-opacity:.38;stroke-opacity:.95;cursor:pointer;transition:fill-opacity .15s}
.ct-sit:hover path,.ct-sit.sel path{fill-opacity:.62}
.ct-n{text-anchor:middle;font-weight:800;fill:#14261a;paint-order:stroke;stroke:#fff;stroke-width:calc(2.5px*var(--e));pointer-events:none}
.ct-barra{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--surface-2)}
.ct-barra i{display:block;height:100%}
.ct-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ct-cats .chip{display:inline-flex;align-items:center;gap:6px}
.ct-cats .chip.on{border-color:var(--accent);background:var(--ok-bg)}
.ct-two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media (max-width:900px){.ct-two{grid-template-columns:1fr}}
.ct-mini{width:100%;height:auto;max-height:640px;display:block;border-radius:10px}
.ct-mini .ct-p{fill-opacity:.55;stroke:#1f2937;stroke-width:.5;cursor:pointer}
.ct-mini .ct-p:hover{fill-opacity:.85}
.ct-mini .ct-p.off{fill-opacity:.1;stroke-opacity:.3}
.ct-mini .ct-p.sel{fill-opacity:.95;stroke:#111827;stroke-width:2}
.ct-mini .ct-rio{fill:none;stroke:#4a9fd8;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.ct-mini .ct-rio.q{stroke-width:2.5}
.ct-mini .ct-ring{fill:none;stroke:#dc2626;stroke-width:2.5}
.ct-mini .ct-lbl{font-size:12px;font-weight:700;fill:var(--text);paint-order:stroke;stroke:var(--ct-fondo);stroke-width:3px}
.ct-mini .ct-lbl.rio{fill:#2b7bb9;font-style:italic}
.ct-cat{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ct-cat.big{font-weight:700;font-size:15px;margin-bottom:10px}
.ct-fs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ct-f{background:var(--surface-2);border-radius:10px;padding:8px 10px}
.ct-f small{display:block;color:var(--muted);font-size:11.5px}
.ct-f b{font-size:15px}
.ct-tools{display:flex;gap:8px;flex-wrap:wrap}
#ct-tabla tr.sel td{background:var(--ok-bg)}
.warn-t{color:var(--warn)}
.mp-sitio.ct-sit path{fill-opacity:.38;stroke-width:calc(1.2px*var(--e))}
.mp-sitio.ct-sit:hover path,.mp-sitio.sel path{fill-opacity:.62;stroke-width:calc(3px*var(--e))}
/* ── Gemelo digital ── */
.gd-subs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 16px;border-bottom:1px solid var(--border);padding-bottom:10px}
.gd-subs button{border:0;background:none;padding:8px 14px;border-radius:10px;font-weight:600;font-size:14px;color:var(--muted)}
.gd-subs button small{background:var(--surface-2);border-radius:10px;padding:0 7px;margin-left:4px;font-size:11px}
.gd-subs button.on{background:var(--btn);color:#fff}.gd-subs button.on small{background:rgba(255,255,255,.25);color:#fff}
.gd-pilares{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.gd-pilar{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--surface);border:1.5px dashed var(--border);border-radius:14px;padding:14px 16px;color:var(--text)}
.gd-pilar.ok{border-style:solid;border-color:var(--accent);background:linear-gradient(160deg,var(--ok-bg),var(--surface) 70%)}
.gd-pilar .ic{font-size:22px}.gd-pilar b{font-size:26px;line-height:1.1}.gd-pilar span{font-weight:700;font-size:13px}.gd-pilar small{color:var(--muted);font-size:12px}
.gd-pilar:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.gd-ruta{display:flex;flex-direction:column;gap:12px}
.gd-ruta div{border-left:3px solid var(--border);padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:2px}
.gd-ruta div.on{border-color:var(--accent)}.gd-ruta b{font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.gd-ruta .on b{color:var(--accent)}.gd-ruta span{font-size:14px}
.gd-niv{display:inline-block;color:#fff;border-radius:10px;padding:1px 9px;font-size:11.5px;font-weight:700;white-space:nowrap}
.gd-mes h3{font-size:15px;margin:18px 0 8px;text-transform:capitalize}
.gd-vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.gd-v{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;overflow:hidden;padding:0;color:var(--text)}
.gd-v.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--ok-bg)}
.gd-v img,.gd-noimg{width:100%;height:140px;object-fit:cover;display:block;background:#dfe8dc}
.gd-noimg{display:flex;align-items:center;justify-content:center;font-size:34px;color:var(--muted)}.gd-noimg.big{height:240px;border-radius:12px}
.gd-v>div{padding:10px 12px;display:flex;flex-direction:column;gap:2px}.gd-v small{color:var(--muted)}.gd-v span{font-size:12.5px}.gd-hz{color:var(--warn)}
.gd-det{margin-bottom:16px}
.gd-det-b{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}
@media (max-width:900px){.gd-det-b{grid-template-columns:1fr}}
.gd-big{width:100%;max-height:460px;object-fit:contain;border-radius:12px;background:#dfe8dc}
.gd-hrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}
.gd-cmp-ctl{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.gd-cmp-ctl label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:3px}
.gd-cmp{position:relative;margin:0 auto;overflow:hidden;border-radius:12px;background:#dfe8dc}
.gd-cmp-l{position:absolute;inset:0;overflow:hidden}.gd-cmp-l img{position:absolute;max-width:none}
.gd-cmp-pol{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gd-cmp-pol path{fill:none;stroke:#fde047;stroke-width:3;vector-effect:non-scaling-stroke;stroke-dasharray:8 5}
.gd-cmp-bar{position:absolute;top:0;bottom:0;width:3px;background:#fff;box-shadow:0 0 6px rgba(0,0,0,.5);transform:translateX(-1.5px);pointer-events:none}
.gd-cmp input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.gd-cmp-t{position:absolute;top:10px;background:rgba(17,24,39,.75);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:8px;pointer-events:none}.gd-cmp-t.a{left:10px}.gd-cmp-t.b{right:10px}
.gd-chart{width:100%;height:auto;display:block}.gd-chart text{font-size:11px;fill:var(--muted)}.gd-chart .g{stroke:var(--border);stroke-width:1}
.gd-chart .l{fill:none;stroke-width:2.5;stroke-linejoin:round}.gd-chart .l.d{stroke-dasharray:5 4}.gd-chart .u{font-weight:700}
.gd-spark{width:90px;height:24px}.gd-spark path{fill:none;stroke:#2f9e44;stroke-width:2}
.gd-ley{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;margin-top:6px}.gd-ley i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}
.gd-mat td,.gd-mat th{text-align:center}.gd-mat td:first-child,.gd-mat th:first-child{text-align:left}
.gd-cel{display:inline-block;min-width:28px;border-radius:7px;padding:2px 6px;font-weight:700}
.gd-guia{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.gd-guia div{display:flex;flex-direction:column;gap:2px;font-size:13.5px}.gd-guia span{color:var(--muted)}
.gd-esq{border:1px dashed var(--border);border-radius:10px;padding:8px 10px}
.gd-orto{cursor:pointer}.gd-orto image{opacity:.95}.gd-orto-b{fill:none;stroke:#fde047;stroke-width:calc(1.5px*var(--e));stroke-dasharray:calc(5px*var(--e)) calc(3px*var(--e))}
.gd-orto-t{fill:#fff;font-weight:800;paint-order:stroke;stroke:#111827;stroke-width:calc(2.5px*var(--e))}
.gd-den{cursor:pointer}.gd-den circle{fill:#fff;stroke:#2f9e44;stroke-width:2}.gd-den text{text-anchor:middle;font-size:8px}.gd-den.sel circle{stroke-width:3.5}
.gd-rsg{cursor:pointer}.gd-rsg .halo{opacity:.25;animation:gd-pulso 1.8s ease-in-out infinite}.gd-rsg text{text-anchor:middle;font-size:10px}.gd-rsg path{stroke:#fff;stroke-width:1.5}
@keyframes gd-pulso{50%{opacity:.05}}
#content .boxed>p.small.muted{display:none}
/* Liquidaciones */
.liq-two{align-items:start}
.tbl tr.sel td{background:var(--soft, rgba(0,0,0,.04))}
.tbl .neg{color:var(--danger,#c0392b)}
.liq-neto td{font-size:15px}

/* ── Mapa real: fondo satelital, ríos y caminos de OpenStreetMap (14/10/2026) ── */
.mapa-box:not(.m3){position:relative;background:#22331f;overflow:hidden}
#mp-base,#mp-top-w{position:absolute;inset:0}
#mp-base{pointer-events:none}
#mp-top-w svg{width:100%;height:100%;display:block}
#mp-base path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
#mp-base image{image-rendering:auto}
#mp-base .gr-tierra{fill:#e7eedf}
#mp-base path.gr-agua{fill:#a9d2ec;stroke:#7fb7dd;stroke-width:.6}
.gr-v .gr-p{stroke:#6fb4e4;stroke-width:2.2}
.gr-v.map .gr-p{stroke:#5aa6d6;stroke-width:4}
.gr-v .gr-r{stroke:#6fb4e4;stroke-width:1.6;opacity:.85}
.gr-v.map .gr-r{stroke:#5aa6d6;stroke-width:2.6;opacity:1}
.gr-v .gr-q{stroke:#7cc0ec;stroke-width:.9;opacity:.6}
.gr-v.map .gr-q{stroke:#7ab8e0;stroke-width:1.2;opacity:.9}
.gr-v.sat .gr-p{opacity:.45}
.gr-v .gr-c1{stroke:#ffcf4a;stroke-width:2.4}
.gr-v .gr-c1.k{stroke:#5b3b00;stroke-width:4.2;opacity:.55}
.gr-v .gr-c3{stroke:#fff3c4;stroke-width:1.6}
.gr-v .gr-c3.k{stroke:#5b3b00;stroke-width:3;opacity:.45}
.gr-v .gr-c4{stroke:#f5e6c8;stroke-width:1.2;opacity:.9}
.gr-v .gr-c5{stroke:#e9d7ae;stroke-width:1;stroke-dasharray:4 3;opacity:.85}
.gr-v .gr-c6{stroke:#ffffff;stroke-width:.8;opacity:.7}
.gr-v .gr-c7{stroke:#f0e2c0;stroke-width:.8;stroke-dasharray:2 3;opacity:.7}
.gr-v.map .gr-c1{stroke:#f2a91e}.gr-v.map .gr-c3,.gr-v.map .gr-c6{stroke:#fff}.gr-v.map .gr-c4{stroke:#d9c49a}.gr-v.map .gr-c5,.gr-v.map .gr-c7{stroke:#b59a6a}
.gr-v.map .gr-c6{stroke:#9aa5b1;opacity:.6}
.mp-base.sat + #mp-top-w .mp-rio-t{fill:#d7efff;stroke:#0f2a3d}
.mp-base.sat + #mp-top-w .mp-pueblo text{fill:#fff;stroke:#111827}
.mp-base.sat + #mp-top-w .mp-st{fill:#fff;stroke:#0b1a10}
.mp-pueblo.s rect{fill:#475569}
.gr-ic{text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#fff;stroke-width:3px}
.mp-fuente{font-size:11px;color:var(--muted);padding:0 14px 10px;line-height:1.4}
.mp-pueblo text{font-size:12px}
.mp-pueblo.s text{font-size:11px;font-weight:600}
.gr-ic{stroke-width:calc(3px*var(--e))}

/* ── Unimog en camino, buscador de sitios (14/10/2026) ── */
.mp-uni{cursor:pointer}
.mp-uni-r{fill:none;stroke-linecap:round;stroke-linejoin:round}
.mp-uni-r.hecho{stroke:#f59e0b}
.mp-uni-r.falta{stroke:#fde68a;opacity:.95}
.mp-uni .halo{fill:#f59e0b;opacity:.3}
.mp-uni .cuerpo{fill:#fff;stroke:#d97706;stroke-width:2}
.mp-uni .ic{text-anchor:middle;font-size:16px}
.mp-uni .mp-pt.l{text-anchor:start;font-weight:700}
.mp-uni .mp-pt.l.s{font-weight:500;font-size:10px}
.mp-uni.sel .cuerpo{stroke-width:3}
.uni-barra{height:6px;border-radius:4px;background:var(--border);margin:6px 0;overflow:hidden}
.uni-barra i{display:block;height:100%;background:#f59e0b;border-radius:4px}
.mp-buscar{display:flex;flex:0 0 auto}
.mp-buscar input{width:190px;max-width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}
.mp-buscar input:focus{outline:2px solid #f59e0b;outline-offset:1px}
.sf-ruta{fill:none;stroke:#f59e0b;stroke-linecap:round}
.sf-corte{fill:none;stroke:#ff8a00;stroke-linejoin:round;filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}
.sf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0}
.sf-grid>div{background:var(--surface-2,rgba(0,0,0,.04));border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.sf-grid small{font-size:11px;color:var(--muted)}
.sf-grid b{font-size:15px;overflow-wrap:anywhere}
@media (max-width:700px){.sf-grid{grid-template-columns:1fr 1fr}.mp-buscar input{width:150px}}
.ct-chip{display:inline-block;font-size:11px;padding:1px 8px;border-radius:99px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--text);border:1px solid var(--c)}
/* ── Documentos para imprimir (14/10/2026) ── */
.dm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.dm-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);position:relative;min-width:0}
.dm-card:hover{border-color:#d97706;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.dm-card b{font-size:14px}.dm-card small{font-size:12px;color:var(--muted)}
.dm-mini{display:flex;flex-direction:column;gap:4px;width:64px;height:84px;padding:9px 8px;margin-bottom:6px;background:#fff;border:1px solid #d6d3d1;border-radius:4px;box-shadow:2px 3px 0 rgba(0,0,0,.06)}
.dm-mini i{display:block;height:4px;border-radius:2px;background:#d6d3d1}.dm-mini i.c{height:12px;background:#fde3b8}
.dm-ic{position:absolute;left:52px;top:58px;font-size:22px}
.dm-ov{position:fixed;inset:0;z-index:300;background:rgba(17,24,39,.72);display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
.dm-barra{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));background:var(--surface);border-bottom:1px solid var(--border)}
.dm-barra .sp{flex:1}.dm-barra select{max-width:min(320px,100%)}
.dm-scroll{flex:1;overflow:auto;padding:20px 16px}
.dm-nota{background:var(--surface);color:var(--muted);font-size:12px;padding:8px 16px;text-align:center}
.dm-hoja{width:794px;max-width:100%;min-height:1123px;margin:0 auto;background:#fff;color:#111827;padding:44px 48px;box-shadow:0 10px 40px rgba(0,0,0,.35);font:13px/1.45 var(--font);box-sizing:border-box}
.dm-cab{display:flex;justify-content:space-between;gap:16px;border-bottom:3px solid #14532d;padding-bottom:14px;margin-bottom:16px}
.dm-logo{display:flex;flex-direction:column}.dm-logo b{font:700 26px/1 Georgia,serif;letter-spacing:.06em;color:#14532d}.dm-logo small{font-size:11px;color:#4b5563;margin-top:3px}
.dm-nro{border:2px solid #14532d;border-radius:8px;padding:8px 14px;text-align:center;display:flex;flex-direction:column;min-width:220px}
.dm-nro small{font-size:10px;color:#4b5563;text-transform:uppercase;letter-spacing:.05em}.dm-nro b{font-size:15px;color:#14532d}.dm-nro span{font:700 14px ui-monospace,monospace}
.dm-campos{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;margin-bottom:14px}
.dm-campos>div{padding:6px 10px;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;min-width:0}
.dm-campos>div.w{grid-column:1/-1}
.dm-campos small{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}
.dm-vacio{color:#9ca3af;border-bottom:1px dotted #9ca3af;font-style:italic}
.dm-tbl{width:100%;border-collapse:collapse;margin:8px 0 14px;font-size:12.5px}
.dm-tbl th{background:#14532d;color:#fff;text-align:left;padding:6px 8px;font-weight:600}
.dm-tbl td{border-bottom:1px solid #e5e7eb;padding:5px 8px}
.dm-tbl .n{text-align:right;font-variant-numeric:tabular-nums}.dm-tbl tr.t td{font-weight:700;border-top:2px solid #14532d;background:#f0fdf4}
.dm-dos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dm-total{display:flex;gap:10px;justify-content:flex-end;margin:6px 0 12px}
.dm-total>div{border:2px solid #14532d;border-radius:8px;padding:6px 14px;display:flex;flex-direction:column;align-items:flex-end}
.dm-total small{font-size:10px;text-transform:uppercase;color:#4b5563}.dm-total b{font-size:18px;color:#14532d}
.dm-obs{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 10px;margin:8px 0;display:flex;flex-direction:column}
.dm-obs small{font-size:10px;text-transform:uppercase;color:#92400e}
.dm-firmas{display:flex;gap:24px;margin:48px 0 18px}
.dm-firmas>div{flex:1;display:flex;flex-direction:column;align-items:center}
.dm-firmas i{display:block;width:100%;border-top:1px solid #111827;margin-bottom:4px}.dm-firmas small{font-size:11px;color:#374151}
.dm-pie{border-top:1px solid #e5e7eb;padding-top:8px;font-size:10.5px;color:#6b7280;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dm-mapa{margin:6px 0 12px}.dm-mapa canvas{width:100%;height:auto;border-radius:8px;display:block;border:1px solid #d1d5db}.dm-mapa small{font-size:10px;color:#6b7280}
@media (max-width:700px){.dm-hoja{padding:22px 16px}.dm-campos,.dm-dos{grid-template-columns:1fr}.dm-cab{flex-direction:column}}

/* ── Costos y movimientos del acopio (19/10/2026) ── */
.ac-opts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.mov-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0 4px}
.mov-res>div{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.mov-res small{color:var(--muted);font-size:11.5px}.mov-res b{font-size:19px}
.movc{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-top:10px;background:var(--surface)}
.movc-h{display:flex;gap:12px;align-items:center;cursor:pointer}
.movc-n{text-align:right;display:flex;flex-direction:column}.movc-n b{font-size:20px}.movc-n small{color:var(--muted);font-size:11px}
.movc .tbl-wrap{margin-top:8px}
.mov-g th,.mov-g td{padding:5px 8px}
.movc-f{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:8px;font-size:13px}.movc-f .sp{flex:1}
.lg{display:inline-block;border-radius:6px;padding:1px 8px;font-weight:700;font-size:12px}
.lg.p8{background:#fbd5e0;color:#7a1d3a}.lg.p7{background:#d5f0d9;color:#1d5a2a}.lg.p5{background:#dbe7fb;color:#1d3a7a}
.conteo th.pt{background:#FFE699}.conteo td.pt{font-size:13px;color:#333;background:#fffbe9!important;white-space:nowrap}
.contab-sheet tr.tc td{background:#fff7d6;font-size:12.5px}
.neg{color:var(--danger)}
/* Liquidaciones */
.lq-est{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}
.lq-acc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.lq-row{display:flex;gap:8px;margin-bottom:6px;align-items:center}.lq-row .in{min-width:0}
.lq-sum{background:var(--surface-2);border-radius:10px;padding:10px 14px!important;border-top:2px solid var(--border);padding:10px 0;margin-top:12px}
.lq-sum .ln{display:flex;justify-content:space-between;gap:10px;font-size:13.5px}.lq-sum .ln.t{font-size:17px;font-weight:700;border-top:1px solid var(--border);padding-top:6px;margin-top:4px}
.lq-steps{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}.lq-steps span{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.lq-steps span.on{background:var(--ok-bg);color:var(--ok);border-color:transparent;font-weight:700}
@media (max-width:640px){.movc-h{flex-wrap:wrap}.lq-row{flex-wrap:wrap}}
/* Selector de periodo: día, semana, mes, año, rango, todo */
.per-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 16px}
.per-nav .per-t{margin:0}
.per-nav .mes-nav{margin:0}
.per-nav .per-in{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.per-nav .per-in .in{width:auto;min-width:0;padding:6px 8px}
.per-rg{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.res-k{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.res-des th,.res-des td{white-space:nowrap}
.cg td .small{font-weight:400}
@media (max-width:640px){.per-nav{align-items:stretch}.per-nav .per-t{overflow-x:auto;flex-wrap:nowrap}}
.tbl td:first-child .lg{white-space:nowrap}.tbl td:has(> .lg){white-space:nowrap}

/* ════ PULIDO DE INTERFAZ · foco, toque, movimiento y cifras ════ */
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
input.in:focus-visible,select.in:focus-visible,textarea.in:focus-visible{outline:none}
.kpi .v,.okpi .v,.flow-step .v,.ct-v,.vistazo .v,.attn-box .v,.tile b,.mov-res b,.total-big b,.pf-total b,.mg-res b,.conteo-res b,.cd b,.sitio-n b,.pf-q,.num,table.tbl td,.conteo td,.contab-sheet td{font-variant-numeric:tabular-nums}
.toast{box-shadow:var(--shadow-lg)}
@media (pointer:coarse){
  .btn{min-height:44px}.btn.link{min-height:0}
  .side-item{min-height:44px}
  .icon-btn{width:44px;height:44px}
  input.in,select.in{min-height:44px}
  .tab,.sec-tabs button,.seg button{min-height:40px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .spin,.empty.load::before,.m3-carga .spin{animation-duration:1.4s!important;animation-iteration-count:infinite!important}
  .kpi.click:hover,.action:hover,.rcard:hover,.reu-row:hover,.md:hover,.gd-pilar:hover{transform:none}
}
