:root {
  --werkbank-surface: var(--surface);
  --werkbank-surface-strong: var(--surface-soft);
  --werkbank-surface-tint: color-mix(in srgb, var(--surface-soft) 86%, var(--accent-system-soft));
  --werkbank-status-neutral-bg: color-mix(in srgb, var(--color-line) 14%, transparent);
  --werkbank-status-neutral-text: var(--text-muted);
  --werkbank-status-danger-bg: color-mix(in srgb, var(--state-danger) 18%, transparent);
  --werkbank-status-danger-text: var(--state-danger);
  --werkbank-status-warning-bg: color-mix(in srgb, var(--state-warning) 18%, transparent);
  --werkbank-status-warning-text: color-mix(in srgb, var(--state-warning) 82%, var(--color-paper));
  --werkbank-status-info-bg: color-mix(in srgb, var(--state-info) 18%, transparent);
  --werkbank-status-info-text: color-mix(in srgb, var(--state-info) 82%, var(--color-paper));
  --werkbank-status-success-bg: color-mix(in srgb, var(--state-success) 18%, transparent);
  --werkbank-status-success-text: var(--state-success);
  --werkbank-status-primary-bg: color-mix(in srgb, var(--accent-primary) 18%, transparent);
  --werkbank-status-primary-text: color-mix(in srgb, var(--accent-primary) 82%, var(--color-paper));
  --werkbank-modal-backdrop: var(--bg-overlay-soft);
  --werkbank-modal-surface: color-mix(in srgb, var(--surface-soft) 92%, var(--color-paper));
  --werkbank-paper-soft: color-mix(in srgb, var(--surface-soft) 88%, var(--color-paper));
  --werkbank-annotation-red: var(--state-danger);
  --werkbank-annotation-orange: var(--state-warning);
  --werkbank-annotation-blue: var(--state-info);
  --werkbank-annotation-green: var(--state-success);
  --werkbank-annotation-black: var(--color-black);
  --werkbank-network-sheen: color-mix(in srgb, var(--color-paper) 55%, transparent);
  --werkbank-network-shadow: color-mix(in srgb, var(--color-black) 10%, transparent);
  --werkbank-network-shadow-strong: color-mix(in srgb, var(--color-black) 18%, transparent);
  --werkbank-network-shadow-active: color-mix(in srgb, var(--color-black) 24%, transparent);
  --werkbank-network-edge-wissen-active: color-mix(in srgb, var(--color-black) 72%, var(--state-warning));
  --werkbank-network-edge-operativ-active: color-mix(in srgb, var(--accent-system) 34%, var(--color-black));
  --werkbank-network-arrow: color-mix(in srgb, var(--accent-system) 46%, var(--color-black));
  --werkbank-network-legend-projekt: color-mix(in srgb, var(--state-warning) 70%, var(--color-black));
  --werkbank-network-legend-notiz: color-mix(in srgb, var(--accent-secondary) 62%, var(--state-warning));
  --werkbank-network-legend-quelle: color-mix(in srgb, var(--state-info) 68%, var(--color-black));
  --werkbank-network-legend-medium: color-mix(in srgb, var(--accent-system) 42%, var(--color-line));
  --werkbank-network-legend-extern: color-mix(in srgb, var(--color-line) 72%, var(--state-warning));
}

.workspace-shell {
  padding: 28px 0 40px;
}

.board-top,
.section-card,
.panel {
  padding: 22px;
}

.section-grid,
.workspace-modules {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.module-card--full {
  grid-column: 1 / -1;
}

.section-head,
.panel-head,
.board-actions,
.detail-actions,
.list-actions,
.toolbar,
.record-card__actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.board-top-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(240px, 320px);
  gap: 18px;
  align-items: start;
}

.board-top-grid--project {
  align-items: end;
}

.workspace-intro {
  display: grid;
  gap: 20px;
}

.workspace-intro__head {
  display: flex;
  justify-content: space-between;
  gap: 18px 24px;
  align-items: start;
  flex-wrap: wrap;
}

.workspace-intro__copy {
  display: grid;
  gap: 12px;
  max-width: 56rem;
}

.workspace-intro__copy .page-text {
  margin: 0;
}

.workspace-intro__aside {
  display: grid;
  gap: 14px;
  justify-items: end;
}

.workspace-intro__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.workspace-jumpnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 4px;
  border-top: 1px solid var(--line);
}

.workspace-jumpnav__link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--werkbank-surface-strong);
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    border-color var(--dur-fast) var(--ease-standard),
    background-color var(--dur-fast) var(--ease-standard),
    color var(--dur-fast) var(--ease-standard);
}

.workspace-jumpnav__link:hover,
.workspace-jumpnav__link:focus-visible {
  border-color: var(--line-strong);
  background: var(--accent-soft);
  color: var(--text);
}

.project-head-meta {
  display: grid;
  gap: 14px;
  justify-items: end;
}

.meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.meta-grid--five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.meta-grid--six {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.meta-card {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--werkbank-surface-strong);
  display: grid;
  gap: 6px;
}

.meta-card strong {
  font-size: 1.2rem;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent-soft);
  color: var(--text);
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 0.95rem;
  white-space: nowrap;
  justify-content: center;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--accent);
  display: inline-block;
}

.stack-md > * + * {
  margin-top: 14px;
}

.project-list,
.record-list,
.list,
.media-grid {
  display: grid;
  gap: 12px;
}

.project-list.compact {
  margin-top: 18px;
}

.project-item,
.record-card,
.list-item,
.media-card {
  border: 1px solid var(--line);
  background: var(--werkbank-surface-strong);
  border-radius: 14px;
  padding: 14px;
  min-width: 0;
}

.project-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: start;
  text-decoration: none;
  color: var(--text);
}

.project-item:hover,
.project-item.active-lite {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.project-item h4,
.section-card h2,
.panel h2,
.panel h1,
.section-card h1,
.record-card h3,
.media-card h3 {
  margin: 0;
  line-height: 1.1;
}

.project-item a,
.record-card a,
.media-card a {
  color: var(--text);
  text-decoration: none;
}

.project-item-main,
.project-item-side,
.project-item-meta,
.record-card__main,
.media-card__body {
  min-width: 0;
}

.project-item-side {
  display: grid;
  gap: 12px;
  justify-items: end;
}

.project-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.project-item-meta span {
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.88rem;
}

.project-item p,
.record-card p,
.list-item p,
.copy,
.linking-hint p {
  margin: 6px 0 0;
  color: var(--muted);
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.record-card,
.list-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.record-card__actions {
  align-items: flex-start;
}

.module-card__body {
  display: grid;
  gap: 18px;
  margin-top: 16px;
}

.module-card__records {
  display: grid;
  gap: 12px;
}

.project-read-config,
.read-stack {
  display: grid;
  gap: 16px;
}

.project-read-config p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.read-shell,
.read-block {
  max-width: 960px;
  margin-inline: auto;
}

.read-shell__head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  flex-wrap: wrap;
}

.read-shell__deck {
  font-size: 1.15rem;
  line-height: 1.6;
  margin: 12px 0 0;
}

.read-hero,
.read-media,
.read-gallery__item {
  display: grid;
  gap: 12px;
}

.read-hero img,
.read-media img,
.read-gallery__item img {
  width: 100%;
  border-radius: 18px;
  display: block;
}

.read-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}

