/* ── Admin Shell ──────────────────────────────────────── */
.admin-shell { min-height:100dvh; background-color:var(--color-neutral-50); }

/* ── Admin tables ─────────────────────────────────────── */
.admin-table { width:100%; border-collapse:collapse; font-family:var(--font-persian); }
.admin-table th { background:var(--color-neutral-100); padding:var(--space-3) var(--space-4); text-align:start; font-size:var(--text-sm); font-weight:var(--weight-semibold); color:var(--color-text-secondary); border-bottom:2px solid var(--color-neutral-200); white-space:nowrap; }
.admin-table td { padding:var(--space-3) var(--space-4); font-size:var(--text-sm); color:var(--color-text-primary); border-bottom:1px solid var(--color-neutral-100); vertical-align:middle; }
.admin-table tr:hover td { background-color:var(--color-neutral-50); }
.admin-table-wrap { background:var(--color-bg-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; }

/* ── Admin stat cards ─────────────────────────────────── */
.admin-stats { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:var(--space-4); margin-bottom:var(--space-8); }
.admin-stat { background:var(--color-bg-surface); border-radius:var(--radius-lg); padding:var(--space-5); box-shadow:var(--shadow-xs); border:1px solid var(--color-neutral-100); display:flex; flex-direction:column; gap:var(--space-2); }
.admin-stat__value { font-size:var(--text-3xl); font-weight:var(--weight-semibold); color:var(--color-text-primary); line-height:1; }
.admin-stat__label { font-size:var(--text-sm); color:var(--color-text-tertiary); font-family:var(--font-persian); }
.admin-stat--alert .admin-stat__value { color:var(--color-emergency-600); }

/* ── Admin page header ─────────────────────────────────── */
.admin-page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-4); margin-bottom:var(--space-6); flex-wrap:wrap; }
.admin-page-title { font-size:var(--text-2xl); font-weight:var(--weight-semibold); color:var(--color-text-primary); margin:0 0 var(--space-1); font-family:var(--font-persian); }
.admin-page-subtitle { font-size:var(--text-sm); color:var(--color-text-tertiary); margin:0; font-family:var(--font-persian); }

