/* Responsive presentation only. Bootstrap provides layout and controls. */
.page-shell,.card,.accordion-item,.accordion-body,.row>*{min-width:0}
.page-shell{width:100%}
.navbar-brand{white-space:normal;max-width:calc(100% - 70px)}
.brand-subtitle{font-size:.8rem;font-weight:400;opacity:.8}
.warning-note,.freshness,.stock-mobile-card,.crypto-mobile-card,.future-mobile-card,dd{overflow-wrap:anywhere}
.table-responsive{max-width:100%;overscroll-behavior-x:contain}
.mobile-values{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:.5rem .8rem;margin:0}
.mobile-values dt{font-weight:400;color:var(--muted)}
.mobile-values dd{margin:0;text-align:right;min-width:0}
.mobile-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.75rem}
.mobile-flags>div{background:var(--bs-tertiary-bg);border-radius:.35rem;padding:.45rem}
.mobile-flags .subtle{display:block;font-size:.8rem}
.rank-number{color:var(--muted);font-size:1.25rem}
.pagination-bar{flex-direction:row;justify-content:space-between;align-items:center}
.offcanvas-md .offcanvas-body{min-width:0}
.accordion-button .experimental{white-space:normal}
@media(min-width:768px){
 .offcanvas-md .offcanvas-body{padding:0}
 .scanner-desktop td:first-child,.scanner-desktop th:first-child{position:sticky;left:0;min-width:5rem;background:var(--bs-body-bg);z-index:3}
 .scanner-desktop td:nth-child(2),.scanner-desktop th:nth-child(2){position:sticky;left:5rem;min-width:8rem;background:var(--bs-body-bg);z-index:3}
 .scanner-desktop th:first-child,.scanner-desktop th:nth-child(2){z-index:4;background:#edf1f6}
}
@media(max-width:767.98px){
 .page-shell{padding:1rem .75rem}
 .brand-subtitle{display:block}
 .navbar>.container-fluid{padding-inline:.75rem}
 .navbar-brand{font-size:1.05rem;margin-right:.4rem}
 .btn,.nav-link,.navbar-toggler,.form-control,.form-select{min-height:44px}
 .btn{display:inline-flex;align-items:center;justify-content:center}
 .btn-close{min-width:44px;min-height:44px;padding:.25rem}
 summary{min-height:44px;padding:.5rem 0;cursor:pointer}
 .form-control,.form-select,.filters .form-control,.filters .form-select{font-size:1rem}
 .offcanvas-md{--bs-offcanvas-width:min(100vw,430px)}
 .offcanvas-body{padding:.75rem;overflow-y:auto}
 .offcanvas-body .filters{border:0;box-shadow:none}
 .offcanvas-body .card-body{padding:0}
 .offcanvas-body .form-label{font-size:.85rem}
 .table{font-size:.875rem}
 .table-scroll{max-height:60vh}
 .unknown{font-size:.875rem}
 .badge-soft{font-size:.78rem}
 .freshness{padding:.55rem .75rem;font-size:.8rem}
 .freshness-warning{padding:.55rem .75rem;font-size:.85rem}
 .freshness summary{padding:.5rem 0}
 .legend{gap:.4rem;font-size:.78rem}
 .legend>span{flex:1 1 45%}
 .accordion-body{padding:.75rem}
 .accordion-button{min-height:52px}
 .pagination-bar{gap:.4rem;padding:.75rem .5rem;font-size:.8rem}
 .pagination-bar .btn{padding:.4rem .6rem;font-size:.85rem}
 .stock-mobile-card .quality-cell{min-width:0}
}
/* Progressive fallback: navigation and filters stay available without JS. */
html:not(.js) #main-nav{display:block}
html:not(.js) .navbar-toggler,html:not(.js) .filter-opener{display:none!important}
html:not(.js) .offcanvas-md{position:static;visibility:visible;transform:none;width:100%;height:auto}
html:not(.js) .offcanvas-header{display:none}
html:not(.js) .accordion-collapse{display:block}

.freshness-stale{border-left-color:#bf8a22}.freshness .freshness-warning{padding:0;margin-top:.35rem}
