:root {
  --editor-danger: #8a3e34;
  --editor-danger-soft: #f5e8e4;
  --editor-info: #315d68;
  --editor-info-soft: #e7f0f1;
}

.editor-body { min-height: 100vh; background: #efede3; }
.editor-topbar { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 30px 17px; border-bottom:1px solid var(--line); background:var(--paper-raised); }
.editor-topbar h1 { margin:0; font-size:1.6875rem; }
.editor-kicker { margin:0 0 4px; color:var(--gold); font:600 .625rem var(--font-mono); letter-spacing:.13em; text-transform:uppercase; }
.editor-account { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.75rem; }
.editor-account a { padding:7px 10px; border:1px solid var(--line); border-radius:6px; color:var(--forest-dark); text-decoration:none; background:var(--paper); font-weight:650; }
.editor-tabs { display:flex; gap:3px; padding:0 30px; border-bottom:1px solid var(--line); background:var(--paper-raised); }
.editor-tabs button { padding:12px 18px; border:0; border-bottom:3px solid transparent; color:var(--muted); background:transparent; font:650 .8125rem var(--font-body); cursor:pointer; }
.editor-tabs button.is-active { border-bottom-color:var(--forest); color:var(--forest-dark); }
.editor-tab-count { display:inline-block; min-width:20px; margin-left:4px; padding:2px 6px; border-radius:999px; color:#fff; background:var(--gold); font-size:.625rem; text-align:center; }
.editor-shell { min-height:calc(100vh - 127px); }
.editor-tab { display:none; }
.editor-tab.is-active { display:grid; grid-template-columns:330px minmax(0,1fr); min-height:calc(100vh - 127px); }
.editor-tab.editor-single.is-active { display:block; padding:28px; }
.editor-search-panel { padding:24px 18px; border-right:1px solid var(--line); background:var(--paper); }
.editor-search-panel>label { display:block; margin-bottom:7px; color:var(--forest-dark); font:650 .75rem var(--font-mono); text-transform:uppercase; letter-spacing:.06em; }
.editor-search-box { position:relative; }
.editor-search-box input,.editor-grid input,.editor-grid textarea,.criterion-toolbar select,.criterion-value-input,.editor-dialog input { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:var(--paper-raised); font:.875rem var(--font-body); }
.editor-search-box input { padding-right:38px; }
.editor-search-box input:focus,.editor-grid input:focus,.editor-grid textarea:focus,.criterion-toolbar select:focus,.criterion-value-input:focus,.editor-dialog input:focus { outline:0; border-color:var(--forest); box-shadow:0 0 0 3px rgba(59,87,56,.12); }
.editor-spinner { position:absolute; width:15px; height:15px; top:12px; right:12px; border:2px solid var(--sage-soft); border-top-color:var(--forest); border-radius:50%; animation:editor-spin .7s linear infinite; }
@keyframes editor-spin { to { transform:rotate(360deg); } }
.editor-help { margin:8px 2px 14px; color:var(--muted); font-size:.6875rem; line-height:1.45; }
.editor-result-list { display:grid; gap:5px; }
.editor-result { width:100%; padding:11px; border:1px solid transparent; border-radius:7px; text-align:left; color:inherit; background:transparent; cursor:pointer; }
.editor-result:hover,.editor-result:focus,.editor-result.is-active { border-color:var(--line); background:var(--paper-raised); outline:0; }
.editor-result strong { display:block; font:600 .875rem var(--font-display); }
.editor-result span { display:block; margin-top:3px; color:var(--muted); font:.625rem var(--font-mono); }
.editor-workspace { min-width:0; padding:27px 30px 90px; }
.editor-empty-state { max-width:420px; margin:15vh auto; text-align:center; color:var(--muted); }
.editor-empty-state>span { display:block; color:var(--sage); font-size:3rem; }
.editor-empty-state h2 { color:var(--ink); }
.editor-form-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.editor-form-head h2 { margin:0; font-size:1.6875rem; }
.editor-identifiers { margin:4px 0 0; color:var(--muted); font:.6875rem var(--font-mono); }
.editor-form-actions { display:flex; gap:8px; }
.editor-button { padding:9px 13px; border:1px solid transparent; border-radius:6px; font:650 .75rem var(--font-body); cursor:pointer; }
.editor-button.primary { color:#fff; background:var(--forest); }
.editor-button.primary:hover { background:var(--forest-dark); }
.editor-button.secondary { color:var(--forest-dark); border-color:var(--line); background:var(--paper-raised); }
.editor-button.danger { color:#fff; background:var(--editor-danger); }
.editor-button:disabled { cursor:not-allowed; opacity:.45; }
.editor-notice { margin:0 0 15px; padding:10px 12px; border:1px solid #b9d0d4; border-radius:7px; color:var(--editor-info); background:var(--editor-info-soft); font-size:.8125rem; }
.editor-notice.is-error { color:var(--editor-danger); border-color:#dec0b9; background:var(--editor-danger-soft); }
.editor-section,.editor-card { margin-bottom:14px; border:1px solid var(--line); border-radius:10px; background:var(--paper-raised); box-shadow:var(--shadow-sm); }
.editor-section>summary { padding:14px 17px; cursor:pointer; color:var(--forest-dark); font:650 .875rem var(--font-body); list-style:none; }
.editor-section>summary::-webkit-details-marker { display:none; }
.editor-section>summary::after { content:'⌄'; float:right; color:var(--sage); }
.editor-section[open]>summary { border-bottom:1px solid var(--line); }
.editor-section[open]>summary::after { transform:rotate(180deg); }
.editor-count { margin-left:7px; padding:2px 7px; border-radius:999px; color:var(--muted); background:var(--paper); font:.625rem var(--font-mono); }
.editor-grid { display:grid; gap:14px; padding:17px; }
.editor-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.editor-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editor-grid label,.editor-dialog>form>label { display:grid; gap:5px; color:var(--muted); font:.625rem var(--font-mono); text-transform:uppercase; letter-spacing:.05em; }
.editor-grid textarea { resize:vertical; min-height:78px; }
.editor-grid .wide { grid-column:1/-1; }
.editor-check-row { display:flex; gap:22px; padding:0 17px 17px; color:var(--muted); font-size:.75rem; }
.editor-check-row label { display:flex; align-items:center; gap:7px; }
.editor-check-row input { width:17px; height:17px; accent-color:var(--forest); }
.danger-check { color:var(--editor-danger)!important; }
.criterion-toolbar { position:sticky; z-index:12; top:0; display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto; align-items:end; gap:12px; padding:12px 17px; border-bottom:1px solid var(--line); background:rgba(246,243,234,.97); backdrop-filter:blur(8px); }
.criterion-toolbar label { display:grid; gap:5px; min-width:0; color:var(--muted); font:.625rem var(--font-mono); text-transform:uppercase; }
.criterion-toolbar input,.criterion-toolbar select { width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:var(--paper-raised); font:.8125rem var(--font-body); }
.criterion-toolbar input:focus,.criterion-toolbar select:focus { outline:0; border-color:var(--forest); box-shadow:0 0 0 3px rgba(59,87,56,.12); }
.criterion-toolbar .criterion-filled-toggle { display:flex; align-items:center; gap:7px; min-height:39px; padding:0 4px; white-space:nowrap; font:.75rem var(--font-body); text-transform:none; }
.criterion-filled-toggle input { width:17px; height:17px; accent-color:var(--forest); }
.criterion-toolbar p { grid-column:1/-1; margin:0; color:var(--muted); font-size:.6875rem; }
.criteria-editor { padding:0 0 22px; }
.criteria-table-wrap { overflow:visible; }
.criteria-table { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.criteria-table caption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.criteria-table thead th { padding:9px 12px; border-bottom:1px solid var(--line-strong); color:var(--muted); background:#ece9df; text-align:left; font:.625rem var(--font-mono); text-transform:uppercase; letter-spacing:.05em; }
.criteria-table thead th:nth-child(1) { width:15%; }
.criteria-table thead th:nth-child(2) { width:27%; }
.criteria-table thead th:nth-child(3) { width:58%; }
.criteria-table tbody { scroll-margin-top:142px; }
.criteria-table .criterion-main-heading-row th { padding:13px 12px 8px; border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line); color:var(--forest-dark); background:#f0eee4; text-align:left; }
.criteria-table tbody:first-of-type .criterion-main-heading-row th { border-top:0; }
.criterion-main-heading-row strong { font-size:.9375rem; }
.criterion-main-heading-row span { margin-left:10px; color:var(--muted); font:.625rem var(--font-mono); }
.criterion-row>th,.criterion-row>td { position:relative; padding:9px 12px; border-bottom:1px solid var(--line); vertical-align:top; text-align:left; background:#fbfaf4; }
.criterion-row>th { color:var(--ink); font-size:.8125rem; font-weight:650; }
.criterion-level-cell small { display:block; margin-top:4px; color:var(--muted); font:.5625rem var(--font-mono); }
.criterion-level-marker { display:inline-block; padding:3px 7px; border:1px solid var(--line); border-radius:999px; color:var(--forest-dark); background:var(--paper); font:650 .625rem var(--font-body); }
.criterion-level-marker.is-genus { border-color:#c5b788; background:#f4eed7; }
.criterion-level-marker.is-species { border-color:#b7c9b0; background:#edf3e8; }
.criterion-level-marker.is-cultivar { border-color:#b6c9ce; background:#e9f1f2; }
.criterion-type { display:block; margin-top:3px; color:var(--muted); font:.625rem/1.45 var(--font-mono); font-weight:400; }
.criterion-row:hover>th,.criterion-row:hover>td { background:#f8f6ee; }
.criterion-row.is-filled>th,.criterion-row.is-filled>td { background:#f4f7ef; }
.criterion-row.is-filled>th:first-child { box-shadow:inset 3px 0 var(--forest); }
.criterion-editor-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.85fr); align-items:start; gap:10px; }
.criterion-value-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.criterion-clear { flex:0 0 auto; padding:2px 4px; border:0; color:var(--muted); background:transparent; font:.625rem var(--font-body); cursor:pointer; }
.criterion-clear:hover { color:var(--editor-danger); }
.criterion-chips { display:flex; flex-wrap:wrap; gap:5px; }
.criterion-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 8px; border:1px solid #cbd4c3; border-radius:999px; color:var(--forest-dark); background:#edf1e9; font-size:.75rem; }
.criterion-chip.is-new { border-style:dashed; border-color:#c5a45e; background:#fff7df; }
.criterion-chip button { width:18px; height:18px; padding:0; border:0; border-radius:50%; color:var(--muted); background:transparent; cursor:pointer; }
.criterion-empty-value { color:var(--muted); font-size:.75rem; font-style:italic; }
.criterion-inherited-value { flex-basis:100%; color:var(--muted); font:.625rem/1.45 var(--font-body); }
.criterion-input-wrap { position:relative; min-width:0; }
.autocomplete-list { position:absolute; z-index:30; left:0; right:0; max-height:260px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:var(--paper-raised); box-shadow:var(--shadow-md); }
.autocomplete-list button { display:block; width:100%; padding:9px 10px; border:0; border-top:1px solid var(--line); text-align:left; color:var(--ink); background:transparent; cursor:pointer; }
.autocomplete-list button:first-child { border-top:0; }
.autocomplete-list button:hover,.autocomplete-list button:focus { background:var(--paper); outline:0; }
.autocomplete-list small { display:block; color:var(--muted); }
.autocomplete-list .autocomplete-create { color:var(--forest-dark); border-top:1px solid var(--sage); background:#f2f4ea; font-weight:650; }
.criteria-empty,.dependency-empty { padding:10px; color:var(--muted); font-size:.75rem; }
.editor-dependency-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:17px; }
.editor-dependency-grid h3 { margin:0 0 9px; font-style:normal; }
.dependency-list { display:grid; gap:6px; }
.dependency-item { padding:8px 9px; border:1px solid var(--line); border-radius:6px; background:var(--paper); font-size:.75rem; }
.dependency-item small { display:block; color:var(--muted); }
.image-dependency { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:9px; }
.image-dependency.has-preview { grid-template-columns:64px minmax(0,1fr) auto; }
.image-dependency>img { width:64px; height:52px; border-radius:5px; object-fit:cover; background:var(--line); }
.image-dependency strong { display:block; margin-bottom:2px; }
.image-dependency.is-marked-for-deletion { border-color:#b98f87; background:var(--editor-danger-soft); }
.image-dependency.is-marked-for-deletion>img { filter:grayscale(1); opacity:.6; }
.image-deletion-notice { color:var(--editor-danger)!important; font-weight:700; }
.image-delete-button { white-space:nowrap; }
.contributor-attachment-row.is-rejected { opacity:.58; }
.editor-sticky-save { position:fixed; z-index:15; right:22px; bottom:18px; display:flex; align-items:center; gap:14px; padding:9px 10px 9px 14px; border:1px solid var(--line); border-radius:8px; background:rgba(255,253,247,.96); box-shadow:var(--shadow-lg); }
.editor-sticky-save span { color:var(--muted); font-size:.6875rem; }
.editor-sticky-save span.is-dirty { color:var(--gold); font-weight:650; }
.editor-card { max-width:1100px; margin:0 auto; padding:22px; }
.editor-card>p { max-width:780px; color:var(--muted); }
.taxonomy-card + .taxonomy-card { margin-top:20px; }
.taxonomy-inputs { padding:10px 0 15px; }
.taxonomy-inputs label { position:relative; }
.taxonomy-preview { margin-top:20px; }
.taxonomy-summary { margin-bottom:12px; padding:12px; border-radius:7px; color:var(--forest-dark); background:#e9eadc; }
.taxonomy-preview table,.history-table { width:100%; border-collapse:collapse; }
.taxonomy-preview th,.taxonomy-preview td,.history-table th,.history-table td { padding:9px; border-bottom:1px solid var(--line); text-align:left; font-size:.75rem; }
.taxonomy-preview th,.history-table th { color:var(--muted); font:.625rem var(--font-mono); text-transform:uppercase; }
.taxonomy-confirm { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; }
.taxonomy-confirm label { color:var(--editor-danger); font-size:.75rem; }
.history-head { display:flex; justify-content:space-between; gap:16px; }
#history-message { margin-top:14px; }
.history-table-wrap { overflow:auto; }
.history-table th:last-child,.history-table td:last-child { width:150px; text-align:right; }
.history-undo { white-space:nowrap; }
.editor-dialog { width:min(560px,calc(100vw - 30px)); padding:0; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:var(--paper-raised); box-shadow:var(--shadow-lg); }
.editor-dialog::backdrop { background:rgba(26,35,22,.55); }
.editor-dialog form { padding:22px; }
.dialog-head { display:flex; justify-content:space-between; gap:16px; }
.dialog-close { border:0; color:var(--muted); background:transparent; font-size:1.5625rem; cursor:pointer; }
.editor-dialog fieldset { margin:16px 0; padding:12px; border:1px solid var(--line); border-radius:7px; }
.editor-dialog legend { color:var(--muted); font:.625rem var(--font-mono); text-transform:uppercase; }
.editor-dialog fieldset label { display:flex; gap:8px; font-size:.8125rem; }
.editor-dialog fieldset p { margin:7px 0 0 24px; color:var(--muted); font-size:.6875rem; }
.dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }

@media (max-width:980px) {
  .editor-tab.is-active { grid-template-columns:270px minmax(0,1fr); }
  .editor-grid.three { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .editor-topbar { align-items:flex-start; }
  .editor-account { flex-wrap:wrap; justify-content:flex-end; }
  .criterion-editor-layout { display:block; }
  .criterion-input-wrap { margin-top:8px; }
}
@media (max-width:720px) {
  .editor-topbar { display:block; padding:17px; }
  .editor-account { justify-content:flex-start; margin-top:12px; }
  .editor-tabs { padding:0 10px; }
  .editor-tab.is-active { display:block; }
  .editor-search-panel { border-right:0; border-bottom:1px solid var(--line); }
  .editor-workspace { padding:20px 14px 90px; }
  .editor-form-head { display:block; }
  .editor-form-actions { margin-top:13px; }
  .editor-grid.three,.editor-grid.two,.editor-dependency-grid { grid-template-columns:1fr; }
  .criterion-toolbar { position:static; grid-template-columns:1fr; }
  .criterion-toolbar p { grid-column:auto; }
  .criteria-table thead th:nth-child(1) { width:22%; }
  .criteria-table thead th:nth-child(2) { width:30%; }
  .criteria-table thead th:nth-child(3) { width:48%; }
  .editor-sticky-save { left:12px; right:12px; justify-content:space-between; }
}

/* Tabellenköpfe zeigen die internen Schlüssel nur als sekundäre Information. */
.criteria-table thead th small { display:block; margin-top:3px; font-size:.5625rem; font-weight:400; text-transform:none; letter-spacing:0; }

/* Niedrigschwelliger Beitrags- und Prüfbereich. */
.contributor-login { width:min(620px,calc(100% - 32px)); margin:8vh auto; padding:30px; border:1px solid var(--line); border-radius:14px; background:var(--paper-raised); box-shadow:var(--shadow-md); }
.contributor-login h1 { margin:.2em 0; }
.contributor-login>p { color:var(--muted); line-height:1.55; }
.contributor-login-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; margin:24px 0 14px; }
.contributor-login-form label { display:grid; gap:6px; color:var(--muted); font-size:.75rem; }
.contributor-login-form input { padding:11px; border:1px solid var(--line); border-radius:6px; font:inherit; }
.contributor-honeypot { position:absolute!important; left:-10000px!important; }
.contributor-back { display:inline-block; text-decoration:none; }
.contributor-privacy { font-size:.75rem; }
.contributor-shell { display:grid; grid-template-columns:330px minmax(0,1fr); min-height:calc(100vh - 86px); }
.contributor-sidebar { min-width:0; }
.contributor-new { width:100%; margin-bottom:22px; }
.contributor-submission-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:26px 0 8px; padding-top:18px; border-top:1px solid var(--line); }
.contributor-submission-head h2 { margin:0; font-size:1rem; }
.contributor-submission-head button { padding:5px 8px; }
.contributor-upload { padding:0 17px 17px; }
.contributor-upload>.editor-grid { padding:12px 0; }
.contributor-rights { display:flex; align-items:flex-start; gap:8px; margin:0 0 12px; color:var(--muted); font-size:.75rem; }
.contributor-rights input { flex:0 0 auto; width:18px; height:18px; accent-color:var(--forest); }
.contributor-license { margin:0 0 9px; color:var(--muted); font-size:.75rem; }
.contributor-license a { color:var(--forest-dark); font-weight:650; }
.contributor-attachment { display:block; color:var(--forest-dark); text-decoration:none; }
.contributor-attachment-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; }
.submission-filter-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.submission-filter-head>label { margin:0!important; }
.submission-queue>select { width:100%; margin-bottom:14px; padding:9px; border:1px solid var(--line); border-radius:6px; background:var(--paper-raised); }
.submission-review { padding-bottom:45px; }
.submission-status { padding:5px 9px; border-radius:999px; color:var(--forest-dark); background:var(--sage-soft); font-size:.75rem; font-weight:650; }
.submission-status[data-status="rejected"] { color:var(--editor-danger); background:var(--editor-danger-soft); }
.submission-status[data-status="approved"] { color:#fff; background:var(--forest); }
.submission-source,.submission-diff-section,.submission-attachments,.submission-events { padding:17px; }
.submission-source h3,.submission-diff-section h3,.submission-attachments h3,.submission-events h3 { margin:0 0 12px; }
.submission-source dl { display:grid; grid-template-columns:170px minmax(0,1fr); gap:7px 14px; margin:0; font-size:.8125rem; }
.submission-source dt { color:var(--muted); font-weight:650; }
.submission-source dd { min-width:0; margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.submission-diff th:nth-child(1) { width:11%; }
.submission-diff th:nth-child(2) { width:25%; }
.submission-diff th:nth-child(3),.submission-diff th:nth-child(4) { width:32%; }
.submission-diff td { max-width:360px; overflow-wrap:anywhere; vertical-align:top; }
.submission-diff tbody tr.has-change td { background:#f8f7f1; }
.submission-diff tr.is-conflict td { background:#fff2e4; }
.diff-values { white-space:normal; }
.diff-value { display:inline-block; margin:0 5px 5px 0; padding:3px 7px; border-radius:999px; line-height:1.35; white-space:pre-wrap; }
.diff-value.is-removed { color:#777771; background:#e5e4df; text-decoration:line-through; text-decoration-thickness:1.5px; }
.diff-value.is-added { color:#174d2a; background:#dcebdc; box-shadow:inset 3px 0 #3b6b42; font-weight:750; }
.diff-value.is-unchanged { color:var(--muted); background:var(--paper); }
.diff-current { display:block; margin-top:4px; color:var(--editor-danger); font-weight:650; }
.submission-decision { position:sticky; bottom:12px; display:grid; grid-template-columns:minmax(260px,1fr) auto; align-items:end; gap:14px; padding:14px; border:1px solid var(--line-strong); border-radius:10px; background:rgba(255,253,247,.97); box-shadow:var(--shadow-lg); }
.submission-decision label { display:grid; gap:5px; color:var(--muted); font-size:.75rem; }
.submission-decision textarea { width:100%; padding:9px; border:1px solid var(--line); border-radius:6px; resize:vertical; font:inherit; }
.submission-decision-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.editor-dialog select { width:100%; padding:10px 11px; border:1px solid var(--line); border-radius:6px; background:var(--paper-raised); font:inherit; }
.editor-dialog>form>label { margin-top:12px; }
.editor-dialog>form>label[hidden] { display:none!important; }

@media (max-width:720px) {
  .contributor-shell { display:block; }
  .contributor-login-form { grid-template-columns:1fr; }
  .submission-source dl,.submission-decision { grid-template-columns:1fr; }
}
