/* App-specific rules on top of the shared design system (static/ds). */
.page-title { margin: 1rem 0 .25rem; font-size: 1.6rem; line-height: 1.2; }
.ph-box { display: grid; place-items: center; width: 100%; height: 100%; min-height: 160px; color: #aab4c7; background: var(--bg, #f3f5f9); }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .6rem; padding-block: 1rem 2rem; }
.photo-grid figure { margin: 0; }
.photo-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 12px; display: block; }
.photo-grid figcaption { font-size: .8rem; color: var(--ink-3); margin-top: .3rem; }
.cover { width: 100%; max-height: 360px; object-fit: cover; border-radius: 16px; display: block; }
.thumb-sm { width: 52px; height: 52px; border-radius: 10px; object-fit: cover; background: var(--bg, #f3f5f9); display: block; }
.thumb-sm.ph-box { min-height: 0; font-size: .8rem; }
.prose p { line-height: 1.65; }
.inline-form { display: inline; margin: 0; }
.row-actions { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.field-row { display: flex; gap: .75rem; align-items: flex-end; flex-wrap: wrap; }
.field-row .field { flex: 1 1 160px; }
.qr-box { width: 140px; height: 140px; flex: none; }
.qr-box img { width: 100%; height: 100%; display: block; }
.ticket-items { margin: 0; padding: 0; list-style: none; }
.ticket-meta { font-size: .85rem; color: var(--ink-3); }
.ticket .note { background: #fff7e6; border-radius: 8px; padding: .4rem .6rem; font-size: .88rem; }
.ticket-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .75rem; }
.stat-line { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px dashed var(--line); font-size: .92rem; }
.stat-line:last-child { border-bottom: 0; }
.home-hero .hero-slide { min-height: 260px; }
.pill-row { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.bars-wrap { padding-bottom: 1.6rem; }
.bars .bar { cursor: default; }
.sub-total { font-weight: 800; }
.map-frame { width: 100%; height: 260px; border: 0; border-radius: 14px; }
