/* Master configuration UI only. Keep this stylesheet behind the root scope. */
.master-config-page {
    --mc-ink: #172033;
    --mc-muted: #667085;
    --mc-faint: #98a2b3;
    --mc-border: #e4e8ef;
    --mc-soft-border: #edf0f5;
    --mc-surface: #fff;
    --mc-primary: #5146d8;
    --mc-primary-soft: #efedff;
    --mc-radius: 14px;
    --mc-shadow: 0 1px 2px rgba(16,24,40,.04), 0 6px 18px rgba(16,24,40,.045);
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    min-width: 0;
    color: var(--mc-ink);
    font-size: 13px;
    line-height: 1.45;
}

.master-config-page *,
.master-config-page *::before,
.master-config-page *::after {
    box-sizing: border-box;
}

.master-config-page :is(input, select, textarea, button) {
    font: inherit;
}

.master-config-page h1,
.master-config-page h2,
.master-config-page h3,
.master-config-page h4,
.master-config-page h5,
.master-config-page p {
    margin-top: 0;
}

/* Reusable page heading */
.master-config-page .page-header,
.master-config-page .ipd-header,
.master-config-page .hosp-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-width: 0;
    margin: 0;
    padding: 15px 18px;
    background: var(--mc-surface);
    border: 1px solid var(--mc-border);
    border-radius: var(--mc-radius);
    box-shadow: var(--mc-shadow);
    flex-wrap: wrap;
}

.master-config-page .page-title,
.master-config-page .ipd-title,
.master-config-page .hosp-page-header h3 {
    margin: 0;
    color: var(--mc-ink);
    font-size: 18px;
    font-weight: 750;
    line-height: 1.25;
}

.master-config-page .page-subtitle,
.master-config-page .ipd-subtitle,
.master-config-page .hosp-page-header p {
    margin: 4px 0 0;
    color: var(--mc-muted);
    font-size: 12.5px;
}

.master-config-page .add-new-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 15px;
    color: #fff;
    background: var(--mc-primary);
    border: 0;
    border-radius: 9px;
    box-shadow: 0 4px 10px rgba(81,70,216,.16);
    font-weight: 650;
    cursor: pointer;
}

.master-config-page .add-new-btn:hover {
    background: #4238c4;
    transform: translateY(-1px);
}

.master-config-page .doctor-page,
.master-config-page .hosp-page,
.master-config-page .radiology-module,
.master-config-page .pathology-master-page {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    min-width: 0;
}

/* Card surfaces */
.master-config-page .patient-directory-card,
.master-config-page .user-card,
.master-config-page .ipd-card,
.master-config-page .card,
.master-config-page .hosp-card {
    min-width: 0;
    background: var(--mc-surface);
    border: 1px solid var(--mc-border);
    border-radius: var(--mc-radius);
    box-shadow: var(--mc-shadow);
}

.master-config-page .card {
    padding: 16px;
}

.master-config-page .user-card,
.master-config-page .ipd-card,
.master-config-page .hosp-card {
    padding: 0;
}

.master-config-page .user-card-header,
.master-config-page .ipd-card-header,
.master-config-page .hosp-card-header,
.master-config-page .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    margin: 0 0 14px;
    padding: 0 0 12px;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--mc-soft-border);
}

.master-config-page .user-card-header,
.master-config-page .ipd-card-header,
.master-config-page .hosp-card-header {
    margin: 0;
    padding: 13px 16px;
}

.master-config-page .user-card-title,
.master-config-page .ipd-card-title,
.master-config-page .card-header h4,
.master-config-page .hosp-card-header h4 {
    margin: 0;
    color: var(--mc-ink);
    font-size: 14px;
    font-weight: 700;
}

.master-config-page .user-card-body,
.master-config-page .ipd-card > .ipd-grid,
.master-config-page .ipd-card > .form-actions {
    padding: 16px;
}

.master-config-page .user-card-body {
    min-width: 0;
}

/* Consistent list title, search and action row */
.master-config-page .modern-table-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 18px;
    min-width: 0;
    padding: 14px 16px;
    background: var(--mc-surface);
    border-bottom: 1px solid var(--mc-soft-border);
    flex-wrap: wrap;
}

.master-config-page .table-header-title {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 150px;
}

.master-config-page .table-header-title h4 {
    margin: 0;
    color: var(--mc-ink);
    font-size: 15px;
    font-weight: 700;
}

