/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
/* Hallmark · genre: modern-minimal · macrostructure: Index-first control room · theme: operational ledger · tone: precise · anchor hue: cobalt · enrichment: none · nav: N9 · footer: none · contrast: pass (40–41) · slop: pass (42–45) · honest: pass (46, SilverScreen snapshot) · chrome: pass (47) · tokens: pass (48) · responsive: pass (34, 49–57) */
@import url("tokens.css");

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { overflow-x: clip; }
html { min-width: 0; background: var(--color-paper); }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-paper);
  font: 400 var(--text-base)/1.45 var(--font-body);
  text-rendering: optimizeLegibility;
}
button, input, select { font: inherit; }
button, select { cursor: pointer; }
button:disabled, input:disabled, select:disabled { cursor: not-allowed; opacity: 0.55; }
button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible {
  outline: var(--rule-strong) solid var(--color-focus);
  outline-offset: var(--space-3xs);
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { min-width: 0; overflow-wrap: anywhere; font-style: normal; }
button { min-height: 2.75rem; transition: transform var(--dur-micro) var(--ease-out); }
button:active { transform: translateY(1px); }
button:disabled:active { transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: clip; clip-path: inset(50%); white-space: nowrap; border: 0; }
.view { animation: view-in var(--dur-medium) var(--ease-out) both; }

.topbar {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  height: var(--topbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding-inline: max(var(--space-sm), calc((100% - var(--content-max)) / 2));
  background: var(--color-paper-raised);
  border-bottom: var(--rule-thin) solid var(--color-rule);
}
.brand { display: flex; align-items: baseline; gap: var(--space-xs); color: inherit; text-decoration: none; white-space: nowrap; }
.brand strong { font: 800 var(--text-lg)/1 var(--font-display); }
.brand span { color: var(--color-muted); font-size: var(--text-sm); }
.topbar__context { display: flex; align-items: center; gap: var(--space-sm); min-width: 0; }
.demo-label { padding: var(--space-3xs) var(--space-2xs); color: var(--color-accent-strong); background: var(--color-accent-soft); border: var(--rule-thin) solid var(--color-accent); border-radius: var(--radius-xs); font: 600 var(--text-xs)/1.4 var(--font-data); white-space: nowrap; }
.freshness { display: flex; align-items: center; gap: var(--space-2xs); color: var(--color-muted); font-size: var(--text-sm); white-space: nowrap; }
.freshness i { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--color-positive); }
.freshness.is-error i { background: var(--color-critical); }

.app-shell { width: min(calc(100% - 2rem), var(--content-max)); margin-inline: auto; padding: var(--space-xl) 0 var(--space-2xl); }
.page-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-lg); margin-bottom: var(--space-lg); }
.page-head h1 { margin-bottom: var(--space-2xs); font: 750 var(--text-2xl)/1 var(--font-display); }
.page-head p { margin-bottom: 0; color: var(--color-muted); }
.scope-line { margin-bottom: var(--space-xs) !important; color: var(--color-accent-strong) !important; font: 600 var(--text-xs)/1.3 var(--font-data); text-transform: uppercase; }
.period-switch, .session-tabs { display: inline-grid; grid-auto-flow: column; padding: var(--space-3xs); background: var(--color-paper-muted); border: var(--rule-thin) solid var(--color-rule); border-radius: var(--radius-sm); }
.period-switch button, .session-tabs button { min-height: 2.25rem; padding: 0 var(--space-sm); color: var(--color-muted); background: var(--color-transparent); border: 0; border-radius: var(--radius-xs); white-space: nowrap; transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out); }
.period-switch button:hover, .session-tabs button:hover { color: var(--color-ink); }
.period-switch button:active, .session-tabs button:active { transform: translateY(1px); }
.period-switch button.is-active, .session-tabs button.is-active { color: var(--color-ink); background: var(--color-paper-raised); box-shadow: 0 1px 3px var(--color-shadow); }

