/* DeptCalendar - Mobile First Styles + theme tokens */

:root {
    --app-primary: #0d6efd;
    --app-primary-text: #ffffff;
    --app-bg: #f8f9fa;
    --app-surface: #ffffff;
    --app-text: #212529;
    --app-muted: #6c757d;
    --app-success: #198754;
    --app-danger: #dc3545;
    --app-content-max: 1140px;
}

html, body { height: 100%; }

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    background-color: var(--app-bg) !important;
    color: var(--app-text);
}

body.density-compact { font-size: 15px; }
body.density-compact .btn { min-height: 36px; padding: 0.35rem 0.75rem; }
body.density-compact .card-body { padding: 0.75rem; }
body.density-compact main { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; }

main { flex: 1; }
main.container-fluid.app-content {
    max-width: var(--app-content-max);
    margin-left: auto;
    margin-right: auto;
}

.bg-primary, .navbar.bg-primary, .btn-primary {
    background-color: var(--app-primary) !important;
    border-color: var(--app-primary) !important;
    color: var(--app-primary-text) !important;
}
.btn-primary:hover, .btn-primary:focus { filter: brightness(0.92); }
.text-primary { color: var(--app-primary) !important; }
.btn-outline-primary {
    color: var(--app-primary) !important;
    border-color: var(--app-primary) !important;
}
.btn-outline-primary:hover {
    background-color: var(--app-primary) !important;
    color: var(--app-primary-text) !important;
}
.btn-success, .bg-success {
    background-color: var(--app-success) !important;
    border-color: var(--app-success) !important;
}
.btn-danger, .bg-danger {
    background-color: var(--app-danger) !important;
    border-color: var(--app-danger) !important;
}
.text-muted { color: var(--app-muted) !important; }

.card {
    border-radius: 0.75rem;
    border: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    background-color: var(--app-surface);
}
.card-header {
    border-radius: 0.75rem 0.75rem 0 0 !important;
    font-weight: 600;
    background-color: var(--app-surface);
}

.btn { min-height: 44px; padding: 0.6rem 1.2rem; }
.btn-sm { min-height: 38px; }
.form-control, .form-select { min-height: 44px; font-size: 16px; }

.navbar-brand { font-weight: 600; }
.navbar.navbar-center-brand .navbar-brand {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
@media (max-width: 991.98px) {
    .navbar.navbar-center-brand .navbar-brand {
        position: static;
        transform: none;
    }
}

.navbar-toolbar {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    margin-left: auto;
}
.navbar-toolbar .nav-link {
    color: rgba(255,255,255,.92);
    padding: 0.45rem 0.6rem;
}
.navbar-toolbar .dropdown-menu { color: #212529; }

.event-card { transition: transform 0.15s ease, box-shadow 0.15s ease; }
.event-card:active { transform: scale(0.98); }

#calendar {
    background: var(--app-surface);
    border-radius: 0.75rem;
    padding: 0.5rem;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.fc .fc-toolbar { flex-direction: column; gap: 0.5rem; }
.fc .fc-toolbar-title { font-size: 1.15rem; }
.fc .fc-button { min-height: 38px; }
.fc-event { cursor: pointer; }

.comment-item {
    border-bottom: 1px solid rgba(0,0,0,0.06);
    padding-bottom: 0.5rem;
}
.comment-item:last-child { border-bottom: none; }

.settings-summary { color: var(--app-muted); font-size: 0.9rem; }
.maps-link { text-decoration: none; }
.maps-link:hover { text-decoration: underline; }
.notif-item.unread { background: rgba(13, 110, 253, 0.06); }

/* Comment image thumbs + lightbox */
.comment-thumb {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 0.4rem;
    border: 1px solid rgba(0,0,0,0.08);
}
.comment-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0,0,0,0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.comment-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 0.25rem;
}
.comment-lightbox-close {
    position: absolute;
    top: 12px;
    right: 16px;
    z-index: 2001;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}
.comment-lightbox-close:hover {
    background: rgba(255,255,255,0.3);
}
.comment-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2001;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}
.comment-lightbox-prev { left: 12px; }
.comment-lightbox-next { right: 12px; }
.comment-lightbox-nav:hover { background: rgba(255,255,255,0.3); }
.comment-lightbox-counter {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: 0.9rem;
    opacity: 0.85;
}