/* ── Admin badges ─────────────────────────────────────── */
.admin-badge { display:inline-flex; align-items:center; padding:2px var(--space-2); border-radius:var(--radius-full); font-size:var(--text-xs); font-weight:var(--weight-medium); font-family:var(--font-persian); white-space:nowrap; }
.admin-badge--customer    { background:var(--color-rose-100);      color:var(--color-rose-700); }
.admin-badge--coordinator { background:var(--color-amber-100);     color:var(--color-amber-700); }
.admin-badge--companion   { background:var(--color-sage-100);      color:var(--color-sage-700); }
.admin-badge--admin       { background:var(--color-neutral-900);   color:#fff; }
.admin-badge--active      { background:var(--color-sage-100);      color:var(--color-sage-700); }
.admin-badge--inactive    { background:var(--color-emergency-100); color:var(--color-emergency-700); }

/* ── Admin form ───────────────────────────────────────── */
.admin-form { background:var(--color-bg-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:var(--space-6); display:flex; flex-direction:column; gap:var(--space-5); max-width:520px; }
.admin-form__section { display:flex; flex-direction:column; gap:var(--space-2); }
.admin-form__label { font-size:var(--text-sm); font-weight:var(--weight-medium); color:var(--color-text-secondary); font-family:var(--font-persian); }
.admin-form__actions { display:flex; gap:var(--space-3); padding-top:var(--space-2); }

/* ── Admin action button ──────────────────────────────── */
.admin-btn { display:inline-flex; align-items:center; gap:var(--space-1); padding:var(--space-2) var(--space-4); border-radius:var(--radius-md); border:none; font-size:var(--text-sm); font-weight:var(--weight-semibold); font-family:var(--font-persian); cursor:pointer; transition:background-color var(--duration-fast); min-height:36px; }
.admin-btn--primary   { background:var(--color-neutral-900); color:#fff; }
.admin-btn--primary:hover { background:var(--color-neutral-700); }
.admin-btn--danger    { background:var(--color-emergency-600); color:#fff; }
.admin-btn--danger:hover { background:var(--color-emergency-700); }
.admin-btn--secondary { background:var(--color-neutral-100); color:var(--color-text-primary); }
.admin-btn--secondary:hover { background:var(--color-neutral-200); }
.admin-btn:disabled   { opacity:0.5; cursor:not-allowed; }

/* ── Admin search ─────────────────────────────────────── */
.admin-search { display:flex; gap:var(--space-3); margin-bottom:var(--space-4); flex-wrap:wrap; }
.admin-search__input { flex:1; min-width:200px; padding:var(--space-2) var(--space-3); border:1.5px solid var(--color-neutral-200); border-radius:var(--radius-md); font-size:var(--text-sm); font-family:var(--font-persian); background:var(--color-bg-surface); min-height:36px; }
.admin-search__input:focus { border-color:var(--color-neutral-500); outline:none; }

/* ── Admin pagination ─────────────────────────────────── */
.admin-pagination { display:flex; align-items:center; justify-content:space-between; padding:var(--space-3) var(--space-4); border-top:1px solid var(--color-neutral-100); font-size:var(--text-sm); color:var(--color-text-tertiary); font-family:var(--font-persian); }
.admin-pagination__nav { display:flex; gap:var(--space-2); }

/* ── Admin back link ──────────────────────────────────── */
.admin-back-link { display:inline-flex; align-items:center; gap:var(--space-1); font-size:var(--text-sm); color:var(--color-text-secondary); font-family:var(--font-persian); text-decoration:none; margin-bottom:var(--space-2); }
.admin-back-link:hover { color:var(--color-text-primary); }

/* ── Admin toast ──────────────────────────────────────── */
.admin-toast { padding:var(--space-3) var(--space-4); border-radius:var(--radius-md); font-size:var(--text-sm); font-family:var(--font-persian); margin-bottom:var(--space-4); }
.admin-toast--success { background:var(--color-sage-100); color:var(--color-sage-700); border:1px solid var(--color-sage-200); }
.admin-toast--error   { background:var(--color-emergency-100); color:var(--color-emergency-700); border:1px solid var(--color-emergency-200); }

/* ── Admin confirm banner ─────────────────────────────── */
.admin-confirm-banner { background:var(--color-amber-100); border:1px solid var(--color-amber-200); border-radius:var(--radius-md); padding:var(--space-4); margin-bottom:var(--space-5); display:flex; flex-direction:column; gap:var(--space-3); }
.admin-confirm-banner__text { margin:0; font-size:var(--text-sm); font-family:var(--font-persian); color:var(--color-neutral-900); }

/* ── Admin detail grid ────────────────────────────────── */
.admin-detail-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:var(--space-5); }
.admin-detail-card { background:var(--color-bg-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:var(--space-5); }
.admin-detail-card__title { font-size:var(--text-base); font-weight:var(--weight-semibold); color:var(--color-text-primary); margin:0 0 var(--space-4); font-family:var(--font-persian); border-bottom:1px solid var(--color-neutral-100); padding-bottom:var(--space-3); }
.admin-detail-card__empty { font-size:var(--text-sm); color:var(--color-text-tertiary); font-family:var(--font-persian); margin:0; }

/* ── Admin detail list (key/value pairs) ──────────────── */
.admin-detail-list { display:flex; flex-direction:column; gap:var(--space-3); margin:0; }
.admin-detail-list__row { display:flex; flex-direction:column; gap:2px; }
.admin-detail-list__label { font-size:var(--text-xs); font-weight:var(--weight-medium); color:var(--color-text-tertiary); font-family:var(--font-persian); }
.admin-detail-list__value { font-size:var(--text-sm); color:var(--color-text-primary); font-family:var(--font-persian); }
.admin-detail-list__value--mono { font-family:monospace; font-size:var(--text-xs); color:var(--color-text-secondary); word-break:break-all; }

/* ── Role chips (detail + role management) ────────────── */
.admin-role-chips { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.admin-role-chip  { display:inline-flex; align-items:center; gap:2px; }
.admin-role-chip__remove { display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:var(--radius-full); border:none; background:transparent; color:var(--color-text-tertiary); font-size:var(--text-xs); cursor:pointer; padding:0; line-height:1; }
.admin-role-chip__remove:hover { background:var(--color-emergency-100); color:var(--color-emergency-700); }
.admin-role-chip__remove:disabled { opacity:0.4; cursor:not-allowed; }

/* ── Admin form row (two-column layout for name fields) ── */
.admin-form__row { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
@media (max-width:480px) { .admin-form__row { grid-template-columns:1fr; } }

/* ── Admin form validation errors ────────────────────────*/
.admin-form-error { background:var(--color-emergency-100); color:var(--color-emergency-700); border:1px solid var(--color-emergency-200); border-radius:var(--radius-md); padding:var(--space-3) var(--space-4); font-size:var(--text-sm); font-family:var(--font-persian); }
.admin-form-field-error { font-size:var(--text-xs); color:var(--color-emergency-600); font-family:var(--font-persian); margin-top:2px; display:block; }

/* ── Admin table link ─────────────────────────────────── */
.admin-table-link { color:var(--color-text-primary); text-decoration:none; font-weight:var(--weight-medium); }
.admin-table-link:hover { color:var(--color-rose-700); text-decoration:underline; }

/* ── Per-row feedback (role management table) ─────────── */
.admin-row-feedback { font-size:var(--text-xs); font-family:var(--font-persian); padding:2px var(--space-2); border-radius:var(--radius-full); white-space:nowrap; }
.admin-row-feedback--success { background:var(--color-sage-100); color:var(--color-sage-700); }
.admin-row-feedback--error   { background:var(--color-emergency-100); color:var(--color-emergency-700); }

/* ── Admin page header (new variant) ─────────────────────── */
.admin-page { padding: 0; }
.admin-page__header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-4); margin-bottom:var(--space-6); flex-wrap:wrap; }
.admin-page__title { font-size:var(--text-2xl); font-weight:var(--weight-semibold); color:var(--color-text-primary); margin:0 0 var(--space-1); font-family:var(--font-persian); }
.admin-page__subtitle { font-size:var(--text-sm); color:var(--color-text-tertiary); margin:0; font-family:var(--font-persian); }

/* ── Filter bar card ──────────────────────────────────────── */
.admin-filter-bar {
    background: var(--color-bg-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    border: 1px solid var(--color-neutral-100);
    padding: var(--space-4) var(--space-5);
    margin-bottom: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

/* Search input + button row */
.admin-search-wrap {
    display: flex;
    gap: var(--space-2);
    align-items: stretch;
}

.admin-search-wrap input,
.admin-search-wrap .admin-search {
    flex: 1;
    padding: var(--space-3) var(--space-4);
    border: 1.5px solid var(--color-neutral-200);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-family: var(--font-persian);
    background: var(--color-bg-surface);
    color: var(--color-text-primary);
    transition: border-color var(--duration-fast) var(--ease-standard);
    min-height: 44px;
}

.admin-search-wrap input:focus,
.admin-search-wrap .admin-search:focus {
    border-color: var(--color-neutral-500);
    outline: none;
    box-shadow: 0 0 0 3px var(--color-neutral-100);
}

.admin-search-btn {
    padding: var(--space-3) var(--space-6);
    background: var(--color-neutral-900);
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    font-family: var(--font-persian);
    cursor: pointer;
    white-space: nowrap;
    min-height: 44px;
    transition: background-color var(--duration-fast) var(--ease-standard);
}

.admin-search-btn:hover { background: var(--color-neutral-700); }

/* Filter chips row */
.admin-filter-chips {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    align-items: center;
}

.admin-filter-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-full);
    border: 1.5px solid var(--color-neutral-200);
    background: var(--color-bg-surface);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    font-family: var(--font-persian);
    color: var(--color-text-secondary);
    cursor: pointer;
    min-height: 36px;
    transition: all var(--duration-fast) var(--ease-standard);
    user-select: none;
}

.admin-filter-chip:hover:not(.admin-filter-chip--active) {
    border-color: var(--color-neutral-400);
    background: var(--color-neutral-50);
    color: var(--color-text-primary);
}

.admin-filter-chip--active {
    background: var(--color-neutral-900);
    border-color: var(--color-neutral-900);
    color: #fff;
    font-weight: var(--weight-semibold);
}

/* ── Stats row (horizontal summary cards) ─────────────────── */
.admin-stats-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}

/* ── Admin empty state ────────────────────────────────────── */
.admin-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    padding: var(--space-12) var(--space-4);
    background: var(--color-bg-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    border: 1px solid var(--color-neutral-100);
}

.admin-empty__icon { font-size: 2.5rem; line-height: 1; }
.admin-empty__text {
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
    font-family: var(--font-persian);
    margin: 0;
    text-align: center;
}

/* ── Admin table action link ──────────────────────────────── */
.admin-action-link {
    color: var(--color-text-link);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    font-family: var(--font-persian);
    transition: color var(--duration-fast);
}
.admin-action-link:hover { color: var(--color-rose-700); text-decoration: underline; }

/* ── Pagination buttons ───────────────────────────────────── */
.admin-pagination__btn {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-neutral-200);
    background: var(--color-bg-surface);
    font-size: var(--text-sm);
    font-family: var(--font-persian);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-standard);
    min-height: 36px;
}
.admin-pagination__btn:hover:not(:disabled) {
    border-color: var(--color-neutral-400);
    color: var(--color-text-primary);
    background: var(--color-neutral-50);
}
.admin-pagination__btn:disabled { opacity: 0.4; cursor: not-allowed; }
.admin-pagination__info { font-size: var(--text-sm); color: var(--color-text-tertiary); font-family: var(--font-persian); }

/* ── Emergency badge variant ──────────────────────────────── */
.admin-badge--emergency { background: var(--color-emergency-100); color: var(--color-emergency-700); }

/* ── Table cell variants ──────────────────────────────────── */
.admin-table__cell--email { color: var(--color-text-tertiary); font-size: var(--text-xs); direction: ltr; display: block; }
.admin-table__cell--date  { color: var(--color-text-secondary); font-size: var(--text-xs); white-space: nowrap; }
.admin-table__cell--actions { white-space: nowrap; width: 1px; }