.catalog-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: var(--space-lg); border-top: var(--rule-thin) solid var(--color-rule); border-bottom: var(--rule-thin) solid var(--color-rule); }
.catalog-tab { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); min-width: 0; padding: var(--space-sm); color: var(--color-muted); background: var(--color-transparent); border: 0; border-right: var(--rule-thin) solid var(--color-rule); white-space: nowrap; }
.catalog-tab:last-child { border-right: 0; }
.catalog-tab:hover { color: var(--color-ink); background: var(--color-paper-muted); }
.catalog-tab.is-active { color: var(--color-accent-strong); background: var(--color-accent-soft); box-shadow: inset 0 calc(var(--rule-strong) * -1) 0 var(--color-accent); }
.catalog-tab strong { font: 600 var(--text-sm)/1 var(--font-data); }

.metric-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: var(--space-lg); background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); }
.metric { min-width: 0; padding: var(--space-md); border-right: var(--rule-thin) solid var(--color-rule); }
.metric:last-child { border-right: 0; }
.metric-strip > .empty-state { grid-column: 1 / -1; }
.metric span, .metric small { display: block; color: var(--color-muted); }
.metric span { margin-bottom: var(--space-xs); font-size: var(--text-sm); }
.metric strong { display: block; margin-bottom: var(--space-3xs); font: 700 var(--text-xl)/1 var(--font-data); letter-spacing: 0; }
.metric small { font-size: var(--text-xs); }
.metric--critical strong { color: var(--color-critical); }

.filter-bar { display: grid; grid-template-columns: minmax(13rem, 1.5fr) repeat(3, minmax(10rem, 0.8fr)) auto; align-items: end; gap: var(--space-xs); margin-bottom: var(--space-lg); padding: var(--space-sm); background: var(--color-paper-muted); border-top: var(--rule-thin) solid var(--color-rule); border-bottom: var(--rule-thin) solid var(--color-rule); }
.filter-bar label { display: grid; gap: var(--space-3xs); min-width: 0; }
.filter-bar label > span { color: var(--color-muted); font-size: var(--text-xs); }
.filter-bar input, .filter-bar select, .sort-control select { width: 100%; min-width: 0; height: 2.75rem; padding: 0 var(--space-xs); color: var(--color-ink); background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule-strong); border-radius: var(--radius-sm); }
.filter-bar input:hover, .filter-bar select:hover, .sort-control select:hover { border-color: var(--color-accent); }
.search-field { align-self: end; }
.reset-button { padding: 0 var(--space-sm); color: var(--color-ink-soft); background: var(--color-transparent); border: var(--rule-thin) solid var(--color-rule-strong); border-radius: var(--radius-sm); white-space: nowrap; transition: border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out); }
.reset-button:hover { color: var(--color-accent-strong); border-color: var(--color-accent); }
.reset-button:active { transform: translateY(1px); }

.board-layout { display: grid; grid-template-columns: var(--rail-width) minmax(0, 1fr); align-items: start; gap: var(--space-lg); }
.decision-rail { position: sticky; top: calc(var(--topbar-height) + var(--space-sm)); max-height: calc(100vh - var(--topbar-height) - var(--space-lg)); overflow: auto; padding-right: var(--space-xs); scrollbar-width: thin; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-md); margin-bottom: var(--space-sm); }
.section-head h2 { margin-bottom: var(--space-3xs); font: 700 var(--text-lg)/1.1 var(--font-display); }
.section-head p { margin-bottom: 0; color: var(--color-muted); font-size: var(--text-sm); }
.section-head--compact h2 { font-size: var(--text-md); }
.decision-list { display: grid; gap: var(--space-xs); }
.decision-item { width: 100%; min-height: 0; padding: var(--space-sm); text-align: left; color: var(--color-ink); background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); border-left: var(--rule-strong) solid var(--signal-color); border-radius: var(--radius-sm); transition: border-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out); }
.decision-item:hover { border-color: var(--signal-color); }
.decision-item:active { transform: translateY(1px); }
.decision-item__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); margin-bottom: var(--space-xs); }
.decision-item__meta span { color: var(--signal-color); font: 600 var(--text-xs)/1.2 var(--font-data); text-transform: uppercase; }
.decision-item__meta small { color: var(--color-muted); }
.decision-item__body { display: flex; align-items: center; gap: var(--space-xs); min-width: 0; margin-bottom: var(--space-xs); }
.decision-item__copy { min-width: 0; }
.decision-item__copy strong, .decision-item__copy > span { display: block; overflow: hidden; text-overflow: ellipsis; }
.decision-item__copy strong { margin-bottom: var(--space-2xs); font-size: var(--text-base); white-space: nowrap; }
.decision-item__copy > span { color: var(--color-ink-soft); font-size: var(--text-sm); white-space: nowrap; }
.decision-item__action { color: var(--color-muted); font-size: var(--text-xs); }

