body { min-height: 100vh; background: var(--bs-tertiary-bg); }
.navbar { backdrop-filter: blur(10px); }
.navbar .nav-link { white-space: nowrap; }
.card { border-color: var(--bs-border-color-translucent); }
.summary-value { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 700; }
.calendar-picker-menu { width: min(24rem, calc(100vw - 1.5rem)); }
.calendar-picker-options { max-height: 18rem; overflow-y: auto; }
.calendar-picker-options .form-check + .form-check { margin-top: .4rem; }
.d-md-grid { display: none; }
.calendar-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-heading { padding: .5rem; font-size: .8rem; font-weight: 600; text-align: center; border-bottom: 1px solid var(--bs-border-color); }
.calendar-day { min-width: 0; min-height: 9rem; padding: .5rem; border-right: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); overflow-wrap: anywhere; }
.calendar-day-single { position: relative; }
.calendar-day-single.calendar-day-plannable { padding-bottom: 3rem; }
.calendar-day-single .calendar-plan-action { position: absolute; right: .5rem; bottom: .5rem; margin: 0; }
.calendar-outside { opacity: .3; }
.calendar-nonworking { background: var(--bs-tertiary-bg); }
.calendar-today { box-shadow: inset 0 0 0 2px var(--bs-primary); }
.calendar-legend { display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .5rem; border: 1px solid color-mix(in srgb, var(--calendar-color) 45%, var(--bs-border-color)); border-radius: .25rem; background: color-mix(in srgb, var(--calendar-color) 10%, transparent); font-size: .85rem; }
.calendar-color-dot { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--calendar-color); flex: 0 0 .55rem; }
.calendar-consultant-block { min-width: 0; margin-top: .35rem; padding: .25rem .3rem; border-left: 3px solid var(--calendar-color); background: color-mix(in srgb, var(--calendar-color) 8%, transparent); }
.calendar-person-heading { display: flex; align-items: center; justify-content: space-between; gap: .25rem; min-width: 0; color: var(--bs-secondary-color); font-size: .7rem; font-weight: 600; }
.calendar-person-heading > span { display: flex; align-items: center; gap: .3rem; min-width: 0; overflow-wrap: anywhere; }
.calendar-inline-action { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; padding: 0; border: 0; border-radius: .2rem; background: transparent; color: var(--bs-secondary-color); font-size: 1rem; line-height: 1; }
.calendar-inline-action:hover, .calendar-inline-action:focus-visible { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
.calendar-visit { display: block; margin-top: .25rem; padding: .2rem .35rem; border-left: 3px solid var(--calendar-color, var(--bs-primary)); background: color-mix(in srgb, var(--calendar-color, var(--bs-primary)) 15%, transparent); color: var(--bs-body-color); font-size: .78rem; text-decoration: none; }
.calendar-visit-progress { display: block; margin-top: .1rem; color: var(--bs-secondary-color); font-size: .7rem; }
.calendar-available { display: block; margin-top: .2rem; color: var(--bs-secondary-color); font-size: .72rem; }
.calendar-plan-action { display: flex; justify-content: flex-end; margin-top: .35rem; }
.calendar-absence { display: flex; align-items: center; justify-content: space-between; gap: .35rem; margin-top: .25rem; padding: .2rem .25rem .2rem .35rem; border-left: 3px solid var(--bs-danger); background: var(--bs-danger-bg-subtle); color: var(--bs-danger-text-emphasis); font-size: .78rem; }
.calendar-absence-label { min-width: 0; overflow-wrap: anywhere; }
.calendar-absence form { flex: 0 0 auto; }
.calendar-remove { display: inline-flex; align-items: center; justify-content: center; width: 1.4rem; height: 1.4rem; padding: 0; border: 1px solid var(--bs-danger-border-subtle); border-radius: .25rem; background: transparent; color: var(--bs-danger-text-emphasis); font-size: 1rem; line-height: 1; }
.calendar-remove:hover, .calendar-remove:focus-visible { border-color: var(--bs-danger); background: var(--bs-danger); color: #fff; }
.calendar-mobile-date { width: 2.5rem; text-align: center; flex: 0 0 2.5rem; }
.law-results-table { min-width: 48rem; }
@media (min-width: 768px) { .d-md-grid { display: grid !important; } }
@media (max-width: 991.98px) {
  .navbar-collapse { padding: .75rem 0 .5rem; }
  .navbar .nav-link { padding: .55rem .25rem; }
  .navbar-actions { margin-top: .5rem; padding-top: .75rem; border-top: 1px solid var(--bs-border-color); }
}
@media (max-width: 575.98px) { main.container { padding-left: .75rem; padding-right: .75rem; } }
