/*
 * bootstrap-compat.css -- Bootstrap utility shim for the migration period.
 * REMOVE THIS FILE once the final .d-none callsites listed below are
 * refactored to .hidden (Tailwind).
 *
 * --- Migration history ---
 *
 * Phase 7a-dead-code-pass (Apr 2026): after bootstrap.bundle.min.js was deleted,
 * class groups with zero remaining usage were removed (collapse/collapsing, bare
 * modal/modal-backdrop, dropdowns, nav-link/pills/tabs, table variants,
 * alert-primary/secondary, form-switch, btn-group-sm, card-footer,
 * visually-hidden-focusable).
 *
 * Phase 7b-component-move (Apr 2026): component-style classes that live inside
 * PHP markup (alert, card, modal-X, accordion-X, form-control, form-select,
 * input-group-X, list-group-X, spinner-border-X, progress, progress-bar, badge,
 * pagination, page-link, page-item, btn-group, table base, nav base) were moved
 * to tailwind-input.css @layer components.
 *
 * Phase 7b-second-dead-code-pass (Apr 2026): every class with 0 uses in
 * top-level wwwroot/*.php AND 0 uses in live JS/CSS was removed.
 *
 * Phase 7c-upgrade-php-pass (Apr 2026): five more utility rules removed
 * (bg-success, text-primary, fw-normal, align-items-stretch, pb-3).
 *
 * Phase 7c-footer-php-pass (Apr 2026): seven more (border-top, border-bottom,
 * fs-2, justify-content-xl-end, mb-xl-0, ms-3, text-xl-start).
 *
 * Phase 7d-final-prune (Apr 2026): after migrating the remaining top-level
 * pages to Tailwind, ~40 more utility rules were removed. File shrank to a
 * core of grid/spacing/JS-pinned rules.
 *
 * Phase 7e-rabbit-cdn-discovery (Apr 2026): rabbit_dashboard.php was found to
 * load Bootstrap 5.3.0 directly from jsDelivr and is otherwise standalone
 * (no header.php / footer.php include) - it does not consume this file at
 * all. That alone removed the justification for keeping .container, .row,
 * .row > *, .col, .col-md-6, .text-muted/.text-secondary here.
 *
 * Every remaining PHP page has been migrated to Tailwind authorship, so the
 * "accepted-transient" -3/-4/-5 spacing overrides were also removed: they
 * were silently forcing Tailwind-authored tokens (p-4, mb-4, etc.) to render
 * at Bootstrap values rather than the Tailwind values the author actually
 * intended. Tailwind now emits those class names natively with its own
 * values.
 *
 * tailwind.config.js content was extended to include the four site-authored
 * root-level JS files (faq_scripts.js, formatter.js, javascript.js,
 * youtube_backup.js) in addition to ./js/**. Combined with Tailwind 3.4's
 * logical-property utilities (ms-*, me-*), that means Tailwind now emits
 *
 *     .ms-1 { margin-inline-start:.25rem }
 *     .ms-2 { margin-inline-start:.5rem  }
 *     .me-2 { margin-inline-end:.5rem    }
 *     .flex-nowrap { flex-wrap:nowrap    }
 *     .w-auto { width:auto               }
 *     .text-nowrap { text-wrap:nowrap    }
 *
 * natively -- visually identical to the old Bootstrap rules for this
 * left-to-right site -- so those compat rules were deleted as well.
 *
 * .bg-danger was removed together with the dead
 * .modal .modal-header.bg-danger .modal-title selector in css/main.css
 * (no PHP or JS callsite ever applies bg-danger to a modal-header).
 *
 * --- What remains ---
 *
 * Only .d-none is still defined here. It has ~30 callsites across PHP and
 * JS that toggle it via classList.add/remove or jQuery addClass/removeClass:
 *
 *   wwwroot/index.php           (3 markup sites + 2 jQuery toggles in a
 *                                <script> block)
 *   wwwroot/batch.php           (5 markup sites)
 *   wwwroot/js/batch.js         (~15 classList toggles + 1 string literal
 *                                in swal HTML at line ~2012)
 *   wwwroot/javascript.js       (5 jQuery toggles)
 *
 * Once every callsite is switched to the Tailwind equivalent .hidden
 * (functionally identical: display:none) this file can be deleted.
 *
 * Audit scripts:
 *   scripts/audit_bootstrap_classes.ps1   - PHP scan
 *   scripts/audit_deadcode_verify.ps1     - live JS / CSS scan
 *   scripts/audit_deadcode_coverage.ps1   - cross-check against defined selectors
 */

.d-none { display: none !important; }