.poster { position: relative; flex: 0 0 auto; display: inline-grid; place-items: center; overflow: hidden; color: var(--color-muted); background: var(--color-paper-strong); border: var(--rule-thin) solid var(--color-rule); border-radius: var(--radius-xs); }
.poster--small { width: 2.5rem; height: 3.5rem; }
.poster--large { width: 6.75rem; height: 9.5rem; }
.poster__fallback { font: 700 var(--text-md)/1 var(--font-display); }
.poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.portfolio { min-width: 0; }
.sort-control { display: flex; align-items: center; gap: var(--space-xs); }
.sort-control span { color: var(--color-muted); font-size: var(--text-xs); }
.sort-control select { width: 11rem; height: 2.5rem; }
.portfolio-table { min-width: 0; background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); }
.table-row { display: grid; grid-template-columns: minmax(13rem, 1.7fr) 4.5rem 5.5rem 6.5rem 6.5rem 5.5rem minmax(8.5rem, 1fr) 2.75rem; align-items: center; min-height: 4.75rem; border-bottom: var(--rule-thin) solid var(--color-rule); }
.table-row:last-child { border-bottom: 0; }
.table-row--head { min-height: 2.75rem; color: var(--color-muted); background: var(--color-paper-muted); font-size: var(--text-xs); }
.table-row > * { min-width: 0; padding: var(--space-xs); }
.table-row--film { position: relative; cursor: pointer; transition: background-color var(--dur-short) var(--ease-out); }
.table-row--film:hover, .table-row--film:focus-visible { background: var(--color-accent-soft); }
.film-cell { display: flex; align-items: center; gap: var(--space-xs); }
.signal-bar { width: 0.25rem; align-self: stretch; min-height: 2.5rem; background: var(--signal-color); border-radius: var(--radius-xs); }
.film-cell > div { min-width: 0; }
.film-cell strong, .film-cell > div > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.film-cell > div > span { margin-top: var(--space-3xs); color: var(--color-muted); font-size: var(--text-xs); }
.data-cell { font: 600 var(--text-sm)/1.2 var(--font-data); }
.data-cell small { display: block; margin-top: var(--space-3xs); color: var(--color-muted); font: 400 var(--text-xs)/1.2 var(--font-body); }
.trend-cell { display: flex; align-items: center; gap: var(--space-xs); }
.mini-trend { display: flex; align-items: end; gap: 2px; width: 3rem; height: 1.75rem; }
.mini-trend i { flex: 1; min-height: 2px; height: var(--bar); background: var(--signal-color); opacity: 0.72; }
.signal-pill { display: inline-flex; align-items: center; max-width: 100%; padding: var(--space-3xs) var(--space-2xs); color: var(--signal-color); background: var(--signal-soft); border-radius: var(--radius-xs); font-size: var(--text-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.row-arrow { color: var(--color-muted); font-size: var(--text-md); text-align: center; }
.empty-state { padding: var(--space-xl); color: var(--color-muted); text-align: center; }
.empty-state strong { display: block; margin-bottom: var(--space-2xs); color: var(--color-ink); }

.back-button { margin-bottom: var(--space-md); padding: 0; color: var(--color-accent-strong); background: var(--color-transparent); border: 0; font-weight: 600; white-space: nowrap; }
.back-button span { margin-right: var(--space-2xs); }
.back-button:hover { color: var(--color-accent); }
.film-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-lg); margin-bottom: var(--space-lg); padding-bottom: var(--space-md); border-bottom: var(--rule-strong) solid var(--color-ink); }
.film-head__identity { display: flex; align-items: end; gap: var(--space-md); min-width: 0; }
.film-head__title { min-width: 0; }
.film-head__title > span { display: block; margin-bottom: var(--space-xs); color: var(--color-muted); font: 600 var(--text-xs)/1.3 var(--font-data); text-transform: uppercase; }
.film-head h1 { max-width: 22ch; margin-bottom: var(--space-2xs); font: 750 var(--text-2xl)/1 var(--font-display); }
.film-head p { margin-bottom: 0; color: var(--color-muted); }
.recommendation { max-width: 30rem; padding: var(--space-sm) var(--space-md); background: var(--signal-soft); border-left: var(--rule-strong) solid var(--signal-color); }
.recommendation span { display: block; margin-bottom: var(--space-2xs); color: var(--signal-color); font: 600 var(--text-xs)/1.3 var(--font-data); text-transform: uppercase; }
.recommendation strong { font-size: var(--text-base); }
.metric-strip--film { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.film-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.34fr); align-items: start; gap: var(--space-lg); }
.film-primary { min-width: 0; }
.analysis-section { margin-bottom: var(--space-xl); }
.trend-chart { height: 16rem; display: grid; grid-template-columns: repeat(var(--columns, 7), minmax(0, 1fr)); align-items: end; gap: var(--space-xs); padding: var(--space-md) var(--space-md) 0; background: repeating-linear-gradient(to top, var(--color-rule) 0, var(--color-rule) 1px, var(--color-transparent) 1px, var(--color-transparent) 25%); border: var(--rule-thin) solid var(--color-rule); border-top: 0; }
.trend-column { height: 100%; display: grid; grid-template-rows: 1fr auto; align-items: end; gap: var(--space-xs); }
.trend-column__bar { position: relative; min-height: 0.5rem; height: var(--height); background: var(--color-accent); }
.trend-column__bar strong { position: absolute; top: -1.6rem; left: 50%; transform: translateX(-50%); font: 600 var(--text-xs)/1 var(--font-data); }
.trend-column span { padding-bottom: var(--space-xs); color: var(--color-muted); font-size: var(--text-xs); text-align: center; }
.trend-column span small { display: block; margin-top: var(--space-3xs); font-size: var(--text-xs); }
.cinema-performance { background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); }
.cinema-row { display: grid; grid-template-columns: minmax(9rem, 1fr) minmax(10rem, 1.6fr) 5rem 7rem; align-items: center; min-height: 4rem; border-bottom: var(--rule-thin) solid var(--color-rule); }
.cinema-row:last-child { border-bottom: 0; }
.cinema-row > * { min-width: 0; padding: var(--space-sm); }
.cinema-row strong { font-size: var(--text-sm); }
.cinema-row__meter { height: 0.5rem; background: var(--color-paper-strong); }
.cinema-row__meter i { display: block; width: var(--meter); height: var(--space-2xs); background: var(--color-accent); }
.cinema-row__value { font: 600 var(--text-sm)/1 var(--font-data); text-align: right; }
.cinema-row__meta { color: var(--color-muted); font-size: var(--text-xs); text-align: right; }
.evidence-panel { position: sticky; top: calc(var(--topbar-height) + var(--space-sm)); padding: var(--space-md); background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); border-top: 0.25rem solid var(--signal-color); }
.evidence-call { margin-bottom: var(--space-md); padding-bottom: var(--space-md); border-bottom: var(--rule-thin) solid var(--color-rule); }
.evidence-call span { display: block; margin-bottom: var(--space-2xs); color: var(--signal-color); font: 600 var(--text-xs)/1.3 var(--font-data); text-transform: uppercase; }
.evidence-call strong { font-size: var(--text-md); line-height: 1.3; }
.evidence-list { display: grid; gap: var(--space-sm); margin: 0; padding: 0; list-style: none; }
.evidence-list li { position: relative; padding-left: var(--space-md); color: var(--color-ink-soft); font-size: var(--text-sm); }
.evidence-list li::before { content: ""; position: absolute; top: 0.5rem; left: 0; width: 0.5rem; height: var(--rule-strong); background: var(--signal-color); }
.confidence { margin: var(--space-md) 0 0; padding-top: var(--space-sm); color: var(--color-muted); border-top: var(--rule-thin) solid var(--color-rule); font-size: var(--text-xs); }
.daypart-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: var(--rule-thin) solid var(--color-rule); }
.daypart { min-width: 0; padding: var(--space-md); background: var(--color-paper-raised); border-right: var(--rule-thin) solid var(--color-rule); }
.daypart:last-child { border-right: 0; }
.daypart__head { display: flex; justify-content: space-between; gap: var(--space-xs); margin-bottom: var(--space-lg); }
.daypart__head span { color: var(--color-muted); font-size: var(--text-xs); }
.daypart strong { display: block; font: 700 var(--text-xl)/1 var(--font-data); }
.daypart__meter { height: 0.5rem; margin: var(--space-sm) 0 var(--space-xs); background: var(--color-paper-strong); }
.daypart__meter i { display: block; width: var(--meter); height: 100%; background: var(--meter-color); }
.daypart small { color: var(--color-muted); }

