/* GeoCampo · módulos empresariales (menú lateral, tablas, formularios, inventario, RRHH, archivo, catastro pericial) */

/* ---------- menú lateral empresarial (escritorio) ---------- */
.s-side{display:none}
@media(min-width:1100px){
  body.con-side{padding-left:250px}
  body.con-side .s-top{display:none!important}
  .s-side{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:250px;z-index:1100;background:linear-gradient(180deg,#0a1530 0%,#0f2147 60%,#0b1838 100%);color:#c9d5ee;box-shadow:2px 0 18px rgba(5,12,30,.35)}
  body.con-side main{max-width:1440px}
  body.con-side.s-full main{max-width:none}
}
.sd-brand{display:flex;gap:10px;align-items:center;padding:16px 14px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.sd-brand b{display:block;color:#fff;font-size:14px;line-height:1.2}.sd-brand small{display:block;font-size:11.5px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px}
.sd-sis{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.sd-sis button{width:32px;height:32px;border-radius:9px;border:2px solid transparent;background:color-mix(in srgb,var(--c) 70%,#000);display:grid;place-items:center;font-size:16px;cursor:pointer;overflow:hidden;padding:0}
.sd-sis button.act{border-color:#facc15;box-shadow:0 0 0 2px rgba(250,204,21,.25)}.sd-sis img{width:100%;height:100%;object-fit:contain;background:#fff}
.sd-nav{flex:1;overflow-y:auto;padding:6px 10px 14px;scrollbar-width:thin}
.sd-g{font:700 10.5px system-ui;letter-spacing:1.4px;text-transform:uppercase;color:#7f93bd;margin:14px 8px 6px}
.sd-nav button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:#c9d5ee;padding:9px 10px;border-radius:10px;font:600 13.5px system-ui;cursor:pointer;text-align:left}
.sd-nav button:hover{background:rgba(255,255,255,.07);color:#fff}
.sd-nav button.act{background:linear-gradient(90deg,rgba(59,130,246,.32),rgba(59,130,246,.08));color:#fff;box-shadow:inset 3px 0 0 #60a5fa}
.sd-foot{padding:10px 16px;font-size:11px;color:#7f93bd;border-top:1px solid rgba(255,255,255,.08)}

/* ---------- cabecera de módulo y pestañas ---------- */
.m-head{display:flex;gap:14px;align-items:center;margin:2px 0 12px;flex-wrap:wrap}
.m-ic{width:50px;height:50px;border-radius:14px;background:linear-gradient(135deg,var(--pri),#1e3a6b);display:grid;place-items:center;font-size:26px;box-shadow:0 6px 16px rgba(15,30,60,.2);flex:none}
.m-head h1{margin:0;font-size:21px;color:var(--navy,#0b1730)}.m-head p{margin:2px 0 0;color:var(--muted);font-size:13.5px}
.m-acc{display:flex;gap:6px;flex-wrap:wrap}.m-acc .btn{width:auto;flex:none}
.m-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:14px;scrollbar-width:none}.m-tabs::-webkit-scrollbar{display:none}
.m-tabs button{border:0;background:none;padding:10px 12px;font:600 13.5px system-ui;color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;flex:none}
.m-tabs button.act{color:var(--pri);border-bottom-color:var(--acc)}

/* ---------- tablas rápidas ---------- */
.t-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.t-bar .t-q{flex:1 1 260px;width:auto}.t-bar .t-f{width:auto;flex:0 1 240px}.t-bar .btn{width:auto;flex:none}
.t-n{font-size:12.5px}.t-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;max-height:calc(100vh - 260px)}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th{position:sticky;top:0;background:#f4f6fa;color:#475467;font-weight:700;font-size:12px;text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
table.tbl th.t-s{cursor:pointer;user-select:none}table.tbl th.t-s:hover{color:var(--pri)}table.tbl th.ord::after{content:" ↕";color:var(--acc)}
table.tbl td{padding:8px;border-bottom:1px solid #eef1f5;vertical-align:middle}
table.tbl tr.clic{cursor:pointer}table.tbl tr.clic:hover td{background:#f6f9ff}
table.tbl .r,table.tbl td.r{text-align:right;white-space:nowrap}
tr.fila-bad td{background:#fff5f5}.txt-bad{color:#c62828}
.t-pag{display:flex;gap:10px;align-items:center;justify-content:center;margin:10px 0;font-size:13px}.t-pag .btn{width:auto}
.tag{display:inline-block;font:700 11.5px system-ui;padding:3px 8px;border-radius:99px;background:#eef1f6;color:#344054;white-space:nowrap}
.tag.ok{background:#dcfce7;color:#166534}.tag.warn{background:#fef3c7;color:#92400e}.tag.bad{background:#fee2e2;color:#991b1b}

/* ---------- formularios ---------- */
.f-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 12px}
.f-c label{margin-top:8px}.f-sec{grid-column:1/-1;margin:14px 0 2px!important;padding-top:8px;border-top:1px solid var(--line)}
.f-chk{display:flex;gap:8px;align-items:center;color:var(--ink);font-size:14px;margin-top:6px}.f-chk input{width:auto}
@media(max-width:600px){.f-grid{grid-template-columns:1fr}.f-grid [style*="span"]{grid-column:auto!important}}

/* ---------- archivo digital ---------- */
.a-ic{font-size:22px;flex:none}
.a-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.a-doc{border:1px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;background:#fff;display:flex;flex-direction:column;gap:2px;min-height:120px}
.a-doc:hover{border-color:var(--pri);box-shadow:0 4px 14px rgba(15,30,60,.08)}
.a-doc img{width:100%;height:90px;object-fit:cover;border-radius:8px;background:#f1f5f9}.a-doc>span{font-size:36px;text-align:center;padding:8px 0}
.a-doc b{font-size:12.5px;color:var(--navy,#0b1730)}.a-doc small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a-carp{margin:6px 0}.a-carp summary{cursor:pointer;font-weight:700;padding:6px 0}
.a-fis{display:flex;justify-content:space-between;align-items:center;padding:6px;border-bottom:1px solid #eef1f5}.a-fis .btn{width:auto}
.box{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0;background:#fafbfd}

/* ---------- inventario ---------- */
.d-lin{display:grid;grid-template-columns:150px 1fr 100px auto auto;gap:6px;align-items:start;padding:6px 0;border-bottom:1px solid #eef1f5}
.d-lin input,.d-lin select{padding:8px}.d-lin .dN{font-size:12.5px;padding-top:9px}.d-lin .dS{grid-column:1/-1}.d-lin .btn{width:auto}
.d-lin:has(.dP) {grid-template-columns:140px 1fr 90px 110px auto}.d-lin:has(.dE){grid-template-columns:140px 1fr 90px 160px auto}
@media(max-width:700px){.d-lin,.d-lin:has(.dP),.d-lin:has(.dE){grid-template-columns:1fr 90px auto}.d-lin .dN{grid-column:1/-1;order:5}}

/* ---------- recurso humano ---------- */
.rh-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.rh-head .btn{width:auto}
.rh-foto{width:74px;height:74px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#1e3a8a);color:#fff;display:grid;place-items:center;font:800 26px system-ui;overflow:hidden;flex:none;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.15)}.rh-foto img{width:100%;height:100%;object-fit:cover}
.rh-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.rh-dl div{background:#f7f9fc;border-radius:8px;padding:6px 9px}.rh-dl span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.rh-dl b{font-size:13.5px;font-weight:600}

/* ---------- catastro pericial ---------- */
.pf-g{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:1100px){.pf-g{grid-template-columns:1.25fr 1fr}}
.pf-map .btn{width:auto}.pf-tab td{font-variant-numeric:tabular-nums;font-size:12.5px}.pf-tab .btn{padding:4px 7px}
.pf-v{background:#facc15;border:2px solid #111;border-radius:50%;display:grid!important;place-items:center;font:800 11px system-ui;color:#111;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.pf-lbl span{background:rgba(17,17,17,.78);color:#fde68a;font:700 11px system-ui;padding:1px 5px;border-radius:5px;white-space:nowrap;transform:translate(-50%,-50%);display:inline-block}

/* ---------- vista maestra ---------- */
.gl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:14px}
.gl-c{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 16px rgba(15,30,60,.06)}
.gl-h{display:flex;gap:10px;align-items:center;padding:12px 14px;background:linear-gradient(120deg,var(--c),color-mix(in srgb,var(--c) 55%,#000));color:#fff}
.gl-h b{display:block;font-size:15px}.gl-h small{opacity:.8;font-size:12px}
.gl-i{width:40px;height:40px;border-radius:11px;background:#fff;display:grid;place-items:center;font-size:21px;overflow:hidden;flex:none}.gl-i img{width:100%;height:100%;object-fit:contain}
.gl-k{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);padding:0}.gl-k>div{background:#fff;padding:9px 8px}.gl-k b{display:block;font-size:15px;color:var(--navy,#0b1730);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gl-k span{font-size:10.5px;color:var(--muted)}
.gl-k.muted{padding:14px;background:#fff}
.gl-f{display:flex;align-items:center;gap:6px;padding:10px 14px;border-top:1px solid var(--line)}.gl-f .btn{width:auto}

@media(min-width:1100px){body.con-side header.suite-h .s-brand{display:none}body.con-side header.suite-h h1{flex:1}body.con-side .s-usr{margin-left:auto}}
.a-pan h3 small{text-transform:none;letter-spacing:0;font-weight:500}
/* ---------- tareas ---------- */
.tk{cursor:pointer;padding:12px 14px}.tk:hover{border-color:var(--pri)}.tk-ok{opacity:.75}.tk-bad{border-left:4px solid #dc2626}
.tk-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tk-h b{display:block;color:var(--navy,#0b1730)}.tk-h small{color:var(--muted)}.tk-i{font-size:24px}
.tk-p{display:flex;gap:10px;align-items:center;margin-top:8px}.tk-p small{white-space:nowrap;color:var(--muted)}
/* ---------- toma de lectura ---------- */
.lc{border:2px solid #fde68a;background:#fffbeb;border-radius:14px;padding:12px;margin:10px 0}
.lc-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.lc-h b{font-size:15px}
.lc-cfg{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.lc-cfg select{width:auto;padding:7px 9px}.lc-n{display:flex;gap:6px;align-items:center;margin:0;font-size:13px;color:var(--ink)}.lc-n input{width:auto}.lc-n select{width:auto;padding:5px}
.lc-od{display:flex;gap:4px;align-items:center;justify-content:center;background:#1f2937;border-radius:12px;padding:12px 10px;margin:12px 0;box-shadow:inset 0 3px 10px rgba(0,0,0,.6)}
.lc-d{width:44px!important;height:58px;padding:0!important;text-align:center;font:800 32px/58px ui-monospace,Menlo,Consolas,monospace;color:#fff;background:linear-gradient(#111 0%,#3a3a3a 45%,#111 100%);border:1px solid #000!important;border-radius:6px!important;caret-color:#facc15}
.lc-d:focus{outline:3px solid #facc15}.lc-r{width:38px;height:58px;display:grid;place-items:center;border:3px solid #dc2626;border-radius:6px;color:#fca5a5;font:800 28px system-ui;background:#111}
.lc-u{color:#e5e7eb;font:700 15px system-ui;margin-left:6px}
.lc-lcd{display:flex;align-items:center;gap:8px;background:#9db8a0;border-radius:10px;padding:10px 14px;margin:12px 0;border:3px solid #374151}.lc-lcd input{background:transparent;border:0;font:700 34px ui-monospace,Menlo,monospace;color:#1f2937;letter-spacing:4px;padding:0}.lc-lcd span{font:700 16px system-ui;color:#1f2937}
.lc-res{margin-bottom:8px}.lc-c{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.lc-c b{font-size:22px;color:var(--navy,#0b1730)}.lc-c small{color:var(--muted)}
.lc-al{border-radius:8px;padding:6px 10px;margin-top:4px;font:600 13.5px system-ui}.lc-al.ok{background:#dcfce7;color:#166534}.lc-al.warn{background:#fef3c7;color:#92400e}.lc-al.bad{background:#fee2e2;color:#991b1b}
.lc-foto{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}.lc-foto>img{width:150px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.lc-rec{border:3px solid #22c55e;border-radius:10px;padding:4px;background:#fff;max-width:100%}.lc-rec img{display:block;max-width:100%;max-height:110px;border-radius:6px}.lc-rec small{display:block;color:#166534;font-weight:700}
.lc-b{display:flex;flex-wrap:wrap;gap:6px}.lc-b .btn{width:auto}
.lc-ov{position:fixed;inset:0;z-index:6000;background:#000;display:flex;flex-direction:column}.lc-ovh{color:#fff;padding:12px;text-align:center;font:600 15px system-ui}
.lc-st{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.lc-st img{max-width:100%;max-height:100%;user-select:none;-webkit-user-drag:none}
.lc-sel{position:absolute;border:3px solid #22c55e;background:rgba(34,197,94,.15);pointer-events:none}
.lc-ovb{display:flex;gap:8px;padding:12px}.lc-ovb .btn{flex:1}
@media(max-width:420px){.lc-d{width:38px!important;height:52px;font-size:28px;line-height:52px}}
