/* ═══════════════════════════════════════════════════════════════════════
   Gestión de Producción v2
   Modern Dark SaaS — Notion / Linear / Atlassian 2026
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Design tokens (scoped to component) ───────────────────────────── */
.pm-v2, .pm-form-drawer, .pm-detail-overlay, .pm-gen-overlay {
  /* Backgrounds — cool-tinted darks (Linear palette) */
  --_bg0:    #0D0D0F;   /* deepest — page */
  --_bg1:    #111113;   /* surface 1 — sidebar, panels */
  --_bg2:    #17171A;   /* surface 2 — cards, rows on hover */
  --_bg3:    #1E1E22;   /* surface 3 — inputs, code blocks */
  --_bg4:    #27272B;   /* surface 4 — active bg accent */

  /* Borders */
  --_bd0:    #222225;   /* subtle — between sections */
  --_bd1:    #2C2C30;   /* default — card/panel borders */
  --_bd2:    #3A3A3F;   /* emphasized — hover, focus ring */
  --_bd3:    #4A4A52;   /* strong — active, selected */

  /* Text */
  --_tx1:    #EDEDF0;   /* primary — headings, important */
  --_tx2:    #8B8B99;   /* secondary — labels, meta */
  --_tx3:    #4A4A55;   /* muted — placeholders, disabled */

  /* Accent — Linear indigo */
  --_ac:     #5E6AD2;
  --_ac2:    #4F5BC4;   /* hover */
  --_ac3:    #3D4BA8;   /* pressed */
  --_ac-bg:  rgba(94,106,210,.10);
  --_ac-bg2: rgba(94,106,210,.06);

  /* Semantic */
  --_green:  #4CC38A;
  --_green-bg: rgba(76,195,138,.10);
  --_red:    #E5484D;
  --_red-bg: rgba(229,72,77,.10);
  --_amber:  #F5A623;
  --_amber-bg: rgba(245,166,35,.10);
  --_blue:   #3B82F6;
  --_blue-bg: rgba(59,130,246,.10);
  --_purple: #A78BFA;
  --_teal:   #2DD4BF;

  /* Typography */
  --_font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Motion */
  --_ease: cubic-bezier(.4,0,.2,1);
  --_t:   150ms;
  --_t2:  220ms;

  /* Shape */
  --_r1: 4px;
  --_r2: 6px;
  --_r3: 8px;
  --_r4: 12px;
}

/* Container override */
.app-main:has(.pm-v2) {
  padding: 0;
  max-width: 100%;
  background: #0D0D0F;
}

/* ── Root ───────────────────────────────────────────────────────────── */
.pm-v2 {
  display: flex;
  height: calc(100vh - 64px);
  overflow: hidden;
  background: var(--_bg0);
  font-family: var(--_font);
  color: var(--_tx1);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'cv01', 'cv03', 'ss01';
}

/* ══════════════════════════════════════════ SIDEBAR ══ */
.pm-sidebar {
  width: 220px;
  min-width: 220px;
  background: var(--_bg1);
  border-right: 1px solid var(--_bd0);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: width var(--_t2) var(--_ease), min-width var(--_t2) var(--_ease);
  flex-shrink: 0;
  z-index: 20;
}

/* Collapsed state */
.pm-sidebar.collapsed { width: 50px; min-width: 50px; }
.pm-sidebar.collapsed .pm-sidebar-brand-text,
.pm-sidebar.collapsed .pm-sidebar-item-text,
.pm-sidebar.collapsed .pm-sidebar-count,
.pm-sidebar.collapsed .pm-sidebar-group-label,
.pm-sidebar.collapsed .pm-btn-nueva-v2 > span:last-child,
.pm-sidebar.collapsed .pm-sidebar-footer-text { display: none; }
.pm-sidebar.collapsed .pm-btn-nueva-v2 { padding: 9px; justify-content: center; }
.pm-sidebar.collapsed .pm-sidebar-item { justify-content: center; padding: 9px 0; gap: 0; }
.pm-sidebar.collapsed .pm-sidebar-collapse-btn { justify-content: center; }