.session-table { background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); }
.session-row { position: relative; display: grid; grid-template-columns: 6rem minmax(10rem, 1.4fr) 8rem 7rem minmax(9rem, 1fr) 7rem 2.75rem; align-items: center; min-height: 4.25rem; border-bottom: var(--rule-thin) solid var(--color-rule); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out); }
.session-row:last-child { border-bottom: 0; }
.session-row--head { min-height: 2.5rem; color: var(--color-muted); background: var(--color-paper-muted); font-size: var(--text-xs); cursor: default; }
.session-row:not(.session-row--head):hover, .session-row:not(.session-row--head):focus-visible { background: var(--color-accent-soft); }
.session-row:not(.session-row--head):active, .table-row--film:active { transform: translateY(1px); }
.session-row > * { min-width: 0; padding: var(--space-xs); }
.session-time strong, .session-time span { display: block; }
.session-time strong { font: 700 var(--text-md)/1 var(--font-data); }
.session-time span, .session-meta { margin-top: var(--space-3xs); color: var(--color-muted); font-size: var(--text-xs); }
.session-occupancy { font: 700 var(--text-md)/1 var(--font-data); color: var(--zone-color); }
.session-meter { height: 0.5rem; background: var(--color-paper-strong); }
.session-meter i { display: block; width: var(--meter); height: var(--space-2xs); background: var(--zone-color); }
.session-status { display: inline-flex; align-items: center; gap: var(--space-2xs); color: var(--zone-color); font-size: var(--text-xs); }
.session-status i { width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--zone-color); }