.read-text p,
.read-map-placeholder p,
.read-embed-placeholder p,
.read-media figcaption,
.read-gallery__item figcaption,
.read-quote {
  margin: 0;
  line-height: 1.7;
  color: var(--text);
}

.read-quote {
  padding: 18px 20px;
  border-left: 4px solid var(--accent);
  background: var(--surface-soft);
  border-radius: 0 14px 14px 0;
}

.read-block--empty {
  text-align: center;
}

.record-card__meta-row,
.record-card__detail-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.record-card__detail-list {
  margin-top: 10px;
}

.record-state-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
}

.record-state-chip--status {
  background: var(--werkbank-status-neutral-bg);
  color: var(--werkbank-status-neutral-text);
}

.record-state-chip--ueberfaellig {
  background: var(--werkbank-status-danger-bg);
  color: var(--werkbank-status-danger-text);
}

.record-state-chip--heute,
.record-state-chip--bald {
  background: var(--werkbank-status-warning-bg);
  color: var(--werkbank-status-warning-text);
}

.record-state-chip--geplant,
.record-state-chip--offen {
  background: var(--werkbank-status-info-bg);
  color: var(--werkbank-status-info-text);
}

.record-state-chip--erledigt,
.record-state-chip--sent,
.record-state-chip--calendar {
  background: var(--werkbank-status-success-bg);
  color: var(--werkbank-status-success-text);
}

.record-state-chip--reminder {
  background: var(--werkbank-status-primary-bg);
  color: var(--werkbank-status-primary-text);
}

.module-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  line-height: 1.45;
}

.module-checkbox input {
  width: 18px;
  height: 18px;
}

.module-form,
.panel-subform {
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.media-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.media-card {
  display: grid;
  gap: 12px;
}

.media-card__preview {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 12px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
  position: relative;
}

.media-card__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.media-card__preview--button {
  width: 100%;
  padding: 0;
  cursor: pointer;
}

.media-card__preview--button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.media-card__annotation-preview {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.media-card__preview--file {
  display: grid;
  place-items: center;
  color: var(--muted);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.media-upload-feedback {
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}

.media-upload-feedback.is-error {
  border-color: color-mix(in srgb, var(--state-danger) 30%, transparent);
  background: var(--werkbank-status-danger-bg);
}

.media-upload-feedback.is-success {
  border-color: color-mix(in srgb, var(--state-success) 24%, transparent);
  background: var(--werkbank-status-success-bg);
}

.media-upload-feedback__message,
.media-upload-feedback__list {
  margin: 0;
}

.media-upload-feedback__list {
  display: grid;
  gap: 6px;
  padding-left: 18px;
}

.media-upload-feedback__list li {
  color: var(--text);
}

body.is-annotation-open {
  overflow: hidden;
}

.media-annotation-modal[hidden] {
  display: none;
}

.media-annotation-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
}

.media-annotation-modal__backdrop {
  position: absolute;
  inset: 0;
  background: var(--werkbank-modal-backdrop);
  backdrop-filter: blur(3px);
}

.media-annotation-modal__dialog {
  position: relative;
  width: min(100% - 32px, 1200px);
  max-height: calc(100dvh - 32px);
  margin: 16px auto;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--surface);
  box-shadow: var(--shadow-overlay);
  display: grid;
  gap: 18px;
  overflow: auto;
}

.media-annotation-modal__header,
.media-annotation-modal__footer,
.media-annotation-tools {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}

.media-annotation-stage {
  border: 1px solid var(--line);
  border-radius: 20px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--surface-soft) 92%, var(--color-paper)), var(--surface-soft)),
    var(--surface-soft);
  padding: 18px;
}

.media-annotation-canvas-wrap {
  width: 100%;
  min-height: min(58vh, 720px);
  display: grid;
  place-items: center;
  overflow: auto;
}

.media-annotation-canvas-frame {
  position: relative;
  width: fit-content;
  max-width: 100%;
}

.media-annotation-image {
  display: block;
  max-width: 100%;
  max-height: min(58vh, 720px);
  border-radius: 16px;
  box-shadow: var(--shadow-soft);
}

.media-annotation-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  touch-action: none;
  cursor: crosshair;
}

.media-annotation-tools__group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.media-annotation-tools__group--range label,
.media-annotation-tools__label {
  color: var(--muted);
  font-size: 0.9rem;
}

.media-color-chip {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--color-black) 18%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-paper) 22%, transparent);
  cursor: pointer;
}

.media-color-chip[data-annotation-color="#D64545"] { background: var(--werkbank-annotation-red); }
.media-color-chip[data-annotation-color="#D08E2F"] { background: var(--werkbank-annotation-orange); }
.media-color-chip[data-annotation-color="#2A6585"] { background: var(--werkbank-annotation-blue); }
.media-color-chip[data-annotation-color="#2D6D57"] { background: var(--werkbank-annotation-green); }
.media-color-chip[data-annotation-color="#111111"] { background: var(--werkbank-annotation-black); }

.media-color-chip.is-active,
.media-annotation-tools .btn.is-active {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}

.media-annotation-modal__header .copy.is-error {
  color: var(--danger);
}

.workspace-linking {
  --graph-surface: linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 92%, var(--color-paper)), var(--surface));
  --graph-overlay: color-mix(in srgb, var(--surface-soft) 82%, var(--color-paper));
  --graph-grid: color-mix(in srgb, var(--color-line) 10%, transparent);
  --graph-label: var(--text);
  --graph-label-muted: var(--muted);
  --node-bg: color-mix(in srgb, var(--surface-soft) 92%, var(--color-paper));
  --node-border: var(--line);
  --node-active: var(--text);
  --node-hover: color-mix(in srgb, var(--accent-highlight) 18%, transparent);
  --node-dimmed: color-mix(in srgb, var(--surface-soft) 62%, transparent);
  --edge-wissen: color-mix(in srgb, var(--color-line) 72%, var(--color-paper));
  --edge-operativ: var(--accent-system);
  --edge-preview: color-mix(in srgb, var(--accent-system) 42%, transparent);
  --edge-blockiert: var(--danger);
  --edge-abgeschlossen: var(--success);
  display: grid;
  gap: 18px;
}

.workspace-network {
  display: grid;
  gap: 16px;
}

.workspace-network__head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  flex-wrap: wrap;
}

.workspace-network__head h3 {
  margin: 0;
}

.workspace-network__head p,
.workspace-network__legend span,
.link-modal__copy p,
.link-modal__context {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.workspace-network__status {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 92%, var(--color-paper)), var(--surface-soft)),
    var(--surface-soft);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-paper) 12%, transparent);
}

.workspace-network__status-step {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--werkbank-status-neutral-bg);
  color: var(--graph-label-muted);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.workspace-network__status-title {
  color: var(--graph-label);
  font-size: 1rem;
  line-height: 1.25;
}

.workspace-network__status p {
  margin: 0;
  color: var(--graph-label-muted);
}

