/* Supplemental utilities not present in VPN Manager's precompiled Tailwind subset. */
.space-y-2 > * + * { margin-top: 0.5rem; }
.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.space-y-5 > * + * { margin-top: 1.25rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-5 { margin-top: 1.25rem; }
.gap-1\.5 { gap: 0.375rem; }
.gap-2\.5 { gap: 0.625rem; }
.shrink-0 { flex-shrink: 0; }
.w-56 { width: 14rem; }
.top-full { top: 100%; }
.my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.pt-4 { padding-top: 1rem; }
.h-3 { height: 0.75rem; }
.w-3 { width: 0.75rem; }
.bg-black { background-color: #000; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.max-w-xs { max-width: 20rem; }
.w-32 { width: 8rem; }
.space-y-8 > * + * { margin-top: 2rem; }
.whitespace-pre-line { white-space: pre-line; }
.divide-y > * + * { border-top-width: 1px; border-top-style: solid; }
.divide-slate-800 > * + * { border-color: #1e293b; }
.animate-pulse { animation: meetpulse 2s cubic-bezier(.4, 0, .6, 1) infinite; }
@keyframes meetpulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }

.w-28 { width: 7rem; }

/* FullCalendar — soft dark theme matching the portal; id-scoped to beat the lib's runtime CSS */
#cal .fc {
  --fc-border-color: rgba(148, 163, 184, .10);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(148, 163, 184, .04);
  --fc-today-bg-color: rgba(99, 102, 241, .07);
  --fc-now-indicator-color: #fb7185;
  --fc-event-border-color: transparent;
  font-size: .82rem;
  color: #cbd5e1;
}
#cal .fc a { color: inherit; text-decoration: none; }
#cal .fc-theme-standard td, #cal .fc-theme-standard th,
#cal .fc-theme-standard .fc-scrollgrid { border-color: rgba(148, 163, 184, .10); }
#cal .fc .fc-toolbar.fc-header-toolbar { margin-bottom: 1rem; }
#cal .fc .fc-toolbar-title { font-size: 1.05rem; font-weight: 600; color: #e2e8f0; }
#cal .fc .fc-col-header-cell-cushion { color: #64748b; font-weight: 500; padding: 6px 4px; }
#cal .fc .fc-daygrid-day-number,
#cal .fc .fc-timegrid-axis-cushion,
#cal .fc .fc-timegrid-slot-label-cushion,
#cal .fc .fc-list-day-text,
#cal .fc .fc-multimonth-title { color: #94a3b8; }
#cal .fc .fc-day-today .fc-daygrid-day-number { color: #a5b4fc; font-weight: 600; }
/* toolbar buttons — quiet, pill-ish */
#cal .fc .fc-button-primary {
  background: rgba(148, 163, 184, .08); border: 1px solid rgba(148, 163, 184, .14);
  color: #cbd5e1; text-transform: none; font-weight: 500; font-size: .78rem;
  padding: .34em .7em; box-shadow: none;
}
#cal .fc .fc-button-primary:not(:disabled):hover { background: rgba(148, 163, 184, .16); color: #f1f5f9; }
#cal .fc .fc-button-primary:not(:disabled).fc-button-active { background: rgba(99, 102, 241, .85); border-color: transparent; color: #fff; }
#cal .fc .fc-button-primary:disabled { opacity: .4; }
#cal .fc .fc-button:focus, #cal .fc .fc-button-primary:focus { outline: none; box-shadow: 0 0 0 2px rgba(99, 102, 241, .3); }
/* events — soft chips (colors come inline from the API) */
#cal .fc .fc-event { border: none; border-radius: 6px; padding: 1px 5px; font-size: .76rem; font-weight: 500; cursor: pointer; }
#cal .fc .fc-event .fc-event-time { opacity: .7; font-weight: 400; }
#cal .fc .fc-multimonth, #cal .fc .fc-multimonth-daygrid { background: transparent; }
#cal .fc .fc-popover { background: #0f172a; border-color: rgba(148, 163, 184, .14); }
/* roomier day cells in month view only (not week/day/year) */
#cal .fc-dayGridMonth-view .fc-daygrid-day-frame { min-height: 5.5rem; }