.drawer-backdrop { position: fixed; inset: 0; z-index: calc(var(--z-drawer) - 1); background: var(--color-overlay); }
.session-drawer { position: fixed; top: 0; right: 0; z-index: var(--z-drawer); width: min(30rem, 100%); height: 100dvh; overflow: auto; padding: var(--space-lg); background: var(--color-paper-raised); box-shadow: -1rem 0 3rem var(--color-shadow); transform: translateX(100%); transition: transform var(--dur-medium) var(--ease-out); }
.session-drawer.is-open { transform: translateX(0); }
.session-drawer > header { display: flex; align-items: start; justify-content: space-between; gap: var(--space-md); margin-bottom: var(--space-lg); padding-bottom: var(--space-md); border-bottom: var(--rule-thin) solid var(--color-rule); }
.session-drawer header span { color: var(--color-muted); font-size: var(--text-xs); }
.session-drawer h2 { margin: var(--space-2xs) 0 0; font: 700 var(--text-lg)/1.1 var(--font-display); }
.icon-button { width: 2.75rem; padding: 0; color: var(--color-ink-soft); background: var(--color-paper-muted); border: var(--rule-thin) solid var(--color-rule); border-radius: var(--radius-sm); font-size: var(--text-lg); }
.icon-button:hover { color: var(--color-critical); border-color: var(--color-critical); }
.drawer-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--space-lg); border: var(--rule-thin) solid var(--color-rule); }
.drawer-summary div { padding: var(--space-sm); border-right: var(--rule-thin) solid var(--color-rule); border-bottom: var(--rule-thin) solid var(--color-rule); }
.drawer-summary div:nth-child(even) { border-right: 0; }
.drawer-summary div:nth-last-child(-n + 2) { border-bottom: 0; }
.drawer-summary span, .drawer-summary strong { display: block; }
.drawer-summary span { margin-bottom: var(--space-2xs); color: var(--color-muted); font-size: var(--text-xs); }
.drawer-summary strong { font: 600 var(--text-md)/1.2 var(--font-data); }
.drawer-note { padding: var(--space-md); background: var(--signal-soft); border-left: var(--rule-strong) solid var(--signal-color); }
.drawer-note span { display: block; margin-bottom: var(--space-2xs); color: var(--signal-color); font: 600 var(--text-xs)/1.3 var(--font-data); text-transform: uppercase; }
.drawer-note p { margin-bottom: 0; }
.snapshot-note { margin-top: var(--space-lg); color: var(--color-muted); font-size: var(--text-xs); }