.master-config-page .table-count {
    color: var(--mc-muted);
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

.master-config-page .table-header-search {
    flex: 1 1 220px;
    min-width: min(100%, 220px);
    max-width: 360px;
}

.master-config-page .table-search-wrapper {
    position: relative;
    width: 100%;
}

.master-config-page .table-search-wrapper .search-icon {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 11px;
    color: var(--mc-faint);
    font-size: 16px;
    line-height: 1;
    pointer-events: none;
    transform: translateY(-50%);
}

.master-config-page .table-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
    flex-wrap: wrap;
}

/* Labels, field alignment, grids and controls */
.master-config-page .user-grid,
.master-config-page .doctor-form-grid,
.master-config-page .ipd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    align-items: start;
    gap: 14px 16px;
    min-width: 0;
}

.master-config-page .user-field,
.master-config-page .ipd-field,
.master-config-page .field,
.master-config-page .hosp-field,
.master-config-page .rad-config-label {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    min-width: 0;
    margin: 0;
}

.master-config-page .user-field > label,
.master-config-page .ipd-field > label,
.master-config-page .field > label,
.master-config-page .hosp-field > label,
.master-config-page .form-label,
.master-config-page .rad-config-label {
    margin: 0;
    color: #344054;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
}

.master-config-page :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea, .form-control, .form-select, .table-search, .hosp-input, .rad-form-control) {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 8px 11px;
    color: var(--mc-ink);
    background: #fff;
    border: 1px solid #d6dce6;
    border-radius: 8px;
    box-shadow: none;
    font-size: 13px;
    line-height: 1.35;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.master-config-page .table-search {
    height: 38px;
    padding-left: 35px;
}

.master-config-page .table-header-search .table-search {
    width: 100% !important;
    max-width: 100%;
}

.master-config-page textarea,
.master-config-page textarea.form-control {
    min-height: 82px;
    height: auto;
    padding-top: 9px;
    resize: vertical;
}

.master-config-page :is(input, select, textarea, .form-control, .form-select, .table-search, .hosp-input, .rad-form-control):focus {
    border-color: #8b83ef;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(81,70,216,.12);
}

.master-config-page :is(input, textarea, .form-control)::placeholder {
    color: #98a2b3;
    opacity: 1;
}

.master-config-page input[type="checkbox"],
.master-config-page input[type="radio"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--mc-primary);
}

.master-config-page .field-checkbox,
.master-config-page .permission-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    margin: 0;
    color: #344054;
    font-size: 12.5px;
}

.master-config-page .field-checkbox label,
.master-config-page .permission-item label {
    margin: 0;
    cursor: pointer;
}

.master-config-page .full-width,
.master-config-page .form-actions {
    grid-column: 1 / -1;
}

.master-config-page .form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid var(--mc-soft-border);
    flex-wrap: wrap;
}

.master-config-page :is(.btn, .btn-primary, .btn-secondary, .btn-danger, .btn-warning, .hosp-btn, .rad-btn, .action-btn, .upload-btn-small) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 12px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
}

.master-config-page .btn-sm {
    min-height: 32px;
    padding: 0 10px;
    font-size: 12px;
}

.master-config-page .action-group,
.master-config-page .tbl-act {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.master-config-page .action-btn {
    min-height: 32px;
    border: 1px solid transparent;
    cursor: pointer;
}

.master-config-page .edit-btn {
    color: #3448a5;
    background: #eef2ff;
}

.master-config-page .delete-btn {
    color: #b42318;
    background: #fee4e2;
}

.master-config-page .doctor-info,
.master-config-page .photo-upload-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.master-config-page .doctor-mini-avatar,
.master-config-page .doctor-avatar-small {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    color: var(--mc-primary);
    background: var(--mc-primary-soft);
    border: 1px solid #e1deff;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
    object-fit: cover;
}

.master-config-page .doctor-avatar-small {
    flex-basis: 48px;
    width: 48px;
    height: 48px;
    border-radius: 12px;
}

.master-config-page .dept-badge {
    display: inline-flex;
    padding: 4px 9px;
    color: #3448a5;
    background: #eef2ff;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 650;
}

.master-config-page .upload-btn-small {
    color: #fff;
    background: var(--mc-primary);
    cursor: pointer;
}

/* Tables, empty/loading states */
.master-config-page .table-wrapper,
.master-config-page .ipd-table-wrapper,
.master-config-page .table-responsive {
    width: 100%;
    min-width: 0;
    max-height: min(58vh, 620px);
    overflow: auto;
    border: 1px solid var(--mc-soft-border);
    border-radius: 10px;
}

.master-config-page .master-table,
.master-config-page .ipd-table,
.master-config-page .patient-directory-card table {
    width: 100%;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--mc-ink);
    font-size: 12.5px;
}

