:root{--bg:#f3f6fb;--panel:#fff;--text:#0f172a;--muted:#667085;--primary:#1677ff;--line:#dde6f3;--danger:#d92d20;--shadow:0 18px 45px rgba(15,23,42,.07);--radius:22px;--font:Inter,Segoe UI,Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px}a{text-decoration:none;color:inherit}.shell{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.sidebar{background:#f8fbff;border-right:1px solid var(--line);padding:16px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;margin-bottom:18px}.brand span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#1677ff,#66a6ff);color:#fff;font-weight:900}.brand strong{font-size:18px;display:block}.brand small{font-size:12px;color:var(--muted)}.sidebar nav{display:grid;gap:10px}.sidebar nav>a,.sidebar summary{min-height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:15px;cursor:pointer;font-weight:850}.sidebar nav>a:hover,.sidebar summary:hover,.sidebar details a:hover{background:#e9f2ff;color:var(--primary)}.sidebar details{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.sidebar summary{justify-content:space-between;list-style:none}.sidebar summary::-webkit-details-marker{display:none}.sidebar details a{display:flex;align-items:center;min-height:36px;margin:0 10px 7px 26px;padding:0 10px;border-radius:12px;color:#344054;font-weight:700;font-size:13px}.sidebar details a:before{content:"·";color:var(--primary);font-weight:900;margin-right:8px}.sidecard{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;color:#475467;font-size:13px}.main{padding:0 26px 48px;min-width:0}.top{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(221,230,243,.75);margin:0 -26px 26px;padding:0 26px;background:rgba(243,246,251,.78);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}.top form{flex:1;max-width:820px}.top input{width:100%;height:44px;padding:0 18px;border-radius:16px;border:1px solid var(--line);background:#fff;outline:0}.head{max-width:1500px;margin:0 auto 20px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px}.head:before{content:"MEDROD GROUP";grid-column:1/-1;letter-spacing:.24em;color:#667085;font-size:13px;font-weight:900;text-transform:uppercase;margin-bottom:-10px}.head h1{font-size:32px;line-height:1.05;margin:0}.head p{margin:8px 0 0;color:#536079}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border-radius:14px;border:1px solid var(--line);background:#fff;color:#101828;cursor:pointer;font-weight:900}.btn.primary,button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.mini{min-height:30px;padding:0 10px;border-radius:10px;font-size:12px}.panel{max-width:1500px;margin:0 auto 18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel.pad{padding:22px}.grid{max-width:1500px;margin:0 auto 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{position:relative;min-height:128px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px rgba(15,23,42,.045);overflow:hidden}.stat:after{content:"";position:absolute;right:-36px;top:-42px;width:120px;height:120px;border-radius:50%;background:#eaf3ff}.stat b{font-size:34px;display:block;margin-bottom:10px;position:relative;z-index:1}.stat span{display:block;color:#536079;font-weight:700;position:relative;z-index:1}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:14px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:#667085;font-size:12px;text-transform:uppercase;letter-spacing:.08em;background:#fbfdff}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.form-control,input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:14px;margin-top:6px;background:#fff;outline:0}textarea{min-height:130px;resize:vertical}form p{margin:0 0 14px}label{font-weight:850}.msg{max-width:1500px;margin:0 auto 12px;background:#ecfdf3;border:1px solid #abefc6;padding:12px 16px;border-radius:14px}.cards{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.cards a{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;font-weight:900;box-shadow:0 10px 30px rgba(15,23,42,.045)}.muted{color:var(--muted)}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 20%,rgba(22,119,255,.22),transparent 30%),linear-gradient(135deg,#0f172a,#16233f)}.login{width:min(430px,92vw);background:rgba(255,255,255,.96);border-radius:26px;padding:32px;display:grid;gap:14px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.login h1{margin:0;font-size:30px}.detail-grid{max-width:1500px;margin:0 auto 18px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}.kv{padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kv div{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fbfdff}.kv strong{display:block;color:#667085;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}@media(max-width:1050px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.grid,.cards,.detail-grid{grid-template-columns:1fr}.main{padding:0 14px 32px}.top{margin:0 -14px 18px;padding:12px 14px;height:auto;display:grid}.head{grid-template-columns:1fr}}

.cards small{display:block;margin-top:8px;font-weight:700}
.panel.pad a:not(.btn){color:var(--primary);font-weight:850}

.chat-shell{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px}
.chat-users{max-width:none;margin:0;overflow:hidden}
.chat-panel{max-width:none;margin:0;display:flex;flex-direction:column;min-height:650px}
.chat-head{padding:18px 20px;border-bottom:1px solid var(--line)}
.chat-head h2{margin:0 0 6px}
.chat-user{display:grid;grid-template-columns:12px 1fr;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}
.chat-user:hover,.chat-user.active{background:#e9f2ff}
.chat-user small,.chat-user em{grid-column:2;color:var(--muted);font-style:normal;font-size:12px}
.status-dot{width:10px;height:10px;border-radius:50%;background:#98a2b3;margin-top:5px}
.status-dot.online{background:#12b76a;box-shadow:0 0 0 4px rgba(18,183,106,.14)}
.chat-messages{padding:20px;display:flex;flex-direction:column;gap:12px;flex:1;overflow:auto;background:#f8fbff}
.bubble{max-width:72%;padding:12px 14px;border-radius:18px;border:1px solid var(--line);background:#fff}
.bubble.me{align-self:flex-end;background:#1677ff;color:#fff;border-color:#1677ff}
.bubble.me small{color:rgba(255,255,255,.8)}
.bubble.other{align-self:flex-start}
.bubble p{margin:6px 0}
.bubble small{color:var(--muted)}
.chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;padding:16px;border-top:1px solid var(--line);background:#fff}
.chat-form textarea{margin:0;min-height:54px}
.chat-empty,.empty-chat{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.chat-shell{grid-template-columns:1fr}.chat-panel{min-height:520px}.bubble{max-width:92%}}

.office-shell,.sheet-shell{max-width:1500px;margin:0 auto 18px;overflow:hidden}
.office-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);background:#eef5ff}
.office-toolbar button,.office-toolbar select{min-height:34px;border-radius:10px}
.office-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px;background:#fbfdff;border-bottom:1px solid var(--line)}
.writer-page{width:min(900px, calc(100% - 32px));min-height:760px;margin:22px auto;padding:52px;background:#fff;border:1px solid #d0d5dd;box-shadow:0 16px 44px rgba(15,23,42,.12);outline:0;line-height:1.6;font-size:16px}
.sheet-wrap{overflow:auto;padding:18px;background:#f8fbff}
.sheet-table{border-collapse:collapse;width:auto;min-width:100%}
.sheet-table th{position:sticky;top:0;background:#eaf3ff;z-index:1;text-align:center}
.sheet-table td,.sheet-table th{border:1px solid #c9d7ea;padding:0}
.sheet-table td input{width:140px;height:34px;border:0;border-radius:0;margin:0;padding:6px;background:#fff}
.sheet-table td input:focus{outline:2px solid #1677ff;position:relative;z-index:2}
@media(max-width:900px){.office-meta{grid-template-columns:1fr}.writer-page{padding:24px;min-height:520px}}

.file-preview-image{max-width:100%;border-radius:18px;border:1px solid var(--line);box-shadow:0 10px 30px rgba(15,23,42,.08)}
.file-preview-frame{width:100%;height:720px;border:1px solid var(--line);border-radius:18px;background:#fff}
.text-frame{background:#fff}
.file-preview-video{width:100%;max-height:720px;border-radius:18px;background:#000}
.file-preview-audio{width:100%;margin-top:12px}
.file-preview-empty{padding:30px;text-align:center;border:1px dashed var(--line);border-radius:18px;background:#fbfdff}

.file-preview-text{
  white-space:pre-wrap;
  word-break:break-word;
  background:#0f172a;
  color:#e5edf8;
  padding:22px;
  border-radius:18px;
  border:1px solid #23304a;
  min-height:260px;
  max-height:720px;
  overflow:auto;
  font-family:Consolas,Monaco,monospace;
  font-size:14px;
  line-height:1.55;
}

.qr-2fa{width:220px;height:220px;margin:10px auto;display:block;border:1px solid var(--line);border-radius:18px;background:#fff;padding:10px}
.twofa-setup{width:min(560px,94vw)}
.recovery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.recovery-grid code{display:block;background:#0f172a;color:#e5edf8;padding:10px;border-radius:10px;text-align:center;font-weight:900}
.login code{word-break:break-all}

.dashboard-hero{
  max-width:1500px;
  margin:0 auto 18px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:18px;
  align-items:stretch;
  padding:28px;
  border:1px solid var(--line);
  border-radius:28px;
  background:
    radial-gradient(circle at 85% 20%,rgba(22,119,255,.16),transparent 32%),
    linear-gradient(135deg,#ffffff,#f7fbff);
  box-shadow:var(--shadow);
}
.dashboard-hero h1{font-size:38px;margin:6px 0 8px;letter-spacing:-.03em}
.dashboard-hero p{max-width:760px;color:var(--muted);font-size:15px}
.hero-kicker{letter-spacing:.24em;color:#667085;font-size:13px;font-weight:900}
.status-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:18px;
  display:grid;
  grid-template-columns:22px 1fr;
  gap:12px;
  align-items:center;
  box-shadow:0 12px 28px rgba(15,23,42,.05);
}
.status-card .status-select{grid-column:1/-1;margin:0}
.status-card button{grid-column:1/-1}
.status-card strong{display:block}
.status-card small{color:var(--muted);font-weight:800}
.status-dot-large,.status-dot-small{
  display:inline-block;border-radius:50%;background:#98a2b3
}
.status-dot-large{width:18px;height:18px;box-shadow:0 0 0 6px rgba(152,162,179,.16)}
.status-dot-small{width:10px;height:10px;margin-top:5px}
.status-disponible .status-dot-large,.status-disponible .status-dot-small{background:#12b76a;box-shadow:0 0 0 6px rgba(18,183,106,.15)}
.status-ausente .status-dot-large,.status-ausente .status-dot-small{background:#f79009;box-shadow:0 0 0 6px rgba(247,144,9,.15)}
.status-reunion .status-dot-large,.status-reunion .status-dot-small{background:#7a5af8;box-shadow:0 0 0 6px rgba(122,90,248,.15)}
.status-desconectado .status-dot-large,.status-desconectado .status-dot-small{background:#98a2b3;box-shadow:0 0 0 6px rgba(152,162,179,.15)}
.dashboard-layout{max-width:1500px;margin:0 auto 18px;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px}
.panel-title{padding:18px 20px 0}.panel-title h2{margin:0 0 6px}
.team-status-list{display:grid;gap:10px;margin-top:14px}
.team-status{display:grid;grid-template-columns:16px 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fbfdff}
.team-status strong{display:block}.team-status small{color:var(--muted);font-weight:800}
.dashboard-shortcuts{margin-top:18px}
@media(max-width:1050px){.dashboard-hero,.dashboard-layout{grid-template-columns:1fr}.dashboard-hero h1{font-size:30px}}


/* ===========================
   MedRod Group V4.12
   Dashboard visual refinado
   =========================== */

.dashboard-page{
  max-width:1380px;
  margin:0 auto;
  display:grid;
  gap:18px;
}

.dashboard-hero-v2{
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:18px;
  align-items:stretch;
  padding:24px;
  border:1px solid var(--line);
  border-radius:28px;
  background:
    radial-gradient(circle at 82% 18%,rgba(22,119,255,.13),transparent 28%),
    linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.dashboard-welcome{
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:4px 0;
}

.dashboard-welcome h1{
  margin:8px 0 10px;
  font-size:40px;
  line-height:1.04;
  letter-spacing:-.04em;
  color:#050b18;
}

.dashboard-welcome p{
  margin:0;
  max-width:720px;
  color:var(--muted);
  font-size:15px;
  line-height:1.65;
}

.dashboard-user-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.dashboard-user-meta span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#eef6ff;
  border:1px solid #d9eaff;
  color:#27557f;
  font-weight:850;
  font-size:12px;
}

.status-card-v2{
  align-self:center;
  min-height:160px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
  padding:18px;
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:0 16px 36px rgba(15,23,42,.06);
}

.status-card-top{
  display:grid;
  grid-template-columns:24px 1fr;
  gap:12px;
  align-items:center;
}

.status-card-top strong{
  display:block;
  font-size:14px;
}

.status-card-top small{
  display:block;
  color:var(--muted);
  font-weight:850;
  margin-top:3px;
}

.status-control-row{
  display:grid;
  grid-template-columns:1fr 120px;
  gap:10px;
}

.status-control-row select,
.status-control-row .status-select{
  height:42px;
  margin:0;
}

.status-control-row button{
  height:42px;
  min-height:42px;
}

.status-note{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}

.dashboard-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.metric-card{
  position:relative;
  min-height:118px;
  padding:20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 12px 28px rgba(15,23,42,.045);
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:center;
  overflow:hidden;
}

.metric-card:after{
  content:"";
  position:absolute;
  right:-34px;
  top:-44px;
  width:118px;
  height:118px;
  border-radius:50%;
  background:#eaf3ff;
}

.metric-card>span{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:#f1f7ff;
  border:1px solid #dbeafe;
  font-size:22px;
  position:relative;
  z-index:1;
}

.metric-card b{
  display:block;
  font-size:32px;
  line-height:1;
  margin-bottom:8px;
  position:relative;
  z-index:1;
}

.metric-card small{
  display:block;
  color:#536079;
  font-weight:850;
  position:relative;
  z-index:1;
}

.dashboard-main-grid{
  display:grid;
  grid-template-columns:minmax(0,1.9fr) minmax(320px,.85fr);
  gap:18px;
  align-items:stretch;
}

.dashboard-panel{
  max-width:none;
  margin:0;
  min-height:310px;
}

.panel-title-v2{
  padding:20px 22px 12px;
  border-bottom:1px solid var(--line);
  background:#fbfdff;
}

.panel-title-v2 h2{
  margin:0 0 6px;
  font-size:20px;
}

.panel-title-v2 p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}

.dashboard-table th,
.dashboard-table td{
  padding:13px 18px;
}

.team-panel{
  display:flex;
  flex-direction:column;
}

.team-status-list-v2{
  display:grid;
  gap:10px;
  padding:16px;
}

.team-status-v2{
  display:grid;
  grid-template-columns:16px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:13px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbfdff;
}

.team-status-v2 strong{
  display:block;
  line-height:1.15;
}

.team-status-v2 small{
  display:block;
  color:var(--muted);
  font-weight:850;
  margin-top:4px;
}

.dashboard-shortcuts-v2{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.dashboard-shortcuts-v2 a{
  min-height:92px;
  padding:18px;
  display:grid;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  column-gap:13px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 10px 26px rgba(15,23,42,.04);
  transition:.16s ease;
}

.dashboard-shortcuts-v2 a:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
}

.dashboard-shortcuts-v2 span{
  grid-row:1/3;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#f1f7ff;
  border:1px solid #dbeafe;
  font-size:20px;
}

.dashboard-shortcuts-v2 strong{
  align-self:end;
}

.dashboard-shortcuts-v2 small{
  align-self:start;
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:750;
}

.status-disponible .status-dot-large,
.status-disponible .status-dot-small{background:#12b76a;box-shadow:0 0 0 6px rgba(18,183,106,.14)}
.status-ausente .status-dot-large,
.status-ausente .status-dot-small{background:#f79009;box-shadow:0 0 0 6px rgba(247,144,9,.14)}
.status-reunion .status-dot-large,
.status-reunion .status-dot-small{background:#7a5af8;box-shadow:0 0 0 6px rgba(122,90,248,.14)}
.status-desconectado .status-dot-large,
.status-desconectado .status-dot-small{background:#98a2b3;box-shadow:0 0 0 6px rgba(152,162,179,.14)}

@media(max-width:1200px){
  .dashboard-hero-v2{grid-template-columns:1fr}
  .status-card-v2{align-self:stretch}
  .dashboard-main-grid{grid-template-columns:1fr}
}

@media(max-width:900px){
  .dashboard-metrics,
  .dashboard-shortcuts-v2{grid-template-columns:1fr}
  .status-control-row{grid-template-columns:1fr}
  .dashboard-welcome h1{font-size:30px}
  .dashboard-hero-v2{padding:18px;border-radius:22px}
}

/* V4.12: formularios inline para acciones POST seguras */
.inline-form{display:inline-flex;margin:0;gap:6px;align-items:center}
.inline-form button{font:inherit;cursor:pointer}
.table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* V4.12: formularios inline para acciones POST seguras */
.inline-form{display:inline-flex;margin:0;gap:6px;align-items:center}
.inline-form button{font:inherit;cursor:pointer}
.table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* V4.12: formularios inline para acciones POST seguras */
.inline-form{display:inline-flex;margin:0;gap:6px;align-items:center}
.inline-form button{font:inherit;cursor:pointer}
.table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* V4.12: formularios inline para acciones POST seguras */
.inline-form{display:inline-flex;margin:0;gap:6px;align-items:center}
.inline-form button{font:inherit;cursor:pointer}
.table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

.file-preview-note{margin-bottom:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fbfdff;color:#536079;font-weight:700}
.xlsx-preview-wrap{max-height:720px;overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}
.xlsx-preview-table{width:auto;min-width:100%;border-collapse:collapse;font-size:13px}
.xlsx-preview-table td{min-width:120px;max-width:280px;padding:9px 11px;border:1px solid #dbe5f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff}
.xlsx-preview-table tr:first-child td{background:#f2f7ff;font-weight:900;position:sticky;top:0;z-index:1}

/* V4.12.2 - Estado activo y persistencia visual del menú lateral */
.sidebar nav a.active {
  background: #eaf2ff;
  color: #1d4ed8;
  font-weight: 800;
}
.sidebar details[open] > summary {
  background: #eaf2ff;
  color: #1d4ed8;
}

/* ===========================
   V4.12.4 - Control horario en dashboard
   =========================== */
.time-clock-card{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) 260px 260px;
  gap:18px;
  align-items:center;
  padding:20px;
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 100%);
  box-shadow:0 12px 28px rgba(15,23,42,.045);
}
.time-clock-card.is-active{
  border-color:#b7d7ff;
  box-shadow:0 18px 40px rgba(22,119,255,.10);
}
.time-clock-main{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:14px;
  align-items:center;
}
.time-clock-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#eef6ff;
  border:1px solid #d9eaff;
  font-size:26px;
}
.time-clock-main h2{
  margin:6px 0 6px;
  font-size:23px;
  letter-spacing:-.025em;
}
.time-clock-main p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.time-clock-counter{
  min-height:84px;
  display:grid;
  place-items:center;
  border-radius:20px;
  background:#050b18;
  color:#fff;
  font-size:34px;
  font-weight:950;
  letter-spacing:.05em;
  font-variant-numeric:tabular-nums;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.time-clock-card.is-active .time-clock-counter{
  background:#0b3b7a;
}
.time-clock-actions{
  display:grid;
  gap:9px;
  align-items:center;
}
.time-clock-actions .btn{
  justify-content:center;
  width:100%;
}
.time-clock-actions small{
  display:block;
  text-align:center;
  color:var(--muted);
  font-weight:750;
  font-size:12px;
}
@media(max-width:1100px){
  .time-clock-card{grid-template-columns:1fr;}
  .time-clock-counter{font-size:30px;}
}

/* ===========================
   V4.12.9 - Dashboard Cliente estructurado
   =========================== */
.client-dashboard-page{
  max-width:1500px;
  margin:0 auto;
  display:grid;
  gap:18px;
}
.client-dashboard-page .panel,
.client-main-grid > .panel{
  max-width:none;
  width:100%;
  margin:0;
}
.client-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 180px;
  gap:26px;
  align-items:center;
  min-height:190px;
  background:radial-gradient(circle at 86% 22%,rgba(22,119,255,.14),transparent 29%),linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);
}
.client-hero-copy{min-width:0;}
.password-copy-box{display:flex;gap:12px;align-items:center;margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:#f6f9ff;}
.password-copy-box code{flex:1;overflow-wrap:anywhere;font-size:15px;color:#10213d;}
@media (max-width:700px){.password-copy-box{align-items:stretch;flex-direction:column;}}
.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:900;color:#1f5c99;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.client-hero h2{font-size:34px;margin:0 0 8px;letter-spacing:-.035em;color:#050b18}
.client-hero p{margin:0;color:var(--muted);line-height:1.55;max-width:760px}
.client-progress-ring{justify-self:end;width:160px;height:160px;border-radius:50%;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,#0b3b7a,#1677ff);color:#fff;box-shadow:0 18px 42px rgba(22,119,255,.18)}
.client-progress-ring strong{display:block;font-size:34px;line-height:1;font-weight:950}
.client-progress-ring span{display:block;font-size:12px;font-weight:850;opacity:.9;margin-top:6px}
.client-kpis{
  max-width:none;
  width:100%;
  margin:0;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.client-stat{min-height:118px;display:flex;flex-direction:column;justify-content:center;}
.client-stat b{font-size:34px;margin-bottom:12px;}
.client-stat span{font-weight:850;}
.client-main-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);
  gap:18px;
  align-items:stretch;
}
.client-secondary-grid{
  grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);
}
.client-card{
  min-height:190px;
}
.client-projects-card,
.client-documents-card{min-width:0;}
.client-timeline-card,
.client-tickets-card{min-width:0;}
.section-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.section-title-row h2{margin:0;font-size:22px;letter-spacing:-.02em}
.section-title-row small{display:block;color:var(--muted);font-weight:750;margin-top:4px}
.client-project-list{display:grid;gap:12px}
.client-project-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.035)}
.project-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.project-card-head strong{display:block;font-size:15px}.project-card-head small{display:block;color:var(--muted);margin-top:4px}
.client-project-card p{margin:10px 0 0;color:var(--muted);line-height:1.5}
.pill{display:inline-flex;min-width:48px;height:30px;padding:0 10px;align-items:center;justify-content:center;border-radius:999px;background:#eef6ff;color:#0b3b7a;font-weight:900;border:1px solid #d9eaff;white-space:nowrap}
.progress{height:10px;background:#edf2f7;border-radius:999px;overflow:hidden;margin:12px 0}.progress span{display:block;height:100%;background:linear-gradient(90deg,#1677ff,#6bb6ff);border-radius:999px}.table-progress{width:140px;margin:0 0 5px}
.timeline-list{display:grid;gap:10px}
.timeline-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.03)}
.timeline-item>span{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:#eef6ff}
.timeline-item strong{display:block}.timeline-item small,.timeline-item p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.empty-state{display:flex;align-items:center;justify-content:center;min-height:92px;padding:18px;border:1px dashed #cfdced;border-radius:16px;background:#fbfdff;color:var(--muted);font-weight:800;text-align:center;line-height:1.45}
.table-empty{min-height:70px;border:0;background:transparent;padding:8px}
.responsive-table{width:100%;overflow:auto}
.client-card table{min-width:100%;}
.client-card th,.client-card td{white-space:nowrap;}
.client-documents-card th:first-child,.client-documents-card td:first-child,
.client-tickets-card th:first-child,.client-tickets-card td:first-child{white-space:normal;min-width:220px;}
.table-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.table-head h2{margin:0 0 6px;font-size:22px;letter-spacing:-.02em}.table-head p{margin:0}
.ticket-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.ticket-meta span{padding:8px 10px;border-radius:999px;background:#f4f8ff;border:1px solid var(--line);font-size:12px;font-weight:850}.followup-form{margin-top:18px}.preview-only{margin-top:16px;border:1px solid var(--line)}
@media(max-width:1200px){
  .client-main-grid,.client-secondary-grid{grid-template-columns:1fr;}
  .client-timeline-card,.client-tickets-card{min-height:auto;}
}
@media(max-width:900px){
  .client-hero{grid-template-columns:1fr;text-align:left;}
  .client-progress-ring{justify-self:start;width:140px;height:140px;}
  .client-hero h2{font-size:28px;}
  .client-kpis{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .client-kpis{grid-template-columns:1fr;}
  .client-hero{padding:18px;}
}


/* V4.12.9 - Ajuste visual Panel Cliente */
.client-secondary-grid .client-documents-card,
.client-secondary-grid .client-tickets-card{
  padding:22px;
}
.client-secondary-grid .client-documents-card .section-title-row,
.client-secondary-grid .client-tickets-card .section-title-row{
  margin-bottom:16px;
}
.client-secondary-grid .responsive-table{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  overflow:auto;
}
.client-secondary-grid table{
  margin:0;
}
.client-secondary-grid .table-empty{
  min-height:92px;
}

/* ===========================
   V4.12.10 - Ticket Cliente visual profesional
   =========================== */
.client-ticket-page{
  max-width:1500px;
  margin:0 auto;
  display:grid;
  gap:18px;
}
.client-ticket-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:22px;
  align-items:center;
  min-height:150px;
  background:radial-gradient(circle at 88% 20%,rgba(22,119,255,.14),transparent 30%),linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);
}
.client-ticket-hero h2{
  margin:0 0 8px;
  font-size:34px;
  letter-spacing:-.035em;
  color:#050b18;
}
.client-ticket-hero p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
  max-width:760px;
}
.client-ticket-status-card{
  justify-self:end;
  width:170px;
  min-height:116px;
  border-radius:24px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:16px;
  color:#fff;
  background:linear-gradient(135deg,#0b3b7a,#1677ff);
  box-shadow:0 18px 42px rgba(22,119,255,.18);
}
.client-ticket-status-card strong{display:block;font-size:22px;line-height:1.1;font-weight:950;}
.client-ticket-status-card span{display:block;font-size:12px;font-weight:850;opacity:.9;margin-top:6px;}
.client-ticket-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);
  gap:18px;
  align-items:start;
}
.client-ticket-main,
.client-ticket-history{
  max-width:none;
  width:100%;
  margin:0;
}
.section-title-row.compact{margin-top:0;margin-bottom:12px;}
.client-ticket-description{
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  background:#fbfdff;
  margin-bottom:16px;
}
.client-ticket-description strong{display:block;margin-bottom:8px;font-size:13px;color:#475467;text-transform:uppercase;letter-spacing:.06em;}
.client-ticket-description p{margin:0;line-height:1.65;color:#182230;white-space:pre-wrap;}
.client-ticket-meta-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.client-ticket-meta-grid div{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:14px;
  box-shadow:0 5px 16px rgba(15,23,42,.025);
}
.client-ticket-meta-grid span{display:block;color:var(--muted);font-size:12px;font-weight:850;margin-bottom:5px;}
.client-ticket-meta-grid strong{display:block;font-size:14px;color:#101828;line-height:1.35;}
.client-reply-box{
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:18px;
  box-shadow:0 8px 22px rgba(15,23,42,.035);
}
.client-reply-box p{margin:0 0 14px;}
.client-reply-box textarea{min-height:150px;}
.client-reply-box button{margin-top:4px;}
.client-history-list{display:grid;gap:12px;}
.client-history-item{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 5px 16px rgba(15,23,42,.03);
}
.client-history-item .history-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#eef6ff;
}
.client-history-item strong{display:block;font-size:14px;}
.client-history-item p{margin:5px 0 4px;color:#344054;line-height:1.55;white-space:pre-wrap;}
.client-history-item small{color:var(--muted);font-weight:750;}
.client-ticket-form-page{max-width:860px;}
.client-ticket-form-page h2{margin:8px 0 8px;font-size:30px;letter-spacing:-.03em;}
.client-create-ticket-form{margin-top:18px;}
@media(max-width:1100px){
  .client-ticket-grid{grid-template-columns:1fr;}
  .client-ticket-meta-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:700px){
  .client-ticket-hero{grid-template-columns:1fr;}
  .client-ticket-status-card{justify-self:start;width:100%;}
  .client-ticket-meta-grid{grid-template-columns:1fr;}
  .client-ticket-hero h2{font-size:28px;}
}

/* V4.12.11 · Ticket interno visual */
.internal-ticket-page{max-width:1280px;margin:0 auto;}
.internal-ticket-grid{align-items:start;}
.internal-followup-box select,
.internal-followup-box input,
.internal-followup-box textarea{width:100%;}
.internal-followup-box textarea{min-height:150px;resize:vertical;}
.internal-history-item{align-items:flex-start;}
.history-headline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.mini-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:#eef4ff;border:1px solid var(--line);color:#175cd3;font-size:11px;font-weight:900;white-space:nowrap;}
@media (max-width: 980px){.internal-ticket-page{max-width:100%;}}


/* V4.12.12 · Centro de tickets en dashboard */
.dashboard-ticket-center{
  max-width:980px;
  margin:22px auto;
}
.ticket-focus-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:26px;
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 55%,#eef6ff 100%);
  box-shadow:0 18px 45px rgba(15,23,42,.08);
  padding:24px;
}
.ticket-focus-card:before{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  right:-45px;
  top:-60px;
  border-radius:999px;
  background:rgba(37,99,235,.08);
}
.ticket-focus-header{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  margin-bottom:18px;
}
.ticket-focus-header h2{margin:4px 0 8px;font-size:26px;letter-spacing:-.03em;}
.ticket-focus-header p{margin:0;color:var(--muted);max-width:680px;line-height:1.55;}
.ticket-focus-metrics{display:flex;gap:12px;align-items:stretch;}
.ticket-focus-metrics div{
  min-width:110px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  padding:14px 16px;
  text-align:center;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.ticket-focus-metrics strong{display:block;font-size:28px;line-height:1;color:#175cd3;}
.ticket-focus-metrics small{display:block;margin-top:7px;color:var(--muted);font-weight:850;}
.ticket-focus-body{position:relative;display:grid;gap:10px;margin:12px 0 18px;}
.ticket-focus-item{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  text-decoration:none;
  color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ticket-focus-item:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.08);border-color:#bfd7ff;}
.ticket-focus-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;background:#eef6ff;}
.ticket-focus-item strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ticket-focus-item small{display:block;margin-top:4px;color:var(--muted);font-weight:750;}
.ticket-focus-item em{font-style:normal;color:var(--muted);font-size:12px;font-weight:850;white-space:nowrap;}
.ticket-focus-empty{border:1px dashed var(--line);border-radius:18px;padding:20px;text-align:center;color:var(--muted);font-weight:850;background:#fff;}
.ticket-focus-actions{position:relative;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
@media(max-width:820px){
  .dashboard-ticket-center{max-width:100%;}
  .ticket-focus-header{grid-template-columns:1fr;}
  .ticket-focus-metrics{width:100%;}
  .ticket-focus-metrics div{flex:1;}
  .ticket-focus-item{grid-template-columns:40px minmax(0,1fr);}
  .ticket-focus-item em{grid-column:2;}
  .ticket-focus-actions{justify-content:flex-start;}
}

/* V4.12.20 · Proyectos Web para clientes externos */
.web-project-hero,.client-web-feature{display:flex;justify-content:space-between;gap:28px;align-items:center;background:linear-gradient(135deg,#fff,#eef6ff)}
.web-meta-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.web-admin-highlight{border:1px solid #cfe0ff;background:linear-gradient(180deg,#fff,#f7fbff)}
.web-project-kpis .stat b{font-size:24px}
.web-preview-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f8fbff}
.web-phase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.web-phase-card{border:1px solid #dde6f2;border-radius:18px;background:#fff;padding:18px;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.web-phase-card.status-progress{border-color:#93c5fd;background:linear-gradient(180deg,#fff,#eff6ff)}
.web-phase-card.status-done{border-color:#86efac;background:linear-gradient(180deg,#fff,#f0fdf4)}
.phase-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.phase-head strong{font-size:15px;color:#0f172a}
.phase-comments-count,.phase-approved{margin-top:10px;font-size:13px;color:#475569;font-weight:700}
.phase-comments{margin-top:14px;border-top:1px dashed #dbe5f1;padding-top:12px}
.phase-comments summary{cursor:pointer;font-weight:800;color:#0f172a}
.phase-comment-form{display:grid;gap:8px;margin-top:10px}
.client-web-feature{margin:18px 0;border:1px solid #bfdbfe}
.client-web-feature h2{margin:4px 0 8px;font-size:26px}
.web-feature-actions{min-width:210px;display:grid;gap:8px;text-align:center;justify-items:center}
.web-feature-actions strong{font-size:42px;color:#1556c5}
.web-feature-actions span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}
.web-feature-progress{height:12px;margin-top:16px;background:#dbeafe}
.client-phase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){.web-phase-grid,.client-phase-grid{grid-template-columns:1fr}.web-project-hero,.client-web-feature,.web-preview-callout{flex-direction:column;align-items:flex-start}.web-feature-actions{text-align:left;justify-items:flex-start}}

/* ===========================
   V4.12.20 · Panel principal reorganizado
   =========================== */
.dashboard-page{
  max-width:1460px;
  gap:20px;
}
.dashboard-hero-v2{
  grid-template-columns:minmax(0,1fr) 320px;
  min-height:190px;
  padding:26px 28px;
}
.dashboard-welcome{min-height:150px;}
.dashboard-welcome h1{font-size:36px;}
.status-card-v2{min-height:138px;}
.dashboard-overview-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(360px,.75fr);
  gap:18px;
  align-items:stretch;
}
.dashboard-overview-grid .time-clock-card{
  margin:0;
  min-height:190px;
  grid-template-columns:minmax(0,1fr) 250px;
  grid-template-areas:
    "clock-main clock-counter"
    "clock-actions clock-actions";
  align-content:center;
}
.dashboard-overview-grid .time-clock-main{grid-area:clock-main;}
.dashboard-overview-grid .time-clock-counter{grid-area:clock-counter;min-height:104px;}
.dashboard-overview-grid .time-clock-actions{
  grid-area:clock-actions;
  grid-template-columns:minmax(220px,auto) minmax(0,1fr) minmax(210px,auto);
  align-items:center;
}
.dashboard-overview-grid .time-clock-actions .btn{width:auto;}
.dashboard-overview-grid .time-clock-actions small{text-align:left;}
.dashboard-metrics-compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
  height:100%;
}
.dashboard-metrics-compact .metric-card{
  min-height:calc((100% - 16px)/2);
  padding:18px;
  grid-template-columns:46px 1fr;
}
.dashboard-metrics-compact .metric-card b{font-size:30px;}
.dashboard-ticket-center{
  max-width:none;
  margin:0;
}
.ticket-focus-card{padding:26px;}
.ticket-focus-header{grid-template-columns:minmax(0,1fr) 250px;}
.ticket-focus-metrics div{min-width:112px;}
.dashboard-main-grid{
  grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);
}
.dashboard-panel{min-height:285px;}
.dashboard-shortcuts-v2{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.dashboard-shortcuts-v2 a{
  min-height:104px;
  align-content:center;
}
@media(max-width:1280px){
  .dashboard-overview-grid{grid-template-columns:1fr;}
  .dashboard-metrics-compact{grid-template-columns:repeat(4,minmax(0,1fr));}
  .dashboard-overview-grid .time-clock-card{grid-template-columns:minmax(0,1fr) 240px 250px;grid-template-areas:"clock-main clock-counter clock-actions";}
  .dashboard-overview-grid .time-clock-actions{grid-template-columns:1fr;}
  .dashboard-overview-grid .time-clock-actions small{text-align:center;}
  .dashboard-shortcuts-v2{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
  .dashboard-hero-v2,.ticket-focus-header,.dashboard-main-grid{grid-template-columns:1fr;}
  .dashboard-overview-grid .time-clock-card{grid-template-columns:1fr;grid-template-areas:"clock-main" "clock-counter" "clock-actions";}
  .dashboard-metrics-compact,.dashboard-shortcuts-v2{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .dashboard-metrics-compact,.dashboard-shortcuts-v2{grid-template-columns:1fr;}
}


/* ===========================
   V4.12.20 · Normalización global de botones
   Corrige botones primarios dentro de .panel.pad y mejora lectura en tablas.
   =========================== */
.btn,
button{
  white-space:nowrap;
  line-height:1;
  text-align:center;
  text-decoration:none;
  user-select:none;
}
.btn.primary,
button.primary,
a.btn.primary,
.panel.pad a.btn.primary{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff !important;
}
.btn.danger,
button.danger,
a.btn.danger,
.panel.pad a.btn.danger{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff !important;
}
.btn:not(.primary):not(.danger),
.panel.pad a.btn:not(.primary):not(.danger){
  color:#101828;
}
.table-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.table-actions .btn.mini,
.table-actions button.btn.mini{
  min-width:86px;
  padding:0 12px;
}
.responsive-table{
  width:100%;
  overflow-x:auto;
}
.responsive-table table{
  min-width:820px;
}
td .btn.mini,
td button.btn.mini{
  min-height:32px;
  font-size:12px;
  font-weight:900;
}
.head > div:last-child,
.ticket-focus-actions,
.web-preview-callout,
.section-title-row{
  gap:10px;
}
.head > div:last-child{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
button.primary:not(.btn){
  color:#fff !important;
}
.inline-form .btn{
  margin:0;
}
@media(max-width:760px){
  .head > div:last-child{justify-content:flex-start;}
  .table-actions .btn.mini,
  .table-actions button.btn.mini{min-width:74px;}
}

/* ===========================
   V4.12.20 - Tickets interno/cliente: estructura visual profesional
   =========================== */
.client-ticket-page{
  max-width:1320px;
  margin:0 auto 48px;
  display:grid;
  gap:22px;
}
.client-ticket-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 176px;
  gap:26px;
  align-items:center;
  min-height:142px;
  padding:28px 30px;
  border:1px solid #dbe7f5;
  border-radius:26px;
  background:
    radial-gradient(circle at 92% 8%,rgba(22,119,255,.18),transparent 28%),
    linear-gradient(135deg,#ffffff 0%,#f7fbff 58%,#edf5ff 100%);
  box-shadow:0 18px 48px rgba(15,23,42,.07);
  overflow:hidden;
}
.client-ticket-hero:before{
  content:"";
  position:absolute;
  right:-46px;
  top:-76px;
  width:210px;
  height:210px;
  border-radius:999px;
  background:rgba(22,119,255,.08);
}
.client-ticket-hero > *{position:relative;z-index:1;}
.client-ticket-hero .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-bottom:10px;
  color:#175cd3;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  font-weight:950;
}
.client-ticket-hero h2{
  margin:0 0 8px;
  font-size:32px;
  line-height:1.08;
  letter-spacing:-.035em;
  color:#050b18;
  overflow-wrap:anywhere;
}
.client-ticket-hero p{
  margin:0;
  color:#536079;
  line-height:1.65;
  max-width:760px;
  font-size:15px;
}
.client-ticket-status-card{
  justify-self:end;
  width:160px;
  min-height:112px;
  border-radius:24px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:16px;
  color:#fff;
  background:linear-gradient(135deg,#0b3b7a,#1677ff);
  box-shadow:0 18px 42px rgba(22,119,255,.22);
}
.client-ticket-status-card strong{display:block;font-size:24px;line-height:1.05;font-weight:950;}
.client-ticket-status-card span{display:block;font-size:12px;font-weight:850;opacity:.9;margin-top:7px;}
.client-ticket-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);
  gap:22px;
  align-items:start;
}
.client-ticket-main,
.client-ticket-history{
  max-width:none;
  width:100%;
  margin:0;
  border:1px solid #dbe7f5;
  border-radius:26px;
  background:#fff;
  box-shadow:0 18px 48px rgba(15,23,42,.065);
}
.client-ticket-main{padding:22px;}
.client-ticket-history{padding:22px;position:sticky;top:86px;}
.client-ticket-main .section-title-row,
.client-ticket-history .section-title-row{
  align-items:flex-start;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:1px solid #edf2f7;
}
.client-ticket-main .section-title-row h2,
.client-ticket-history .section-title-row h2{
  margin:0 0 4px;
  font-size:23px;
  line-height:1.15;
  letter-spacing:-.025em;
}
.client-ticket-main .section-title-row small,
.client-ticket-history .section-title-row small{color:#667085;font-weight:800;line-height:1.45;}
.client-ticket-description{
  border:1px solid #dbe7f5;
  border-radius:18px;
  padding:18px;
  background:linear-gradient(180deg,#fbfdff 0%,#f8fbff 100%);
  margin-bottom:16px;
}
.client-ticket-description strong{
  display:block;
  margin-bottom:8px;
  font-size:12px;
  color:#475467;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.client-ticket-description p{margin:0;line-height:1.7;color:#182230;white-space:pre-wrap;overflow-wrap:anywhere;}
.client-ticket-meta-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.client-ticket-meta-grid div{
  min-height:72px;
  border:1px solid #dbe7f5;
  border-radius:17px;
  background:#fff;
  padding:14px;
  box-shadow:0 8px 20px rgba(15,23,42,.035);
}
.client-ticket-meta-grid span{display:block;color:#667085;font-size:12px;font-weight:900;margin-bottom:6px;}
.client-ticket-meta-grid strong{display:block;font-size:14px;color:#101828;line-height:1.35;overflow-wrap:anywhere;}
.client-reply-box{
  border:1px solid #dbe7f5;
  border-radius:22px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  padding:18px;
  box-shadow:0 10px 26px rgba(15,23,42,.04);
}
.client-reply-box .section-title-row.compact{
  margin:0 0 12px;
  padding:0 0 12px;
  border-bottom:1px solid #edf2f7;
}
.client-reply-box p{margin:0 0 14px;}
.client-reply-box label{display:block;font-weight:900;margin-bottom:7px;color:#101828;}
.client-reply-box textarea{min-height:168px;resize:vertical;}
.client-reply-box select,
.client-reply-box input,
.client-reply-box textarea{
  width:100%;
  border:1px solid #d2dce9;
  border-radius:15px;
  background:#fff;
  padding:12px 14px;
  outline:0;
}
.client-reply-box select:focus,
.client-reply-box input:focus,
.client-reply-box textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(22,119,255,.10);}
.client-reply-box button{margin-top:4px;min-width:180px;}
.client-history-list{display:grid;gap:12px;}
.client-history-item{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  padding:14px;
  border:1px solid #dbe7f5;
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fbfdff);
  box-shadow:0 8px 20px rgba(15,23,42,.035);
}
.client-history-item .history-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:#eef6ff;
  color:#175cd3;
  font-weight:950;
}
.client-history-item strong{display:block;font-size:14px;color:#101828;}
.client-history-item p{margin:5px 0 4px;color:#344054;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;}
.client-history-item small{color:#667085;font-weight:750;}
.history-headline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.mini-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:#eef4ff;border:1px solid #dbe7f5;color:#175cd3;font-size:11px;font-weight:900;white-space:nowrap;}
.internal-ticket-page{max-width:1320px;margin:0 auto 48px;}
.internal-ticket-grid{align-items:start;}
.internal-followup-box select,
.internal-followup-box input,
.internal-followup-box textarea{width:100%;}
.internal-history-item{align-items:flex-start;}
@media(max-width:1180px){
  .client-ticket-grid{grid-template-columns:1fr;}
  .client-ticket-history{position:relative;top:auto;}
  .client-ticket-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .client-ticket-page{gap:16px;}
  .client-ticket-hero{grid-template-columns:1fr;padding:20px;border-radius:22px;}
  .client-ticket-status-card{justify-self:start;width:100%;min-height:92px;}
  .client-ticket-meta-grid{grid-template-columns:1fr;}
  .client-ticket-main,.client-ticket-history{padding:16px;border-radius:22px;}
  .client-ticket-hero h2{font-size:27px;}
}

/* V4.12.20 · Tickets, chat cliente y documentos enviados */
.ticket-detail-shell-v2{
  width:min(1180px, calc(100vw - 360px));
  margin:0 auto 48px;
}
.ticket-detail-shell-v2 .client-ticket-page{display:flex; flex-direction:column; gap:22px;}
.ticket-detail-shell-v2 .client-ticket-hero{
  display:grid; grid-template-columns:minmax(0,1fr) 170px; align-items:center; gap:22px;
  padding:28px 32px; border:1px solid var(--line); background:linear-gradient(120deg,#fff 0%,#f8fbff 64%,#e9f2ff 100%);
  border-radius:26px;
}
.ticket-detail-shell-v2 .client-ticket-hero h2{margin:8px 0 8px; font-size:30px; letter-spacing:-.03em;}
.ticket-detail-shell-v2 .client-ticket-hero p{max-width:760px; margin:0; color:var(--muted); font-size:14px; line-height:1.55;}
.ticket-detail-shell-v2 .client-ticket-status-card{justify-self:end; width:154px; height:118px; border-radius:24px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:linear-gradient(135deg,#0d4fb4,#1f7aff); color:#fff; box-shadow:0 18px 40px rgba(30,107,220,.24);}
.ticket-detail-shell-v2 .client-ticket-status-card strong{font-size:22px;}
.ticket-detail-shell-v2 .client-ticket-status-card span{font-size:12px; font-weight:900; opacity:.9;}
.ticket-detail-shell-v2 .client-ticket-grid{display:grid; grid-template-columns:minmax(0,2.1fr) minmax(310px,.9fr); gap:22px; align-items:start;}
.ticket-detail-shell-v2 .client-ticket-main,.ticket-detail-shell-v2 .client-ticket-history{border-radius:24px; padding:26px;}
.ticket-detail-shell-v2 .section-title-row{padding-bottom:14px; border-bottom:1px solid var(--line); margin-bottom:16px;}
.ticket-detail-shell-v2 .client-ticket-description{border:1px solid var(--line); border-radius:18px; padding:18px; background:#fbfdff; margin-bottom:16px;}
.ticket-detail-shell-v2 .client-ticket-description strong{display:block; color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:12px; margin-bottom:10px;}
.ticket-detail-shell-v2 .client-ticket-description p{margin:0; line-height:1.55;}
.ticket-detail-shell-v2 .client-ticket-meta-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px;}
.ticket-detail-shell-v2 .client-ticket-meta-grid div{border:1px solid var(--line); border-radius:16px; padding:14px 16px; background:#fff; min-height:70px;}
.ticket-detail-shell-v2 .client-ticket-meta-grid span{display:block; color:var(--muted); font-size:12px; font-weight:900; margin-bottom:7px;}
.ticket-detail-shell-v2 .client-ticket-meta-grid strong{display:block; font-size:14px; line-height:1.3;}
.ticket-detail-shell-v2 .client-reply-box{border:1px solid var(--line); border-radius:20px; padding:18px; background:#fff; margin-top:12px;}
.ticket-detail-shell-v2 .client-reply-box p{margin:12px 0;}
.ticket-detail-shell-v2 .client-reply-box textarea{min-height:150px;}
.ticket-detail-shell-v2 .client-history-list{display:flex; flex-direction:column; gap:12px;}
.ticket-detail-shell-v2 .client-history-item{display:grid; grid-template-columns:42px 1fr; gap:12px; padding:16px; border:1px solid var(--line); border-radius:18px; background:#fbfdff;}
.ticket-detail-shell-v2 .history-icon{width:38px; height:38px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:#eef5ff;}
.ticket-detail-shell-v2 .history-headline{display:flex; justify-content:space-between; gap:10px; align-items:center;}
.ticket-detail-shell-v2 .mini-badge{display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:3px 9px; background:#eef5ff; color:#0d4fb4; font-weight:900; font-size:11px;}
.ticket-detail-shell-v2 .client-history-item p{margin:7px 0; line-height:1.45;}
.ticket-detail-shell-v2 .client-history-item small{color:var(--muted);}
.client-action-grid{margin-top:16px;}
.client-chat-card,.client-upload-card{min-height:190px;}
.client-upload-page{display:grid; grid-template-columns:minmax(0,1fr); gap:20px; max-width:1120px; margin:0 auto 48px;}
.form-grid-v2 p{margin:0 0 14px;}
.form-grid-v2 button{margin-top:8px;}
.chat-attachment{display:inline-flex; margin:8px 0; padding:7px 10px; border-radius:10px; background:#eef5ff; font-weight:900; text-decoration:none;}
.client-chat-shell{max-width:1180px; margin:0 auto;}
@media (max-width:1200px){
  .ticket-detail-shell-v2{width:min(100%, calc(100vw - 300px));}
  .ticket-detail-shell-v2 .client-ticket-grid{grid-template-columns:1fr;}
  .ticket-detail-shell-v2 .client-ticket-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .ticket-detail-shell-v2{width:100%;}
  .ticket-detail-shell-v2 .client-ticket-hero{grid-template-columns:1fr;}
  .ticket-detail-shell-v2 .client-ticket-status-card{justify-self:start;}
  .ticket-detail-shell-v2 .client-ticket-meta-grid{grid-template-columns:1fr;}
}


/* ===========================
   V4.12.20 - Tickets a ancho completo y historial inferior
   =========================== */
.ticket-detail-shell-v2{
  width:min(1320px, calc(100vw - 340px));
  max-width:1320px;
  margin:0 auto 54px;
}
.ticket-detail-shell-v2 .client-ticket-page{
  width:100%;
  display:grid;
  gap:22px;
}
.ticket-detail-shell-v2 .client-ticket-hero,
.ticket-detail-shell-v2 .client-ticket-main,
.ticket-detail-shell-v2 .client-ticket-history{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
.ticket-detail-shell-v2 .client-ticket-grid.ticket-detail-stack{
  display:grid;
  grid-template-columns:1fr !important;
  gap:22px;
  align-items:stretch;
}
.ticket-detail-shell-v2 .client-ticket-main{
  padding:28px 30px;
  border-radius:26px;
}
.ticket-detail-shell-v2 .client-ticket-history{
  position:relative !important;
  top:auto !important;
  padding:28px 30px;
  border-radius:26px;
}
.ticket-detail-shell-v2 .client-ticket-history .client-history-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.ticket-detail-shell-v2 .client-history-item{
  min-height:96px;
  align-items:start;
}
.ticket-detail-shell-v2 .client-reply-box{
  margin-top:18px;
}
.ticket-detail-shell-v2 .client-ticket-description{
  margin-bottom:18px;
}
.ticket-detail-shell-v2 .client-ticket-meta-grid{
  margin-bottom:20px;
}
@media(max-width:1200px){
  .ticket-detail-shell-v2{width:min(100%, calc(100vw - 292px));}
  .ticket-detail-shell-v2 .client-ticket-history .client-history-list{grid-template-columns:1fr;}
}
@media(max-width:820px){
  .ticket-detail-shell-v2{width:100%;}
  .ticket-detail-shell-v2 .client-ticket-main,
  .ticket-detail-shell-v2 .client-ticket-history{padding:18px;}
}


/* V4.12.20 · Aviso de actualización automática inteligente */
.auto-update-box {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9999;
  width: min(420px, calc(100vw - 32px));
  display: none;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 22px 60px rgba(15,23,42,.18);
  backdrop-filter: blur(10px);
}
.auto-update-box.show { display: flex; }
.auto-update-box div { flex: 1; min-width: 0; }
.auto-update-box strong { display: block; font-size: 13px; color: var(--ink); }
.auto-update-box span { display: block; margin-top: 2px; font-size: 12px; color: var(--muted); }
.auto-update-box .btn { white-space: nowrap; }
@media (max-width: 720px) {
  .auto-update-box { left: 12px; right: 12px; bottom: 12px; width: auto; flex-wrap: wrap; }
  .auto-update-box div { flex-basis: 100%; }
}


/* V4.12.21 · Márgenes internos coherentes en Tareas y Proyectos */
.app-section-panel .section-title-row{
  margin-bottom:16px;
}
.app-section-panel .responsive-table{
  border:1px solid var(--line);
  border-radius:18px;
  overflow:auto;
  background:#fff;
}
.app-section-panel table{
  margin:0;
}
.app-section-panel .table-empty{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:850;
  color:#475467;
}
.head .btn.primary{
  min-width:150px;
}

/* V4.12.22 - MedRod Writer / Sheets avanzado */
.office-app-shell{overflow:hidden;padding:0;border-radius:24px;max-width:1480px;margin:0 auto 28px;background:#fff;box-shadow:0 28px 70px rgba(15,23,42,.08)}
.office-app-header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 32px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fff,#eef6ff)}
.office-app-header h2{font-size:30px;margin:6px 0 4px}.office-app-header p{margin:0;color:var(--muted)}
.save-state{display:flex;align-items:center;gap:12px;white-space:nowrap}.save-state span{padding:10px 14px;border-radius:14px;background:#eef6ff;border:1px solid #d5e5fb;font-weight:850;color:#31506d}
.office-ribbon{display:flex;flex-wrap:wrap;gap:10px;padding:14px 22px;border-bottom:1px solid var(--border);background:#f8fbff}.ribbon-group{display:flex;gap:6px;align-items:center;padding:6px;background:#fff;border:1px solid var(--border);border-radius:14px}.ribbon-group button,.ribbon-group select,.ribbon-group input[type=color],.file-btn{height:34px;border:1px solid #d9e4f2;border-radius:10px;background:#fff;padding:0 10px;font-weight:850;color:#172033}.ribbon-group button:hover,.file-btn:hover{background:#eff6ff;border-color:#bcd4f3}.ribbon-group input[type=color]{width:42px;padding:2px}.sheet-title-input{min-width:280px;height:34px;border:1px solid #d9e4f2;border-radius:10px;padding:0 12px;font-weight:900}.office-meta-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:18px 22px;border-bottom:1px solid var(--border);background:#fbfdff}.office-meta-grid label{font-weight:900;color:#26384f;font-size:12px}.office-meta-grid input,.office-meta-grid select{width:100%;margin-top:6px}.check-line{display:flex!important;align-items:center;gap:10px;padding:14px 12px;border:1px solid #dbe6f5;border-radius:14px;background:#fff}.check-line input{width:auto!important;margin:0!important}.writer-stage{display:grid;grid-template-columns:280px 1fr;gap:28px;padding:28px;background:#eef3f9}.office-side-panel{background:#fff;border:1px solid var(--border);border-radius:20px;padding:18px;align-self:start;box-shadow:0 16px 40px rgba(15,23,42,.06)}.office-side-panel h3{font-size:16px;margin:4px 0 10px}.version-list{display:grid;gap:8px}.version-list div,.sheet-history span{display:block;border:1px solid #dbe6f5;border-radius:12px;padding:9px 10px;background:#f8fbff}.version-list span{display:block;color:var(--muted);font-size:12px}.advanced-writer{width:min(920px,100%);min-height:920px;margin:0 auto;background:#fff;border:1px solid #d5dfec;border-radius:4px;padding:58px 64px;box-shadow:0 28px 70px rgba(15,23,42,.12);line-height:1.55;font-size:15px;outline:none}.advanced-writer:focus{box-shadow:0 0 0 4px rgba(29,119,242,.12),0 28px 70px rgba(15,23,42,.12)}.writer-table{border-collapse:collapse;width:100%;margin:12px 0}.writer-table td{border:1px solid #cbd8e8;padding:8px}.formula-bar{display:flex;gap:10px;align-items:center;padding:12px 22px;background:#fff;border-bottom:1px solid var(--border)}.formula-bar span{min-width:64px;text-align:center;border:1px solid #d9e4f2;border-radius:10px;padding:9px 10px;font-weight:950;background:#f8fbff}.formula-bar input{flex:1;border:1px solid #d9e4f2;border-radius:10px;padding:10px 12px}.advanced-sheet-wrap{max-height:720px;overflow:auto;background:#fff;padding:0;border-top:1px solid var(--border)}.advanced-sheet-table{min-width:1100px}.advanced-sheet-table th{position:sticky;top:0;z-index:2;background:#eaf2fb}.advanced-sheet-table tbody th{position:sticky;left:0;z-index:1;background:#edf4fc}.advanced-sheet-table td input{min-width:150px;height:34px;border:0;background:transparent;padding:6px 8px}.advanced-sheet-table td{background:#fff}.advanced-sheet-table td:focus-within{outline:2px solid #1d77f2;outline-offset:-2px;background:#f8fbff}.cell-bold{font-weight:900}.cell-highlight{background:#fff5bf!important}.sheet-history{padding:16px 22px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sheet-history h3{width:100%;margin:0 0 4px;font-size:16px}
@media(max-width:1100px){.office-meta-grid{grid-template-columns:1fr 1fr}.writer-stage{grid-template-columns:1fr}.advanced-writer{padding:32px;min-height:650px}.office-app-header{flex-direction:column;align-items:flex-start}.save-state{width:100%;justify-content:space-between}}

/* V4.12.23 · MedRod Calendar avanzado */
.calendar-shell{display:flex;flex-direction:column;gap:18px;max-width:1480px;margin:0 auto 40px;}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;}
.calendar-toolbar h2{margin:4px 0;font-size:28px;}
.calendar-toolbar p{margin:0;color:var(--muted);}
.calendar-view-tabs{display:flex;gap:8px;flex-wrap:wrap;}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start;}
.calendar-main{overflow:hidden;}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;background:#f8fbff;overflow:hidden;}
.calendar-weekdays span{padding:12px;text-align:center;font-weight:900;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.08em;}
.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line);border-radius:0 0 18px 18px;overflow:hidden;background:#fff;}
.calendar-day{min-height:145px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:8px;}
.calendar-day.today{background:linear-gradient(180deg,#eff6ff,#ffffff);box-shadow:inset 0 0 0 2px rgba(37,99,235,.16);}
.calendar-day.muted-day{background:#f8fafc;color:#94a3b8;}
.calendar-day header{display:flex;justify-content:space-between;align-items:center;}
.calendar-day header strong{font-size:16px;}
.calendar-day header small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800;}
.calendar-day-events{display:flex;flex-direction:column;gap:5px;}
.calendar-chip{display:block;border-radius:9px;padding:6px 7px;font-size:11px;font-weight:850;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid rgba(15,23,42,.08);background:#eef6ff;color:#0f3a82;}
.calendar-chip span{font-weight:950;margin-right:4px;}
.calendar-more{font-size:11px;color:#64748b;font-weight:800;}
.calendar-empty-dot{font-size:12px;color:#cbd5e1;}
.event-meeting,.calendar-chip.event-meeting,.calendar-agenda-event.event-meeting,.calendar-upcoming-item.event-meeting{background:#eaf3ff;color:#0f4fa8;border-color:#bfdbfe;}
.event-task,.calendar-chip.event-task,.calendar-agenda-event.event-task,.calendar-upcoming-item.event-task{background:#ecfdf5;color:#166534;border-color:#bbf7d0;}
.event-web_project,.calendar-chip.event-web_project,.calendar-agenda-event.event-web_project,.calendar-upcoming-item.event-web_project{background:#fff7ed;color:#9a3412;border-color:#fed7aa;}
.event-project,.calendar-chip.event-project,.calendar-agenda-event.event-project,.calendar-upcoming-item.event-project{background:#f0f9ff;color:#075985;border-color:#bae6fd;}
.event-ticket,.calendar-chip.event-ticket,.calendar-agenda-event.event-ticket,.calendar-upcoming-item.event-ticket{background:#fff1f2;color:#9f1239;border-color:#fecdd3;}
.event-urgent,.calendar-chip.event-urgent,.calendar-agenda-event.event-urgent,.calendar-upcoming-item.event-urgent,.calendar-reminder.event-urgent{background:#fef2f2;color:#991b1b;border-color:#fecaca;}
.event-client,.calendar-chip.event-client,.calendar-agenda-event.event-client,.calendar-upcoming-item.event-client{background:#f5f3ff;color:#5b21b6;border-color:#ddd6fe;}
.event-time,.calendar-chip.event-time,.calendar-agenda-event.event-time,.calendar-upcoming-item.event-time{background:#f8fafc;color:#334155;border-color:#e2e8f0;}
.calendar-side{display:flex;flex-direction:column;gap:18px;}
.calendar-side-card h2{margin:0 0 4px;font-size:19px;}
.calendar-side-card p{margin:0 0 12px;color:var(--muted);}
.calendar-upcoming-list{display:flex;flex-direction:column;gap:8px;}
.calendar-upcoming-item,.calendar-reminder{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#f8fafc;}
.calendar-upcoming-item strong,.calendar-reminder strong{font-size:13px;}
.calendar-upcoming-item small,.calendar-reminder small{color:#64748b;font-weight:700;}
.calendar-upcoming-item a{font-size:12px;font-weight:900;color:var(--primary);text-decoration:none;margin-top:4px;}
.calendar-legend{display:grid;gap:8px;}
.calendar-legend span{display:flex;align-items:center;gap:8px;font-weight:800;color:#334155;}
.calendar-legend i{width:14px;height:14px;border-radius:5px;display:inline-block;border:1px solid var(--line);}
.calendar-agenda-list{display:flex;flex-direction:column;gap:14px;}
.calendar-agenda-day{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px;}
.calendar-agenda-day h3{margin:0 0 12px;font-size:18px;}
.calendar-agenda-event{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:8px;background:#f8fafc;}
.calendar-agenda-event div{display:flex;flex-direction:column;gap:3px;}
.calendar-agenda-event div strong{font-size:12px;color:#64748b;}
.calendar-agenda-event div span{font-size:15px;font-weight:900;}
.calendar-agenda-event div small{font-size:12px;color:#64748b;font-weight:700;}
.empty-state-soft{border:1px dashed var(--line);border-radius:14px;padding:14px;text-align:center;color:#64748b;font-weight:800;background:#f8fafc;}
.dashboard-calendar-card .ticket-focus-item{cursor:pointer;}
.client-calendar-strip{margin-top:18px;}
.client-calendar-list{display:grid;gap:10px;}
.client-calendar-event{border:1px solid var(--line);border-radius:14px;padding:12px;background:#f8fafc;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.client-calendar-event strong{display:block;font-size:13px;}
.client-calendar-event small{color:#64748b;font-weight:700;}
@media(max-width:1100px){.calendar-layout{grid-template-columns:1fr}.calendar-month-grid,.calendar-weekdays{font-size:12px}.calendar-day{min-height:120px}.calendar-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.calendar-month-grid,.calendar-weekdays{grid-template-columns:1fr}.calendar-weekdays{display:none}.calendar-day{min-height:auto}.calendar-day.muted-day{display:none}.calendar-agenda-event{align-items:flex-start;flex-direction:column}}

/* V4.12.24 - Calendario adaptado a vista normal 100% */
.calendar-shell{
  width:100%;
  max-width:none;
  margin:0 0 48px;
  gap:22px;
}
.calendar-shell .calendar-toolbar{
  width:100%;
  max-width:none;
  margin:0;
  padding:28px 32px;
  border-radius:24px;
}
.calendar-shell .calendar-toolbar h2{
  font-size:32px;
  line-height:1.05;
}
.calendar-view-tabs .btn{
  min-width:72px;
}
.calendar-layout{
  width:100%;
  max-width:none;
  grid-template-columns:minmax(780px,1fr) 320px;
  gap:24px;
  align-items:start;
}
.calendar-main.panel.pad{
  max-width:none;
  width:100%;
  margin:0;
  padding:24px;
  border-radius:24px;
}
.calendar-side{
  width:100%;
  gap:22px;
}
.calendar-side .panel.pad{
  width:100%;
  max-width:none;
  margin:0;
  padding:22px;
  border-radius:22px;
}
.calendar-weekdays{
  border-radius:18px 18px 0 0;
}
.calendar-weekdays span{
  padding:14px 10px;
  font-size:13px;
}
.calendar-month-grid{
  width:100%;
  min-width:0;
  border-radius:0 0 18px 18px;
}
.calendar-day{
  min-height:168px;
  padding:13px;
  gap:10px;
}
.calendar-day header strong{
  font-size:18px;
}
.calendar-day header small{
  font-size:11px;
}
.calendar-chip{
  min-height:26px;
  padding:7px 8px;
  font-size:11px;
}
.calendar-upcoming-item,
.calendar-reminder{
  padding:12px 14px;
}
@media(max-width:1350px){
  .calendar-layout{grid-template-columns:1fr 300px;gap:18px;}
  .calendar-day{min-height:145px;padding:10px;}
}
@media(max-width:1180px){
  .calendar-layout{grid-template-columns:1fr;}
  .calendar-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
}
@media(max-width:900px){
  .calendar-shell .calendar-toolbar{align-items:flex-start;flex-direction:column;padding:22px;}
  .calendar-side{grid-template-columns:1fr;}
  .calendar-day{min-height:120px;}
}
@media(max-width:760px){
  .calendar-month-grid,.calendar-weekdays{grid-template-columns:1fr;}
  .calendar-weekdays{display:none;}
  .calendar-day{min-height:auto;}
  .calendar-day.muted-day{display:none;}
  .calendar-agenda-event{align-items:flex-start;flex-direction:column;}
}

/* V4.12.26 CRM Comercial avanzado */
.crm-page, .crm-detail-page{max-width:1680px;margin:0 auto;padding:0 16px 48px;}
.split-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px;}
.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.crm-metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin:18px 0;}
.crm-toolbar-panel{padding:16px 18px;margin:0 0 18px;border-radius:22px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);}
.crm-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto auto;gap:10px;align-items:center;}
.crm-filters input,.crm-filters select{width:100%;border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:#fff;font-weight:700;color:var(--text);}
.crm-view-switch{display:flex;gap:10px;margin-top:12px;justify-content:flex-end;}
.crm-kanban-wrap{display:grid;grid-template-columns:repeat(9,minmax(220px,1fr));gap:14px;overflow-x:auto;padding:4px 0 20px;margin-bottom:22px;}
.crm-kanban-column{min-width:220px;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-soft);padding:12px;}
.crm-kanban-head{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 12px;border-bottom:1px solid var(--border);font-weight:950;color:var(--text);}
.crm-kanban-head span{background:#eef5ff;color:var(--primary);border:1px solid #d7e8ff;border-radius:999px;padding:3px 9px;font-size:12px;}
.crm-kanban-list{display:flex;flex-direction:column;gap:10px;padding-top:12px;}
.crm-card{display:block;text-decoration:none;color:var(--text);background:#f8fbff;border:1px solid #d9e6f7;border-radius:16px;padding:12px;transition:.15s ease;}
.crm-card:hover{transform:translateY(-2px);border-color:#b7d3f7;box-shadow:0 10px 24px rgba(15,23,42,.08);}
.crm-card strong{display:block;font-size:14px;margin-bottom:4px;}
.crm-card small,.crm-card em,.crm-card span,.crm-card b{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:4px;}
.crm-card span{color:#0f4ea8;font-weight:850;}
.crm-card b{color:#b45309;}
.crm-empty-column{border:1px dashed var(--border);border-radius:14px;padding:16px;text-align:center;color:var(--muted);font-weight:800;}
.crm-table-panel{margin-bottom:22px;}
.crm-table td{vertical-align:middle;}
.crm-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:#eef5ff;border:1px solid #d7e8ff;color:#0f4ea8;font-weight:950;font-size:12px;white-space:nowrap;}
.crm-status-pill.status_ganado,.crm-status-pill.status-ganado{background:#ecfdf5;color:#047857;border-color:#bbf7d0;}
.crm-status-pill.status_perdido,.crm-status-pill.status-perdido{background:#fef2f2;color:#b91c1c;border-color:#fecaca;}
.crm-status-pill.status_negociacion,.crm-status-pill.status-negociacion{background:#fff7ed;color:#c2410c;border-color:#fed7aa;}
.crm-hero-card{margin-bottom:18px;}
.crm-actions-row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0;align-items:center;}
.crm-actions-row form{margin:0;}
.crm-followup-box{margin-top:18px;}
.crm-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;}
.timeline-list{display:flex;flex-direction:column;gap:12px;}
.timeline-card{display:flex;gap:12px;background:#f8fbff;border:1px solid #d9e6f7;border-radius:16px;padding:12px;}
.timeline-card>span{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#eef5ff;border:1px solid #d7e8ff;flex:0 0 auto;}
.timeline-card strong{display:block;font-size:14px;margin-bottom:4px;}
.timeline-card p{margin:0 0 5px;color:var(--text);line-height:1.45;}
.timeline-card small{color:var(--muted);font-weight:800;}
.dashboard-crm-card .ticket-focus-card{border-color:#d9e6f7;}
@media(max-width:1250px){.crm-metrics-grid{grid-template-columns:repeat(2,1fr)}.crm-filters{grid-template-columns:1fr 1fr}.crm-related-grid{grid-template-columns:1fr}.split-head{align-items:flex-start;flex-direction:column}.crm-kanban-wrap{grid-template-columns:repeat(4,minmax(220px,1fr));}}
@media(max-width:720px){.crm-metrics-grid,.crm-filters{grid-template-columns:1fr}.crm-view-switch{justify-content:flex-start;flex-wrap:wrap}.crm-page,.crm-detail-page{padding:0 8px 32px}.crm-kanban-wrap{grid-template-columns:1fr}.crm-kanban-column{min-width:260px}}

/* V4.12.26 - CRM visual profesional */
.crm-page-modern{max-width:min(1760px,calc(100vw - 36px));padding:0 18px 56px;}
.crm-overview-card{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(135deg,#fff 0%,#f6faff 65%,#eaf3ff 100%);border:1px solid #dbe8f8;border-radius:26px;padding:24px 28px;margin:0 0 18px;box-shadow:var(--shadow);}
.crm-overview-card h2{font-size:28px;margin:6px 0 6px;letter-spacing:-.03em;color:var(--text);}
.crm-overview-card p{margin:0;color:var(--muted);font-weight:650;max-width:780px;line-height:1.5;}
.crm-overview-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.crm-metrics-modern{grid-template-columns:repeat(5,minmax(170px,1fr));gap:16px;margin:18px 0;}
.crm-metric-card{min-height:104px;padding:20px 22px;display:flex;align-items:center;gap:16px;}
.crm-metric-card>span{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:#f1f7ff;border:1px solid #d9e9ff;font-size:22px;}
.crm-metric-card b{font-size:30px;line-height:1;}
.crm-metric-card small{display:block;margin-top:7px;color:var(--muted);font-weight:900;}
.crm-toolbar-modern,.crm-content-panel{padding:22px 24px;border-radius:24px;margin-bottom:20px;}
.crm-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);}
.crm-section-title h2{margin:0;font-size:22px;letter-spacing:-.02em;}
.crm-section-title p{margin:5px 0 0;color:var(--muted);font-weight:650;}
.crm-filters-modern{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:14px;align-items:end;}
.crm-filters-modern label{display:flex;flex-direction:column;gap:7px;font-weight:900;color:var(--text);}
.crm-filters-modern label small{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px;}
.crm-filters-modern input,.crm-filters-modern select{height:46px;border-radius:14px;padding:0 14px;}
.crm-filter-button{height:46px;min-width:120px;}
.crm-funnel-panel{overflow:hidden;}
.crm-kanban-modern{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px;overflow:visible;padding:2px;margin:0;}
.crm-kanban-modern .crm-kanban-column{min-width:0;border-radius:19px;padding:14px;background:linear-gradient(180deg,#fff 0%,#f9fbff 100%);}
.crm-kanban-modern .crm-kanban-head{font-size:14px;padding:2px 2px 12px;}
.crm-kanban-modern .crm-kanban-head span{min-width:28px;text-align:center;}
.crm-kanban-modern .crm-card{padding:14px;border-radius:15px;background:#fff;box-shadow:0 4px 14px rgba(15,23,42,.04);}
.crm-kanban-modern .crm-empty-column,.crm-empty-state{border:1px dashed #d7e3f3;border-radius:16px;background:#fbfdff;padding:20px;text-align:center;color:var(--muted);font-weight:900;}
.crm-table-scroll{border:1px solid var(--border);border-radius:18px;overflow:auto;background:#fff;}
.crm-table-scroll table{margin:0;}
.crm-followups-panel{max-width:100%;}
.crm-followups-list{display:grid;gap:10px;}
.crm-followup-item{border:1px solid #dbe8f8;background:#fff;border-radius:16px;padding:14px 16px;}
@media(max-width:1350px){.crm-overview-card{align-items:flex-start;flex-direction:column}.crm-overview-actions{justify-content:flex-start}.crm-metrics-modern{grid-template-columns:repeat(3,1fr)}.crm-filters-modern{grid-template-columns:1fr 1fr}.crm-filter-button{width:100%;}}
@media(max-width:760px){.crm-page-modern{max-width:100%;padding:0 10px 40px}.crm-metrics-modern,.crm-filters-modern{grid-template-columns:1fr}.crm-overview-card,.crm-toolbar-modern,.crm-content-panel{padding:18px}.crm-overview-card h2{font-size:22px}.crm-section-title{flex-direction:column}.crm-kanban-modern{grid-template-columns:1fr}.crm-filter-button{width:100%;}}

/* V4.12.28 · Contratos visual refinado */
.contracts-page{display:flex;flex-direction:column;gap:24px;width:min(100%,1480px);margin:0 auto;padding-bottom:40px}.contracts-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(110deg,#fff 0%,#fff 58%,#eaf3ff 100%)}.contract-status-orb{width:120px;height:120px;border-radius:34px;background:linear-gradient(135deg,#1d4ed8,#0f6fff);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 18px 34px rgba(29,78,216,.22)}.contract-status-orb strong{font-size:30px;line-height:1}.contract-status-orb span{font-size:12px;font-weight:900;margin-top:8px}.contracts-metrics{grid-template-columns:repeat(5,minmax(140px,1fr))}.contract-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto auto auto;gap:12px;align-items:center}.view-switch{display:flex;gap:8px;justify-content:flex-end}.contracts-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.contracts-side{display:flex;flex-direction:column;gap:18px}.contract-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.contract-card{border:1px solid var(--border);background:#fff;border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 28px rgba(15,23,42,.05)}.contract-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.contract-card-head strong{font-size:16px}.contract-card-head small{display:block;margin-top:4px;color:var(--muted)}.contract-card p{color:var(--muted);line-height:1.5;margin:0}.contract-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.contract-meta-grid span{border:1px solid var(--border);border-radius:14px;background:#f8fbff;padding:10px;font-size:13px}.contract-meta-grid b{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.contract-card-actions,.contract-files-row{display:flex;flex-wrap:wrap;gap:10px}.contract-detail-page{max-width:1400px}.contract-section{overflow:hidden}.contract-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.description-box{border:1px solid var(--border);border-radius:16px;background:#f8fbff;margin-top:16px;padding:14px}.description-box p{margin:8px 0 0;color:var(--muted)}.stacked-form{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.stacked-form p{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}.contract-history .timeline-item p{margin:6px 0 0;color:var(--muted)}.quick-actions-column{display:flex;flex-direction:column;gap:10px;margin-top:14px}.status-draft{background:#f1f5f9;color:#334155}.status-review{background:#fff7ed;color:#9a3412}.status-sent{background:#eff6ff;color:#1d4ed8}.status-accepted{background:#ecfdf5;color:#047857}.status-signed{background:#e0f2fe;color:#0369a1}.status-active{background:#dcfce7;color:#166534}.status-expired{background:#fee2e2;color:#991b1b}.status-cancelled{background:#fee2e2;color:#991b1b}.status-archived{background:#f3f4f6;color:#374151}.client-contracts-strip{width:100%}
@media(max-width:1100px){.contracts-layout,.contract-detail-grid{grid-template-columns:1fr}.contract-filters{grid-template-columns:1fr 1fr}.view-switch{grid-column:1/-1;justify-content:flex-start}.contracts-metrics{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.contracts-hero{flex-direction:column;align-items:flex-start}.contract-status-orb{width:100%;height:auto;min-height:96px}.contract-filters,.contract-meta-grid,.detail-grid{grid-template-columns:1fr}.contracts-metrics{grid-template-columns:1fr}}


/* V4.12.28 · Contratos visual refinado */
.contracts-page-modern{width:min(100%,1680px);padding:0 18px 48px;gap:18px}
.contracts-overview-card{display:grid;grid-template-columns:minmax(0,1.3fr) auto auto;align-items:center;gap:20px;padding:24px 26px;border-radius:28px;background:linear-gradient(135deg,#ffffff 0%,#f7fbff 68%,#ebf3ff 100%);border:1px solid #dbe7f8;box-shadow:var(--shadow)}
.contracts-overview-card h2{margin:6px 0 8px;font-size:32px;letter-spacing:-.03em}
.contracts-overview-card p{margin:0;max-width:780px;color:var(--muted);font-weight:650;line-height:1.55}
.contracts-overview-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.contract-status-orb-large{width:126px;height:126px;border-radius:36px}
.contracts-metrics-modern{grid-template-columns:repeat(5,minmax(170px,1fr));gap:16px;margin:0}
.contract-metric-card{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:24px;box-shadow:var(--shadow-soft);background:#fff}
.contract-metric-card>span{width:44px;height:44px;display:grid;place-items:center;border-radius:15px;background:#f1f7ff;border:1px solid #d9e9ff;font-size:20px}
.contract-metric-card b{font-size:30px;line-height:1;color:var(--text)}
.contract-metric-card small{display:block;margin-top:6px;color:var(--muted);font-weight:900}
.contracts-toolbar-modern{padding:22px 24px;border-radius:26px;display:flex;flex-direction:column;gap:16px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow)}
.contracts-toolbar-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.contracts-toolbar-head h3{margin:0;font-size:22px;letter-spacing:-.02em}
.contracts-toolbar-head p{margin:6px 0 0;color:var(--muted);font-weight:650}
.contract-filters-modern{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;align-items:end}
.contract-filters-modern label{display:flex;flex-direction:column;gap:7px;font-weight:900;color:var(--text)}
.contract-filters-modern label small{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px}
.contract-filters-modern input,.contract-filters-modern select{height:46px;border:1px solid var(--border);border-radius:14px;padding:0 14px;background:#fff;font-weight:700;color:var(--text)}
.contract-filter-actions{display:flex;gap:10px;flex-wrap:wrap}
.contract-filter-button{height:46px;min-width:118px;display:inline-flex;align-items:center;justify-content:center}
.contract-view-switch{justify-content:flex-end}
.contracts-layout-modern{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}
.contracts-main-panel{padding:22px 24px;border-radius:28px;box-shadow:var(--shadow);background:#fff;border:1px solid var(--border)}
.contracts-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:18px}
.contracts-section-title h2{margin:5px 0 0;font-size:24px;letter-spacing:-.025em}
.contracts-section-title p{margin:6px 0 0;color:var(--muted);font-weight:650}
.contract-table-scroll{border:1px solid var(--border);border-radius:18px;overflow:auto;background:#fff}
.contract-table-scroll table{margin:0}
.contract-card-grid-modern{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.contract-card-modern{padding:20px;border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);box-shadow:0 12px 28px rgba(15,23,42,.05)}
.contract-card-modern .contract-card-head strong{font-size:17px}
.contract-empty-modern{grid-column:1/-1;padding:28px}
.contracts-side-modern{display:flex;flex-direction:column;gap:18px}
.contracts-side-panel{padding:20px 20px 18px;border-radius:24px;box-shadow:var(--shadow-soft);background:#fff;border:1px solid var(--border)}
.contracts-side-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.contracts-side-title h2{margin:0;font-size:18px}
.contracts-side-title small{color:var(--muted);font-weight:700}
@media(max-width:1400px){.contracts-overview-card{grid-template-columns:1fr}.contracts-overview-actions{justify-content:flex-start}.contracts-metrics-modern{grid-template-columns:repeat(3,1fr)}.contracts-layout-modern{grid-template-columns:1fr}.contract-filters-modern{grid-template-columns:1fr 1fr}.contract-filter-actions{grid-column:1/-1}}
@media(max-width:760px){.contracts-page-modern{padding:0 10px 34px}.contracts-overview-card,.contracts-toolbar-modern,.contracts-main-panel,.contracts-side-panel{padding:18px}.contracts-overview-card h2{font-size:24px}.contracts-metrics-modern,.contract-filters-modern,.contract-card-grid-modern{grid-template-columns:1fr}.contract-view-switch,.contract-filter-actions{justify-content:flex-start}.contracts-toolbar-head{flex-direction:column}.contract-filter-button{width:100%}}



/* V4.12.29 · Contratos rediseño real a ancho completo */
.contracts-dashboard-page{
  width:min(100%,1540px);
  margin:0 auto;
  padding:0 clamp(10px,1.6vw,24px) 56px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.contracts-dashboard-hero{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:22px;
  padding:28px 30px;
  border:1px solid #dbe7f8;
  border-radius:30px;
  background:linear-gradient(135deg,#fff 0%,#fff 52%,#eef6ff 100%);
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.contracts-hero-copy h2{
  margin:8px 0 8px;
  font-size:clamp(26px,2vw,36px);
  letter-spacing:-.04em;
}
.contracts-hero-copy p{
  margin:0;
  max-width:900px;
  color:var(--muted);
  font-weight:700;
  line-height:1.55;
}
.contracts-hero-tags{
  margin-top:16px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.contracts-hero-tags span{
  border:1px solid #d9e8ff;
  background:#f3f8ff;
  color:#1d4ed8;
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  font-weight:900;
}
.contracts-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.contracts-hero-counter{
  width:132px;
  height:132px;
  border-radius:38px;
  background:linear-gradient(135deg,#1d4ed8,#0f6fff);
  color:#fff;
  display:grid;
  place-items:center;
  text-align:center;
  box-shadow:0 20px 36px rgba(29,78,216,.24);
}
.contracts-hero-counter strong{
  display:block;
  font-size:36px;
  line-height:1;
}
.contracts-hero-counter span{
  display:block;
  margin-top:8px;
  font-size:12px;
  font-weight:900;
}
.contracts-kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.contracts-kpi-card{
  min-height:118px;
  padding:20px;
  border:1px solid var(--border);
  border-radius:26px;
  background:#fff;
  box-shadow:0 14px 32px rgba(15,23,42,.055);
  display:flex;
  align-items:center;
  gap:16px;
  position:relative;
  overflow:hidden;
}
.contracts-kpi-card:after{
  content:"";
  position:absolute;
  top:-35px;
  right:-32px;
  width:115px;
  height:115px;
  border-radius:999px;
  background:#edf5ff;
}
.contracts-kpi-card .kpi-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:#f3f8ff;
  border:1px solid #d9e8ff;
  font-size:22px;
  position:relative;
  z-index:1;
}
.contracts-kpi-card strong{
  display:block;
  font-size:34px;
  letter-spacing:-.04em;
  line-height:1;
  position:relative;
  z-index:1;
}
.contracts-kpi-card span{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-weight:900;
  position:relative;
  z-index:1;
}
.contracts-filter-board{
  padding:24px 26px;
  border:1px solid var(--border);
  border-radius:28px;
  background:#fff;
  box-shadow:0 16px 42px rgba(15,23,42,.065);
}
.contracts-filter-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding-bottom:16px;
  margin-bottom:18px;
  border-bottom:1px solid var(--border);
}
.contracts-filter-title h3{
  margin:6px 0 6px;
  font-size:24px;
  letter-spacing:-.03em;
}
.contracts-filter-title p{
  margin:0;
  color:var(--muted);
  font-weight:700;
}
.contracts-view-toggle{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.contracts-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px,2fr) minmax(190px,1fr) minmax(220px,1fr) auto;
  align-items:end;
  gap:14px;
}
.contracts-filter-grid label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-weight:900;
}
.contracts-filter-grid small{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:10px;
  color:var(--muted);
}
.contracts-filter-grid input,
.contracts-filter-grid select{
  height:48px;
  border:1px solid var(--border);
  border-radius:15px;
  background:#fff;
  padding:0 14px;
  font-weight:800;
  color:var(--text);
}
.contracts-filter-buttons{
  display:flex;
  gap:10px;
}
.contracts-filter-buttons .btn{
  height:48px;
  min-width:118px;
  justify-content:center;
}
.contracts-workspace-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:22px;
  align-items:start;
}
.contracts-workspace-main,
.contracts-side-card{
  border:1px solid var(--border);
  border-radius:30px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.contracts-workspace-main{
  padding:24px 26px;
  min-height:360px;
}
.contracts-card-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:16px;
  border-bottom:1px solid var(--border);
  margin-bottom:18px;
}
.contracts-card-header h2{
  margin:6px 0 6px;
  font-size:26px;
  letter-spacing:-.035em;
}
.contracts-card-header p{
  margin:0;
  color:var(--muted);
  font-weight:700;
}
.contracts-card-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
  gap:18px;
}
.contracts-item-card{
  border:1px solid #dbe7f8;
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:14px;
  box-shadow:0 12px 28px rgba(15,23,42,.045);
}
.contracts-item-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.contracts-item-top strong{
  font-size:17px;
}
.contracts-item-top small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-weight:800;
}
.contracts-item-card p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
  font-weight:650;
}
.contracts-item-data{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.contracts-item-data span{
  border:1px solid var(--border);
  border-radius:16px;
  background:#f8fbff;
  padding:11px 12px;
  font-size:13px;
  font-weight:800;
}
.contracts-item-data b{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.contracts-item-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:2px;
}
.contracts-table-wrap{
  border:1px solid var(--border);
  border-radius:20px;
  overflow:auto;
}
.contracts-table-wrap table{
  margin:0;
  width:100%;
}
.contracts-workspace-side{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.contracts-side-card{
  padding:22px;
}
.contracts-side-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:14px;
  border-bottom:1px solid var(--border);
  margin-bottom:16px;
}
.contracts-side-head h2{
  margin:0;
  font-size:22px;
  letter-spacing:-.02em;
}
.contracts-side-head small{
  color:var(--muted);
  font-weight:800;
  white-space:nowrap;
}
.contracts-side-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.contracts-side-item{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fbfdff;
}
.contracts-side-item>span{
  width:36px;
  height:36px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#f3f8ff;
  border:1px solid #d9e8ff;
}
.contracts-side-item strong{
  display:block;
  font-size:14px;
}
.contracts-side-item small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:700;
}
.contracts-action-column{
  display:grid;
  gap:10px;
}
.contracts-action-column .btn{
  justify-content:center;
  width:100%;
  min-height:44px;
}
.contracts-empty-state{
  border:1px dashed #d2def0;
  border-radius:18px;
  background:#fbfdff;
  color:var(--muted);
  font-weight:900;
  text-align:center;
  padding:20px;
}
.contracts-empty-big{
  min-height:150px;
  display:grid;
  place-items:center;
}
@media(max-width:1280px){
  .contracts-workspace-grid{grid-template-columns:1fr}
  .contracts-workspace-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:980px){
  .contracts-dashboard-hero{grid-template-columns:1fr}
  .contracts-hero-actions{justify-content:flex-start}
  .contracts-hero-counter{width:100%;height:auto;min-height:92px;border-radius:24px}
  .contracts-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contracts-filter-grid{grid-template-columns:1fr 1fr}
  .contracts-filter-buttons{grid-column:1/-1}
  .contracts-filter-buttons .btn{flex:1}
}
@media(max-width:720px){
  .contracts-dashboard-page{padding:0 8px 40px}
  .contracts-filter-title{flex-direction:column}
  .contracts-view-toggle{justify-content:flex-start}
  .contracts-kpi-grid,
  .contracts-filter-grid,
  .contracts-workspace-side,
  .contracts-item-data{grid-template-columns:1fr}
  .contracts-dashboard-hero,
  .contracts-filter-board,
  .contracts-workspace-main,
  .contracts-side-card{padding:18px;border-radius:22px}
}



/* V4.12.30 · Facturación avanzada */
.billing-dashboard-page{
  width:min(100%,1540px);
  margin:0 auto;
  padding:0 clamp(10px,1.6vw,24px) 56px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.billing-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:22px;
  align-items:center;
  padding:28px 30px;
  border:1px solid #dbe7f8;
  border-radius:30px;
  background:linear-gradient(135deg,#fff 0%,#fff 54%,#eef6ff 100%);
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.billing-hero h2{margin:8px 0;font-size:clamp(28px,2.2vw,38px);letter-spacing:-.04em}
.billing-hero p{margin:0;color:var(--muted);font-weight:700;line-height:1.55;max-width:860px}
.billing-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.billing-tags span{border:1px solid #d9e8ff;background:#f3f8ff;color:#1d4ed8;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}
.billing-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.billing-hero-total{width:132px;height:132px;border-radius:38px;background:linear-gradient(135deg,#1d4ed8,#0f6fff);color:#fff;display:grid;place-items:center;text-align:center;box-shadow:0 20px 36px rgba(29,78,216,.24)}
.billing-hero-total strong{font-size:32px;line-height:1}.billing-hero-total span{font-size:12px;font-weight:900;margin-top:8px}
.billing-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.billing-kpi-grid article{min-height:112px;padding:18px;border:1px solid var(--border);border-radius:26px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.055);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.billing-kpi-grid article:after{content:"";position:absolute;top:-34px;right:-34px;width:110px;height:110px;border-radius:50%;background:#edf5ff}
.billing-kpi-grid span{width:42px;height:42px;border-radius:15px;background:#f3f8ff;border:1px solid #d9e8ff;display:grid;place-items:center;font-size:20px;position:relative;z-index:1}
.billing-kpi-grid strong{font-size:26px;letter-spacing:-.04em;margin-top:10px;position:relative;z-index:1}
.billing-kpi-grid small{color:var(--muted);font-weight:900;position:relative;z-index:1}
.billing-filter-panel{padding:24px 26px;border:1px solid var(--border);border-radius:28px;background:#fff;box-shadow:0 16px 42px rgba(15,23,42,.065)}
.billing-filter-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}
.billing-filter-head h3{margin:6px 0;font-size:24px;letter-spacing:-.03em}.billing-filter-head p{margin:0;color:var(--muted);font-weight:700}
.billing-view-toggle{display:flex;gap:8px;flex-wrap:wrap}
.billing-filter-grid{display:grid;grid-template-columns:minmax(230px,2fr) repeat(4,minmax(150px,1fr)) auto;gap:14px;align-items:end}
.billing-filter-grid label{display:flex;flex-direction:column;gap:8px;font-weight:900}.billing-filter-grid small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--muted)}
.billing-filter-grid input,.billing-filter-grid select{height:48px;border:1px solid var(--border);border-radius:15px;padding:0 14px;font-weight:800;background:#fff;color:var(--text)}
.billing-filter-actions{display:flex;gap:10px}.billing-filter-actions .btn{height:48px;min-width:110px;justify-content:center}
.billing-workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}
.billing-main-card,.billing-side-card,.invoice-main-card,.invoice-side-card{border:1px solid var(--border);border-radius:30px;background:#fff;box-shadow:0 18px 44px rgba(15,23,42,.07)}
.billing-main-card{padding:24px 26px;min-height:360px}.billing-card-head,.invoice-section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}
.billing-card-head h2,.invoice-section-head h2{margin:6px 0;font-size:26px;letter-spacing:-.035em}.billing-card-head p,.invoice-section-head small{color:var(--muted);font-weight:700}
.billing-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
.billing-item-card{border:1px solid #dbe7f8;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 28px rgba(15,23,42,.045)}
.billing-item-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.billing-item-top strong{font-size:17px}.billing-item-top small{display:block;margin-top:5px;color:var(--muted);font-weight:800}
.billing-item-card p{margin:0;color:var(--muted);line-height:1.55;font-weight:650}
.billing-item-data,.invoice-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.billing-item-data span,.invoice-info-grid span{border:1px solid var(--border);border-radius:16px;background:#f8fbff;padding:11px 12px;font-size:13px;font-weight:800}
.billing-item-data b,.invoice-info-grid b{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.billing-item-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.billing-table-wrap,.invoice-lines-view{border:1px solid var(--border);border-radius:20px;overflow:auto;background:#fff}.billing-table-wrap table,.invoice-lines-view table{margin:0;width:100%}
.billing-side{display:flex;flex-direction:column;gap:20px}.billing-side-card{padding:22px}.billing-side-head{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:16px}
.billing-side-head h2{margin:0;font-size:22px}.billing-side-head small{color:var(--muted);font-weight:800;white-space:nowrap}
.billing-side-list,.invoice-side-list{display:flex;flex-direction:column;gap:12px}.billing-side-item,.invoice-side-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:18px;background:#fbfdff;padding:12px}
.billing-side-item>span{width:36px;height:36px;border-radius:12px;background:#f3f8ff;border:1px solid #d9e8ff;display:grid;place-items:center}
.billing-action-column{display:grid;gap:10px}.billing-action-column .btn{width:100%;justify-content:center;min-height:44px}
.billing-empty{border:1px dashed #d2def0;border-radius:18px;background:#fbfdff;color:var(--muted);font-weight:900;text-align:center;padding:20px}.billing-empty-big{min-height:150px;display:grid;place-items:center}
.billing-editor-page,.invoice-detail-page{width:min(100%,1420px);margin:0 auto;padding:0 clamp(10px,1.6vw,24px) 56px;display:flex;flex-direction:column;gap:22px}
.billing-editor-card{border:1px solid var(--border);border-radius:30px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.billing-editor-head{padding:24px 26px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:linear-gradient(135deg,#fff,#f5f9ff)}
.billing-editor-head h2{margin:6px 0;font-size:30px}.billing-editor-head p{margin:0;color:var(--muted);font-weight:700}
.billing-form-grid{padding:24px 26px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.billing-field{display:flex;flex-direction:column;gap:8px;font-weight:900}.billing-field.wide{grid-column:span 3}.billing-field small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--muted)}.billing-field em{color:#dc2626;font-style:normal}
.billing-lines-panel{padding:24px 26px;border-top:1px solid var(--border)}.billing-lines-head h3{margin:0}.billing-lines-head p{margin:6px 0 16px;color:var(--muted);font-weight:700}
.billing-lines-table{border:1px solid var(--border);border-radius:18px;overflow:hidden}.billing-line-row{display:grid;grid-template-columns:1.4fr 2fr .55fr .8fr;gap:0;border-bottom:1px solid var(--border)}.billing-line-row:last-child{border-bottom:0}.billing-line-row input{border:0;border-right:1px solid var(--border);padding:12px;background:#fff}.billing-line-row input:last-child{border-right:0}.billing-line-header{background:#f8fbff;font-weight:900;text-transform:uppercase;font-size:11px;color:var(--muted);letter-spacing:.06em}.billing-line-header span{padding:12px;border-right:1px solid var(--border)}
.invoice-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;border:1px solid #dbe7f8;border-radius:30px;background:linear-gradient(135deg,#fff,#eef6ff);box-shadow:var(--shadow);padding:26px 30px}.invoice-detail-hero h2{margin:6px 0;font-size:34px}.invoice-total-orb{width:150px;height:110px;border-radius:28px;background:linear-gradient(135deg,#1d4ed8,#0f6fff);color:#fff;display:grid;place-items:center;text-align:center}.invoice-total-orb strong{font-size:24px}.invoice-total-orb span{font-weight:900;font-size:12px}
.invoice-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px}.invoice-main-card,.invoice-side-card{padding:24px 26px}.invoice-lines-view{margin-top:18px}.invoice-lines-view h3{margin:16px 16px 0}.invoice-totals-box{margin-top:18px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.invoice-totals-box span{border:1px solid var(--border);background:#f8fbff;border-radius:16px;padding:12px;font-weight:900}.invoice-totals-box b{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;margin-bottom:5px}
.invoice-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.mini-form p{display:flex;flex-direction:column;gap:6px;font-weight:900}.mini-form input,.mini-form select,.mini-form textarea{border:1px solid var(--border);border-radius:14px;padding:10px}.mini-form.horizontal{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.mini-form.horizontal p{margin:0}
@media(max-width:1280px){.billing-workspace,.invoice-detail-grid{grid-template-columns:1fr}.billing-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.billing-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.billing-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.billing-filter-actions{grid-column:1/-1}.invoice-bottom-grid{grid-template-columns:1fr}}
@media(max-width:860px){.billing-hero,.invoice-detail-hero{grid-template-columns:1fr}.billing-hero-actions{justify-content:flex-start}.billing-hero-total,.invoice-total-orb{width:100%;height:auto;min-height:92px}.billing-kpi-grid,.billing-filter-grid,.billing-side,.billing-form-grid,.invoice-info-grid,.invoice-totals-box{grid-template-columns:1fr}.billing-field.wide{grid-column:span 1}.billing-line-row{grid-template-columns:1fr}.billing-line-header{display:none}.billing-line-row input{border-right:0}.mini-form.horizontal{grid-template-columns:1fr}}



/* V4.12.31 · Servicios disponibles portal cliente */
.client-services-page,.services-admin-page,.service-request-page,.service-request-detail-page{
  width:min(100%,1540px);
  margin:0 auto;
  padding:0 clamp(10px,1.6vw,24px) 56px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.services-hero,.services-admin-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
  padding:28px 30px;
  border:1px solid #dbe7f8;
  border-radius:30px;
  background:linear-gradient(135deg,#fff 0%,#fff 54%,#eef6ff 100%);
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.services-hero h2,.services-admin-hero h2{margin:8px 0;font-size:clamp(28px,2.2vw,38px);letter-spacing:-.04em}
.services-hero p,.services-admin-hero p{margin:0;color:var(--muted);font-weight:700;line-height:1.55;max-width:880px}
.services-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.services-tags span{border:1px solid #d9e8ff;background:#f3f8ff;color:#1d4ed8;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}
.services-hero-metrics,.services-admin-kpis{display:grid;grid-template-columns:repeat(3,130px);gap:12px}
.services-hero-metrics article,.services-admin-kpis article{min-height:98px;border:1px solid #dbe7f8;border-radius:24px;background:#fff;display:grid;place-items:center;text-align:center;box-shadow:0 12px 28px rgba(15,23,42,.045)}
.services-hero-metrics strong,.services-admin-kpis strong{font-size:30px;color:#0f6fff;line-height:1}
.services-hero-metrics span,.services-admin-kpis span{font-size:12px;color:var(--muted);font-weight:900}
.services-category-filter{display:flex;gap:8px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--border);border-radius:24px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.045)}
.services-layout,.services-admin-grid,.service-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}
.services-main,.services-side-card,.services-admin-main,.services-admin-side,.service-detail-main,.service-detail-side,.service-request-card{
  border:1px solid var(--border);
  border-radius:30px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.services-main,.services-admin-main,.services-admin-side,.service-detail-main,.service-detail-side{padding:24px 26px}
.services-side{display:flex;flex-direction:column;gap:20px}
.services-side-card{padding:22px}
.services-section-head{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}
.services-section-head h2{margin:0 0 6px;font-size:26px;letter-spacing:-.035em}
.services-section-head p{margin:0;color:var(--muted);font-weight:700}
.services-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.service-card{border:1px solid #dbe7f8;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 28px rgba(15,23,42,.045)}
.service-card.featured{border-color:#93c5fd;box-shadow:0 18px 38px rgba(29,78,216,.09)}
.service-card-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start}
.service-icon{width:48px;height:48px;border-radius:16px;background:#f3f8ff;border:1px solid #d9e8ff;display:grid;place-items:center;font-size:24px}
.service-card-top strong{font-size:18px}.service-card-top small{display:block;margin-top:4px;color:var(--muted);font-weight:800}
.service-card-top em{font-style:normal;background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;white-space:nowrap}
.service-card p{margin:0;color:var(--muted);font-weight:700;line-height:1.55}
.service-includes{border:1px dashed #d5e4f5;background:#fbfdff;border-radius:16px;padding:12px;color:#334155;font-weight:700;font-size:13px;line-height:1.5}
.service-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;flex-wrap:wrap}
.service-card-foot small{color:var(--muted);font-weight:900}
.service-mini,.service-request-mini,.service-admin-item,.service-history-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:18px;background:#fbfdff;padding:12px;margin-bottom:10px}
.service-mini span,.service-admin-item>span{width:38px;height:38px;border-radius:13px;background:#f3f8ff;border:1px solid #d9e8ff;display:grid;place-items:center;font-size:20px}
.service-mini strong,.service-request-mini strong,.service-admin-item strong,.service-history-list strong{display:block}.service-mini small,.service-request-mini small,.service-admin-item small,.service-history-list small{display:block;margin-top:4px;color:var(--muted);font-weight:700}
.service-request-card{overflow:hidden}.service-request-head{padding:24px 26px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#fff,#f5f9ff)}
.service-request-head h2{margin:6px 0;font-size:30px}.service-request-head p{margin:0;color:var(--muted);font-weight:700}
.service-request-grid{padding:24px 26px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.service-request-grid label{display:flex;flex-direction:column;gap:8px;font-weight:900}.service-request-grid label.wide{grid-column:1/-1}
.service-request-grid small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--muted)}.service-request-grid em{color:#dc2626;font-style:normal}
.services-filter-panel{display:grid;grid-template-columns:minmax(240px,1fr) 220px auto auto;gap:12px;padding:18px;border:1px solid var(--border);border-radius:24px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.045)}
.services-filter-panel input,.services-filter-panel select{height:46px;border:1px solid var(--border);border-radius:14px;padding:0 14px;font-weight:800;background:#fff}
.service-request-table{border:1px solid var(--border);border-radius:20px;overflow:auto}.service-request-table table{margin:0;width:100%}
.service-detail-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
.service-detail-info span{border:1px solid var(--border);border-radius:16px;background:#f8fbff;padding:12px;font-weight:800}.service-detail-info b{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;margin-bottom:5px}
.service-description-box{border:1px solid var(--border);border-radius:18px;background:#fbfdff;padding:18px;line-height:1.6;font-weight:650}
.service-admin-form p{display:flex;flex-direction:column;gap:6px;font-weight:900}.service-admin-form input,.service-admin-form select,.service-admin-form textarea{border:1px solid var(--border);border-radius:14px;padding:10px}
.service-status-orb{width:170px;min-height:110px;border-radius:28px;background:linear-gradient(135deg,#1d4ed8,#0f6fff);color:#fff;display:grid;place-items:center;text-align:center;padding:14px}.service-status-orb strong{font-size:18px}.service-status-orb span{font-size:12px;font-weight:900}
@media(max-width:1180px){.services-layout,.services-admin-grid,.service-detail-grid{grid-template-columns:1fr}.services-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.services-hero,.services-admin-hero{grid-template-columns:1fr}.services-hero-metrics,.services-admin-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.services-hero-metrics,.services-admin-kpis,.services-side,.service-request-grid,.services-filter-panel,.service-detail-info{grid-template-columns:1fr}.services-hero,.services-admin-hero,.services-main,.services-side-card,.services-admin-main,.services-admin-side,.service-detail-main,.service-detail-side{padding:18px;border-radius:22px}.service-request-head{flex-direction:column}.service-card-top{grid-template-columns:auto 1fr}}



/* V4.12.32 · Dashboard principal y portal cliente reorganizados */
.dashboard-page-wide,
.client-dashboard-wide{
  width:min(100%,1560px);
  margin:0 auto;
  padding:0 clamp(10px,1.6vw,24px) 56px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.dashboard-top-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:22px;
  align-items:stretch;
}
.dashboard-hero-v3,
.status-card-v3,
.time-clock-card-v3,
.dashboard-module-card,
.client-hero-v3,
.client-web-feature-v3,
.client-module-card{
  border:1px solid var(--border);
  border-radius:30px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.065);
}
.dashboard-hero-v3{
  padding:30px 32px;
  background:linear-gradient(135deg,#fff 0%,#fff 58%,#eef6ff 100%);
}
.dashboard-hero-v3 h1{
  margin:8px 0 8px;
  font-size:clamp(28px,2.35vw,42px);
  letter-spacing:-.045em;
}
.dashboard-hero-v3 p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  max-width:900px;
  line-height:1.55;
}
.status-card-v3{
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
}
.dashboard-control-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(360px,.85fr);
  gap:22px;
}
.time-clock-card-v3{
  padding:22px 24px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px auto;
  align-items:center;
  gap:22px;
}
.time-clock-card-v3 .time-clock-counter{
  min-height:78px;
  border-radius:18px;
  background:#0f172a;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:28px;
  font-weight:900;
  letter-spacing:.05em;
}
.time-clock-card-v3 .time-clock-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.dashboard-metric-grid-v3{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.dashboard-metric-grid-v3 article{
  min-height:104px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 28px rgba(15,23,42,.045);
  position:relative;
  overflow:hidden;
}
.dashboard-metric-grid-v3 article:after{
  content:"";
  position:absolute;
  top:-36px;
  right:-34px;
  width:110px;
  height:110px;
  border-radius:50%;
  background:#edf5ff;
}
.dashboard-metric-grid-v3 span{
  display:inline-grid;
  width:40px;
  height:40px;
  place-items:center;
  border:1px solid #d9e8ff;
  border-radius:14px;
  background:#f3f8ff;
  position:relative;
  z-index:1;
}
.dashboard-metric-grid-v3 strong{
  display:block;
  margin-top:10px;
  font-size:28px;
  letter-spacing:-.04em;
  position:relative;
  z-index:1;
}
.dashboard-metric-grid-v3 small{
  color:var(--muted);
  font-weight:900;
  position:relative;
  z-index:1;
}
.dashboard-feature-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);
  gap:22px;
}
.dashboard-ops-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.dashboard-bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:22px;
}
.dashboard-module-card{
  padding:22px 24px;
  min-height:260px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.module-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.module-card-head h2{
  margin:5px 0 6px;
  font-size:24px;
  letter-spacing:-.03em;
}
.module-card-head p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  line-height:1.45;
}
.module-mini-metrics{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.module-mini-metrics span{
  min-width:88px;
  min-height:72px;
  border:1px solid #d9e8ff;
  border-radius:18px;
  background:#f3f8ff;
  display:grid;
  place-items:center;
  text-align:center;
  padding:8px;
}
.module-mini-metrics strong{
  font-size:24px;
  line-height:1;
  color:#0f6fff;
}
.module-mini-metrics small{
  font-size:11px;
  font-weight:900;
  color:var(--muted);
}
.module-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}
.module-list.compact{
  max-height:310px;
  overflow:auto;
  padding-right:2px;
}
.module-list-item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fbfdff;
  padding:12px;
  color:inherit;
  text-decoration:none;
}
.module-list-item>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#f3f8ff;
  border:1px solid #d9e8ff;
}
.module-list-item strong{
  display:block;
  font-size:14px;
}
.module-list-item small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.module-list-item em{
  font-style:normal;
  color:var(--muted);
  font-weight:900;
  font-size:12px;
}
.module-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  flex-wrap:wrap;
  margin-top:auto;
}
.dashboard-shortcuts-v3{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
}
.dashboard-shortcuts-v3 a{
  border:1px solid var(--border);
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 26px rgba(15,23,42,.045);
  padding:16px;
  text-decoration:none;
  color:var(--text);
  display:grid;
  gap:5px;
}
.dashboard-shortcuts-v3 span{
  font-size:22px;
}
.dashboard-shortcuts-v3 strong{
  font-size:14px;
}
.dashboard-shortcuts-v3 small{
  color:var(--muted);
  font-weight:750;
}

/* Portal cliente V4.12.32 */
.client-top-grid{
  display:grid;
  gap:22px;
}
.client-hero-v3{
  padding:30px 32px;
  background:linear-gradient(135deg,#fff 0%,#fff 58%,#eaf3ff 100%);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
}
.client-hero-v3 h2{
  margin:8px 0;
  font-size:clamp(28px,2.35vw,42px);
  letter-spacing:-.045em;
}
.client-hero-v3 p{
  color:var(--muted);
  font-weight:700;
  margin:0;
  line-height:1.55;
}
.client-kpi-grid-v3{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
}
.client-kpi-grid-v3 article{
  min-height:105px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 28px rgba(15,23,42,.045);
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.client-kpi-grid-v3 article:after{
  content:"";
  position:absolute;
  top:-36px;
  right:-34px;
  width:110px;
  height:110px;
  border-radius:50%;
  background:#edf5ff;
}
.client-kpi-grid-v3 strong{
  font-size:30px;
  letter-spacing:-.04em;
  position:relative;
  z-index:1;
}
.client-kpi-grid-v3 span{
  color:var(--muted);
  font-weight:900;
  position:relative;
  z-index:1;
}
.client-web-feature-v3{
  padding:24px 26px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px;
  align-items:center;
  gap:24px;
  background:linear-gradient(135deg,#fff,#eef6ff);
}
.client-web-feature-v3 h2{
  margin:7px 0;
  font-size:28px;
  letter-spacing:-.035em;
}
.client-web-feature-v3 p{
  margin:0 0 14px;
  color:var(--muted);
  font-weight:700;
}
.client-feature-grid,
.client-module-strip{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.client-main-grid-v3{
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:22px;
}
.client-module-card{
  padding:22px 24px;
  min-height:230px;
  display:flex;
  flex-direction:column;
  gap:15px;
}
.client-module-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--border);
}
.client-module-head h2{
  margin:0 0 6px;
  font-size:24px;
  letter-spacing:-.03em;
}
.client-module-head p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  line-height:1.45;
}
.client-mini-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.client-mini-metrics span{
  border:1px solid #d9e8ff;
  border-radius:18px;
  background:#f3f8ff;
  padding:14px;
  display:grid;
  place-items:center;
  text-align:center;
}
.client-mini-metrics strong{
  font-size:26px;
  color:#0f6fff;
}
.client-mini-metrics small{
  color:var(--muted);
  font-weight:900;
}
.client-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.client-list-item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fbfdff;
  padding:12px;
}
.client-list-item>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#f3f8ff;
  border:1px solid #d9e8ff;
}
.client-list-item strong{
  display:block;
  font-size:14px;
}
.client-list-item small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:700;
}
@media(max-width:1320px){
  .dashboard-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-shortcuts-v3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .client-kpi-grid-v3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1080px){
  .dashboard-top-grid,
  .dashboard-control-grid,
  .dashboard-feature-grid,
  .dashboard-bottom-grid,
  .client-main-grid-v3,
  .client-feature-grid,
  .client-module-strip,
  .client-web-feature-v3,
  .client-hero-v3{grid-template-columns:1fr}
  .time-clock-card-v3{grid-template-columns:1fr}
  .dashboard-metric-grid-v3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .dashboard-page-wide,.client-dashboard-wide{padding:0 8px 40px}
  .dashboard-hero-v3,.status-card-v3,.time-clock-card-v3,.dashboard-module-card,.client-hero-v3,.client-web-feature-v3,.client-module-card{padding:18px;border-radius:22px}
  .dashboard-ops-grid,
  .dashboard-metric-grid-v3,
  .dashboard-shortcuts-v3,
  .client-kpi-grid-v3,
  .client-mini-metrics{grid-template-columns:1fr}
  .module-card-head,.client-module-head{flex-direction:column}
  .module-actions{justify-content:flex-start}
}



/* V4.12.33 · Orden visual definitivo del Panel principal */
.dashboard-ordered-page{
  gap:20px;
}
.dashboard-ordered-page .dashboard-top-grid{
  grid-template-columns:minmax(0,1fr) 370px;
  align-items:stretch;
}
.dashboard-shortcuts-under-hero{
  margin-top:-2px;
}
.dashboard-control-team-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);
  gap:22px;
  align-items:stretch;
}
.dashboard-control-team-grid .time-clock-card-v3{
  min-height:210px;
}
.dashboard-team-card-v3{
  min-height:210px;
}
.dashboard-team-card-v3 .team-status-list-v2{
  max-height:150px;
  overflow:auto;
  padding-right:2px;
}
.dashboard-three-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.dashboard-two-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.dashboard-activity-full{
  display:grid;
  grid-template-columns:1fr;
}
.dashboard-activity-full .dashboard-module-card{
  min-height:220px;
}
.dashboard-ordered-page .dashboard-module-card{
  min-height:250px;
}
.dashboard-ordered-page .dashboard-two-grid .dashboard-module-card{
  min-height:285px;
}
.dashboard-ordered-page .dashboard-three-grid .dashboard-module-card{
  min-height:315px;
}
.dashboard-ordered-page .module-list.compact{
  max-height:245px;
}
.dashboard-clients-card .module-actions{
  margin-top:auto;
}
@media(max-width:1320px){
  .dashboard-three-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-three-grid .dashboard-module-card:first-child{
    grid-column:1/-1;
  }
}
@media(max-width:1080px){
  .dashboard-ordered-page .dashboard-top-grid,
  .dashboard-control-team-grid,
  .dashboard-two-grid,
  .dashboard-three-grid{
    grid-template-columns:1fr;
  }
  .dashboard-three-grid .dashboard-module-card:first-child{
    grid-column:auto;
  }
}
@media(max-width:720px){
  .dashboard-ordered-page{
    gap:16px;
  }
  .dashboard-shortcuts-under-hero{
    margin-top:0;
  }
}



/* V4.12.34 · Portal Cliente orden definitivo */
.client-dashboard-ordered{
  gap:20px;
}
.client-quick-actions-v3{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:14px;
}
.client-quick-actions-v3 a{
  border:1px solid var(--border);
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 26px rgba(15,23,42,.045);
  padding:16px;
  text-decoration:none;
  color:var(--text);
  display:grid;
  gap:5px;
  min-height:108px;
}
.client-quick-actions-v3 span{
  font-size:22px;
}
.client-quick-actions-v3 strong{
  font-size:14px;
}
.client-quick-actions-v3 small{
  color:var(--muted);
  font-weight:750;
}
.client-dashboard-ordered .client-module-strip{
  align-items:stretch;
}
.client-dashboard-ordered .client-module-card{
  min-height:285px;
}
.client-dashboard-ordered .client-main-grid-v3 .client-module-card{
  min-height:325px;
}
.client-dashboard-ordered .client-list{
  max-height:260px;
  overflow:auto;
  padding-right:2px;
}
.client-dashboard-ordered .client-project-list{
  max-height:310px;
  overflow:auto;
  padding-right:2px;
}
@media(max-width:1400px){
  .client-quick-actions-v3{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(max-width:980px){
  .client-quick-actions-v3{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:640px){
  .client-quick-actions-v3{
    grid-template-columns:1fr;
  }
}



/* V4.12.35 · Videollamadas seguras */
.video-page,.video-room-page{
  width:min(100%,1540px);
  margin:0 auto;
  padding:0 clamp(10px,1.6vw,24px) 56px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.video-hero,.video-detail-hero,.video-room-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
  padding:28px 30px;
  border:1px solid #dbe7f8;
  border-radius:30px;
  background:linear-gradient(135deg,#fff 0%,#fff 54%,#eef6ff 100%);
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.video-hero h2,.video-detail-hero h2,.video-room-head h2{
  margin:8px 0;
  font-size:clamp(28px,2.2vw,38px);
  letter-spacing:-.04em;
}
.video-hero p,.video-detail-hero p,.video-room-head p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  max-width:920px;
  line-height:1.55;
}
.video-tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:16px;
}
.video-tags span{
  border:1px solid #d9e8ff;
  background:#f3f8ff;
  color:#1d4ed8;
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  font-weight:900;
}
.video-kpi-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.video-kpi-grid article{
  min-height:112px;
  border:1px solid var(--border);
  border-radius:26px;
  background:#fff;
  box-shadow:0 14px 32px rgba(15,23,42,.055);
  padding:20px;
  display:grid;
  place-items:center;
  text-align:center;
}
.video-kpi-grid strong{
  font-size:34px;
  color:#0f6fff;
  line-height:1;
}
.video-kpi-grid span{
  color:var(--muted);
  font-weight:900;
}
.video-filter-panel{
  display:grid;
  grid-template-columns:minmax(280px,1fr) 240px auto auto;
  gap:12px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.045);
}
.video-filter-panel input,.video-filter-panel select{
  height:46px;
  border:1px solid var(--border);
  border-radius:14px;
  padding:0 14px;
  font-weight:800;
  background:#fff;
}
.video-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
  gap:18px;
}
.video-call-card,.video-form-card,.video-lobby-card,.video-detail-main,.video-detail-side{
  border:1px solid var(--border);
  border-radius:30px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.07);
}
.video-call-card{
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.video-call-top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
}
.video-call-top strong{
  font-size:18px;
}
.video-call-top small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-weight:800;
}
.video-call-meta,.video-info-grid,.video-check-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.video-call-meta span,.video-info-grid span,.video-check-grid div{
  border:1px solid var(--border);
  border-radius:16px;
  background:#f8fbff;
  padding:12px;
  font-weight:800;
}
.video-call-meta b,.video-info-grid b{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.video-call-card p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  line-height:1.55;
}
.video-call-actions,.video-action-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.video-form-card{
  overflow:hidden;
}
.video-form-head{
  padding:24px 26px;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  background:linear-gradient(135deg,#fff,#f5f9ff);
}
.video-form-head h2{
  margin:6px 0;
  font-size:30px;
}
.video-form-head p{
  margin:0;
  color:var(--muted);
  font-weight:700;
}
.video-form-grid{
  padding:24px 26px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.video-form-grid label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-weight:900;
}
.video-form-grid label.wide{
  grid-column:1/-1;
}
.video-form-grid small{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:10px;
  color:var(--muted);
}
.video-form-grid em{
  color:#dc2626;
  font-style:normal;
}
.video-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:22px;
  align-items:start;
}
.video-detail-main,.video-detail-side{
  padding:24px 26px;
}
.video-section-head{
  border-bottom:1px solid var(--border);
  padding-bottom:14px;
  margin-bottom:16px;
}
.video-section-head h2{
  margin:0 0 6px;
  font-size:24px;
  letter-spacing:-.03em;
}
.video-section-head small{
  color:var(--muted);
  font-weight:700;
}
.video-status-orb{
  width:160px;
  min-height:112px;
  border-radius:30px;
  background:linear-gradient(135deg,#1d4ed8,#0f6fff);
  color:#fff;
  display:grid;
  place-items:center;
  text-align:center;
  padding:14px;
}
.video-status-orb strong{
  font-size:18px;
}
.video-status-orb span{
  font-size:12px;
  font-weight:900;
}
.video-notes-box{
  margin-top:16px;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fbfdff;
  padding:16px;
  color:#334155;
  font-weight:650;
}
.video-participant-list,.video-activity-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.video-participant-list>div,.video-activity-list>div{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:center;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fbfdff;
  padding:12px;
}
.video-participant-list span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#f3f8ff;
  border:1px solid #d9e8ff;
}
.video-participant-list strong,.video-activity-list strong{
  display:block;
}
.video-participant-list small,.video-activity-list small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-weight:700;
}
.video-lobby-card{
  padding:28px 30px;
}
.video-lobby-card h2{
  font-size:34px;
  margin:8px 0;
}
.video-lobby-card p{
  color:var(--muted);
  font-weight:700;
}
.video-check-grid{
  margin:20px 0;
}
.video-check-grid strong{
  display:block;
}
.video-check-grid small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-weight:700;
}
.video-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  border-radius:18px;
  padding:14px;
  font-weight:800;
  margin-bottom:16px;
}
.video-jitsi-shell{
  border:1px solid var(--border);
  border-radius:30px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.07);
  padding:18px;
}
.video-jitsi-container{
  min-height:720px;
  border-radius:22px;
  overflow:hidden;
  background:#0f172a;
}
.chat-video-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
@media(max-width:1180px){
  .video-detail-grid,.video-hero,.video-detail-hero,.video-room-head{
    grid-template-columns:1fr;
  }
  .video-kpi-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .video-form-grid,.video-call-meta,.video-info-grid,.video-check-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .video-page,.video-room-page{
    padding:0 8px 40px;
  }
  .video-kpi-grid,.video-filter-panel,.video-form-grid,.video-call-meta,.video-info-grid,.video-check-grid{
    grid-template-columns:1fr;
  }
  .video-hero,.video-detail-hero,.video-room-head,.video-call-card,.video-form-head,.video-detail-main,.video-detail-side,.video-lobby-card{
    padding:18px;
    border-radius:22px;
  }
  .video-form-head{
    flex-direction:column;
  }
  .video-status-orb{
    width:100%;
  }
}



/* V4.12.36 · Acceso administrador al Portal Cliente */
.admin-client-portal-page{
  width:min(100%,1480px);
  margin:0 auto;
  padding:0 clamp(10px,1.6vw,24px) 56px;
}
.admin-client-modal-backdrop{
  min-height:calc(100vh - 170px);
  display:grid;
  place-items:start center;
  padding:18px 0 40px;
}
.admin-client-modal{
  width:min(100%,1180px);
  border:1px solid var(--border);
  border-radius:32px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.12);
  overflow:hidden;
}
.admin-client-modal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding:28px 30px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(135deg,#fff 0%,#fff 56%,#eef6ff 100%);
}
.admin-client-modal-head h2{
  margin:8px 0;
  font-size:clamp(28px,2.2vw,38px);
  letter-spacing:-.04em;
}
.admin-client-modal-head p{
  margin:0;
  color:var(--muted);
  font-weight:700;
  line-height:1.55;
}
.admin-client-filter{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 180px auto auto;
  gap:14px;
  padding:22px 30px;
  border-bottom:1px solid var(--border);
  background:#fbfdff;
}
.admin-client-filter label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-weight:900;
}
.admin-client-filter small{
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  font-size:10px;
}
.admin-client-filter input,
.admin-client-filter select{
  height:48px;
  border:1px solid var(--border);
  border-radius:15px;
  padding:0 14px;
  font-weight:800;
  background:#fff;
}
.admin-client-filter .btn{
  height:48px;
  align-self:end;
}
.admin-client-list{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:24px 30px;
  max-height:640px;
  overflow:auto;
}
.admin-client-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:18px;
  border:1px solid #dbe7f8;
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
  box-shadow:0 10px 26px rgba(15,23,42,.045);
}
.admin-client-card.is-inactive{
  opacity:.78;
  background:#f8fafc;
}
.admin-client-avatar{
  width:54px;
  height:54px;
  border-radius:18px;
  background:linear-gradient(135deg,#1d4ed8,#0f6fff);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:22px;
}
.admin-client-title{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.admin-client-title strong{
  font-size:18px;
}
.admin-client-main p{
  margin:5px 0 10px;
  color:var(--muted);
  font-weight:800;
}
.admin-client-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.admin-client-meta span{
  border:1px solid var(--border);
  background:#f8fbff;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:800;
  color:#334155;
}
.admin-client-actions{
  display:flex;
  justify-content:flex-end;
}
.admin-client-modal-foot{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:18px 30px;
  border-top:1px solid var(--border);
  background:#f8fbff;
  color:#334155;
  font-weight:750;
}
.admin-client-empty{
  min-height:140px;
  display:grid;
  place-items:center;
}
.admin-supervision-bar{
  margin:0 0 18px;
  padding:14px 18px;
  border:1px solid #bfdbfe;
  border-radius:20px;
  background:linear-gradient(135deg,#eff6ff,#fff);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  box-shadow:0 12px 28px rgba(29,78,216,.08);
}
.admin-supervision-bar strong{
  display:block;
  color:#1d4ed8;
}
.admin-supervision-bar span{
  display:block;
  font-weight:900;
}
.admin-supervision-bar small{
  color:var(--muted);
  font-weight:800;
}
.admin-supervision-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
@media(max-width:880px){
  .admin-client-modal-head,
  .admin-supervision-bar{
    flex-direction:column;
    align-items:stretch;
  }
  .admin-client-filter,
  .admin-client-card{
    grid-template-columns:1fr;
  }
  .admin-client-actions{
    justify-content:flex-start;
  }
}

/* MedRod Group V6 · Consolidación base */
.security-notice-bar{
  margin:0 0 18px;
  padding:13px 16px;
  border:1px solid #fed7aa;
  border-radius:18px;
  background:#fff7ed;
  color:#7c2d12;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  font-weight:800;
}
.security-notice-bar span{color:#9a3412;font-weight:700}
.video-diagnostic-panel{
  margin:18px 0;
  border:1px solid var(--border);
  border-radius:22px;
  background:#fbfdff;
  padding:16px;
}
.video-diagnostic-panel h3{margin:0 0 12px;font-size:20px}
.video-diagnostic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.video-diagnostic-item{border:1px solid var(--border);border-radius:16px;background:#fff;padding:12px;font-weight:900}
.video-diagnostic-item small{display:block;color:var(--muted);margin-top:4px;font-weight:700}
.video-diagnostic-ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.video-diagnostic-warn{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.video-diagnostic-bad{border-color:#fecaca;background:#fef2f2;color:#991b1b}
@media(max-width:960px){.video-diagnostic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.video-diagnostic-grid{grid-template-columns:1fr}}

/* V6 Enterprise Admin Upgrade */
.enterprise-page{width:min(100%,1560px);margin:0 auto;padding:0 clamp(10px,1.6vw,24px) 56px;display:flex;flex-direction:column;gap:22px}.enterprise-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:28px 30px;border:1px solid var(--border);border-radius:30px;background:linear-gradient(135deg,#fff 0%,#fff 56%,#eef6ff 100%);box-shadow:0 18px 44px rgba(15,23,42,.07)}.enterprise-hero h2{margin:8px 0;font-size:clamp(28px,2.2vw,40px);letter-spacing:-.045em}.enterprise-hero p{margin:0;color:var(--muted);font-weight:700;line-height:1.55;max-width:940px}.hero-metrics{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.hero-metrics span{min-width:110px;min-height:88px;display:grid;place-items:center;text-align:center;border:1px solid #d9e8ff;background:#f3f8ff;border-radius:22px;padding:10px}.hero-metrics strong{font-size:28px;color:#0f6fff;line-height:1}.hero-metrics small{color:var(--muted);font-weight:900}.enterprise-kpi-grid{display:grid;gap:16px}.enterprise-kpi-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.enterprise-kpi-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.enterprise-kpi-grid article{min-height:112px;padding:20px;border:1px solid var(--border);border-radius:26px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.055);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.enterprise-kpi-grid article:after{content:"";position:absolute;right:-36px;top:-36px;width:110px;height:110px;border-radius:50%;background:#edf5ff}.enterprise-kpi-grid strong{font-size:32px;letter-spacing:-.04em;position:relative;z-index:1}.enterprise-kpi-grid span{color:var(--muted);font-weight:900;position:relative;z-index:1}.enterprise-filter-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end;padding:18px;border:1px solid var(--border);border-radius:24px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.045)}.enterprise-filter-panel label{display:flex;flex-direction:column;gap:8px;font-weight:900}.enterprise-filter-panel small{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px}.enterprise-filter-panel input,.enterprise-filter-panel select{height:46px;border:1px solid var(--border);border-radius:14px;padding:0 14px;background:#fff;font-weight:800}.enterprise-card,.enterprise-item-card{border:1px solid var(--border);border-radius:28px;background:#fff;box-shadow:0 18px 44px rgba(15,23,42,.065)}.enterprise-card{padding:22px 24px}.enterprise-card h3{margin:0 0 16px;font-size:22px;letter-spacing:-.03em}.enterprise-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:18px}.enterprise-item-card{padding:20px;display:flex;flex-direction:column;gap:14px}.item-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.item-card-top strong{font-size:17px}.item-card-top small{display:block;margin-top:5px;color:var(--muted);font-weight:800}.enterprise-item-card p{margin:0;color:var(--muted);line-height:1.55;font-weight:650}.item-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.item-data-grid span{border:1px solid var(--border);border-radius:16px;background:#f8fbff;padding:11px 12px;font-size:13px;font-weight:800}.item-data-grid b{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.item-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:auto}.enterprise-two-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.enterprise-list{display:flex;flex-direction:column;gap:10px}.enterprise-list.compact{max-height:320px;overflow:auto;padding-right:2px}.enterprise-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:18px;background:#fbfdff;padding:12px}.enterprise-list>div>span{width:38px;height:38px;border-radius:13px;background:#f3f8ff;border:1px solid #d9e8ff;display:grid;place-items:center}.enterprise-list strong{display:block}.enterprise-list small{display:block;margin-top:4px;color:var(--muted);font-weight:700}.enterprise-empty{min-height:160px;display:grid;place-items:center}.sla-badge{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.sla-badge.ok{background:#ecfdf5;color:#047857}.sla-badge.warning{background:#fffbeb;color:#b45309}.sla-badge.overdue{background:#fef2f2;color:#b91c1c}.sla-badge.done{background:#f1f5f9;color:#475569}.ticket-kanban-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.kanban-column{border:1px solid var(--border);border-radius:24px;background:#fff;padding:16px;box-shadow:0 12px 28px rgba(15,23,42,.045);min-height:260px}.kanban-column h3{margin:0 0 12px}.ticket-mini-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border);border-radius:16px;background:#fbfdff;padding:12px;margin-bottom:10px;text-decoration:none;color:inherit}.admin-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-module-grid a{border:1px solid var(--border);border-radius:22px;background:#fff;box-shadow:0 12px 26px rgba(15,23,42,.045);padding:16px;text-decoration:none;color:var(--text);display:grid;gap:5px}.admin-module-grid span{font-size:24px}.admin-module-grid strong{font-size:15px}.admin-module-grid small{color:var(--muted);font-weight:750}.admin-maintenance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.enterprise-check-list{display:grid;gap:10px}.enterprise-check-list span,.module-chip-grid span{border:1px solid #d9e8ff;background:#f3f8ff;border-radius:999px;padding:9px 12px;font-weight:900;color:#1d4ed8}.module-chip-grid{display:flex;gap:8px;flex-wrap:wrap}.enterprise-wizard-card{border:1px solid var(--border);border-radius:30px;background:#fff;box-shadow:0 18px 44px rgba(15,23,42,.065);padding:24px}.wizard-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}.wizard-steps span{border:1px solid var(--border);border-radius:16px;padding:10px;text-align:center;font-weight:900;background:#fbfdff}.wizard-steps .active{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.wizard-section{border-top:1px solid var(--border);padding:18px 0}.wizard-section h3{margin:0 0 14px}.form-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:8px;font-weight:900}.form-grid small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--muted)}.form-grid em{color:#dc2626;font-style:normal}.wizard-note{border:1px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:12px;color:#1e3a8a;font-weight:800}.wizard-actions{display:flex;justify-content:flex-end;gap:10px}.client-tabs-v6{display:flex;gap:8px;flex-wrap:wrap;border:1px solid var(--border);border-radius:22px;background:#fff;padding:12px}.client-tabs-v6 a{text-decoration:none;color:#1d4ed8;background:#f3f8ff;border:1px solid #d9e8ff;border-radius:999px;padding:8px 12px;font-weight:900}.danger-zone-soft{background:linear-gradient(180deg,#fff,#fff7f7)}
@media(max-width:1180px){.enterprise-two-grid,.enterprise-hero{grid-template-columns:1fr}.enterprise-kpi-grid.four,.enterprise-kpi-grid.five,.admin-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-steps{grid-template-columns:1fr 1fr}.hero-metrics{justify-content:flex-start}}@media(max-width:720px){.enterprise-page{padding:0 8px 40px}.enterprise-kpi-grid.four,.enterprise-kpi-grid.five,.enterprise-card-grid,.admin-module-grid,.form-grid.two,.item-data-grid{grid-template-columns:1fr}.enterprise-hero,.enterprise-card,.enterprise-item-card,.enterprise-wizard-card{padding:18px;border-radius:22px}.wizard-steps{grid-template-columns:1fr}}

/* V6.8 · Centro profesional de Backup y Restauración */
.alert{max-width:1500px;padding:14px 17px;border-radius:16px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;font-weight:800;line-height:1.45}.alert.warning{border-color:#fde68a;background:#fffbeb;color:#92400e}.alert.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}.enterprise-card code{font-size:11px;word-break:break-all}.timeline-item>.btn{white-space:nowrap}

/* --------------------------------------------------------------------------
   V6.2 · Professional Operations & Automation
   -------------------------------------------------------------------------- */
body[data-density="compact"] .panel.pad{padding:14px}body[data-density="compact"] .main{gap:12px}body[data-density="spacious"] .panel.pad{padding:30px}body[data-density="spacious"] .main{gap:24px}
body[data-theme="dark"]{background:#07111f;color:#e8eef7}body[data-theme="dark"] .main{background:#0b1625}body[data-theme="dark"] .panel,body[data-theme="dark"] .stat,body[data-theme="dark"] .client-module-card{background:#122033;color:#e8eef7;border-color:#263852}body[data-theme="dark"] input,body[data-theme="dark"] select,body[data-theme="dark"] textarea{background:#0b1625;color:#e8eef7;border-color:#334763}body[data-theme="dark"] table td{border-color:#293b52;color:#d9e3f0}body[data-theme="dark"] small,body[data-theme="dark"] .head p{color:#9db0c7}
@media (prefers-color-scheme:dark){body[data-theme="auto"]{background:#07111f;color:#e8eef7}body[data-theme="auto"] .main{background:#0b1625}body[data-theme="auto"] .panel,body[data-theme="auto"] .stat{background:#122033;color:#e8eef7;border-color:#263852}}
.top-account-actions,.v6-view-switch,.v6-meta,.v6-saved-searches{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.v6-view-switch{margin-bottom:16px}.v6-two-col{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px}.v6-phase,.v6-task-row,.v6-notification,.v6-activity,.v6-result{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e4eaf1}.v6-phase>div:first-child,.v6-result{display:flex;flex-direction:column}.v6-task-row,.v6-result{text-decoration:none;color:inherit}.v6-task-row:hover,.v6-result:hover{color:#126b72}.v6-inline-form{margin-top:18px;padding:14px;border:1px solid #dbe3ec;border-radius:12px}.v6-inline-form summary{font-weight:700;cursor:pointer}.v6-check{padding:8px 10px;margin:6px 0;border-radius:8px;background:#f3f6fa}.v6-check.done{text-decoration:line-through;color:#648071;background:#e9f6f0}.v6-activity{display:grid;grid-template-columns:1fr auto}.v6-activity p{grid-column:1/-1;margin:4px 0}.v6-notification.unread{padding-left:14px;border-left:4px solid #0f8a83}.v6-preview{display:grid;gap:10px;padding:18px;border-radius:14px;background:#f3f6fa}.v6-search{display:grid;grid-template-columns:2fr 1fr auto auto;gap:10px}.v6-search-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.v6-result small{display:block}.sidebar nav>[draggable="true"]{cursor:grab}.sidebar nav>.dragging{opacity:.45}.pill.success,.pill.ok{background:#def5ea;color:#176241}.pill.failed,.pill.error,.pill.critical{background:#fee5e5;color:#9d1f1f}
.v6-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.v6-project-card{text-decoration:none;color:inherit}.v6-kanban{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px;overflow-x:auto;margin-bottom:18px}.v6-timeline-row{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid #e4eaf1}.v6-timeline-row small{display:block}
@media(max-width:980px){.v6-two-col,.v6-search-grid{grid-template-columns:1fr}.v6-search{grid-template-columns:1fr}.top-account-actions{justify-content:flex-end}}
.v6-token-reveal{border:2px solid #0f8a83}.v6-token-reveal code{display:block;padding:14px;background:#07111f;color:#d9fff8;border-radius:10px;word-break:break-all;margin:12px 0}.v6-toggle{display:flex;align-items:center;gap:6px;white-space:nowrap}

/* MedRod Group V6 · Identidad corporativa y facturación documental */
:root{--medrod-navy:#14253f;--medrod-navy-2:#25466d;--medrod-gold:#c9a052;--medrod-green:#24815d}
.brand .brand-symbol{background:transparent!important;border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(20,37,63,.22)}
.brand .brand-symbol img{display:block;width:46px;height:46px}
.head:before{content:"MEDROD GROUP"!important;color:var(--medrod-gold)!important}
.login-brand-mark{width:76px;height:76px;border-radius:20px;box-shadow:0 16px 34px rgba(20,37,63,.24)}

/* Acceso corporativo MedRod Group */
body.auth{position:relative;min-height:100vh;padding:24px;background:#071426 url('../img/medrod-datacenter-login.webp') center center/cover no-repeat fixed;isolation:isolate}
body.auth:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,rgba(3,12,27,.38),rgba(8,24,48,.18) 45%,rgba(3,12,27,.42));z-index:-1}
body.auth .login{width:min(420px,94vw);padding:36px 38px 40px;gap:16px;background:linear-gradient(145deg,rgba(250,252,255,.82),rgba(233,240,249,.68));border:1px solid rgba(255,255,255,.62);border-radius:28px;box-shadow:0 30px 90px rgba(1,8,20,.48),inset 0 1px 0 rgba(255,255,255,.75);backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%)}
body.auth .login-brand-mark{width:88px;height:88px;margin:0 auto 4px;border-radius:24px;box-shadow:0 18px 38px rgba(5,19,40,.28)}
body.auth .login h1{text-align:center;color:#102747;font-size:32px;letter-spacing:-.025em;margin:0 0 8px}
body.auth .login input{height:52px;margin:0;padding:0 17px;border:1px solid rgba(113,139,171,.34);border-radius:15px;background:rgba(255,255,255,.8);color:#102747;box-shadow:inset 0 1px 2px rgba(15,39,71,.04)}
body.auth .login input:focus{border-color:#bf9346;box-shadow:0 0 0 4px rgba(191,147,70,.15);outline:0}
body.auth .login button{height:52px;margin-top:2px;border:0;border-radius:15px;background:linear-gradient(135deg,#17375f,#24517f);box-shadow:0 14px 30px rgba(13,42,78,.28);color:#fff}
body.auth .login button:hover{background:linear-gradient(135deg,#204873,#2e6192);transform:translateY(-1px)}
body.auth .login .msg{margin:0;padding:11px 13px;border-radius:12px;text-align:center}
@media(max-width:600px){body.auth{padding:14px;background-attachment:scroll}body.auth .login{padding:30px 24px 32px;border-radius:24px}}
.invoice-upload-card{border-top:4px solid var(--medrod-gold)}
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:650}
.billing-field em{display:block;margin-top:6px;color:#b42318;font-style:normal;font-size:12px}
.invoice-lock-notice{display:flex;gap:14px;align-items:center;margin-top:22px;padding:16px 18px;border:1px solid #ead9b8;border-radius:18px;background:#fffaf0;color:var(--medrod-navy)}
.invoice-lock-notice span{color:#6b5b3d;font-weight:650}
.invoice-pdf-preview{margin-top:22px;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:#e8edf4;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.invoice-pdf-preview iframe{display:block;width:100%;height:760px;border:0;background:#fff}
.invoice-pdf-preview.client iframe{height:820px}
@media(max-width:860px){.invoice-lock-notice{align-items:flex-start;flex-direction:column}.invoice-pdf-preview iframe,.invoice-pdf-preview.client iframe{height:540px}}

/* V6.8 · CRM y Facturación conectados */
.crm-invoice-selector{position:relative;margin:20px 0;padding:20px;border:1px solid #d8e1ec;border-radius:18px;background:linear-gradient(135deg,#f8fbff,#fffaf0);display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:18px;align-items:end}
.crm-invoice-selector h3{margin:4px 0 6px}.crm-invoice-selector p{margin:0;color:#64748b}
.crm-search-results{position:absolute;z-index:40;left:0;right:0;top:100%;max-height:320px;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 18px 40px rgba(15,23,42,.18);padding:6px}
.crm-search-option{width:100%;border:0;background:#fff;text-align:left;padding:11px 12px;border-radius:9px;display:flex;flex-direction:column;gap:3px;cursor:pointer;color:#0f172a}
.crm-search-option:hover,.crm-search-option:focus{background:#edf4ff}.crm-search-option small{color:#64748b}
.crm-search-empty{padding:14px;color:#64748b}.crm-selection-status{grid-column:1/-1;padding:10px 12px;border-radius:10px;background:#f1f5f9;color:#475569}
.crm-selection-status:empty{display:none}.crm-selection-status.success{background:#ecfdf5;color:#166534}.crm-selection-status.warning{background:#fffbeb;color:#92400e}
.crm-refresh-alert{display:flex;justify-content:space-between;align-items:center;gap:18px}.crm-refresh-alert>div:last-child{display:flex;gap:8px;flex-wrap:wrap}
.account-create-card .security-note{margin:18px 0}.invoice-side-list>div{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e2e8f0}.invoice-side-list small{color:#64748b}
@media(max-width:800px){.crm-invoice-selector{grid-template-columns:1fr}.crm-refresh-alert{align-items:flex-start;flex-direction:column}.invoice-side-list>div{grid-template-columns:1fr}}

/* Centro de actualizaciones: impedir que las métricas compriman el título. */
.secure-updates-page .enterprise-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.secure-updates-page .enterprise-hero>div{min-width:0}
.secure-updates-page .enterprise-hero h2{max-width:none;overflow-wrap:break-word}
.secure-updates-page .hero-metrics{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:12px;width:100%;min-width:0}
.secure-updates-page .hero-metrics>span{min-width:0;width:auto;white-space:normal}
.secure-updates-page .hero-metrics strong{font-size:clamp(18px,2vw,26px);white-space:normal;overflow-wrap:anywhere;line-height:1.3}
@media(max-width:760px){.secure-updates-page .hero-metrics{grid-template-columns:minmax(0,1fr)}}
