/* Shared sizing for the operational, administration and diagnostic panels. */
:is(.pharmacy-portal, .diagnostics-portal, .auth-portal) {
    overflow-wrap: anywhere;
}
:is(.pharmacy-portal, .diagnostics-portal) :is(button, .btn, .btn-primary, .btn-outline) {
    white-space: normal;
    overflow-wrap: anywhere;
}
.superadmin-portal {
    overflow-wrap: normal;
}
.superadmin-portal :is(button, .btn, .btn-primary, .btn-outline, .page-btn, .status-pill, .badge-plan, .badge) {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}
:is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) :is(
    main, section, form, fieldset, .card, .glass-card, .admin-card, .ai-card,
    .plan-card, .api-doc-body, .api-section, .grid > *, .grid-3 > *,
    .form-group, .form-row-2 > *, .session-layout > *, .voip-layout > *
) { min-width: 0; }
:is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal, .auth-portal) :is(input, select, textarea) {
    min-width: 0;
    max-width: 100%;
}
:is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) :is(img, video, audio, canvas) {
    max-width: 100%;
}
:is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) :is(pre, .console, .log-area) {
    max-width: 100%;
    overflow-x: auto;
}
.panel-menu-toggle, .panel-menu-close { display: none; }
.panel-menu-overlay { display: none; }
.panel-menu-open { overflow: hidden; }
[data-panel-sidebar] { overscroll-behavior: contain; }
[data-panel-sidebar] :is(button, a):focus-visible, [data-panel-toggle]:focus-visible {
    outline: 3px solid var(--brand-cyan, #05b1bd);
    outline-offset: 2px;
}
.superadmin-portal { overflow-x: visible; }
.superadmin-portal .admin-main { width: 100%; min-width: 0; overflow: visible; }
.superadmin-portal .admin-sidebar { height: 100dvh; overflow-y: auto; flex-shrink: 0; }
.superadmin-portal .admin-sidebar-menu { overflow: visible; }
.superadmin-portal .admin-sidebar-footer { margin-top: 1rem; }
.superadmin-portal .admin-topbar > div { min-width: 0; }
.superadmin-portal .admin-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.superadmin-portal .kpi-row-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.superadmin-portal .plan-cards-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.superadmin-portal .ai-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.superadmin-portal :is(.api-endpoint-header, .api-code-header, .api-live-box, .code-lang-tabs) {
    flex-wrap: wrap;
}
.superadmin-portal .admin-table { 
    min-width: 980px; 
    width: 100%;
}
.superadmin-portal .admin-table :is(th, td) {
    overflow-wrap: normal !important;
}
.superadmin-portal :is(.badge-plan, .status-pill, .badge, .btn-primary, .btn-outline, .tenant-id-badge, .tenant-phone-badge, .page-btn) {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
}
.panel-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.panel-table-scroll .data-table { min-width: 640px; }
.panel-table-scroll:focus-visible { outline: 3px solid var(--brand-cyan); outline-offset: -3px; }
.superadmin-portal #select-active-backend { min-width: 0 !important; max-width: 100%; }
.superadmin-portal .backend-selector { min-width: 0; max-width: 100%; flex-wrap: wrap; }
:is(.pharmacy-portal, .superadmin-portal) .modal-overlay { padding: 16px; overflow-y: auto; }
:is(.pharmacy-portal, .superadmin-portal) :is(.modal, .modal-card) {
    min-width: 0;
    max-width: 100%;
    max-height: calc(100dvh - 32px) !important;
    overflow-y: auto;
    overscroll-behavior: contain;
}
:is(.pharmacy-portal, .superadmin-portal) :is(.modal-header, .modal-footer, .drawer-footer) {
    flex-wrap: wrap;
    gap: 12px;
}
.pharmacy-portal .drawer { width: min(480px, 100%); min-width: 0; max-width: 100%; height: 100dvh; }
.pharmacy-portal .drawer-header > div { min-width: 0; }
.pharmacy-portal .drawer-close { flex-shrink: 0; }
.pharmacy-portal .drawer-body { min-height: 0; }
.pharmacy-portal .toast-container { max-width: calc(100% - 24px); }
.pharmacy-portal .sticky-save-bar { max-width: calc(100% - 24px); }
.pharmacy-portal .sticky-save-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pharmacy-portal .topbar-breadcrumb { min-width: 0; white-space: normal; }
.pharmacy-portal .channel-connect-heading > div { min-width: 0; }
.pharmacy-portal .channel-connect-icon { flex-shrink: 0; }
.pharmacy-portal :is(.crm-toolbar, .crm-filters, .section-actions) { flex-wrap: wrap; }
.pharmacy-portal .table-filters { flex-wrap: wrap; }
.pharmacy-portal .table-search { min-width: 0; }
.diagnostics-portal .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.diagnostics-portal .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.diagnostics-portal :is(.info-table, .session-table) { overflow-wrap: anywhere; }
.diagnostics-portal :is(.history-content, .chat-bubble, .console, .log-area) { overflow-wrap: anywhere; }
.diagnostics-portal :is(.inline-flex, .card-title) { flex-wrap: wrap; }
.diagnostics-portal .tab-nav { scrollbar-width: thin; }
.diagnostics-portal .tab-nav::-webkit-scrollbar { display: block; height: 6px; }
.auth-portal .login-topbar { flex-wrap: wrap; gap: 12px; }
.auth-portal .login-card { min-width: 0; max-width: min(480px, 100%); }

@media (max-width: 1100px) {
    [data-panel-sidebar] {
        position: fixed !important;
        inset: 0 auto 0 0;
        width: min(290px, 85vw) !important;
        min-width: 0 !important;
        height: 100dvh !important;
        overflow-y: auto;
        z-index: 1200 !important;
        transform: translateX(-100%);
        visibility: hidden;
        transition: transform .2s ease;
    }
    [data-panel-sidebar].open { transform: translateX(0) !important; visibility: visible; }
    .panel-menu-overlay.active {
        display: block;
        position: fixed;
        inset: 0;
        width: 100%;
        height: 100dvh;
        border: 0;
        padding: 0;
        background: #0d182b80;
        z-index: 1190;
    }
    .panel-menu-toggle, .panel-menu-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-height: 44px;
        padding: 8px 12px;
        border: 1px solid var(--border-subtle);
        border-radius: 8px;
        background: var(--bg-card);
        color: var(--text-primary);
        font: inherit;
        cursor: pointer;
    }
    .panel-menu-close { margin: 8px; align-self: flex-end; flex-shrink: 0; }
    .superadmin-portal .admin-main { padding: 24px; }
    .superadmin-portal .admin-topbar { gap: 12px; }
    .superadmin-portal .admin-topbar > div:first-of-type { flex: 1 1 240px; }
}