.workspace-network__stage {
  position: relative;
  min-height: 560px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background:
    radial-gradient(circle at 50% 20%, color-mix(in srgb, var(--accent-highlight) 18%, transparent), transparent 36%),
    radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--accent-system) 16%, transparent), transparent 44%),
    var(--graph-surface);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--color-paper) 90%, transparent),
    0 18px 42px var(--werkbank-network-shadow);
  overflow: hidden;
}

.workspace-network__stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--graph-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--graph-grid) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: 0.35;
  pointer-events: none;
}

.workspace-network__stage::after {
  content: "";
  position: absolute;
  inset: 12% 18%;
  border-radius: 999px;
  background: radial-gradient(circle, var(--werkbank-network-sheen), transparent 72%);
  pointer-events: none;
}

.workspace-network__edges,
.workspace-network__annotations,
.workspace-network__nodes {
  position: absolute;
  inset: 0;
}

.workspace-network__edges {
  width: 100%;
  height: 100%;
}

.workspace-network__annotations,
.workspace-network__nodes {
  pointer-events: none;
}

.workspace-network__edge-group {
  isolation: isolate;
}

.workspace-network__edge {
  fill: none;
  stroke: var(--edge-wissen);
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.92;
  transition:
    stroke 160ms ease,
    stroke-width 160ms ease,
    opacity 160ms ease,
    filter 160ms ease;
}

.workspace-network__edge--wissen {
  stroke-dasharray: 0;
}

.workspace-network__edge--operativ {
  stroke: var(--edge-operativ);
  stroke-width: 4.2;
}

.workspace-network__edge.is-active {
  stroke-width: 5;
  opacity: 1;
  filter: drop-shadow(0 4px 10px var(--werkbank-network-shadow-strong));
}

.workspace-network__edge.is-connected-highlight {
  opacity: 0.98;
}

.workspace-network__edge.is-dimmed {
  opacity: 0.18;
}

.workspace-network__edge--wissen.is-active,
.workspace-network__edge--wissen.is-connected-highlight {
  stroke: var(--werkbank-network-edge-wissen-active);
}

.workspace-network__edge--operativ.is-active,
.workspace-network__edge--operativ.is-connected-highlight {
  stroke: var(--werkbank-network-edge-operativ-active);
}

.workspace-network__edge.is-status-geplant,
.workspace-network__edge.is-status-offen {
  stroke-dasharray: 12 7;
}

.workspace-network__edge.is-status-bestaetigt,
.workspace-network__edge.is-status-unterwegs {
  stroke-dasharray: 0;
}

.workspace-network__edge.is-status-angekommen {
  stroke: var(--edge-abgeschlossen);
}

.workspace-network__edge.is-status-blockiert,
.workspace-network__edge.is-status-fehlgeschlagen {
  stroke: var(--edge-blockiert);
}

.workspace-network__arrow {
  fill: var(--werkbank-network-arrow);
}

.workspace-network__edge-hit {
  fill: none;
  stroke: transparent;
  stroke-width: 22;
  stroke-linecap: round;
  stroke-linejoin: round;
  cursor: pointer;
  pointer-events: stroke;
}

.workspace-network__edge-preview {
  fill: none;
  stroke: var(--edge-preview);
  stroke-width: 4;
  stroke-dasharray: 10 8;
  stroke-linecap: round;
  opacity: 0.95;
}

.workspace-network__annotation {
  position: absolute;
  transform: translate(-50%, -50%);
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--werkbank-paper-soft);
  color: var(--graph-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: var(--shadow-soft);
  white-space: nowrap;
  pointer-events: auto;
}

.workspace-network__annotation--wissen {
  background: var(--werkbank-paper-soft);
  color: var(--graph-label-muted);
}

.workspace-network__annotation--operativ {
  background: color-mix(in srgb, var(--state-info) 18%, var(--werkbank-paper-soft));
  color: var(--werkbank-status-info-text);
}

.workspace-network__annotation.is-dimmed {
  opacity: 0.16;
}

.workspace-network__annotation.is-active {
  transform: translate(-50%, -50%) scale(1.04);
}

.workspace-network__annotation.is-status-blockiert,
.workspace-network__annotation.is-status-fehlgeschlagen {
  background: color-mix(in srgb, var(--state-danger) 18%, var(--werkbank-paper-soft));
  color: var(--edge-blockiert);
}

.workspace-network__annotation.is-status-angekommen {
  background: color-mix(in srgb, var(--state-success) 18%, var(--werkbank-paper-soft));
  color: var(--edge-abgeschlossen);
}

.workspace-network__node {
  position: absolute;
  transform: translate(-50%, -50%);
  display: grid;
  justify-items: center;
  gap: 10px;
  min-width: 148px;
  padding: 14px 12px 12px;
  text-align: left;
  pointer-events: auto;
  cursor: pointer;
  transition:
    transform 160ms ease,
    opacity 160ms ease;
}

.workspace-network__node strong,
.link-mode-card strong {
  font-size: 0.95rem;
  line-height: 1.25;
}

.workspace-network__node-chip {
  width: 78px;
  height: 78px;
  border-radius: 24px;
  border: 1px solid var(--node-border);
  background: var(--node-bg);
  box-shadow:
    0 16px 30px var(--werkbank-network-shadow),
    inset 0 1px 0 color-mix(in srgb, var(--color-paper) 92%, transparent);
  display: grid;
  place-items: center;
  position: relative;
}

.workspace-network__node-copy {
  max-width: 168px;
  display: grid;
  gap: 3px;
  justify-items: center;
  padding: 8px 12px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--werkbank-paper-soft) 88%, transparent);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-soft);
}

.workspace-network__node-label {
  color: var(--graph-label);
  font-size: 0.92rem;
  line-height: 1.2;
  text-align: center;
  overflow-wrap: anywhere;
}

.workspace-network__node-meta {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.67rem;
  color: var(--graph-label-muted);
  text-align: center;
}