/* custom calendar hover tooltip (appended to <body>, so not #cal-scoped) */
.fc-tip {
  position: fixed; z-index: 60; display: none; max-width: 20rem; pointer-events: none;
  background: #0f172a; border: 1px solid rgba(148, 163, 184, .2); border-radius: .6rem;
  padding: .5rem .7rem; box-shadow: 0 10px 30px rgba(0, 0, 0, .5); font-size: .8rem; line-height: 1.35;
}
.fc-tip-title { font-weight: 600; color: #e2e8f0; }
.fc-tip-meta { margin-top: 2px; color: #94a3b8; font-size: .75rem; }
.fc-tip-agenda { margin-top: 6px; color: #cbd5e1; white-space: pre-line; }

/* flatpickr — match the portal palette (slate bg + indigo accent), over flatpickr-dark.css */
.flatpickr-calendar { background: #0f172a; border: 1px solid rgba(148, 163, 184, .18); box-shadow: 0 12px 30px rgba(0, 0, 0, .55); }
.flatpickr-months, .flatpickr-weekdays, span.flatpickr-weekday { background: transparent; }
.flatpickr-current-month, .flatpickr-monthDropdown-months, .flatpickr-current-month .numInputWrapper span { color: #e2e8f0; }
span.flatpickr-weekday { color: #64748b; }
.flatpickr-day { color: #cbd5e1; }
.flatpickr-day:hover, .flatpickr-day:focus { background: rgba(148, 163, 184, .14); border-color: transparent; }
.flatpickr-day.today { border-color: rgba(99, 102, 241, .6); }
.flatpickr-day.today:hover { background: rgba(99, 102, 241, .25); }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: #475569; }
.flatpickr-monthDropdown-months, .flatpickr-monthDropdown-month { background: #0f172a; color: #e2e8f0; }
.flatpickr-time input, .flatpickr-time .flatpickr-am-pm, .flatpickr-time .flatpickr-time-separator { color: #e2e8f0; }
.flatpickr-time input:hover, .flatpickr-time input:focus, .flatpickr-time .numInputWrapper:hover, .flatpickr-time .flatpickr-am-pm:hover { background: rgba(148, 163, 184, .1); }
.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop:after { border-bottom-color: #0f172a; }
.flatpickr-calendar.arrowBottom:before, .flatpickr-calendar.arrowBottom:after { border-top-color: #0f172a; }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: #a5b4fc; }

/* participant autocomplete dropdown */
.pp-suggest { position: absolute; left: 0; right: 0; z-index: 20; margin-top: 2px; max-height: 14rem; overflow-y: auto;
  background: #0f172a; border: 1px solid rgba(148, 163, 184, .18); border-radius: .6rem; box-shadow: 0 12px 30px rgba(0, 0, 0, .5); }
.pp-item { display: flex; align-items: baseline; gap: .5rem; width: 100%; text-align: left; padding: .45rem .7rem;
  background: none; border: 0; color: #e2e8f0; font-size: .82rem; cursor: pointer; }
.pp-item:hover { background: rgba(148, 163, 184, .12); }
.pp-name { font-weight: 500; }
.pp-login { color: #94a3b8; font-size: .75rem; }

/* dashboard tabs */
.dash-tab { margin-right: 1.5rem; margin-bottom: -1px; padding: .5rem .15rem; background: none;
  color: #94a3b8; font-weight: 500; font-size: .9rem; border: 0; border-bottom: 2px solid transparent; cursor: pointer; }
.dash-tab:hover { color: #e2e8f0; }
.dash-tab.tab-active { color: #e2e8f0; border-bottom-color: #6366f1; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
/* input focus ring (Tailwind focus:* utilities are absent from the precompiled css) */
input:focus, textarea:focus { border-color: #6366f1; box-shadow: 0 0 0 2px rgba(99,102,241,.30); outline: none; }
