/* ── EMS Scheduler Front-End Styles ─────────────────────────────── */
:root {
    --ems-blue:    #1a6fc4;
    --ems-green:   #2e7d32;
    --ems-red:     #c62828;
    --ems-orange:  #e65100;
    --ems-gray:    #f5f5f5;
    --ems-border:  #ddd;
    --ems-radius:  6px;
}

.ems-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width: 960px; margin: 0 auto; }
.ems-notice { background: var(--ems-gray); border-left: 4px solid var(--ems-blue); padding: 12px 16px; border-radius: var(--ems-radius); }

/* Calendar Nav */
.ems-calendar-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.ems-calendar-nav h2 { margin:0; font-size:1.4rem; }
.ems-calendar-nav a { text-decoration:none; background:var(--ems-blue); color:#fff; padding:6px 14px; border-radius:var(--ems-radius); font-size:0.9rem; }
.ems-calendar-nav a:hover { background:#1558a0; }

/* Shift Cards */
.ems-shift-list { display:grid; gap:12px; }
.ems-shift-card { background:#fff; border:1px solid var(--ems-border); border-radius:var(--ems-radius); padding:14px 18px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; box-shadow:0 1px 3px rgba(0,0,0,.06); }
.ems-shift-card.status-open   { border-left:4px solid var(--ems-orange); }
.ems-shift-card.status-filled { border-left:4px solid var(--ems-green); }
.ems-shift-meta { display:flex; flex-direction:column; min-width:160px; }
.ems-shift-date { font-weight:600; color:#333; }
.ems-shift-time { font-size:0.85rem; color:#666; }
.ems-shift-type { font-size:0.75rem; background:var(--ems-gray); padding:2px 6px; border-radius:10px; margin-top:4px; display:inline-block; }
.ems-shift-info { flex:1; display:flex; flex-direction:column; gap:4px; }
.ems-shift-info strong { font-size:1rem; }
.ems-assigned { font-size:0.85rem; color:#555; }
.ems-notes { font-size:0.8rem; color:#888; font-style:italic; }
.ems-shift-actions { display:flex; gap:8px; flex-wrap:wrap; }

/* Buttons */
.ems-btn { padding:7px 14px; border:none; border-radius:var(--ems-radius); cursor:pointer; font-size:0.85rem; font-weight:500; transition:opacity .15s; }
.ems-btn:hover { opacity:.85; }
.ems-btn-pickup  { background:var(--ems-blue); color:#fff; }
.ems-btn-drop    { background:var(--ems-orange); color:#fff; }
.ems-btn-swap    { background:#7b1fa2; color:#fff; }
.ems-btn-primary { background:var(--ems-blue); color:#fff; }
.ems-btn-cancel  { background:#9e9e9e; color:#fff; }
.ems-btn-confirm { background:var(--ems-green); color:#fff; }
.ems-btn-deny    { background:var(--ems-red); color:#fff; }
.ems-btn-delete-avail { background:transparent; border:1px solid var(--ems-red); color:var(--ems-red); }

/* Tables */
.ems-table { width:100%; border-collapse:collapse; margin-top:12px; }
.ems-table th, .ems-table td { padding:10px 12px; text-align:left; border-bottom:1px solid var(--ems-border); font-size:0.9rem; }
.ems-table th { background:var(--ems-gray); font-weight:600; }
.ems-table tr:hover td { background:#fafafa; }

/* Status colors */
.status-open         { color: var(--ems-orange); font-weight:600; }
.status-filled       { color: var(--ems-green);  font-weight:600; }
.status-approved     { color: var(--ems-green);  font-weight:600; }
.status-denied       { color: var(--ems-red);    font-weight:600; }
.status-pending_admin  { color: var(--ems-blue);   font-weight:600; }
.status-pending_target { color: #9c27b0;           font-weight:600; }

/* Availability Form */
.ems-avail-form { background:#fff; border:1px solid var(--ems-border); border-radius:var(--ems-radius); padding:20px; max-width:480px; margin-bottom:24px; }
.ems-form-row { display:flex; flex-direction:column; gap:4px; margin-bottom:14px; }
.ems-form-row label { font-weight:600; font-size:0.9rem; color:#333; }
.ems-form-row input, .ems-form-row textarea { padding:8px 10px; border:1px solid var(--ems-border); border-radius:var(--ems-radius); font-size:0.9rem; }
.ems-form-row textarea { resize:vertical; min-height:70px; }

/* Modal */
.ems-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:9999; display:flex; align-items:center; justify-content:center; }
.ems-modal-inner { background:#fff; border-radius:8px; padding:28px; max-width:460px; width:90%; box-shadow:0 8px 32px rgba(0,0,0,.18); }
.ems-modal-inner h3 { margin:0 0 12px; }
.ems-modal-inner select, .ems-modal-inner textarea { width:100%; margin-bottom:12px; padding:8px; border:1px solid var(--ems-border); border-radius:var(--ems-radius); font-size:0.9rem; }
.ems-modal-actions { display:flex; gap:10px; margin-top:16px; }

/* Responsive */
@media (max-width:600px) {
    .ems-shift-card { flex-direction:column; align-items:flex-start; }
    .ems-shift-meta { min-width:unset; }
}
