.ems-roster-wrap, .ems-roster-admin { --ems-bg:#050505; --ems-cell:#0b0b0b; --ems-red:#d90000; --ems-border:#2a2a2a; }
.ems-card { background:#fff; border:1px solid #dcdcde; border-radius:10px; padding:16px; margin:16px 0; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.ems-grid-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; align-items:end; }
.ems-grid-form label { display:flex; flex-direction:column; gap:5px; font-weight:600; }
.ems-grid-form input, .ems-grid-form select, .ems-grid-form textarea { width:100%; max-width:100%; }
.ems-grid-form .ems-full { grid-column:1 / -1; }
.ems-table-scroller { overflow-x:auto; border:1px solid var(--ems-border); background:var(--ems-bg); }
.ems-roster-table { width:100%; border-collapse:collapse; min-width:1150px; background:var(--ems-bg); color:var(--ems-red); font-weight:700; }
.ems-roster-table th { background:#020915; color:var(--ems-red); border:1px solid #356cc9; padding:12px 10px; text-align:center; }
.ems-roster-table td { background:var(--ems-cell); border:1px solid #1f1f1f; padding:9px 10px; text-align:center; }
.ems-roster-table select { min-width:170px; }
.ems-vacant { color:#888; font-style:italic; }
.ems-status { display:inline-block; padding:3px 8px; border-radius:999px; background:#222; color:#fff; font-size:12px; }
.ems-status-active { background:#4a9d0b; }
.ems-status-loa { background:#0d95d8; }
.ems-status-inactive { background:#666; }
.ems-status-retired { background:#444; }
.ems-status-vacant { background:#111; color:#aaa; }
.ems-toggle { margin-bottom:10px !important; }
@media (max-width: 782px) { .ems-roster-table th, .ems-roster-table td { padding:8px 6px; } }


.ems-ranks-admin-table input[type="text"] { width: 100%; max-width: 240px; }
.ems-cert-control { position: relative; min-width: 170px; }
.ems-cert-menu { position: absolute; z-index: 1000; top: 34px; left: 0; min-width: 220px; max-height: 260px; overflow: auto; background: #111; border: 1px solid #2f6bd8; box-shadow: 0 10px 24px rgba(0,0,0,.45); padding: 10px; border-radius: 6px; }
.ems-cert-menu label { display: block; color: #fff; margin: 6px 0; white-space: nowrap; }
.ems-cert-menu p { color: #fff; margin: 0; }
.ems-cert-summary { margin-top: 6px; font-size: 12px; line-height: 1.3; }
.ems-muted { opacity: .7; }
.ems-ranks-admin-table input[type="number"] { width: 90px; }
.ems-cert-limit { color: #fff; margin: 0 0 8px 0 !important; padding-bottom: 8px; border-bottom: 1px solid #333; font-weight: 700; }
.ems-row-over-limit td { background:#2a0505 !important; }
.ems-member-over-limit { border:2px solid #d90000 !important; background:#ffe8e8 !important; color:#8a0000 !important; font-weight:700; }
.ems-over-limit { color:#ff3b3b !important; font-weight:800; }
.ems-cert-warning { color:#fff !important; background:#a40000; border:1px solid #ff4a4a; padding:7px 8px; border-radius:5px; margin:0 0 8px 0 !important; font-weight:800; }
