/* Phase 2 presentation only. Loaded on screen below 1200px; desktop/print retain
   their existing styles. Mobile <768px, tablet 768–1199px. */
@media screen and (max-width: 1199px) {
    html { min-width: 0; }
    .app-shell, .main-panel { min-width: 0; max-width: 100%; }
    .main-panel {
        margin-inline: 0;
        padding: 16px 20px 30px;
    }
    :root, html.sidebar-collapsed-init, body.sidebar-collapsed {
        --sidebar-width: min(326px, calc(100vw - 40px));
    }
    .sidebar {
        position: fixed;
        inset-block-start: 0;
        inset-inline-start: 0;
        inset-inline-end: auto;
        width: var(--sidebar-width);
        height: 100vh;
        height: 100dvh;
        transform: translateX(105%);
        visibility: hidden;
        box-shadow: -18px 0 42px rgba(3, 23, 39, .3);
    }
    html[dir="ltr"] .sidebar { transform: translateX(-105%); }
    /* A translated fixed drawer still enlarges the document's scrollable area. */
    body:not(.sidebar-open) .sidebar { display: none; }
    body.sidebar-open .sidebar { transform: none; visibility: visible; }
    body.sidebar-open { overflow: hidden; }
    .sidebar-overlay {
        position: fixed;
        inset: 0;
        display: block;
        border: 0;
        background: rgba(15, 23, 42, .42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        z-index: 1030;
    }
    body.sidebar-open .sidebar-overlay { opacity: 1; visibility: visible; pointer-events: auto; }
    .sidebar-collapse-toggle { display: none; }
    .sidebar-header { position: relative; padding-inline-end: 54px; }
    .sidebar-drawer-close {
        position: absolute;
        inset-inline-end: 8px;
        inset-block-start: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        color: var(--sidebar-text);
        background: transparent;
        border: 1px solid var(--sidebar-border);
        border-radius: 7px;
        font-size: 28px;
        line-height: 1;
    }
    .sidebar-nav-scroll, .sidebar-content { overscroll-behavior: contain; }
    .sidebar-footer { flex-shrink: 0; }
    .sidebar-mobile-toggle { display: inline-flex; min-height: 44px; }
    .responsive-nav-bar { display: flex; margin-block-end: 12px; }
    .topbar { flex-wrap: wrap; gap: 12px; padding: 12px 16px; }
    .topbar > *, .topbar-actions > *, .page-heading > *, .card-toolbar > * { min-width: 0; }
    .topbar-actions { flex-wrap: wrap; gap: 10px; }
    .topbar-title, .system-title, .page-heading h1 { overflow-wrap: anywhere; }
    .page-heading, .card-toolbar, .form-actions, .intake-form-actions,
    .intake-action-buttons, .intake-toolbar, .intake-section-actions,
    .official-record-actions, .review-actions, .nssp-confirm-actions { flex-wrap: wrap; }
    .main-panel > *, .content-card, .field, .filter-field, .review-filter-field,
    .form-grid > *, .filters > *, .org-workspace-grid > * { min-width: 0; }
    .form-grid, .filters, .review-filter-grid, .intake-search-grid,
    .permission-grid, .official-record-grid, .official-record-grid-compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .form-control, .form-select, textarea, select { min-width: 0; max-width: 100%; }
    .form-label, .field label, .filter-field label, .field-hint,
    .intake-field-error, .invalid-feedback { overflow-wrap: anywhere; }
    .form-control, .form-select { min-height: 44px; }
    textarea.form-control { min-height: 112px; }
    .btn, .sidebar-menu-item, .sidebar-group-label, .sidebar-logout,
    .language-flag-button, .topbar-back-action, .topbar-record-action,
    .intake-control-button, .intake-lookup-action, .intake-add-row-action,
    .intake-remove-row-action, .page-link, .intake-section-header,
    .org-tree-row, .org-child-card, .org-breadcrumb button {
        min-height: 44px;
    }
    .language-flag-button, .intake-remove-row-action { min-width: 44px; }
    .btn, .topbar-record-action { white-space: normal; overflow-wrap: anywhere; }
    .intake-check, .form-check { min-height: 44px; }
    input[type="checkbox"], input[type="radio"] { min-width: 20px; min-height: 20px; }
    .table-responsive, .intel-table-wrap, .review-table-wrap,
    .gis-operational-table-wrap, .pattern-table-wrap, .trends-workspace-table-wrap {
        position: relative;
        min-width: 0;
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-x: contain;
    }
    .table-responsive > table { min-width: 640px; }
    .table-responsive .btn { white-space: nowrap; }
    .nssp-confirm-modal { padding: 12px; }
    .nssp-confirm-dialog, .review-dialog-card, dialog {
        max-width: calc(100vw - 24px);
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .nssp-confirm-actions { position: sticky; bottom: -16px; padding-block: 12px; background: #fff; }
    .org-workspace-grid { grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr); }
    .org-toolbar { min-width: 0; }
    .org-details-command, .org-selected-actions { flex-wrap: wrap; }
    .org-summary-row, .org-summary-row dd { min-width: 0; overflow-wrap: anywhere; }
    .org-explorer-scroll { min-height: 0; max-height: 60vh; }
    .org-tree-node {
        width: 100%;
        max-width: 100%;
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .org-tree-main, .org-tree-main strong, .org-tree-main span {
        width: 100%;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .main-panel .gis-command-workspace { min-width: 0; max-width: 100%; }
    .main-panel .gis-map-shell { min-width: 0; }
    .main-panel .gis-filter-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .main-panel .gis-map-actions button, .main-panel .gis-drawer-close { min-width: 44px; width: 44px; height: 44px; }
    :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
        outline: 3px solid #2563eb;
        outline-offset: 3px;
    }
}

@media screen and (max-width: 767px) {
    .main-panel { padding: 12px 12px 24px; }
    .auth-wrap { min-height: 100dvh; padding: 20px 16px; }
    .login-panel { padding: 24px 20px; }
    .login-panel h1 { font-size: 22px; }
    .login-header, .login-title-row { flex-wrap: wrap; }
    .topbar { gap: 10px; padding: 12px; }
    .topbar-title-wrap { flex: 1 1 160px; }
    .topbar-title, .system-title { font-size: 19px; }
    .topbar-actions { flex: 1 1 100%; width: 100%; justify-content: flex-start; }
    .content-card { padding: 12px; }
    .page-heading, .card-toolbar { align-items: stretch; flex-direction: column; }
    .form-grid, .filters, .review-filter-grid, .review-quick-search,
    .intake-basic-grid, .intake-crime-time-grid, .intake-location-grid,
    .intake-person-grid, .intake-vehicle-grid, .intake-modus-grid,
    .intake-evidence-grid, .relationship-grid, .intake-search-grid,
    .intake-checkbox-grid, .permission-grid, .official-record-grid,
    .official-record-grid-compact, .evidence-readonly-summary-grid,
    .evidence-readonly-fields, .org-workspace-grid, .org-overview-grid,
    .org-executive-strip, .ai-grid, .ai-definition-grid,
    .intel-detail-grid, .intel-comparison-grid, .nssp-confirm-status-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .form-grid > *, .filters > * { grid-column: auto; }
    .form-grid > .intake-field-full, .form-grid > .full { grid-column: 1 / -1; }
    .form-control, .form-select, textarea { font-size: 16px; }
    .intake-section-body, .intake-repeatable-card { padding: 12px; }
    .intake-inline-control { grid-template-columns: minmax(0, 1fr); }
    .intake-section-main, .intake-section-copy { min-width: 0; }
    .intake-section-header, .intake-repeatable-card-header,
    .official-record-subcard h3 { gap: 10px; flex-wrap: wrap; }
    .intake-section-pill, .status, .status-badge, .role-badge { white-space: normal; overflow-wrap: anywhere; }
    .intake-form-actions, .form-actions { gap: 10px; }
    .intake-form-actions .btn, .form-actions .btn { flex: 1 1 140px; }
    .org-toolbar { grid-template-columns: minmax(0, 1fr); }
    .org-toolbar .org-search-meta { max-width: 100%; }
    .org-details-command, .org-workspace-header { align-items: stretch; }
    .org-header-primary, .org-header-controls { min-width: 0; }
    .org-explorer-scroll { max-height: none; }
    .org-tree-node { min-width: 0; }
    .nssp-confirm-dialog { padding: 16px; }
    .nssp-confirm-actions { flex-direction: row; }
    .nssp-confirm-actions > .btn { flex: 1 1 120px; }
    .main-panel .gis-command-workspace { height: max(420px, 70dvh); }
    .main-panel .gis-tool-drawer { grid-area: 1 / 1 / -1 / -1; }
    .main-panel .gis-map-toolbar {
        inset-block-start: 70px;
        inset-inline-start: 8px;
        max-width: calc(100% - 64px);
    }
    .main-panel .gis-active-filters { inset-block-start: 150px; }
    .main-panel .gis-filter-pair { grid-template-columns: minmax(0, 1fr); }
    .main-panel:has(> .gis-command-workspace) .topbar { flex-wrap: wrap; }
    .main-panel:has(> .gis-command-workspace) .language-flag-button { min-width: 44px; min-height: 44px; }
    .main-panel:has(> .gis-command-workspace) .sidebar-mobile-toggle { min-width: 44px; }
}