.workspace-network__node-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--werkbank-status-neutral-bg);
  color: var(--graph-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.workspace-network__node--projekt {
  --node-border: color-mix(in srgb, var(--state-warning) 30%, transparent);
}

.workspace-network__node--projekt .workspace-network__node-chip {
  background: linear-gradient(180deg, color-mix(in srgb, var(--state-warning) 18%, var(--werkbank-paper-soft)), var(--werkbank-paper-soft));
}

.workspace-network__node--projekt .workspace-network__node-icon {
  background: var(--werkbank-status-warning-bg);
  color: var(--werkbank-status-warning-text);
}

.workspace-network__node--notiz {
  --node-border: color-mix(in srgb, var(--state-warning) 24%, transparent);
}

.workspace-network__node--notiz .workspace-network__node-icon {
  background: var(--werkbank-status-warning-bg);
  color: var(--werkbank-status-warning-text);
}

.workspace-network__node--quelle {
  --node-border: color-mix(in srgb, var(--state-info) 24%, transparent);
}

.workspace-network__node--quelle .workspace-network__node-icon {
  background: var(--werkbank-status-info-bg);
  color: var(--werkbank-status-info-text);
}

.workspace-network__node--medium {
  --node-border: color-mix(in srgb, var(--accent-system) 24%, transparent);
}

.workspace-network__node--medium .workspace-network__node-icon {
  background: color-mix(in srgb, var(--accent-system) 16%, transparent);
  color: color-mix(in srgb, var(--accent-system) 78%, var(--color-paper));
}

.workspace-network__node--extern {
  --node-border: color-mix(in srgb, var(--color-line) 26%, transparent);
}

.workspace-network__node--extern .workspace-network__node-chip {
  border-style: dashed;
  background: var(--werkbank-paper-soft);
}

.workspace-network__node.is-source,
.workspace-network__node.is-target,
.workspace-network__node.is-connected-highlight {
  z-index: 2;
}

.workspace-network__node.is-source,
.workspace-network__node.is-target {
  z-index: 3;
}

.workspace-network__node.is-source .workspace-network__node-chip,
.workspace-network__node.is-target .workspace-network__node-chip,
.workspace-network__node.is-hovered .workspace-network__node-chip {
  border-color: var(--line-strong);
  box-shadow:
    0 20px 34px var(--werkbank-network-shadow-active),
    0 0 0 8px color-mix(in srgb, var(--accent-highlight) 18%, transparent);
}

.workspace-network__node.is-source .workspace-network__node-chip {
  background: linear-gradient(180deg, color-mix(in srgb, var(--state-warning) 18%, var(--werkbank-paper-soft)), var(--werkbank-paper-soft));
}

.workspace-network__node.is-target .workspace-network__node-chip {
  background: linear-gradient(180deg, color-mix(in srgb, var(--state-info) 18%, var(--werkbank-paper-soft)), var(--werkbank-paper-soft));
}

.workspace-network__node.is-source .workspace-network__node-copy,
.workspace-network__node.is-target .workspace-network__node-copy {
  background: var(--werkbank-paper-soft);
}

.workspace-network__node.is-connected-highlight .workspace-network__node-chip {
  box-shadow:
    0 14px 28px var(--werkbank-network-shadow-strong),
    0 0 0 6px color-mix(in srgb, var(--accent-system) 18%, transparent);
}

.workspace-network__node.is-dimmed {
  opacity: 0.38;
}

.workspace-network__node.is-dimmed .workspace-network__node-chip {
  background: var(--node-dimmed);
  box-shadow: none;
}

.workspace-network__node.is-scale-large {
  min-width: 174px;
}

.workspace-network__node.is-scale-large .workspace-network__node-chip {
  width: 94px;
  height: 94px;
  border-radius: 28px;
}

.workspace-network__node.is-scale-medium .workspace-network__node-chip {
  width: 82px;
  height: 82px;
}

.workspace-network__node.is-scale-small {
  min-width: 136px;
}

.workspace-network__node.is-scale-small .workspace-network__node-chip {
  width: 66px;
  height: 66px;
  border-radius: 20px;
}

.workspace-network__node.is-scale-small .workspace-network__node-copy {
  max-width: 148px;
  padding: 7px 10px;
}

.workspace-network__node.is-scale-small .workspace-network__node-label {
  font-size: 0.84rem;
}

.workspace-network__node:focus-visible,
.link-mode-card:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 4px;
}

.workspace-network__legend {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.workspace-network__legend span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--werkbank-paper-soft) 88%, transparent);
  border: 1px solid var(--line);
  color: var(--graph-label-muted);
  font-size: 0.84rem;
}

.workspace-network__legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
}

.workspace-network__legend-dot--projekt { background: var(--werkbank-network-legend-projekt); }
.workspace-network__legend-dot--notiz { background: var(--werkbank-network-legend-notiz); }
.workspace-network__legend-dot--quelle { background: var(--werkbank-network-legend-quelle); }
.workspace-network__legend-dot--medium { background: var(--werkbank-network-legend-medium); }
.workspace-network__legend-dot--extern { background: var(--werkbank-network-legend-extern); }

.workspace-network__legend-line {
  width: 22px;
  height: 0;
  display: inline-block;
  border-top: 3px solid var(--edge-wissen);
  border-radius: 999px;
}

.workspace-network__legend-line--operativ {
  border-top-color: var(--edge-operativ);
}

.workspace-linking__groups {
  display: grid;
  gap: 18px;
}

.link-group {
  display: grid;
  gap: 12px;
}

.link-group__head {
  display: grid;
  gap: 4px;
}

.link-group__head h3 {
  margin: 0;
}

.link-group__head p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.form-three-col {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.record-card--operativ {
  border-color: color-mix(in srgb, var(--state-info) 22%, transparent);
  background: color-mix(in srgb, var(--state-info) 12%, var(--werkbank-surface-strong));
}

.relation-arrow {
  color: var(--accent);
}

.link-modal[hidden] {
  display: none;
}

.link-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
}

.link-modal__backdrop {
  position: absolute;
  inset: 0;
  background: var(--werkbank-modal-backdrop);
}

.link-modal__dialog {
  position: relative;
  width: min(640px, calc(100vw - 32px));
  margin: 8vh auto 0;
  background: var(--werkbank-modal-surface);
  border-radius: 20px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-overlay);
  display: grid;
  gap: 18px;
  padding: 24px;
}

.link-modal__header,
.link-modal__footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

.link-modal__header h3 {
  margin: 0;
}

.link-modal__body,
.link-modal__form,
.link-modal__section,
.link-modal__copy {
  display: grid;
  gap: 14px;
}

.link-modal__mode-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.link-mode-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 18px;
  background: color-mix(in srgb, var(--accent-primary) 12%, var(--werkbank-surface-strong));
  display: grid;
  gap: 8px;
  text-align: left;
}

.link-mode-card span {
  color: var(--muted);
  line-height: 1.45;
}

.top-gap {
  margin-top: 18px;
}

.narrow {
  max-width: 760px;
}

.login-form {
  max-width: 520px;
}

.form-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.project-settings-form {
  gap: 1rem;
}

.project-title-image-picker {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--accent-primary) 10%, var(--werkbank-surface));
}

.project-title-image-picker__head h3 {
  margin: 0;
  font-size: 1rem;
}

.project-title-image-picker__layout {
  display: grid;
  gap: 1rem;
}

.project-title-image-picker__layout--empty {
  opacity: 0.94;
}

.project-title-image-picker__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
}

.project-title-image-picker__selection {
  display: grid;
  gap: 0.45rem;
  flex: 1 1 360px;
}

.project-title-image-picker__selection label {
  font-size: 0.92rem;
  font-weight: 600;
}

.project-title-image-menu {
  position: relative;
  flex: 0 0 auto;
}

.project-title-image-menu > summary {
  list-style: none;
}

.project-title-image-menu > summary::-webkit-details-marker {
  display: none;
}

.project-title-image-menu__trigger {
  min-width: 124px;
}

.project-title-image-menu__panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 12;
  min-width: 220px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--werkbank-modal-surface);
  box-shadow: var(--shadow-card);
  display: grid;
  gap: 6px;
}

.project-title-image-menu__action {
  width: 100%;
  border: 0;
  border-radius: 12px;
  background: transparent;
  padding: 10px 12px;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: var(--text);
}

.project-title-image-menu__action:hover,
.project-title-image-menu__action:focus-visible {
  background: var(--surface-soft);
  outline: none;
}

.project-title-image-menu__action[disabled] {
  color: var(--muted);
  cursor: not-allowed;
}

