:root {
  --fs-navy: #0b2748;
  --fs-navy-deep: #061c35;
  --fs-gold: #c5a45d;
  --fs-gold-light: #e5ca8c;
  --fs-ivory: #f7f2e7;
  --fs-paper: #fffdf8;
  --fs-ink: #10233d;
  --fs-muted: #687489;
  --fs-border: #e4e7eb;
  --fs-danger: #a5151f;
  --fs-shadow: 0 14px 40px rgba(11, 39, 72, .09);
}

/* Las reglas móviles se encuentran al final para respetar la vista de escritorio. */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { color: var(--fs-ink); font-family: Inter, Arial, sans-serif; }
a { color: var(--fs-navy); }
.btn-primary { background: var(--fs-navy); border-color: var(--fs-navy); }
.btn-primary:hover, .btn-primary:focus { background: #123d6c; border-color: #123d6c; }
.btn-outline-primary { color: var(--fs-navy); border-color: var(--fs-navy); }
.card { border: 1px solid rgba(11, 39, 72, .06); border-radius: 12px; box-shadow: var(--fs-shadow); }

/* Acceso */
.fs-login { min-height: 100svh; display: grid; grid-template-columns: minmax(0, 59.2%) minmax(430px, 40.8%); background: var(--fs-ivory); }
.fs-login__brand { position: relative; overflow: hidden; display: flex; min-height: 100svh; flex-direction: column; padding: clamp(60px, 9.5vh, 90px) clamp(38px, 4.2vw, 72px) clamp(28px, 3.7vh, 36px); color: #fff; background: radial-gradient(circle at 17% 10%, #174a7a 0, transparent 34%), linear-gradient(145deg, var(--fs-navy) 0%, var(--fs-navy-deep) 100%); }
.fs-login__brand::after { content: ""; position: absolute; z-index: 0; inset: 0; background: url('../brand/login-line-art.svg') center/cover no-repeat; pointer-events: none; }
.fs-login__logo { position: relative; z-index: 1; width: min(760px, 80%); height: auto; }
.fs-login__message { position: relative; z-index: 1; max-width: 650px; margin: clamp(58px, 9vh, 88px) 0 0; }
.fs-login__message h1 { margin: 0; color: #fff; font: 700 clamp(44px, 6.5vh, 66px)/1.05 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.fs-login__message h1 span { color: var(--fs-gold-light); }
.fs-login__rule { width: 80px; height: 3px; margin: clamp(18px, 3vh, 28px) 0 clamp(15px, 2.5vh, 23px); background: var(--fs-gold); }
.fs-login__message p { max-width: 560px; margin: 0; color: rgba(255,255,255,.88); font-size: clamp(16px, 2vh, 20px); line-height: 1.5; }
.fs-login__benefits { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 680px; margin-top: clamp(24px, 4vh, 42px); }
.fs-login__benefit { padding: 0 24px; text-align: center; border-right: 1px solid rgba(229,202,140,.8); }
.fs-login__benefit:first-child { padding-left: 0; }
.fs-login__benefit:last-child { border: 0; }
.fs-login__benefit i { display: block; margin-bottom: 10px; color: var(--fs-gold-light); font-size: clamp(28px, 3.7vh, 35px); }
.fs-login__benefit span { font-size: 15px; line-height: 1.35; }
.fs-login__copyright { position: relative; z-index: 1; margin-top: clamp(22px, 3.5vh, 38px); color: rgba(255,255,255,.78); font-size: 13px; }
.fs-login__brand > div:last-child { margin-top: auto; }
.fs-login__form-side { display: flex; align-items: center; justify-content: center; padding: 42px; background: radial-gradient(circle at 75% 20%, #fff 0, transparent 32%), var(--fs-ivory); }
.fs-login-card { display: flex; width: min(100%, 560px); min-height: min(665px, calc(100svh - 80px)); flex-direction: column; justify-content: center; padding: clamp(38px, 5.3vh, 58px) 40px; background: rgba(255,255,255,.94); border: 1px solid rgba(11,39,72,.06); border-radius: 14px; box-shadow: 0 20px 55px rgba(11,39,72,.1); }
.fs-login-card h2 { margin: 0; color: var(--fs-navy); text-align: center; font: 700 clamp(38px, 4vw, 54px)/1.1 Georgia, serif; }
.fs-login-card__rule { width: 88px; height: 4px; margin: 22px auto; background: var(--fs-gold); }
.fs-login-card__intro { max-width: 340px; margin: 0 auto 36px; color: var(--fs-muted); text-align: center; font-size: 17px; line-height: 1.45; }
.fs-form-label { display: block; margin-bottom: 8px; color: var(--fs-navy); font-weight: 600; }
.fs-form-control { width: 100%; height: 54px; padding: 12px 16px; border: 1px solid #cbd3dc; border-radius: 8px; color: var(--fs-ink); background: #fff; transition: .2s ease; }
.fs-form-control:focus { border-color: var(--fs-gold); box-shadow: 0 0 0 3px rgba(197,164,93,.2); outline: 0; }
.fs-login-options { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 18px 0 28px; font-size: 14px; }
.fs-login-options label { margin: 0; font-weight: 400; }
.fs-login-button { width: 100%; min-height: 54px; border: 0; border-radius: 8px; color: #fff; background: var(--fs-navy); font-size: 17px; font-weight: 600; }
.fs-login-button:hover { background: #123d6c; }

@media (min-width: 1101px) {
  .fs-login__benefits { top: -15px; }
  .fs-login__benefit { display: flex; min-height: 104px; flex-direction: column; justify-content: center; }
}

/* Estructura interna */
.main-sidebar { position: fixed !important; top: 0; bottom: 0; overflow: hidden; height: 100dvh; min-height: 100dvh !important; max-height: 100dvh; background: linear-gradient(180deg, var(--fs-navy) 0%, var(--fs-navy-deep) 100%) !important; box-shadow: 5px 0 24px rgba(6, 28, 53, .13); }
.main-sidebar::after { content: ""; position: absolute; z-index: 0; right: -20px; bottom: -65px; width: 520px; height: 510px; opacity: .45; background: url('../brand/login-line-art.svg') center/cover no-repeat; pointer-events: none; }
.brand-link { display: flex; align-items: center; height: 96px; padding: 15px 20px; border-bottom: 1px solid rgba(255,255,255,.08) !important; }
.brand-link .fs-sidebar-logo { width: 100%; max-height: 62px; object-fit: contain; }
.brand-link .fs-sidebar-logo--mark { display: none; }
.sidebar { position: relative; z-index: 1; max-height: calc(100svh - 96px); overflow-y: auto; padding: 16px 10px 145px; scrollbar-color: rgba(197,164,93,.45) transparent; scrollbar-width: thin; }
.fs-sidebar-signature { position: absolute; z-index: 1; bottom: 28px; left: 28px; color: rgba(255,255,255,.9); font-size: 13px; line-height: 1.35; transition: opacity .2s ease, visibility .2s ease; }
.main-sidebar:has(.menu-open) .fs-sidebar-signature { visibility: hidden; opacity: 0; }
.main-sidebar:has(.menu-open) .sidebar { padding-bottom: 24px; }
.nav-sidebar .nav-link { margin-bottom: 7px; padding: 13px 15px; border-radius: 8px; color: rgba(255,255,255,.88) !important; }
.nav-sidebar .nav-link p { font-size: 15px; }
.nav-sidebar .nav-link:hover { background: rgba(255,255,255,.08) !important; }
.nav-sidebar .nav-link.active { color: #fff !important; background: linear-gradient(90deg, #aa8844, var(--fs-gold)) !important; box-shadow: none !important; }
.nav-sidebar .nav-treeview .nav-link { padding-top: 9px; padding-bottom: 9px; }
.main-header { min-height: 68px; border-bottom: 1px solid #e7e5df; box-shadow: 0 2px 12px rgba(11,39,72,.04); }
.fs-user-avatar { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; margin-right: 9px; border-radius: 50%; color: #fff; background: var(--fs-navy); font: 700 14px Georgia, serif; }
.fs-user-meta { display: inline-flex; flex-direction: column; vertical-align: middle; line-height: 1.15; }
.fs-user-meta small { margin-top: 3px; color: var(--fs-muted); }
.content-wrapper { background: radial-gradient(circle at 38% 5%, #fff 0, transparent 34%), var(--fs-ivory); }
.main-footer { color: var(--fs-muted); border-top: 1px solid #e7e3da; background: var(--fs-paper); font-size: 13px; }
.fs-dashboard-page .main-footer { display: none; }
.fs-calendar-layout-page .main-footer { display: none; }
.fs-calendar-layout-page .fs-calendar-page { padding-bottom: 14px; }

/* Panel */
.fs-dashboard { padding: 26px 32px 42px; }
.fs-dashboard__top { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.fs-dashboard h1, .fs-section-title { color: var(--fs-navy); font-family: Georgia, 'Times New Roman', serif; font-weight: 700; }
.fs-dashboard h1 { margin: 0 0 4px; font-size: clamp(30px, 3vw, 42px); }
.fs-dashboard__lead { margin: 0; color: var(--fs-muted); }
.fs-search { position: relative; width: min(100%, 520px); }
.fs-search i { position: absolute; top: 50%; left: 18px; color: var(--fs-navy); transform: translateY(-50%); }
.fs-search input { width: 100%; height: 48px; padding: 10px 18px 10px 50px; border: 1px solid #cad2dc; border-radius: 8px; background: rgba(255,255,255,.8); }
.fs-section-title { margin: 0 0 18px; font-size: 26px; }
.fs-section-title::after { content: ""; display: block; width: 74px; height: 3px; margin-top: 10px; background: var(--fs-gold); }
.fs-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-bottom: 28px; }
.fs-stat { display: flex; align-items: center; min-height: 134px; padding: 22px; border: 1px solid rgba(11,39,72,.06); border-radius: 10px; background: rgba(255,255,255,.9); box-shadow: 0 8px 24px rgba(11,39,72,.05); }
.fs-stat__icon { display: flex; flex: 0 0 58px; align-items: center; justify-content: center; width: 58px; height: 58px; margin-right: 18px; border-radius: 50%; color: var(--fs-navy); background: #edf2f7; font-size: 24px; }
.fs-stat > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.fs-stat--danger .fs-stat__icon { color: var(--fs-danger); background: #fce8e8; }
.fs-stat--today .fs-stat__icon { color: #a87300; background: #fff2d2; }
.fs-stat__label { margin-bottom: 2px; color: var(--fs-ink); font-size: 14px; }
.fs-stat__value { color: var(--fs-navy); font: 700 38px/1 Georgia, serif; }
.fs-stat--danger .fs-stat__value { color: var(--fs-danger); }
.fs-stat--today .fs-stat__value { color: #b17b05; }
.fs-dashboard-grid { display: grid; grid-template-columns: minmax(0, 2.35fr) minmax(310px, 1fr); gap: 20px; }
.fs-panel { padding: 20px; border: 1px solid rgba(11,39,72,.06); border-radius: 10px; background: rgba(255,255,255,.92); box-shadow: 0 8px 24px rgba(11,39,72,.05); }
.fs-dashboard-grid > .fs-panel { min-height: 472px; }
.fs-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.fs-panel__head .fs-section-title { margin-bottom: 14px; font-size: 23px; }
.fs-panel__link { color: #947126; font-weight: 600; white-space: nowrap; }
.fs-table { margin: 0; color: var(--fs-ink); }
.fs-dashboard-grid > .fs-panel:first-child .table-responsive { max-height: 380px; overflow-y: auto; }
.fs-table thead th { position: sticky; z-index: 2; top: 0; border: 0; color: var(--fs-navy); background: #f1f4f6; font-size: 13px; font-weight: 600; }
.fs-table td { border-top-color: #e7ebef; vertical-align: middle; font-size: 13px; }
.fs-date--danger { color: var(--fs-danger); font-weight: 600; }
.fs-date--today { color: #a87300; font-weight: 600; }
.fs-status { display: inline-flex; align-items: center; min-width: 86px; padding: 6px 12px; border-radius: 999px; background: #e9f0f7; font-size: 12px; }
.fs-status::before { content: ""; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: #83a8ca; }
.fs-status--danger { color: #9e111c; background: #fde6e7; }
.fs-status--danger::before { background: #e85b65; }
.fs-status--today { color: #926200; background: #fff1cc; }
.fs-status--today::before { background: #dfa91e; }
.fs-calendar-panel { min-height: 420px; }
.fs-calendar__head { display: grid; grid-template-columns: 32px 1fr 32px; align-items: center; margin-bottom: 20px; text-align: center; }
.fs-calendar__head h2 { margin: 0; color: var(--fs-navy); font: 700 23px/1.2 Georgia, 'Times New Roman', serif; }
.fs-calendar__head a { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; }
.fs-calendar__head a:hover { background: #eef2f6; }
.fs-calendar { display: grid; grid-template-columns: repeat(7, minmax(30px, 1fr)); gap: 8px 4px; text-align: center; }
.fs-calendar__weekday { padding-bottom: 7px; color: #53637a; font-size: 12px; }
.fs-calendar__day { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin: auto; border-radius: 50%; color: var(--fs-ink); font-size: 13px; }
.fs-calendar__day:hover { color: var(--fs-navy); background: #eef2f6; }
.fs-calendar__day--empty { pointer-events: none; }
.fs-calendar__day--danger { color: #9e111c; background: #fde0e2; }
.fs-calendar__day--today { color: #fff; background: #dfaa22; }
.fs-calendar__day--next { color: var(--fs-navy); background: #e0effb; }
.fs-calendar__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 22px; padding-top: 18px; border-top: 1px solid #e5e8eb; color: #526078; font-size: 9.5px; }
.fs-calendar__legend span { display: inline-flex; align-items: center; white-space: nowrap; }
.fs-dot { width: 9px; height: 9px; margin-right: 4px; border-radius: 50%; }
.fs-dot--danger { background: #ef777e; }
.fs-dot--today { background: #efbd3e; }
.fs-dot--next { background: #a9d4f3; }

/* Pantallas de gestión */
.fs-page { padding: 26px 30px 42px; }
.fs-page > .container-fluid { padding: 0; }
.fs-page-card { overflow: hidden; margin-bottom: 0; border: 1px solid rgba(11,39,72,.07); border-radius: 12px; background: rgba(255,255,255,.94); box-shadow: 0 10px 30px rgba(11,39,72,.07); }
.fs-page-card > .card-header { min-height: 76px; padding: 20px 24px; border-bottom: 1px solid #e9ecef; background: #fff; }
.fs-page-card > .card-header .d-flex { flex-wrap: wrap; gap: 12px; }
.fs-page-title { position: relative; margin: 0 12px 0 0 !important; padding-bottom: 10px; color: var(--fs-navy); font: 700 27px/1.15 Georgia, 'Times New Roman', serif; }
.fs-page-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 58px; height: 3px; background: var(--fs-gold); }
.fs-page-subtitle { margin: 6px 0 0; color: var(--fs-muted); font-size: 13px; }
.fs-page-card > .card-body { padding: 22px 24px 26px; }
.fs-page .btn { border-radius: 7px; font-weight: 600; }
.fs-page .btn-sm { min-height: 34px; padding: 7px 12px; }
.fs-page .btn-primary { box-shadow: 0 5px 14px rgba(11,39,72,.14); }
.fs-page .btn-secondary { color: #fff; border-color: #66758a; background: #66758a; }
.fs-page .btn-info { color: var(--fs-navy); border-color: var(--fs-gold); background: var(--fs-gold-light); }
.fs-page .btn-default { color: var(--fs-navy); border-color: #d5dbe2; background: #f7f8f9; }
.fs-page .btn-outline-primary { color: var(--fs-navy); }
.fs-page .btn-outline-primary:hover { color: #fff; background: var(--fs-navy); }
.fs-page label, .modal-content label { margin-bottom: 6px; color: var(--fs-navy); font-size: 13px; font-weight: 600; }
.fs-page .form-control, .modal-content .form-control { min-height: 42px; border-color: #ccd4de; border-radius: 7px; color: var(--fs-ink); background-color: #fff; }
.fs-page .form-control:focus, .modal-content .form-control:focus { border-color: var(--fs-gold); box-shadow: 0 0 0 3px rgba(197,164,93,.18); }
.fs-page .form-group-sm, .modal-content .form-group-sm { margin-bottom: 16px; }
.fs-page .table-responsive { scrollbar-color: rgba(197,164,93,.65) #f1f3f5; scrollbar-width: thin; }
.fs-page table { width: 100% !important; margin-bottom: 0 !important; color: var(--fs-ink); }
.fs-page table thead th { padding: 13px 12px !important; border-top: 0 !important; border-bottom: 1px solid #dfe4e9 !important; color: var(--fs-navy); background: #f0f3f6; font-size: 12px; font-weight: 700; letter-spacing: .015em; vertical-align: middle; white-space: nowrap; }
.fs-page table.dataTable thead > tr > th.sorting, .fs-page table.dataTable thead > tr > th.sorting_asc, .fs-page table.dataTable thead > tr > th.sorting_desc { position: relative; padding-right: 30px !important; }
.fs-page table.dataTable thead > tr > th.sorting::before, .fs-page table.dataTable thead > tr > th.sorting::after, .fs-page table.dataTable thead > tr > th.sorting_asc::before, .fs-page table.dataTable thead > tr > th.sorting_asc::after, .fs-page table.dataTable thead > tr > th.sorting_desc::before, .fs-page table.dataTable thead > tr > th.sorting_desc::after { right: 9px !important; color: #718096; }
.fs-page table tbody td { padding: 12px !important; border-top: 1px solid #e8ebee; vertical-align: middle; font-size: 13px; }
.fs-page table tbody tr:hover { background: #fbf8f0 !important; }
.fs-page .table-danger, .fs-page .table-danger > td { background: #fff2f2; }
.fs-page .badge { padding: 6px 10px; border-radius: 999px; font-weight: 600; }
.fs-page .badge-info { color: var(--fs-navy); background: #dceaf6; }
.fs-page .badge-warning { color: #765100; background: #fff0c8; }
.fs-actions-column { min-width: 52px; }
.fs-actions { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.fs-action-button { display: inline-flex; width: 34px; height: 34px; flex: 0 0 34px; align-items: center; justify-content: center; padding: 0; border: 1px solid #d8dee6; border-radius: 7px; color: var(--fs-navy); background: #fff; font-size: 14px; line-height: 1; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.fs-action-button:hover, .fs-action-button:focus { color: var(--fs-navy); border-color: var(--fs-gold); background: #fbf7ed; outline: 0; transform: translateY(-1px); }
.fs-action-button--edit { color: #8a6416; border-color: #dfca96; background: #fffaf0; }
.fs-action-button--edit i { color: #9a701b; }
.fs-action-button--view { color: #164d77; border-color: #b9cfe0; background: #f5faff; }
.fs-action-button--view i { color: #1c5f91; }
.fs-action-button--delete { color: #9e1c26; border-color: #efd4d7; background: #fffafa; }
.fs-action-button--delete i { color: #b82732; }
.fs-action-button--delete:hover, .fs-action-button--delete:focus { color: #8f101a; border-color: #d98990; background: #fff0f1; }
.fs-action-button--enabled { color: #13723c; border-color: #b8dfc8; background: #f3fbf6; }
.fs-action-button--disabled { color: #7a6470; border-color: #dacdd4; background: #faf7f9; }
.fs-page .dataTables_wrapper .row { align-items: center; }
.fs-page .dataTables_length, .fs-page .dataTables_filter { margin-bottom: 16px; color: var(--fs-muted); font-size: 13px; }
.fs-page .dataTables_filter { text-align: right; }
.fs-page .dataTables_filter input, .fs-page .dataTables_length select { height: 38px; margin-left: 7px; padding: 6px 10px; border: 1px solid #ccd4de; border-radius: 7px; background: #fff; }
.fs-page .dataTables_info { padding-top: 18px !important; color: var(--fs-muted); font-size: 12px; }
.fs-page .pagination { margin: 16px 0 0; }
.fs-page .page-link { color: var(--fs-navy); border-color: #dde2e7; }
.fs-page .page-item.active .page-link { color: #fff; border-color: var(--fs-navy); background: var(--fs-navy); }
.fs-page .alert { border: 0; border-radius: 9px; box-shadow: 0 6px 18px rgba(11,39,72,.06); }
.fs-filter-row { align-items: center; row-gap: 12px; padding: 14px; border: 1px solid #e7eaee; border-radius: 9px; background: #fafbfc; }

/* Ventanas y formularios */
.modal-dialog { width: calc(100% - 32px); max-width: min(700px, calc(100vw - 32px)); margin: 16px auto; }
.modal-dialog.modal-lg { max-width: min(820px, calc(100vw - 32px)); }
.modal-dialog.modal-xl { max-width: min(1080px, calc(100vw - 40px)); }
.modal-content { overflow: hidden; max-height: calc(100dvh - 32px); border: 0; border-radius: 12px; box-shadow: 0 24px 70px rgba(6,28,53,.22); }
.modal-content > .modal-header { align-items: center; padding: 18px 22px; color: #fff; border-bottom: 0; background: linear-gradient(100deg, var(--fs-navy), #123d6c); }
.modal-content > .modal-header .modal-title { font: 700 24px/1.2 Georgia, 'Times New Roman', serif; }
.fs-modal-subtitle { margin: 4px 0 0; color: rgba(255,255,255,.75); font-size: 12px; }
.modal-content > .modal-header .close { color: #fff; opacity: .8; text-shadow: none; }
.modal-content > .modal-body { overflow-y: auto; padding: 22px; background: #fff; overscroll-behavior: contain; }
.modal-content .card { box-shadow: none; }
.modal-content .card-tabs > .card-header { padding: 0; border-bottom: 1px solid #e2e6ea; background: #f6f7f8; }
.modal-content .nav-tabs { padding: 0 12px; border-bottom: 0; }
.modal-content .card.card-tabs > .card-header .nav-tabs .nav-link { padding: 12px 16px; color: #526078 !important; border: 0; border-bottom: 3px solid transparent; background: transparent !important; font-weight: 600; }
.modal-content .card.card-tabs > .card-header .nav-tabs .nav-link:hover { color: var(--fs-navy) !important; background: rgba(197,164,93,.09) !important; }
.modal-content .card.card-tabs > .card-header .nav-tabs .nav-link.active { color: var(--fs-navy) !important; border-bottom-color: var(--fs-gold); background: #fff !important; }
.modal-content .card-tabs > .card-body { padding: 20px; }
.modal-content .modal-footer { border-top-color: #e9ecef; background: #fafbfc; }
.fs-modal-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 2px 0 0; padding-top: 14px; border-top: 1px solid #e8ebee; }
.fs-client-table { border: 1px solid #e4e8ec; border-radius: 9px; }
.fs-client-status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.fs-client-status--active { color: #17633a; background: #e6f5ec; }
.fs-client-status--inactive { color: #6f5d66; background: #f1ecef; }
.fs-client-status i { font-size: 10px; }
#calendar .fc-toolbar-title { color: var(--fs-navy); font: 700 24px/1.2 Georgia, 'Times New Roman', serif; }
#calendar .fc-button-primary { border-color: var(--fs-navy); background: var(--fs-navy); }
#calendar .fc-button-primary:not(:disabled).fc-button-active { border-color: #9d7b34; background: var(--fs-gold); }
#calendar .fc-col-header-cell { background: #f0f3f6; }

/* Agenda jurídica */
.fs-calendar-page { padding-top: 14px; }
.fs-calendar-page .fs-page-card > .card-header { min-height: 68px; padding-top: 12px; padding-bottom: 12px; }
.fs-calendar-page .fs-page-card > .card-body { padding-top: 12px; }
.fs-calendar-heading { min-width: 0; }
.fs-calendar-heading .fs-page-title { float: none; display: block; padding-bottom: 7px; font-size: 25px; }
.fs-calendar-heading .fs-page-subtitle { clear: both; margin-top: 4px; line-height: 1.25; }
.fs-calendar-legend { display: flex; align-items: center; gap: 18px; margin-bottom: 12px; padding: 8px 14px; border: 1px solid #e2e6ea; border-radius: 8px; color: #46556a; background: #fafbfc; font-size: 11px; }
.fs-calendar-legend span { display: inline-flex; align-items: center; white-space: nowrap; }
.fs-calendar-legend small { margin-left: auto; color: var(--fs-muted); }
.fs-calendar-legend__dot { width: 9px; height: 9px; margin-right: 7px; border-radius: 50%; }
.fs-calendar-legend__dot--hearing { background: var(--fs-navy); }
.fs-calendar-legend__dot--deadline { background: var(--fs-gold); }
.fs-calendar-legend__dot--overdue { background: var(--fs-danger); }
.fs-calendar-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 288px; gap: 14px; align-items: stretch; }
.fs-calendar-main { min-width: 0; padding: 10px 12px 12px; border: 1px solid #e3e7eb; border-radius: 10px; background: #fff; }
.fs-calendar-page #calendar .fc-toolbar { margin-bottom: 8px; }
.fs-calendar-page #calendar .fc-toolbar-title { font-size: 20px; text-transform: capitalize; }
.fs-calendar-page #calendar .fc-button { padding: 5px 9px; border-radius: 6px; box-shadow: none !important; font-size: 11px; font-weight: 600; }
.fs-calendar-page #calendar .fc-button-primary:disabled { opacity: .58; }
.fs-calendar-page #calendar .fc-scrollgrid { overflow: hidden; border-color: #dfe4e9; border-radius: 8px; }
.fs-calendar-page #calendar th { padding: 5px 4px !important; border-color: #dfe4e9 !important; background: #eff3f6; }
.fs-calendar-page #calendar .fc-col-header-cell-cushion { color: var(--fs-navy); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.fs-calendar-page #calendar td { border-color: #e5e8ec; background: #fff; }
.fs-calendar-page #calendar .fc-day-today { background: #fff8e6 !important; }
.fs-calendar-page #calendar .fc-daygrid-day-number { padding: 4px 6px; color: var(--fs-ink); font-size: 11px; }
.fs-calendar-page #calendar .fc-event { margin: 0 2px; padding: 0 4px; border-radius: 4px; cursor: pointer; font-size: 9px; font-weight: 600; line-height: 1.25; }
.fs-calendar-page #calendar .fc-daygrid-event { overflow: hidden; max-width: calc(100% - 4px); white-space: nowrap; }
.fs-calendar-page #calendar .fc-daygrid-event .fc-event-main,
.fs-calendar-page #calendar .fc-daygrid-event .fc-event-main-frame,
.fs-calendar-page #calendar .fc-daygrid-event .fc-event-title-container { overflow: hidden; min-width: 0; }
.fs-calendar-page #calendar .fc-daygrid-event .fc-event-time,
.fs-calendar-page #calendar .fc-daygrid-event .fc-event-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-calendar-page #calendar .fc-daygrid-dot-event { align-items: center; padding-right: 4px; }
.fs-calendar-page #calendar .fc-daygrid-day-events { min-height: 23px !important; }
.fs-calendar-page #calendar .fc-daygrid-dot-event:hover { background: #f6f8fa; }
.fs-calendar-page #calendar .fc-dayGridMonth-view .fc-scroller { overflow: hidden !important; }
.fs-calendar-page #calendar .fc-daygrid-day-frame { min-height: 0 !important; cursor: pointer; }
.fs-calendar-page #calendar .fc-daygrid-body tr { height: 58px !important; }
.fs-calendar-page #calendar .fc-daygrid-body table { height: auto !important; table-layout: fixed; }
.fs-calendar-page #calendar .fc-daygrid-day-frame:hover { background: rgba(197,164,93,.06); }
.fs-calendar-page #calendar .fc-list-event:hover td { background: #fbf8f0; }
.fs-agenda { overflow: hidden; border: 1px solid #e3e7eb; border-radius: 10px; background: #fff; }
.fs-agenda__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #e7eaee; background: linear-gradient(135deg, #f7f9fb, #fff); }
.fs-agenda__eyebrow { color: #9b772c; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fs-agenda__head h2 { margin: 2px 0 0; color: var(--fs-navy); font: 700 17px/1.15 Georgia, 'Times New Roman', serif; }
.fs-agenda__count { display: inline-flex; width: 27px; height: 27px; align-items: center; justify-content: center; border-radius: 50%; color: #fff; background: var(--fs-navy); font-size: 11px; font-weight: 700; }
.fs-agenda__list { max-height: 354px; overflow-y: auto; }
.fs-agenda-item { display: grid; width: 100%; grid-template-columns: 39px minmax(0, 1fr) 10px; gap: 8px; align-items: center; padding: 8px 11px; color: var(--fs-ink); text-align: left; border: 0; border-bottom: 1px solid #edf0f2; background: #fff; cursor: pointer; }
.fs-agenda-item:hover, .fs-agenda-item:focus { color: var(--fs-ink); background: #fbf8f0; outline: 0; }
.fs-agenda-item__date { display: flex; height: 39px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #d9e0e6; border-radius: 7px; background: #f7f9fb; line-height: 1; }
.fs-agenda-item__date strong { color: var(--fs-navy); font: 700 15px Georgia, serif; }
.fs-agenda-item__date small { margin-top: 3px; color: var(--fs-muted); font-size: 8px; }
.fs-agenda-item__body { display: flex; min-width: 0; flex-direction: column; }
.fs-agenda-item__type { width: fit-content; margin-bottom: 3px; padding: 2px 6px; border-radius: 999px; font-size: 8px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.fs-agenda-item__type--hearing { color: #fff; background: var(--fs-navy); }
.fs-agenda-item__type--deadline { color: #6e4d09; background: #f7e8bd; }
.fs-agenda-item__body > strong { overflow: hidden; color: var(--fs-ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.fs-agenda-item__body > small { overflow: hidden; margin-top: 3px; color: var(--fs-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.fs-agenda-item__arrow { color: #9ca7b4; font-size: 9px; }
.fs-agenda__all { display: flex; justify-content: space-between; padding: 9px 13px; color: #876720; border-top: 1px solid #e7eaee; background: #fafbfc; font-size: 10px; font-weight: 700; }
.fs-agenda__empty { padding: 44px 20px; color: var(--fs-muted); text-align: center; }
.fs-agenda__empty i { margin-bottom: 8px; color: var(--fs-gold); font-size: 28px; }
.fs-agenda__empty p { margin: 0; font-size: 12px; }

/* Hora de audiencia: control compacto y consistente entre navegadores. */
.fs-time-entry { display: grid; grid-template-columns: 48px 10px 48px minmax(70px, 1fr) 18px; gap: 5px; align-items: center; min-height: 42px; padding: 4px 8px; border: 1px solid #ccd4de; border-radius: 7px; background: #fff; }
.fs-time-entry:focus-within { border-color: var(--fs-gold); box-shadow: 0 0 0 3px rgba(197,164,93,.16); }
.fs-time-entry .form-control { min-height: 32px !important; height: 32px; padding: 3px 5px; text-align: center; border: 0; box-shadow: none !important; }
.fs-time-entry select.form-control { padding-right: 18px; text-align-last: center; }
.fs-time-entry__separator { color: var(--fs-navy); text-align: center; font-weight: 700; }
.fs-time-entry > i { color: var(--fs-muted); text-align: center; }

@media (min-width: 992px) {
  :root { --fs-sidebar-width: clamp(270px, 18.4vw, 310px); }
  .main-sidebar, .main-sidebar::before { width: var(--fs-sidebar-width); }
  .content-wrapper, .main-header, .main-footer { margin-left: var(--fs-sidebar-width) !important; }
  body.sidebar-collapse .main-sidebar, body.sidebar-collapse .main-sidebar::before { width: 4.6rem; }
  body.sidebar-collapse .content-wrapper, body.sidebar-collapse .main-header, body.sidebar-collapse .main-footer { margin-left: 4.6rem !important; }
  body.sidebar-collapse .brand-link { justify-content: center; padding: 14px 8px; }
  body.sidebar-collapse .brand-link .fs-sidebar-logo--full { display: none; }
  body.sidebar-collapse .brand-link .fs-sidebar-logo--mark { display: block; width: 42px; height: 56px; object-fit: contain; filter: brightness(0) invert(1); }
  body.sidebar-collapse .fs-sidebar-signature { display: none; }
  body.sidebar-collapse .sidebar { padding-right: 7px; padding-bottom: 20px; padding-left: 7px; }
  body.sidebar-collapse .main-sidebar::after { right: -70px; bottom: -20px; width: 220px; height: 300px; opacity: .2; }
}
@media (min-width: 1101px) and (max-height: 900px) {
  .main-header { min-height: 62px; }
  .fs-dashboard { padding: 18px 28px 22px; }
  .fs-dashboard__top { margin-bottom: 16px; }
  .fs-dashboard h1 { font-size: 34px; }
  .fs-dashboard__lead { font-size: 14px; }
  .fs-section-title { margin-bottom: 13px; font-size: 23px; }
  .fs-section-title::after { width: 66px; margin-top: 6px; }
  .fs-stats { gap: 16px; margin-bottom: 18px; }
  .fs-stat { min-height: 104px; padding: 16px; }
  .fs-stat__icon { flex-basis: 50px; width: 50px; height: 50px; margin-right: 14px; font-size: 21px; }
  .fs-stat__label { font-size: 13px; }
  .fs-stat__value { font-size: 32px; }
  .fs-dashboard-grid { gap: 16px; }
  .fs-dashboard-grid > .fs-panel { min-height: 358px; }
  .fs-panel { padding: 16px; }
  .fs-panel__head .fs-section-title { margin-bottom: 10px; font-size: 21px; }
  .fs-dashboard-grid > .fs-panel:first-child .table-responsive { max-height: 274px; }
  .fs-table thead th, .fs-table td { padding: .55rem .65rem; font-size: 12px; }
  .fs-calendar-panel { min-height: 358px; }
  .fs-calendar__head { margin-bottom: 10px; }
  .fs-calendar__head h2 { font-size: 21px; }
  .fs-calendar { gap: 4px 3px; }
  .fs-calendar__weekday { padding-bottom: 3px; }
  .fs-calendar__day { width: 29px; height: 29px; font-size: 12px; }
  .fs-calendar__legend { margin-top: 12px; padding-top: 11px; }
  .fs-page { padding: 18px 24px 26px; }
  .fs-page-card > .card-header { min-height: 66px; padding: 15px 20px; }
  .fs-page-title { font-size: 24px; }
  .fs-page-card > .card-body { padding: 18px 20px 20px; }
  .fs-page table thead th, .fs-page table tbody td { padding: 9px 10px !important; }
  .fs-calendar-page #calendar { font-size: 11px; }
  .fs-agenda__list { max-height: 354px; }
}
@media (max-width: 1100px) {
  .fs-login { grid-template-columns: 1fr 1fr; }
  .fs-login__benefits { grid-template-columns: 1fr; gap: 14px; }
  .fs-login__benefit { display: flex; align-items: center; gap: 12px; padding: 0; text-align: left; border: 0; }
  .fs-login__benefit i { margin: 0; }
  .fs-stats { grid-template-columns: repeat(2, 1fr); }
  .fs-dashboard-grid { grid-template-columns: 1fr; }
  .fs-calendar-workspace { grid-template-columns: 1fr; }
  .fs-agenda__list { max-height: 310px; }
}
@media (max-width: 767px) {
  .fs-login { display: block; }
  .fs-login__brand { min-height: auto; padding: 28px 24px 34px; }
  .fs-login__logo { width: min(520px, 100%); }
  .fs-login__message { margin: 36px 0 0; }
  .fs-login__message h1 { font-size: 38px; }
  .fs-login__message p, .fs-login__benefits, .fs-login__copyright { display: none; }
  .fs-login__form-side { padding: 24px 16px 40px; }
  .fs-login-card { padding: 30px 22px; }
  .fs-login-options { align-items: flex-start; flex-direction: column; gap: 10px; }
  .fs-dashboard { padding: 20px 14px 32px; }
  .fs-dashboard__top { align-items: stretch; flex-direction: column; }
  .fs-stats { grid-template-columns: 1fr; }
  .fs-panel { padding: 14px; }
  .fs-panel__head { align-items: flex-start; }
  .fs-page { padding: 16px 12px 28px; }
  .fs-page-card > .card-header, .fs-page-card > .card-body { padding: 16px; }
  .fs-page-title { font-size: 23px; }
  .fs-page .dataTables_filter { text-align: left; }
  .modal-dialog, .modal-dialog.modal-lg, .modal-dialog.modal-xl { width: calc(100% - 16px); max-width: calc(100vw - 16px); margin: 8px auto; }
  .modal-content { max-height: calc(100dvh - 16px); }
  .modal-content > .modal-body { padding: 14px; }
  .fs-calendar-legend { align-items: flex-start; flex-wrap: wrap; gap: 8px 14px; }
  .fs-calendar-legend small { width: 100%; margin-left: 0; }
  .fs-calendar-page .fs-page-card > .card-header .d-flex { align-items: flex-start !important; flex-direction: column; }
  .fs-calendar-main { padding: 8px; }
  .fs-calendar-page #calendar .fc-toolbar { align-items: stretch; flex-direction: column; gap: 8px; }
  .fs-calendar-page #calendar .fc-toolbar-chunk { display: flex; justify-content: center; }
}
/* Resumen y control operativo de plazos */
.fs-deadline-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.fs-deadline-stat{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 15px;border:1px solid #dbe3eb;border-radius:10px;background:#fff;color:#0b2748;transition:.18s ease}.fs-deadline-stat:hover,.fs-deadline-stat.is-active{border-color:#c5a45d;background:#fffaf0;color:#0b2748;text-decoration:none;box-shadow:0 7px 18px rgba(11,39,72,.08)}.fs-deadline-stat>i{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#edf2f7}.fs-deadline-stat span{display:flex;flex-direction:column}.fs-deadline-stat small{color:#607089;font-size:.75rem}.fs-deadline-stat strong{font-family:Georgia,serif;font-size:1.35rem;line-height:1.1}.fs-time-status{display:inline-flex;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#eef3f7;color:#3e5269;font-size:.75rem;font-weight:700}.fs-time-status.is-overdue{background:#fde3e5;color:#a5151f}.fs-deadline-row--overdue{background:#fff5f5}.fs-deadline-table td{vertical-align:middle}.fs-notifications .dropdown-menu{max-height:480px;overflow-y:auto}.fs-notifications .dropdown-item{white-space:normal}.fs-notifications .dropdown-item .text-sm{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:991.98px){.fs-deadline-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.fs-deadline-summary{grid-template-columns:1fr}.fs-deadline-stat{min-height:58px}.fs-deadline-table{min-width:1050px}}
.fs-judicial-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.fs-judicial-table td{vertical-align:middle}.fs-judicial-notice{color:#465b72;background:#f8fafc}.fs-judicial-detail{display:grid;grid-template-columns:1.1fr 1.4fr .7fr;gap:10px}.fs-judicial-detail>div{display:flex;flex-direction:column;padding:14px;border:1px solid #dbe3eb;border-radius:9px;background:#f8fafc}.fs-judicial-detail small{color:#68798d}.fs-judicial-detail strong{text-transform:none;color:#0b2748}
@media(max-width:991.98px){.fs-judicial-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fs-judicial-detail{grid-template-columns:1fr}}
@media(max-width:575.98px){.fs-judicial-summary{grid-template-columns:1fr}.fs-judicial-table{min-width:900px}}
.fs-mail-integration{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 16px;border:1px solid #dbe3eb;border-radius:10px;background:#fff}.fs-mail-integration__identity{display:flex;min-width:0;align-items:center;gap:11px}.fs-mail-integration__copy{display:flex;min-width:0;flex-direction:column;line-height:1.3}.fs-mail-integration__copy strong{color:#0b2748}.fs-mail-integration__icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:9px;color:#fff;background:#0b2748}.fs-mail-integration small{display:block;color:#68798d}.fs-mail-integration>.text-right{flex:0 0 auto}
@media(max-width:575.98px){.fs-mail-integration{align-items:flex-start;flex-direction:column}.fs-mail-integration .text-right{text-align:left!important}}
/* Los formularios de expediente viven dentro de una ventana modal; desde
   tablet aprovechan su ancho sin esperar el corte "lg" de Bootstrap. */
@media (min-width: 768px) {
  .modal-dialog .col-lg-2 { flex: 0 0 16.666667% !important; max-width: 16.666667% !important; }
  .modal-dialog .col-lg-3 { flex: 0 0 25% !important; max-width: 25% !important; }
  .modal-dialog .col-lg-4 { flex: 0 0 33.333333% !important; max-width: 33.333333% !important; }
  .modal-dialog .col-lg-6 { flex: 0 0 50% !important; max-width: 50% !important; }
  .modal-dialog .col-lg-8 { flex: 0 0 66.666667% !important; max-width: 66.666667% !important; }
  .modal-dialog .col-lg-9 { flex: 0 0 75% !important; max-width: 75% !important; }
  .modal-dialog .col-lg-10 { flex: 0 0 83.333333% !important; max-width: 83.333333% !important; }
  .modal-dialog .col-lg-12 { flex: 0 0 100% !important; max-width: 100% !important; }
}

/* Selector de fecha y hora inspirado en calendarios y relojes modernos. */
.fs-datetime-label{display:block;margin-bottom:6px;color:#0b2748;font-weight:700}.fs-datetime-trigger{display:flex;width:100%;min-height:52px;align-items:center;gap:11px;padding:7px 12px;border:1px solid #cbd6e2;border-radius:9px;color:#0b2748;background:#fff;text-align:left;transition:border-color .18s,box-shadow .18s,transform .18s}.fs-datetime-trigger:hover{border-color:#c5a45d;box-shadow:0 5px 16px rgba(11,39,72,.08)}.fs-datetime-trigger:focus{outline:0;border-color:#c5a45d;box-shadow:0 0 0 3px rgba(197,164,93,.2)}.fs-datetime-trigger.is-invalid{border-color:#dc3545;box-shadow:0 0 0 3px rgba(220,53,69,.12)}.fs-datetime-trigger__icon{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border-radius:8px;color:#fff;background:#0b2748}.fs-datetime-trigger__copy{display:flex;min-width:0;flex:1;flex-direction:column}.fs-datetime-trigger__copy small{color:#68798d;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.fs-datetime-trigger__copy strong{overflow:hidden;font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.fs-datetime-trigger__chevron{color:#c5a45d;font-size:.72rem}.fs-datetime-field--compact .fs-datetime-trigger{min-height:45px}.fs-picker-open{overflow:hidden}.fs-picker-backdrop[hidden]{display:none!important}.fs-picker-backdrop{position:fixed;z-index:1090;inset:0;display:grid;place-items:center;padding:18px;background:rgba(4,18,35,.68);backdrop-filter:blur(2px)}.fs-picker{width:min(720px,96vw);max-height:94vh;overflow:hidden;border:1px solid rgba(255,255,255,.35);border-radius:15px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.3)}.fs-picker__header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;color:#fff;background:linear-gradient(135deg,#0b2748,#153f6c)}.fs-picker__header>div{display:flex;min-width:0;flex-direction:column}.fs-picker__header small{color:#e7d4a6;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.fs-picker__headline{overflow:hidden;font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;text-overflow:ellipsis;white-space:nowrap}.fs-picker__close{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border:1px solid rgba(255,255,255,.25);border-radius:50%;color:#fff;background:rgba(255,255,255,.08)}.fs-picker__close:hover{background:rgba(255,255,255,.18)}.fs-picker__body{display:grid;grid-template-columns:minmax(330px,1.12fr) minmax(250px,.88fr);max-height:calc(94vh - 144px);overflow:auto}.fs-calendar{padding:20px 22px;border-right:1px solid #e3e9ef}.fs-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.fs-calendar__period{display:flex;min-width:0;gap:6px}.fs-calendar__period select{height:38px;border:0;border-radius:7px;color:#0b2748;background:#f2f5f8;font-weight:750}.fs-calendar__month{width:128px}.fs-calendar__year{width:82px}.fs-calendar__nav{display:grid;width:36px;height:36px;place-items:center;border:0;border-radius:50%;color:#0b2748;background:transparent}.fs-calendar__nav:hover{color:#fff;background:#0b2748}.fs-calendar__week,.fs-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.fs-calendar__week{margin-bottom:5px;color:#74859a;font-size:.7rem;font-weight:800;text-align:center;text-transform:uppercase}.fs-calendar-day{height:38px;border:0;border-radius:50%;color:#243b55;background:transparent;font-weight:650}.fs-calendar-day:hover{color:#0b2748;background:#f3ead5}.fs-calendar-day.is-outside{color:#b8c1cb}.fs-calendar-day.is-today{border:1px solid #c5a45d}.fs-calendar-day.is-selected{color:#fff;background:#0b2748;box-shadow:0 4px 10px rgba(11,39,72,.24)}.fs-time-picker{display:flex;align-items:center;flex-direction:column;padding:19px 22px;background:#f8fafc}.fs-time-picker__title{align-self:stretch;color:#68798d;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.fs-time-picker__title i{margin-right:6px;color:#c5a45d}.fs-time-display{display:flex;align-items:baseline;margin:7px 0 5px;color:#0b2748;font-variant-numeric:tabular-nums}.fs-time-display strong{font-family:Georgia,'Times New Roman',serif;font-size:2.35rem;line-height:1}.fs-time-display>span{margin:0 3px;font-size:1.9rem;font-weight:700}.fs-time-display small{margin-left:8px;color:#a27f34;font-weight:800}.fs-clock-face{position:relative;width:205px;height:205px;margin:4px auto 10px;border-radius:50%;background:#edf1f5;box-shadow:inset 0 0 0 1px #dbe3eb}.fs-clock-hour{position:absolute;width:32px;height:32px;transform:translate(-50%,-50%);border:0;border-radius:50%;color:#314860;background:transparent;font-size:.76rem;font-weight:800}.fs-clock-hour:hover,.fs-clock-hour.is-selected{color:#fff;background:#0b2748;box-shadow:0 3px 8px rgba(11,39,72,.22)}.fs-clock-face__center{position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:#c5a45d}.fs-clock-hour--12{left:50%;top:9%}.fs-clock-hour--1{left:72%;top:15%}.fs-clock-hour--2{left:87%;top:30%}.fs-clock-hour--3{left:92%;top:50%}.fs-clock-hour--4{left:87%;top:70%}.fs-clock-hour--5{left:72%;top:85%}.fs-clock-hour--6{left:50%;top:91%}.fs-clock-hour--7{left:28%;top:85%}.fs-clock-hour--8{left:13%;top:70%}.fs-clock-hour--9{left:8%;top:50%}.fs-clock-hour--10{left:13%;top:30%}.fs-clock-hour--11{left:28%;top:15%}.fs-minute-control{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;color:#4c6077;font-size:.75rem;font-weight:800;text-transform:uppercase}.fs-minute-stepper{display:flex;align-items:center;overflow:hidden;border:1px solid #d6dee7;border-radius:8px;background:#fff}.fs-minute-stepper button{width:34px;height:34px;border:0;color:#0b2748;background:#f3f6f8}.fs-minute-stepper button:hover{color:#fff;background:#0b2748}.fs-minute-input{width:48px;height:34px;border:0;color:#0b2748;background:#fff;text-align:center;font-weight:800;-moz-appearance:textfield}.fs-minute-input::-webkit-inner-spin-button{display:none}.fs-meridiem-toggle{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:4px;margin-top:10px;padding:4px;border-radius:9px;background:#e8edf2}.fs-meridiem-toggle button{height:34px;border:0;border-radius:7px;color:#52677e;background:transparent;font-weight:800}.fs-meridiem-toggle button.is-selected{color:#0b2748;background:#fff;box-shadow:0 2px 6px rgba(11,39,72,.14)}.fs-picker__actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:12px 20px;border-top:1px solid #e2e8ef;background:#fff}.fs-picker__actions button{height:39px;padding:0 18px;border-radius:8px;font-weight:800}.fs-picker__cancel{border:0;color:#53687d;background:transparent}.fs-picker__apply{border:1px solid #0b2748;color:#fff;background:#0b2748}.fs-picker__apply:hover{background:#153f6c}
.fs-filter-panel { padding: 15px 16px 2px; border: 1px solid #dbe3eb; border-radius: 10px; background: #f8fafc; }
.fs-filter-panel label { margin-bottom: 5px; color: #40546d; font-size: .78rem; font-weight: 700; }
.fs-filter-actions { align-items: center; }
.fs-pagination-summary { margin: 14px 0 8px; color: #68798d; font-size: .82rem; }
@media (max-width: 575.98px) {
  .fs-filter-actions { align-items: stretch; }
}
@media(max-width:767.98px){.fs-picker-backdrop{padding:8px}.fs-picker{max-height:98vh;border-radius:12px}.fs-picker__header{padding:14px 16px}.fs-picker__headline{font-size:1.15rem}.fs-picker__body{grid-template-columns:1fr;max-height:calc(98vh - 130px)}.fs-calendar{padding:16px;border-right:0;border-bottom:1px solid #e3e9ef}.fs-time-picker{padding:16px}.fs-clock-face{width:190px;height:190px}.fs-picker__actions{position:sticky;bottom:0}.fs-calendar-day{height:35px}}

/* Selector Material corregido: nombres aislados del calendario general. */
.fs-picker__mobile-tabs{display:none}
.fs-date-picker{display:block;min-width:0;padding:22px 24px;border-right:1px solid #e3e9ef;background:#fff;text-align:initial}
.fs-date-picker__toolbar{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:8px;margin-bottom:18px}
.fs-date-picker__period{display:flex;min-width:0;align-items:center;justify-content:center;gap:7px}
.fs-date-picker__period select{height:40px;padding:0 10px;border:0;border-radius:8px;color:#0b2748;background:#f1f4f7;font-size:.92rem;font-weight:800}
.fs-date-picker__month{width:145px}.fs-date-picker__year{width:88px}
.fs-date-picker__nav{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:50%;color:#0b2748;background:transparent}
.fs-date-picker__nav:hover,.fs-date-picker__nav:focus{outline:0;color:#fff;background:#0b2748}
.fs-date-picker__week,.fs-date-picker__days{display:grid;width:100%;grid-template-columns:repeat(7,minmax(36px,1fr));gap:6px 4px}
.fs-date-picker__week{margin:0 0 8px;color:#6c7d91;font-size:.7rem;font-weight:800;text-align:center;text-transform:uppercase}
.fs-date-picker__day{display:grid;width:40px;height:40px;place-items:center;justify-self:center;margin:0;padding:0;border:0;border-radius:50%;color:#243b55;background:transparent;font-size:.88rem;font-weight:700;line-height:1}
.fs-date-picker__day:hover,.fs-date-picker__day:focus{outline:0;color:#0b2748;background:#f3ead5}
.fs-date-picker__day.is-outside{color:#b7c0ca}.fs-date-picker__day.is-today{box-shadow:inset 0 0 0 1.5px #c5a45d}
.fs-date-picker__day.is-selected{color:#fff;background:#0b2748;box-shadow:0 4px 10px rgba(11,39,72,.26),0 0 0 2px #e3ca91}
.fs-time-display input{width:62px;height:54px;padding:0 4px;border:1px solid transparent;border-radius:9px;color:#0b2748;background:transparent;font-family:Georgia,'Times New Roman',serif;font-size:2.35rem;font-weight:800;line-height:1;text-align:center;font-variant-numeric:tabular-nums}
.fs-time-display input:hover{background:#e9eef3}.fs-time-display input:focus,.fs-time-display input.is-active{outline:0;border-color:#c5a45d;background:#fff7e6;box-shadow:0 0 0 3px rgba(197,164,93,.15)}
.fs-time-mode-hint{min-height:18px;margin:0 0 5px;color:#718197;font-size:.7rem;font-weight:700;text-align:center}
.fs-clock-face{overflow:visible}.fs-clock-options{position:absolute;z-index:3;inset:0}.fs-clock-option{position:absolute;display:grid;width:34px;height:34px;place-items:center;transform:translate(-50%,-50%);border:0;border-radius:50%;color:#30475f;background:transparent;font-size:.73rem;font-weight:800;line-height:1}
.fs-clock-option:hover,.fs-clock-option:focus{outline:0;background:#dce4ec}.fs-clock-option.is-selected{color:#fff;background:#0b2748;box-shadow:0 3px 9px rgba(11,39,72,.3)}
.fs-clock-hand{position:absolute;z-index:1;bottom:50%;left:50%;width:2px;height:36%;transform-origin:50% 100%;background:#c5a45d;transition:transform .16s ease}
.fs-clock-hand::before{position:absolute;top:-4px;left:50%;width:9px;height:9px;transform:translateX(-50%);border-radius:50%;background:#c5a45d;content:''}
.fs-clock-face__center{z-index:4}.fs-time-display__period{min-width:42px}

@media(max-width:767.98px){
  .fs-picker{width:min(430px,calc(100vw - 14px));max-height:calc(100dvh - 14px)}
  .fs-picker__header{padding:14px 16px 12px}.fs-picker__headline{font-size:1.12rem}
  .fs-picker__mobile-tabs{display:grid;grid-template-columns:1fr 1fr;padding:5px;background:#e8edf2}
  .fs-picker__mobile-tabs button{height:42px;border:0;border-radius:8px;color:#52677e;background:transparent;font-weight:800}
  .fs-picker__mobile-tabs button.is-selected{color:#0b2748;background:#fff;box-shadow:0 2px 8px rgba(11,39,72,.12)}
  .fs-picker__body{display:block;max-height:calc(100dvh - 190px);overflow:auto}
  .fs-date-picker{padding:18px 14px;border:0}.fs-time-picker{display:none;min-height:430px;padding:18px 24px}
  .fs-datetime-field.is-mobile-time .fs-date-picker{display:none}.fs-datetime-field.is-mobile-time .fs-time-picker{display:flex}
  .fs-date-picker__toolbar{margin-bottom:14px}.fs-date-picker__week,.fs-date-picker__days{grid-template-columns:repeat(7,minmax(38px,1fr));gap:5px 2px}
  .fs-date-picker__day{width:42px;height:42px;font-size:.92rem}.fs-clock-face{width:245px;height:245px}
  .fs-picker__actions{position:relative;z-index:2;padding:10px 14px}.fs-picker__actions button{min-width:104px;height:44px}
}
@media(max-width:380px){
  .fs-picker__header small{font-size:.6rem}.fs-picker__headline{font-size:1rem}.fs-date-picker{padding:14px 9px}
  .fs-date-picker__period select{padding:0 6px}.fs-date-picker__month{width:126px}.fs-date-picker__year{width:78px}
  .fs-date-picker__week,.fs-date-picker__days{grid-template-columns:repeat(7,minmax(34px,1fr));gap:3px 1px}.fs-date-picker__day{width:36px;height:36px}
  .fs-clock-face{width:220px;height:220px}.fs-time-picker{min-height:400px;padding:14px 18px}
}

/* Controles separados de fecha y hora. Se conserva .fs-calendar para el calendario del inicio. */
.fs-calendar{padding:0;border:0}
.fs-datetime-label{margin-bottom:7px}
.fs-datetime-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.fs-datetime-control{min-width:0}
.fs-datetime-control>label{display:block;margin-bottom:6px;color:#0b2748;font-size:13px;font-weight:600;line-height:1.5}
.fs-datetime-label+.fs-datetime-controls .fs-datetime-control>label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.fs-datetime-trigger{min-width:0;min-height:48px;padding:6px 10px;gap:9px}
.fs-datetime-trigger strong{min-width:0;flex:1;overflow:hidden;color:#0b2748;font-size:1rem;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.fs-datetime-trigger__icon{width:32px;height:32px;flex-basis:32px}
.fs-datetime-field--compact .fs-datetime-trigger{min-height:42px;padding:4px 8px}
.fs-datetime-field--compact .fs-datetime-trigger__icon{width:29px;height:29px;flex-basis:29px}
.fs-datetime-field--compact .fs-datetime-trigger strong{font-size:1rem}
.fs-time-picker{justify-content:flex-start}
.fs-time-display{align-items:center;margin-top:10px}
.fs-time-display>span{font-size:1.65rem}
.fs-time-display__period{margin-left:7px!important;color:#a27f34;font-family:Arial,sans-serif;font-size:.82rem!important}
.fs-clock-face{width:230px;height:230px;margin-top:8px}
.fs-meridiem-toggle{max-width:230px}

@media(max-width:575.98px){
  .fs-datetime-controls{grid-template-columns:1fr;gap:8px}
  .fs-datetime-label+.fs-datetime-controls{grid-template-columns:1fr 1fr}
  .fs-datetime-label+.fs-datetime-controls .fs-datetime-trigger__icon{display:none}
  .fs-datetime-label+.fs-datetime-controls .fs-datetime-trigger{padding-inline:10px}
}
@media(max-width:360px){
  .fs-datetime-label+.fs-datetime-controls{grid-template-columns:1fr}
}

/* Ajuste final: cada control abre exclusivamente su editor y mantiene la grilla alineada. */
.fs-datetime-field[data-mode="date"] .fs-datetime-controls{grid-template-columns:1fr}
.fs-datetime-field .fs-datetime-label{min-height:24px;margin:0 0 5px;line-height:19px}
.fs-datetime-field .fs-datetime-controls{align-items:end}
.fs-datetime-field .fs-datetime-trigger{height:42px;min-height:42px;padding:4px 8px}
.fs-datetime-field .fs-datetime-trigger__icon{width:30px;height:30px;flex-basis:30px}
.fs-datetime-field--compact .fs-datetime-trigger{height:42px;min-height:42px}
.fs-datetime-field[data-active-panel="date"] .fs-picker{width:min(520px,calc(100vw - 28px))}
.fs-datetime-field[data-active-panel="time"] .fs-picker{width:min(430px,calc(100vw - 28px))}
.fs-datetime-field[data-active-panel] .fs-picker__body{display:block;max-height:calc(94vh - 144px)}
.fs-datetime-field[data-active-panel="date"] .fs-time-picker{display:none!important}
.fs-datetime-field[data-active-panel="time"] .fs-date-picker{display:none!important}
.fs-datetime-field[data-active-panel="date"] .fs-date-picker{border-right:0}
.fs-datetime-field[data-active-panel="time"] .fs-time-picker{display:flex;min-height:430px}

@media(max-width:767.98px){
  .fs-datetime-field[data-active-panel] .fs-picker{width:min(430px,calc(100vw - 14px))}
  .fs-datetime-field[data-active-panel] .fs-picker__body{max-height:calc(100dvh - 135px)}
  .fs-datetime-field[data-active-panel="date"] .fs-date-picker{display:block!important}
  .fs-datetime-field[data-active-panel="time"] .fs-time-picker{display:flex!important;min-height:400px}
}
@media(max-width:575.98px){
  .fs-datetime-label+.fs-datetime-controls{grid-template-columns:1fr 1fr}
  .fs-datetime-field[data-mode="date"] .fs-datetime-controls{grid-template-columns:1fr}
}

.fs-mobile-order { display: none; }
/* Gestión en teléfonos: fichas completas en lugar de columnas fuera de pantalla. */
@media (max-width: 767.98px) {
  .content-wrapper, .fs-page, .fs-dashboard, .fs-page-card, .fs-panel,
  .fs-page .card-body, .modal-content .card-body, .tab-content, .tab-pane { min-width: 0; }
  .fs-page, .fs-dashboard { padding: 12px 8px 24px; }
  .fs-page-card > .card-header, .fs-page-card > .card-body { padding: 14px 12px; }
  .fs-page-card > .card-header { min-height: 0; }
  .fs-page-title { float: none; font-size: 22px; }
  .fs-page-card > .card-header .d-flex { align-items: flex-start !important; }
  .fs-page-card > .card-header .btn { margin-left: 0 !important; }
  .fs-dashboard h1 { font-size: 28px; }
  .fs-dashboard__top { gap: 12px; margin-bottom: 16px; }
  .fs-stats, .fs-deadline-summary, .fs-judicial-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
  .fs-stat { min-height: 96px; padding: 12px 9px; gap: 8px; }
  .fs-stat__icon { flex-basis: 30px; width: 30px; height: 30px; margin-right: 0; font-size: 16px; }
  .fs-stat__label { font-size: 12px; line-height: 1.35; }
  .fs-stat__value { font-size: 28px; }
  .fs-dashboard-grid > .fs-panel { min-height: 0; }
  .fs-panel__head { flex-wrap: wrap; gap: 0 10px; margin-bottom: 10px; }
  .fs-panel__head .fs-section-title { max-width: 100%; margin-bottom: 8px; font-size: 21px; }
  .fs-panel__link { margin-bottom: 8px; font-size: 13px; }
  .fs-page .form-control, .modal-content .form-control { width: 100%; max-width: 100%; font-size: 16px; }
  .fs-filter-row, .fs-filter-panel { padding: 12px; }
  .fs-page .nav-pills, .modal-content .nav-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0; }
  .fs-page .nav-pills .nav-item, .modal-content .nav-tabs .nav-item { flex: 1 1 45%; min-width: 0; }
  .fs-page .nav-pills .nav-link, .modal-content .card.card-tabs > .card-header .nav-tabs .nav-link { height: 100%; padding: 10px 8px; font-size: 13px; white-space: normal; }
  .modal-dialog, .modal-dialog.modal-lg, .modal-dialog.modal-xl { width: calc(100% - 16px); max-width: calc(100vw - 16px); margin: 8px auto; }
  .modal-content > .modal-header { position: relative; flex-wrap: wrap; gap: 10px; padding: 14px 48px 14px 14px; }
  .modal-content > .modal-header .modal-title { flex: 1 0 100%; font-size: 22px; }
  .modal-content > .modal-header .close { position: absolute; top: 12px; right: 12px; margin: 0; padding: 8px; }
  .modal-content > .modal-body { padding: 12px; overflow-x: hidden; }
  .modal-content .card-tabs > .card-body { padding: 12px; }
  .modal-content .modal-footer, .fs-modal-actions { flex-wrap: wrap; }
  .fs-user-meta { max-width: 150px; font-size: 13px; }
  .fs-user-meta > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .main-header { min-height: 58px; }
  .main-footer { padding: 12px; font-size: 12px; }
  .fs-mobile-table-wrap, .fs-dashboard-grid > .fs-panel:first-child .fs-mobile-table-wrap { overflow: visible; max-height: none; }
  table.fs-mobile-table { display: block; width: 100% !important; min-width: 0 !important; max-width: 100%; border: 0; }
  .fs-mobile-table > thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .fs-mobile-order { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 6px; margin: 0 0 12px; }
  .fs-mobile-order label { grid-column: 1 / -1; margin: 0; }
  .fs-mobile-order button { min-height: 42px; }
  .fs-mobile-table > tbody { display: block; width: 100%; }
  .fs-mobile-table > tbody > tr { display: block; width: 100%; margin-bottom: 12px; padding: 6px 0; border: 1px solid #dfe4e9; border-radius: 8px; background: #fff; }
  .fs-page table.fs-mobile-table > tbody > tr > td,
  .modal-content table.fs-mobile-table > tbody > tr > td,
  .fs-dashboard table.fs-mobile-table > tbody > tr > td { display: block; width: 100% !important; min-width: 0; padding: 7px 10px !important; border: 0; background: transparent; font-size: 14px; line-height: 1.5; white-space: normal !important; overflow-wrap: anywhere; text-align: left; }
  .fs-mobile-table > tbody > tr > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; color: #687489; font-size: 11px; font-weight: 700; }
  .fs-mobile-table > tbody > tr.fs-mobile-message > td { text-align: center; padding: 18px 12px !important; }
  .fs-mobile-table .fs-actions-column { min-width: 0; }
  .fs-mobile-table .btn, .fs-mobile-table .fs-action-button { margin: 2px; min-height: 40px; }
  .fs-page .dataTables_wrapper .row > div { min-width: 0; }
  .fs-page .dataTables_filter { width: 100%; text-align: left; }
  .fs-page .dataTables_filter label { display: flex; align-items: center; gap: 8px; width: 100%; }
  .fs-page .dataTables_filter input { flex: 1; min-width: 0; width: 100% !important; margin: 0; font-size: 16px; }
  .fs-page .dataTables_length select { font-size: 16px; }
  .fs-page .dataTables_paginate .pagination { justify-content: center !important; flex-wrap: wrap; gap: 2px; margin-top: 10px !important; }
  .fs-page .page-link { padding: 8px 10px; font-size: 13px; }
}
