/* assets/admin.css */

/* Specific styling for admin pages */

/* Admin Controls for filtering */
.admin-controls {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    align-items: end; /* Align buttons to the bottom of their grid cell */
}

/* Admin Table styling */
.admin-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: var(--space-4);
    background: var(--panel-2); /* Slightly darker background for tables */
    border-radius: var(--radius);
    overflow: hidden; /* Ensures rounded corners on children */
}

.admin-table thead tr {
    background: #1e293b; /* Darker header background */
    color: var(--text-strong);
}

.admin-table th, .admin-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid var(--border);
}

.admin-table th {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.admin-table tbody tr:last-child td {
    border-bottom: none;
}

.admin-table tbody tr:hover {
    background: #1a2434; /* Subtle hover effect */
}

.table-actions {
    white-space: nowrap; /* Keep action buttons on one line */
    display: flex;
    gap: 8px;
    align-items: center;
}
.table-actions .btn {
    padding: 6px 10px;
    font-size: 13px;
    font-weight: 600;
}

/* Specific styling for the grid-3 layout on admin-event */
.grid-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-3);
}

/* Separator line */
.sep {
    border: 0;
    border-top: 1px dashed var(--border);
    margin: var(--space-5) 0;
}

/* For kv-inline label-input pairs */
.kv-inline {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-weak);
    font-size: 14px;
}
.kv-inline input[type="checkbox"] {
    width: auto;
    height: 18px; /* Larger clickable area */
}
.kv { /* For key-value blocks in admin-event */
    margin-bottom: 0; /* Managed by grid gap */
}
.kv label {
    margin-bottom: 4px;
}

/* Adjustments for inputs within a flex row */
.flex .input {
    flex-grow: 1;
}

/* Specific badge colors for admin UI */
.badge.success {
    background-color: rgba(0, 191, 177, 0.12); /* Teal */
    border-color: var(--teal);
    color: var(--teal);
}
.badge.error {
    background-color: rgba(232, 63, 57, 0.12); /* Red */
    border-color: var(--red);
    color: #ff8884;
}
.badge.gsp {
    border-color: var(--blue);
    color: var(--blue);
    background: rgba(57, 160, 237, 0.12);
}
.badge.musingo {
    border-color: var(--yellow);
    color: var(--yellow);
    background: rgba(255, 192, 0, 0.12);
}
.badge.private {
    border-color: var(--muted);
    color: var(--muted);
    background: rgba(162, 172, 182, 0.12);
}

/* Additional styling for the batch validate button area */
#adminUtilitiesStatus {
    margin-top: var(--space-3);
}

.part-row.dragging {
  opacity: 0.5;
  background: var(--panel-2);
}

.part-row .team-block {
  cursor: grab;
  padding: 4px;
  border-radius: 6px;
  background-color: var(--panel-2);
  border: 1px dashed transparent;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.part-row .team-block.dragging {
  opacity: 0.5;
  background: var(--bg);
}

.part-row .team-block.drag-over {
  /* Highlight the drop target */
  border-color: var(--yellow);
  background-color: rgba(255, 192, 0, 0.1);
}

/* Hide ugly arrows on number inputs in Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Hide ugly arrows on number inputs in Firefox */
input[type=number] {
  -moz-appearance: textfield;
}