/*!
 * panel-ui.css — estilos del modernizador (assets/js/panel-ui.js): selector de fechas y select2.
 * Usa los tokens del tema (--pa-accent, --bs-*) y funciona en modo claro/oscuro.
 */

/* ============================== Selector de fecha ============================== */
.pa-date-wrap { position: relative; display: block; width: 100%; }
.pa-date-wrap.pa-in-group { flex: 1 1 auto; width: 1%; min-width: 0; }
.pa-date-wrap .pa-date-source { display: none !important; }
.pa-date-input { padding-right: 2.4rem !important; background-image: none !important; cursor: pointer; }
.pa-date-input:read-only:not(:disabled) { background-color: var(--bs-body-bg); }
.pa-date-icon {
  position: absolute; right: 0; top: 0; bottom: 0; width: 2.4rem; border: 0; background: transparent; padding: 0;
  display: flex; align-items: center; justify-content: center; color: var(--bs-secondary-color, #74788d); cursor: pointer;
  border-radius: 0 var(--pa-radius-sm, 8px) var(--pa-radius-sm, 8px) 0; transition: color .15s;
}
.pa-date-icon i { font-size: 1.15rem; }
.pa-date-icon:hover, .pa-date-wrap.open .pa-date-icon { color: var(--pa-accent); }
.pa-date-icon:disabled { opacity: .5; cursor: not-allowed; }
.pa-date-wrap.open .pa-date-input { border-color: rgba(var(--pa-accent-rgb), .7); box-shadow: 0 0 0 .2rem rgba(var(--pa-accent-rgb), .15); }
.pa-in-group > .pa-date-input { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.pa-date-wrap.pa-sm .pa-date-icon { width: 2rem; } .pa-date-wrap.pa-sm .pa-date-icon i { font-size: 1rem; }
.pa-date-wrap.pa-sm .pa-date-input { padding-right: 2rem !important; }

.pa-cal {
  position: fixed; z-index: 20000; width: 292px; padding: .75rem; display: none;
  background: var(--bs-card-bg, #fff); color: var(--bs-body-color, #495057);
  border: 1px solid var(--bs-border-color, #e9ecef); border-radius: var(--pa-radius, 12px);
  box-shadow: 0 18px 44px rgba(16, 24, 40, .22); user-select: none;
  animation: paCalIn .12s ease-out;
}
.pa-cal.open { display: block; }
@keyframes paCalIn { from { opacity: 0; transform: translateY(-4px) scale(.98); } to { opacity: 1; transform: none; } }
.pa-cal-head { display: flex; align-items: center; justify-content: space-between; gap: .25rem; margin-bottom: .5rem; }
.pa-cal-title { flex: 1; border: 0; background: transparent; font-weight: 600; font-size: .92rem; padding: .35rem .5rem; border-radius: 8px; color: inherit; cursor: pointer; }
.pa-cal-title:hover { background: rgba(var(--pa-accent-rgb), .1); color: var(--pa-accent); }
.pa-cal-nav { width: 32px; height: 32px; border: 0; background: transparent; border-radius: 8px; color: var(--bs-secondary-color, #74788d); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.pa-cal-nav:hover { background: rgba(var(--pa-accent-rgb), .12); color: var(--pa-accent); }
.pa-cal-nav i { font-size: 1.25rem; }
.pa-cal-dow, .pa-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.pa-cal-dow span { text-align: center; font-size: .7rem; font-weight: 600; color: var(--bs-secondary-color, #74788d); padding: .25rem 0; text-transform: uppercase; }
.pa-cal-day { height: 34px; border: 0; background: transparent; border-radius: 9px; font-size: .84rem; color: inherit; cursor: pointer; position: relative; transition: background-color .1s, color .1s; }
.pa-cal-day:hover:not(:disabled) { background: rgba(var(--pa-accent-rgb), .14); color: var(--pa-accent); }
.pa-cal-day.out { color: var(--bs-secondary-color, #9aa3b2); opacity: .55; }
.pa-cal-day.today { font-weight: 700; box-shadow: inset 0 0 0 1.5px rgba(var(--pa-accent-rgb), .55); }
.pa-cal-day.cur { background: rgba(var(--pa-accent-rgb), .12); }
.pa-cal-day.sel, .pa-cal-day.sel:hover { background: var(--pa-accent) !important; color: #fff !important; box-shadow: 0 4px 10px rgba(var(--pa-accent-rgb), .35); opacity: 1; }
.pa-cal-day.dis, .pa-cal-day:disabled { opacity: .3; cursor: not-allowed; text-decoration: line-through; }
.pa-cal-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: .25rem 0 .5rem; }
.pa-cal-cell { height: 44px; border: 0; border-radius: 10px; background: transparent; color: inherit; font-size: .88rem; cursor: pointer; }
.pa-cal-cell:hover { background: rgba(var(--pa-accent-rgb), .14); color: var(--pa-accent); }
.pa-cal-cell.sel { background: var(--pa-accent); color: #fff; }
.pa-cal-time { display: flex; align-items: center; justify-content: center; gap: .4rem; margin-top: .5rem; padding-top: .55rem; border-top: 1px dashed var(--bs-border-color, #e9ecef); }
.pa-cal-time i { color: var(--bs-secondary-color); font-size: 1.1rem; }
.pa-cal-time input { width: 58px; text-align: center; border: 1px solid var(--bs-border-color, #ced4da); border-radius: 8px; padding: .3rem; background: transparent; color: inherit; }
.pa-cal-time input:focus { outline: 0; border-color: var(--pa-accent); box-shadow: 0 0 0 .15rem rgba(var(--pa-accent-rgb), .18); }
.pa-cal-foot { display: flex; justify-content: space-between; margin-top: .4rem; padding-top: .4rem; border-top: 1px solid var(--bs-border-color, #e9ecef); }
.pa-cal-link { border: 0; background: transparent; font-size: .8rem; font-weight: 600; color: var(--pa-accent); padding: .25rem .5rem; border-radius: 8px; cursor: pointer; }
.pa-cal-link:hover { background: rgba(var(--pa-accent-rgb), .1); }
.pa-cal-link.text-danger { color: #f46a6a; } .pa-cal-link.text-danger:hover { background: rgba(244, 106, 106, .12); }
html[data-bs-theme="dark"] .pa-cal { box-shadow: 0 18px 44px rgba(0, 0, 0, .55); }
@media (max-width: 380px) { .pa-cal { width: calc(100vw - 16px); } }

/* ============================== select2 ============================== */
.select2-container { width: 100%; font-size: inherit; }
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  min-height: calc(1.5em + .94rem + 2px); border: 1px solid var(--bs-border-color, #ced4da); border-radius: var(--pa-radius-sm, 8px);
  background-color: var(--bs-body-bg, #fff); transition: border-color .15s, box-shadow .15s;
}
html[data-bs-theme="dark"] .select2-container--default .select2-selection--single,
html[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple { background-color: #111827; }
.select2-container--default .select2-selection--single { display: flex; align-items: center; height: auto; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--bs-body-color, #495057); line-height: 1.5; padding: .47rem 2.2rem .47rem .75rem; flex: 1; font-size: inherit;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--bs-secondary-color, #9aa3b2); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 6px; top: 0; width: 22px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border: 0; width: 8px; height: 8px; margin: -6px 0 0 -4px; border-right: 2px solid var(--bs-secondary-color, #74788d); border-bottom: 2px solid var(--bs-secondary-color, #74788d);
  transform: rotate(45deg); transition: transform .15s;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { transform: rotate(-135deg); margin-top: -2px; }
.select2-container--default .select2-selection--single .select2-selection__clear { margin-right: 1.6rem; color: var(--bs-secondary-color); font-size: 1.1rem; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
  border-color: rgba(var(--pa-accent-rgb), .7); box-shadow: 0 0 0 .2rem rgba(var(--pa-accent-rgb), .15);
}
.select2-container--default.select2-container--disabled .select2-selection--single,
.select2-container--default.select2-container--disabled .select2-selection--multiple { background-color: var(--bs-secondary-bg, #eff2f7); opacity: .75; cursor: not-allowed; }
.select2-container.is-invalid .select2-selection { border-color: #f46a6a !important; }
.select2-container.is-valid .select2-selection { border-color: #34c38f !important; }
.select2-container--default .select2-selection--multiple { padding: .15rem .35rem; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: rgba(var(--pa-accent-rgb), .12); color: var(--pa-accent); border: 0; border-radius: 6px; padding: .1rem .5rem; margin-top: .3rem; font-size: .8rem;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { color: var(--pa-accent); margin-right: .3rem; border: 0; }
.select2-container.pa-sm .select2-selection--single { min-height: calc(1.5em + .5rem + 2px); }
.select2-container.pa-sm .select2-selection--single .select2-selection__rendered { padding: .2rem 2rem .2rem .6rem; font-size: .8rem; }

.select2-dropdown {
  border: 1px solid var(--bs-border-color, #e9ecef); border-radius: var(--pa-radius-sm, 8px); overflow: hidden; z-index: 20001;
  background: var(--bs-card-bg, #fff); box-shadow: 0 14px 36px rgba(16, 24, 40, .18); color: var(--bs-body-color);
}
.modal .select2-dropdown, .select2-container--open .select2-dropdown { z-index: 20001; }
.select2-container--open { z-index: 20001; }
.select2-search--dropdown { padding: .5rem; }
.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--bs-border-color, #ced4da); border-radius: 8px; padding: .4rem .65rem; background: transparent; color: var(--bs-body-color);
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus { outline: 0; border-color: var(--pa-accent); box-shadow: 0 0 0 .15rem rgba(var(--pa-accent-rgb), .18); }
.select2-results__option { padding: .5rem .85rem; font-size: .88rem; }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: rgba(var(--pa-accent-rgb), .12); color: var(--pa-accent); }
.select2-container--default .select2-results__option--selected { background: var(--pa-accent); color: #fff; }
.select2-container--default .select2-results__option--disabled { opacity: .45; }
.select2-container--default .select2-results__group { padding: .5rem .85rem .25rem; font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--bs-secondary-color); }
.select2-results__options { max-height: 260px; }
html[data-bs-theme="dark"] .select2-dropdown { box-shadow: 0 14px 36px rgba(0, 0, 0, .55); }
html[data-bs-theme="dark"] .select2-container--default .select2-results__option--selected { background: var(--pa-accent-dark); }
html[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--bs-body-color); }