/* ── Sidebar: Brand ── */
.pm-sidebar-top {
  padding: 14px 12px 12px;
  border-bottom: 1px solid var(--_bd0);
  flex-shrink: 0;
}
.pm-sidebar-brand {
  display: flex;
  align-items: center;
  gap: 9px;
  overflow: hidden;
}
.pm-sidebar-logo {
  width: 28px;
  height: 28px;
  background: var(--_ac);
  border-radius: var(--_r2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  flex-shrink: 0;
  letter-spacing: -.02em;
}
.pm-sidebar-brand-text { overflow: hidden; }
.pm-sidebar-brand-text strong {
  display: block;
  font-size: .78rem;
  font-weight: 600;
  color: var(--_tx1);
  letter-spacing: -.025em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pm-sidebar-brand-text span {
  display: block;
  font-size: .64rem;
  color: var(--_tx3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -.01em;
}

/* ── Sidebar: Nav ── */
.pm-sidebar-nav {
  flex: 1;
  padding: 6px;
  overflow-y: auto;
  scrollbar-width: none;
}
.pm-sidebar-nav::-webkit-scrollbar { display: none; }

.pm-sidebar-group-label {
  padding: 10px 6px 3px;
  font-size: .58rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .11em;
  color: var(--_tx3);
  user-select: none;
  white-space: nowrap;
  overflow: hidden;
}
.pm-sidebar-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 8px;
  background: transparent;
  border: none;
  border-radius: var(--_r2);
  margin-bottom: 1px;
  font-family: var(--_font);
  font-size: .82rem;
  font-weight: 450;
  color: var(--_tx2);
  cursor: pointer;
  transition: background var(--_t) var(--_ease), color var(--_t) var(--_ease);
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  letter-spacing: -.015em;
  -webkit-font-smoothing: antialiased;
}
.pm-sidebar-item:hover {
  background: var(--_bg2);
  color: var(--_tx1);
}
.pm-sidebar-item.active {
  background: var(--_ac-bg);
  color: #8B96E9;
  font-weight: 550;
}
.pm-sidebar-item-icon {
  font-size: .75rem;
  flex-shrink: 0;
  width: 15px;
  text-align: center;
  opacity: .55;
  transition: opacity var(--_t);
}
.pm-sidebar-item:hover .pm-sidebar-item-icon,
.pm-sidebar-item.active .pm-sidebar-item-icon { opacity: 1; }
.pm-sidebar-item-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pm-sidebar-count {
  margin-left: auto;
  background: var(--_bg3);
  color: var(--_tx3);
  font-size: .62rem;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: 3px;
  min-width: 16px;
  text-align: center;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  transition: background var(--_t), color var(--_t);
}
.pm-sidebar-item.active .pm-sidebar-count {
  background: var(--_ac-bg);
  color: var(--_ac);
}

/* ── Sidebar: Footer ── */
.pm-sidebar-footer {
  padding: 8px 6px;
  border-top: 1px solid var(--_bd0);
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex-shrink: 0;
}
.pm-btn-nueva-v2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 7px 10px;
  background: var(--_ac);
  color: rgba(255,255,255,.95);
  border: none;
  border-radius: var(--_r2);
  font-family: var(--_font);
  font-size: .79rem;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: -.015em;
  transition: background var(--_t) var(--_ease);
}
.pm-btn-nueva-v2:hover  { background: var(--_ac2); }
.pm-btn-nueva-v2:active { background: var(--_ac3); }
.pm-sidebar-collapse-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  color: var(--_tx3);
  font-size: .74rem;
  font-family: var(--_font);
  cursor: pointer;
  padding: 5px 8px;
  border-radius: var(--_r1);
  width: 100%;
  transition: color var(--_t), background var(--_t);
  letter-spacing: -.01em;
}
.pm-sidebar-collapse-btn:hover { background: var(--_bg2); color: var(--_tx2); }

/* ══════════════════════════════════════════ MAIN ══ */
.pm-main-v2 {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  background: var(--_bg0);
}

