.alert.warning {
  background: #fff1d8;
  color: #7c4c12;
}

.project-list article {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.error-panel {
  border-left: 5px solid var(--danger);
}

.llm-suggestion { margin-top: 1.25rem; }
.suggestion-card { display: flex; flex-direction: column; gap: .35rem; padding: 1rem; border: 1px solid var(--border, #d8d4ca); border-radius: .75rem; }
.suggestion-card p { margin: 0; }
.suggestion-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .75rem; }
.suggestion-fields div { padding: .75rem; background: var(--surface-muted, #f5f3ed); border-radius: .5rem; }
.suggestion-fields dt { color: var(--muted, #65615a); font-size: .85rem; }
.suggestion-fields dd { margin: .25rem 0 0; font-weight: 650; }
.notice { padding: .8rem 1rem; border-left: .3rem solid #c57a19; background: #fff4df; }
.mono { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .85rem; }
.badge.online, .badge.succeeded { background: #dcefe3; color: #205c35; }
.badge.offline, .badge.deferred, .badge.invalid { background: #f8e2d9; color: #823820; }
.badge.queued, .badge.running, .badge.unknown { background: #e5eaf5; color: #334b7d; }
.badge.ready { background: #e7eef8; color: #294c6b; }
.badge.equipment-active { background: #dcefe8; color: #185542; }
.badge.equipment-repair { background: #fff1d8; color: #7c4c12; }
.badge.equipment-stolen { background: #fae5e2; color: var(--danger); }
.badge.equipment-retired { background: #eceeed; color: #56615e; }
.workflow-card { display: grid; grid-template-columns: minmax(190px, .4fr) 1fr; gap: 2rem; align-items: center; }
.workflow-card h2 { margin-bottom: 0; }
.workflow-bars { display: grid; gap: .65rem; }
.workflow-row { display: grid; grid-template-columns: minmax(150px, .45fr) 1fr 2.5rem; gap: .75rem; align-items: center; }
.workflow-row > span { color: var(--muted); font-size: .88rem; }
.workflow-row > strong { text-align: right; }
.workflow-track { height: .6rem; overflow: hidden; border-radius: 999px; background: #edf0ee; }
.workflow-track i { display: block; width: var(--meter-width); height: 100%; border-radius: inherit; transform-origin: left; animation: meter-in .7s cubic-bezier(.2,.8,.2,1) both; }
.workflow-track .questions { background: #d98d3f; }
.workflow-track .recognized { background: #668ab3; animation-delay: .08s; }
.workflow-track .done { background: #4c8a75; animation-delay: .16s; }
@keyframes meter-in { from { transform: scaleX(0); opacity: .35; } to { transform: scaleX(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .workflow-track i { animation: none; } }
.chart-list { display: grid; gap: .7rem; }
.chart-row { display: grid; grid-template-columns: minmax(150px, .55fr) minmax(180px, 1fr) 4rem 6rem; gap: .8rem; align-items: center; }
.chart-row.compact { grid-template-columns: minmax(145px, .6fr) 1fr 4rem; }
.chart-row > span, .chart-row > a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chart-row > a { color: var(--brand); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.chart-row > strong, .chart-row > small { text-align: right; }
.chart-row > small { color: var(--muted); }
.chart-track { height: .75rem; overflow: hidden; border-radius: 999px; background: #edf0ee; }
.chart-track i { display: block; width: var(--chart-width); height: 100%; border-radius: inherit; background: var(--brand); transform-origin: left; animation: meter-in .7s cubic-bezier(.2,.8,.2,1) both; }
.chart-track .price-reduced, .chart-track .funding-funded, .chart-track .support-funded { background: var(--accent); }
.chart-track .price-free, .chart-track .support-full_funding { background: #b85832; }
.chart-track .support-internal { background: #6f6564; }
.chart-track .support-other_support { background: #9a7780; }
.chart-track .support-unknown { background: #a9a19c; }
@media (prefers-reduced-motion: reduce) { .chart-track i { animation: none; } }
.point-chart-scroll { overflow-x: auto; }
.point-chart { display: block; min-width: 780px; width: 100%; }
.point-grid line { stroke: #ece6e3; stroke-width: .7; }
.point-grid .axis-line { stroke: #bdb3ae; stroke-width: 1; }
.point-grid text { fill: var(--muted); font-family: system-ui, sans-serif; font-size: 9px; }
.point-grid .axis-tick { text-anchor: end; }
.point-grid .axis-title { font-size: 9.5px; font-weight: 650; }
.point-grid .x-title { text-anchor: end; }
.point-line { fill: none; opacity: .88; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; stroke-dasharray: 1; stroke-dashoffset: 1; animation: point-line-in .9s cubic-bezier(.2,.8,.2,1) forwards; }
.point-line.rentals { stroke: var(--brand2); }
.point-line.internal { stroke: var(--accent); stroke-width: 1.2; }
.point-node circle { stroke: #fff; stroke-width: 1.2; transform-box: fill-box; transform-origin: center; animation: point-node-in .35s cubic-bezier(.2,.8,.2,1) both; animation-delay: var(--point-delay); transition: r .16s ease, opacity .16s ease; }
.point-node circle.rental { fill: var(--brand2); }
.point-node circle.internal { fill: var(--accent); }
.point-node circle:hover, .point-node circle:focus { opacity: .72; outline: none; r: 5.5px; }
.point-node text { fill: var(--muted); font-size: 13px; pointer-events: none; text-anchor: middle; }
.point-node .point-value { font-size: 8.5px; font-weight: 700; opacity: .78; transition: opacity .16s ease; }
.point-node .rental-value { fill: var(--brand2); }
.point-node .internal-value { fill: #9b5d10; }
.point-node .point-month { font-size: 9.5px; font-weight: 500; }
.point-node:hover .point-value, .point-node:focus-within .point-value { opacity: 1; }
.point-legend { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; justify-content: space-between; }
.point-legend span { align-items: center; display: inline-flex; font-weight: 650; gap: .45rem; }
.point-legend i { border-radius: 50%; display: inline-block; height: .7rem; width: .7rem; }
.point-legend .rentals i { background: var(--brand2); }
.point-legend .internal i { background: #d98d3f; }
.point-legend small { color: var(--muted); }
@keyframes point-line-in { to { stroke-dashoffset: 0; } }
@keyframes point-node-in { from { opacity: 0; transform: scale(.2); } to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .point-line, .point-node circle { animation: none; stroke-dashoffset: 0; } }
.button-row { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.filter .checkbox { max-width: none; }
.alert.warning { background: #fff1d8; color: #70430e; }
.alert.warning ul { margin-bottom: 0; }
.alert.recognized { background: #e7eef8; color: #294c6b; }
.report-deep-dive { margin: 2rem 0 .75rem; }
.report-detail { margin-bottom: .8rem; }
.report-detail > summary { cursor: pointer; font-size: 1.05rem; font-weight: 700; list-style-position: outside; }
.report-detail > summary span { color: var(--muted); font-size: .85rem; font-weight: 400; margin-left: .5rem; }
.report-detail[open] > summary { border-bottom: 1px solid var(--border, #d8d4ca); margin-bottom: 1rem; padding-bottom: .8rem; }
.report-detail .panel { box-shadow: none; }
.sort-button { align-items: center; background: transparent; border: 0; color: inherit; cursor: pointer; display: inline-flex; font: inherit; gap: .35rem; padding: 0; text-align: left; }
th[aria-sort="ascending"] .sort-button::after { content: "↑"; }
th[aria-sort="descending"] .sort-button::after { content: "↓"; }

.page { max-width: 1900px; }
.review-layout { grid-template-columns: minmax(620px, .95fr) minmax(720px, 1.05fr); }
.pdf-column { align-self: start; position: sticky; top: 18px; }
.pdf-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .65rem; }
.pdf-actions form { margin: 0; }
.planning-table input, .planning-table select { margin-top: 0; min-width: 6.5rem; padding: .5rem .6rem; }
.planning-table td:first-child input { min-width: 12rem; }
.planning-table .planning-actions { white-space: nowrap; }
.planning-table .planning-actions form { display: inline; margin: 0; }
.badge.quality-warning { background: #f4e2c9; color: #70430e; }
.badge.quality-question { background: #e7eef8; color: #294c6b; }
.badge.quality-info { background: #eceeed; color: #4f5c58; }
.merge-warning { margin-top: 1rem; max-width: 48rem; }
.pdf-panel { height: calc(100vh - 92px); position: static; }
.review-layout.preview-expanded { grid-template-columns: minmax(0, 1fr); }
.review-layout.preview-expanded .pdf-column { position: static; }
.review-layout.preview-expanded .pdf-panel { height: min(86vh, 1100px); }

.file-drop { display: grid; gap: .4rem; min-height: 9rem; place-content: center; text-align: center; transition: .15s ease; }
.file-drop span, .file-drop small { color: var(--muted); font-weight: 400; }
.file-drop input { margin: .35rem auto 0; width: auto; }
.file-drop.drag-active { background: #e5f1ed; border-color: var(--brand2); transform: scale(1.005); }

.cards.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1000px) {
  .cards.three {
    grid-template-columns: 1fr;
  }
  .review-layout { grid-template-columns: 1fr; }
  .pdf-column { position: static; }
  .pdf-panel { height: 70vh; }
  .workflow-card { grid-template-columns: 1fr; gap: 1rem; }
  .chart-row { grid-template-columns: minmax(120px, .7fr) 1fr 3.5rem; }
  .chart-row > small { display: none; }
}

/* Filmhaus brand colors sampled from the official logo asset. */
:root {
  --ink: #1d1d1b;
  --muted: #6f6564;
  --paper: #f7f3ed;
  --brand: #9e0b2a;
  --brand2: #760820;
  --accent: #f39324;
  --line: #e1d8d5;
  --shadow: 0 10px 30px rgba(82, 17, 30, .09);
}

.topbar {
  gap: 26px;
  min-height: 76px;
  height: auto;
  padding-block: 8px;
}

.brand {
  align-items: center;
  display: flex;
  font-size: 1.05rem;
  gap: 12px;
}

.brand img {
  background: #fff;
  border-radius: 6px;
  height: 48px;
  object-fit: contain;
  padding: 4px 7px;
  width: 156px;
}

.topbar nav { gap: 5px; }
.topbar nav a, .link-button { color: #fff4f5; padding-inline: 10px; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); outline-color: rgba(158, 11, 42, .18); }
.workflow-track .questions { background: var(--accent); }
.point-line.internal, .point-node circle.internal { stroke: var(--accent); }
.point-legend .internal i { background: var(--accent); }
.demo-mode-banner { background: #fff0d9; border-bottom: 1px solid #efc889; color: #66400e; padding: .65rem max(24px, calc((100vw - 1440px) / 2)); text-align: center; }
.demo-mode-banner a { color: var(--brand); font-weight: 750; }

.breadcrumbs {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: .9rem;
  gap: .55rem;
  margin-bottom: 1rem;
}

.breadcrumbs a { color: var(--brand); }
.catalog-demo { background: #fff0d9; border-left: 5px solid var(--accent); color: #66400e; }
.catalog-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-grid.groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalog-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalog-card {
  background: linear-gradient(150deg, #fff 65%, #fff8ee);
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--ink);
  display: flex;
  flex-direction: column;
  gap: .8rem;
  min-height: 100%;
  padding: 1.2rem;
  text-decoration: none;
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}

.catalog-card:hover, .catalog-card:focus-visible {
  border-color: rgba(158, 11, 42, .4);
  box-shadow: 0 14px 32px rgba(82, 17, 30, .12);
  transform: translateY(-3px);
}

.catalog-card h3 { color: var(--brand); font-size: 1.3rem; margin: .15rem 0; }
.catalog-card p { color: var(--muted); margin: 0; }
.catalog-card dl, .catalog-facts { display: grid; gap: .5rem; margin: auto 0 0; }
.catalog-card dl div, .catalog-facts div { align-items: baseline; border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding-top: .5rem; }
.catalog-card dt, .catalog-facts dt { color: var(--muted); font-size: .84rem; }
.catalog-card dd, .catalog-facts dd { font-weight: 750; margin: 0; }
.catalog-arrow { color: var(--brand); font-weight: 750; }
.catalog-preview { background: #ffe5c0; color: #7b3e00; }
.catalog-icon { background: var(--brand); border-radius: 50%; color: #fff; display: grid; font-weight: 800; height: 2rem; place-items: center; width: 2rem; }
.device-dot-chart { align-items: end; display: grid; gap: .6rem; grid-template-columns: repeat(12, minmax(36px, 1fr)); min-height: 220px; overflow-x: auto; }
.device-dot-chart article { display: grid; gap: .35rem; min-width: 36px; text-align: center; }
.device-dot-chart article > div { align-items: end; display: flex; height: 140px; justify-content: center; }
.device-dot-chart i { background: var(--accent); border: 5px solid #fff0d9; border-radius: 50%; display: block; height: 18px; margin-bottom: var(--dot-height); width: 18px; animation: point-node-in .4s cubic-bezier(.2,.8,.2,1) both; }
.device-dot-chart span { color: var(--muted); font-size: .78rem; }
.action-panel, .danger-zone { align-items: center; display: flex; gap: 2rem; justify-content: space-between; }
.action-panel h2, .danger-zone h2 { margin-bottom: .35rem; }
.action-panel p, .danger-zone p { margin: 0; }
.danger-zone { border-left: 5px solid var(--danger); }
.danger-zone form { align-items: end; display: flex; gap: .75rem; }
.check-list { display: grid; gap: .65rem; padding-left: 1.25rem; }
.check-list li::marker { color: var(--accent); }
.inventory-create > summary { cursor: pointer; display: flex; flex-direction: column; gap: .2rem; }
.inventory-create > summary span { color: var(--muted); font-size: .9rem; font-weight: 400; }
.inventory-create[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 1.25rem; padding-bottom: 1rem; }
.inventory-create-body { align-items: start; }
.day-impact-grid { display: grid; gap: 1px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 14px; }
.day-impact-grid article { background: #fff; display: flex; flex-direction: column; gap: .35rem; min-height: 145px; padding: 1.25rem; }
.day-impact-grid span { color: var(--muted); font-size: .84rem; }
.day-impact-grid strong { color: var(--brand); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 3vw, 2.7rem); font-weight: 500; line-height: 1; }
.day-impact-grid small { color: var(--muted); margin-top: auto; }
.day-impact > .hint { margin-bottom: 0; }
.equipment-repair-summary { margin-bottom: 24px; }
.column-picker { margin: 0 0 .8rem auto; width: fit-content; }
.column-picker { position: relative; }
.column-picker summary { color: var(--brand); cursor: pointer; font-size: .86rem; font-weight: 750; }
.column-picker-choices { background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); display: grid; gap: .45rem; margin-top: .5rem; min-width: 230px; padding: .8rem; position: absolute; right: 0; z-index: 4; }
.column-picker-choices label { align-items: center; display: flex; font-weight: 500; gap: .35rem; }
.column-picker-choices input { margin: 0; width: auto; }
.danger-link { color: var(--danger); padding: .2rem .35rem; }

.quality-target { scroll-margin-top: 24px; }
.quality-target:target {
  animation: quality-target-pulse 1.5s ease-out 1;
  border-radius: 10px;
  outline: 3px solid rgba(243, 147, 36, .78);
  outline-offset: 6px;
}
.quality-target:target input,
.quality-target:target select,
.quality-target:target textarea {
  background: #fffaf3;
  border-color: var(--accent);
}
@keyframes quality-target-pulse {
  0%, 45% { box-shadow: 0 0 0 8px rgba(243, 147, 36, .2); }
  100% { box-shadow: 0 0 0 0 rgba(243, 147, 36, 0); }
}

@media (max-width: 1150px) {
  .brand span { display: none; }
  .topbar { gap: 12px; }
  .topbar nav a { padding-inline: 8px; }
}

@media (max-width: 800px) {
  .catalog-grid, .catalog-grid.groups, .catalog-grid.two { grid-template-columns: 1fr; }
  .action-panel, .danger-zone { align-items: stretch; flex-direction: column; }
  .danger-zone form { align-items: stretch; flex-direction: column; }
  .brand span { display: inline; }
  .day-impact-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .day-impact-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .catalog-card, .device-dot-chart i, .quality-target:target {
    animation: none;
    transition: none;
  }
}

/* Signed-in user next to the logout button. */
.session-user { display: flex; align-items: center; gap: 4px; white-space: nowrap; }
.session-user > span { color: #dce9e6; font-size: .9rem; }