@keyframes view-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media (max-width: 80rem) {
  .metric-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metric:nth-child(3) { border-right: 0; }
  .metric:nth-child(n + 4) { border-top: var(--rule-thin) solid var(--color-rule); }
  .filter-bar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .search-field { grid-column: span 2; }
  .reset-button { grid-column: span 1; }
  .table-row { grid-template-columns: minmax(12rem, 1.5fr) 4rem 5rem 5.5rem 5.5rem minmax(8rem, 1fr) 2.75rem; }
  .table-row > :nth-child(5) { display: none; }
  .metric-strip--film { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 64rem) {
  .board-layout, .film-layout { grid-template-columns: minmax(0, 1fr); }
  .decision-rail, .evidence-panel { position: static; max-height: none; padding-right: 0; }
  .decision-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .film-layout .evidence-panel { grid-row: 1; }
  .filter-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .search-field { grid-column: span 2; }
  .table-row { grid-template-columns: minmax(12rem, 1.5fr) 4rem 5.5rem 5.5rem minmax(8rem, 1fr) 2.75rem; }
  .table-row > :nth-child(4) { display: none; }
  .session-row { grid-template-columns: 5.5rem minmax(9rem, 1.3fr) 7rem 6rem minmax(8rem, 1fr) 2.75rem; }
  .session-row > :nth-child(4) { display: none; }
}

@media (max-width: 48rem) {
  .app-shell { width: min(calc(100% - 1.5rem), var(--content-max)); padding-top: var(--space-lg); }
  .topbar { padding-inline: var(--space-xs); }
  .brand span, .freshness { display: none; }
  .page-head, .film-head, .section-head { align-items: stretch; flex-direction: column; }
  .film-head__identity { align-items: center; }
  .film-head .poster--large { width: 5rem; height: 7rem; }
  .catalog-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-tab:nth-child(2) { border-right: 0; }
  .catalog-tab:nth-child(n + 3) { border-top: var(--rule-thin) solid var(--color-rule); }
  .period-switch { width: 100%; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  .period-switch button { padding-inline: var(--space-2xs); }
  .metric-strip, .metric-strip--film { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric, .metric:nth-child(3) { border-right: var(--rule-thin) solid var(--color-rule); border-top: var(--rule-thin) solid var(--color-rule); }
  .metric:nth-child(-n + 2) { border-top: 0; }
  .metric:nth-child(even) { border-right: 0; }
  .filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-field { grid-column: span 2; }
  .reset-button { grid-column: span 2; }
  .decision-list { grid-template-columns: minmax(0, 1fr); }
  .portfolio-table { border: 0; background: var(--color-transparent); }
  .table-row--head { display: none; }
  .table-row--film { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-xs); margin-bottom: var(--space-xs); padding: var(--space-sm); background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); border-left: 0.25rem solid var(--signal-color); border-radius: var(--radius-sm); }
  .table-row--film > * { display: block !important; padding: 0; }
  .table-row--film .film-cell { grid-column: 1 / 3; display: flex !important; }
  .table-row--film .signal-bar { display: none !important; }
  .table-row--film > :nth-child(2)::before { content: "Неделя "; color: var(--color-muted); font-family: var(--font-body); font-weight: 400; }
  .table-row--film > :nth-child(3)::before { content: "Сеансы "; color: var(--color-muted); font-family: var(--font-body); font-weight: 400; }
  .table-row--film > :nth-child(4), .table-row--film > :nth-child(5) { display: none !important; }
  .table-row--film .trend-cell { display: flex !important; }
  .table-row--film .row-arrow { position: absolute; right: var(--space-sm); top: var(--space-sm); }
  .film-head h1 { font-size: var(--text-xl); }
  .recommendation { max-width: none; }
  .trend-chart { height: 13rem; padding-inline: var(--space-xs); gap: var(--space-3xs); }
  .trend-column__bar strong { font-size: 0.625rem; }
  .cinema-row { grid-template-columns: minmax(7rem, 1fr) minmax(7rem, 1.2fr) 4rem; }
  .cinema-row > :last-child { display: none; }
  .daypart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .daypart:nth-child(2) { border-right: 0; }
  .daypart:nth-child(n + 3) { border-top: var(--rule-thin) solid var(--color-rule); }
  .sessions-section .section-head { gap: var(--space-sm); }
  .session-tabs { width: 100%; grid-auto-columns: minmax(0, 1fr); }
  .session-tabs button { padding-inline: var(--space-2xs); }
  .session-table { border: 0; background: var(--color-transparent); }
  .session-row--head { display: none; }
  .session-row:not(.session-row--head) { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-sm); margin-bottom: var(--space-xs); padding: var(--space-sm); background: var(--color-paper-raised); border: var(--rule-thin) solid var(--color-rule); border-left: var(--rule-strong) solid var(--zone-color); border-radius: var(--radius-sm); }
  .session-row:not(.session-row--head) > * { padding: 0; }
  .session-row:not(.session-row--head) .session-time { grid-column: 1; }
  .session-row:not(.session-row--head) > :nth-child(2) { grid-column: 1; }
  .session-row:not(.session-row--head) > :nth-child(3) { position: absolute; right: var(--space-sm); top: var(--space-sm); }
  .session-row:not(.session-row--head) > :nth-child(4), .session-row:not(.session-row--head) > :nth-child(5), .session-row:not(.session-row--head) > :nth-child(6) { display: none; }
  .session-row:not(.session-row--head) > :last-child { grid-column: 2; grid-row: 1 / 3; align-self: center; }
}

@media (max-width: 24rem) {
  .metric-strip, .metric-strip--film, .filter-bar, .daypart-grid { grid-template-columns: minmax(0, 1fr); }
  .metric, .metric:nth-child(3), .metric:nth-child(even) { border-right: 0; border-top: var(--rule-thin) solid var(--color-rule); }
  .metric:first-child { border-top: 0; }
  .search-field, .reset-button { grid-column: span 1; }
  .daypart { border-right: 0; border-top: var(--rule-thin) solid var(--color-rule); }
  .daypart:first-child { border-top: 0; }
  .period-switch button, .session-tabs button { font-size: var(--text-xs); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
