/* Two-column split row inside doctor drawer */
.doctor-form-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: start;
}

/* Doctor end-of-room form action buttons (inside slide panel body) */
.doctor-form-actions {
    display: flex;
    gap: 10px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #f3f4f6;
}
.doctor-form-actions .confirm-btn { flex: 1; justify-content: center; }

/* Confirm action dialog */

.confirm-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    z-index: 20100;
    animation: confirmFadeIn 0.15s ease;
    overflow-y: auto;
    padding: 20px 16px;
    box-sizing: border-box;
}

@keyframes confirmFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.confirm-modal {
    background: #fff;
    border-radius: 16px;
    padding: 32px 28px 24px;
    width: 340px;
    max-width: calc(100vw - 32px);
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.1);
    animation: confirmSlideUp 0.18s ease;
    margin: auto;
    flex-shrink: 0;
}

@keyframes confirmSlideUp {
    from { transform: translateY(12px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

.confirm-modal-icon {
    font-size: 38px;
    margin-bottom: 12px;
    line-height: 1;
}

.confirm-modal-icon.icon-warning  { color: #f59e0b; }
.confirm-modal-icon.icon-danger   { color: #ef4444; }
.confirm-modal-icon.icon-success  { color: #10b981; }
.confirm-modal-icon.icon-info     { color: #3b82f6; }

.confirm-modal-title {
    font-size: 17px;
    font-weight: 700;
    color: #111827;
    margin-bottom: 8px;
}

.confirm-modal-message {
    font-size: 14px;
    color: #6b7280;
    line-height: 1.55;
    margin-bottom: 24px;
}

.confirm-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.confirm-btn {
    flex: 1;
    padding: 10px 16px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: background 0.15s, transform 0.1s;
}

.confirm-btn:active { transform: scale(0.97); }

.confirm-btn-cancel {
    background: #f3f4f6;
    color: #374151;
}
.confirm-btn-cancel:hover { background: #e5e7eb; }

.confirm-btn-primary {
    background: #3b82f6;
    color: #fff;
}
.confirm-btn-primary:hover { background: #2563eb; }

.confirm-btn-warning {
    background: #f59e0b;
    color: #fff;
}
.confirm-btn-warning:hover { background: #d97706; }

.confirm-btn-danger {
    background: #ef4444;
    color: #fff;
}
.confirm-btn-danger:hover { background: #dc2626; }

.confirm-btn-success {
    background: #10b981;
    color: #fff;
}
.confirm-btn-success:hover { background: #059669; }

/* Assign picker (provider + room) inside confirm dialog */
.confirm-assign-picker {
    margin: 0 0 16px;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.confirm-assign-row {
    display: flex;
    flex-direction: column;
}
.confirm-room-picker {
    margin: 0 0 16px;
    text-align: left;
}
.confirm-room-label {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 6px;
}
/* LOAD-BEARING: the dropdown is position:fixed and flips ABOVE its trigger when there's no room
   below — ~300px in a ~400px dialog covered the title. Capped here; the slide panel keeps its full list. */
.confirm-modal .searchable-select-list { max-height: 168px; }

/* Dialog dropdowns are `.searchable-select` (forms.css), not a native <select> — a native open list
   can't be styled at all. `.confirm-room-select` was deleted, not aliased: two rules for one control drifts. */

/* Doctor end-of-room dialog form */
.doctor-end-form {
    text-align: left;
    margin: 12px 0;
}
.doctor-form-group {
    margin-bottom: 12px;
}
.doctor-form-label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 4px;
}
.doctor-form-label i {
    width: 16px;
    text-align: center;
    margin-right: 4px;
    color: #6b7280;
}
.doctor-form-input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    box-sizing: border-box;
}
.doctor-form-input:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 2px rgba(59,130,246,0.15);
}
.doctor-form-textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
    min-height: 60px;
    box-sizing: border-box;
}
.doctor-form-textarea:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 2px rgba(59,130,246,0.15);
}
.doctor-form-hint {
    display: block;
    font-size: 11px;
    color: #9ca3af;
    margin-top: 2px;
}
/* Service dropdown — styled to match doctor drawer fields */
.doctor-service-dropdown-wrap { position: relative; }

.doctor-service-dropdown-wrap .searchable-select-trigger {
    width: 100%;
    padding: 8px 32px 8px 10px;
    font-size: 13px;
    border-color: #d1d5db;
    border-radius: 6px;
    min-height: 36px;
    box-shadow: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.doctor-service-dropdown-wrap .searchable-select-trigger:hover {
    border-color: var(--calendar-green);
    background: #f9fafb;
}
.doctor-service-dropdown-wrap.is-open .searchable-select-trigger {
    border-color: var(--calendar-green);
    box-shadow: 0 0 0 3px rgba(0, 179, 0, 0.1);
}
.doctor-service-dropdown-wrap .searchable-select-trigger > i {
    right: 10px;
    font-size: 0.6rem;
}

/* Keep above modal overlay */
.doctor-service-dropdown { z-index: 20010 !important; border-radius: 12px; }

.doctor-service-dropdown .searchable-select-text {
    flex: 1;
    text-align: left;
    font-size: 13px;
    color: #374151;
}
.doctor-service-dropdown-wrap .searchable-select-trigger.is-placeholder .searchable-select-text {
    color: #9ca3af;
    font-size: 13px;
}

.doctor-service-dropdown .provider-filter-item {
    display: flex !important;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.2s;
    font-size: 0.85rem;
    color: #374151;
}
.doctor-service-dropdown .provider-filter-item:hover {
    background: #f9fafb;
}
.doctor-service-dropdown .provider-filter-item input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    border: 1.5px solid #d1d5db;
    border-radius: 3px;
    background: white;
    position: relative;
    flex-shrink: 0;
    transition: all 0.15s;
}
.doctor-service-dropdown .provider-filter-item input[type="checkbox"]:checked {
    background: var(--calendar-green);
    border-color: var(--calendar-green);
}
.doctor-service-dropdown .provider-filter-item input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 4.5px;
    top: 1.5px;
    width: 4px;
    height: 8px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.doctor-service-dropdown .filter-provider-list {
    max-height: 260px;
    overflow-y: auto;
    padding: 0.5rem;
}
.doctor-service-dropdown .provider-filter-item.search-hidden { display: none !important; }
.doctor-service-dropdown .provider-color {
    display: inline-block !important;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.doctor-service-dropdown .provider-name {
    display: inline-block !important;
    font-size: 0.85rem;
    font-weight: 400;
    color: #374151;
    flex: 1;
}

.svc-price-tag {
    font-size: 11px;
    color: #9ca3af;
    margin-left: auto;
    flex-shrink: 0;
}
.svc-group-header {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 5px 10px 4px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #6b7280;
    margin-top: 4px;
    border-radius: 6px;
}
.svc-group-header:first-child { margin-top: 0; }
.svc-group-header.search-hidden { display: none !important; }
.svc-group-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.filter-action-btn.active-filter {
    background: #f0fdf4;
    border-color: #86efac;
    color: var(--calendar-green);
}

/* Selected service tags shown below the trigger */
.doctor-service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 6px;
}
.doctor-svc-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px 3px 6px;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    font-size: 12px;
    color: #374151;
    font-weight: 500;
}
.doctor-svc-tag-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.doctor-svc-tag button {
    background: none;
    border: none;
    cursor: pointer;
    color: #9ca3af;
    font-size: 15px;
    line-height: 1;
    padding: 0;
}
.doctor-svc-tag button:hover { color: #ef4444; }
.doctor-form-checks {
    margin-top: 8px;
}
.doctor-check-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #374151;
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 6px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
}
.doctor-check-label:hover {
    background: #f3f4f6;
}
.doctor-check-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: #3b82f6;
}

/* Next-step option tiles (doctor drawer) */
.doctor-next-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 12px 8px;
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    cursor: pointer;
    background: #fff;
    text-align: center;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.doctor-next-option:hover {
    border-color: #d1d5db;
    background: #f9fafb;
}
.doctor-next-option.selected {
    border-color: var(--calendar-green);
    background: #f0fdf4;
    box-shadow: 0 0 0 3px rgba(0,179,0,0.08);
}
.doctor-next-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}
.doctor-next-label {
    font-size: 11px;
    font-weight: 600;
    color: #374151;
    line-height: 1.3;
}
.doctor-next-option.selected .doctor-next-label {
    color: var(--calendar-green);
}

/* Checkout summary (Receptionist dialog) */
.checkout-summary {
    text-align: left;
    margin: 12px 0;
    background: #f9fafb;
    border-radius: 8px;
    padding: 12px;
    border: 1px solid #e5e7eb;
}
.checkout-section {
    margin-bottom: 8px;
}
.checkout-label {
    font-size: 11px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}
.checkout-services {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.checkout-service-tag {
    display: inline-block;
    padding: 2px 8px;
    background: #dbeafe;
    color: #1d4ed8;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
}
.checkout-doctor-note {
    padding: 8px;
    background: #fffbeb;
    border-left: 3px solid #f59e0b;
    border-radius: 0 6px 6px 0;
    font-size: 12px;
    color: #92400e;
    margin-top: 8px;
}
.checkout-doctor-note i {
    margin-right: 4px;
}
.checkout-session-info {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.checkout-session-type {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
}
.checkout-session-type.one-time {
    background: #dbeafe;
    color: #1d4ed8;
}
.checkout-session-type.long-term {
    background: #ede9fe;
    color: #5b21b6;
}
.checkout-flag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
}
.checkout-flag.followup {
    background: #ffedd5;
    color: #c2410c;
}
.checkout-flag.final {
    background: #d1fae5;
    color: #065f46;
}

/* Doctor end-of-room extras */
.doc-subtitle        { font-size: 12px; color: #6b7280; margin-top: 1px; }
.doc-next-grid       { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 4px; }
.doc-next-icon-blue  { background: #eff6ff; color: #3b82f6; }
.doc-next-icon-green { background: #f0fdf4; color: #10b981; }
.doc-next-icon-gray  { background: #f9fafb; color: #9ca3af; }
.doc-apt-form        { margin-top: 10px; padding: 12px; background: #f0f9ff; border-radius: 8px; border: 1px solid #bae6fd; }
.doc-apt-form-header { font-size: 11px; font-weight: 600; color: #0369a1; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em; }
.doc-apt-form-grid   { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 8px; }
.doc-form-error      { color: #e53e3e; font-size: 12px; margin-top: 4px; background: #fef2f2; padding: 8px 12px; border-radius: 6px; border: 1px solid #fecaca; }
