body { font-feature-settings: "liga"; }
.card-title { letter-spacing: 0.3px; }
.navbar-brand { font-weight: 600; }
.no-wrap-row { display: flex; flex-wrap: nowrap; gap: .75rem; overflow-x: auto; }
.no-wrap-row .quarter { min-width: 260px; flex: 0 0 25%; }
.stack-col { display: flex; flex-direction: column; gap: .75rem; }
.stack-col .quarter { flex: 0 0 100%; min-width: 0; }
.info-box { border: 1px solid rgba(255,255,255,.2); border-radius: .5rem; background: rgba(0,0,0,.15); }
.info-box .info-header { padding: .5rem .75rem; border-bottom: 1px solid rgba(255,255,255,.15); font-weight: 600; }
.info-box .info-section { padding: .5rem .75rem; border-top: 1px solid rgba(255,255,255,.08); }
.info-box .kv { margin-bottom: .35rem; }
.info-box .kv small { opacity: .85; }
.text-wrap { word-break: break-all; white-space: normal; }
.metrics { text-align: center; }
.stack-col { display: flex; flex-direction: column; gap: .75rem; }
.stack-col .quarter { flex: 0 0 100%; min-width: 0; }
/* Pull-to-refresh indicator */
#ptr { position: fixed; top: 0; left: 0; right: 0; height: 40px; background: rgba(0,0,0,.4); color: #fff; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(0); z-index: 1050; border-bottom: 1px solid rgba(255,255,255,.15); }
#ptr.success { background: rgba(0,128,0,.35); }
#ptr.error { background: rgba(128,0,0,.35); }
.loading-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); display: none; align-items: center; justify-content: center; z-index: 2000; }