.nav-link { display:block; border-radius:.375rem; padding:.625rem .75rem; color:#cbd5e1; }
.nav-link:hover { background:#1e293b; color:white; }
.mobile-link { border-radius:.375rem; background:#f1f5f9; padding:.5rem; color:#334155; }
.card,.panel { border:1px solid #e2e8f0; border-radius:.5rem; background:white; padding:1rem; box-shadow:0 1px 2px rgb(15 23 42 / .05); }
.panel-title { margin-bottom:.75rem; font-weight:600; }
.row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; font-size:.875rem; }
.empty { padding:.75rem 0; color:#64748b; font-size:.875rem; }
.badge { display:inline-flex; align-items:center; border-radius:999px; padding:.125rem .5rem; font-size:.75rem; font-weight:600; white-space:nowrap; }
.badge-green { background:#dcfce7; color:#166534; }
.badge-red { background:#fee2e2; color:#991b1b; }
.badge-yellow { background:#fef3c7; color:#92400e; }
.badge-blue { background:#dbeafe; color:#1d4ed8; }
.action-btn { border-radius:.375rem; background:#0369a1; padding:.625rem .875rem; text-align:center; font-size:.875rem; font-weight:600; color:white; }
.secondary-btn { border-radius:.375rem; border:1px solid #cbd5e1; background:white; padding:.625rem .875rem; text-align:center; font-size:.875rem; font-weight:600; color:#334155; }
.danger-btn { border-radius:.375rem; background:#dc2626; padding:.625rem .875rem; text-align:center; font-size:.875rem; font-weight:600; color:white; }
.form-label { display:block; margin-bottom:.25rem; font-size:.75rem; font-weight:700; color:#475569; text-transform:uppercase; letter-spacing:.025em; }
.form-input { width:100%; border-radius:.375rem; border:1px solid #cbd5e1; padding:.625rem .75rem; font-size:.875rem; color:#0f172a; }
.form-input:focus { border-color:#0284c7; outline:2px solid rgb(14 165 233 / .2); }
.form-error { margin-top:.25rem; font-size:.75rem; color:#b91c1c; }
.admin-tabs { display:flex; flex-wrap:wrap; gap:.5rem; }
.admin-tab { border-radius:.375rem; background:#e0f2fe; padding:.5rem .75rem; font-size:.875rem; font-weight:600; color:#075985; }
.schedule-calendar-panel { padding:.75rem; }
.schedule-calendar-shell .fc .fc-header-toolbar { margin-bottom:.5rem; }
.schedule-calendar-shell .fc .fc-col-header-cell-cushion { padding:.25rem; font-size:.9rem; }
.schedule-calendar-shell .fc .fc-daygrid-day-frame { min-height:6.25rem; }
.schedule-calendar-shell .fc .fc-daygrid-day-top { padding:.125rem .25rem 0; }
.schedule-calendar-shell .fc .fc-daygrid-day-number { padding:.125rem; font-size:.95rem; }
.schedule-calendar-shell .fc .fc-timegrid-slot { height:2.2rem; }
.fc .fc-header-toolbar { display:grid; grid-template-columns:max-content minmax(10rem,1fr) max-content; align-items:center; gap:.75rem; }
.fc .fc-header-toolbar .fc-toolbar-chunk:nth-child(1) { justify-self:start; }
.fc .fc-header-toolbar .fc-toolbar-chunk:nth-child(2) { justify-self:center; min-width:0; }
.fc .fc-header-toolbar .fc-toolbar-chunk:nth-child(3) { justify-self:end; }
.fc .fc-toolbar-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:clamp(1.1rem, 1.8vw, 1.45rem); font-weight:650; letter-spacing:0; }
.fc .fc-button { min-height:2.25rem; border-radius:.5rem; padding:.4rem .625rem; font-size:.82rem; font-weight:650; line-height:1; text-transform:none; box-shadow:none; }
.fc .fc-button .fc-icon { font-size:1rem; line-height:1; }
.fc .fc-button-primary { border-color:#0369a1; background:#0369a1; }
.fc .fc-button-group { gap:.0625rem; }
.fc .fc-button-group > .fc-button { border-radius:.45rem; }
@media (max-width: 1180px) {
  .fc .fc-header-toolbar { grid-template-columns:1fr; }
  .fc .fc-header-toolbar .fc-toolbar-chunk { justify-self:center !important; }
}
@media (max-width: 760px) {
  .fc .fc-header-toolbar { grid-template-columns:1fr; }
  .fc .fc-header-toolbar .fc-toolbar-chunk { justify-self:center !important; }
}
.fc .fc-event { cursor:pointer; }
.fc .fc-daygrid-day-frame { min-height:9rem; }
.fc .fc-daygrid-event { white-space:normal; }
.fc .fc-daygrid-event-harness { margin-bottom:.375rem; }
.fc .fc-daygrid-day.fc-day-today { background:#fff7ed; }
.fc .fc-list-event-dot { display:none; }
.schedule-calendar-event { border:1px solid var(--schedule-event-border, #0369a1) !important; border-left:4px solid var(--schedule-event-border, #0369a1) !important; border-radius:.375rem !important; background:var(--schedule-event-bg, #f0f9ff) !important; color:#0f172a !important; padding:.25rem .375rem !important; box-shadow:0 1px 1px rgb(15 23 42 / .05); }
.fc-daygrid .schedule-calendar-event { border:0 !important; border-left:0 !important; background:transparent !important; box-shadow:none; padding:0 .25rem !important; }
.schedule-calendar-event-cancelled { border-color:#fde68a !important; border-left-color:#d97706 !important; background:#fffbeb !important; }
.schedule-event { overflow:hidden; line-height:1.2; }
.schedule-event-bar { display:block; height:.45rem; border-radius:999px; background:var(--schedule-event-border, #0369a1); }
.schedule-month-event { display:flex; align-items:center; gap:.35rem; min-height:1.35rem; border-radius:999px; background:var(--schedule-event-border, #0369a1); padding:.125rem .45rem; color:white; line-height:1.1; overflow:hidden; }
.schedule-month-event-pilot { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.72rem; font-weight:800; }
.schedule-month-event-detail { flex:0 0 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:58%; font-size:.64rem; font-weight:700; opacity:.9; }
.schedule-list-event { display:flex; align-items:center; gap:.5rem; min-width:0; }
.schedule-list-dot { width:.7rem; height:.7rem; border-radius:999px; background:var(--schedule-event-border, #0369a1); flex:0 0 auto; }
.schedule-list-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; color:#0f172a; }
.schedule-event-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; font-weight:800; color:#0f172a; }
.schedule-event-line { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; color:#475569; }
.schedule-event-time { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; font-weight:700; color:var(--schedule-event-accent, #075985); }
.selected-reservation-card { display:grid; grid-template-columns:.35rem minmax(0,1fr) auto; align-items:center; gap:.75rem; width:100%; border:1px solid #e2e8f0; border-radius:.5rem; background:white; padding:.75rem; text-align:left; box-shadow:0 1px 2px rgb(15 23 42 / .05); }
.selected-reservation-card:hover { border-color:#94a3b8; }
.selected-reservation-bar { align-self:stretch; border-radius:999px; background:var(--schedule-event-border, #0369a1); }
