* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body { -webkit-font-smoothing: antialiased; }

/* ─── Modal ────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; background:rgba(15,23,42,0.5); backdrop-filter:blur(4px); z-index:50; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 0.2s; pointer-events:none; }
.modal-overlay.show { opacity:1; pointer-events:auto; }
.modal-content { transform:translateY(16px) scale(0.97); transition:transform 0.25s cubic-bezier(0.16,1,0.3,1); max-height:90vh; overflow-y:auto; }
.modal-overlay.show .modal-content { transform:translateY(0) scale(1); }

/* ─── FullCalendar ──────────────────────────────── */
.fc { --fc-border-color:#e2e8f0; --fc-today-bg-color:#eef2ff; --fc-page-bg-color:transparent; font-family:'Noto Sans KR',sans-serif; }
.fc .fc-toolbar-title { font-size:1rem; font-weight:600; color:#1e293b; }
.fc .fc-button { background:white; border:1px solid #e2e8f0; color:#475569; font-size:0.75rem; font-weight:500; padding:0.3rem 0.6rem; border-radius:0.5rem; box-shadow:none; text-transform:none; }
.fc .fc-button:hover { background:#f8fafc; border-color:#cbd5e1; }
.fc .fc-button-active, .fc .fc-button:active { background:#4f46e5!important; border-color:#4f46e5!important; color:white!important; box-shadow:none!important; }
.fc .fc-col-header-cell { padding:0.4rem 0; font-size:0.7rem; font-weight:500; color:#64748b; background:#f8fafc; }
.fc .fc-daygrid-day-number { font-size:0.75rem; font-weight:500; color:#64748b; padding:0.25rem 0.4rem; }
.fc .fc-day-today .fc-daygrid-day-number { color:#4f46e5; font-weight:700; }
.fc .fc-event { border-radius:0.3rem; padding:1px 4px; font-size:0.65rem; font-weight:500; border:none; cursor:pointer; line-height:1.35; }
.fc .fc-event:hover { filter:brightness(0.9); }
.fc .fc-daygrid-event-dot { display:none; }
.fc .fc-daygrid-more-link { font-size:0.65rem; color:#6366f1; font-weight:600; }

.event-custom-content { display:flex; align-items:center; gap:3px; width:100%; overflow:hidden; }
.event-title-text { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; min-width:0; }
.event-assignee-dots { display:flex; flex-shrink:0; gap:1px; }
.event-assignee-dot { width:5px; height:5px; border-radius:50%; border:1px solid rgba(255,255,255,0.5); }

/* ─── View Buttons ─────────────────────────────── */
.view-btn { color:#64748b; transition:all 0.15s; }
.view-btn:hover { color:#1e293b; background:#f8fafc; }
.view-btn.active { color:#4f46e5; background:#eef2ff; }

/* ─── Bottom Tab Bar ───────────────────────────── */
.tab-btn { color:#94a3b8; transition:color 0.15s; }
.tab-btn.active { color:#4f46e5; }

.tab-btn-desktop { color:#64748b; transition:all 0.15s; }
.tab-btn-desktop:hover { color:#1e293b; background:#f8fafc; }
.tab-btn-desktop.active { color:#4f46e5; background:#eef2ff; }

/* ─── Staff Schedule Cards ─────────────────────── */
.staff-card { background:white; border:1px solid #e2e8f0; border-radius:0.75rem; overflow:hidden; }
.staff-card-header { padding:0.75rem; display:flex; align-items:center; gap:0.5rem; border-bottom:1px solid #f1f5f9; }
.staff-task-row { display:flex; align-items:center; gap:0.5rem; padding:0.5rem 0.75rem; border-bottom:1px solid #f8fafc; font-size:0.8rem; }
.staff-task-row:last-child { border-bottom:none; }
.staff-task-row:active { background:#f8fafc; }

/* ─── Equipment Cards ──────────────────────────── */
.eq-group { background:white; border:1px solid #e2e8f0; border-radius:0.75rem; overflow:hidden; margin-bottom:0.5rem; }
.eq-group-header { padding:0.625rem 0.75rem; display:flex; align-items:center; justify-content:space-between; background:#fafbfc; border-bottom:1px solid #f1f5f9; cursor:pointer; }
.eq-booking-row { display:flex; align-items:center; gap:0.5rem; padding:0.5rem 0.75rem; border-bottom:1px solid #f8fafc; font-size:0.8rem; }
.eq-booking-row:last-child { border-bottom:none; }
.eq-no-booking { padding:0.75rem; text-align:center; color:#94a3b8; font-size:0.75rem; }

/* ─── Status Dots ──────────────────────────────── */
.status-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.status-dot-예정 { background:#f59e0b; }
.status-dot-진행중 { background:#3b82f6; }
.status-dot-완료 { background:#10b981; }

/* ─── Toast ────────────────────────────────────── */
.toast { position:fixed; bottom:4.5rem; right:1rem; padding:0.625rem 1rem; background:#1e293b; color:white; border-radius:0.625rem; font-size:0.8rem; font-weight:500; z-index:100; transform:translateY(1rem); opacity:0; transition:all 0.3s cubic-bezier(0.16,1,0.3,1); box-shadow:0 8px 20px rgba(0,0,0,0.2); }
.toast.show { transform:translateY(0); opacity:1; }

/* ─── Scrollbar ────────────────────────────────── */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:2px; }

/* ─── Desktop ──────────────────────────────────── */
@media (min-width: 640px) {
    .fc .fc-toolbar-title { font-size:1.15rem; }
    .fc .fc-button { font-size:0.8rem; padding:0.35rem 0.75rem; }
    .fc .fc-col-header-cell { font-size:0.8rem; }
    .fc .fc-daygrid-day-number { font-size:0.8rem; }
    .fc .fc-event { font-size:0.72rem; padding:2px 5px; }
    .event-assignee-dot { width:6px; height:6px; }
    .toast { bottom:1.5rem; right:1.5rem; font-size:0.85rem; }
    .staff-task-row { font-size:0.85rem; padding:0.625rem 1rem; }
}