.project-title-image-preview__frame {
  position: relative;
  width: 100%;
  min-height: 280px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--werkbank-paper-soft);
}

.project-title-image-preview__frame img {
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  display: block;
}

.project-title-image-preview__frame.is-empty {
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--surface-soft) 86%, var(--color-paper));
}

.project-title-image-preview__empty {
  color: var(--muted);
  font-weight: 700;
  letter-spacing: 0.01em;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
}

.project-title-image-preview__meta {
  display: grid;
  gap: 0.3rem;
  padding: 0.2rem 0;
}

.project-title-image-preview__meta strong {
  font-size: 1rem;
}

.project-title-image-preview__meta p {
  margin: 0;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.project-title-image-picker__empty {
  display: grid;
  gap: 0.35rem;
  padding: 0.85rem 1rem;
  border: 1px dashed var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--werkbank-paper-soft) 88%, transparent);
}

.project-title-image-picker__empty p {
  margin: 0;
  color: var(--muted);
}

.login-form__field {
  display: grid;
  gap: 0.4rem;
}

.login-alert {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.login-submit {
  min-height: 50px;
  min-width: 180px;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: var(--shadow-soft);
}

.login-submit:hover {
  transform: translateY(-1px);
}

.login-submit:focus-visible {
  outline-offset: 3px;
}

.auth-helper {
  display: grid;
  gap: 10px;
  align-content: start;
}

.auth-helper .button {
  justify-self: start;
}

.login-form input[type="text"],
.login-form input[type="password"],
.login-form input[type="email"] {
  min-height: 50px;
}

.message {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
  color: var(--text);
  line-height: 1.45;
}

.message.message-error {
  border-color: color-mix(in srgb, var(--state-danger) 24%, transparent);
  background: color-mix(in srgb, var(--state-danger) 16%, var(--werkbank-surface-strong));
  color: var(--state-danger);
}

.message.message-success {
  border-color: color-mix(in srgb, var(--state-success) 24%, transparent);
  background: color-mix(in srgb, var(--state-success) 16%, var(--werkbank-surface-strong));
  color: var(--state-success);
}

.link-button {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

.link-button:hover {
  color: var(--text);
}

.werkbank-nav__form {
  display: inline-flex;
  margin: 0;
}

.link-button--danger {
  color: var(--danger);
}

.link-button--danger:hover {
  color: var(--danger);
}

.btn.ghost.is-danger {
  border-color: color-mix(in srgb, var(--state-danger) 22%, transparent);
  background: color-mix(in srgb, var(--state-danger) 10%, transparent);
  color: var(--danger);
}

.btn.ghost.is-danger:hover {
  border-color: color-mix(in srgb, var(--state-danger) 34%, transparent);
  background: var(--danger-soft);
  color: var(--danger);
}

.alphabet-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.alphabet-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  color: inherit;
  background: var(--surface-soft);
}

.alphabet-chip.is-active {
  background: var(--accent-primary);
  border-color: var(--accent-primary);
  color: var(--color-white);
}

.alphabet-chip.is-empty {
  opacity: 0.45;
}

.glossary-list {
  display: grid;
  gap: 1rem;
}

.glossary-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
}

.glossary-item__main h3 {
  margin-bottom: 0.35rem;
}

.glossary-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.65rem;
  color: var(--muted);
  font-size: 0.92rem;
}

.glossary-citation-preview {
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface-soft);
}

.glossary-citation-preview p {
  margin-top: 0.45rem;
}

.glossary-delete {
  display: grid;
  gap: 0.55rem;
  align-items: start;
}

.glossary-delete__button {
  justify-self: start;
}

.glossary-delete__note {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.glossary-delete__note--compact {
  font-size: 0.86rem;
}

.glossary-link-list,
.glossary-suggestion-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.glossary-hints {
  margin: 1rem 0 0;
  padding-left: 1.2rem;
  color: var(--text);
}

.glossary-suggestion-panel {
  padding: 1.1rem 1.2rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent-highlight) 16%, var(--surface-soft)), var(--werkbank-paper-soft));
}

.glossary-suggestion-panel.is-error {
  border-color: color-mix(in srgb, var(--state-danger) 28%, transparent);
}

.glossary-suggestion-status {
  margin: 0.2rem 0 0;
  color: var(--muted);
}

.glossary-suggestion-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  margin-top: 1rem;
}

.glossary-suggestion-card {
  padding: 0.95rem 1rem;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--werkbank-paper-soft) 82%, transparent);
}

.glossary-suggestion-card h3 {
  margin-bottom: 0.35rem;
}

@media (max-width: 1080px) {
  .section-grid,
  .workspace-modules,
  .board-top-grid,
  .meta-grid,
  .meta-grid--five,
  .meta-grid--six {
    grid-template-columns: 1fr;
  }

  .module-card--full {
    grid-column: auto;
  }

  .glossary-suggestion-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .werkbank-header-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .form-two-col,
  .form-three-col {
    grid-template-columns: 1fr;
  }

  .project-item,
  .record-card,
  .list-item,
  .glossary-item {
    grid-template-columns: 1fr;
  }

  .project-head-meta,
  .project-item-side {
    justify-items: stretch;
  }

  .project-item-meta {
    justify-content: flex-start;
  }

  .workspace-network__stage {
    min-height: 700px;
  }

  .workspace-network__node {
    min-width: 124px;
  }

  .workspace-network__node-chip {
    width: 64px;
    height: 64px;
  }

  .workspace-network__node-copy {
    max-width: 132px;
  }

  .workspace-network__annotation {
    font-size: 0.68rem;
  }

  .read-shell__head {
    flex-direction: column;
  }

  .link-modal__dialog,
  .link-modal__mode-grid {
    grid-template-columns: 1fr;
  }

  .project-title-image-picker__toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .project-title-image-menu {
    width: 100%;
  }

  .project-title-image-menu__trigger {
    width: 100%;
    justify-content: center;
  }

  .project-title-image-menu__panel {
    left: 0;
    right: auto;
    width: min(100%, 320px);
  }

  .project-title-image-preview__frame,
  .project-title-image-preview__frame img {
    min-height: 220px;
  }

  .media-annotation-modal__dialog {
    width: min(100% - 16px, 100%);
    max-height: calc(100dvh - 16px);
    margin: 8px auto;
    padding: 16px;
    border-radius: 18px;
  }

  .media-annotation-modal__header,
  .media-annotation-modal__footer,
  .media-annotation-tools {
    align-items: stretch;
  }

  .media-annotation-stage {
    padding: 12px;
  }

  .media-annotation-canvas-wrap {
    min-height: 48vh;
  }

  .media-annotation-image {
    max-height: 48vh;
  }

  .media-annotation-tools__group {
    width: 100%;
  }
}

.publication-node {
  background: transparent;
}

.publication-heading {
  margin: 0;
  line-height: 1.08;
  letter-spacing: -0.03em;
}

.publication-heading--l1 {
  font-size: clamp(2rem, 4vw, 3rem);
}

.publication-heading--l2 {
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
}

.publication-paragraph,
.publication-place p,
.publication-sources p {
  margin: 0;
  line-height: 1.78;
}

.publication-mark--source {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.12em;
}

.publication-footnote-ref {
  margin-left: 4px;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  color: var(--muted);
}