/* ── Top bar ── */
.pm-topbar-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  height: 48px;
  background: var(--_bg1);
  border-bottom: 1px solid var(--_bd0);
  flex-shrink: 0;
  gap: 12px;
}
.pm-topbar-left { min-width: 0; }
.pm-v2-title {
  font-size: .85rem;
  font-weight: 600;
  color: var(--_tx1);
  margin: 0;
  letter-spacing: -.025em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pm-v2-sub { display: none; }

.pm-topbar-right {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

/* Search */
.pm-search-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--_bg2);
  border: 1px solid var(--_bd1);
  border-radius: var(--_r2);
  padding: 5px 9px;
  cursor: text;
  transition: border-color var(--_t), background var(--_t);
}
.pm-search-wrap:focus-within {
  border-color: var(--_bd3);
  background: var(--_bg3);
}
.pm-search-wrap > span { color: var(--_tx3); font-size: .76rem; flex-shrink: 0; }
.pm-search-input {
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--_font);
  font-size: .79rem;
  color: var(--_tx1);
  width: 155px;
  letter-spacing: -.01em;
  -webkit-font-smoothing: antialiased;
}
.pm-search-input::placeholder { color: var(--_tx3); }
.pm-search-kbd {
  background: var(--_bg0);
  border: 1px solid var(--_bd1);
  border-radius: 3px;
  font-size: .59rem;
  color: var(--_tx3);
  padding: 1px 4px;
  font-family: var(--_font);
  white-space: nowrap;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

/* Notification bell */
.pm-notif-btn {
  position: relative;
  background: var(--_bg2);
  border: 1px solid var(--_bd1);
  border-radius: var(--_r2);
  padding: 6px 8px;
  cursor: pointer;
  font-size: .8rem;
  color: var(--_tx2);
  line-height: 1;
  transition: background var(--_t), border-color var(--_t);
}
.pm-notif-btn:hover { background: var(--_bg3); border-color: var(--_bd2); }
.pm-notif-count {
  position: absolute;
  top: -4px; right: -4px;
  background: var(--_red);
  color: #fff;
  font-size: .56rem;
  font-weight: 700;
  width: 14px; height: 14px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--_bg1);
  font-variant-numeric: tabular-nums;
}

/* User info */
.pm-user-info {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: var(--_r2);
  transition: background var(--_t);
}
.pm-user-info:hover { background: var(--_bg2); }
.pm-user-avatar {
  width: 24px;
  height: 24px;
  background: var(--_ac);
  color: rgba(255,255,255,.9);
  border-radius: var(--_r1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .62rem;
  font-weight: 700;
  flex-shrink: 0;
  letter-spacing: 0;
}
.pm-user-name {
  font-size: .76rem;
  font-weight: 550;
  color: var(--_tx1);
  letter-spacing: -.015em;
  line-height: 1;
}
.pm-user-role-label {
  font-size: .62rem;
  color: var(--_tx3);
  letter-spacing: -.005em;
}

/* Role switch */
.pm-role-switch-v2 {
  display: flex;
  gap: 1px;
  background: var(--_bg2);
  border: 1px solid var(--_bd1);
  border-radius: var(--_r2);
  padding: 2px;
}
.pm-role-btn-v2 {
  padding: 3px 8px;
  background: transparent;
  border: none;
  border-radius: 4px;
  font-family: var(--_font);
  font-size: .67rem;
  font-weight: 500;
  color: var(--_tx3);
  cursor: pointer;
  transition: background var(--_t), color var(--_t);
  letter-spacing: -.01em;
  white-space: nowrap;
}
.pm-role-btn-v2:hover { color: var(--_tx2); }
.pm-role-btn-v2.active {
  background: var(--_bg1);
  color: var(--_tx1);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(0,0,0,.5);
}

/* ══════════════════════════════════════════ VIEWS ══ */
.pm-view { display: flex; flex-direction: column; flex: 1; overflow: hidden; min-height: 0; }
.pm-view.hidden { display: none; }

/* ══════════════════════════════════════════ STATS ══ */
.pm-stats-v2 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--_bd0);
  flex-shrink: 0;
}
.pm-stat-card {
  position: relative;
  padding: 16px 20px 14px;
  background: var(--_bg1);
  display: flex;
  flex-direction: column;
  gap: 8px;
  cursor: pointer;
  transition: background var(--_t) var(--_ease);
  overflow: hidden;
}
.pm-stat-card + .pm-stat-card { border-left: 1px solid var(--_bd0); }
.pm-stat-card::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 2px;
  opacity: 0;
  transition: opacity var(--_t);
}
.pm-stat-card:hover { background: var(--_bg2); }
.pm-stat-card:hover::after { opacity: 1; }
.pm-stat-card:active { background: var(--_bg3); }

.pm-stat-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.pm-stat-card-label {
  font-size: .7rem;
  color: var(--_tx2);
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1;
}
.pm-stat-card-icon {
  width: 22px; height: 22px;
  border-radius: var(--_r1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  flex-shrink: 0;
  opacity: .8;
}
.pm-stat-card-num {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--_tx1);
  line-height: 1;
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}
.pm-stat-card-bar { display: none; } /* replaced by ::after */

/* variants */
.pm-stat-card--pendiente::after  { background: var(--_ac); }
.pm-stat-card--pendiente .pm-stat-card-icon { background: var(--_ac-bg); color: var(--_ac); }

