/* Planning — kit SFE (primary/outline only; view switcher = global blue) */
.pl-odo { display:flex; flex-direction:column; gap:10px; }
.pl-odo-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; }
.pl-odo-toolbar__left { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }

/* Primary: Nuevo / Publicar / Hoy — same as global .btn-primary */
.pl-odo a.btn.btn-primary.pl-odo-btn-new,
.pl-odo button.btn.btn-primary.pl-odo-btn-pub,
.pl-odo a.btn.btn-primary.pl-odo-btn-today,
.pl-odo .pl-odo-toolbar a.btn.btn-primary.pl-odo-btn-new,
.pl-odo .pl-odo-toolbar button.btn.btn-primary.pl-odo-btn-pub,
.pl-odo .pl-odo-weekbar a.btn.btn-primary.pl-odo-btn-today,
.sfe-module-shell .pl-odo a.btn.btn-primary.pl-odo-btn-new,
.sfe-module-shell .pl-odo button.btn.btn-primary.pl-odo-btn-pub,
.sfe-module-shell .pl-odo a.btn.btn-primary.pl-odo-btn-today {
    background: var(--sfe-primary, #007BFF) !important;
    background-color: var(--sfe-primary, #007BFF) !important;
    border: 1px solid var(--sfe-primary, #007BFF) !important;
    border-color: var(--sfe-primary, #007BFF) !important;
    color: #ffffff !important;
    box-shadow: var(--sfe-shadow-primary, none) !important;
    min-height: 32px;
}

/* Secondary outline: Acciones, arrows — white + border; hover = primary tint */
.pl-odo button.btn.btn-secondary.pl-odo-btn-outline,
.pl-odo a.btn.btn-secondary.pl-odo-btn-outline,
.pl-odo a.btn.btn-secondary.btn-sm.pl-odo-btn-outline,
.pl-odo .pl-odo-toolbar button.btn.btn-secondary.pl-odo-btn-outline,
.pl-odo .pl-odo-toolbar a.btn.btn-secondary.pl-odo-btn-outline,
.pl-odo .pl-odo-weekbar a.btn.btn-secondary.pl-odo-btn-outline,
.pl-odo .pl-odo-weekbar a.btn.btn-secondary.btn-sm.pl-odo-btn-outline,
.sfe-module-shell .pl-odo button.btn.btn-secondary.pl-odo-btn-outline,
.sfe-module-shell .pl-odo a.btn.btn-secondary.pl-odo-btn-outline,
.sfe-module-shell .pl-odo-toolbar .btn.btn-secondary.pl-odo-btn-outline,
.sfe-module-shell .pl-odo-weekbar .btn.btn-secondary.pl-odo-btn-outline {
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: var(--sfe-text, #1e293b) !important;
    border: 1px solid var(--sfe-border-strong, #ced4da) !important;
    border-color: var(--sfe-border-strong, #ced4da) !important;
    box-shadow: none !important;
}

/* Semana + Recursos chip — outline, never blue fill */
.pl-odo .pl-odo-scale,
.pl-odo span.pl-odo-scale,
.sfe-module-shell .pl-odo .pl-odo-scale {
    display: inline-flex !important;
    align-items: center;
    font-size: .875rem;
    border-radius: 4px;
    padding: 4px 10px;
    min-height: 30px;
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: var(--sfe-text, #1e293b) !important;
    border: 1px solid var(--sfe-border-strong, #ced4da) !important;
    box-shadow: none !important;
}
.pl-odo .pl-odo-chip,
.pl-odo span.pl-odo-chip,
.sfe-module-shell .pl-odo .pl-odo-chip {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    border-radius: 3px;
    padding: 2px 8px;
    font-size: .75rem;
    white-space: nowrap;
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: var(--sfe-text, #1e293b) !important;
    border: 1px solid var(--sfe-border-strong, #ced4da) !important;
}
.pl-odo .pl-odo-chip a,
.sfe-module-shell .pl-odo .pl-odo-chip a {
    color: var(--sfe-text, #1e293b) !important;
    text-decoration: none;
    font-weight: 700;
}

.pl-odo-inline { display:inline; margin:0; }
.pl-odo-title { margin:0 0 0 6px; font-size:1.05rem; font-weight:650; color:var(--sfe-text, #1e293b); }
.pl-odo-actions { position:relative; }
.pl-odo-actions__menu { position:absolute; top:calc(100% + 4px); left:0; z-index:40; min-width:200px; background:#fff; border:1px solid #dee2e6; border-radius:6px; box-shadow:0 8px 24px rgba(15,23,42,.12); padding:4px 0; }
.pl-odo-actions__item { display:block; width:100%; text-align:left; border:0; background:transparent; padding:8px 14px; font-size:.875rem; color:var(--sfe-text, #1e293b); text-decoration:none; cursor:pointer; }
.pl-odo-actions__item:hover { background:var(--sfe-primary-light, #E8F4FF); color:var(--sfe-primary-dark, #0056CC); }
.pl-odo-search { flex:1 1 240px; max-width:440px; margin:0 auto; display:flex; align-items:center; gap:6px; border:1px solid #ced4da; border-radius:4px; padding:2px 8px; background:#fff; min-height:34px; }
.pl-odo-search input { border:0; outline:none; flex:1; min-width:80px; font-size:.875rem; }

/* View switcher — inactive muted; active = SFE primary (no navy) */
.pl-odo-views { display:inline-flex; border:1px solid var(--sfe-border-strong, #ced4da); border-radius:4px; overflow:hidden; margin-left:auto; }
.pl-odo-view-btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:30px; height:30px; color:var(--sfe-text-muted, #495057);
    text-decoration:none; background:#fff; font-size:.7rem;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.pl-odo-view-btn:hover {
    background: var(--sfe-primary-light, #E8F4FF);
    color: var(--sfe-primary-dark, #0056CC);
}
.pl-odo-view-btn.is-active,
.pl-odo-view-btn.is-active:hover,
.pl-odo-view-btn.is-active:active {
    background: var(--sfe-primary, #007BFF) !important;
    color: #fff !important;
}

.pl-odo-weekbar { display:flex; align-items:center; gap:8px; }
.pl-odo-board-wrap { overflow:auto; border:1px solid #e9ecef; border-radius:4px; background:#fff; min-height:360px; position:relative; }
.pl-odo-board { width:100%; border-collapse:collapse; min-width:900px; }
.pl-odo-board th, .pl-odo-board td { border:1px solid #f1f3f5; padding:8px; vertical-align:top; font-size:.8125rem; min-width:110px; }
.pl-odo-board thead th { background:#f8f9fa; font-weight:600; color:#495057; text-align:center; }
.pl-odo-col-res { text-align:left!important; min-width:160px; }
.pl-odo-week-meta { font-size:.75rem; color:#6c757d; }
.pl-odo-week-range { font-size:.8rem; color:var(--sfe-text, #1e293b); margin-top:2px; }
.pl-odo-board th.is-today, .pl-odo-board td.is-today { background:#eef5fc; }
.pl-odo-res { text-align:left!important; background:#fff; font-weight:600; color:var(--sfe-text, #1e293b); white-space:nowrap; }

/* Slots: published = Nuevo (.btn-primary) chrome; draft pale */
.pl-odo a.pl-odo-slot:not(.state-draft),
.pl-odo .pl-odo-slot:not(.state-draft),
.pl-odo a.btn.btn-primary.pl-odo-slot,
.sfe-module-shell .pl-odo a.pl-odo-slot:not(.state-draft),
.main-content .pl-odo a.pl-odo-slot:not(.state-draft),
.content-area .pl-odo a.pl-odo-slot:not(.state-draft) {
    display: block !important;
    white-space: normal !important;
    min-height: 0 !important;
    height: auto !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    padding: 4px 6px !important;
    margin: 0 0 4px !important;
    border-radius: 3px !important;
    border: 0 !important;
    border-left: 3px solid #003d99 !important;
    background: var(--sfe-primary, #007BFF) !important;
    background-color: var(--sfe-primary, #007BFF) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
    filter: none;
    transition: filter 0.12s ease, box-shadow 0.12s ease !important;
    cursor: pointer;
}
.pl-odo a.pl-odo-slot.state-draft,
.pl-odo .pl-odo-slot.state-draft,
.sfe-module-shell .pl-odo a.pl-odo-slot.state-draft,
.main-content .pl-odo a.pl-odo-slot.state-draft {
    display: block !important;
    white-space: normal !important;
    min-height: 0 !important;
    padding: 4px 6px !important;
    margin: 0 0 4px !important;
    border-radius: 3px !important;
    border: 0 !important;
    border-left: 3px solid var(--sfe-primary, #007BFF) !important;
    background: var(--sfe-primary-light, #E8F4FF) !important;
    background-color: var(--sfe-primary-light, #E8F4FF) !important;
    color: #0f2744 !important;
    -webkit-text-fill-color: #0f2744 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    filter: none;
    transition: filter 0.12s ease !important;
}
.pl-odo .pl-odo-slot strong,
.pl-odo a.pl-odo-slot strong {
    display: block;
    font-size: .75rem;
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
}
.pl-odo .pl-odo-slot:not(.state-draft) span,
.pl-odo a.pl-odo-slot:not(.state-draft) span {
    font-size: .7rem;
    color: rgba(255,255,255,.95) !important;
    -webkit-text-fill-color: rgba(255,255,255,.95) !important;
}
.pl-odo .pl-odo-slot.state-draft span,
.pl-odo a.pl-odo-slot.state-draft span {
    font-size: .7rem;
    color: #495057 !important;
    -webkit-text-fill-color: #495057 !important;
}

.pl-odo-total th, .pl-odo-total td { background:#f8f9fa; font-weight:650; text-align:center; }
.pl-odo-empty { text-align:center; padding:48px 16px; max-width:420px; margin:40px auto; }
.pl-odo-empty__icon { width:72px; height:72px; margin:0 auto 12px; border-radius:50%; background:var(--sfe-primary, #007BFF); color:#fff; display:flex; align-items:center; justify-content:center; font-size:2rem; }
.pl-odo-empty h3 { margin:0 0 8px; font-size:1.05rem; }
.pl-odo-empty p { margin:0 0 16px; color:#6c757d; font-size:.875rem; }
.pl-odo-modal { position:fixed; inset:0; background:rgba(15,23,42,.35); z-index:80; display:flex; align-items:flex-start; justify-content:center; padding:48px 16px; }
.pl-odo-modal__card { background:#fff; border-radius:8px; width:min(720px,100%); box-shadow:0 16px 48px rgba(15,23,42,.2); padding:18px 20px; }
.pl-odo-modal__head { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-bottom:14px; }
.pl-odo-modal__head h3 { margin:0; }
.pl-odo-stepper { display:flex; flex-wrap:wrap; gap:6px; font-size:.7rem; }
.pl-odo-stepper span { padding:3px 8px; border-radius:999px; background:#f1f3f5; color:#6c757d; }
.pl-odo-stepper span.is-active { background:var(--sfe-primary-light, #E8F4FF); color:var(--sfe-primary-dark, #0056CC); }
.pl-odo-modal__grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pl-odo-modal__grid label, .pl-odo-modal__note { display:flex; flex-direction:column; gap:4px; font-size:.8125rem; }
.pl-odo-modal__grid input, .pl-odo-modal__grid select, .pl-odo-modal__note textarea { min-height:32px; border:1px solid #ced4da; border-radius:4px; padding:4px 8px; }
.pl-odo-modal__note { margin-top:12px; }
.pl-odo-modal__actions { display:flex; gap:8px; margin-top:14px; align-items:center; }
@media(max-width:720px){ .pl-odo-modal__grid{grid-template-columns:1fr;} }

/* slot-as-nuevo — exact Nuevo (.btn-primary) hover/active; white text always */
a.pl-odo-slot:not(.state-draft),
.pl-odo-slot:not(.state-draft),
a.btn.btn-primary.pl-odo-slot {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-decoration: none !important;
}
a.pl-odo-slot:not(.state-draft):hover,
a.pl-odo-slot:not(.state-draft):focus,
a.pl-odo-slot:not(.state-draft):focus-visible,
a.pl-odo-slot:not(.state-draft):active,
a.pl-odo-slot:not(.state-draft):visited,
a.pl-odo-slot:not(.state-draft):visited:hover,
.pl-odo-slot:not(.state-draft):hover,
.pl-odo a.pl-odo-slot:not(.state-draft):hover,
.pl-odo a.pl-odo-slot:not(.state-draft):focus,
.pl-odo a.pl-odo-slot:not(.state-draft):active,
.pl-odo a.btn.btn-primary.pl-odo-slot:hover,
.pl-odo a.btn.btn-primary.pl-odo-slot:focus,
.pl-odo a.btn.btn-primary.pl-odo-slot:active,
.sfe-module-shell .pl-odo a.pl-odo-slot:not(.state-draft):hover,
.sfe-module-shell .pl-odo a.pl-odo-slot:not(.state-draft):focus,
.sfe-module-shell .pl-odo a.pl-odo-slot:not(.state-draft):active,
.main-content .pl-odo a.pl-odo-slot:not(.state-draft):hover,
.main-content .pl-odo a.pl-odo-slot:not(.state-draft):focus,
.main-content .pl-odo a.pl-odo-slot:not(.state-draft):active,
.content-area .pl-odo a.pl-odo-slot:not(.state-draft):hover,
.content-area .pl-odo a.pl-odo-slot:not(.state-draft):focus,
.content-area .pl-odo a.pl-odo-slot:not(.state-draft):active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-decoration: none !important;
  /* same as live .btn-primary:hover — brightness only, no bg/color swap */
  background: var(--sfe-primary, #007BFF) !important;
  background-color: var(--sfe-primary, #007BFF) !important;
  filter: brightness(0.92) !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 1 !important;
}
a.pl-odo-slot:not(.state-draft):active,
.pl-odo a.pl-odo-slot:not(.state-draft):active,
.pl-odo a.btn.btn-primary.pl-odo-slot:active,
.sfe-module-shell .pl-odo a.pl-odo-slot:not(.state-draft):active {
  filter: brightness(0.84) !important;
}
a.pl-odo-slot:not(.state-draft):hover strong,
a.pl-odo-slot:not(.state-draft):focus strong,
a.pl-odo-slot:not(.state-draft):active strong,
a.pl-odo-slot:not(.state-draft):hover span,
a.pl-odo-slot:not(.state-draft):focus span,
a.pl-odo-slot:not(.state-draft):active span,
.pl-odo a.pl-odo-slot:not(.state-draft):hover strong,
.pl-odo a.pl-odo-slot:not(.state-draft):hover span,
.pl-odo a.pl-odo-slot:not(.state-draft):focus strong,
.pl-odo a.pl-odo-slot:not(.state-draft):focus span,
.pl-odo a.pl-odo-slot:not(.state-draft):active strong,
.pl-odo a.pl-odo-slot:not(.state-draft):active span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
/* Draft chips: keep dark text on pale bg */
.pl-odo a.pl-odo-slot.state-draft:hover,
.pl-odo a.pl-odo-slot.state-draft:focus,
.pl-odo a.pl-odo-slot.state-draft:active,
.sfe-module-shell .pl-odo a.pl-odo-slot.state-draft:hover,
.main-content .pl-odo a.pl-odo-slot.state-draft:hover {
  color: #0f2744 !important;
  -webkit-text-fill-color: #0f2744 !important;
  background: var(--sfe-primary-light, #E8F4FF) !important;
  background-color: var(--sfe-primary-light, #E8F4FF) !important;
  text-decoration: none !important;
  filter: brightness(0.96) !important;
}
.pl-odo a.pl-odo-slot.state-draft:hover strong,
.pl-odo a.pl-odo-slot.state-draft:focus strong,
.pl-odo a.pl-odo-slot.state-draft:active strong {
  color: #0f2744 !important;
  -webkit-text-fill-color: #0f2744 !important;
}
.pl-odo a.pl-odo-slot.state-draft:hover span,
.pl-odo a.pl-odo-slot.state-draft:focus span,
.pl-odo a.pl-odo-slot.state-draft:active span {
  color: #495057 !important;
  -webkit-text-fill-color: #495057 !important;
}