.publication-inline-figure {
  display: inline-grid;
  gap: 8px;
  width: min(100%, 22rem);
  margin: 0.9rem 0;
  vertical-align: middle;
}

.publication-inline-figure img {
  width: 100%;
  display: block;
  border-radius: 18px;
}

.publication-inline-figure__caption,
.publication-inline-quote {
  font-family: var(--font-ui);
  font-size: 0.92rem;
  color: var(--muted);
}

.publication-inline-quote {
  font-style: italic;
}

.publication-place {
  display: grid;
  gap: 8px;
}

.publication-place h3,
.publication-sources h2 {
  margin: 0;
}

.publication-place__meta {
  font-family: var(--font-ui);
  color: var(--muted);
  font-size: 0.92rem;
}

.publication-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--muted);
  font-family: var(--font-ui);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.76rem;
}

.publication-divider::before,
.publication-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--line);
}

.publication-sources ol {
  margin: 0;
  padding-left: 20px;
  display: grid;
  gap: 12px;
}

.project-archive {
  --project-archive-gap: clamp(28px, 4vw, 44px);
  --project-archive-width: min(100%, 64rem);

  display: grid;
  gap: var(--project-archive-gap);
}

.project-archive__masthead {
  display: grid;
  gap: 18px;
}

.project-archive__masthead-row,
.project-archive__message,
.project-archive__tools,
.project-archive-list,
.project-archive__empty-state {
  width: var(--project-archive-width);
  margin: 0 auto;
}

.project-archive__masthead-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px 40px;
  align-items: end;
  padding-bottom: clamp(18px, 2.6vw, 24px);
  border-bottom: 1px solid var(--line);
}

.project-archive__masthead-copy {
  max-width: 42rem;
}

.project-archive__masthead-copy .page-text {
  max-width: 40rem;
}

.project-archive__header-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px 18px;
  align-items: center;
  padding-bottom: 6px;
}

.project-archive__header-link {
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    border-color var(--dur-fast) var(--ease-standard),
    color var(--dur-fast) var(--ease-standard);
}

.project-archive__header-link--accent {
  color: var(--text);
  border-bottom-color: var(--line);
}

.project-archive__header-link:hover,
.project-archive__header-link:focus-visible {
  color: var(--accent);
  border-bottom-color: currentColor;
}

.project-archive__header-link:focus-visible,
.project-archive-controls__reset:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  outline-offset: 4px;
}

.project-archive__tools {
  display: grid;
  gap: 10px;
}

.project-archive-controls {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) repeat(3, minmax(0, 0.88fr)) auto auto;
  gap: 12px 18px;
  align-items: end;
}

.project-archive-controls__field {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.project-archive-controls__field--search {
  min-width: 0;
}

.project-archive-controls__actions {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

.project-archive-controls__actions--reset {
  justify-content: flex-start;
}

.project-archive-controls__label {
  margin: 0;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-archive-controls__input,
.project-archive-controls__select {
  min-height: 46px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface-soft) 90%, var(--color-paper));
  box-shadow: none;
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 0.98rem;
  line-height: 1.45;
}

.project-archive-controls__select {
  padding-right: 42px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  color-scheme: dark;
  background-image:
    linear-gradient(45deg, transparent 50%, color-mix(in srgb, var(--text) 80%, transparent) 50%),
    linear-gradient(135deg, color-mix(in srgb, var(--text) 80%, transparent) 50%, transparent 50%);
  background-position:
    calc(100% - 20px) calc(50% - 3px),
    calc(100% - 14px) calc(50% - 3px);
  background-size: 6px 6px;
  background-repeat: no-repeat;
}

.project-archive-controls__input::placeholder {
  color: var(--muted);
}

.project-archive-controls__input:focus,
.project-archive-controls__select:focus {
  border-color: var(--line-strong);
  background-color: var(--werkbank-paper-soft);
  box-shadow: none;
}

.project-archive-controls__select option {
  background: #181818;
  color: rgba(255, 255, 255, 0.92);
}

.project-archive-controls__submit.btn.ghost {
  min-height: 46px;
  padding: 0 18px;
  border-radius: 999px;
  white-space: nowrap;
}

.project-archive-controls__submit.btn.ghost:hover {
  transform: none;
}

.project-archive-controls__reset {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 0 2px;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    color var(--dur-fast) var(--ease-standard);
}

.project-archive-controls__reset:hover,
.project-archive-controls__reset:focus-visible {
  color: var(--accent);
}

.project-archive-controls__reset.is-disabled,
.project-archive-controls__reset[aria-disabled="true"] {
  opacity: 0.45;
  color: var(--muted);
}

.project-archive__result,
.project-archive__empty-state {
  margin: 0;
  color: var(--muted);
}

.project-archive__result {
  font-family: var(--font-ui);
  font-size: 0.82rem;
}

.project-archive__empty-state {
  line-height: 1.6;
}

.project-archive-list {
  margin: 0 auto;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.project-archive-list__item {
  margin: 0;
}

.project-archive-list__item[hidden] {
  display: none;
}

.project-archive-entry {
  margin: 0;
}

.project-archive-entry__link {
  display: block;
  padding: clamp(22px, 3vw, 30px) 0;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  text-decoration: none;
  transition:
    border-color var(--dur-fast) var(--ease-standard),
    color var(--dur-fast) var(--ease-standard);
}

.project-archive-entry__kicker {
  margin: 0 0 12px;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.project-archive-entry__title {
  margin: 0;
  max-width: min(20ch, 100%);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  line-height: 0.98;
  letter-spacing: -0.05em;
  text-wrap: balance;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.project-archive-entry__summary {
  margin: 14px 0 0;
  max-width: 42rem;
  color: color-mix(in srgb, var(--text) 86%, var(--color-paper));
  font-family: var(--font-body);
  font-size: clamp(1.04rem, 1.16vw, 1.14rem);
  line-height: 1.78;
  text-wrap: pretty;
}

.project-archive-entry__meta {
  margin: 14px 0 0;
  max-width: 46rem;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.82rem;
  line-height: 1.7;
}

.project-archive-list__item:hover .project-archive-entry__link,
.project-archive-list__item:focus-within .project-archive-entry__link {
  border-bottom-color: var(--line-strong);
}

.project-archive-list__item:hover .project-archive-entry__title,
.project-archive-list__item:focus-within .project-archive-entry__title {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
}

.project-archive-entry__link:focus-visible,
.project-page__back:focus-visible,
.project-page__edit:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 6px;
}

.project-page__back:hover,
.project-page__edit:hover {
  color: var(--accent);
}

.project-page {
  --project-page-gap: clamp(34px, 4vw, 56px);
  --project-page-column-gap: clamp(34px, 4.4vw, 72px);
  --project-page-aside-width: clamp(17rem, 28vw, 24rem);

  display: grid;
  gap: var(--project-page-gap);
}

.project-page__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "main actions"
    "lead actions";
  gap: 16px clamp(24px, 3vw, 40px);
  align-items: start;
  padding-bottom: calc(var(--project-page-gap) * 0.62);
  border-bottom: 1px solid var(--line);
}

.project-page__header-main {
  grid-area: main;
  display: grid;
  gap: 14px;
  max-width: 52rem;
}

.project-page__header-actions {
  grid-area: actions;
  display: grid;
  justify-items: end;
  gap: 14px;
  align-self: start;
  padding-top: 6px;
}

.project-page__title {
  margin: 0;
  max-width: min(14ch, 100%);
  font-size: clamp(2.95rem, 5.8vw, 5.25rem);
  line-height: 0.94;
  letter-spacing: -0.055em;
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: auto;
}

.project-page__eyebrow {
  margin: 0;
}

.project-page__meta-inline {
  margin: 0;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  line-height: 1.6;
  text-transform: uppercase;
}

.project-page__lead {
  grid-area: lead;
  max-width: 35ch;
  font-family: var(--font-body);
  font-size: clamp(1.28rem, 2.2vw, 1.72rem);
  line-height: 1.52;
  text-wrap: pretty;
}

.project-page__summary {
  margin: 0;
  max-width: 38rem;
  color: color-mix(in srgb, var(--text) 90%, var(--color-paper));
  font-family: var(--font-body);
  font-size: clamp(1.08rem, 1.35vw, 1.2rem);
  line-height: 1.82;
  text-wrap: pretty;
}

.project-page__back {
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  color: var(--muted);
  transition: color var(--dur-fast) var(--ease-standard);
}

.project-page__edit {
  white-space: nowrap;
}

.project-page__edit.btn.ghost {
  min-height: auto;
  padding: 0 0 5px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.project-page__edit.btn.ghost:hover {
  border-color: var(--accent);
  transform: none;
  box-shadow: none;
}

.project-page__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, var(--project-page-aside-width));
  gap: var(--project-page-column-gap);
  align-items: start;
}

.project-page__layout--single {
  grid-template-columns: minmax(0, 1fr);
}

.project-page__main,
.project-page__aside {
  min-width: 0;
}

.project-page__main {
  display: grid;
  gap: clamp(26px, 3vw, 38px);
  max-width: min(42rem, 100%);
}

.project-page__aside {
  display: grid;
  gap: 20px;
}

.project-page__figure,
.project-page__embedded-media {
  display: grid;
  gap: 12px;
  margin: 0;
}

.project-page__figure img,
.project-page__embedded-media img {
  width: 100%;
  background: var(--surface-soft);
  border-radius: 14px;
  object-fit: cover;
}

.project-page__figure img {
  aspect-ratio: 5 / 4;
}

.project-page__figure figcaption,
.project-page__embedded-media figcaption {
  font-size: var(--text-sm);
  line-height: 1.55;
  color: var(--muted);
}

.project-page__figure--empty {
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}

.project-page__placeholder {
  display: grid;
  place-items: center;
  min-height: 320px;
  padding: 24px;
  border-radius: 14px;
  background: var(--surface-soft);
  color: var(--muted);
  text-align: center;
}

.project-page__meta {
  padding-top: 4px;
}

select.meta-input,
.module-form select,
.module-subpanel select {
  color: var(--text);
  color-scheme: dark;
  background-color: color-mix(in srgb, var(--surface-soft) 92%, var(--color-paper));
  border-color: var(--line);
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, color-mix(in srgb, var(--text) 80%, transparent) 50%),
    linear-gradient(135deg, color-mix(in srgb, var(--text) 80%, transparent) 50%, transparent 50%);
  background-position:
    calc(100% - 20px) calc(50% - 3px),
    calc(100% - 14px) calc(50% - 3px);
  background-size: 6px 6px;
  background-repeat: no-repeat;
  padding-right: 42px;
}

