/* ==========================================================================
   COMMUNITY CLINIC — GLOBAL STYLESHEET
   ========================================================================== */

/* ==========================================================================
   1. GLOBAL RESET, BRANDING & TYPOGRAPHY
   ========================================================================== */

html {
    margin: 0 !important;
    padding: 0 !important;
    overflow-y: scroll !important;
    scrollbar-gutter: stable !important;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0 !important;
    padding: 72px 24px 24px 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;

    background-color: #f8fafc !important;
    color: #1e293b !important;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif !important;

    line-height: 1.5 !important;
}

h1,
h2,
h3,
h4 {
    margin-top: 0 !important;
    color: #0f172a !important;
    font-weight: 700 !important;
}

p {
    margin-top: 0 !important;
}

/* ==========================================================================
   2. GENERAL PAGE WRAPPERS
   ========================================================================== */

.appointment-wrapper,
.dashboard-wrapper,
.booking-container,
.prescription-master-layout {
    width: 100% !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.appointment-header,
.dashboard-welcome {
    margin-bottom: 30px !important;
}

.appointment-header h1,
.dashboard-welcome h1 {
    margin: 0 0 6px 0 !important;
    color: #0f172a !important;
    font-size: 26px !important;
}

.appointment-header p,
.dashboard-welcome p {
    margin: 0 !important;
    color: #64748b !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* ==========================================================================
   3. GENERAL GRIDS
   ========================================================================== */

.appointment-grid,
.chat-layout-grid {
    display: grid !important;
    grid-template-columns: 4fr 6fr !important;
    gap: 24px !important;
    align-items: start !important;
}

.appointment-card,
.appointment-panel-card,
.metric-card {
    background-color: #ffffff !important;
    padding: 24px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.02) !important;
}

/* ==========================================================================
   4. FORMS
   ========================================================================== */

.clinic-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    margin-top: 15px !important;
}

.form-label-block {
    display: block !important;
    color: #334155 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.form-label-block input[type="text"],
.form-label-block input[type="date"],
.form-label-block input[type="time"],
.form-label-block select,
.form-label-block textarea {
    width: 100% !important;
    margin-top: 6px !important;
    padding: 10px 14px !important;

    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;

    outline: none !important;
    background-color: #ffffff !important;

    font-family: inherit !important;
    font-size: 14px !important;

    transition: border-color 0.2s ease !important;
}

.form-label-block input:focus,
.form-label-block select:focus,
.form-label-block textarea:focus {
    border-color: #0056b3 !important;
    box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.08) !important;
}

.form-actions-row {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 10px !important;
}

/* ==========================================================================
   5. TABLES
   ========================================================================== */

.table-responsive {
    width: 100% !important;
    margin-top: 10px !important;
    overflow-x: auto !important;
}

.clinic-table {
    width: 100% !important;
    border-collapse: collapse !important;
    text-align: left !important;
    font-size: 14px !important;
}

.clinic-table th {
    padding: 12px 16px !important;

    border-bottom: 2px solid #e2e8f0 !important;

    background-color: #f8fafc !important;
    color: #475569 !important;

    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

.clinic-table td {
    padding: 14px 16px !important;

    border-bottom: 1px solid #f1f5f9 !important;

    color: #334155 !important;
    vertical-align: middle !important;
}

.clinic-table tr:last-child td {
    border-bottom: none !important;
}

.clinic-table .table-id-tag {
    color: #94a3b8 !important;
    font-weight: 700 !important;
}

.clinic-table .table-ref-badge {
    color: #0056b3 !important;
    font-family: monospace !important;
}

.table-date-weight {
    color: #334155 !important;
    font-weight: 600 !important;
}

.table-time-font {
    color: #0056b3 !important;
    font-family: monospace !important;
    font-size: 14px !important;
}

.text-muted-tag {
    color: #64748b !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

/* ==========================================================================
   6. STATUS BADGES
   ========================================================================== */

.status-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 4px 10px !important;

    border-radius: 4px !important;

    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: capitalize !important;
}

.status-confirmed,
.status-active,
.status-read,
.status-badge.type-local {
    background-color: #dcfce7 !important;
    color: #166534 !important;
}

.status-pending,
.status-pending_refill,
.status-badge.type-foreign {
    background-color: #fef3c7 !important;
    color: #b45309 !important;
}

.status-cancelled,
.status-locked {
    background-color: #fef2f2 !important;
    color: #b91c1c !important;
}

/* ==========================================================================
   7. ACTION BUTTONS
   ========================================================================== */

.clinic-table .action-btn-pill {
    display: inline-block !important;

    margin: 0 2px !important;
    padding: 6px 12px !important;

    border-radius: 4px !important;

    font-size: 12px !important;
    font-weight: bold !important;
    text-decoration: none !important;

    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02) !important;

    transition: background-color 0.15s ease !important;
}