.pm-stat-card--parahoy::after    { background: var(--_purple); }
.pm-stat-card--parahoy .pm-stat-card-icon   { background: rgba(167,139,250,.1); color: var(--_purple); }

.pm-stat-card--urgentes::after   { background: var(--_red); }
.pm-stat-card--urgentes .pm-stat-card-icon  { background: var(--_red-bg); color: var(--_red); }

.pm-stat-card--publicadas::after { background: var(--_green); }
.pm-stat-card--publicadas .pm-stat-card-icon{ background: var(--_green-bg); color: var(--_green); }

/* ══════════════════════════════════════════ LIST HEADER ══ */
.pm-list-header-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background: var(--_bg1);
  border-bottom: 1px solid var(--_bd0);
  flex-shrink: 0;
  height: 38px;
}
.pm-tabs-v2 {
  display: flex;
  height: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.pm-tabs-v2::-webkit-scrollbar { display: none; }
.pm-tab-v2 {
  height: 100%;
  padding: 0 12px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  font-family: var(--_font);
  font-size: .76rem;
  font-weight: 500;
  color: var(--_tx3);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--_t), border-color var(--_t);
  letter-spacing: -.01em;
}
.pm-tab-v2:hover { color: var(--_tx2); }
.pm-tab-v2.active { color: var(--_tx1); border-bottom-color: var(--_ac); font-weight: 550; }

.pm-list-header-actions {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}
.pm-filter-btn-v2 {
  display: flex;
  align-items: center;
  gap: 4px;
  background: transparent;
  border: 1px solid var(--_bd1);
  border-radius: var(--_r1);
  padding: 3px 8px;
  font-family: var(--_font);
  font-size: .72rem;
  color: var(--_tx3);
  cursor: pointer;
  transition: all var(--_t);
  text-decoration: none;
  letter-spacing: -.01em;
}
.pm-filter-btn-v2:hover { background: var(--_bg2); color: var(--_tx2); border-color: var(--_bd2); }

/* ══════════════════════════════════════════ CONTENT ══ */
.pm-content-area { flex: 1; display: flex; overflow: hidden; min-height: 0; }
.pm-list-v2 {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding-bottom: 80px;
}
.pm-list-v2::-webkit-scrollbar { width: 3px; }
.pm-list-v2::-webkit-scrollbar-track { background: transparent; }
.pm-list-v2::-webkit-scrollbar-thumb { background: var(--_bd1); border-radius: 2px; }

/* ══════════════════════════════════════════ TASK ROW ══ */
.pm-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px 0 14px;
  height: 44px;
  background: transparent;
  cursor: pointer;
  transition: background var(--_t) var(--_ease);
  border-left: 2px solid transparent;
  position: relative;
  flex-shrink: 0;
}
.pm-row + .pm-row { border-top: 1px solid var(--_bd0); }
.pm-row:hover { background: var(--_bg2); }
.pm-row.active {
  background: var(--_ac-bg2);
  border-left-color: var(--_ac);
}
.pm-row.active:hover { background: var(--_ac-bg); }

/* Hover action buttons */
.pm-row-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  opacity: 0;
  transition: opacity var(--_t);
  flex-shrink: 0;
  margin-left: auto;
}
.pm-row:hover .pm-row-actions,
.pm-row.active .pm-row-actions { opacity: 1; }
.pm-row-action {
  width: 26px;
  height: 26px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--_r1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .72rem;
  color: var(--_tx3);
  cursor: pointer;
  transition: background var(--_t), border-color var(--_t), color var(--_t);
  padding: 0;
  flex-shrink: 0;
}
.pm-row-action:hover { background: var(--_bg3); border-color: var(--_bd1); color: var(--_tx2); }
.pm-row-action--danger:hover { background: var(--_red-bg); border-color: rgba(229,72,77,.3); color: var(--_red); }

/* Dots */
.pm-row-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  transition: box-shadow var(--_t);
}
.pm-dot--urgente      { background: var(--_red);    }
.pm-dot--urgente.pulse { animation: pm-dot-pulse 2s infinite; }
.pm-dot--para-hoy     { background: var(--_amber);  }
.pm-dot--en-redaccion { background: var(--_blue);   }
.pm-dot--correccion   { background: var(--_amber);  }
.pm-dot--pendiente    { background: var(--_bd2);    }
.pm-dot--publicado    { background: var(--_green);  }
.pm-dot--listo        { background: var(--_teal);   }
.pm-dot--alta         { background: var(--_amber);  }