select.meta-input:focus,
.module-form select:focus,
.module-subpanel select:focus {
  color: var(--text);
  background-color: var(--werkbank-paper-soft);
}

select.meta-input option,
.module-form select option,
.module-subpanel select option {
  background: #181818;
  color: rgba(255, 255, 255, 0.92);
}

select.meta-input:disabled,
.module-form select:disabled,
.module-subpanel select:disabled {
  color: var(--muted);
  opacity: 0.68;
}

.project-page__meta-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}

.project-page__meta-item {
  display: grid;
  gap: 7px;
  padding: 15px 0 14px;
  border-top: 1px solid var(--line);
}

.project-page__meta-item:first-child {
  border-top: 0;
}

.project-page__meta-item dt {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.project-page__meta-item dd {
  line-height: 1.68;
}

.project-page__section,
.project-page__sources {
  display: grid;
  gap: 18px;
}

.project-page__section p,
.project-page__section li,
.project-page__quote p,
.project-page__place p,
.project-page__sources p,
.project-page__source-item p,
.project-page__link-item p {
  max-width: min(39rem, 100%);
  font-family: var(--font-body);
  font-size: clamp(1.04rem, 1.18vw, 1.12rem);
  line-height: 1.88;
  text-wrap: pretty;
}

.project-page__section h2,
.project-page__section h3,
.project-page__sources h2,
.project-page__place h3,
.project-page__source-item h3,
.project-page__link-item h3 {
  margin: 0;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  line-height: 1.18;
  letter-spacing: -0.02em;
}

.project-page .publication-heading {
  margin: 0;
}

.project-page .publication-heading--l1 {
  font-size: clamp(1.75rem, 2.8vw, 2.45rem);
  line-height: 1.08;
}

.project-page .publication-heading--l2 {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  line-height: 1.16;
}

.project-page .publication-quote-block {
  margin: 0;
  padding-left: 20px;
  border-left: 1px solid var(--line-strong);
}

.project-page .publication-quote-block p {
  margin: 0;
}

.project-page .publication-mark--quote,
.project-page .publication-mark--place,
.project-page .publication-mark--glossary {
  font-family: var(--font-ui);
}

.project-page__quote {
  margin: 0;
  padding-left: 20px;
  border-left: 1px solid var(--line-strong);
}

.project-page__quote footer {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  color: var(--muted);
}

.project-page__gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.project-page__gallery-item {
  display: grid;
  gap: 10px;
  margin: 0;
}

.project-page__gallery-item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 14px;
}

.project-page__gallery-item figcaption {
  font-size: var(--text-sm);
  color: var(--muted);
  line-height: 1.5;
}

.project-page__place {
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.project-page__place-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.04em;
  color: var(--muted);
}

.project-page__divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--muted);
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.project-page__divider::before,
.project-page__divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--line);
}

.project-page__sources {
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.project-page__sources ol {
  margin: 0;
  padding-left: 1.25rem;
  list-style: decimal;
  display: grid;
  gap: 14px;
}

.project-page__sources--inline {
  padding-top: 0;
  border-top: 0;
}

.project-page__source-item,
.project-page__link-item {
  padding: 16px 0 14px;
  border-bottom: 1px solid var(--line);
}

.project-page__source-item:last-child,
.project-page__link-item:last-child {
  border-bottom: 0;
}

.project-page__source-item a,
.project-page__link-item a,
.project-page__sources a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.14em;
}

.project-page__embed {
  padding: 16px 18px;
  background: var(--surface-soft);
  border-radius: 14px;
}

@media (max-width: 1120px) {
  .project-page__layout {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  }
}