.action-btn-pill.btn-edit {
    background-color: #0056b3 !important;
    color: #ffffff !important;
}

.action-btn-pill.btn-edit:hover {
    background-color: #004085 !important;
}

.action-btn-pill.btn-view {
    background-color: #28a745 !important;
    color: #ffffff !important;
}

.action-btn-pill.btn-view:hover {
    background-color: #1e7e34 !important;
}

.action-btn-pill.btn-delete,
.action-red-pill {
    background-color: #dc3545 !important;
    color: #ffffff !important;
}

.action-btn-pill.btn-delete:hover,
.action-red-pill:hover {
    background-color: #bd2130 !important;
}

/* ==========================================================================
   8. DOCTOR / SHIFT DISPLAY
   ========================================================================== */

.doctor-shift-block {
    display: grid !important;
    grid-template-columns: 110px 90px !important;
    align-items: center !important;
    gap: 16px !important;

    margin: 8px 0 !important;
    padding-bottom: 6px !important;

    border-bottom: 1px solid #f1f5f9 !important;
}

.doctor-shift-block:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

.doctor-badge-pills {
    display: block !important;

    min-width: 100px !important;
    padding: 6px 10px !important;

    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;

    background-color: #f1f5f9 !important;
    color: #1e293b !important;

    font-size: 12px !important;
    font-weight: 600 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

.shift-time-tag {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 6px 10px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 4px !important;

    background-color: #f8fafc !important;
    color: #475569 !important;

    font-family: monospace !important;
    font-size: 12px !important;
    font-weight: 700 !important;

    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

/* ==========================================================================
   9. ADMIN METRICS
   ========================================================================== */

.admin-metrics-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    margin-bottom: 30px !important;
}

.metric-card.card-primary {
    border-left: 4px solid #0056b3 !important;
}

.metric-card.card-warning {
    border-left: 4px solid #d97706 !important;
}

.metric-card.card-success {
    border-left: 4px solid #166534 !important;
}

.metric-card.card-purple {
    border-left: 4px solid #7c3aed !important;
}

.metric-card .metric-number {
    margin: 6px 0 !important;
    color: #0f172a !important;
    font-size: 32px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

.metric-card .metric-subtext {
    margin-top: auto !important;
    color: #64748b !important;
    font-size: 13px !important;
}

.metric-card .metric-subtext strong {
    color: #1e293b !important;
}

.admin-actions-card {
    margin-bottom: 40px !important;
}

.admin-actions-card h3 {
    margin: 0 0 15px 0 !important;
    padding-bottom: 8px !important;

    border-bottom: 2px solid #f1f5f9 !important;

    color: #475569 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

.admin-actions-flex {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
}

.admin-actions-flex .btn-admin-action {
    display: inline-block !important;

    padding: 12px 24px !important;

    border-radius: 6px !important;

    color: #ffffff !important;

    font-size: 14px !important;
    font-weight: bold !important;
    text-decoration: none !important;

    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05) !important;

    transition: background-color 0.2s ease !important;
}

.admin-actions-flex .action-blue {
    background-color: #0056b3 !important;
}

.admin-actions-flex .action-blue:hover {
    background-color: #004085 !important;
}

.admin-actions-flex .action-green {
    background-color: #166534 !important;
}

.admin-actions-flex .action-green:hover {
    background-color: #14532d !important;
}

.admin-actions-flex .action-purple {
    background-color: #6b21a8 !important;
}

.admin-actions-flex .action-purple:hover {
    background-color: #581c87 !important;
}

/* ==========================================================================
   10. STATEMENTS
   ========================================================================== */

.statement-summary-box {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    margin-top: 10px !important;
}

.statement-item-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    padding-bottom: 12px !important;

    border-bottom: 1px solid #f1f5f9 !important;

    color: #475569 !important;
    font-size: 14px !important;
}

.statement-item-row:last-child {
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

.statement-item-row span {
    font-weight: 500 !important;
}

.statement-item-row strong {
    color: #1e293b !important;
}

.statement-item-row .text-financial-blue {
    color: #0056b3 !important;
    font-family: monospace !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

/* ==========================================================================
   11. BOOKING
   ========================================================================== */

.booking-container {
    max-width: 900px !important;
}

.booking-grid {
    display: grid !important;
    grid-template-columns: 4fr 6fr !important;
    gap: 24px !important;
    align-items: start !important;

    margin: 20px 0 30px 0 !important;
}

.booking-form-card,
.availability-card {
    padding: 24px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;

    background: #ffffff !important;
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.02) !important;
}

.booking-form-card h2,
.availability-card h2 {
    margin: 0 0 20px 0 !important;
    padding-bottom: 10px !important;

    border-bottom: 2px solid #f1f5f9 !important;

    color: #1e293b !important;
    font-size: 18px !important;
}

.doctor-availability {
    margin-top: 10px !important;
}

.day-schedule {
    margin: 10px 0 !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.day-schedule:last-child {
    border-bottom: none !important;
}

.day-schedule strong {
    display: block !important;
    margin-bottom: 8px !important;

    color: #0f172a !important;
    font-size: 14px !important;
}

.shift-row {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;

    margin: 5px 0 !important;
    padding: 5px 0 !important;
}

.section-sub-desc {
    margin: -12px 0 15px 0 !important;
    color: #64748b !important;
    font-size: 13px !important;
}

.btn-reschedule {
    background: #f59e0b !important;
    color: #ffffff !important;
}

.btn-reschedule:hover {
    background: #d97706 !important;
}

.history-section {
    margin-top: 35px !important;
    padding-top: 25px !important;

    border-top: 2px dashed #f1f5f9 !important;
}

.history-section h3 {
    margin: 0 0 20px 0 !important;
    color: #1e293b !important;
    font-size: 18px !important;
}

.btn-book {
    width: 100% !important;
    margin-top: 8px !important;
    padding: 14px !important;

    border: none !important;
    border-radius: 6px !important;

    background-color: #0056b3 !important;
    color: #ffffff !important;

    cursor: pointer !important;

    font-size: 14px !important;
    font-weight: 700 !important;

    transition: background-color 0.2s ease !important;
}

.btn-book:hover {
    background-color: #004085 !important;
}

.success-message {
    margin-bottom: 15px !important;
    padding: 12px !important;

    border: 1px solid #bbf7d0 !important;
    border-radius: 6px !important;

    background: #f0fdf4 !important;
    color: #166534 !important;

    text-align: center !important;
}

.reschedule-mini-form {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 !important;
}

.reschedule-mini-form input[type="date"],
.reschedule-mini-form input[type="time"] {
    width: auto !important;
    height: auto !important;

    margin: 0 !important;
    padding: 3px 6px !important;

    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;

    background-color: #ffffff !important;

    font-family: inherit !important;
    font-size: 11px !important;

    outline: none !important;
}

.reschedule-mini-form input[type="date"]:focus,
.reschedule-mini-form input[type="time"]:focus {
    border-color: #0056b3 !important;
}

/* ==========================================================================
   12. CHAT
   ========================================================================== */

.chat-sidebar-list {
    max-height: 600px !important;
    padding: 20px !important;
    overflow-y: auto !important;
}

.thread-links-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;

    margin-top: 15px !important;
}

.thread-channel-item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    padding: 12px 16px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;

    background-color: #f8fafc !important;
    color: inherit !important;

    text-decoration: none !important;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease !important;
}

.thread-channel-item:hover,
.thread-channel-item.current-active-channel {
    border-color: #bbf7d0 !important;
    background-color: #f0fdf4 !important;
}

.thread-channel-item .channel-details small {
    display: block !important;
    margin-top: 2px !important;

    color: #64748b !important;
    font-family: monospace !important;
}

.chat-view-box {
    display: flex !important;
    flex-direction: column !important;

    min-height: 550px !important;
    padding: 20px !important;
}

.chat-messages-container {
    display: flex !important;
    flex-grow: 1 !important;
    flex-direction: column !important;

    max-height: 420px !important;

    margin: 15px 0 !important;
    padding: 15px !important;

    gap: 14px !important;

    overflow-y: auto !important;

    border: 1px solid #f1f5f9 !important;
    border-radius: 8px !important;

    background-color: #f8fafc !important;
}

.chat-bubble-row {
    display: flex !important;
    width: 100% !important;
}

.chat-bubble-row.row-admin {
    justify-content: flex-end !important;
}

.chat-bubble-row.row-patient {
    justify-content: flex-start !important;
}

.message-bubble {
    max-width: 70% !important;
    padding: 12px 16px !important;

    border-radius: 12px !important;

    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.02) !important;
}

