:root{
  --bg:#f3f7fb;--ink:#0f172a;--muted:#64748b;--card:#ffffff;--line:#dbe4ee;
  --nav:#07111f;--nav2:#10233a;--accent:#007c89;--accent2:#2dd4bf;--danger:#dc2626;--warning:#f59e0b;
  --shadow:0 18px 45px rgba(15,23,42,.10);--radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);display:flex;background:radial-gradient(circle at 8% 4%,rgba(45,212,191,.24),transparent 30rem),radial-gradient(circle at 90% 15%,rgba(0,124,137,.14),transparent 34rem),linear-gradient(135deg,#f8fafc,#edf4fb)}
button,.tab,input,select,textarea{font:inherit}.sidebar{width:310px;height:100vh;position:fixed;left:0;top:0;padding:22px;color:#fff;background:linear-gradient(180deg,var(--nav),var(--nav2));box-shadow:12px 0 40px rgba(15,23,42,.22);display:flex;flex-direction:column;gap:18px;z-index:50}.sidebar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(45,212,191,.22),transparent 18rem);pointer-events:none}.brand,.sidebar nav,.syncBox{position:relative}.brand{display:flex;gap:13px;align-items:center;padding:14px;border:1px solid rgba(255,255,255,.13);border-radius:24px;background:rgba(255,255,255,.08);backdrop-filter:blur(12px)}.brandLogo{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:18px;padding:5px;box-shadow:0 12px 28px rgba(0,0,0,.28)}.brand h1{margin:0;font-size:15px;line-height:1.2;letter-spacing:.35px}.brand p{margin:5px 0 0;color:#bdd3df;text-transform:uppercase;letter-spacing:.9px;font-size:11px;font-weight:800}.sidebar nav{display:grid;gap:9px}.tab,button{border:0;border-radius:15px;padding:12px 15px;cursor:pointer;font-weight:800;transition:.18s ease}.tab{text-align:left;color:#dbeafe;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10)}.tab:before{display:inline-block;width:26px;opacity:.9}.tab[data-tab="dashboard"]:before{content:"▣"}.tab[data-tab="clientes"]:before{content:"👥"}.tab[data-tab="orden"]:before{content:"＋"}.tab[data-tab="revision"]:before{content:"✓"}.tab[data-tab="mantenimiento"]:before{content:"⚙"}.tab[data-tab="registros"]:before{content:"☰"}.tab[data-tab="config"]:before{content:"◎"}.tab.active,.tab:hover{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent2));transform:translateX(4px);box-shadow:0 12px 24px rgba(45,212,191,.18)}.syncBox{margin-top:0;padding:13px 14px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.07);color:#cbd5e1;font-size:13px}.userBox{display:grid;gap:10px;margin-top:auto}.userBox button{margin:0;background:rgba(255,255,255,.12);box-shadow:none}
main{margin-left:310px;width:calc(100% - 310px);padding:30px 34px 60px}.view{display:none;animation:fade .22s ease}.view.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.header h2{margin:0;font-size:clamp(26px,3vw,38px);letter-spacing:-.8px}.header.small{margin:0 0 13px}.header.small h3,.header.small h4{margin:0}.cards{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:17px;margin-bottom:20px}.card,.panel,.gridForm,.record{background:rgba(255,255,255,.88);border:1px solid rgba(148,163,184,.35);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(10px)}.card{padding:19px 20px;position:relative;overflow:hidden}.card:after{content:"";position:absolute;right:-22px;top:-28px;width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,rgba(0,124,137,.13),rgba(45,212,191,.18))}.card span{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.75px;font-size:12px;font-weight:900}.card strong{display:block;margin-top:9px;font-size:36px;letter-spacing:-1px}.panel{padding:22px;margin-bottom:20px}.gridForm{padding:22px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.innerPanel{background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:none;padding:18px}.full{grid-column:1/-1}label{display:grid;gap:7px;color:#334155;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.45px}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:12px 13px;background:#fff;color:#0f172a;font-size:15px;outline:none;transition:.16s ease;text-transform:none;letter-spacing:0;font-weight:600}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(45,212,191,.18)}input[readonly],.autoFolio{background:#ecfeff;color:#006b76;font-weight:950}button{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 12px 25px rgba(0,124,137,.22);margin-left:8px}button:hover{transform:translateY(-1px);filter:saturate(1.05)}.secondary{background:linear-gradient(135deg,#475569,#64748b)}.danger{background:linear-gradient(135deg,#b91c1c,#ef4444)}.search,.compactSearch{margin-bottom:14px;max-width:420px}.records,.list{display:grid;gap:14px}.record{padding:17px}.recordHead{display:flex;justify-content:space-between;align-items:center;gap:10px}.record p{margin:8px 0;color:#475569}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:900;background:#def7f5;color:#006b76}.lockedBadge{background:#fee2e2;color:#991b1b}.hint{color:var(--muted);font-size:14px;line-height:1.45}.actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-top:13px}.actions button{margin-left:0}.statusControl{max-width:230px}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:16px;overflow:hidden}th,td{border-bottom:1px solid var(--line);padding:11px;text-align:left;vertical-align:top}th{background:#f1f7fb;color:#334155;text-transform:uppercase;font-size:11px;letter-spacing:.55px}tr:last-child td{border-bottom:0}.miniTable{margin:12px 0;overflow:auto}.miniTable table{font-size:13px}.dispensariosBox{display:grid;gap:16px}.dispCard{border:1px solid rgba(148,163,184,.35);border-radius:18px;padding:16px;background:#f8fafc}.dispGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:13px}.dispGrid .full{grid-column:1/-1}.dispCard table input,.innerPanel table input,#actividadesTable input,#herramientasTable input{min-width:120px}.checklistBox{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.checklistBox h3{grid-column:1/-1;margin:0}.checklistBox label{display:flex;align-items:center;gap:8px}.checklistBox input[type=checkbox]{width:auto}.evidenciaBox{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.evidenciaBox h3,.evidenciaBox .hint{grid-column:1/-1}.fotoPreview{background:#eff6ff;border:1px dashed #94a3b8;border-radius:14px;padding:11px}.fotoPreview:empty{display:none}
body.locked .sidebar,body.locked main{filter:blur(2px);pointer-events:none;user-select:none}.loginScreen{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 30% 5%,rgba(45,212,191,.28),transparent 25rem),linear-gradient(135deg,rgba(5,12,24,.97),rgba(0,124,137,.90));z-index:9999}.loginCard{width:min(450px,100%);display:grid;gap:14px;padding:30px;border-radius:30px;background:rgba(255,255,255,.95);box-shadow:0 30px 90px rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.55)}.loginLogo{width:145px;max-height:105px;object-fit:contain;justify-self:center}.loginCard h2{margin:0;text-align:center;font-size:30px}.loginCard p{text-align:center;margin:0 0 7px;color:var(--muted);font-weight:900}.loginCard button{margin-left:0;margin-top:6px}.loginError{min-height:20px;text-align:center;color:#b91c1c;font-weight:900}
@media(max-width:1180px){.cards{grid-template-columns:repeat(2,minmax(150px,1fr))}.gridForm{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){body{display:block}.sidebar{position:relative;width:100%;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}main{margin-left:0;width:100%;padding:18px}.cards,.gridForm,.dispGrid,.evidenciaBox,.checklistBox{grid-template-columns:1fr}.header{align-items:flex-start;flex-direction:column}table{display:block;overflow-x:auto;white-space:nowrap}.actions{display:grid}.statusControl{max-width:none}.brandLogo{width:60px;height:60px}}@media print{.sidebar,.loginScreen,.header button,.actions,.danger,#search,.userBox{display:none!important}body{display:block;background:#fff}body.locked .sidebar,body.locked main{filter:none}main{margin:0;width:100%;padding:0}.view{display:block}.card,.panel,.gridForm,.record{box-shadow:none;border:1px solid #ddd}.miniTable table{display:table;white-space:normal}}


/* ===== Diseño web moderno con colores del logotipo ===== */
:root{
  --logo-red:#b80f16;
  --logo-red-dark:#7a070c;
  --logo-black:#0b0b0d;
  --logo-gray:#eef1f5;
  --accent:var(--logo-red);
  --accent2:#e12b32;
  --dark:var(--logo-black);
  --bg:#f4f6f9;
}
body{
  background:
    radial-gradient(circle at 10% 0%, rgba(184,15,22,.13), transparent 32rem),
    radial-gradient(circle at 100% 20%, rgba(10,10,13,.10), transparent 30rem),
    linear-gradient(135deg,#ffffff 0%,#f3f5f8 100%);
}
.sidebar{
  background:linear-gradient(180deg,#050506 0%,#171719 52%,#2b080a 100%);
  border-right:1px solid rgba(255,255,255,.08);
}
.brand{
  background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.16);
}
.brandLogo,.loginLogo{
  background:white;
  border:2px solid rgba(184,15,22,.18);
}
.tab{
  display:flex;align-items:center;gap:10px;
  border-radius:16px;
  background:rgba(255,255,255,.07);
}
.tab span{width:24px;display:inline-grid;place-items:center}
.tab.active,.tab:hover{
  background:linear-gradient(135deg,var(--logo-red),var(--logo-red-dark));
  box-shadow:0 12px 28px rgba(184,15,22,.24);
}
.header h2:after{
  content:"";display:block;width:74px;height:4px;border-radius:99px;
  background:linear-gradient(90deg,var(--logo-red),#111);margin-top:8px;
}
.card:before{background:linear-gradient(180deg,var(--logo-red),var(--logo-black));}
button{background:linear-gradient(135deg,var(--logo-red),var(--logo-red-dark));box-shadow:0 10px 22px rgba(184,15,22,.20)}
.secondary{background:linear-gradient(135deg,#6b7280,#27272a)}
.danger{background:linear-gradient(135deg,#0b0b0d,#b80f16)}
.badge{background:#ffe4e6;color:#8a0710;border:1px solid #fecdd3}
.card,.panel,.gridForm,.record{
  border-radius:24px;
  border:1px solid rgba(15,23,42,.09);
  box-shadow:0 18px 48px rgba(2,6,23,.08);
}
.loginScreen{background:linear-gradient(135deg,#080809 0%,#340609 100%)}
.loginCard{border-top:6px solid var(--logo-red);box-shadow:0 24px 70px rgba(0,0,0,.42)}
.loginCard h2{color:#111}
.syncBox.userBox button{width:100%;margin:10px 0 0}
.moduleTabs{
  display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:8px;
  background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
  position:sticky;top:12px;z-index:4;
}
.moduleTab{
  margin:0!important;background:#f3f4f6!important;color:#111827!important;
  border:1px solid #e5e7eb!important;box-shadow:none!important;
  border-radius:14px!important;padding:11px 14px!important;
}
.moduleTab.active{
  color:#fff!important;background:linear-gradient(135deg,var(--logo-red),var(--logo-red-dark))!important;
  border-color:transparent!important;box-shadow:0 10px 22px rgba(184,15,22,.22)!important;
}
.tabHidden{display:none!important}
.gridForm:not(:has(> *:not(.tabHidden))){display:none}
@media(max-width:900px){.moduleTabs{position:static}.moduleTab{flex:1 1 auto}.sidebar{border-radius:0 0 26px 26px}}
@media print{.moduleTabs{display:none}.tabHidden{display:block!important}}
.evidenciaCount{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;margin:6px 0;font-size:13px}.miniBtn{padding:6px 8px;border-radius:8px;margin-left:8px;font-size:12px}

.loginHelp{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:10px;line-height:1.5;text-align:left!important;color:#111827!important}

/* EMT automático en Revisión */
.autoCalc[readonly]{
  background:#f1f5f9;
  color:#111827;
  font-weight:800;
  border-color:#94a3b8;
}

/* Geolocalización automática mantenimiento */
.geoBox{background:#fff7ed;border-color:#fed7aa}
.geoBox textarea[readonly], .geoBox input[readonly]{background:#f8fafc;color:#334155}
.geoBox .header.small div{display:flex;gap:8px;flex-wrap:wrap}


/* Evaluación del personal */
.tab[data-tab="evaluacion"]:before{content:"👨‍🔧"}
.evalRecord details{margin-top:12px;background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:12px}
.evalRecord summary{cursor:pointer;font-weight:900;color:#111827}
.evalGrid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin:10px 0}
.evalGrid p{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin:0!important}
.evalSupervisor{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:14px 0}
.evalSupervisor button{align-self:end;margin-left:0}
@media(max-width:900px){.evalGrid,.evalSupervisor{grid-template-columns:1fr}}


/* Portal Clientes integrado */
.tab[data-tab="portalClientes"]:before{content:"🌐"}.portalLinkBtn{display:inline-flex;align-items:center;justify-content:center;border-radius:15px;padding:12px 15px;background:linear-gradient(135deg,#0ea5e9,#2dd4bf);color:#fff;font-weight:900;text-decoration:none;box-shadow:0 12px 25px rgba(14,165,233,.18);margin-left:8px}.portalPanel{border-left:8px solid #0ea5e9}.portalGrid{box-shadow:none;margin-bottom:8px}.innerAssign{margin-top:14px;padding:14px;border:1px solid #dbe4ee;border-radius:18px;background:#f8fafc}.assignGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}@media(max-width:900px){.assignGrid{grid-template-columns:1fr}.portalLinkBtn{margin:8px 0 0}}


/* Administración de usuarios internos */
.userRecord{border-left:6px solid var(--accent)}
.userRecord .actions button{margin-left:0}
.adminOnly{display:none}
.loginHelp{background:rgba(255,255,255,.72);border:1px solid rgba(148,163,184,.35);border-radius:14px;padding:10px;color:#475569;font-size:13px;line-height:1.4}
#usuariosSistema .gridForm{grid-template-columns:repeat(3,minmax(0,1fr))}
#usuariosSistema .full{grid-column:1/-1}
@media(max-width:900px){#usuariosSistema .gridForm{grid-template-columns:1fr}}


/* Calendario mensual clientes */
.calendarToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.calendarAdmin{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calHead{text-align:center;font-weight:900;color:#475569;padding:8px}.calDay{min-height:130px;background:#fff;border:1px solid #dbe4ee;border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:6px}.calDay>b{font-size:18px}.mutedDay{opacity:.45;background:#f8fafc}.calEvent{display:block;text-align:left;border:0;border-left:4px solid #007c89;border-radius:10px;background:#ecfeff;color:#0f172a;box-shadow:none;padding:8px;font-size:12px;line-height:1.25}.calEvent span{font-weight:900;margin-right:4px}.calEvent small{display:block;color:#64748b;margin-top:2px}.calendarAdminPanel textarea{resize:vertical}@media(max-width:900px){.calendarAdmin{grid-template-columns:1fr}.calHead{display:none}.calDay{min-height:auto}}


/* Calendario clientes interno */
.calendarToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.calendarAdmin{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:10px}.calHead{text-align:center;font-weight:900;color:#334155;padding:8px}.calDay{min-height:125px;border:1px solid #dbe4ee;border-radius:16px;background:#fff;padding:9px;box-shadow:0 8px 18px rgba(15,23,42,.06)}.mutedDay{opacity:.45}.calEvent{display:block;width:100%;text-align:left;margin-top:6px;padding:7px 8px;border-radius:10px;background:#ecfeff;color:#0f172a;box-shadow:none;border-left:4px solid #007c89;font-size:12px}.calEvent span{font-weight:900;margin-right:5px}.calEvent small{display:block;color:#64748b;margin-top:2px}.calendarAdminPanel .gridForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendarAdminPanel .full{grid-column:1/-1}@media(max-width:900px){.calendarAdmin{grid-template-columns:1fr}.calHead{display:none}.calendarAdminPanel .gridForm{grid-template-columns:1fr}}


/* Aislamiento definitivo de paneles: solo se muestra el panel activo */
body:not(.printing) main .view:not(.active),
body:not(.printing) .content .view:not(.active){display:none!important;}
body:not(.printing) main .view.active,
body:not(.printing) .content .view.active{display:block!important;}
#limpiezaEcologica .innerPanel{box-shadow:none;background:#f8fafc;border:1px solid #dbe7ef;}
#limpiezaEcologica .checklistBox{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px;}
#limpiezaEcologica .checklistBox label{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:14px;}
#limpiezaEcologica .checklistBox input{width:auto;}