@media (max-width: 960px) {
  .project-archive__masthead-row,
  .project-page__header {
    align-items: flex-start;
  }

  .project-archive__masthead-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .project-archive__header-actions {
    justify-content: flex-start;
    padding-bottom: 0;
  }

  .project-archive-controls {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .project-archive-controls__field--search {
    grid-column: 1 / -1;
  }

  .project-archive-controls__actions {
    justify-content: flex-start;
  }

  .project-page__header-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    justify-items: stretch;
    width: 100%;
    gap: 12px 18px;
  }

  .project-page__layout {
    grid-template-columns: 1fr;
    gap: clamp(26px, 5vw, 38px);
  }

  .project-page__aside {
    order: -1;
  }

  .project-page__header {
    grid-template-columns: 1fr;
    grid-template-areas:
      "main"
      "actions"
      "lead";
    gap: 18px;
  }

  .workspace-intro__aside {
    justify-items: start;
  }

  .workspace-intro__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .project-archive {
    --project-archive-gap: clamp(24px, 6vw, 32px);
  }

  .project-archive__masthead-row {
    gap: 18px;
    padding-bottom: 18px;
  }

  .project-archive__masthead-copy .page-text {
    max-width: none;
    font-size: 0.99rem;
    line-height: 1.62;
  }

  .project-archive-controls {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .project-archive-controls__field--search {
    grid-column: auto;
  }

  .project-archive-controls__actions {
    justify-content: flex-start;
  }

  .workspace-jumpnav {
    gap: 8px;
  }

  .workspace-jumpnav__link {
    min-height: 36px;
    padding: 0 12px;
    font-size: 0.74rem;
  }

  .project-archive-entry__title {
    max-width: none;
    font-size: clamp(1.74rem, 9.6vw, 2.48rem);
    line-height: 1.01;
  }

  .project-page__title {
    max-width: 12ch;
    font-size: clamp(2.1rem, 12vw, 3.2rem);
  }

  .project-page__lead,
  .project-archive-entry__summary,
  .project-archive-entry__meta {
    max-width: none;
  }

  .project-page__meta-inline {
    font-size: 0.74rem;
  }

  .project-archive-entry__summary {
    font-size: 1rem;
    line-height: 1.74;
  }

  .project-archive-entry__meta {
    font-size: 0.78rem;
    line-height: 1.64;
  }

  .project-page__gallery {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .project-page__header {
    gap: 14px;
    padding-bottom: 18px;
  }

  .project-page__header-main {
    gap: 10px;
  }

  .project-page__header-actions {
    gap: 10px 18px;
    align-items: center;
  }

  .project-page__back,
  .project-page__edit.btn.ghost {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
  }

  .project-page__back {
    font-size: 0.92rem;
  }

  .project-page__lead {
    font-size: clamp(1.1rem, 5.8vw, 1.3rem);
    line-height: 1.58;
  }

  .project-page__summary {
    font-size: 1rem;
    line-height: 1.8;
  }

  .project-page__edit.btn.ghost {
    padding: 8px 0;
    font-size: 0.72rem;
  }

  .project-page__main {
    gap: 24px;
    max-width: none;
  }

  .project-page__placeholder {
    min-height: 230px;
  }

  .project-page__aside {
    gap: 16px;
  }

  .project-page__figure,
  .project-page__embedded-media {
    gap: 10px;
  }

  .project-page__figure img {
    aspect-ratio: 4 / 3;
    min-height: clamp(230px, 66vw, 320px);
    border-radius: 12px;
  }

  .project-page__figure figcaption,
  .project-page__embedded-media figcaption {
    font-size: 0.92rem;
    line-height: 1.52;
  }

  .project-page__meta {
    padding-top: 2px;
  }

  .project-page__meta-item {
    gap: 6px;
    padding: 13px 0 12px;
  }

  .project-page__meta-item dt {
    font-size: 0.68rem;
  }

  .project-page__meta-item dd {
    font-size: 0.97rem;
    line-height: 1.62;
  }

  .project-page__section,
  .project-page__sources {
    gap: 16px;
  }

  .project-page__section p,
  .project-page__section li,
  .project-page__quote p,
  .project-page__place p,
  .project-page__sources p,
  .project-page__source-item p,
  .project-page__link-item p {
    max-width: none;
    font-size: 1rem;
    line-height: 1.84;
  }

  .project-page__section h2,
  .project-page__section h3,
  .project-page__sources h2,
  .project-page__place h3,
  .project-page__source-item h3,
  .project-page__link-item h3 {
    font-size: clamp(1.12rem, 5vw, 1.34rem);
    line-height: 1.22;
  }

  .project-page .publication-heading--l1 {
    font-size: clamp(1.42rem, 7vw, 1.9rem);
  }

  .project-page .publication-heading--l2 {
    font-size: clamp(1.08rem, 5.4vw, 1.26rem);
  }

  .project-page .publication-quote-block,
  .project-page__quote {
    padding-left: 14px;
  }

  .project-page__gallery-item img {
    min-height: 220px;
    border-radius: 12px;
  }

  .project-page__place {
    padding: 16px 0;
  }

  .project-page__sources {
    padding-top: 20px;
  }
}

@media (max-width: 520px) {
  .project-archive {
    --project-archive-gap: 22px;
  }

  .project-archive__masthead-row {
    gap: 16px;
    padding-bottom: 16px;
  }

  .project-archive__masthead-copy .page-text {
    font-size: 0.96rem;
    line-height: 1.58;
  }

  .project-archive-entry__link {
    padding: 20px 0;
  }

  .project-archive-entry__title {
    font-size: clamp(1.58rem, 11vw, 2.06rem);
  }

  .project-archive-entry__summary {
    font-size: 0.98rem;
    line-height: 1.72;
  }

  .project-archive-entry__meta {
    font-size: 0.76rem;
    line-height: 1.6;
  }

  .project-archive-controls__input,
  .project-archive-controls__select {
    min-height: 42px;
    padding: 8px 0 10px;
  }

  .project-page {
    --project-page-gap: 24px;
  }

  .project-page__title {
    max-width: 11ch;
    font-size: clamp(1.94rem, 11.8vw, 2.84rem);
  }

  .project-page__header-actions {
    align-items: flex-start;
    gap: 8px 14px;
  }

  .project-page__back {
    font-size: 0.88rem;
  }

  .project-page__edit.btn.ghost {
    padding: 7px 0;
  }

  .project-page__lead {
    font-size: 1.08rem;
  }

  .project-page__figure img {
    min-height: clamp(210px, 62vw, 270px);
  }

  .project-page__placeholder {
    min-height: 220px;
  }

  .project-page__figure figcaption,
  .project-page__embedded-media figcaption {
    font-size: 0.88rem;
  }

  .project-page__meta-item dt {
    font-size: 0.66rem;
  }

  .project-page__section p,
  .project-page__section li,
  .project-page__quote p,
  .project-page__place p,
  .project-page__sources p,
  .project-page__source-item p,
  .project-page__link-item p {
    font-size: 0.98rem;
    line-height: 1.8;
  }

  .project-page__section h2,
  .project-page__section h3,
  .project-page__sources h2,
  .project-page__place h3,
  .project-page__source-item h3,
  .project-page__link-item h3 {
    font-size: clamp(1.06rem, 5vw, 1.2rem);
  }
}