.row-admin .message-bubble {
    border-bottom-right-radius: 0 !important;
    background-color: #0056b3 !important;
    color: #ffffff !important;
}

.row-patient .message-bubble {
    border: 1px solid #e2e8f0 !important;
    border-bottom-left-radius: 0 !important;

    background-color: #ffffff !important;
    color: #1e293b !important;
}

.message-bubble .bubble-text {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
}

.message-bubble .bubble-time {
    display: block !important;

    margin-top: 4px !important;

    opacity: 0.8 !important;

    font-size: 11px !important;
    text-align: right !important;
}

.chat-input-bar {
    display: flex !important;
    gap: 10px !important;
    margin-top: auto !important;
}

/* ==========================================================================
   13. ALERTS
   ========================================================================== */

.chat-alert-panel {
    margin-bottom: 30px !important;
    padding: 20px 24px !important;

    border: 1px solid #ffedd5 !important;
    border-left: 5px solid #ea580c !important;
    border-radius: 8px !important;

    background-color: #fff7ed !important;
}

.chat-alert-panel .alert-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 6px !important;
}

.chat-alert-panel .alert-header h3 {
    margin: 0 !important;
    color: #9a3412 !important;
    font-size: 16px !important;
}

.chat-alert-panel .chat-alert-pill {
    padding: 4px 10px !important;

    border-radius: 50px !important;

    background-color: #ea580c !important;
    color: #ffffff !important;

    font-size: 12px !important;
    font-weight: bold !important;
}