.master-config-page .master-table thead,
.master-config-page .ipd-table thead,
.master-config-page .patient-directory-card thead {
    position: sticky;
    z-index: 2;
    top: 0;
    background: #f7f8fb;
}

.master-config-page .master-table th,
.master-config-page .ipd-table th,
.master-config-page .patient-directory-card th {
    padding: 10px 13px;
    color: #667085;
    background: #f7f8fb;
    border-bottom: 1px solid var(--mc-border);
    font-size: 11px;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}

.master-config-page .master-table td,
.master-config-page .ipd-table td,
.master-config-page .patient-directory-card td {
    padding: 10px 13px;
    color: #344054;
    border-bottom: 1px solid var(--mc-soft-border);
    vertical-align: middle;
    line-height: 1.45;
}

.master-config-page .master-table tbody tr:hover,
.master-config-page .ipd-table tbody tr:hover,
.master-config-page .patient-directory-card tbody tr:hover {
    background: #fafaff;
}

.master-config-page .table-subtitle,
.master-config-page .empty-row {
    color: var(--mc-muted);
    font-size: 12px;
}

.master-config-page .empty-row {
    padding: 34px 16px;
    text-align: center;
}

.master-config-page .loader-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 110px;
    padding: 20px;
    color: var(--mc-muted);
}

.master-config-page .status-badge,
.master-config-page .badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 650;
}

.master-config-page .status-badge.active,
.master-config-page .status-badge.status-active {
    color: #067647;
    background: #dcfae6;
}

.master-config-page .status-badge.inactive,
.master-config-page .status-badge.status-inactive {
    color: #b42318;
    background: #fee4e2;
}

.master-config-page .error-msg {
    color: #c4324b;
    font-size: 11.5px;
}

.master-config-page .input-error {
    border-color: #e5484d !important;
}

/* Keep the existing Hospital Preview screen styled after replacing the
   old global master stylesheet. */
.hospital-preview {
    max-width: 1400px;
    margin: 0 auto;
}

.hospital-preview .preview-header {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 32px;
    color: white;
    background: linear-gradient(135deg,#0f172a,#1e3a8a);
    border-radius: 24px;
}

.hospital-preview .preview-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    background: rgba(255,255,255,.15);
    border-radius: 20px;
}

.hospital-preview .preview-logo img {
    width: 80px;
    height: 80px;
    object-fit: contain;
}

.hospital-preview .preview-grid,
.hospital-preview .stats-strip {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 16px;
}

.hospital-preview .stats-strip {
    grid-template-columns: repeat(4,minmax(0,1fr));
    margin-top: 20px;
}

.hospital-preview .preview-item,
.hospital-preview .stat-card {
    padding: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
}

.hospital-preview .preview-item label {
    display: block;
    margin-bottom: 6px;
    color: #64748b;
    font-size: 12px;
}

.hospital-preview .preview-item div {
    color: #0f172a;
    font-size: 15px;
    font-weight: 700;
}

.hospital-preview .preview-actions {
    display: flex;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 24px;
}

@media (max-width: 768px) {
    .master-config-page .modern-table-header {
        align-items: stretch;
    }

    .master-config-page .table-header-title,
    .master-config-page .table-header-search {
        width: 100%;
        max-width: none;
    }

    .master-config-page .table-header-actions,
    .master-config-page .form-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .master-config-page .form-actions > .btn,
    .master-config-page .form-actions > button {
        flex: 1 1 140px;
    }

    .master-config-page .card {
        padding: 14px;
    }

    .hospital-preview .preview-header {
        flex-direction: column;
        padding: 24px 18px;
        text-align: center;
    }
}

@media (max-width: 520px) {
    .master-config-page {
        gap: 10px;
    }

    .master-config-page .page-header,
    .master-config-page .ipd-header,
    .master-config-page .hosp-page-header {
        align-items: flex-start;
        padding: 13px;
    }

    .master-config-page .page-title,
    .master-config-page .ipd-title,
    .master-config-page .hosp-page-header h3 {
        font-size: 16px;
    }

    .master-config-page .table-wrapper,
    .master-config-page .ipd-table-wrapper {
        max-height: 52vh;
    }

    .hospital-preview .preview-grid,
    .hospital-preview .stats-strip {
        grid-template-columns: 1fr;
    }
}