/* Food Inspections Lookup — inherits the theme's fonts and text colour */
.fi { --fi-line: rgba(127,127,127,.28); --fi-soft: rgba(127,127,127,.08); --fi-muted-o: .72;
      --fi-crit: #d64545; --fi-non: #e0a800; --fi-ok: #2e9d57; --fi-closed: #6b1f1f; margin: 1.5em 0; }
.fi *, .fi *::before, .fi *::after { box-sizing: border-box; }
.fi-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fi-search { display: flex; gap: .5em; flex-wrap: wrap; margin: 0 0 .6em; }
.fi-q { flex: 1 1 260px; min-width: 0; padding: .6em .8em; font: inherit; border: 1px solid var(--fi-line); border-radius: 8px; background: transparent; color: inherit; }
.fi-town { flex: 0 1 220px; padding: .6em .8em; font: inherit; border: 1px solid var(--fi-line); border-radius: 8px; background: transparent; color: inherit; }
.fi-town option { color: #111; }
.fi-legend { display: flex; flex-wrap: wrap; gap: .4em 1.1em; font-size: .85em; opacity: var(--fi-muted-o); margin-bottom: 1em; }
.fi-legend span { display: inline-flex; align-items: center; gap: .35em; }
.fi-dot { display: inline-block; width: .8em; height: .8em; border-radius: 50%; flex: none; background: var(--fi-line); vertical-align: middle; }
.fi-dot.fi-critical { background: var(--fi-crit); }
.fi-dot.fi-noncritical { background: var(--fi-non); }
.fi-dot.fi-clean { background: var(--fi-ok); }
.fi-dot.fi-closed { background: var(--fi-closed); box-shadow: 0 0 0 2px var(--fi-crit) inset; }
.fi-h { margin: .4em 0 .6em; font-size: 1.15em; display: flex; align-items: center; gap: .4em; }
.fi-muted { opacity: var(--fi-muted-o); }
.fi-error { color: var(--fi-crit); }
.fi-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fi-line); }
.fi-list li { border-bottom: 1px solid var(--fi-line); margin: 0; }
.fi-item { display: flex; gap: .75em; align-items: flex-start; padding: .75em .4em; text-decoration: none !important; color: inherit !important; border-radius: 6px; }
.fi-item:hover, .fi-item:focus-visible { background: var(--fi-soft); }
.fi-item .fi-dot { margin-top: .35em; }
.fi-item-main { display: flex; flex-direction: column; gap: .1em; min-width: 0; }
.fi-meta { font-size: .9em; }
.fi-back { font: inherit; background: none; border: 1px solid var(--fi-line); border-radius: 6px; padding: .35em .8em; cursor: pointer; color: inherit; margin-bottom: .6em; }
.fi-back:hover { background: var(--fi-soft); }
.fi-summary { margin: .4em 0 1em; }
.fi-timeline { list-style: none; margin: 0; padding: 0 0 0 .4em; border-left: 2px solid var(--fi-line); }
.fi-timeline > li { position: relative; margin: 0 0 1.1em; padding-left: 1em; }
.fi-ev-head { display: flex; flex-wrap: wrap; align-items: center; gap: .1em .4em; margin-left: -1.62em; }
.fi-ev-head .fi-dot { width: 1em; height: 1em; box-shadow: 0 0 0 3px var(--fi-bg, #fff); }
.fi-inf { margin: .4em 0 0; padding-left: 1.1em; }
.fi-inf li { margin: .2em 0; }
.fi-action { margin: .3em 0 0; font-weight: 600; }
.fi-action.fi-bad { color: var(--fi-crit); }
.fi-action.fi-good { color: var(--fi-ok); }
.fi-disclaimer { font-size: .82em; opacity: var(--fi-muted-o); margin-top: 1.4em; }
@media (prefers-color-scheme: dark) { .fi { --fi-bg: #111; } }
.fi-updated { font-size: .85em; opacity: var(--fi-muted-o); margin: -.2em 0 .5em; }