@keyframes pm-dot-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(229,72,77,.4); }
  50%      { box-shadow: 0 0 0 4px rgba(229,72,77,0); }
}

.pm-row-type-icon {
  width: 26px; height: 26px;
  background: var(--_bg3);
  border-radius: var(--_r1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .74rem;
  flex-shrink: 0;
}
.pm-row-body { flex: 1; min-width: 0; }
.pm-row-title {
  font-size: .82rem;
  font-weight: 450;
  color: var(--_tx1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -.018em;
  line-height: 1.25;
}
.pm-row-meta {
  font-size: .68rem;
  color: var(--_tx3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -.005em;
  margin-top: 1px;
}
.pm-row-badge {
  font-size: .65rem;
  font-weight: 550;
  padding: 2px 6px;
  border-radius: 3px;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: .005em;
}
.pm-row-badge--urgente      { background: var(--_red-bg);    color: #F07377; }
.pm-row-badge--para-hoy     { background: var(--_amber-bg);  color: #F5A623; }
.pm-row-badge--en-redaccion { background: var(--_blue-bg);   color: #6B9EFF; }
.pm-row-badge--correccion   { background: var(--_amber-bg);  color: #F5A623; }
.pm-row-badge--pendiente    { background: var(--_bg3);       color: var(--_tx3); }
.pm-row-badge--publicado    { background: var(--_green-bg);  color: #6DDBA6; }
.pm-row-badge--listo        { background: rgba(45,212,191,.1); color: var(--_teal); }
.pm-row-badge--alta         { background: var(--_amber-bg);  color: #F5A623; }

.pm-row-attach {
  font-size: .68rem;
  color: var(--_tx3);
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.pm-row-date {
  font-size: .68rem;
  color: var(--_tx3);
  white-space: nowrap;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  min-width: 52px;
  text-align: right;
}

/* Empty state */
.pm-empty-v2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 72px 24px;
  color: var(--_tx3);
  text-align: center;
  flex: 1;
}
.pm-empty-v2-icon { font-size: 1.8rem; opacity: .3; filter: grayscale(1); }
.pm-empty-v2-text { font-size: .8rem; letter-spacing: -.01em; max-width: 240px; line-height: 1.5; }

/* ══════════════════════════════════════════ DETAIL PANEL ══ */
.pm-detail-panel {
  width: 316px;
  min-width: 316px;
  border-left: 1px solid var(--_bd0);
  background: var(--_bg1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  flex-shrink: 0;
  animation: pm-panel-slide-in 180ms var(--_ease);
}
@keyframes pm-panel-slide-in {
  from { opacity: 0; transform: translateX(6px); }
  to   { opacity: 1; transform: translateX(0); }
}
.pm-detail-panel.hidden { display: none; }

.pm-detail-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 14px;
  border-bottom: 1px solid var(--_bd0);
  flex-shrink: 0;
}
.pm-detail-panel-title {
  font-size: .65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--_tx3);
}
.pm-detail-panel-close {
  background: transparent;
  border: none;
  color: var(--_tx3);
  cursor: pointer;
  font-size: .8rem;
  padding: 4px 5px;
  border-radius: var(--_r1);
  line-height: 1;
  transition: background var(--_t), color var(--_t);
}
.pm-detail-panel-close:hover { background: var(--_bg3); color: var(--_tx2); }

.pm-detail-panel-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pm-detail-panel-body::-webkit-scrollbar { width: 3px; }
.pm-detail-panel-body::-webkit-scrollbar-thumb { background: var(--_bd1); border-radius: 2px; }

.pm-detail-task-title {
  font-size: .88rem;
  font-weight: 600;
  color: var(--_tx1);
  line-height: 1.4;
  letter-spacing: -.025em;
}
.pm-detail-badges {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

/* Field grid */
.pm-detail-field-grid {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--_bd0);
  border-radius: var(--_r3);
  overflow: hidden;
}
.pm-detail-field-row {
  display: grid;
  grid-template-columns: 96px 1fr;
  align-items: flex-start;
  padding: 7px 12px;
  border-bottom: 1px solid var(--_bd0);
  gap: 8px;
  transition: background var(--_t);
}
.pm-detail-field-row:last-child { border-bottom: none; }
.pm-detail-field-row:hover { background: var(--_bg2); }
.pm-detail-field-label {
  font-size: .7rem;
  color: var(--_tx3);
  font-weight: 500;
  letter-spacing: -.005em;
  padding-top: 1px;
  white-space: nowrap;
}
.pm-detail-field-value {
  font-size: .77rem;
  color: var(--_tx2);
  font-weight: 450;
  line-height: 1.4;
  letter-spacing: -.015em;
  word-break: break-word;
}

/* Description */
.pm-detail-desc-block {
  background: var(--_bg2);
  border: 1px solid var(--_bd1);
  border-radius: var(--_r2);
  padding: 10px 12px;
  font-size: .77rem;
  color: var(--_tx2);
  line-height: 1.6;
  white-space: pre-line;
  word-break: break-word;
  letter-spacing: -.012em;
}
.pm-detail-section-label {
  font-size: .62rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--_tx3);
  margin-bottom: 7px;
}

/* Attachments */
.pm-detail-att-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--_bg2);
  border: 1px solid var(--_bd0);
  border-radius: var(--_r2);
  padding: 7px 10px;
  margin-bottom: 4px;
  transition: border-color var(--_t), background var(--_t);
}
.pm-detail-att-item:hover { border-color: var(--_bd2); background: var(--_bg3); }
.pm-detail-att-thumb {
  width: 32px; height: 32px;
  object-fit: cover;
  border-radius: var(--_r1);
  background: var(--_bg3);
  flex-shrink: 0;
}
.pm-detail-att-thumb-icon {
  width: 32px; height: 32px;
  border-radius: var(--_r1);
  background: var(--_bg3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; flex-shrink: 0;
}
.pm-detail-att-info { flex: 1; min-width: 0; }
.pm-detail-att-name {
  font-size: .74rem;
  color: var(--_tx2);
  font-weight: 450;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  letter-spacing: -.01em;
}

/* ── Detail panel actions ── */
.pm-detail-panel-actions {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 10px 12px;
  border-top: 1px solid var(--_bd0);
  flex-shrink: 0;
}
.pm-detail-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 10px;
  border-radius: var(--_r2);
  font-family: var(--_font);
  font-size: .74rem;
  font-weight: 550;
  cursor: pointer;
  transition: background var(--_t), opacity var(--_t);
  white-space: nowrap;
  letter-spacing: -.012em;
}
.pm-detail-btn--view {
  background: var(--_bg3);
  border: 1px solid var(--_bd1);
  color: var(--_tx2);
}
.pm-detail-btn--view:hover { background: var(--_bg4); color: var(--_tx1); border-color: var(--_bd2); }
.pm-detail-btn--edit {
  background: var(--_ac);
  border: 1px solid transparent;
  color: rgba(255,255,255,.95);
  flex: 1;
}
.pm-detail-btn--edit:hover { background: var(--_ac2); }
.pm-detail-btn--edit:active { background: var(--_ac3); }
.pm-detail-btn--publish {
  background: var(--_green-bg);
  border: 1px solid rgba(76,195,138,.2);
  color: var(--_green);
  flex: 1;
}
.pm-detail-btn--publish:hover { background: rgba(76,195,138,.18); border-color: rgba(76,195,138,.35); }
.pm-detail-btn--more {
  background: var(--_bg3);
  border: 1px solid var(--_bd1);
  color: var(--_tx3);
  padding: 6px 8px;
  letter-spacing: .05em;
}
.pm-detail-btn--more:hover { background: var(--_red-bg); border-color: rgba(229,72,77,.25); color: var(--_red); }

/* ══════════════════════════════════════════ FORM DRAWER ══ */
.pm-form-drawer {
  position: fixed;
  top: 64px; right: 0; bottom: 0;
  width: 352px;
  background: var(--_bg1);
  border-left: 1px solid var(--_bd1);
  display: flex;
  flex-direction: column;
  z-index: 400;
  box-shadow: -12px 0 40px rgba(0,0,0,.6);
  transform: translateX(100%);
  transition: transform var(--_t2) var(--_ease);
}
.pm-form-drawer.open { transform: translateX(0); }

.pm-form-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--_bd0);
  flex-shrink: 0;
}
.pm-form-drawer-title {
  font-size: .87rem;
  font-weight: 600;
  color: var(--_tx1);
  letter-spacing: -.025em;
}
.pm-form-drawer-close {
  background: transparent;
  border: none;
  color: var(--_tx3);
  cursor: pointer;
  font-size: .8rem;
  padding: 5px;
  border-radius: var(--_r1);
  transition: background var(--_t), color var(--_t);
  line-height: 1;
}
.pm-form-drawer-close:hover { background: var(--_bg2); color: var(--_tx2); }

.pm-form-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 13px;
}
.pm-form-drawer-body::-webkit-scrollbar { width: 3px; }
.pm-form-drawer-body::-webkit-scrollbar-thumb { background: var(--_bd1); border-radius: 2px; }

/* Form fields — dark override */
.pm-form-drawer .field-group label {
  display: block;
  font-size: .72rem;
  font-weight: 500;
  color: var(--_tx2);
  margin-bottom: 5px;
  letter-spacing: -.01em;
}
.pm-form-drawer .field-group input,
.pm-form-drawer .field-group textarea,
.pm-form-drawer .field-group select {
  width: 100%;
  background: var(--_bg2) !important;
  border: 1px solid var(--_bd1) !important;
  border-radius: var(--_r2) !important;
  color: var(--_tx1) !important;
  font-family: var(--_font) !important;
  font-size: .8rem !important;
  padding: 7px 10px !important;
  box-sizing: border-box;
  transition: border-color var(--_t), background var(--_t);
  outline: none;
  letter-spacing: -.012em;
  -webkit-font-smoothing: antialiased;
}
.pm-form-drawer .field-group input:focus,
.pm-form-drawer .field-group textarea:focus,
.pm-form-drawer .field-group select:focus {
  border-color: var(--_ac) !important;
  background: var(--_bg3) !important;
  box-shadow: 0 0 0 3px var(--_ac-bg) !important;
}
.pm-form-drawer .field-group input::placeholder,
.pm-form-drawer .field-group textarea::placeholder { color: var(--_tx3) !important; }
.pm-form-drawer .field-group select option { background: var(--_bg2); color: var(--_tx1); }

.pm-form-drawer-footer {
  display: flex;
  gap: 7px;
  padding: 12px 20px;
  border-top: 1px solid var(--_bd0);
  flex-shrink: 0;
}
.pm-form-drawer-footer .btn-secondary {
  background: var(--_bg3) !important;
  border: 1px solid var(--_bd1) !important;
  color: var(--_tx2) !important;
  border-radius: var(--_r2) !important;
  font-family: var(--_font) !important;
  font-size: .79rem !important;
  padding: 7px 14px !important;
  cursor: pointer;
  transition: all var(--_t) !important;
  letter-spacing: -.012em !important;
  font-weight: 500 !important;
}
.pm-form-drawer-footer .btn-secondary:hover {
  background: var(--_bg4) !important;
  color: var(--_tx1) !important;
  border-color: var(--_bd2) !important;
}
.pm-form-drawer-footer .btn-primary {
  background: var(--_ac) !important;
  border: 1px solid transparent !important;
  color: rgba(255,255,255,.95) !important;
  border-radius: var(--_r2) !important;
  font-family: var(--_font) !important;
  font-size: .79rem !important;
  font-weight: 600 !important;
  padding: 7px 14px !important;
  cursor: pointer;
  transition: background var(--_t) !important;
  letter-spacing: -.012em !important;
}
.pm-form-drawer-footer .btn-primary:hover { background: var(--_ac2) !important; }
.pm-form-drawer-footer .btn-primary:active { background: var(--_ac3) !important; }

/* ══════════════════════════════════════════ SOL + CAL CARDS ══ */
#pm-sol-list {
  padding: 6px 0;
}
#pm-sol-list .pm-sol-card {
  background: var(--_bg1) !important;
  border: 1px solid var(--_bd0) !important;
  color: var(--_tx1) !important;
  margin: 3px 12px !important;
  border-radius: var(--_r3) !important;
  box-shadow: none !important;
}
#pm-sol-list .pm-sol-card:hover { border-color: var(--_bd2) !important; background: var(--_bg2) !important; }
#pm-sol-list .pm-sol-who,
#pm-sol-list .pm-sol-titulo  { color: var(--_tx1) !important; }
#pm-sol-list .pm-sol-desc,
#pm-sol-list .pm-sol-row-val { color: var(--_tx2) !important; }
#pm-sol-list .pm-sol-row-key,
#pm-sol-list .pm-sol-ref     { color: var(--_tx3) !important; }
#pm-sol-list .pm-sol-flyer-block {
  background: var(--_bg2) !important;
  border-color: var(--_bd1) !important;
}
#pm-sol-list .pm-card-footer { border-top-color: var(--_bd0) !important; }
#pm-sol-list .pm-card-date   { color: var(--_tx3) !important; }