.chat-alert-panel .alert-desc {
    margin: 0 0 14px 0 !important;
    color: #c2410c !important;
    font-size: 14px !important;
}

.chat-alert-panel .alert-action-btn {
    color: #ea580c !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.chat-alert-panel .alert-action-btn:hover {
    color: #9a3412 !important;
    text-decoration: underline !important;
}

/* ==========================================================================
   14. DIGITAL ID PASS
   ========================================================================== */

.clinic-id-pass-canvas {
    width: 100% !important;
    max-width: 460px !important;

    margin: 40px auto !important;

    overflow: hidden !important;

    border: 1px solid #cbd5e1 !important;
    border-radius: 12px !important;

    background-color: #ffffff !important;

    box-shadow: 0 15px 35px rgba(15, 23, 42, 0.08) !important;
}

.pass-branding-strip {
    padding: 16px 24px !important;
    background-color: #0f172a !important;
}

.pass-brand-title {
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

.pass-body-matrix {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    padding: 24px !important;
}

.pass-label-text {
    display: block !important;
    color: #64748b !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

.pass-value-display {
    margin: 4px 0 0 0 !important;
    color: #0f172a !important;
    font-size: 20px !important;
    font-weight: 700 !important;
}

.pass-value-code {
    margin: 4px 0 0 0 !important;
    color: #0056b3 !important;
    font-family: monospace !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

.pass-secondary-columns-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 15px !important;

    margin-top: 5px !important;
    padding-top: 14px !important;

    border-top: 1px solid #f1f5f9 !important;
}

.pass-time-stamp-tag {
    display: inline-block !important;
    margin-top: 6px !important;

    color: #334155 !important;
    font-family: monospace !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.pass-footer-disclaimer {
    padding: 14px 24px !important;

    border-top: 1px solid #e2e8f0 !important;

    background-color: #f8fafc !important;
}

.pass-footer-disclaimer p {
    margin: 0 !important;

    color: #64748b !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    text-align: center !important;
}

/* ==========================================================================
   15. FOOTER
   ========================================================================== */

.profile-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;

    margin-top: 40px !important;
    padding-top: 20px !important;

    border-top: 1px solid #e2e8f0 !important;
}

.footer-btn {
    padding: 8px 16px !important;

    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;

    background-color: #ffffff !important;
    color: #475569 !important;

    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;

    transition:
        background-color 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease !important;
}

.footer-btn:hover {
    border-color: #0056b3 !important;
    background-color: #f8fafc !important;
    color: #0056b3 !important;
}

.footer-btn.logout-btn {
    color: #dc2626 !important;
}

.footer-btn.logout-btn:hover {
    border-color: #fca5a5 !important;
    background-color: #fef2f2 !important;
    color: #b91c1c !important;
}

/* ==========================================================================
   16. GATEWAY / LOGIN / REGISTRATION
   ========================================================================== */

.gateway-body {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 100vh !important;

    margin: 0 !important;
    padding: 40px 20px !important;

    background-color: #f8fafc !important;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        sans-serif !important;
}

.gateway-container {
    width: 100% !important;
    max-width: 440px !important;

    padding: 40px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;

    background-color: #ffffff !important;

    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04) !important;
}

.gateway-container.registration-container {
    max-width: 800px !important;
    padding: 45px !important;
}

.gateway-brand-header {
    margin-bottom: 30px !important;
    text-align: center !important;
}

.gateway-brand-header h2 {
    margin: 0 0 8px 0 !important;
    color: #0f172a !important;
    font-size: 24px !important;
}

.gateway-brand-header p {
    margin: 0 !important;
    color: #64748b !important;
    font-size: 14px !important;
}

.gateway-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
}

