.funnel-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap; }
.funnel-header h2 { margin: 0; font-size: 1.35rem; }
.funnel-header p { margin: .25rem 0 0; color: #6b7280; }
.funnel-mobile-title { display: none; margin: 0 0 1rem; }
.funnel-mobile-title h1 { margin: 0; font-size: 1.35rem; font-weight: 800; color: #111827; }
.funnel-mobile-title p { margin: .35rem 0 0; color: #6b7280; font-size: .95rem; }
.marketing-nav { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0 1.4rem; }
.marketing-nav__btn { display: flex; align-items: center; gap: .5rem; padding: .5rem .9rem; border-radius: 999px; border: 1px solid rgba(148,163,184,.6); background: #fff; color: #1f2937; font-size: .9rem; cursor: pointer; transition: all .2s ease; }
.marketing-nav__btn i { color: #1d4ed8; font-size: .95rem; }
.marketing-nav__btn.is-active { background: linear-gradient(135deg, #2563eb, #1d4ed8); color: #fff; border-color: transparent; box-shadow: 0 10px 24px rgba(37,99,235,.24); }
.marketing-nav__btn.is-active i { color: inherit; }
.marketing-nav__btn:hover { border-color: #2563eb; color: #0f172a; box-shadow: 0 6px 16px rgba(37,99,235,.18); }
.marketing-nav__btn:focus-visible { outline: 3px solid rgba(37,99,235,.45); outline-offset: 2px; }
.marketing-section { display: none; }
.marketing-section.is-active { display: block; }
.funnel-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .75rem; align-items: start; }
.funnel-metrics span { display: block; font-size: .8rem; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }
.funnel-metrics strong { display: block; font-size: 1.2rem; color: #111827; }
.funnel-metrics strong.is-won { color: #059669; }
.funnel-metrics strong.is-lost { color: #dc2626; }
.funnel-columns { display: flex; gap: 1rem; margin-top: 1.4rem; }
.funnel-column { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 16px; display: flex; flex-direction: column; max-height: 620px; min-width: clamp(280px, 36vw, 360px); scroll-snap-align: start; }
.funnel-column__header { padding: 1rem 1rem .75rem; border-bottom: 1px solid rgba(15,23,42,.08); display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.funnel-column__header h3 { margin: 0; font-size: 1.05rem; }
.funnel-column__header p { margin: .35rem 0 0; color: #6b7280; font-size: .9rem; }
.funnel-column__count { background: rgba(59,130,246,.12); color: #1d4ed8; border-radius: 999px; padding: .35rem .75rem; font-weight: 600; }
.funnel-column__body { padding: .9rem 1rem 1rem; overflow-y: auto; overflow-x: hidden; display: grid; gap: .85rem; }
.funnel-column__empty { padding: 1.4rem; text-align: center; color: #9ca3af; font-size: .9rem; border: 1px dashed rgba(156,163,175,.6); border-radius: 14px; background: rgba(249,250,251,.7); }
.lead-card { border: 1px solid rgba(15,23,42,.08); border-radius: 14px; padding: .95rem; box-shadow: 0 10px 24px rgba(15, 23, 42, .08); display: grid; gap: .75rem; background: #fff; width: 100%; box-sizing: border-box; }
.lead-card__header { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.lead-card__header h4 { margin: 0; font-size: 1.05rem; font-weight: 600; color: #111827; }
.lead-card__tag { font-size: .78rem; background: rgba(14,116,144,.12); color: #0f172a; border-radius: 999px; padding: .25rem .55rem; border: 1px solid rgba(14,116,144,.25); }
.lead-card__meta { display: grid; gap: .45rem; margin: 0; }
.lead-card__meta div { display: flex; justify-content: space-between; gap: .5rem; font-size: .86rem; color: #4b5563; }
.lead-card__meta dt { font-weight: 600; color: #1f2937; }
.lead-card__meta dd { margin: 0; text-align: right; }
.lead-card__meta a { color: #2563eb; text-decoration: none; }
.lead-card__notes { position: relative; font-size: .85rem; color: #1f2937; background: rgba(249,250,251,.92); border-radius: 12px; padding: .65rem .75rem; border: 1px solid rgba(148,163,184,.32); box-shadow: inset 0 1px 0 rgba(255,255,255,.65); transition: border-color .18s ease, box-shadow .18s ease; }
.lead-card__notes:focus-within { border-color: rgba(59,130,246,.55); box-shadow: 0 0 0 3px rgba(59,130,246,.18), inset 0 1px 0 rgba(255,255,255,.7); }
.lead-card__notes.is-empty { color: #6b7280; font-style: italic; }
.lead-notes__editor { min-height: 90px; outline: none; white-space: pre-wrap; word-break: break-word; line-height: 1.45; }
.lead-notes__editor[contenteditable="true"]:empty::before { content: attr(data-placeholder); color: #9ca3af; pointer-events: none; }
.lead-notes__status { margin-top: .35rem; font-size: .78rem; color: #4b5563; }
.lead-notes__status.is-error { color: #dc2626; }
.lead-card__stage { display: flex; flex-direction: column; gap: .35rem; }
.lead-card__stage label { display: grid; gap: .25rem; font-size: .85rem; color: #4b5563; }
.lead-card__stage select { border-radius: 10px; border: 1px solid rgba(148,163,184,.8); padding: .45rem .6rem; font-size: .9rem; }
.lead-card__stage select:focus { outline: 2px solid rgba(59,130,246,.35); }

.lead-card + .lead-card { margin-top: .1rem; }

.lead-filter { display: flex; align-items: center; gap: .55rem; background: rgba(15,23,42,.05); border-radius: 999px; padding: .4rem .75rem; border: 1px solid rgba(15,23,42,.08); box-shadow: 0 8px 18px rgba(15,23,42,.08); }
.lead-filter__label { display: flex; align-items: center; gap: .35rem; font-size: .85rem; font-weight: 600; color: #1f2937; }
.lead-filter__label span { display: none; }
.lead-filter__input { border: none; background: transparent; font-size: .88rem; min-width: 200px; color: #1f2937; outline: none; }
.lead-filter__input::placeholder { color: rgba(107,114,128,.8); }
.lead-filter__input::-webkit-search-cancel-button { appearance: none; }
.lead-filter:focus-within { border-color: rgba(37,99,235,.45); box-shadow: 0 12px 28px rgba(37,99,235,.18); }

@media (max-width: 680px) {
  .lead-filter { width: 100%; border-radius: 14px; padding: .45rem .6rem; }
  .lead-filter__label span { display: inline; font-weight: 500; }
  .lead-filter__input { flex: 1; min-width: 0; }
}

.marketing-dashboard__overview { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); margin: 1.5rem 0 2.2rem; align-items: stretch; }
.data-card--visual { gap: 1.2rem; padding: 1.35rem; }
.dashboard-visual { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(200px, 1fr); gap: 1.5rem; align-items: center; }
.dashboard-visual--grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.2rem; align-items: stretch; }
.donut { display: grid; gap: 1rem; justify-items: center; min-width: 220px; }
.donut__chart { width: clamp(140px, 18vw, 180px); height: clamp(140px, 18vw, 180px); transform: rotate(-90deg); }
.donut__ring { fill: none; stroke: rgba(148,163,184,.28); stroke-width: 5; }
.donut__segment { fill: none; stroke-width: 5; stroke-linecap: round; transition: opacity .2s ease; }
.donut__segment.is-success { stroke: #22c55e; }
.donut__segment.is-danger { stroke: #ef4444; }
.donut__segment.is-warning { stroke: #f59e0b; }
.donut__legend { display: grid; gap: .4rem; font-size: .86rem; color: #4b5563; justify-items: start; }
.donut__legend .dot { width: 12px; height: 12px; border-radius: 999px; display: inline-block; margin-right: .45rem; }
.dot.is-success { background: #10b981; }
.dot.is-danger { background: #ef4444; }
.dot.is-warning { background: #f59e0b; }

.visual-metrics { display: grid; gap: 1rem; min-width: min(320px, 100%); flex: 1 1 260px; }
.visual-metric { background: rgba(255,255,255,.7); border: 1px solid rgba(15,23,42,.06); border-radius: 16px; padding: .95rem 1.1rem; box-shadow: 0 12px 28px rgba(15,23,42,.08); display: grid; gap: .4rem; }
.visual-metric h4 { margin: 0; font-size: .95rem; font-weight: 700; color: #1f2937; }
.metric-value { font-size: 1.9rem; font-weight: 800; color: var(--color-primary); line-height: 1; }
.metric-value.is-success { color: #059669; }
.metric-value.is-danger { color: #dc2626; }
.metric-value.is-warning { color: #b45309; }
.metric-hint { margin: 0; font-size: .8rem; color: #6b7280; }

.sparkline { display: flex; align-items: flex-end; gap: .35rem; height: 72px; margin-top: .55rem; padding: 0 .1rem; }
.sparkline span { flex: 1; background: linear-gradient(180deg, rgba(37,99,235,.85), rgba(59,130,246,.55)); border-radius: 8px 8px 0 0; position: relative; min-width: 6px; }
.sparkline span::before, .sparkline span::after { display: none; }
.sparkline[data-sparkline="won"] span { background: linear-gradient(180deg, rgba(16,185,129,.9), rgba(52,211,153,.55)); }
.sparkline[data-sparkline="open"] span { background: linear-gradient(180deg, rgba(245,158,11,.9), rgba(251,191,36,.6)); }
.sparkline span::after { content: attr(data-value); position: absolute; left: 50%; bottom: calc(100% + 6px); transform: translate(-50%, 6px); font-size: .68rem; font-weight: 600; padding: .25rem .35rem; color: #1f2937; background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 8px; box-shadow: 0 10px 22px rgba(15,23,42,.12); opacity: 0; pointer-events: none; transition: opacity .16s ease, transform .16s ease; white-space: nowrap; }
.sparkline span::before { content: ''; position: absolute; left: 50%; bottom: calc(100% + 2px); transform: translateX(-50%); width: 10px; height: 10px; background: #fff; border-left: 1px solid rgba(15,23,42,.08); border-top: 1px solid rgba(15,23,42,.08); rotate: 45deg; opacity: 0; transition: opacity .16s ease; }
.sparkline span:hover::after,
.sparkline span:hover::before { opacity: 1; transform: translate(-50%, -2px); }

@media (max-width: 960px) {
  .dashboard-visual { grid-template-columns: 1fr; justify-items: center; }
  .visual-metrics { width: 100%; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
  .donut { width: 100%; min-width: 0; }
  .donut__chart { width: 140px; height: 140px; }
}

@media (max-width: 720px) {
  .marketing-dashboard__overview { gap: 1.2rem; margin: 1rem 0 1.6rem; }
  .data-card--visual { padding: 1.1rem; }
  .dashboard-visual { gap: 1.2rem; justify-items: stretch; }
  .visual-metrics { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
  .card-stack { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .dashboard-visual { gap: 1rem; }
  .visual-metrics { grid-template-columns: 1fr; }
  .donut__legend { width: 100%; }
  .data-card__header { align-items: flex-start; }
  .data-card__header .btn { width: 100%; justify-content: center; }
}

.funnel-column__body::-webkit-scrollbar { width: 10px; }
.funnel-column__body::-webkit-scrollbar-track { background: rgba(241,245,249,.6); border-radius: 999px; }
.funnel-column__body::-webkit-scrollbar-thumb { background: rgba(148,163,184,.6); border-radius: 999px; }
.funnel-column__body::-webkit-scrollbar-thumb:hover { background: rgba(100,116,139,.6); }
.has-drawer-open { overflow:hidden; }

.funnel-slider { position: relative; display: flex; align-items: stretch; gap: .75rem; }
.funnel-slider__viewport { position: relative; flex: 1; overflow-x: auto; overflow-y: hidden; padding-bottom: .25rem; }
.funnel-slider__viewport::-webkit-scrollbar { height: 10px; }
.funnel-slider__viewport::-webkit-scrollbar-track { background: rgba(241,245,249,.6); border-radius: 999px; }
.funnel-slider__viewport::-webkit-scrollbar-thumb { background: rgba(148,163,184,.6); border-radius: 999px; }
.funnel-slider__viewport::-webkit-scrollbar-thumb:hover { background: rgba(100,116,139,.6); }
.funnel-slider .funnel-columns { margin: 0; padding: .2rem .1rem .2rem 0; scroll-snap-type: x mandatory; }
.funnel-slider .funnel-column { flex: 0 0 clamp(300px, 36vw, 360px); }
.funnel-slider.is-compact .funnel-column { flex-basis: clamp(280px, 42vw, 360px); }
.funnel-slider__control { width: 42px; height: 42px; border: none; border-radius: 999px; background: rgba(15,23,42,.12); color: #0f172a; display: grid; place-items: center; cursor: pointer; transition: background .18s ease, transform .18s ease, opacity .18s ease; align-self: center; }
.funnel-slider__control:hover:not(:disabled) { background: rgba(15,23,42,.18); transform: translateY(-2px); }
.funnel-slider__control:disabled { opacity: .35; cursor: default; }
.funnel-slider__control i { font-size: .9rem; }
.funnel-slider:not(.is-scrollable) .funnel-slider__control { display: none; }

@media (max-width: 768px) {
  .topbar-actions { gap: .35rem; }
  .topbar-actions .btn { min-width: 0; padding: .5rem .7rem; font-size: .84rem; }
  .topbar-actions .btn i { font-size: .88rem; }
  .topbar-actions .btn i + span { margin-left: .35rem; }
  .user-menu__btn { gap: .4rem; padding: .22rem .32rem .22rem .48rem; }
  .user-menu__name { font-size: .86rem; }
  .avatar { width: 30px; height: 30px; }
}

@media (max-width: 560px) {
  .topbar-actions { gap: .3rem; }
  .topbar-actions .btn { padding: .45rem .6rem; font-size: .78rem; }
  .topbar-actions .btn i { font-size: .82rem; }
  .topbar-actions .btn i + span { margin-left: .3rem; }
  .user-menu__btn { padding: .2rem .28rem .2rem .42rem; }
  .user-menu__name { font-size: .82rem; }
  .avatar { width: 28px; height: 28px; }
}
.topbar-actions .btn span { transition: opacity .18s ease; }

@media (max-width: 520px) {
  .topbar-actions { gap: .4rem; }
  .topbar-actions .btn { padding: .45rem; min-width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; }
  .topbar-actions .btn span { display: none; }
  .topbar-actions .btn i { margin: 0; font-size: .96rem; }
}
.pending-section { margin-bottom: 1.2rem; padding: 1rem 1.1rem; }
.pending-section__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:.9rem; }
.pending-section__header h3 { margin:0; font-size:1.05rem; font-weight:700; }
.pending-section__header p { margin:.2rem 0 0; color: var(--color-gray-700); max-width: 460px; }
.pending-section__list { list-style:none; padding:0; margin:0; display:grid; gap:.8rem; }
.pending-section__item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem .85rem; border:1px solid rgba(24,27,33,.08); border-radius:16px; background:#fff; box-shadow:0 10px 24px rgba(15,23,42,.08); }
.pending-section__identity { display:flex; align-items:center; gap:.7rem; }
.pending-section__avatar { width:42px; height:42px; border-radius:999px; background: linear-gradient(135deg, rgba(37,58,148,.18), rgba(1,84,249,.15)); display:grid; place-items:center; font-weight:700; color: var(--color-primary); }
.pending-section__avatar.has-photo { background:#fff; overflow:hidden; border:1px solid rgba(37,58,148,.25); }
.pending-section__avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.pending-section__email { display:block; font-size:.82rem; color: var(--color-gray-700); }
.pending-section__meta { display:flex; align-items:center; gap:.45rem; margin-top:.2rem; }
.pending-section__item .btn { flex-shrink:0; }
/* Panel Master - Admin CSS (Poppins + paleta Soy) */
:root {
  --color-primary: #253a94;
  --color-accent: #0154f9;
  --color-bg: #0e1222;
  --color-white: #ffffff;
  --color-black: #181b21;
  --color-gray-700: #4b4e56;
  --color-gray-400: #b8bbc3;

  --topbar-h: 64px;
  --sidebar-w: 260px;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow-1: 0 8px 24px rgba(0,0,0,.15);
}

html { box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }
[hidden] { display: none !important; }

body.admin-body { margin: 0; font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; background: #f6f8ff; color: var(--color-black); }

.flash-stack { display: grid; gap: .6rem; margin: 0 0 1rem; }
.flash { display: flex; align-items: flex-start; gap: .6rem; padding: .7rem 1rem; border-radius: 14px; border: 1px solid rgba(24,27,33,.08); background: #fff; box-shadow: 0 12px 28px rgba(0,0,0,.08); font-weight: 600; color: var(--color-black); }
.flash__icon { width: 24px; height: 24px; display:grid; place-items:center; border-radius: 999px; background: rgba(1,84,249,.18); color: var(--color-primary); font-size: .9rem; }
.flash--success { border-color: rgba(22,163,74,.25); background: #ecfdf3; color: #14532d; }
.flash--success .flash__icon { background: rgba(22,163,74,.18); color: #047857; }
.flash--error { border-color: rgba(220,38,38,.25); background: #fef2f2; color: #991b1b; }
.flash--error .flash__icon { background: rgba(220,38,38,.18); color: #b91c1c; }

/* Topbar blanco */
.topbar {
  position: fixed; top: 0; right: 0; left: var(--sidebar-w); height: var(--topbar-h);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 0 .9rem; background: #fff; border-bottom: 1px solid rgba(24,27,33,.08); box-shadow: 0 6px 16px rgba(0,0,0,.06); z-index: 220;
  transition: background .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.topbar__left { display: flex; align-items: center; gap: .6rem; }
.brand { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--color-black); font-weight: 800; letter-spacing: .2px; }
.brand__name { font-size: 1.05rem; }
.icon-btn { width: 38px; height: 38px; display:grid;place-items:center; background: transparent; border: 1px solid rgba(24,27,33,.12); border-radius: 10px; cursor: pointer; }
.icon-btn:hover { background: rgba(1,84,249,.06); }

/* Hidden by default; shown conditionally in mobile when sidebar is open */
#sidebar-toggle { display: none; }
#sidebar-close { display: none; }

.topbar__right { display:flex; align-items:center; gap: .6rem; }
.topbar__center { flex: 1; display:flex; justify-content:flex-end; }
.topbar-actions { display:flex; align-items:center; gap:.6rem; }
.topbar-actions .btn { min-width: 150px; padding:.7rem 1.1rem; font-size:.95rem; }
.topbar-actions .btn--ghost { color: var(--color-primary); border-color: rgba(37,58,148,.35); }
.topbar-actions .btn--ghost:hover { background: rgba(1,84,249,.08); }
.user-menu { position: relative; }
.user-menu__btn { display:flex; align-items:center; gap:.6rem; padding:.3rem .4rem .3rem .6rem; border:1px solid rgba(24,27,33,.12); background:#fff; border-radius: 999px; cursor:pointer; }
.user-menu__name { font-weight: 600; color: var(--color-black); }
.avatar { width: 34px; height: 34px; border-radius: 999px; display:grid;place-items:center; color:#fff; font-weight:800; letter-spacing:.4px; background: linear-gradient(135deg, var(--color-primary), var(--color-accent)); border: 1px solid rgba(1,84,249,.35); overflow:hidden; position: relative; }
.avatar.has-photo { padding:0; background: rgba(15,23,42,.06); border: 1px solid rgba(15,23,42,.12); }
.avatar__img { width: 100%; height: 100%; object-fit: cover; display:block; }
.user-menu__dropdown { position:absolute; right:0; top: calc(100% + 8px); min-width: 220px; background: #fff; border:1px solid rgba(24,27,33,.08); border-radius: 12px; box-shadow: var(--shadow-1); padding: .4rem; }
.user-menu__item { display:flex; align-items:center; gap:.5rem; padding:.6rem .7rem; border-radius: 10px; color: var(--color-black); text-decoration: none; font-weight: 600; }
.user-menu__item i { width: 18px; text-align:center; color: inherit; }
.user-menu__item:hover { background: rgba(1,84,249,.06); }
.user-menu__item.is-danger { color: #b00020; }
.divider { height: 1px; background: rgba(24,27,33,.08); margin: .25rem .15rem; }

/* Sidebar con degradado azul */
.sidebar {
  position: fixed; top: 0; left: 0; width: var(--sidebar-w); bottom: 0; z-index: 40;
  background: linear-gradient(160deg, #253a94, #2a73ff 85%);
  border-right: 1px solid rgba(255,255,255,.18);
  color: #fff;
  padding: .9rem .6rem;
  overflow: auto;
  transform: translateX(0);
  transition: transform .25s ease;
}
.side-brand { display:grid; place-items:center; padding: .5rem 0 1rem; }
.side-brand__logo { width: 250px; max-width: 80%; height: auto; filter: drop-shadow(0 10px 20px rgba(0,0,0,.25)); }
.side-nav { display: grid; gap: .25rem; }
.side-link { display:flex; align-items:center; gap:.6rem; padding: .6rem .7rem; border-radius: 12px; color: #fff; text-decoration: none; font-weight: 600; border: 1px solid transparent; font-size: .95rem; }
.side-link:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.14); }
.side-link.is-active { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.22); box-shadow: 0 8px 20px rgba(0,0,0,.15); }
.side-link i { width: 22px; text-align:center; }
.side-link--toggle { width: 100%; justify-content: flex-start; text-align: left; background: transparent; border: 1px solid transparent; appearance: none; padding-right: .9rem; font-size: .95rem; }
.side-link--toggle .side-link__chevron { margin-left: auto; transition: transform .2s ease; font-size: .8rem; opacity: .85; }
.side-group { border-radius: 14px; padding: .1rem 0 .3rem; transition: background .2s ease, box-shadow .2s ease; }
.side-group:not(.is-open) .side-link--toggle:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); }
.side-group.is-open { background: rgba(255,255,255,.12); box-shadow: 0 10px 24px rgba(0,0,0,.15); }
.side-group.is-open .side-link--toggle { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.24); }
.side-group.is-open .side-link__chevron { transform: rotate(180deg); opacity: 1; }
.side-subnav { display: grid; gap: .25rem; margin: .4rem .2rem 0 2.6rem; padding-left: 0; border-left: 2px solid rgba(255,255,255,.25); }
.side-subnav__link { display: flex; align-items: center; gap: .45rem; padding: .35rem .4rem; border-radius: 10px; color: rgba(255,255,255,.85); font-weight: 500; text-decoration: none; transition: background .2s ease, color .2s ease, box-shadow .2s ease; }
.side-subnav__link:hover { background: rgba(255,255,255,.16); color: #fff; }
.side-subnav__link.is-active { background: rgba(255,255,255,.26); color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.18); font-weight: 600; }
.side-subnav__link::before { content: ''; width: 6px; height: 6px; border-radius: 999px; background: currentColor; opacity: .65; }
.side-subnav__link.is-active::before { opacity: 1; }
.side-subnav[hidden] { display: none; }

/* Content */
.content { margin-top: var(--topbar-h); margin-left: var(--sidebar-w); padding: 1rem; }
.marketing-section { margin-top: 2.5rem; display: grid; gap: 1.25rem; }
.marketing-section:first-of-type { margin-top: 3rem; }
.section-header { display: flex; flex-direction: column; gap: .35rem; }
.section-header h2 { font-size: 1.4rem; font-weight: 700; margin: 0; color: #111827; }
.section-subtitle { margin: 0; color: #6b7280; font-size: .95rem; }
.card-stack { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.data-card { background: #fff; border-radius: 16px; padding: 1.1rem; box-shadow: 0 12px 30px rgba(15, 23, 42, .1); border: 1px solid rgba(15, 23, 42, .08); display: flex; flex-direction: column; gap: .85rem; }
.data-card__header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.data-card__header h3 { margin: 0; font-size: 1.1rem; font-weight: 600; color: #1f2937; }
.data-card__body { color: #4b5563; display: grid; gap: .75rem; }
.stage-pills { display: flex; flex-wrap: wrap; gap: .4rem; }
.stage-pill { background: rgba(59,130,246,.12); border: 1px solid rgba(59,130,246,.3); color: #1d4ed8; font-size: .85rem; padding: .3rem .6rem; border-radius: 999px; display: inline-flex; align-items: center; gap: .35rem; }
.stage-pill:nth-child(odd) { background: rgba(14,116,144,.12); border-color: rgba(14,116,144,.25); color: #0f172a; }
.data-list { display: grid; gap: .5rem; margin: 0; }
.data-list div { display: flex; justify-content: space-between; font-size: .9rem; color: #374151; }
.data-list dt { font-weight: 600; color: #1f2937; }
.data-list dd { margin: 0; }
.data-card__footer { display: flex; justify-content: flex-end; }
.channel-board { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.channel-card { background: #fff; border-radius: 14px; padding: 1rem; border: 1px solid rgba(17, 24, 39, .1); box-shadow: 0 8px 22px rgba(15, 23, 42, .08); display: grid; gap: .6rem; }
.channel-card header { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.channel-card h3 { margin: 0; font-size: 1.05rem; font-weight: 600; color: #1f2937; }
.channel-card p { margin: 0; color: #4b5563; font-size: .92rem; }
.badge.is-info { background: rgba(59, 130, 246, .12); color: #1d4ed8; }
.badge.is-warning { background: rgba(234, 179, 8, .12); color: #92400e; }

@media (max-width: 980px) {
  .topbar { left: 0; right: 0; z-index: 120; }
  .topbar__left { padding-left: 52px; }
  #sidebar-toggle {
    display: grid;
    position: fixed;
    top: calc(var(--topbar-h) / 2 - 19px);
    left: 16px;
    z-index: 230;
    box-shadow: 0 12px 24px rgba(15,23,42,.18);
    background: rgba(255,255,255,.92);
    border-color: rgba(24,27,33,.12);
  }
  body.admin-body.sidebar-open #sidebar-toggle { transform: rotate(90deg); }
  /* Only keep the hamburger icon visible and interactive */
  .topbar { background: #fff; border-bottom-color: rgba(24,27,33,.08); box-shadow: 0 6px 16px rgba(0,0,0,.06); }
  .topbar .brand { display: inline-flex; }
  .topbar__right { display: flex; }
  #sidebar-toggle { pointer-events: auto; }
  /* Close button embedded inside the sidebar */
  #sidebar-close {
    position: absolute;
    top: .85rem;
    right: .9rem;
    width: 38px;
    height: 38px;
    z-index: 210;
    box-shadow: 0 12px 24px rgba(15,23,42,.18);
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(24,27,33,.12);
    border-radius: 10px;
    display: none;
  }
  body.admin-body.sidebar-open #sidebar-close { display: grid; place-items: center; }
  body.admin-body.sidebar-open .sidebar { padding-top: 3rem; }
  /* Hide the left toggle while the sidebar is open */
  body.admin-body.sidebar-open #sidebar-toggle { display: none; }
  /* When the sidebar is open, hide other topbar elements so only the hamburger sits above */
  body.admin-body.sidebar-open .topbar .brand,
  body.admin-body.sidebar-open .topbar__right { opacity: 0; visibility: hidden; pointer-events: none; }
  .sidebar {
    width: min(92vw, 360px);
    max-width: 360px;
    transform: translateX(-105%);
    box-shadow: 0 28px 48px rgba(15,23,42,.28);
    z-index: 200;
    transition: transform .28s ease, box-shadow .28s ease;
  }
  .sidebar.is-open { transform: translateX(0); }
  .content { margin-left: 0; }
  body.admin-body.sidebar-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 180;
    background: rgba(15,23,42,.45);
    backdrop-filter: blur(2px);
    opacity: 1;
    transition: opacity .25s ease;
    pointer-events: auto;
  }
  body.admin-body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0;
  }
  body.admin-body.sidebar-open { overflow: hidden; }
}

/* Página, tarjetas y tablas */
.page-header { display:flex; align-items:flex-end; justify-content: space-between; margin-bottom: 1rem; }
.page-title { margin: 0; font-size: 1.6rem; font-weight: 800; color: var(--color-black); }
.page-sub { margin: .2rem 0 0; color: var(--color-gray-700); }

.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .9rem; }
.card { background: #fff; border:1px solid rgba(24,27,33,.08); border-radius: var(--radius); box-shadow: 0 10px 24px rgba(0,0,0,.06); overflow: hidden; }
.manual-page { display: grid; gap: 1.4rem; }
.manual-page > .card { margin: 0; }
.card__head { padding: .8rem .9rem .2rem; }
.card__title { margin: 0; font-size: 1.05rem; }
.card__body { padding: .3rem .9rem .9rem; color: var(--color-gray-700); }
.card__foot { padding: .9rem; border-top: 1px solid rgba(24,27,33,.06); }

.form-card { border-radius: 26px; overflow: hidden; background: linear-gradient(180deg, rgba(1,84,249,.05), rgba(255,255,255,1)); border:1px solid rgba(24,27,33,.06); box-shadow: 0 18px 36px rgba(1,84,249,.12); }
.form-card__header { padding: 1.35rem 1.85rem 1.05rem; display:grid; gap:.2rem; background: rgba(255,255,255,.82); backdrop-filter: blur(4px); border-bottom: 1px solid rgba(24,27,33,.06); }
.form-card__header h2 { margin:0; font-size:1.35rem; font-weight:800; color: var(--color-black); }
.form-card__header p { margin:0; color: var(--color-gray-700); }
.form-card__body { padding: 1.4rem 1.85rem 1.65rem; display:grid; gap:1.1rem; background:#fff; }

.form-grid { display:grid; gap:1.1rem; }
.form-grid__two-columns { display:grid; gap:1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid__three-columns { display:grid; gap:1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (max-width: 960px) {
  .form-grid__two-columns,
  .form-grid__three-columns { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .form-card { border-radius: 22px; }
  .form-card__header { padding: 1.2rem 1.3rem .95rem; }
  .form-card__body { padding: 1.2rem 1.3rem 1.4rem; }
  .form-grid__two-columns,
  .form-grid__three-columns { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  body.is-funnel-view .topbar .brand { display: none; }
  body.is-funnel-view .funnel-mobile-title { display: block; }
  .marketing-dashboard__funnel .data-card__header { align-items: flex-start; gap: .75rem; }
  .marketing-dashboard__funnel .data-card__header > a { width: 100%; justify-content: center; }
  .marketing-dashboard__funnel .data-list { gap: .75rem; }
  .marketing-dashboard__funnel .data-list div { align-items: baseline; flex-wrap: wrap; }
  .marketing-dashboard__funnel .data-list dt { font-size: .9rem; }
  .marketing-dashboard__funnel .data-list dd { font-size: 1.05rem; font-weight: 700; }
  .marketing-dashboard__funnel .stage-pills { gap: .35rem; }
  .marketing-dashboard__funnel .stage-pill { flex: 1 1 calc(50% - .35rem); justify-content: space-between; min-width: 0; padding: .35rem .55rem; font-size: .8rem; }
  .marketing-dashboard__funnel .stage-pill strong { font-size: .95rem; }
  .funnel-columns { gap: .75rem; }
  .funnel-column { min-width: 100%; border-radius: 18px; }
  .funnel-slider { display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: auto 1fr; align-items: center; gap: .5rem; padding: 0; }
  .funnel-slider__control { position: static; width: 42px; height: 42px; transform: none; }
  .funnel-slider__control.is-prev { justify-self: start; }
  .funnel-slider__control.is-next { justify-self: end; }
  .funnel-slider__viewport { grid-column: 1 / -1; grid-row: 2; padding-bottom: 0; }
  .funnel-slider .funnel-column { flex: 0 0 100%; min-width: 100%; }
  .funnel-slider.is-compact .funnel-column { flex-basis: 100%; }
}

.table-wrap { width: 100%; overflow:auto; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { text-align: left; padding: .75rem; border-bottom: 1px solid rgba(24,27,33,.06); white-space: nowrap; }
.table thead th { font-size: .9rem; color: var(--color-gray-700); }
.badge { display:inline-block; padding: .25rem .6rem; border-radius: 999px; font-weight: 700; font-size: .8rem; }
.badge.is-success { color: #0b7d38; background: #d7f8e6; border: 1px solid #afeecb; }
.badge.is-warning { color: #8a5800; background: #fff1cf; border: 1px solid #ffe19c; }
.badge.is-info { color: #1d4ed8; background: #e0e7ff; border: 1px solid #c7d2fe; }
.badge--pendiente { color:#92400e; background:rgba(251,191,36,.18); border:1px solid rgba(249,115,22,.28); }
.badge--en_progreso { color:#1d4ed8; background:rgba(59,130,246,.16); border:1px solid rgba(37,99,235,.28); }
.badge--logrado { color:#0f766e; background:rgba(45,212,191,.18); border:1px solid rgba(20,184,166,.32); }
.badge--cancelado { color:#b91c1c; background:rgba(248,113,113,.16); border:1px solid rgba(248,113,113,.28); }
.diagnostico-status { position:relative; display:inline-flex; align-items:center; }
.diagnostico-status-badge { display:inline-flex; align-items:center; gap:.4rem; cursor:pointer; }
.diagnostico-status.is-open .diagnostico-status-badge { box-shadow:0 12px 24px rgba(15,23,42,.18); }
.diagnostico-status.is-loading .diagnostico-status-badge { opacity:.7; pointer-events:none; }
.diagnostico-status__menu { position:absolute; top:calc(100% + .4rem); right:0; min-width:180px; padding:.45rem; border-radius:14px; background:#fff; box-shadow:0 22px 44px rgba(15,23,42,.18); border:1px solid rgba(15,23,42,.08); display:grid; gap:.25rem; z-index:15; }
.diagnostico-status__option { display:flex; align-items:center; justify-content:space-between; gap:.65rem; width:100%; padding:.55rem .75rem; border-radius:12px; border:none; background:transparent; font-weight:600; color: var(--color-gray-800); transition:background .18s ease, color .18s ease; cursor:pointer; }
.diagnostico-status__option:hover, .diagnostico-status__option:focus-visible { background:rgba(1,84,249,.08); color: var(--color-primary); outline:none; }
.diagnostico-status__option i { opacity:0; transition:opacity .18s ease; color: var(--color-primary); }
.diagnostico-status__option.is-active { background:rgba(1,84,249,.12); color: var(--color-primary); }
.diagnostico-status__option.is-active i { opacity:1; }
.table--users thead th { background: linear-gradient(90deg, rgba(37,58,148,.95), rgba(1,84,249,.85)); color:#fff; border-bottom: none; font-weight: 600; letter-spacing: .3px; }
.table--users tbody tr { background: rgba(255,255,255,.9); transition: transform .12s ease, box-shadow .12s ease; }
.table--users tbody tr:nth-child(odd) { background: rgba(255,255,255,.96); }
.table--users tbody tr:hover { transform: translateY(-2px); box-shadow: 0 14px 24px rgba(1,84,249,.12); }
.table--users td { vertical-align: middle; border-bottom-color: rgba(24,27,33,.05); }
.table-empty { text-align: center; padding: 1.4rem !important; color: var(--color-gray-700); font-weight: 600; }
.table-actions { display:flex; gap:.5rem; justify-content:flex-end; align-items:center; flex-wrap:wrap; }
.inline-form { display:inline; }

.mini-cards { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap:.75rem; margin-bottom: .85rem; }
.mini-card { background: linear-gradient(135deg, #253a94, #0154f9); color:#fff; border-radius: 18px; padding: .65rem .75rem; box-shadow: 0 14px 24px rgba(1,84,249,.18); display:grid; grid-template-rows: auto auto; gap:.25rem; min-height: 88px; }
.mini-card--pending { background: linear-gradient(135deg, #1f2937, #3b82f6); }
.mini-card h3 { margin:0; font-size: .95rem; font-weight: 700; opacity: .8; }
.mini-card__stats { display:flex; align-items:baseline; gap:.5rem; }
.mini-card__value { margin:0; font-size: 1.4rem; font-weight: 800; }
.mini-card__label { margin:0; font-size: .8rem; opacity: .82; }

.page-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.4rem; }
.page-header--filters { align-items:stretch; }
.page-header__title { display:flex; align-items:center; gap:.6rem; }
.page-header__filters { display:flex; align-items:center; gap:.6rem; flex-wrap:nowrap; background: linear-gradient(135deg, rgba(37,58,148,.12), rgba(1,84,249,.08)); padding:.55rem .7rem; border-radius:28px; border:1px solid rgba(1,84,249,.15); box-shadow:0 22px 44px rgba(1,84,249,.18); overflow-x:auto; }
.page-header__filters::-webkit-scrollbar { height:6px; }
.page-header__filters::-webkit-scrollbar-thumb { background: rgba(1,84,249,.35); border-radius:999px; }
.filter-group { display:flex; align-items:center; gap:.45rem; background:#fff; border-radius:999px; padding:.32rem .7rem; border:1px solid rgba(148,163,184,.22); box-shadow:0 12px 28px rgba(15,23,42,.1); font-size:.88rem; white-space:nowrap; }
.filter-group:first-child { flex:1 1 auto; min-width:280px; }
.filter-group:not(:first-child) { flex:0 0 auto; }
.filter-label { color: var(--color-primary); font-size:.88rem; }
.filter-input { border:none; outline:none; background:transparent; font-size:.88rem; padding:.15rem .25rem; min-width:0; width:100%; }
.filter-select { border:none; outline:none; background:transparent; font-size:.88rem; padding:.15rem .1rem; }
.filter-input::placeholder { color: rgba(15,23,42,.45); }
.filter-select { cursor:pointer; }
.filter-actions { display:flex; align-items:center; gap:.6rem; flex:0 0 auto; }
.filter-empty { display:grid; place-items:center; padding:1.6rem; background: rgba(148,163,184,.15); border:1px dashed rgba(148,163,184,.6); border-radius:18px; color: rgba(15,23,42,.6); font-weight:600; gap:.35rem; }
.filter-empty[hidden] { display:none !important; }
.filter-empty i { font-size:1.4rem; color: rgba(15,23,42,.4); }

.filter-feedback { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:1.1rem; padding:.75rem 1rem; background: rgba(1,84,249,.08); border:1px solid rgba(1,84,249,.16); border-radius:18px; box-shadow:0 12px 28px rgba(1,84,249,.12); transition: opacity .2s ease, transform .2s ease; }
.filter-feedback.is-muted { opacity:.65; transform: translateY(2px); }
.filter-feedback__count { display:flex; align-items:center; gap:.65rem; font-weight:700; color: var(--color-primary); }
.filter-feedback__count i { font-size:1.1rem; }
.filter-feedback__text { display:flex; align-items:baseline; gap:.4rem; }
#filter-count { font-size:1.3rem; font-weight:800; color: var(--color-primary); display:inline-flex; align-items:center; }
#filter-count.is-popping { animation: popScale .4s ease; }
.filter-feedback__descriptor { font-size:.95rem; font-weight:600; color: var(--color-primary); text-transform: lowercase; }
.filter-feedback__chips { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.filter-chip { display:inline-flex; align-items:center; gap:.45rem; padding:.35rem .65rem; border-radius:999px; background:#fff; color: var(--color-primary); border:1px solid rgba(1,84,249,.22); font-weight:600; cursor:pointer; box-shadow:0 10px 20px rgba(1,84,249,.16); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.filter-chip:hover { transform: translateY(-2px); box-shadow:0 14px 28px rgba(1,84,249,.2); background: rgba(255,255,255,.95); }
.filter-chip i.fa-xmark { font-size:.85rem; color: rgba(24,27,33,.55); }

.clientes-page .page-header__filters { flex-wrap: nowrap; gap:.6rem; padding:.35rem .6rem; }
.clientes-page .filter-group { font-size:.8rem; padding:.25rem .45rem; }
.clientes-page .filter-label { font-size:.78rem; }
.clientes-page .filter-input,
.clientes-page .filter-select { font-size:.78rem; min-width:160px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip: rect(0,0,0,0); border:0; }

.user-card { transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; }
.user-card.is-entering { opacity:0; transform: translateY(8px); animation: cardFadeIn .22s ease forwards; }
.user-card.is-exiting { opacity:1; transform: translateY(0); animation: cardFadeOut .22s ease forwards; }

@keyframes popScale {
  0% { transform: scale(1); }
  30% { transform: scale(1.25); }
  60% { transform: scale(.98); }
  100% { transform: scale(1); }
}

@keyframes cardFadeIn {
  0% { opacity:0; transform: translateY(12px); }
  100% { opacity:1; transform: translateY(0); }
}

@keyframes cardFadeOut {
  0% { opacity:1; transform: translateY(0); }
  100% { opacity:0; transform: translateY(12px); }
}

.user-stack { display:grid; gap: 1.1rem; }
.user-card { background:#fff; border:1px solid rgba(24,27,33,.08); border-radius: 22px; box-shadow: 0 20px 44px rgba(1,84,249,.16); overflow:hidden; display:flex; justify-content: space-between; align-items: center; gap:1rem; padding: .9rem 1.2rem; transition: transform .18s ease, box-shadow .18s ease; }
.user-card.is-inactive { border-color: rgba(148,163,184,.35); box-shadow: 0 16px 36px rgba(148,163,184,.22); filter: grayscale(.1); opacity:.92; }
.user-card:hover { transform: translateY(-4px); box-shadow: 0 26px 52px rgba(1,84,249,.22); }
.user-card__left { display:flex; align-items:center; gap:1rem; min-width: 220px; }
.user-card__identity { display:flex; align-items:center; gap:1rem; }
.user-card__details { display:flex; flex-direction:column; gap:.2rem; }
.user-card__avatar { width:60px; height:60px; border-radius:18px; object-fit:cover; border:2px solid rgba(1,84,249,.25); box-shadow:0 12px 26px rgba(0,0,0,.14); }
.user-card__avatar.is-placeholder { display:grid; place-items:center; background: linear-gradient(135deg, rgba(37,58,148,.18), rgba(1,84,249,.3)); color: var(--color-primary); font-weight:800; font-size:1.15rem; text-transform: uppercase; }
.user-card__name { margin:0; font-size:1.22rem; font-weight:800; color: var(--color-black); }
.user-card__contact { display:flex; gap:.65rem; align-items:center; flex-wrap:wrap; margin-top:.25rem; font-size:.9rem; }
.user-card__contact a { display:inline-flex; align-items:center; gap:.35rem; color: var(--color-primary); font-weight:600; text-decoration:none; }
.user-card__right { display:flex; flex-direction:column; gap:.45rem; align-items:flex-end; justify-content:center; }
.user-card__status { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.user-card__actions { display:flex; justify-content:flex-end; gap:.45rem; align-items:center; flex-wrap:wrap; }
.team-stack { display:grid; gap: 1.05rem; }
.team-card { background:#fff; border:1px solid rgba(24,27,33,.12); border-radius: 22px; box-shadow: 0 18px 38px rgba(1,84,249,.14); display:flex; justify-content: space-between; align-items:flex-start; gap:1.1rem; padding:1.05rem 1.3rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.team-card.is-inactive { border-color: rgba(148,163,184,.35); box-shadow: 0 16px 34px rgba(148,163,184,.22); opacity:.94; }
.team-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px rgba(1,84,249,.22); }
.team-card__left { display:flex; align-items:flex-start; gap:1rem; min-width: 240px; }
.team-card__avatar { width:64px; height:64px; border-radius:20px; object-fit:cover; border:2px solid rgba(1,84,249,.25); box-shadow:0 14px 26px rgba(0,0,0,.12); background: linear-gradient(135deg, rgba(37,58,148,.08), rgba(1,84,249,.12)); display:grid; place-items:center; font-weight:800; font-size:1.2rem; color: var(--color-primary); text-transform: uppercase; }
.team-card__avatar.is-placeholder { color: var(--color-primary); }
.team-card__details { display:flex; flex-direction:column; gap:.3rem; }
.team-card__name { margin:0; font-size:1.15rem; font-weight:800; color: var(--color-black); }
.team-card__role { margin:0; font-size:.95rem; font-weight:600; color: var(--color-gray-700); }
.team-card__contact { display:flex; gap:.65rem; flex-wrap:wrap; font-size:.88rem; }
.team-card__contact a { color: var(--color-primary); font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; }
.team-card__meta { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.35rem; }
.team-card__right { display:flex; flex-direction:column; gap:.55rem; align-items:flex-end; justify-content:center; min-width: 220px; }
.team-card__info { display:grid; gap:.35rem; color: var(--color-gray-700); font-size:.9rem; text-align:right; }
.team-card__info i { color: var(--color-primary); margin-right:.35rem; }
.team-card__actions { display:flex; flex-wrap:wrap; gap:.45rem; justify-content:flex-end; }
.team-drawer { position: fixed; inset: 0; display:flex; align-items:stretch; justify-content:flex-end; z-index: 260; background: rgba(15,23,42,0.35); backdrop-filter: blur(2px); opacity:0; pointer-events:none; transition: opacity .24s ease; }
.team-drawer.is-open { opacity:1; pointer-events:auto; }
.team-drawer__backdrop { flex:1; }
.team-drawer__panel { width:min(520px, 92vw); background:#fff; height:100%; box-shadow: -20px 0 45px rgba(15,23,42,.18); padding:1.6rem 1.8rem; display:flex; flex-direction:column; gap:1.3rem; border-top-left-radius:26px; border-bottom-left-radius:26px; transform: translateX(100%); transition: transform .28s ease; position: relative; }
.team-drawer.is-open .team-drawer__panel { transform: translateX(0); }
.team-drawer__close { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:14px; border:1px solid rgba(24,27,33,.12); background:#fff; display:grid; place-items:center; cursor:pointer; color: var(--color-black); box-shadow:0 12px 28px rgba(15,23,42,.12); }
.team-drawer__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1.2rem; }
.team-drawer__identity-block { display:flex; flex-direction:column; gap:.5rem; }
.team-drawer__identity { display:flex; align-items:center; gap:.85rem; }
.team-drawer__avatar { width:56px; height:56px; border-radius:18px; background: linear-gradient(135deg, rgba(37,58,148,.16), rgba(1,84,249,.18)); color: var(--color-primary); font-weight:800; font-size:1.15rem; display:grid; place-items:center; text-transform:uppercase; overflow:hidden; }
.team-drawer__avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.team-drawer__name { margin:0; font-size:1.35rem; font-weight:800; color: var(--color-black); }
.team-drawer__subtitle { margin:.15rem 0 0; color: var(--color-gray-700); font-size:.95rem; }
.team-drawer__badges { display:flex; flex-wrap:wrap; gap:.5rem; }
.team-drawer__badges .chip { margin:0; }
.team-drawer__badges .badge { align-self:center; }
.team-drawer__timestamp { font-size:.85rem; color: rgba(15,23,42,.55); font-weight:600; }
.team-drawer__body { flex:1; overflow:auto; padding-right:.35rem; }
.team-drawer__footer { display:flex; justify-content:flex-end; gap:.65rem; }
.team-drawer__actions { display:flex; gap:.5rem; }
.team-drawer__actions .btn { min-width:0; padding:.45rem .8rem; border-radius:18px; font-size:.9rem; display:inline-flex; align-items:center; gap:.35rem; }
.team-drawer__actions .btn i { font-size:.9rem; }
.team-drawer__actions .btn.btn--danger { padding:.45rem .9rem; }
.team-drawer__actions .btn--ghost { border-width:1px; }
.team-drawer__placeholder { margin: 0; color: rgba(15,23,42,.6); font-weight:600; text-align:center; }
.team-ficha { display:grid; gap:1rem; margin-top:.4rem; }
.team-ficha__head { display:flex; align-items:flex-start; justify-content:flex-start; gap:1rem; }
.team-ficha__identity { display:flex; align-items:center; gap:1rem; }
.team-ficha__avatar { width:72px; height:72px; border-radius:24px; background: linear-gradient(135deg, rgba(37,58,148,.16), rgba(1,84,249,.18)); color: var(--color-primary); display:grid; place-items:center; font-weight:800; font-size:1.35rem; overflow:hidden; }
.team-ficha__avatar--photo { object-fit:cover; display:block; width:72px; height:72px; border-radius:24px; border:2px solid rgba(1,84,249,.25); box-shadow:0 12px 24px rgba(15,23,42,.12); }
.team-ficha__identity-text h3 { margin:0; font-size:1.35rem; font-weight:800; color: var(--color-black); }
.team-ficha__identity-text p { margin:.1rem 0 0; color: var(--color-gray-700); font-size:.95rem; }
.team-ficha__meta { display:flex; flex-wrap:wrap; gap:.45rem; margin:-.2rem 0 .35rem; }
.team-ficha__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:.85rem; }
.team-ficha__grid h4 { margin:0 0 .35rem; font-size:.95rem; font-weight:700; color: var (--color-black); }
.team-ficha__grid ul { margin:0; padding-left:1.1rem; display:grid; gap:.25rem; color: var(--color-gray-700); font-size:.9rem; }
.team-ficha__lists { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:.85rem; }
.team-ficha__lists h4 { margin:0 0 .35rem; font-size:.95rem; font-weight:700; color: var(--color-black); }
.team-ficha__lists ul { margin:0; padding-left:1.1rem; display:grid; gap:.25rem; color: var(--color-gray-700); font-size:.9rem; }
.team-modal { position: fixed; inset: 0; display:flex; align-items:flex-start; justify-content:center; background: rgba(15,23,42,.4); backdrop-filter: blur(2px); z-index: 270; opacity:0; pointer-events:none; transition: opacity .22s ease; padding-top: 8vh; }
.team-modal.is-open { opacity:1; pointer-events:auto; }
.team-modal__backdrop { position:absolute; inset:0; }
.team-modal__panel { position: relative; width:min(620px, 92vw); max-height: 90vh; overflow:hidden; background:#fff; border-radius: 26px; box-shadow:0 32px 60px rgba(15,23,42,.25); padding:1.6rem; display:flex; flex-direction:column; gap:1.1rem; }
.team-modal__panel--danger { border:1px solid rgba(248,113,113,.4); box-shadow:0 28px 52px rgba(220,38,38,.25); }
.team-modal__panel.is-success { border:1px solid rgba(22,163,74,.22); box-shadow:0 28px 52px rgba(22,163,74,.24); }
.team-modal__panel.is-error { border:1px solid rgba(239,68,68,.24); box-shadow:0 28px 52px rgba(239,68,68,.28); }
.team-modal__panel.is-warning { border:1px solid rgba(234,179,8,.26); box-shadow:0 28px 52px rgba(234,179,8,.3); }
.team-modal__panel.is-info { border:1px solid rgba(59,130,246,.24); box-shadow:0 28px 52px rgba(59,130,246,.28); }
.team-modal__close { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:14px; border:1px solid rgba(24,27,33,.12); background:#fff; display:grid; place-items:center; cursor:pointer; color: var(--color-black); box-shadow:0 12px 24px rgba(15,23,42,.12); }
.team-modal__body { display:flex; flex-direction:column; gap:1rem; }
.team-modal__warning { display:flex; gap:1rem; align-items:flex-start; background: rgba(220,38,38,.06); border:1px solid rgba(220,38,38,.18); border-radius:18px; padding:1rem 1.2rem; }
.team-modal__warning-icon { width:48px; height:48px; border-radius:16px; display:grid; place-items:center; background: rgba(220,38,38,.12); color:#dc2626; font-size:1.3rem; box-shadow:0 10px 24px rgba(220,38,38,.18); }
.team-modal__warning-title { margin:0; font-size:1.05rem; font-weight:700; color: var(--color-black); }
.team-modal__warning-text { margin:.3rem 0 0; color: rgba(15,23,42,.7); font-size:.93rem; }
.team-modal__footer { display:flex; justify-content:flex-end; gap:.75rem; }
.team-modal__header { display:flex; align-items:center; justify-content:space-between; gap:.85rem; padding-right:2.5rem; }
.team-modal__subtitle { margin:.15rem 0 0; color: var(--color-gray-700); font-size:.95rem; }
.marketing-modal { position: fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:min(8vh, 60px) 1.2rem; background: rgba(15,23,42,.45); backdrop-filter: blur(4px); z-index:280; opacity:0; pointer-events:none; transition: opacity .22s ease; }
.marketing-modal.is-open { opacity:1; pointer-events:auto; }
.marketing-modal__backdrop { position:absolute; inset:0; }
.marketing-modal__panel { position:relative; width:min(500px, 94vw); background:#ffffff; border-radius:24px; box-shadow:0 28px 64px rgba(15,23,42,.25); padding:1.8rem; display:flex; flex-direction:column; gap:1.2rem; }
.marketing-modal__close { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:14px; border:1px solid rgba(24,27,33,.12); background:#fff; display:grid; place-items:center; cursor:pointer; color: var(--color-black); box-shadow:0 14px 28px rgba(15,23,42,.12); transition: transform .18s ease, box-shadow .18s ease; }
.marketing-modal__close:hover { transform: translateY(-1px); box-shadow:0 18px 34px rgba(15,23,42,.16); }
.marketing-modal__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-right:2.6rem; }
.marketing-modal__header h3 { margin:0; font-size:1.35rem; font-weight:800; color: var(--color-black); }
.marketing-modal__subtitle { margin:.25rem 0 0; color: rgba(15,23,42,.68); font-size:.95rem; }
.marketing-modal__body { display:flex; flex-direction:column; gap:1.2rem; }
.marketing-modal__footer { display:flex; justify-content:flex-end; gap:.75rem; margin-top:.4rem; }
.marketing-modal__footer .btn { min-width:150px; }
.marketing-modal__footer .btn i { margin-right:.45rem; }
.marketing-modal .form-field { gap:.45rem; }
.marketing-modal select { min-height:46px; border-radius:14px; padding:.65rem .9rem; }
.marketing-modal .form-hint { font-size:.86rem; color: rgba(15,23,42,.6); }
.marketing-modal .form-field.has-error select { border-color: rgba(220,38,38,.6); box-shadow:0 0 0 3px rgba(248,113,113,.24); }
.marketing-modal .form-field.has-error label { color:#b91c1c; }
.marketing-modal .form-field.has-error .form-hint { color: rgba(185,28,28,.75); }
.marketing-modal .form-field.has-error select:focus { outline:none; box-shadow:0 0 0 3px rgba(248,113,113,.3); }
.marketing-modal.is-loading { pointer-events:none; opacity:.75; }
.marketing-modal .form { gap:1.1rem; }
.marketing-modal .btn--ghost { border-color: rgba(148,163,184,.35); color: rgba(15,23,42,.72); }
.marketing-modal .btn--ghost:hover { background: rgba(148,163,184,.12); }
@media (max-width: 540px) {
  .marketing-modal__panel { width: min(96vw, 420px); padding:1.4rem; }
  .marketing-modal__header { padding-right:2.2rem; }
  .marketing-modal__header h3 { font-size:1.22rem; }
  .marketing-modal__footer .btn { min-width:0; flex:1; justify-content:center; }
}
.team-modal--flash { align-items:center; padding-top:0; }
.team-modal--flash .team-modal__panel { width:min(440px, 92vw); gap:1rem; }
.team-modal__header--flash { display:flex; align-items:center; gap:1rem; padding-right:0; }
.team-modal__icon { width:64px; height:64px; border-radius:20px; display:grid; place-items:center; font-size:1.6rem; }
.team-modal__icon[data-type="success"] { background: rgba(22,163,74,.16); color:#047857; box-shadow:0 18px 40px rgba(22,163,74,.2); }
.team-modal__icon[data-type="error"] { background: rgba(239,68,68,.16); color:#b91c1c; box-shadow:0 18px 40px rgba(239,68,68,.22); }
.team-modal__icon[data-type="warning"] { background: rgba(234,179,8,.18); color:#b45309; box-shadow:0 18px 40px rgba(234,179,8,.24); }
.team-modal__icon[data-type="info"] { background: rgba(59,130,246,.18); color:#1d4ed8; box-shadow:0 18px 40px rgba(59,130,246,.24); }
.team-modal__body--flash { gap:.6rem; }
.team-modal__body--flash .team-modal__message { margin:0; color: rgba(15,23,42,.72); font-size:1rem; line-height:1.45; }
.team-modal__footer--flash { justify-content:flex-end; }
.diagnostico-documentos { display:grid; gap:1.4rem; }
.diagnostico-documentos.is-loading { opacity:.75; pointer-events:none; }
.diagnostico-documentos__status { padding:.8rem 1rem; border-radius:18px; font-weight:600; display:flex; align-items:center; gap:.6rem; background:rgba(1,84,249,.08); color:var(--color-primary); border:1px solid rgba(1,84,249,.22); box-shadow:0 18px 36px rgba(1,84,249,.12); }
.diagnostico-documentos__status[data-status="error"] { background:rgba(220,38,38,.1); color:#b91c1c; border-color:rgba(220,38,38,.28); box-shadow:0 18px 36px rgba(220,38,38,.18); }
.diagnostico-documentos__status[data-status="success"] { background:rgba(22,163,74,.12); color:#047857; border-color:rgba(22,163,74,.25); box-shadow:0 18px 36px rgba(22,163,74,.2); }
.diagnostico-documentos__list { display:grid; gap:1.2rem; }
.diagnostico-documentos__empty { display:grid; place-items:center; text-align:center; gap:.7rem; padding:2.4rem 1.6rem; border-radius:24px; background:rgba(1,84,249,.06); border:2px dashed rgba(1,84,249,.28); color:var(--color-primary); font-weight:600; box-shadow:inset 0 0 0 1px rgba(255,255,255,.42); }
.diagnostico-documentos__empty i { font-size:2rem; }
.diagnostico-documento__file { display:flex; flex-direction:column; gap:.45rem; }
.diagnostico-documento__archivo-actual { font-size:.9rem; color:var(--color-gray-700); background:rgba(148,163,184,.12); border:1px solid rgba(148,163,184,.24); border-radius:14px; padding:.5rem .75rem; display:flex; gap:.4rem; align-items:center; }
.diagnostico-documento__archivo-label { font-weight:600; }
.diagnostico-documento__hint { font-size:.9rem; color:rgba(15,23,42,.7); margin-top:.2rem; }
.diagnostico-documento__feedback { background:rgba(255,237,213,.65); border:1px solid rgba(251,146,60,.35); border-radius:18px; padding:1rem 1.2rem; display:grid; gap:.35rem; }
.diagnostico-documento__feedback h4 { margin:0; font-size:1rem; font-weight:700; color:#b45309; }
.diagnostico-documento__feedback p { margin:0; color:#92400e; }
.diagnostico-documento__actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.diagnostico-documento__actions .btn { min-width:0; }
.diagnostico-documento__preview-card { border:1px solid rgba(148,163,184,.24); border-radius:20px; padding:1rem; display:grid; gap:.6rem; background:#fff; box-shadow:0 18px 36px rgba(15,23,42,.08); }
.diagnostico-documento__preview-media { display:grid; place-items:center; min-height:120px; color:var(--color-primary); font-size:2.4rem; }
.diagnostico-documento__preview-media img { max-width:100%; border-radius:16px; box-shadow:0 18px 36px rgba(15,23,42,.12); }
.diagnostico-documento__preview-name { margin:0; font-weight:600; color:var(--color-black); font-size:.95rem; word-break:break-all; }
.diagnostico-documento__preview-empty { display:grid; gap:.4rem; place-items:center; color:rgba(15,23,42,.55); font-size:.9rem; }
.team-form { display:flex; flex-direction:column; gap:1rem; }
.team-form__grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:.9rem; }
.team-form__field { display:flex; flex-direction:column; gap:.4rem; }
.team-form__field span { font-weight:600; color: var(--color-black); }
.team-form__field input,
.team-form__field select,
.team-form__field textarea { border:1px solid rgba(24,27,33,.12); border-radius: 14px; padding:.55rem .75rem; font-family: inherit; font-size:.95rem; background:#fff; color: var(--color-black); box-shadow:0 6px 14px rgba(15,23,42,.08); transition: border-color .16s ease, box-shadow .16s ease; resize: vertical; min-height: 42px; }
.team-form__field textarea { min-height: 90px; }
.team-form__field input:focus,
.team-form__field select:focus,
.team-form__field textarea:focus { outline:none; border-color: rgba(1,84,249,.45); box-shadow:0 0 0 2px rgba(1,84,249,.18), 0 10px 24px rgba(1,84,249,.12); }
.team-form__field--full { grid-column: 1 / -1; }
.team-form__actions { display:flex; justify-content:flex-end; gap:.65rem; margin-top:.25rem; }
.team-form__actions .btn { min-width: 150px; }
.team-form__actions .btn--ghost { color: var(--color-gray-700); border-color: rgba(148,163,184,.4); }
.team-form__actions .btn--ghost:hover { background: rgba(148,163,184,.12); }
.clientes-page { display:grid; gap:1.4rem; }
.clientes-stack { display:grid; gap:1rem; }
.cliente-card { display:flex; justify-content:space-between; align-items:stretch; gap:1.2rem; padding:1.25rem 1.35rem; border-radius:26px; background:#fff; border:1px solid rgba(15,23,42,.06); box-shadow:0 16px 36px rgba(15,23,42,.1); transition: transform .18s ease, box-shadow .18s ease; }
.cliente-card:hover { transform: translateY(-2px); box-shadow:0 22px 44px rgba(15,23,42,.12); }
.cliente-card__left { display:flex; align-items:center; gap:1rem; }
.cliente-card__avatar { width:62px; height:62px; border-radius:20px; background: linear-gradient(135deg, rgba(11,102,255,.16), rgba(15,23,42,.2)); color:#0b66ff; font-weight:800; font-size:1.2rem; display:grid; place-items:center; }
.cliente-card__details { display:grid; gap:.45rem; }

[data-diagnostico-documentos] {
  display: grid;
  gap: 1.4rem;
  padding: 0 0 1.2rem;
}

[data-diagnostico-documentos].is-loading {
  opacity: .75;
  pointer-events: none;
}

[data-diagnostico-documentos] .diagnostico-documentos__status {
  padding: .75rem 1rem;
  border-radius: 16px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .55rem;
  background: rgba(1,84,249,.08);
  color: var(--color-primary);
  border: 1px solid rgba(1,84,249,.22);
  box-shadow: 0 16px 30px rgba(1,84,249,.16);
}

[data-diagnostico-documentos] .diagnostico-documentos__status[data-status="error"] {
  background: rgba(220,38,38,.1);
  color: #b91c1c;
  border-color: rgba(220,38,38,.28);
  box-shadow: 0 16px 30px rgba(220,38,38,.18);
}

[data-diagnostico-documentos] .diagnostico-documentos__status[data-status="success"] {
  background: rgba(22,163,74,.12);
  color: #047857;
  border-color: rgba(22,163,74,.25);
  box-shadow: 0 16px 30px rgba(22,163,74,.2);
}

[data-diagnostico-documentos] .diagnostico-documentos__list {
  display: grid;
  gap: 1.1rem;
}

[data-diagnostico-documentos] .diagnostico-documentos__empty {
  display: grid;
  place-items: center;
  text-align: center;
  gap: .65rem;
  padding: 2.4rem 1.6rem;
  border-radius: 24px;
  background: rgba(1,84,249,.06);
  border: 2px dashed rgba(1,84,249,.28);
  color: var(--color-primary);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.42);
}

[data-diagnostico-documentos] .diagnostico-documentos__empty i {
  font-size: 2rem;
}

.diagnostico-documento {
  background: #fff;
  border-radius: 24px;
  padding: 1.4rem 1.5rem;
  border: 1px solid rgba(24,27,33,.08);
  box-shadow: 0 18px 40px rgba(37,58,148,.16);
  display: grid;
  gap: 1.1rem;
}

.diagnostico-documento__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.diagnostico-documento__info {
  display: grid;
  gap: .35rem;
}

.diagnostico-documento__title {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 700;
  color: var(--color-black);
}

.diagnostico-documento__descripcion {
  margin: 0;
  color: var(--color-gray-700);
  font-size: .92rem;
}

.diagnostico-documento__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  list-style: none;
  padding: 0;
  margin: 0;
  font-weight: 600;
  color: var(--color-primary);
  font-size: .85rem;
}

.diagnostico-documento__meta li::before {
  content: '\2022';
  margin-right: .35rem;
  color: rgba(1,84,249,.45);
}

.diagnostico-documento__meta li:first-child::before {
  display: none;
}

.diagnostico-documento__estado .chip {
  background: linear-gradient(135deg, rgba(37,58,148,.18), rgba(1,84,249,.28));
  color: #fff;
  border: none;
  padding: .35rem .85rem;
  font-weight: 700;
  border-radius: 999px;
  box-shadow: 0 12px 24px rgba(1,84,249,.18);
}

.diagnostico-documento__form {
  display: grid;
  gap: 1rem;
}

.diagnostico-documento__fields {
  display: grid;
  gap: 1.1rem;
  grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr);
  align-items: stretch;
}

.diagnostico-documento__primary {
  display: grid;
  gap: .85rem;
}

.diagnostico-documento__fields .form-field {
  display: grid;
  gap: .35rem;
}

.diagnostico-documento__fields .form-label {
  font-weight: 700;
  color: var(--color-black);
}

.diagnostico-documento__fields select,
.diagnostico-documento__fields textarea,
.diagnostico-documento__fields input[type="file"] {
  border-radius: 16px;
  border: 1px solid rgba(24,27,33,.12);
  padding: .6rem .75rem;
  font-family: inherit;
  font-size: .95rem;
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
  background: rgba(255,255,255,.96);
}

.diagnostico-documento__fields textarea {
  min-height: 110px;
  resize: vertical;
}

.diagnostico-documento__comments textarea {
  min-height: 90px;
}

.diagnostico-documento__file {
  display: grid;
  gap: .35rem;
}

.diagnostico-documento__archivo-actual {
  font-size: .88rem;
  font-weight: 600;
  color: var(--color-primary);
  background: rgba(1,84,249,.08);
  border-radius: 14px;
  padding: .45rem .7rem;
  display: inline-flex;
  gap: .45rem;
  align-items: center;
}

.diagnostico-documento__archivo-label {
  font-weight: 700;
  color: var(--color-black);
}

.diagnostico-documento__preview {
  align-self: stretch;
}

.diagnostico-documento__preview-card {
  display: grid;
  gap: .6rem;
  padding: 1rem 1.1rem;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(37,58,148,.08), rgba(1,84,249,.06));
  border: 1px solid rgba(37,58,148,.15);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35), 0 16px 32px rgba(37,58,148,.18);
  min-height: 100%;
  text-align: center;
}

.diagnostico-documento__preview-media {
  min-height: 140px;
  display: grid;
  place-items: center;
}

.diagnostico-documento__preview-media img {
  max-width: 100%;
  max-height: 180px;
  border-radius: 14px;
  box-shadow: 0 16px 28px rgba(15,23,42,.18);
  object-fit: cover;
}

.diagnostico-documento__preview-media i {
  font-size: 2.2rem;
  color: var(--color-primary);
  filter: drop-shadow(0 12px 20px rgba(1,84,249,.18));
}

.diagnostico-documento__preview-name {
  margin: 0;
  font-weight: 700;
  color: var(--color-primary);
  word-break: break-word;
  font-size: .92rem;
}

.diagnostico-documento__preview-empty {
  display: grid;
  gap: .45rem;
  place-items: center;
  color: rgba(15,23,42,.65);
  font-weight: 600;
  font-size: .9rem;
}

.diagnostico-documento__preview-empty i {
  font-size: 1.6rem;
  color: rgba(15,23,42,.45);
}

.diagnostico-documento__actions {
  display: flex;
  gap: .7rem;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.diagnostico-documento__actions .btn {
  min-width: 180px;
  border-radius: 999px;
  box-shadow: 0 16px 32px rgba(1,84,249,.2);
}

.diagnostico-documento__actions .btn--ghost {
  color: var(--color-primary);
  border-color: rgba(1,84,249,.3);
}

@media (max-width: 720px) {
  .diagnostico-documento {
    padding: 1.1rem 1.2rem;
    border-radius: 22px;
  }

  .diagnostico-documento__fields {
    grid-template-columns: 1fr;
  }

  .diagnostico-documento__preview {
    order: -1;
  }

  .diagnostico-documento__actions .btn {
    min-width: 0;
    flex: 1 1 auto;
  }
}
.cliente-card__name { margin:0; font-size:1.2rem; font-weight:700; color: var(--color-black); }
.cliente-card__meta { display:flex; flex-wrap:wrap; gap:.4rem; }
.chip--type { background: rgba(11,102,255,.12); color:#0b66ff; border:1px solid rgba(11,102,255,.22); }
.cliente-card__doc { font-size:.9rem; color: var(--color-gray-700); display:flex; gap:.4rem; align-items:center; }
.cliente-card__contact { display:flex; flex-wrap:wrap; gap:.6rem; font-size:.9rem; }
.cliente-card__contact a { display:inline-flex; align-items:center; gap:.35rem; padding:.25rem .55rem; border-radius:14px; background: rgba(15,23,42,.06); color: inherit; text-decoration:none; transition: background .16s ease; }
.cliente-card__contact a:hover { background: rgba(11,102,255,.14); color:#0b66ff; }
.cliente-card__right { display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; gap:.75rem; text-align:right; }
.cliente-card__info { display:grid; gap:.35rem; font-size:.9rem; color: var(--color-gray-700); }
.cliente-drawer { position: fixed; inset: 0; display:flex; justify-content:flex-end; background: rgba(15,23,42,.45); backdrop-filter: blur(2px); z-index:260; opacity:0; pointer-events:none; transition: opacity .22s ease; }
.cliente-drawer.is-open { opacity:1; pointer-events:auto; }
.cliente-drawer__backdrop { position:absolute; inset:0; }
.cliente-drawer__panel { position:relative; width:min(540px, 94vw); height:100%; background:#fff; border-top-left-radius:32px; border-bottom-left-radius:32px; padding:1.8rem; overflow-y:hidden; display:flex; flex-direction:column; box-shadow:-26px 0 52px rgba(15,23,42,.18); }
.cliente-drawer__panel::after { content:''; position:absolute; inset:0; pointer-events:none; border-top-left-radius:32px; border-bottom-left-radius:32px; box-shadow: inset 0 1px 0 rgba(15,23,42,.04); }
.cliente-drawer__close { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:14px; border:1px solid rgba(24,27,33,.12); background:#fff; display:grid; place-items:center; color: var(--color-black); box-shadow:0 12px 24px rgba(15,23,42,.12); cursor:pointer; z-index:1; }
.cliente-drawer__header { padding-right:2.5rem; }
.cliente-drawer__identity-block { display:flex; flex-direction:column; gap:.85rem; }
.cliente-drawer__identity { display:flex; align-items:center; gap:1rem; }
.cliente-drawer__avatar { width:56px; height:56px; border-radius:18px; background: linear-gradient(135deg, rgba(11,102,255,.18), rgba(148,163,184,.25)); color:#0b66ff; font-weight:800; font-size:1.1rem; display:grid; place-items:center; text-transform:uppercase; overflow:hidden; }
.cliente-drawer__name { margin:0; font-size:1.3rem; font-weight:800; color: var(--color-black); }
.cliente-drawer__subtitle { margin:.2rem 0 0; color: var(--color-gray-700); font-size:.95rem; }
.cliente-drawer__badges { display:flex; flex-wrap:wrap; gap:.5rem; }
.cliente-drawer__body { flex:1; overflow:auto; margin-top:1.1rem; padding-right:.35rem; display:grid; }
.cliente-drawer__placeholder { margin:0; color: rgba(15,23,42,.6); font-weight:600; text-align:center; }
.cliente-drawer__footer { padding-top:1rem; display:flex; justify-content:flex-end; }
.cliente-drawer__actions { display:flex; gap:.5rem; }
.cliente-drawer__actions .btn { min-width:0; padding:.45rem .8rem; border-radius:18px; font-size:.9rem; display:inline-flex; align-items:center; gap:.35rem; }
.cliente-drawer__actions .btn.btn--danger { padding:.45rem .9rem; }
.cliente-drawer__actions .btn--ghost { border-width:1px; }
.cliente-ficha { display:grid; gap:1.1rem; }
.cliente-ficha__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:.85rem; }
.cliente-ficha__grid h4 { margin:0 0 .35rem; font-size:.95rem; font-weight:700; color: var(--color-black); }
.cliente-ficha__grid ul { margin:0; padding-left:1.1rem; display:grid; gap:.25rem; color: var(--color-gray-700); font-size:.9rem; }
.cliente-ficha__lists { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:.85rem; }
.cliente-ficha__lists h4 { margin:0 0 .35rem; font-size:.95rem; font-weight:700; color: var(--color-black); }
.cliente-ficha__lists ul { margin:0; padding-left:1.1rem; display:grid; gap:.25rem; color: var(--color-gray-700); font-size:.9rem; }
.cliente-modal { position: fixed; inset:0; display:flex; align-items:center; justify-content:center; background: rgba(15,23,42,.4); backdrop-filter: blur(2px); z-index:270; opacity:0; pointer-events:none; transition: opacity .22s ease; }
.cliente-modal.is-open { opacity:1; pointer-events:auto; }
.cliente-modal__backdrop { position:absolute; inset:0; }
.cliente-modal__panel { position:relative; width:min(680px, 94vw); max-height:90vh; overflow:hidden; background:#fff; border-radius:26px; box-shadow:0 32px 64px rgba(15,23,42,.2); padding:1.65rem; display:flex; flex-direction:column; gap:1.2rem; }
.cliente-modal__close { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:14px; border:1px solid rgba(24,27,33,.12); background:#fff; display:grid; place-items:center; color: var(--color-black); box-shadow:0 12px 24px rgba(15,23,42,.12); cursor:pointer; }
.cliente-modal__header { display:flex; align-items:center; justify-content:space-between; gap:.85rem; padding-right:2.5rem; }
.cliente-modal__subtitle { margin:.2rem 0 0; color: var(--color-gray-700); }
.cliente-form { display:flex; flex-direction:column; gap:1rem; }
.cliente-form__grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.95rem; }

.servicios-panel { display:grid; gap:1.4rem; }
.servicios-filters { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; background: linear-gradient(135deg, rgba(37,58,148,.12), rgba(1,84,249,.08)); padding:.6rem .8rem; border-radius:28px; border:1px solid rgba(1,84,249,.16); box-shadow:0 18px 36px rgba(1,84,249,.18); }
.servicios-filters .filter-group { flex:1 1 auto; min-width:240px; }
.servicios-filters .filter-group:nth-child(n+2) { flex:0 0 auto; min-width:220px; }
.servicios-filters .btn { flex:0 0 auto; }

.servicios-grid { display:grid; gap:1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.servicio-card { display:flex; flex-direction:column; gap:.85rem; padding:1.2rem; border-radius:24px; background:#fff; border:1px solid rgba(15,23,42,.08); box-shadow:0 18px 42px rgba(1,84,249,.12); position:relative; overflow:hidden; }
.servicio-card::after { content:''; position:absolute; inset:0; pointer-events:none; border-radius:inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); opacity:.35; }
.servicio-card__media { position:relative; border-radius:18px; overflow:hidden; aspect-ratio: 16 / 9; box-shadow:0 18px 32px rgba(1,84,249,.16); margin:-.6rem -.6rem .2rem; }
.servicio-card__media img { width:100%; height:100%; object-fit:cover; display:block; }
.servicio-card__head { display:flex; flex-direction:column; gap:.35rem; }
.servicio-card__area { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.servicio-card__title { margin:0; font-size:1.22rem; font-weight:800; color: var(--color-black); }
.servicio-card__description { margin:0; color: var(--color-gray-700); line-height:1.55; }
.servicio-card__meta { display:flex; flex-wrap:wrap; gap:.45rem; margin:0; padding:0; list-style:none; color: var(--color-primary); font-weight:600; font-size:.88rem; }
.servicio-card__meta li { display:inline-flex; align-items:center; gap:.35rem; padding:.28rem .65rem; border-radius:999px; background: rgba(1,84,249,.08); border:1px solid rgba(1,84,249,.15); }
.servicio-card__footer { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; flex-wrap:wrap; }
.servicio-card__prices { display:grid; gap:.25rem; font-size:.9rem; color: var(--color-black); }
.servicio-card__prices span { background: rgba(15,23,42,.04); border-radius:12px; padding:.35rem .6rem; }
.servicio-card__actions { display:flex; gap:.45rem; flex-wrap:wrap; justify-content:flex-end; }
.servicio-card__docs { background: rgba(1,84,249,.05); border-radius:18px; padding:.65rem .9rem; border:1px solid rgba(1,84,249,.12); font-size:.9rem; color: var(--color-gray-700); }
.servicio-card__docs summary { cursor:pointer; font-weight:700; display:flex; align-items:center; gap:.45rem; }
.servicio-card__docs summary::marker { display:none; }
.servicio-card__docs[open] { background: rgba(1,84,249,.08); }

.chip--area { background: linear-gradient(135deg, rgba(37,58,148,.18), rgba(1,84,249,.28)); color:#fff; border:1px solid rgba(1,84,249,.35); }

.servicios-filter-empty { margin-top:1.2rem; padding:1.6rem; border-radius:24px; border:1px dashed rgba(148,163,184,.4); background: rgba(148,163,184,.12); text-align:center; display:grid; gap:.6rem; justify-items:center; color: var(--color-gray-700); box-shadow:0 18px 36px rgba(148,163,184,.18); }
.servicios-filter-empty__icon { font-size:2.4rem; color: var(--color-primary); }

.servicios-panel .empty-state { text-align:center; padding:1.8rem; border-radius:28px; background: rgba(148,163,184,.12); border:1px dashed rgba(148,163,184,.35); display:grid; gap:.75rem; place-items:center; color: var(--color-gray-700); box-shadow:0 18px 36px rgba(148,163,184,.18); }
.servicios-panel .empty-state__icon { font-size:2.3rem; color: var(--color-primary); }

.field-error { margin:.4rem 0 0; color:#dc2626; font-weight:600; font-size:.88rem; }
.form-field--upload { display:grid; gap:.45rem; }
.form-field--upload { padding:1rem 1.2rem; border-radius:22px; background: linear-gradient(180deg, rgba(1,84,249,.06), rgba(255,255,255,.92)); border:1px solid rgba(1,84,249,.18); box-shadow:0 18px 36px rgba(1,84,249,.1); position:relative; overflow:hidden; }
.form-field--upload::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; box-shadow: inset 0 1px 0 rgba(255,255,255,.55), inset 0 -1px 0 rgba(15,23,42,.05); }
.form-field--upload legend { font-weight:700; font-size:1rem; color: var(--color-black); }
.form-upload-preview { display:flex; align-items:center; gap:.9rem; padding:.75rem .9rem; border-radius:18px; background: rgba(255,255,255,.92); border:1px solid rgba(1,84,249,.22); box-shadow: 0 16px 28px rgba(1,84,249,.12); }
.form-upload-preview img { width:86px; height:86px; object-fit:cover; border-radius:20px; box-shadow:0 18px 34px rgba(15,23,42,.18); border:2px solid rgba(1,84,249,.32); }
.form-upload-preview .form-check { display:flex; align-items:center; gap:.45rem; background: rgba(1,84,249,.08); border-radius:14px; padding:.4rem .7rem; font-weight:600; color: var(--color-primary); }
.form-check { display:inline-flex; align-items:center; gap:.45rem; font-weight:600; color: var(--color-gray-700); }
.form-grid__two-columns--compact { grid-template-columns: repeat(2, minmax(160px, 1fr)); gap:.75rem; }
.form-field--compact input[type="date"] { padding:.5rem .65rem; border-radius:12px; }

/* Diagnósticos */
.stat-chip { display:grid; gap:.2rem; padding:.6rem .85rem; border-radius:18px; background: rgba(1,84,249,.08); border:1px solid rgba(1,84,249,.18); box-shadow:0 10px 24px rgba(1,84,249,.12); color: var(--color-primary); font-weight:600; min-width:120px; }
.stat-chip__label { font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color: rgba(15,23,42,.7); }
.stat-chip__value { font-size:1.05rem; color: var(--color-primary); }

.settings-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-bottom:1.2rem; }
.settings-tab { border:1px solid rgba(37,58,148,.28); background: rgba(255,255,255,.85); border-radius:16px; padding:.55rem .95rem; font-weight:600; color: rgba(15,23,42,.68); display:inline-flex; align-items:center; gap:.4rem; cursor:pointer; box-shadow:0 10px 20px rgba(1,84,249,.08); transition: all .18s ease; }
.settings-tab i { font-size:.9rem; }
.settings-tab.is-active { background: linear-gradient(135deg, rgba(37,58,148,.9), rgba(1,84,249,.9)); color:#fff; border-color: rgba(1,84,249,.45); box-shadow:0 16px 32px rgba(1,84,249,.18); }
.settings-tab:hover { transform: translateY(-1px); }
.settings-tab:focus-visible { outline:2px solid rgba(1,84,249,.35); outline-offset:3px; }

.settings-panels { display:grid; gap:1.4rem; }
.settings-panel { display:grid; gap:1.2rem; }
.settings-panel[hidden] { display:none !important; }
.settings-panel__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.settings-panel__header h3 { margin:0; font-size:1.15rem; font-weight:800; color: var(--color-black); }
.settings-panel__header p { margin:.2rem 0 0; color: var(--color-gray-700); }
.settings-panel__body { display:grid; gap:1.2rem; }

.questions-list { display:grid; gap:1rem; }
.settings-question { background:#fff; border:1px solid rgba(24,27,33,.08); border-radius:22px; padding:1.1rem 1.3rem; box-shadow:0 18px 32px rgba(1,84,249,.12); display:grid; gap:1rem; }
.settings-question__head { display:flex; justify-content:space-between; align-items:flex-start; gap:1.1rem; flex-wrap:wrap; }
.settings-question__head h4 { margin:0; font-size:1.12rem; font-weight:800; color: var(--color-black); }
.settings-question__head p { margin:.2rem 0 0; color: var(--color-gray-700); }
.settings-question__slug { margin:.35rem 0 0; font-size:.82rem; font-weight:600; color: rgba(15,23,42,.6); letter-spacing:.02em; }
.settings-question__help { color: rgba(15,23,42,.62); font-size:.9rem; }
.settings-question__options { margin:0; font-size:.88rem; color: rgba(15,23,42,.65); }
.settings-question__meta { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.settings-question__meta .chip { background: rgba(1,84,249,.1); color: var(--color-primary); border-color: rgba(1,84,249,.2); }
.settings-question__meta .chip:nth-child(2) { background: rgba(22,163,74,.1); color:#047857; border-color: rgba(22,163,74,.2); }
.settings-question__meta .chip:nth-child(3) { background: rgba(15,23,42,.08); color: var(--color-black); border-color: rgba(15,23,42,.12); }
.settings-question__actions { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; justify-content:flex-end; }
.settings-question__actions .btn { min-width:0; }
.settings-question__order { display:inline-flex; align-items:center; gap:.35rem; }
.settings-question__order .icon-btn { width:34px; height:34px; border-radius:12px; }
.settings-question__order .icon-btn[disabled] { opacity:.35; cursor:not-allowed; }

[data-questions-root].is-loading { opacity:.6; pointer-events:none; }
.empty-state[hidden] { display:none !important; }

.documents-list { display:grid; gap:1rem; }
.settings-document { background:#fff; border:1px solid rgba(24,27,33,.08); border-radius:22px; padding:1.15rem 1.35rem; box-shadow:0 18px 32px rgba(1,84,249,.12); display:grid; gap:1rem; transition: transform .16s ease, box-shadow .16s ease; }
.settings-document:hover { transform: translateY(-2px); box-shadow:0 24px 44px rgba(1,84,249,.16); }
.settings-document__head { display:flex; justify-content:space-between; align-items:flex-start; gap:1.2rem; flex-wrap:wrap; }
.settings-document__title { display:flex; align-items:flex-start; gap:.85rem; }
.settings-document__icon { width:48px; height:48px; border-radius:16px; background: linear-gradient(135deg, rgba(37,58,148,.12), rgba(1,84,249,.18)); display:grid; place-items:center; color: var(--color-primary); font-size:1.15rem; box-shadow:0 12px 22px rgba(1,84,249,.16); }
.settings-document__info { display:grid; gap:.35rem; }
.settings-document__info h4 { margin:0; font-size:1.08rem; font-weight:800; color: var(--color-black); }
.settings-document__info p { margin:0; color: var(--color-gray-700); }
.settings-document__chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.settings-document__chips .chip { background: rgba(1,84,249,.08); border-color: rgba(1,84,249,.2); color: var(--color-primary); }
.settings-document__badges { display:flex; align-items:flex-start; gap:.55rem; flex-wrap:wrap; }
.settings-document__badge { display:flex; flex-direction:column; gap:.15rem; padding:.4rem .65rem; border-radius:16px; background: rgba(1,84,249,.08); border:1px solid rgba(1,84,249,.18); box-shadow:0 10px 22px rgba(1,84,249,.12); min-width:110px; }
.settings-document__badge-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color: rgba(15,23,42,.55); font-weight:700; }
.settings-document__badge-value { font-size:.9rem; font-weight:700; color: var(--color-primary); }
.settings-document__badge.is-active { background: rgba(22,163,74,.12); border-color: rgba(22,163,74,.25); }
.settings-document__badge.is-active .settings-document__badge-value { color:#047857; }
.settings-document__badge.is-inactive { background: rgba(220,38,38,.08); border-color: rgba(220,38,38,.2); }
.settings-document__badge.is-inactive .settings-document__badge-value { color:#b91c1c; }
.settings-document__actions { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; justify-content:flex-end; }
.settings-document__order { display:inline-flex; align-items:center; gap:.35rem; }
.settings-document__order .icon-btn { width:34px; height:34px; border-radius:12px; }
.settings-document__order .icon-btn[disabled] { opacity:.35; cursor:not-allowed; }

.document-types-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap:.55rem; padding:.3rem .2rem; background: rgba(1,84,249,.04); border-radius:18px; border:1px solid rgba(1,84,249,.12); }
.document-types-grid .form-check { background:#fff; border:1px solid rgba(24,27,33,.08); border-radius:14px; padding:.4rem .6rem; box-shadow:0 8px 18px rgba(1,84,249,.08); font-size:.88rem; }
.document-types-grid .form-check input { accent-color: var(--color-primary); }
.document-types-grid .form-check span { font-weight:700; color: var(--color-primary); }

[data-document-quantity] .document-quantity { display:inline-flex; align-items:center; gap:.4rem; background: rgba(1,84,249,.04); border-radius:16px; border:1px solid rgba(1,84,249,.16); padding:.35rem .45rem; box-shadow:0 8px 18px rgba(1,84,249,.08); }
.document-quantity input[type="number"] { width:80px; text-align:center; border:none; background:transparent; font-weight:700; font-size:1rem; color: var(--color-black); }
.document-quantity input[type="number"]:focus { outline:none; box-shadow:none; }
.document-quantity__btn { width:34px; height:34px; border-radius:12px; border:1px solid rgba(1,84,249,.25); background:#fff; color: var(--color-primary); display:grid; place-items:center; cursor:pointer; box-shadow:0 10px 20px rgba(1,84,249,.12); transition: transform .12s ease, box-shadow .12s ease, background .12s ease; }
.document-quantity__btn:hover { transform: translateY(-1px); box-shadow:0 14px 28px rgba(1,84,249,.18); background: rgba(1,84,249,.08); }
.document-quantity__btn:active { transform: scale(.98); }
[data-document-quantity] .form-hint { margin-top:.35rem; }

[data-documents-root].is-loading { opacity:.6; pointer-events:none; }

.diagnostico-entrevista__status[data-status="error"] { color:#b91c1c; }
.diagnostico-entrevista__status[hidden],
.diagnostico-entrevista__status:empty { display:none; }
.diagnostico-entrevista__list { display:grid; gap:1.1rem; }
.diagnostico-entrevista__actions { display:flex; justify-content:flex-end; margin-top:1.1rem; }

.diagnostico-question { border:1px solid rgba(24,27,33,.08); border-radius:22px; padding:1rem 1.2rem; background:#fff; box-shadow:0 16px 36px rgba(37,58,148,.08); display:grid; gap:.65rem; }
.diagnostico-question__field { width:100%; }
.diagnostico-question__field input,
.diagnostico-question__field select,
.diagnostico-question__field textarea { width:100%; max-width:100%; box-sizing:border-box; }
.diagnostico-question__field textarea { min-height:110px; }
.diagnostico-question + .diagnostico-question { margin-top:1rem; }
.diagnostico-question__header { display:flex; align-items:flex-start; justify-content:space-between; gap:.9rem; }
.diagnostico-question__title { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; font-weight:600; color: var(--color-black); }
.diagnostico-question__index { font-weight:800; color: var(--color-primary); }
.diagnostico-question__required { color:#dc2626; font-size:1.1rem; line-height:1; margin-left:.1rem; }
.diagnostico-question__assist { display:inline-flex; align-items:center; gap:.35rem; font-size:.85rem; color: var(--color-gray-700); background: rgba(1,84,249,.08); border-radius:999px; padding:.2rem .55rem; }
.diagnostico-question__assist i { color: var(--color-primary); }
.diagnostico-question__assist span { display:inline; }
.diagnostico-question__meta { display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; }
.diagnostico-question__description { margin:0; color: var(--color-gray-700); font-size:.9rem; }
.diagnostico-question__help { margin:0; color: rgba(37,58,148,.85); font-size:.85rem; display:flex; align-items:center; gap:.35rem; }

.diagnostico-list { display:grid; gap:1.1rem; }
.diagnosticos-list { display:grid; gap:1.8rem; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); align-items:stretch; }
.diagnosticos-list .diagnostico-card { width:100%; }
.diagnostico-card { position:relative; display:flex; flex-direction:column; gap:1rem; padding:1.3rem 1.5rem; border-radius:28px; background:#fff; border:1px solid rgba(15,23,42,.08); box-shadow:0 22px 44px rgba(1,84,249,.1); overflow:hidden; text-decoration:none; color:inherit; }
.diagnostico-card::after { content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit; box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }
.diagnostico-card__header { display:flex; align-items:flex-start; gap:1rem; }
.diagnostico-card__title-block { display:grid; gap:.45rem; flex:1; padding-right:3.6rem; }
.diagnostico-card__title { margin:0; font-size:1.25rem; font-weight:800; color: var(--color-black); }
.diagnostico-card__details { display:grid; gap:.3rem; }
.diagnostico-card__detail { margin:0; color: var(--color-gray-700); font-size:.93rem; display:flex; gap:.4rem; align-items:flex-start; }
.diagnostico-card__detail span { color: rgba(15,23,42,.7); font-weight:600; }
.diagnostico-card__detail strong { color: var(--color-black); }
.diagnostico-card__status { position:absolute; top:1.1rem; right:1.3rem; margin-left:0; }

.diagnostico-detail { display:grid; grid-template-columns: minmax(280px, 320px) 1fr; gap:2rem; align-items:flex-start; }
.diagnostico-summary { position:sticky; top:110px; }
.diagnostico-summary__card { background:#fff; border-radius:28px; padding:1.8rem; box-shadow:0 24px 48px rgba(1,84,249,.12); border:1px solid rgba(1,84,249,.08); display:grid; gap:1.6rem; }
.diagnostico-summary__header { display:flex; gap:1.2rem; align-items:center; }
.diagnostico-summary__avatar { width:92px; height:92px; border-radius:28px; background: linear-gradient(135deg, rgba(1,84,249,.18), rgba(11,102,255,.32)); display:grid; place-items:center; font-size:1.9rem; font-weight:700; color:#fff; overflow:hidden; box-shadow:0 18px 36px rgba(1,84,249,.22); }
.diagnostico-summary__avatar img { width:100%; height:100%; object-fit:cover; }
.diagnostico-summary__title { display:grid; gap:.4rem; }
.diagnostico-summary__title--compact { gap:.35rem; }
.diagnostico-summary__label { font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color: rgba(15,23,42,.56); font-weight:600; }
.diagnostico-summary__title h1 { margin:0; font-size:1.45rem; font-weight:800; color: var(--color-black); }
.diagnostico-summary__title p { margin:0; color: rgba(15,23,42,.7); font-weight:600; }
.diagnostico-summary__chips { display:flex; flex-wrap:wrap; gap:.6rem; }
.diagnostico-summary__section { display:grid; gap:.85rem; }
.diagnostico-summary__section h2 { margin:0; font-size:1rem; font-weight:700; color: var(--color-black); }
.diagnostico-summary__list { margin:0; padding:0; list-style:none; display:grid; gap:.5rem; }
.diagnostico-summary__list .label { display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color: rgba(15,23,42,.52); font-weight:600; }
.diagnostico-summary__list .value { font-size:.96rem; font-weight:600; color: var(--color-black); word-break:break-word; }
.diagnostico-summary__list a { color: var(--color-primary); text-decoration:none; }
.diagnostico-summary__list a:hover { text-decoration:underline; }

.diagnostico-metrics { display:grid; gap:1rem; }
.diagnostico-metrics__item { display:grid; gap:.5rem; }
.diagnostico-metrics__head { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.diagnostico-metrics__label { font-size:.85rem; font-weight:600; color: rgba(15,23,42,.65); }
.diagnostico-metrics__value { font-size:1.05rem; font-weight:700; color: var(--color-black); }

.diagnostico-progress { position:relative; width:100%; height:10px; border-radius:999px; background: rgba(15,23,42,.08); overflow:hidden; box-shadow: inset 0 1px 2px rgba(15,23,42,.12); }
.diagnostico-progress__bar { position:absolute; inset:0; border-radius:999px; background: linear-gradient(135deg, rgba(37,58,148,.85), rgba(1,84,249,.9)); box-shadow: 0 10px 24px rgba(1,84,249,.25); transition: width .25s ease; }

.diagnostico-detail__content { background: linear-gradient(180deg, rgba(1,84,249,.04), rgba(255,255,255,.96)); border-radius:28px; border:1px solid rgba(1,84,249,.1); box-shadow:0 26px 52px rgba(1,84,249,.1); padding:1.4rem 1.6rem 2rem; display:grid; gap:1.4rem; }
.diagnostico-tabs { display:flex; gap:.6rem; border-bottom:1px solid rgba(15,23,42,.08); padding-bottom:.6rem; flex-wrap:wrap; }
.diagnostico-tab { border:none; background: rgba(255,255,255,.7); border-radius:16px; padding:.7rem 1.1rem; font-family:inherit; font-weight:600; color: rgba(15,23,42,.65); display:flex; align-items:center; gap:.4rem; cursor:pointer; transition:all .2s ease; box-shadow:0 10px 20px rgba(1,84,249,.08); }
.diagnostico-tab.is-active { background: var(--color-primary); color:#fff; box-shadow:0 14px 28px rgba(1,84,249,.25); }
.diagnostico-tab:hover { transform:translateY(-1px); }
.diagnostico-tab:focus-visible { outline:2px solid rgba(1,84,249,.4); outline-offset:3px; }

.diagnostico-tab-panels { display:grid; }
.diagnostico-tab-panel { display:block; }
.diagnostico-tab-panel[hidden] { display:none !important; }
.diagnostico-tab-panel { animation: diagnosticoFade .25s ease; }
@keyframes diagnosticoFade { from{ opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }

.diagnostico-items { margin:0; padding:0; list-style:none; display:grid; gap:1.6rem; }
.diagnostico-items li { background:#fff; border-radius:22px; padding:1.2rem 1.4rem; box-shadow:0 16px 32px rgba(15,23,42,.1); border:1px solid rgba(15,23,42,.06); display:grid; gap:.65rem; }
.diagnostico-items h3 { margin:0; font-size:1.05rem; font-weight:700; color: var(--color-black); }
.diagnostico-items p { margin:0; color: rgba(15,23,42,.68); line-height:1.5; }
.diagnostico-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; justify-content:space-between; }
.diagnostico-actions .meta { font-size:.82rem; color: rgba(15,23,42,.6); display:flex; align-items:center; gap:.35rem; }
.diagnostico-empty { background:#fff; border-radius:24px; border:1px dashed rgba(1,84,249,.28); padding:2rem; text-align:center; display:grid; gap:.6rem; color: rgba(15,23,42,.6); box-shadow:0 12px 28px rgba(1,84,249,.08); }
.diagnostico-empty i { font-size:2rem; color: var(--color-primary); }
.diagnostico-empty h3 { margin:0; font-size:1.1rem; font-weight:700; color: var(--color-black); }
.diagnostico-tab-panel[hidden] { display:none !important; }

.informe-editor { display:grid; gap:1rem; background:#fff; border-radius:24px; border:1px solid rgba(1,84,249,.1); box-shadow:0 24px 48px rgba(1,84,249,.08); padding:1.5rem; }
.informe-editor__toolbar { display:flex; flex-wrap:wrap; gap:.6rem; }
.informe-editor__toolbar .icon-btn { min-width:68px; height:40px; border-radius:12px; border:1px solid rgba(1,84,249,.15); background:rgba(1,84,249,.06); color: var(--color-primary); display:inline-flex; align-items:center; justify-content:center; padding:0 1rem; gap:.35rem; font-weight:700; white-space:nowrap; transition:all .2s ease; }
.informe-editor__toolbar .icon-btn[data-informe-btn="bold"],
.informe-editor__toolbar .icon-btn[data-informe-btn="italic"] { min-width:44px; padding:0 .6rem; }
.informe-editor__toolbar .icon-btn[data-informe-btn="paragraph"] { min-width:110px; }
.informe-editor__toolbar .icon-btn[data-informe-btn="align-left"],
.informe-editor__toolbar .icon-btn[data-informe-btn="align-center"],
.informe-editor__toolbar .icon-btn[data-informe-btn="align-right"] { min-width:48px; padding:0 .65rem; }
.informe-editor__toolbar .icon-btn:hover { transform:translateY(-1px); box-shadow:0 10px 18px rgba(1,84,249,.18); }
.informe-editor__content { min-height:300px; border:1px solid rgba(1,84,249,.12); border-radius:18px; padding:1.2rem; font-size:1rem; line-height:1.6; color: var(--color-black); outline:none; background: linear-gradient(180deg, rgba(1,84,249,.02), rgba(255,255,255,.98)); }
.informe-editor__content:focus { border-color: rgba(1,84,249,.45); box-shadow:0 0 0 3px rgba(1,84,249,.18); }
.informe-editor__content h1 { font-size:1.6rem; margin:1.2rem 0 .8rem; font-weight:800; }
.informe-editor__content h2 { font-size:1.35rem; margin:1rem 0 .6rem; font-weight:700; }
.informe-editor__content p { margin:0 0 .8rem; }
.informe-editor__footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; }
.informe-editor__status { font-size:.9rem; color: rgba(15,23,42,.68); }

@media (max-width: 1180px) {
  .diagnostico-detail { grid-template-columns: minmax(0, 1fr); }
  .diagnostico-summary { position:static; }
}

@media (max-width: 768px) {
  .diagnostico-summary__card { padding:1.4rem; }
  .diagnostico-detail__content { padding:1.2rem; border-radius:22px; }
  .diagnostico-tabs { gap:.4rem; }
  .diagnostico-tab { padding:.55rem .85rem; }
}

.alert { display:flex; align-items:center; gap:.55rem; padding:.6rem .75rem; border-radius:16px; font-weight:600; }
.alert--error { background: rgba(220,38,38,.12); color:#b91c1c; border:1px solid rgba(220,38,38,.25); }
.alert--error i { color:#dc2626; }

.form-card__footer-actions { display:flex; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }

.cliente-form__field { display:flex; flex-direction:column; gap:.4rem; }
.cliente-form__field span { font-weight:600; color: var (--color-black); }
.cliente-form__field input,
.cliente-form__field select,
.cliente-form__field textarea { border:1px solid rgba(24,27,33,.12); border-radius:14px; padding:.6rem .75rem; font-family: inherit; font-size:.95rem; background:#fff; color: var(--color-black); box-shadow:0 6px 14px rgba(15,23,42,.08); transition: border-color .16s ease, box-shadow .16s ease; }
.cliente-form__field textarea { min-height:90px; resize: vertical; }
.cliente-form__field input:focus,
.cliente-form__field select:focus,
.cliente-form__field textarea:focus { outline:none; border-color: rgba(11,102,255,.45); box-shadow:0 0 0 2px rgba(11,102,255,.2), 0 10px 24px rgba(11,102,255,.12); }
.cliente-form__field--full { grid-column:1 / -1; }
.cliente-form__actions { display:flex; justify-content:flex-end; gap:.7rem; }
.cliente-form__actions .btn { min-width:160px; }
.cliente-delete-modal { position: fixed; inset:0; display:flex; align-items:flex-start; justify-content:center; padding-top:8vh; background: rgba(15,23,42,.4); backdrop-filter: blur(2px); z-index:270; opacity:0; pointer-events:none; transition: opacity .22s ease; }
.cliente-delete-modal.is-open { opacity:1; pointer-events:auto; }
.cliente-delete-modal__backdrop { position:absolute; inset:0; }
.cliente-delete-modal__panel { position:relative; width:min(520px, 92vw); background:#fff; border-radius:26px; box-shadow:0 32px 64px rgba(220,38,38,.24); padding:1.6rem; display:flex; flex-direction:column; gap:1.1rem; }
.cliente-delete-modal__close { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:14px; border:1px solid rgba(24,27,33,.12); background:#fff; display:grid; place-items:center; color: var(--color-black); box-shadow:0 12px 24px rgba(15,23,42,.12); cursor:pointer; }
.cliente-delete-modal__header { display:flex; align-items:center; justify-content:space-between; gap:.85rem; padding-right:2.5rem; }
.cliente-delete-modal__subtitle { margin:.15rem 0 0; color: rgba(15,23,42,.7); }
.cliente-delete-modal__body { display:flex; flex-direction:column; gap:1rem; }
.cliente-delete-modal__warning { display:flex; gap:1rem; align-items:flex-start; background: rgba(220,38,38,.06); border:1px solid rgba(220,38,38,.18); border-radius:18px; padding:1rem 1.2rem; }
.cliente-delete-modal__warning-icon { width:48px; height:48px; border-radius:16px; display:grid; place-items:center; background: rgba(220,38,38,.12); color:#dc2626; font-size:1.3rem; box-shadow:0 10px 24px rgba(220,38,38,.18); }
.cliente-delete-modal__warning-title { margin:0; font-size:1.05rem; font-weight:700; color: var(--color-black); }
.cliente-delete-modal__warning-text { margin:.3rem 0 0; color: rgba(15,23,42,.7); font-size:.93rem; }
.cliente-delete-modal__footer { display:flex; justify-content:flex-end; gap:.75rem; }
.clientes-empty-state { background:#fff; border:1px dashed rgba(11,102,255,.3); border-radius:22px; padding:2rem; text-align:center; display:grid; gap:.6rem; color: var(--color-gray-700); box-shadow:0 18px 36px rgba(11,102,255,.1); }
.clientes-filter-empty { background:#fff; border-radius:18px; padding:1.4rem; display:grid; place-items:center; gap:.4rem; color: var(--color-gray-700); border:1px dashed rgba(148,163,184,.4); }
.filter-status { display:flex; align-items:center; gap:.5rem; margin:1rem 0; padding:.65rem 1rem; border-radius:16px; background: rgba(1,84,249,.08); color: var(--color-primary); font-weight:600; box-shadow:0 12px 28px rgba(1,84,249,.08); }
.filter-status i { font-size:1rem; }
.filter-status span { display:inline-flex; align-items:center; }
.filter-status[hidden] { display:none; }
.clientes-page.is-filtering .clientes-stack,
.clientes-page.is-filtering .clientes-pending,
.clientes-page.is-filtering .clientes-empty-state { opacity:.55; pointer-events:none; transition:opacity .2s ease; }
.equipo-page.is-filtering .team-stack,
.equipo-page.is-filtering .team-filter-empty,
.equipo-page.is-filtering .pending-section { opacity:.55; pointer-events:none; transition:opacity .2s ease; }
.servicios-panel.is-filtering .servicios-grid,
.servicios-panel.is-filtering .empty-state { opacity:.55; pointer-events:none; transition:opacity .2s ease; }
.empty-state { background:#fff; border:1px dashed rgba(1,84,249,.35); border-radius:22px; padding:2rem; text-align:center; color: var(--color-gray-700); box-shadow:0 18px 36px rgba(1,84,249,.12); display:grid; gap:.6rem; justify-items:center; }
.empty-state__icon { font-size:2.6rem; color: var(--color-primary); }

.user-cell { display:flex; align-items:center; gap:.75rem; }
.user-avatar { width: 42px; height: 42px; border-radius: 14px; object-fit: cover; border: 2px solid rgba(1,84,249,.25); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
.user-avatar.is-placeholder { display:grid; place-items:center; background: linear-gradient(135deg, rgba(37,58,148,.12), rgba(1,84,249,.2)); color: var(--color-primary); font-weight: 700; font-size: .95rem; }

.chip { display:inline-flex; align-items:center; gap:.4rem; padding:.25rem .7rem; border-radius: 999px; font-size:.82rem; font-weight: 700; letter-spacing:.2px; border:1px solid transparent; }
.chip--staff { background: rgba(37,58,148,.1); color: var(--color-primary); border-color: rgba(1,84,249,.2); }
.chip--client { background: rgba(22,163,74,.12); color: #047857; border-color: rgba(16,185,129,.25); }
.chip--area { background: rgba(1,84,249,.12); color: var(--color-primary); border-color: rgba(1,84,249,.22); }
.chip--contract { background: rgba(15,23,42,.08); color: var(--color-black); border-color: rgba(15,23,42,.12); }

.file-field { display:flex; align-items:flex-start; gap:1rem; flex-wrap:wrap; }
.file-field__summary { display:block; width:100%; font-size:.85rem; color: var(--color-gray-700); margin-top:.2rem; }
.file-input__control { display:none; }
.file-button { display:inline-flex; align-items:center; gap:.45rem; background: linear-gradient(135deg, rgba(37,58,148,.85), rgba(1,84,249,.85)); color:#fff; padding:.55rem .95rem; border-radius:999px; font-weight:700; cursor:pointer; border:1px solid rgba(1,84,249,.35); box-shadow:0 12px 24px rgba(1,84,249,.2); transition: transform .15s ease, box-shadow .15s ease; }
.file-button:hover { transform: translateY(-1px); box-shadow:0 16px 32px rgba(1,84,249,.25); }
.photo-preview { width:70px; height:70px; border-radius:18px; background: linear-gradient(135deg, rgba(37,58,148,.12), rgba(1,84,249,.1)); border:2px dashed rgba(1,84,249,.35); box-shadow:0 10px 24px rgba(0,0,0,.08); display:grid; place-items:center; overflow:hidden; position:relative; font-weight:800; color:var(--color-primary); text-transform:uppercase; }
.photo-preview.has-image { border-style:solid; }
.photo-preview__img { width:100%; height:100%; object-fit:cover; }
.photo-preview__initials { font-size:1.1rem; }

/* Botones */
.btn { --btn-bg: linear-gradient(135deg, var(--color-primary), var(--color-accent)); --btn-bg-hover: linear-gradient(135deg, #2f4dd1, #2a73ff); display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.7rem 1rem; border-radius: 999px; color:#fff; text-decoration:none; font-weight:700; border:1px solid rgba(1,84,249,.35); box-shadow: 0 10px 24px rgba(1,84,249,.15); transition: transform .15s ease, box-shadow .15s ease; }
.btn--primary { background: var(--btn-bg); }
.btn--primary:hover { background: var(--btn-bg-hover); }
.btn--ghost { background: transparent; color: var(--color-primary); border:1px solid rgba(37,58,148,.35); }
.btn--ghost:hover { background: rgba(1,84,249,.06); }
.btn--block { width: 100%; }
.btn--sm { padding: .22rem .6rem; font-size: .78rem; gap: .35rem; }
.btn--sm i { font-size: .85rem; }
.btn--danger { background: linear-gradient(135deg, #db1d4b, #ff5f6d); border-color: rgba(220,38,38,.35); box-shadow: 0 10px 18px rgba(220,38,38,.18); }
.btn--danger:hover { background: linear-gradient(135deg, #bf153b, #ff7180); }
.btn:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(1,84,249,.18); }

/* Formularios */
.form { display:grid; gap:.7rem; }
.form-field { display:grid; gap:.25rem; }
label { font-weight: 600; color: var(--color-black); }
input[type="text"], input[type="email"], input[type="password"], input[type="date"], select {
  padding: 0 .7rem;
  border:1px solid rgba(24,27,33,.12);
  border-radius: 12px;
  font-family: inherit;
  background: #fff;
  color: var(--color-black);
  min-height: 38px;
  line-height: 1.3;
  display: inline-flex;
  align-items: center;
}
textarea { min-height: 120px; padding: .75rem .9rem; resize: vertical; line-height: 1.45; border:1px solid rgba(24,27,33,.12); border-radius:12px; background:#fff; color: var (--color-black); font-family: inherit; }
.form-field__header { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-bottom:.4rem; }
.form-field__header label { margin:0; }
.form-field__header .form-hint { margin:0; font-size:.85rem; color: rgba(24,27,33,.65); }
.documents-list { display:flex; flex-direction:column; gap:.75rem; margin-top:.5rem; }
.document-item { border:1px solid rgba(24,27,33,.12); border-radius:12px; padding:.85rem; background:#fff; box-shadow:0 10px 22px rgba(15,23,42,.04); transition:border-color .25s ease, background .25s ease, opacity .25s ease; }
.document-item .document-fields { gap:.75rem; align-items:flex-start; }
.document-item.is-marked-for-removal { border-color: rgba(220,38,38,.45); background: rgba(220,38,38,.06); opacity:.75; }
.document-item.is-marked-for-removal .document-fields { filter: grayscale(.15); }
.document-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin-top:.6rem; }
.document-status { font-size:.85rem; color: rgba(220,38,38,.85); }
.documents-footer { margin-top:1rem; }
.documents-footer .btn { gap:.4rem; }
input[data-document-upload] {
  font-family:'Poppins',sans-serif;
  font-size:.9rem;
  border:none;
  background:transparent;
  padding:0;
  color:transparent;
  width:auto;
  min-width:0;
}
input[data-document-upload]:focus { outline:none; color:transparent; }
input[data-document-upload]::file-selector-button {
  font-family:'Poppins',sans-serif;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  color:#fff;
  border:1px solid rgba(1,84,249,.35);
  border-radius:999px;
  padding:.55rem 1.1rem;
  font-weight:600;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(1,84,249,.15);
  transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
}
input[data-document-upload]::file-selector-button:hover {
  transform: translateY(-1px);
  box-shadow:0 14px 28px rgba(1,84,249,.18);
  background: linear-gradient(135deg, #2f4dd1, #2a73ff);
}
input[data-document-upload]::-webkit-file-upload-button {
  font-family:'Poppins',sans-serif;
  background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
  color:#fff;
  border:1px solid rgba(1,84,249,.35);
  border-radius:999px;
  padding:.55rem 1.1rem;
  font-weight:600;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(1,84,249,.15);
  transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
}
input[data-document-upload]::-webkit-file-upload-button:hover {
  transform: translateY(-1px);
  box-shadow:0 14px 28px rgba(1,84,249,.18);
  background: linear-gradient(135deg, #2f4dd1, #2a73ff);
}
.form-field.has-error label { color: #b91c1c; }
.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error .file-button {
  border-color: rgba(220,38,38,.6);
  box-shadow: 0 0 0 3px rgba(248,113,113,.25), 0 12px 24px rgba(220,38,38,.18);
  animation: pulseError .9s ease;
}
.date-field { position: relative; display: flex; align-items: center; }
.date-field input[type="date"] {
  width: 100%;
  padding-right: 2.4rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.date-field input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0;
  cursor: pointer;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.date-field input[type="date"]::-webkit-inner-spin-button { display: none; }
.date-field input[type="date"]::-webkit-clear-button { display: none; }
.date-field input[type="date"]::-moz-focus-inner { border: 0; }
.date-field input[type="date"]::-ms-clear { display: none; }
.date-field input[type="date"]::-ms-expand { display: none; }
.date-field .daypicker-icon {
  position: absolute;
  right: .75rem;
  color: var(--color-primary);
  pointer-events: none;
  font-size: 1.05rem;
}
.input-with-prefix { display: flex; align-items: center; border:1px solid rgba(24,27,33,.12); border-radius: 12px; background:#fff; overflow:hidden; }
.input-with-prefix:focus-within { border-color: rgba(1,84,249,.45); box-shadow:0 0 0 3px rgba(37,58,148,.12); }
.input-with-prefix .input-prefix { padding:0 .75rem; font-weight:700; color: var(--color-primary); display:inline-flex; align-items:center; justify-content:center; background: rgba(37,58,148,.08); height:100%; }
.input-with-prefix input { border:none; flex:1 1 auto; height: 40px; padding: 0 .7rem; font: inherit; }
.input-with-prefix input:focus { outline:none; }
.password-field { position: relative; display: flex; align-items: center; gap: .5rem; }
.password-field__input { flex: 1 1 auto; }
.password-field__toggle {
  position: static;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid rgba(24,27,33,.12);
  background: rgba(148,163,184,.12);
  color: var(--color-primary);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.password-field__toggle:hover,
.password-field__toggle:focus { background: rgba(37,58,148,.12); border-color: rgba(37,58,148,.35); color: var(--color-accent); outline: none; }
.password-field__toggle.is-active { background: rgba(22,163,74,.12); border-color: rgba(22,163,74,.35); color: #15803d; }
.password-field__toggle i { font-size: .95rem; }
.form-error {
  margin: .15rem 0 0;
  color: #b91c1c;
  font-size: .9rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.form-error::before {
  content: "\f06a";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .85rem;
}
.form-field.has-error .photo-preview { border-color: rgba(220,38,38,.45); box-shadow: 0 0 0 3px rgba(248,113,113,.2); }
.form-field.has-error .file-button { background: linear-gradient(135deg, rgba(220,38,38,.92), rgba(248,113,113,.85)); color:#fff; }
.form-field.has-error .file-button:hover { background: linear-gradient(135deg, rgba(185,28,28,.95), rgba(248,113,113,.92)); }
.form-field.has-error input:focus,
.form-field.has-error select:focus { outline: none; box-shadow: 0 0 0 3px rgba(248,113,113,.35), 0 12px 28px rgba(220,38,38,.22); }
.form-hint { color: var(--color-gray-700); font-size: .85rem; }
.form-field.has-error .form-hint { color: rgba(185,28,28,.7); }
.form-field.shake { animation: shakeField .42s ease; }

@keyframes pulseError {
  0% { box-shadow: 0 0 0 0 rgba(248,113,113,.45); }
  70% { box-shadow: 0 0 0 6px rgba(248,113,113,.05); }
  100% { box-shadow: 0 0 0 0 rgba(248,113,113,0); }
}

@keyframes shakeField {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  50% { transform: translateX(4px); }
  75% { transform: translateX(-2px); }
}
.hint { margin: .2rem 0 0; color: var(--color-gray-700); font-size: .9rem; }

@media (max-width: 760px) {
  .team-card { flex-direction: column; align-items:stretch; gap:.85rem; padding:1.1rem; }
  .team-card__left { flex-direction: column; align-items:flex-start; }
  .team-card__right { width: 100%; align-items:flex-start; }
  .team-card__info { text-align:left; }
  .team-card__actions { width:100%; justify-content:flex-start; }
  .team-drawer__panel { width: min(520px, 100vw); border-radius: 0; }
  .team-modal__panel { width:min(96vw, 560px); border-radius: 22px; padding:1.2rem; }
  .team-form__grid { grid-template-columns: 1fr; }
  .cliente-card { flex-direction:column; align-items:flex-start; text-align:left; }
  .cliente-card__right { width:100%; align-items:flex-start; text-align:left; }
  .cliente-card__actions { width:100%; justify-content:flex-start; }
  .cliente-drawer__panel { width:min(96vw, 520px); border-radius:0; }
  .cliente-modal__panel { width:min(96vw, 600px); border-radius:22px; padding:1.25rem; }
  .cliente-form__grid { grid-template-columns:1fr; }
}

/* Auth */
.auth-body { background: linear-gradient(180deg, #eef2ff, #ffffff); }
.auth-main { min-height: 100vh; display:grid; place-items: center; padding: 1rem; }
.auth-card { width: min(100%, 820px); background: #fff; border:1px solid rgba(24,27,33,.08); border-radius: 18px; box-shadow: 0 16px 40px rgba(0,0,0,.08); overflow: hidden; display:grid; grid-template-columns: 1fr 1fr; }
.auth-card__brand { background: linear-gradient(135deg, var(--color-primary), var(--color-accent)); color:#fff; padding: 1.2rem; display:grid; align-content:center; gap:.2rem; text-align:center; }
.auth-card__brand img { width: 120px; height: auto; margin: 0 auto .4rem; filter: drop-shadow(0 8px 16px rgba(0,0,0,.35)); }
.auth-card__brand h1 { margin:.2rem 0 0; font-size: 1.4rem; }
.auth-card__brand p { margin:0; opacity:.9; }
.auth-card__content { padding: 1.1rem; }
.auth-title { margin: 0 0 .4rem; font-size: 1.3rem; }
@media (max-width: 760px) {
  .auth-card { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  body.admin-body { background: linear-gradient(180deg, #eef2ff 0%, #ffffff 45%, #f4f7ff 100%); }
  .content { padding: .9rem .85rem 1.4rem; margin-top: calc(var(--topbar-h) + .6rem); }
  .page-header { flex-direction: column; align-items: stretch; gap: .75rem; }
  .page-header__filters { flex-direction: column; align-items: stretch; gap: .65rem; padding: .85rem; border-radius: 18px; background: rgba(255,255,255,.88); backdrop-filter: blur(6px); box-shadow: 0 20px 40px rgba(1,84,249,.16); border: 1px solid rgba(1,84,249,.18); }
  .page-header__filters::before { content: "Filtros activos"; font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .14rem; color: rgba(1,84,249,.6); }
  .filter-group { width: 100%; gap: .55rem; padding: .5rem .65rem; box-shadow: 0 12px 28px rgba(15,23,42,.1); border-radius: 16px; border-color: rgba(24,27,33,.05); }
  .filter-input,
  .filter-select { width: 100%; font-size: 1rem; }
  .page-header--filters .btn { width: 100%; justify-content: center; font-size: .95rem; padding: .8rem; }

  .mini-cards { grid-auto-flow: column; grid-auto-columns: minmax(220px, 82%); overflow-x: auto; padding: .25rem .85rem 1rem; margin: 0 -0.85rem 1.3rem; scroll-snap-type: x mandatory; gap: .85rem; }
  .mini-card { scroll-snap-align: center; min-height: 150px; padding: 1.1rem; position: relative; isolation: isolate; }
  .mini-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.18)); mix-blend-mode: screen; opacity: .6; pointer-events: none; }
  .mini-cards::-webkit-scrollbar { height: 6px; }
  .mini-cards::-webkit-scrollbar-thumb { background: rgba(1,84,249,.35); border-radius: 999px; }
  .mini-cards::-webkit-scrollbar-track { background: rgba(1,84,249,.08); border-radius: 999px; }

  .user-stack { gap: 1.05rem; }
  .user-card { flex-direction: column; align-items: stretch; gap: .75rem; padding: 1.15rem; border-radius: 22px; box-shadow: 0 26px 48px rgba(1,84,249,.2); position: relative; overflow: hidden; }
  .user-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(37,58,148,.18), rgba(1,84,249,.12)); opacity: .55; pointer-events: none; }
  .user-card > * { position: relative; z-index: 1; }
  .user-card__left { width: 100%; align-items: flex-start; gap: .85rem; }
  .user-card__avatar { width: 56px; height: 56px; border-radius: 16px; }
  .user-card__details { width: 100%; }
  .user-card__name { font-size: 1.08rem; }
  .user-card__contact { width: 100%; }
  .user-card__contact a { font-size: .92rem; }
  .user-card__right { width: 100%; align-items: stretch; gap: .75rem; }
  .user-card__status { justify-content: space-between; gap: .75rem; }
  .user-card__status .chip { font-size: .78rem; }
  .user-card__status .badge { font-size: .78rem; }
  .user-card__actions { width: 100%; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
  .user-card__actions .btn { width: 100%; justify-content: center; }
  .user-card__actions form { width: 100%; display: contents; }
  .user-card__actions form .btn { width: 100%; }
  .inline-form { display: block; width: 100%; }

  .empty-state { padding: 2.4rem 1.2rem; border-radius: 24px; }
  .chip { border-width: 1px; }
  .filter-feedback { border-radius: 20px; }
}
