/* ============================================
   GIRASOL — Custom CSS
   Base: Tabler + Bootstrap 5
   Colores corporativos: #312ea0 / #dd9b02
   ============================================ */

:root {
    /* Valores por defecto (tema girasol). base.html.twig los sobrescribe
       según APP_THEME. Ver src/Service/ThemeProvider.php */
    --girasol-primary: #312ea0;
    --girasol-accent: #dd9b02;
    --girasol-primary-light: #5f58b3;
    --girasol-accent-light: #f0b429;
    --girasol-radius: 8px;
    --girasol-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---- SIDEBAR ---- */
.girasol-sidebar {
    background-color: var(--girasol-primary) !important;
    border-right: none;
}

.girasol-sidebar .navbar-brand {
    background-color: rgba(0,0,0,0.15);
    padding: 1rem;
}

.girasol-sidebar .nav-link {
    color: rgba(255,255,255,0.75) !important;
    border-radius: 6px;
    margin: 1px 8px;
    transition: background-color 0.2s, color 0.2s;
}

.girasol-sidebar .nav-link:hover,
.girasol-sidebar .nav-link.active {
    background-color: rgba(255,255,255,0.15) !important;
    color: #fff !important;
}

.girasol-sidebar .nav-item.active > .nav-link {
    background-color: rgba(255,255,255,0.2) !important;
    color: #fff !important;
    border-left: 3px solid var(--girasol-accent);
}

.girasol-sidebar .nav-link-icon {
    color: rgba(255,255,255,0.5);
}

/* Etiqueta de sección del sidebar (ej. "Administración").
   Por defecto sobre sidebar de color; los temas claros la reajustan. */
.sidebar-section-label {
    display: block;
    color: rgba(255,255,255,0.4);
}

.girasol-sidebar .nav-item.active .nav-link-icon,
.girasol-sidebar .nav-link:hover .nav-link-icon {
    color: var(--girasol-accent);
}

/* ---- TOPBAR ---- */
.girasol-topbar {
    border-bottom: 3px solid;
    border-image: linear-gradient(to right, var(--girasol-primary), var(--girasol-accent)) 1;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

/* ---- AVATAR ---- */
.girasol-avatar {
    background-color: var(--girasol-primary);
    color: #fff;
    font-weight: 600;
}

/* ---- BADGES NOTIFICACIÓN ---- */
.badge-notification {
    position: absolute;
    top: 2px;
    right: 2px;
    font-size: 0.6rem;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    padding: 0 4px;
    border-radius: 8px;
}

.badge-notification-sidebar {
    font-size: 0.6rem;
    vertical-align: super;
    margin-left: 2px;
}

/* ---- IMPORTES / SALDOS ---- */
.amount-positive { color: #2fb344; font-weight: 600; }
.amount-negative { color: #d63939; font-weight: 600; }
.amount-zero     { color: inherit; }

/* ---- SEPARADORES ---- */
.styled-hr {
    border: 0;
    height: 4px;
    background: linear-gradient(to right, var(--girasol-primary), var(--girasol-accent));
    margin: 3rem 0;
    border-radius: 2px;
    opacity: 0.6;
}

.styled-hr-top {
    border: 0;
    height: 4px;
    background: linear-gradient(to right, var(--girasol-primary), var(--girasol-accent));
    margin: 2rem 0;
    border-radius: 2px;
    opacity: 0.6;
}

/* ---- TABLAS ---- */
.table thead th {
    background-color: #f4f4f8;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c7a8d;
    border-bottom: 2px solid #e8e8ee;
}

.table tbody tr:hover {
    background-color: #f8f7ff;
}

/* ---- BOTONES ---- */
.btn-girasol {
    background-color: var(--girasol-primary);
    color: #fff;
    border: none;
}

.btn-girasol:hover {
    background-color: var(--girasol-primary-light);
    color: #fff;
}

/* Botones/enlaces primarios de Tabler siguen la paleta del tema.
   (Tabler compila .btn-primary con un color literal, por eso hay que
   reasignar sus variables además de --tblr-primary del bloque de tema.) */
.btn-primary {
    --tblr-btn-bg: var(--girasol-primary);
    --tblr-btn-border-color: var(--girasol-primary);
    --tblr-btn-hover-bg: var(--girasol-primary-light);
    --tblr-btn-hover-border-color: var(--girasol-primary-light);
    --tblr-btn-active-bg: var(--girasol-primary-light);
    --tblr-btn-active-border-color: var(--girasol-primary-light);
    --tblr-btn-disabled-bg: var(--girasol-primary);
    --tblr-btn-disabled-border-color: var(--girasol-primary);
    background-color: var(--girasol-primary);
    border-color: var(--girasol-primary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    background-color: var(--girasol-primary-light);
    border-color: var(--girasol-primary-light);
}

.btn-outline-primary {
    --tblr-btn-color: var(--girasol-primary);
    --tblr-btn-border-color: var(--girasol-primary);
    --tblr-btn-hover-bg: var(--girasol-primary);
    --tblr-btn-hover-border-color: var(--girasol-primary);
    --tblr-btn-active-bg: var(--girasol-primary);
    --tblr-btn-active-border-color: var(--girasol-primary);
    color: var(--girasol-primary);
    border-color: var(--girasol-primary);
}

/* Enlaces de texto */
.text-primary { color: var(--girasol-primary) !important; }
.link-primary { color: var(--girasol-primary) !important; }

/* ---- EMPTY STATE ---- */
.empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: #9aa0ac;
}

.empty-state i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.4;
}

.empty-state p {
    margin: 0;
    font-size: 0.95rem;
}

/* ---- FICHA DE PACIENTE SIDEBAR ---- */
.patient-sidebar {
    background: #f8f7ff;
    border-right: 1px solid #e8e8ee;
    min-height: calc(100vh - 120px);
}

.patient-sidebar .nav-link {
    color: #555;
    padding: 0.6rem 1rem;
    border-radius: 6px;
    font-size: 0.9rem;
}

.patient-sidebar .nav-link:hover {
    background-color: #ede9ff;
    color: var(--girasol-primary);
}

.patient-sidebar .nav-link.active {
    background-color: var(--girasol-primary);
    color: #fff;
    font-weight: 600;
}

/* ---- CARDS ---- */
.card-girasol {
    border: 1px solid #e8e8ee;
    border-radius: var(--girasol-radius);
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.card-girasol .card-header {
    background: linear-gradient(135deg, var(--girasol-primary), var(--girasol-primary-light));
    color: #fff;
    border-radius: calc(var(--girasol-radius) - 1px) calc(var(--girasol-radius) - 1px) 0 0;
    font-weight: 600;
    padding: 0.75rem 1rem;
}

/* ---- MENSAJERÍA / LEÍDO / NO LEÍDO ---- */
.leido    { border-left: 3px solid #2fb344; }
.noLeido  { border-left: 3px solid var(--girasol-accent); font-weight: 600; }

/* ---- UTILIDADES ---- */
.cnt-right {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
    align-items: center;
}

.btn-container {
    display: flex;
    gap: 0.3rem;
}

.btn-container form { margin: 0; }

.table-btn-cnt {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

/* ---- CALENDARIO ---- */
a.fc-daygrid-event { color: black; }
.fc-daygrid-event { width: 100%; display: flex; flex-direction: column-reverse; overflow: hidden; }
.fc-daygrid-event-dot { display: none; }
.fc-event-title { max-width: 150px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }


/* ---- PRINT ---- */
@media print {
    .btn, form[method="get"], .pagination, .girasol-sidebar, .girasol-topbar { display: none !important; }
}

/* ---- NAV SECCIONES PACIENTE ---- */
.patient-section-nav .nav-link {
    color: #555;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    transition: background-color 0.15s, color 0.15s;
}

.patient-section-nav .nav-link:hover {
    background-color: #ede9ff;
    color: var(--girasol-primary);
}

.patient-section-nav .nav-link.active {
    background-color: var(--girasol-primary);
    color: #fff !important;
    font-weight: 600;
}

.patient-section-nav .nav-link.active i {
    color: var(--girasol-accent);
}

/* ---- TABS PACIENTE ---- */
.patient-tabs-wrapper {
    border-bottom: 2px solid #e8e8ee;
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
}

.patient-tabs-container {
    display: flex;
    align-items: stretch;
    flex: 1;
    min-width: 0;
}

.patient-tabs {
    display: flex;
    gap: 0;
    white-space: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    flex: 1;
    min-width: 0;
}

.patient-tabs::-webkit-scrollbar { display: none; }

.patient-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 1rem;
    font-size: 0.875rem;
    color: #6c7a8d;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
    flex-shrink: 0;
}

.patient-tab:hover {
    color: var(--girasol-primary);
    text-decoration: none;
}

.patient-tab.active {
    color: var(--girasol-primary);
    border-bottom-color: var(--girasol-primary);
    font-weight: 600;
}

.patient-tab-sub {
    font-size: 0.8rem;
    padding: 0.6rem 0.75rem;
    color: #9aa0ac;
    border-left: 1px solid #e8e8ee;
    background: #fafafa;
    flex-shrink: 0;
}

.patient-tab-sub.active {
    color: var(--girasol-accent);
    border-bottom-color: var(--girasol-accent);
}

.patient-tabs-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-width: 28px;
    background: white;
    border: none;
    border-bottom: 2px solid #e8e8ee;
    color: #6c7a8d;
    cursor: pointer;
    font-size: 0.8rem;
    transition: color 0.15s, background 0.15s;
    flex-shrink: 0;
}

.patient-tabs-arrow:hover {
    color: var(--girasol-primary);
    background: #f5f5f5;
}

.patient-tabs-arrow.hidden {
    opacity: 0;
    pointer-events: none;
}

/* ---- CHECKBOXES MÁS VISIBLES (analíticas, medicación diaria, etc.) ----
   Por defecto Bootstrap 5 los pinta con un borde gris muy claro que cuesta
   distinguir en tablas densas. Subimos contraste con el primario corporativo
   y los hacemos algo más grandes (solo los checkboxes/radios, no los switches). */
.form-check-input {
    border: 2px solid var(--girasol-primary);
}

.form-check-input:checked {
    background-color: var(--girasol-primary);
    border-color: var(--girasol-primary);
}

.form-check-input:focus {
    border-color: var(--girasol-primary);
    box-shadow: 0 0 0 0.2rem rgba(49, 46, 160, 0.25);
}

/* Tamaño mayor solo en checkboxes/radios reales — los switches conservan
   su anchura original para no perder la forma de toggle. */
.form-check:not(.form-switch) .form-check-input {
    width: 1.2em;
    height: 1.2em;
    cursor: pointer;
}