.registration-form-section h3 {
    margin: 0 0 15px 0 !important;
    color: #475569 !important;
    font-size: 15px !important;
}

.border-top-divider {
    padding-top: 20px !important;
    border-top: 1px solid #f1f5f9 !important;
}

.form-grid-row-dual {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}

.form-grid-row-triple {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
}

.form-input-group {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

.form-input-group label {
    color: #475569 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.form-input-group input,
.form-input-group select,
.form-input-group textarea {
    width: 100% !important;

    padding: 10px 14px !important;

    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;

    outline: none !important;

    background-color: #ffffff !important;

    font-family: inherit !important;
    font-size: 14px !important;

    transition: border-color 0.2s ease !important;
}

.form-input-group input:focus,
.form-input-group select:focus,
.form-input-group textarea:focus {
    border-color: #0056b3 !important;
    box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.06) !important;
}

.gateway-btn {
    width: 100% !important;

    padding: 14px !important;

    border: none !important;
    border-radius: 6px !important;

    background-color: #0056b3 !important;
    color: #ffffff !important;

    cursor: pointer !important;

    font-size: 14px !important;
    font-weight: 700 !important;

    transition: background-color 0.2s ease !important;
}

.gateway-btn:hover {
    background-color: #004085 !important;
}

.error-banner-chip {
    margin: 0 0 10px 0 !important;
    padding: 12px !important;

    border: 1px solid #fee2e2 !important;
    border-radius: 6px !important;

    background-color: #fef2f2 !important;
    color: #b91c1c !important;

    font-size: 13px !important;
    font-weight: 600 !important;
    text-align: center !important;
}

.gateway-footer-links {
    margin-top: 10px !important;
    padding-top: 20px !important;

    border-top: 1px solid #f1f5f9 !important;

    color: #475569 !important;
    font-size: 14px !important;
    text-align: center !important;
}

.gateway-footer-links a {
    color: #0056b3 !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

.gateway-footer-links a:hover {
    text-decoration: underline !important;
}

/* ==========================================================================
   17. PRESCRIPTION
   ========================================================================== */

.prescription-master-layout {
    display: grid !important;
    grid-template-columns: 4fr 6fr !important;
    gap: 24px !important;
    align-items: start !important;

    margin-bottom: 40px !important;
}

.prescription-feed-column {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}

.script-item-card {
    border-left: 4px solid #0056b3 !important;
}

.script-card-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    margin-bottom: 14px !important;
    padding-bottom: 12px !important;

    border-bottom: 1px solid #f1f5f9 !important;
}

.script-card-header h3 {
    margin: 0 !important;
    color: #0f172a !important;
    font-size: 16px !important;
}

.script-instructions-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;

    padding-bottom: 12px !important;

    border-bottom: 1px solid #f1f5f9 !important;
}

.script-instructions-wrapper span {
    color: #475569 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.script-instructions-wrapper p {
    margin: 0 !important;
    padding: 10px 14px !important;

    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;

    background-color: #f8fafc !important;
    color: #334155 !important;

    font-size: 13px !important;
}

.script-footer-metadata {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    margin-top: 4px !important;

    color: #64748b !important;
    font-size: 12px !important;
}