/* ══════════════════════════════════════════════════ LIGHT THEME ══ */
body.light-theme .app-main:has(.pm-v2) {
  background: #E8EAED;
}

body.light-theme .pm-v2,
body.light-theme .pm-form-drawer,
body.light-theme .pm-detail-overlay,
body.light-theme .pm-gen-overlay {
  /* Backgrounds — cool light grays */
  --_bg0:    #E8EAED;   /* page */
  --_bg1:    #F2F3F5;   /* sidebar, panels */
  --_bg2:    #F7F8F9;   /* cards, row hover */
  --_bg3:    #ECEDF0;   /* inputs */
  --_bg4:    #E2E4E8;   /* active bg */

  /* Borders */
  --_bd0:    #D5D7DB;
  --_bd1:    #C8CAD0;
  --_bd2:    #B0B4BB;
  --_bd3:    #93979F;

  /* Text */
  --_tx1:    #1A1C20;
  --_tx2:    #60646E;
  --_tx3:    #9498A2;

  /* Accent stays the same */
  --_ac-bg:  rgba(94,106,210,.12);
  --_ac-bg2: rgba(94,106,210,.08);

  /* Semantic (slightly adjusted for light bg) */
  --_green:  #16A34A;
  --_green-bg: rgba(22,163,74,.10);
  --_red:    #DC2626;
  --_red-bg: rgba(220,38,38,.10);
  --_amber:  #D97706;
  --_amber-bg: rgba(217,119,6,.10);
  --_blue:   #2563EB;
  --_blue-bg: rgba(37,99,235,.10);
}

