.fcm-wrap { max-width: 1200px; }
.fcm-title { margin-bottom: 10px; }
.fcm-topbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:10px 0; }
.fcm-search { display:flex; gap:8px; margin:10px 0; flex-wrap:wrap; }
.fcm-search input { min-width: 180px; }
.fcm-filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.fcm-filter.active { box-shadow: inset 0 0 0 2px #2271b1; }

.fcm-table .fcm-actions > .button { margin:2px 2px; }
.fcm-chip { display:inline-block; padding:2px 8px; border:1px solid #ccd0d4; border-radius:999px; margin:2px; font-size:12px; }

.fcm-soon { background: #fff8cc !important; } /* yellow highlight rows due today/<=7 days */

.fcm-modal { position:fixed; inset:0; background:rgba(0,0,0,.4); display:flex; align-items:center; justify-content:center; z-index:99999; }
.fcm-modal-card { background:#fff; width: min(980px, 96vw); border-radius:10px; box-shadow: 0 10px 40px rgba(0,0,0,.2); }
.fcm-modal-head { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid #eee; }
.fcm-modal-body { padding:16px; max-height: 75vh; overflow:auto; }
.fcm-modal-foot { display:flex; gap:8px; justify-content:flex-end; margin-top:12px; }

.fcm-grid { display:grid; gap:10px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.fcm-grid label { display:flex; flex-direction:column; gap:6px; }
@media (max-width: 900px) {
  .fcm-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .fcm-grid { grid-template-columns: 1fr; }
}

.fcm-services { display:flex; flex-wrap:wrap; gap:12px; margin:8px 0 12px; }
.fcm-check { display:flex; align-items:center; gap:6px; }

.fcm-svc-card { border:1px solid #e5e7eb; border-radius:8px; padding:12px; margin:10px 0; }
.fcm-svc-card h4 { margin:0 0 8px 0; }
