/* HIPTEX theme. Colors are read from institution settings. */
.color-text-primary, .color-sb-text { color: var(--app-primary, #29206D); }
.color-text-secondary { color: #fff; }
.color-text-tertiary { color: var(--app-tertiary, #252337); }
.color-bg-primary, .color-btn-primary { background: var(--app-primary, #29206D); color: #fff; }
.color-bg-primary-light { background: var(--app-primary-light, #F4F2FA); }
.color-bg-secondary { background: #fff; }
.color-sb-bg { background: var(--app-sidebar-bg, #fff); }
.sidebar-content a { color: var(--app-sidebar-text, #191343); }
.sidebar-content a.active { background: var(--app-primary, #29206D); color: #fff; box-shadow: inset 4px 0 var(--app-accent, #C6A23D); }
header.fixed-top.color-bg-primary { background: var(--app-nav-bg, #191343); border-bottom: 3px solid var(--app-accent, #C6A23D); }
.nav-logo { object-fit: contain; border-radius: 8px; background: #fff; padding: 3px; }
.btn-primary, .color-btn-primary {
    --bs-btn-bg: var(--app-primary); --bs-btn-border-color: var(--app-primary);
    --bs-btn-hover-bg: var(--app-primary-dark); --bs-btn-hover-border-color: var(--app-primary-dark);
    --bs-btn-active-bg: var(--app-primary-dark); --bs-btn-active-border-color: var(--app-primary-dark);
    --bs-btn-disabled-bg: var(--app-primary); --bs-btn-disabled-border-color: var(--app-primary);
    --bs-btn-focus-shadow-rgb: var(--app-primary-rgb);
}
.btn-outline-primary {
    --bs-btn-color: var(--app-primary); --bs-btn-border-color: var(--app-primary);
    --bs-btn-hover-bg: var(--app-primary); --bs-btn-hover-border-color: var(--app-primary);
    --bs-btn-active-bg: var(--app-primary); --bs-btn-active-border-color: var(--app-primary);
    --bs-btn-disabled-color: var(--app-primary); --bs-btn-disabled-border-color: var(--app-primary);
}
.color-btn-primary:hover { background: var(--app-primary-dark); color: #fff; }
.form-control:focus, .form-select:focus { border-color: var(--app-primary); box-shadow: 0 0 0 .2rem rgba(var(--app-primary-rgb), .18); }
.form-check-input:checked { background-color: var(--app-primary); border-color: var(--app-primary); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--app-primary); }
.pagination { --bs-pagination-active-bg: var(--app-primary); --bs-pagination-active-border-color: var(--app-primary); --bs-pagination-color: var(--app-primary); }
.progress { --bs-progress-bar-bg: var(--app-primary); }
.custom-gradient { background: linear-gradient(135deg, var(--app-primary) 0%, var(--app-primary-dark) 100%); border-top:3px solid var(--app-accent); color: white; border-radius: 12px; }
.day-card.active { background: var(--app-primary); color: #fff; }
.day-card.active .badge { background: white !important; color: var(--app-primary) !important; }
.fc-button { background: var(--app-primary) !important; border-color: var(--app-primary-dark) !important; }
.fc-day-today { background: var(--app-primary-light) !important; }
.scroll-top { background: var(--app-primary); color: white; }
.scroll-top:hover { background: var(--app-primary-dark); color: white; }
.spinner { border-top-color: var(--app-primary, #29206D) !important; }
.digital-clock { font-family: 'Courier New', monospace; letter-spacing: 2px; }
.btn-alarm { position: relative; border-radius: 8px; z-index: 1; }
.btn-alarm::after { content: ''; position: absolute; inset: -6px; border-radius: inherit; border: 2px solid var(--app-accent); animation: alarmPulse 1.8s ease-out infinite; pointer-events: none; }
@keyframes alarmPulse { 0% { transform: scale(.9); opacity: .9; } 70%, 100% { transform: scale(1.25); opacity: 0; } }
.session-highlight { animation: flashHighlight 1.5s ease-in-out 3; border-radius: 10px; }
@keyframes flashHighlight { 0% { background: var(--app-primary-light); } 50% { background: var(--app-primary); } 100% { background: transparent; } }