#pm-cal-list .pm-cal-card {
  background: var(--_bg1) !important;
  border: 1px solid var(--_bd0) !important;
  margin: 3px 12px !important;
  border-radius: var(--_r3) !important;
}
#pm-cal-list .pm-cal-card:hover { border-color: var(--_bd2) !important; background: var(--_bg2) !important; }
#pm-cal-list .pm-cal-date   { color: var(--_tx3) !important; }
#pm-cal-list .pm-cal-titulo { color: var(--_tx1) !important; }
#pm-cal-list .pm-cal-meta,
#pm-cal-list .pm-cal-lugar,
#pm-cal-list .pm-cal-area   { color: var(--_tx3) !important; }

/* ══════════════════════════════════════════ BADGE OVERRIDES ══ */
/* Reuse pm-badge styles from _new_features inside dark context */
.pm-v2 .pm-badge,
#pm-sol-list .pm-badge {
  font-size: .66rem !important;
  font-weight: 600 !important;
  padding: 2px 6px !important;
  border-radius: 3px !important;
}

/* ══════════════════════════════════════════ RESPONSIVE ══ */
@media (max-width: 1400px) {
  .pm-detail-panel { width: 290px; min-width: 290px; }
}
@media (max-width: 1200px) {
  .pm-stats-v2 { grid-template-columns: repeat(2, 1fr); }
  .pm-stat-card + .pm-stat-card { border-left: none; border-top: 1px solid var(--_bd0); }
  .pm-stat-card:nth-child(2n+1):not(:first-child) { border-top: 1px solid var(--_bd0); }
  .pm-stat-card:nth-child(2) { border-left: 1px solid var(--_bd0); border-top: none; }
}
@media (max-width: 1024px) {
  .pm-sidebar { width: 50px; min-width: 50px; }
  .pm-sidebar .pm-sidebar-brand-text,
  .pm-sidebar .pm-sidebar-item-text,
  .pm-sidebar .pm-sidebar-count,
  .pm-sidebar .pm-sidebar-group-label,
  .pm-sidebar .pm-btn-nueva-v2 > span:last-child,
  .pm-sidebar .pm-sidebar-footer-text { display: none; }
  .pm-sidebar .pm-btn-nueva-v2 { padding: 9px; justify-content: center; }
  .pm-sidebar .pm-sidebar-item { justify-content: center; padding: 9px 0; gap: 0; }
  .pm-detail-panel { width: 260px; min-width: 260px; }
}
@media (max-width: 768px) {
  .pm-stats-v2 { grid-template-columns: repeat(2, 1fr); }
  .pm-detail-panel {
    position: fixed; right: 0; top: 64px; bottom: 0; z-index: 200;
    box-shadow: -8px 0 32px rgba(0,0,0,.7);
  }
  .pm-form-drawer { width: 100%; left: 0; }
}