@media (max-width: 900px) {
    .diagnostics-portal :is(.grid, .grid-3) { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
    .superadmin-portal .admin-main { padding: 16px; }
    .superadmin-portal :is(.admin-card, .ai-card, .plan-card) { padding: 16px; }
    /* Legacy forms declare column counts inline; keep every field on small screens. */
    :is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) [style*="grid-template-columns"],
    .pharmacy-portal .lead-modal-info-grid { grid-template-columns: minmax(0, 1fr) !important; }
    :is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) [style*="grid-column"] {
        grid-column: 1 / -1 !important;
    }
    :is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) [style*="justify-content: space-between"],
    :is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) [style*="justify-content:space-between"] {
        flex-wrap: wrap;
        gap: 10px;
    }
    :is(.pharmacy-portal, .superadmin-portal) .modal-card { padding: 16px !important; width: 100% !important; }
    :is(.pharmacy-portal, .superadmin-portal) :is(.modal-header, .modal-body, .modal-footer) { padding: 16px; }
    .superadmin-portal .admin-actions { width: 100%; }
    .superadmin-portal .admin-actions > button { flex: 1 1 130px; justify-content: center; }
    .superadmin-portal .api-docs-layout { min-width: 0; }
    .pharmacy-portal .topbar-left { flex-basis: 100%; }
    .pharmacy-portal .topbar-right { margin-left: auto; flex-wrap: wrap; }
    .pharmacy-portal .drawer-footer > div { display: flex; flex-wrap: wrap; gap: 8px; }
    .pharmacy-portal .sticky-save-bar {
        left: 12px; right: 12px; width: auto;
        border-radius: 16px; padding: 12px; gap: 10px;
        bottom: max(12px, env(safe-area-inset-bottom));
        transform: translateY(calc(100% + 32px));
        visibility: hidden;
    }
    .pharmacy-portal .sticky-save-bar.visible { transform: translateY(0); visibility: visible; }
    .pharmacy-portal .sticky-save-info { min-width: 0; }
    .diagnostics-portal .card { padding: 16px; }
    .diagnostics-portal .tab-nav { padding: 0 8px; }
    .diagnostics-portal .pagination-label { white-space: normal; }
    .auth-portal .login-main { padding: 16px 12px 24px; }
    .auth-portal .form-options { flex-wrap: wrap; gap: 12px; }
    :is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal, .auth-portal) :is(input, select, textarea) {
        font-size: 16px !important;
    }
    :is(.pharmacy-portal, .superadmin-portal, .diagnostics-portal) :is(
        .btn, .btn-primary, .btn-outline, .tab-btn, .filter-pill, .filter-tab,
        .channel-btn, .btn-theme-pill, .topbar-menu-btn, .drawer-close, .modal-close, .code-lang-tab
    ) {
        min-height: 44px;
        min-width: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-panel-sidebar], .panel-menu-overlay { transition: none; }
}