.prescription-actions-container {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;

    margin-top: 25px !important;
    padding-top: 20px !important;

    border-top: 1px solid #e2e8f0 !important;
}

.btn-print-manifest {
    width: 100% !important;
    margin: 0 !important;
    padding: 12px !important;
}

.return-dashboard-link {
    width: 100% !important;

    padding: 11px !important;

    box-sizing: border-box !important;

    text-align: center !important;
}

/* ==========================================================================
   18. RESPONSIVE
   ========================================================================== */

@media (max-width: 950px) {
    .admin-metrics-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 900px) {
    .prescription-master-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 850px) {
    .appointment-grid,
    .chat-layout-grid,
    .booking-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 768px) {

    body {
        padding: 105px 12px 12px 12px !important;
    }

    .admin-metrics-grid {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }

    .form-grid-row-dual,
    .form-grid-row-triple {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .profile-footer {
        flex-direction: column !important;
        width: 100% !important;
        gap: 8px !important;
    }

    .footer-btn {
        width: 100% !important;
        text-align: center !important;
    }

    .admin-actions-flex {
        flex-direction: column !important;
        width: 100% !important;
    }

    .admin-actions-flex .btn-admin-action,
    .gateway-btn,
    .btn-book {
        width: 100% !important;
        box-sizing: border-box !important;
        text-align: center !important;
    }

    .message-bubble {
        max-width: 88% !important;
    }

    .clinic-table {
        min-width: 650px !important;
    }

    .table-responsive {
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .gateway-container.registration-container {
        padding: 25px 20px !important;
    }

    .booking-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .doctor-shift-block {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
}

/* ==========================================================================
   19. PRINT
   ========================================================================== */

@media print {

    .nav-bar,
    .prescription-actions-container {
        display: none !important;
    }

    body {
        padding: 0 !important;
        background-color: #ffffff !important;
    }

    .prescription-master-layout {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   BOOK APPOINTMENT — PRACTITIONER AVAILABILITY ALIGNMENT
   ========================================================= */

.availability-table td:last-child {
    min-width: 0;
}

.availability-table .doctor-shift-block {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 12px !important;

    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;

    margin-bottom: 8px !important;
}

.availability-table .doctor-shift-block:last-child {
    margin-bottom: 0 !important;
}

/* Practitioner name/type */

.availability-table .doctor-badge-pills {
    display: block !important;

    min-width: 0 !important;
    width: auto !important;
    max-width: 100% !important;

    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;

    line-height: 1.35 !important;
    box-sizing: border-box !important;
}

/* Practitioner hours */

.availability-table .shift-time-tag {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 104px !important;
    max-width: none !important;

    white-space: nowrap !important;
    flex-shrink: 0 !important;

    box-sizing: border-box !important;
}

/* Closed-day row */

.availability-table .doctor-shift-block:has(.doctor-badge-pills:first-child) {
    min-width: 0;
}

/* Smaller screens */

@media (max-width: 900px) {

    .availability-table .doctor-shift-block {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
    }

    .availability-table .shift-time-tag {
        justify-self: start !important;
        min-width: 0 !important;
    }
}

/* =========================================================
   BOOK APPOINTMENT — CONSISTENT PRACTITIONER / HOURS ROWS
   ========================================================= */

/*
 * Every practitioner row uses the same two-column structure:
 * practitioner details | appointment hours
 */
.availability-table .doctor-shift-block {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 116px !important;
    align-items: stretch !important;
    gap: 12px !important;

    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;

    padding: 10px 12px !important;
    margin: 0 0 8px 0 !important;

    box-sizing: border-box !important;
}

/* Remove the final unnecessary gap in each day */
.availability-table .doctor-shift-block:last-child {
    margin-bottom: 0 !important;
}

/*
 * Practitioner name/type always fills the complete left column.
 * This prevents short names and long names from producing
 * differently sized badges.
 */
.availability-table .doctor-badge-pills {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 38px !important;

    margin: 0 !important;
    padding: 8px 12px !important;

    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;

    line-height: 1.3 !important;
    text-align: left !important;

    box-sizing: border-box !important;
}

/*
 * Every time box gets exactly the same width and alignment.
 */
.availability-table .shift-time-tag {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 116px !important;
    min-width: 116px !important;
    max-width: 116px !important;
    min-height: 38px !important;

    margin: 0 !important;
    padding: 8px 8px !important;

    white-space: nowrap !important;
    text-align: center !important;

    box-sizing: border-box !important;
}

/*
 * On narrower screens, stack the name and time instead of
 * squeezing either one.
 */
@media (max-width: 900px) {

    .availability-table .doctor-shift-block {
        grid-template-columns: 1fr !important;
    }

    .availability-table .shift-time-tag {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        justify-content: flex-start !important;
    }
}

/* =========================================================
   APPOINTMENT HISTORY — BRANCH / RESCHEDULE ACTION
   ========================================================= */

.appointment-history-section .history-branch {
    color: #475569;
    font-weight: 600;
    line-height: 1.4;
}

.appointment-history-section .history-actions {
    white-space: nowrap;
}

.appointment-history-section .history-actions-inner {
    display: flex;
    align-items: center;
    gap: 8px;
}

.appointment-history-section .history-actions form {
    display: inline-flex !important;
    margin: 0;
}

.appointment-history-section .history-reschedule-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    height: 36px;
    padding: 0 14px;

    border: 1px solid #bfdbfe;
    border-radius: 8px;

    background: #eff6ff;
    color: #1d4ed8;

    font-size: 13px;
    font-weight: 700;
    line-height: 1;

    text-decoration: none;

    box-sizing: border-box;
}

.appointment-history-section .history-reschedule-link:hover {
    background: #dbeafe;
    border-color: #93c5fd;
}

.appointment-history-section .history-cancel-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    height: 36px;
    padding: 0 14px;

    border: 1px solid #fecaca;
    border-radius: 8px;

    background: #fef2f2;
    color: #b91c1c;

    font: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;

    cursor: pointer;
    box-sizing: border-box;
}

.appointment-history-section .history-cancel-button:hover {
    background: #fee2e2;
    border-color: #fca5a5;
}

.appointment-history-section .history-cancel-button:focus-visible {
    outline: 2px solid #dc2626;
    outline-offset: 2px;
}

.appointment-history-section .history-reschedule-link:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.appointment-history-section .history-action-unavailable {
    color: #94a3b8;
    font-weight: 600;
}

@media (max-width: 900px) {
    .appointment-history-section .history-table-wrapper {
        overflow-x: auto;
    }

    .appointment-history-section .clinic-table {
        min-width: 900px;
    }
}


/* =========================================================
   APPOINTMENT CANCELLATION MODAL
   ========================================================= */

.appointment-cancel-modal[hidden] {
    display: none !important;
}

.appointment-cancel-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;
}

.appointment-cancel-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}

.appointment-cancel-modal__dialog {
    position: relative;
    z-index: 1;

    width: min(460px, 100%);
    padding: 28px;

    border: 1px solid #e2e8f0;
    border-radius: 14px;

    background: #ffffff;

    box-shadow:
        0 20px 50px rgba(15, 23, 42, 0.20);

    text-align: left;
}

.appointment-cancel-modal__title {
    margin: 0 0 10px;

    color: #0f172a;

    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
}

.appointment-cancel-modal__description {
    margin: 0;

    color: #475569;

    font-size: 14px;
    line-height: 1.6;
}

.appointment-cancel-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;

    margin-top: 24px;
}

.appointment-cancel-modal__keep,
.appointment-cancel-modal__confirm {
    min-height: 40px;
    padding: 0 16px;

    border-radius: 8px;

    font: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}

.appointment-cancel-modal__keep {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #334155;
}

.appointment-cancel-modal__keep:hover {
    background: #f8fafc;
}

.appointment-cancel-modal__confirm {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.appointment-cancel-modal__confirm:hover {
    background: #fee2e2;
    border-color: #fca5a5;
}

.appointment-cancel-modal__keep:focus-visible,
.appointment-cancel-modal__confirm:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.appointment-cancel-modal__confirm:disabled {
    opacity: 0.65;
    cursor: wait;
}

body.appointment-cancel-modal-open {
    overflow: hidden;
}

@media (max-width: 520px) {
    .appointment-cancel-modal {
        padding: 16px;
    }

    .appointment-cancel-modal__dialog {
        padding: 22px;
    }

    .appointment-cancel-modal__actions {
        flex-direction: column-reverse;
    }

    .appointment-cancel-modal__keep,
    .appointment-cancel-modal__confirm {
        width: 100%;
    }
}