/* ===== 00.06.00 App theme + calendar theme ===== */
body {
  background-color: var(--app-bg, #f8f9fa);
  color: var(--app-text, #212529);
}
.navbar {
  background-color: var(--app-navbar-bg, var(--app-primary, #0d6efd)) !important;
}
.navbar .navbar-brand,
.navbar .nav-link,
.navbar .navbar-toggler-icon {
  color: var(--app-navbar-text, #fff) !important;
}
.navbar .nav-link:hover { opacity: 0.9; }
.navbar-toolbar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  order: 2;
}
.navbar-toolbar .navbar-toggler { order: 1; }
.navbar-toolbar .dropdown { order: 2; }

/* Header layouts */
.header-layout-transparent.navbar {
  background-color: rgba(13, 110, 253, 0.85) !important;
  backdrop-filter: blur(8px);
}
body.header-layout-transparent .navbar {
  background-color: color-mix(in srgb, var(--app-navbar-bg) 80%, transparent) !important;
  backdrop-filter: blur(8px);
}
.header-layout-split .navbar-brand { font-weight: 600; letter-spacing: 0.02em; }
.header-layout-split.navbar { box-shadow: none !important; border-bottom: 1px solid rgba(255,255,255,0.15); }

/* Buttons */
.btn-primary {
  background-color: var(--app-btn-primary, var(--app-primary)) !important;
  border-color: var(--app-btn-primary, var(--app-primary)) !important;
  color: var(--app-btn-primary-text, #fff) !important;
}
.btn-secondary {
  background-color: var(--app-btn-secondary, #6c757d) !important;
  border-color: var(--app-btn-secondary, #6c757d) !important;
  color: var(--app-btn-secondary-text, #fff) !important;
}
.btn-outline-primary {
  color: var(--app-btn-outline, var(--app-primary)) !important;
  border-color: var(--app-btn-outline, var(--app-primary)) !important;
}
.btn-outline-primary:hover {
  background-color: var(--app-btn-outline, var(--app-primary)) !important;
  color: #fff !important;
}
.btn-danger {
  background-color: var(--app-btn-danger, var(--app-danger)) !important;
  border-color: var(--app-btn-danger, var(--app-danger)) !important;
  color: var(--app-btn-danger-text, #fff) !important;
}

/* Card layouts */
body.card-layout-flat .card {
  box-shadow: none !important;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 0.35rem;
}
body.card-layout-elevated .card {
  box-shadow: 0 0.35rem 1rem rgba(0,0,0,0.08) !important;
  border: none;
  border-radius: 0.5rem;
}
body.card-layout-bordered .card {
  box-shadow: none !important;
  border: 2px solid rgba(0,0,0,0.12);
  border-radius: 0.4rem;
}
body.card-layout-soft .card {
  box-shadow: 0 0.25rem 0.75rem rgba(0,0,0,0.06) !important;
  border: none;
  border-radius: 1rem;
}

/* Calendar theme (FullCalendar) */
#calendar {
  background: var(--cal-bg, #fff);
  border-radius: 0.5rem;
  padding: 0.5rem;
}
#calendar .fc-col-header-cell {
  background: var(--cal-header, #f8f9fa);
  color: var(--cal-header-text, #212529);
}
#calendar .fc-col-header-cell-cushion {
  color: var(--cal-weekday, #6c757d);
}
#calendar .fc-daygrid-day-number {
  color: var(--cal-day-number, #212529);
}
#calendar .fc-button-primary {
  background-color: var(--cal-nav, #0d6efd) !important;
  border-color: var(--cal-nav, #0d6efd) !important;
  color: var(--cal-nav-text, #fff) !important;
}
#calendar .fc-event {
  background-color: var(--cal-event-bg, #0d6efd) !important;
  border-color: var(--cal-event-bg, #0d6efd) !important;
  color: var(--cal-event-text, #fff) !important;
}

/* Calendar layouts */
.cal-layout-compact .fc-daygrid-day-frame { min-height: 4rem; }
.cal-layout-compact .fc-event { font-size: 0.7rem; padding: 0 2px; }
.cal-layout-cards .fc-event {
  border-radius: 0.5rem !important;
  margin: 2px 4px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.12);
}
.cal-layout-cards .fc-daygrid-day-frame { padding: 4px; }
.cal-layout-minimal .fc-theme-standard td,
.cal-layout-minimal .fc-theme-standard th {
  border-color: rgba(0,0,0,0.06) !important;
}
.cal-layout-minimal .fc-col-header-cell { background: transparent; font-weight: 500; }
.cal-layout-modern .fc-toolbar-title { font-weight: 700; letter-spacing: -0.02em; }
.cal-layout-modern .fc-button-primary { border-radius: 2rem !important; padding: 0.35rem 0.9rem; }
.cal-layout-modern .fc-event { border-radius: 1rem !important; padding: 2px 6px; }
