/* Erntefeste-Kalender Styles */
/* ── CSS-Variablen: LIGHT MODE ── */
  :root {
    --bg:            transparent;
    --bg-card:       rgba(0,0,0,0.04);
    --bg-inner:      rgba(0,0,0,0.05);
    --bg-detail:     rgba(0,0,0,0.04);
    --text:          #1a1a1a;
    --text-muted:    #666666;
    --accent:        #b89200;
    --border:        rgba(0,0,0,0.13);
    --border-card:   rgba(0,0,0,0.14);
    --sep:           linear-gradient(90deg,transparent,#c8a000 35%,#6655cc 65%,transparent);
    --shadow:        0 3px 16px rgba(0,0,0,0.08);
    --shadow-hover:  0 6px 28px rgba(0,0,0,0.15);
    --badge-ja:      #155724; --badge-ja-bg:   #d4edda;
    --badge-nein:    #721c24; --badge-nein-bg: #f8d7da;
    --badge-unk:     #383d41; --badge-unk-bg:  #e2e3e5;
    --tag-hover:     rgba(0,0,0,0.05);
    --nodate-bg:     rgba(0,0,0,0.03);
    --nodate-border: rgba(0,0,0,0.09);
    --link-color:    #b89200;
    --link-hover:    #d4a800;
    --maps-color:    #1a73e8;
    --maps-hover:    #1557b0;
    --loader-bg:     rgba(255,255,255,0.88);
    --error-bg:      #fff3f3;
    --error-border:  #ffcccc;
    --error-text:    #cc0000;
  }

  /* ── DARK MODE: nur Text- und Akzentfarben wechseln, Hintergrund bleibt transparent ── */
  body.darkmode #ef-root {
    --bg-card:       rgba(255,255,255,0.07);
    --bg-inner:      rgba(255,255,255,0.05);
    --bg-detail:     rgba(255,255,255,0.06);
    --text:          #f0f0f0;
    --text-muted:    #aaaaaa;
    --accent:        #f5c518;
    --border:        rgba(255,255,255,0.12);
    --border-card:   rgba(255,255,255,0.14);
    --sep:           linear-gradient(90deg,transparent,#6666ee 35%,#9999ff 65%,transparent);
    --shadow:        0 3px 16px rgba(0,0,0,0.40);
    --shadow-hover:  0 6px 28px rgba(0,0,0,0.60);
    --badge-ja:      #75e096; --badge-ja-bg:   rgba(21,87,36,0.35);
    --badge-nein:    #ff8a8a; --badge-nein-bg: rgba(114,28,36,0.35);
    --badge-unk:     #cccccc; --badge-unk-bg:  rgba(255,255,255,0.10);
    --tag-hover:     rgba(255,255,255,0.07);
    --nodate-bg:     rgba(255,255,255,0.04);
    --nodate-border: rgba(255,255,255,0.10);
    --link-color:    #f5c518;
    --link-hover:    #ffd740;
    --maps-color:    #5ca8ff;
    --maps-hover:    #80bfff;
    --loader-bg:     rgba(0,0,0,0.75);
    --error-bg:      rgba(204,0,0,0.12);
    --error-border:  rgba(204,0,0,0.30);
    --error-text:    #ff8a8a;
  }

  /* ── Reset ── */
  html, body { margin: 0; padding: 0; background: transparent; color-scheme: light; }
  body.darkmode { color-scheme: dark; }

  #ef-root *, #ef-root *::before, #ef-root *::after {
    box-sizing: border-box; margin: 0; padding: 0;
    -webkit-tap-highlight-color: transparent;
  }
  /* Smooth scrolling auf iOS */
  #ef-root { -webkit-overflow-scrolling: touch; }

  /* ── Reduzierte Bewegung respektieren (Barrierefreiheit) ── */
  @media (prefers-reduced-motion: reduce) {
    #ef-root *, #ef-root *::before, #ef-root *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

  /* ── Wrapper ── */
  #ef-root {
    font-family: 'Segoe UI', system-ui, Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
    max-width: 920px;
    margin: 0 auto;
    padding: 44px 22px 56px;
    transition: color .25s;
    position: relative;
    min-height: 200px;
  }

  /* ── Loader ── */
  #ef-loader {
    position: fixed; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 14px;
    background: transparent;
    border-radius: 0; z-index: 950;
    transition: opacity .22s ease, visibility 0s linear .22s;
  }
  #ef-loader.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
  #ef-root.ef-loading #ef-body { visibility: hidden; }
  .ef-spinner {
    width: 38px; height: 38px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ef-spin .7s linear infinite;
  }
  @keyframes ef-spin { to { transform: rotate(360deg); } }
  #ef-loader p { font-size: .88rem; color: var(--text-muted); }

  /* ── Fehler-Box ── */
  #ef-error {
    display: none;
    background: var(--error-bg);
    border: 1px solid var(--error-border);
    color: var(--error-text);
    border-radius: 10px;
    padding: 18px 22px;
    margin-bottom: 20px;
    font-size: .9rem;
    line-height: 1.7;
  }
  #ef-error.visible { display: block; }
  #ef-error code {
    background: rgba(0,0,0,0.07);
    padding: 1px 5px;
    border-radius: 4px;
    font-size: .82rem;
  }

  /* ── Header ── */
  #ef-root .ef-header { text-align: center; margin-bottom: 36px; }
  #ef-root .ef-header h2 {
    font-size: clamp(1.8rem,4vw,2.5rem);
    font-weight: 800; color: var(--text);
    letter-spacing: 1px; margin-bottom: 8px;
  }
  #ef-root .ef-header p { font-size: 1rem; color: var(--text-muted); }

  /* ── Monats-Akkordeon ── */
  #ef-root .ef-month {
    border: 1.5px solid var(--border-card);
    border-radius: 14px; margin-bottom: 14px;
    overflow: hidden; box-shadow: var(--shadow);
    transition: box-shadow .3s, border-color .3s;
    animation: ef-slidein .4s ease backwards;
  }
  #ef-root .ef-month:hover  { box-shadow: var(--shadow-hover); }
  #ef-root .ef-month.open   { border-color: var(--accent); }

  @keyframes ef-slidein {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  #ef-root .ef-month-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 17px 22px;
    background: var(--bg-card);
    cursor: pointer; user-select: none;
    transition: background .2s;
    border-radius: 12px;
    touch-action: manipulation;
  }
  @media (hover:hover) and (pointer:fine) {
    #ef-root .ef-month-header:hover { background: var(--bg-inner); }
  }
  #ef-root .ef-month.open .ef-month-header { border-radius: 12px 12px 0 0; }

  #ef-root .ef-month-title {
    font-size: 1.1rem; font-weight: 700;
    color: var(--text); letter-spacing: .4px;
  }
  #ef-root .ef-month-meta {
    font-size: .78rem; color: var(--text-muted);
    font-weight: 400; margin-left: 8px;
  }
  #ef-root .ef-toggle-icon {
    font-size: 1.4rem; color: var(--text-muted);
    position: relative; width: 1em; height: 1em; flex: 0 0 1em;
    transform-origin: 50% 50%;
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    transform: translateZ(0);
  }
  /* Both strokes meet at the rotation centre, independently of font metrics. */
  #ef-root .ef-toggle-icon::before,
  #ef-root .ef-toggle-icon::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    width: .72em; height: 1.5px; border-radius: 1px;
    background: currentColor; transform: translate(-50%, -50%);
  }
  #ef-root .ef-toggle-icon::after { width: 1.5px; height: .72em; }
  #ef-root .ef-month.open .ef-toggle-icon { transform: rotate(45deg) translateZ(0); }

  /* ── Monats-Body ── */
  #ef-root .ef-month-body {
    max-height: 0; overflow: hidden;
    transition: max-height .45s cubic-bezier(.4,0,.2,1);
    background: var(--bg);
    will-change: auto;
  }
  #ef-root .ef-month.open .ef-month-body { max-height: 6000px; }
  #ef-root .ef-month-inner { padding: 16px 16px 8px; }

  /* ── Kein-Datum-Label ── */
  #ef-root .ef-nodate-label {
    font-size: .72rem; text-transform: uppercase;
    letter-spacing: .9px; color: var(--text-muted);
    font-weight: 600; margin: 16px 0 8px 4px; opacity: .7;
  }

  /* ── Einzelnes Fest ── */
  #ef-root .ef-item {
    border: 1px solid var(--border); border-radius: 9px;
    margin-bottom: 8px; overflow: hidden;
    scroll-margin-top: 18px;
    transition: border-color .2s, box-shadow .2s;
  }
  @media (hover:hover) and (pointer:fine) {
    #ef-root .ef-item:hover { border-color: var(--accent); }
  }
  #ef-root .ef-item.open    { box-shadow: 0 2px 10px rgba(200,160,0,.15); }
  #ef-root .ef-item.no-date {
    background: var(--nodate-bg);
    border-color: var(--nodate-border); opacity: .75;
  }

  /* Kopfzeile */
  #ef-root .ef-item-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center; gap: 10px;
    padding: 13px 16px; cursor: pointer;
    transition: background .2s;
    touch-action: manipulation;
  }
  #ef-root .ef-item.open > .ef-item-row { background: var(--tag-hover); }
  @media (hover:hover) and (pointer:fine) {
    #ef-root .ef-item-row:hover { background: var(--tag-hover); }
  }

  /* ── Festival-Name: Link-Styling ── */
  #ef-root .ef-item-name {
    font-weight: 700; font-size: .95rem;
    display: flex; align-items: center; gap: 5px;
    overflow: hidden; white-space: nowrap; min-width: 0;
  }
  #ef-root .ef-item-name > a,
  #ef-root .ef-item-name > span:not(.ef-sug-indicator) {
    color: var(--accent);
    text-decoration: none;
    display: inline-flex; align-items: center; gap: 4px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
  }
  #ef-root .ef-item-name a:hover {
    color: var(--link-hover);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  #ef-root .ef-item-name a:hover .ef-ext-icon { opacity: .9; }
  /* Ketten-Icon neben dem Festivalnamen (Website-Link) */
  #ef-root .ef-ext-icon {
    display: inline-block; width: 12px; height: 12px;
    flex-shrink: 0; opacity: .45;
    transition: opacity .2s;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b89200' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-size: contain;
  }
  body.darkmode #ef-root .ef-ext-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f5c518' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
  }
  #ef-root .ef-item.no-date .ef-item-name a,
  #ef-root .ef-item.no-date .ef-item-name span { color: var(--text-muted); }
  #ef-root .ef-item.no-date .ef-ext-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
  }

  #ef-root .ef-item-date {
    font-size: .85rem; color: var(--text);
    white-space: nowrap; font-variant-numeric: tabular-nums;
    display: flex; align-items: center; gap: 6px;
  }
  /* Wochentag-Pill neben dem Datum */
  #ef-root .ef-day-pill {
    font-size: .72rem; font-weight: 700;
    background: var(--tag-hover);
    color: var(--accent);
    border: 1px solid var(--accent);
    border-radius: 4px;
    padding: 1px 5px;
    letter-spacing: .3px;
    opacity: .85;
  }
  #ef-root .ef-item-chevron {
    font-size: .7rem; color: var(--text-muted);
    transition: transform .25s cubic-bezier(.4,0,.2,1); flex-shrink: 0;
    transform: translateZ(0);
  }
  #ef-root .ef-item.open .ef-item-chevron { transform: rotate(180deg) translateZ(0); }

  /* Trennlinie */
  #ef-root .ef-sep { height: 1px; border: none; background: var(--sep); }

  /* Detail-Bereich */
  #ef-root .ef-item-detail {
    max-height: 0; overflow: hidden;
    transition: max-height .35s cubic-bezier(.4,0,.2,1);
    will-change: max-height;
  }
  #ef-root .ef-item.open .ef-item-detail { max-height: 900px; }

  #ef-root .ef-detail-grid {
    padding: 13px 16px 16px;
    background: var(--bg-detail);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 12px 20px;
  }
  #ef-root .ef-detail-block {
    display: flex; flex-direction: column; gap: 3px;
  }
  #ef-root .ef-detail-label {
    font-size: .68rem; text-transform: uppercase;
    letter-spacing: .7px; color: var(--text-muted); font-weight: 600;
  }
  #ef-root .ef-detail-value {
    font-size: .88rem; color: var(--text); font-weight: 500;
  }

  /* ── Google-Maps-Link ── */
  #ef-root .ef-maps-link {
    display: inline-flex; align-items: center; gap: 5px;
    color: var(--maps-color);
    text-decoration: none;
    font-size: .88rem; font-weight: 500;
    transition: color .2s;
  }
  #ef-root .ef-maps-link:hover { color: var(--maps-hover); text-decoration: underline; }
  #ef-root .ef-maps-icon {
    display: inline-block; width: 14px; height: 14px; flex-shrink: 0;
    /* SVG-Pin als data-URI */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%231a73e8'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5 14.5 7.62 14.5 9 13.38 11.5 12 11.5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-size: contain;
  }
  body.darkmode #ef-root .ef-maps-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235ca8ff'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5 14.5 7.62 14.5 9 13.38 11.5 12 11.5z'/%3E%3C/svg%3E");
  }

  /* ── Aktions-Leiste (Kalender + Vorschlag) ── */
  #ef-root .ef-suggest-bar {
    padding: 10px 16px 14px;
    background: var(--bg-detail);
    display: flex; justify-content: flex-start; align-items: center;
    border-top: 1px solid var(--border);
    gap: 8px; flex-wrap: wrap;
  }
  /* Vorschlag-Button */
  #ef-root .ef-suggest-action,
  #ef-root .ef-interest-wrap { display:flex; flex:0 1 auto; min-width:0; max-width:100%; }
  #ef-root .ef-suggest-bar button { max-width:100%; justify-content:center; }
  #ef-root .ef-suggest-action { margin-left:0; }
  @media (min-width:861px) {
    #ef-root .ef-suggest-action { margin-left:auto; }
  }
  #ef-root .ef-suggest-btn {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .78rem; font-weight: 600;
    color: var(--text-muted);
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 5px 12px;
    cursor: pointer;
    transition: color .2s, border-color .2s, background .2s;
    font-family: inherit; margin-left: auto;
  }
  #ef-root .ef-suggest-btn:hover {
    color: var(--accent);
    border-color: var(--accent);
    background: var(--tag-hover);
  }
  /* Text-Varianten: normal = "vorschlagen", admin = "vornehmen" */
  .ef-lbl-suggest { display:inline-flex; align-items:center; gap:6px; line-height:1; }
  .ef-lbl-edit { display: none; align-items:center; gap:6px; line-height:1; }
  body.ef-editmode .ef-lbl-suggest { display: none; }
  body.ef-editmode .ef-lbl-edit    { display: inline-flex; }
  /* Interesse-Button im Admin-Modus ausblenden */
  body.ef-editmode .ef-interest-wrap { display: none; }
  /* Kalender-Button */
  #ef-root :is(.ef-cal-btn, .ef-share-btn) {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: .78rem; font-weight: 600;
    color: var(--maps-color);
    background: transparent;
    border: 1px solid var(--maps-color);
    border-radius: 6px;
    padding: 5px 12px;
    cursor: pointer;
    transition: color .2s, border-color .2s, background .2s;
    font-family: inherit; opacity: .85;
  }
  #ef-root :is(.ef-cal-btn, .ef-share-btn):hover {
    background: rgba(26,115,232,0.08);
    opacity: 1;
  }
  body.darkmode #ef-root :is(.ef-cal-btn, .ef-share-btn) {
    color: var(--maps-color); border-color: var(--maps-color);
  }
  body.darkmode #ef-root :is(.ef-cal-btn, .ef-share-btn):hover {
    background: rgba(92,168,255,0.1);
  }

  /* ── Vorschlag (unbestätigt) ── */
  #ef-root .ef-sug-field {
    display: flex; align-items: center; gap: 6px;
    margin-top: 5px; flex-wrap: wrap;
  }
  #ef-root .ef-sug-badge {
    font-size: .6rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .4px; padding: 1px 6px; border-radius: 10px;
    background: rgba(240,165,0,0.15); color: #b07000;
    border: 1px solid rgba(240,165,0,0.4);
    white-space: nowrap; flex-shrink: 0;
  }
  body.darkmode #ef-root .ef-sug-badge {
    color: #f0c040; background: rgba(240,165,0,0.12);
    border-color: rgba(240,165,0,0.3);
  }
  #ef-root .ef-sug-val {
    font-size: .82rem; color: var(--text-muted); font-style: italic;
  }

  /* Eintrag mit ausstehendem Vorschlag – subtile Markierung */
  #ef-root .ef-item.ef-has-suggestion {
    border-color: rgba(240,165,0,0.45);
  }
  /* Glühbirne als SVG-Icon – vertikal zentriert */
  #ef-root .ef-sug-indicator {
    display: inline-flex; align-items: center; flex-shrink: 0;
    color: var(--accent); opacity: .8;
  }
  #ef-root .ef-sug-icon {
    width: 13px; height: 13px; flex-shrink: 0;
  }

  /* Admin-Bar: Bestätigen / Ablehnen – nur im Edit-Modus */
  #ef-root .ef-sug-admin-bar {
    display: none;
    padding: 9px 16px;
    background: rgba(240,165,0,0.07);
    border-top: 1px solid rgba(240,165,0,0.25);
    align-items: center; gap: 8px; flex-wrap: wrap;
  }
  body.ef-editmode #ef-root .ef-sug-admin-bar { display: flex; }
  #ef-root .ef-sug-notice {
    font-size: .75rem; color: #b07000; font-weight: 600; flex: 1;
  }
  body.darkmode #ef-root .ef-sug-notice { color: #f0c040; }
  #ef-root .ef-sug-confirm-btn, #ef-root .ef-sug-reject-btn {
    padding: 5px 12px; border-radius: 6px;
    font-size: .75rem; font-weight: 700;
    cursor: pointer; border: none; font-family: inherit;
    transition: opacity .15s;
  }
  #ef-root .ef-sug-confirm-btn { background: #155724; color: #d4edda; }
  #ef-root .ef-sug-confirm-btn:hover { opacity: .82; }
  #ef-root .ef-sug-reject-btn  { background: #721c24; color: #f8d7da; }
  #ef-root .ef-sug-reject-btn:hover  { opacity: .82; }

  /* ── Anmeldungs-Badge ── */
  #ef-root .ef-badge {
    display: inline-block; font-size: .7rem;
    font-weight: 700; padding: 2px 9px;
    border-radius: 20px; text-transform: uppercase; letter-spacing: .5px;
  }
  #ef-root .ef-badge.ja   { background: var(--badge-ja-bg);   color: var(--badge-ja);   }
  #ef-root .ef-badge.nein { background: var(--badge-nein-bg); color: var(--badge-nein); }
  #ef-root .ef-badge.unk  { background: var(--badge-unk-bg);  color: var(--badge-unk);  }

  /* ── Admin: offene neue Erntefest-Vorschläge ── */
  #ef-root .ef-newsug-block {
    margin: 0 0 22px;
    padding: 14px 16px 12px;
    background: rgba(240,165,0,0.08);
    border: 1.5px solid rgba(240,165,0,0.4);
    border-radius: 12px;
  }
  body.darkmode #ef-root .ef-newsug-block {
    background: rgba(240,165,0,0.10);
    border-color: rgba(240,165,0,0.35);
  }
  #ef-root .ef-newsug-title {
    font-size: .85rem; font-weight: 700;
    color: #b07000; margin-bottom: 10px;
    letter-spacing: .3px;
  }
  body.darkmode #ef-root .ef-newsug-title { color: #f0c040; }
  #ef-root .ef-newsug-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 8px;
  }
  #ef-root .ef-newsug-card:last-child { margin-bottom: 0; }
  #ef-root .ef-newsug-name {
    font-weight: 700; color: var(--text); font-size: .92rem;
    margin-bottom: 4px;
  }
  #ef-root .ef-newsug-meta {
    font-size: .78rem; color: var(--text-muted); line-height: 1.6;
    margin-bottom: 8px;
  }
  #ef-root .ef-newsug-meta strong { color: var(--text); font-weight: 600; }
  #ef-root .ef-newsug-actions {
    display: flex; gap: 8px; flex-wrap: wrap;
  }

  /* "Erntefest fehlt?"-Button im Footer */
  #ef-root .ef-footer-add-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: transparent;
    border: 1.5px solid var(--accent);
    color: var(--accent);
    border-radius: 10px;
    padding: 9px 18px;
    font-size: .88rem; font-weight: 600;
    cursor: pointer; font-family: inherit;
    transition: background .2s, color .2s, transform .15s;
    touch-action: manipulation;
  }
  #ef-root .ef-footer-add-btn:hover { background: var(--accent); color: #111; }
  body.darkmode #ef-root .ef-footer-add-btn:hover { color: #111; }
  #ef-root .ef-footer-add-btn:active { transform: scale(.97); }
  #ef-root .ef-footer-add-icon {
    font-size: 1.2rem; font-weight: 800; line-height: 1;
  }

  /* ── Footer ── */
  #ef-root .ef-footer {
    margin-top: 40px;
    padding: 28px 16px 12px;
    display: flex; flex-direction: column;
    align-items: center; gap: 18px;
    border-top: 1px solid var(--border);
    text-align: center;
  }
  #ef-root .ef-footer-info {
    font-size: .9rem; color: var(--text-muted); line-height: 1.6;
  }
  #ef-root .ef-footer-info a {
    color: var(--accent); text-decoration: none; font-weight: 600;
  }
  #ef-root .ef-footer-info a:hover { text-decoration: underline; }
  #ef-root .ef-footer-meta {
    display:grid; justify-items:center; gap:4px;
    font-size:.72rem; color:var(--text-muted); opacity:.7; line-height:1.6;
  }
  #ef-root .ef-footer-meta-line { display:block; }
  #ef-root .ef-footer-meta strong { color: var(--text-muted); font-weight: 600; }
  #ef-root .ef-footer-meta-line strong { white-space:nowrap; }
  #ef-root .ef-footer-build { font-variant-numeric:tabular-nums; }

  /* ── Jahr-Navigation: segmentierter Pill-Switch ── */
  #ef-root .ef-year-nav {
    display: inline-flex; align-items: stretch;
    background: var(--bg-card);
    border: 1px solid var(--border-card);
    border-radius: 14px;
    padding: 4px;
    gap: 2px;
    box-shadow: var(--shadow);
    user-select: none;
  }
  #ef-root .ef-year-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 40px;
    background: transparent; border: none;
    border-radius: 10px;
    padding: 6px 14px;
    font-size: 1.2rem; font-weight: 700; line-height: 1;
    color: var(--text-muted);
    cursor: pointer; font-family: inherit;
    transition: background .2s, color .2s, transform .15s;
    touch-action: manipulation;
  }
  #ef-root .ef-year-btn:hover {
    background: var(--tag-hover); color: var(--accent);
  }
  #ef-root .ef-year-btn:active { transform: scale(.94); }
  #ef-root .ef-year-current {
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--accent); color: #111;
    padding: 8px 22px;
    border-radius: 10px;
    font-weight: 800; font-size: 1rem;
    min-width: 76px; letter-spacing: .5px;
    font-variant-numeric: tabular-nums;
  }
  body.darkmode #ef-root .ef-year-current { color: #111; }

  /* ── Interesse-Zähler neben dem Namen ── */
  #ef-root .ef-item-interest {
    display: inline-flex; align-items: center; gap: 3px;
    flex-shrink: 0;
    font-size: .72rem; font-weight: 700;
    color: #1a73e8;
    background: rgba(26,115,232,0.10);
    border: 1px solid rgba(26,115,232,0.25);
    border-radius: 10px;
    padding: 1px 7px;
    line-height: 1.4;
  }
  body.darkmode #ef-root .ef-item-interest {
    color: #5ca8ff; background: rgba(92,168,255,0.12); border-color: rgba(92,168,255,0.28);
  }

  /* ── LJ-Mitfahrt-Pill ── */
  #ef-root .ef-mitfahrt-pill {
    width: 1.8rem;
    height: 1.8rem;
    min-width: 1.8rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: rgba(22, 163, 74, 0.12);
    color: #16803a;
    border: 1px solid rgba(22, 163, 74, 0.35);
    border-radius: 999px;
    white-space: nowrap;
  }
  #ef-root .ef-mitfahrt-icon {
    width: .82rem;
    height: .82rem;
    display: block;
    stroke: currentColor;
    stroke-width: 2.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: translateY(.045rem);
    transform-origin: center;
  }
  body.darkmode #ef-root .ef-mitfahrt-pill {
    background: rgba(74, 222, 128, 0.14);
    color: #75d98a;
    border-color: rgba(74, 222, 128, 0.38);
  }

  /* ── Interesse-Button ── */
  #ef-root .ef-interest-btn {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .78rem; font-weight: 600;
    color: #1a73e8; background: transparent;
    border: 1px solid rgba(26,115,232,0.4);
    border-radius: 6px; padding: 5px 12px;
    cursor: pointer; font-family: inherit;
    transition: all .2s;
  }
  #ef-root .ef-interest-btn:hover:not(:disabled) {
    background: rgba(26,115,232,0.08); border-color: #1a73e8;
  }
  #ef-root .ef-interest-btn.ef-interest-done {
    color: #155724; border-color: rgba(21,87,36,0.3);
    background: rgba(21,87,36,0.06); cursor: pointer;
  }
  #ef-root .ef-interest-btn.ef-interest-error {
    color: #a61b1b;
    border-color: rgba(166,27,27,.4);
    background: rgba(166,27,27,.08);
  }
  .ef-interest-count {
    background: rgba(26,115,232,0.15); color: #1a73e8;
    border-radius: 10px; padding: 1px 6px; font-size: .7rem; font-weight: 700;
  }
  .ef-interest-btn.ef-interest-done .ef-interest-count {
    background: rgba(21,87,36,0.15); color: #155724;
  }
  body.darkmode #ef-root .ef-interest-btn { color: #5ca8ff; border-color: rgba(92,168,255,0.35); }
  body.darkmode #ef-root .ef-interest-btn.ef-interest-done { color: #75c687; border-color: rgba(117,198,135,0.3); background: rgba(117,198,135,0.08); }

  /* ── "Als nächstes"-Banner oben im Eintrag ── */
  #ef-root .ef-next-bar {
    display: flex; align-items: center; gap: 6px;
    padding: 5px 14px;
    font-size: .7rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .7px;
    background: var(--accent);
    color: #fff;
    border-radius: 0;
    margin: 0;
  }
  body.darkmode #ef-root .ef-next-bar { color: #111; }
  #ef-root .ef-next-group {
    border: 3px solid var(--accent); border-radius:10px; overflow:hidden; margin-bottom:8px;
    /* One outline and one corner clip; fill behind the banner's top corners. */
    background: linear-gradient(var(--accent), var(--accent)) top / 100% 10px no-repeat;
    box-shadow: var(--shadow);
  }
  #ef-root .ef-next-group .ef-item { margin:0; border:0; border-radius:0; box-shadow:none; }
  #ef-root .ef-next-group .ef-item + .ef-item { border-top:1px solid var(--border); }

  /* ── "Keine weiteren Erntefeste"-Hinweis ── */
  #ef-root .ef-past-notice {
    display: flex; flex-direction: column; gap: 10px;
    padding: 18px 22px;
    border: 1.5px solid var(--border-card);
    border-radius: 14px;
    background: var(--bg-card);
    margin-bottom: 22px;
    animation: ef-slidein .4s ease both;
  }
  #ef-root .ef-past-notice-title {
    font-size: 1rem; font-weight: 700; color: var(--text);
    display: flex; align-items: center; gap: 8px;
  }
  #ef-root .ef-past-notice-text {
    font-size: .88rem; color: var(--text-muted); line-height: 1.6;
  }
  #ef-root .ef-past-notice-btn {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .82rem; font-weight: 600;
    color: var(--accent); border: 1.5px solid var(--accent);
    border-radius: 8px; padding: 7px 16px;
    text-decoration: none; background: transparent;
    transition: background .2s, color .2s;
    font-family: inherit;
  }
  #ef-root .ef-past-notice-btn:hover {
    background: var(--accent); color: #fff;
  }
  body.darkmode #ef-root .ef-past-notice-btn:hover { color: #111; }

  /* ══ BETA: Edit-Modus ══════════════════════════════════════════════ */

  /* Edit-Button als Pille im Footer (statt floatend) */
  #ef-root #ef-edit-fab {
    display: inline-flex; align-items: center; gap: 8px;
    background: transparent;
    border: 1.5px solid var(--border);
    border-radius: 999px;
    padding: 7px 18px;
    font-size: .8rem; font-weight: 600;
    color: var(--text-muted);
    cursor: pointer; font-family: inherit;
    transition: background .2s, color .2s, border-color .2s, transform .15s;
    touch-action: manipulation;
    margin-top: 2px;
  }
  /* Save-Bar direkt unter Edit-Button → kleiner Gap */
  #ef-root #ef-save-bar { margin-top: -10px; }
  #ef-root #ef-edit-fab:hover:not(.active) {
    border-color: var(--accent); color: var(--accent);
    background: var(--tag-hover);
  }
  #ef-root #ef-edit-fab:active { transform: scale(.97); }
  #ef-root #ef-edit-fab.active {
    background: rgba(204,34,0,0.12);
    border-color: #cc2200;
    color: #cc2200;
  }
  #ef-root #ef-edit-fab.active:hover {
    background: rgba(204,34,0,0.2);
  }
  /* Modal Overlay – Position wird per JS gesetzt (iframe-Fall) bzw.
     fällt im Standalone-Fall auf fixed zurück */
  .ef-modal-overlay {
    display: none; position: fixed; inset: 0; z-index: 1000;
    align-items: center; justify-content: center;
    padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left)); box-sizing: border-box; overflow: hidden;
    background: rgba(15,23,42,0.36);
    backdrop-filter: blur(6px);
  }
  .ef-modal-overlay.visible { display: flex; }
  html.ef-modal-scroll-lock, body.ef-modal-scroll-lock { overflow:hidden !important; overscroll-behavior:none; touch-action:none; }
  body.ef-modal-scroll-lock .ef-modal-box { touch-action:pan-y; overscroll-behavior:contain; }

  .ef-modal-box {
    --ef-modal-padding-block:30px;
    --ef-modal-padding-inline:30px;
    background: #ffffff; color: #111827; border-radius: 14px;
    padding: 30px; width: min(620px, 100%); max-width: 620px; box-sizing:border-box;
    border: 1px solid rgba(15,23,42,0.10);
    box-shadow: 0 24px 70px rgba(15,23,42,0.30), 0 6px 20px rgba(15,23,42,0.16);
    position: relative; max-height: 88vh; overflow-y: auto;
    font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    font-style: normal;
    line-height: 1.45;
  }
  body.darkmode .ef-modal-overlay { background: rgba(0,0,0,0.55); }
  body.darkmode .ef-modal-box {
    background: #181818; color: #f4f4f5;
    border-color: rgba(255,255,255,0.12);
    box-shadow: 0 24px 80px rgba(0,0,0,0.55), 0 8px 28px rgba(0,0,0,0.38);
  }
  .ef-modal-box h3 {
    font-size: 1.22rem; font-weight: 750; line-height: 1.25;
    margin-bottom: 20px; color: inherit; letter-spacing: 0;
  }
  .ef-modal-box > p, .ef-modal-scroll-body > p {
    color: #64748b !important;
    font-size: .9rem !important;
    line-height: 1.6 !important;
    margin-bottom: 18px !important;
    font-style: normal;
  }
  body.darkmode .ef-modal-box > p, body.darkmode .ef-modal-scroll-body > p { color: #a1a1aa !important; }
  .ef-modal-close {
    position: absolute; top: 14px; right: 14px;
    width: 32px; height: 32px; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #f1f5f9; border: 1px solid transparent;
    font-size: 1.25rem; cursor: pointer; color: #64748b; line-height: 1;
    font-family: inherit; transition: background .2s, color .2s, border-color .2s, transform .15s;
  }
  .ef-modal-close:hover { color: #cc2200; background: #fff1f0; border-color: rgba(204,34,0,0.16); }
  .ef-modal-close:active { transform: scale(.96); }
  body.darkmode .ef-modal-close { background: #27272a; color: #d4d4d8; }
  body.darkmode .ef-modal-close:hover { background: rgba(204,34,0,0.18); color: #ff9a8f; }

  /* Formular */
  .ef-form-group { display: flex; flex-direction: column; gap: 7px; margin-bottom: 15px; }
  .ef-form-group[hidden], .ef-form-row[hidden] { display:none !important; }
  .ef-form-group label {
    font-size: .82rem; font-weight: 650; text-transform: none;
    letter-spacing: 0; color: #334155; font-style: normal;
  }
  body.darkmode .ef-form-group label { color: #d4d4d8; }
  .ef-form-group input, .ef-form-group select {
    min-height: 42px;
    padding: 10px 12px; border-radius: 8px; font-size: .94rem;
    border: 1px solid #d5dce8; background: #fff; color: #111827;
    font-family: inherit; font-style: normal;
    transition: border-color .2s, box-shadow .2s, background .2s;
  }
  .ef-edit-section .ef-form-group input,
  .ef-edit-section .ef-custom-select-trigger {
    width: 100%; height: 44px; min-height: 44px; box-sizing: border-box;
  }
  .ef-form-group select {
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    padding-right: 38px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
  }
  .ef-form-group input::placeholder { color: #94a3b8; font-style: normal; }
  body.darkmode .ef-form-group input { background-color: #202226; border-color: #3a3d43; color: #f4f4f5; background-image: none; }
  body.darkmode .ef-form-group select { background-color: #202226; border-color: #3a3d43; color: #f4f4f5; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23d4d4d8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; }
  body.darkmode .ef-form-group input::placeholder { color: #71717a; }
  /* Readonly-Felder im Dark Mode: Inline-Style überschreiben */
  .ef-form-group input[readonly] {
    background: #f1f5f9 !important; color: #64748b !important; cursor: not-allowed;
    border-color: #dbe3ef !important;
  }
  body.darkmode .ef-form-group input[readonly] {
    background: #27272a !important; color: #a1a1aa !important; cursor: not-allowed;
    border-color: #3f3f46 !important;
  }
  .ef-form-group input:focus, .ef-form-group select:focus {
    outline: none; border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(184,146,0,0.14);
    background-color: #fffef7;
  }
  body.darkmode .ef-form-group input:focus,
  body.darkmode .ef-form-group select:focus {
    background-color: #26282d;
    box-shadow: 0 0 0 3px rgba(245,197,24,0.16);
  }
  .ef-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
  .ef-form-row > .ef-form-group { align-self: start; width: 100%; }
  .ef-form-group > input { height: 42px; flex: 0 0 42px; box-sizing: border-box; }
  .ef-admin-new-only[hidden] { display: none !important; }
  .ef-newfest-modal-box { max-width: 720px; }
  .ef-picker-field { position: relative; display: flex; align-items: stretch; }
  .ef-picker-field > input { width: 100%; padding-right: 52px; box-sizing: border-box; }
  .ef-picker-button {
    position: absolute; top: 5px; right: 5px; bottom: 5px; display: grid; place-items: center;
    width: 36px; padding: 0; border: 0; border-radius: 7px; cursor: pointer;
    color: #5b6677; background: #eef2f6; transition: background .15s, color .15s, transform .15s;
  }
  .ef-picker-button:hover { color: #111827; background: #e2e8f0; }
  .ef-picker-button:active { transform: scale(.95); }
  .ef-picker-button .ef-svg-icon { width: 19px; height: 19px; }
  .ef-picker-field > .ef-picker-button { display: grid; place-items: center; justify-content: center; gap: 0; }
  body.darkmode .ef-picker-button { color: #e4e4e7; background: #34343a; }
  body.darkmode .ef-picker-button:hover { color: #fff; background: #414148; }
  .ef-form-group input[aria-invalid="true"] { border-color: #c53a32 !important; box-shadow: 0 0 0 3px rgba(197,58,50,.12) !important; }
  .ef-field-error { display: none; margin-top: 1px; color: #b42318; font-size: .76rem; font-weight: 650; line-height: 1.4; }
  .ef-field-error.visible { display: block; }
  body.darkmode .ef-field-error { color: #ffaaa1; }
  .ef-inline-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
  .ef-btn-inline {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 34px;
    padding: 7px 11px; border: 1px solid #d5dce8; border-radius: 8px; cursor: pointer;
    background: #fff; color: #475569; font: 700 .76rem/1.2 inherit;
  }
  .ef-btn-inline:hover { border-color: #b89200; color: #6e5800; background: #fffbdf; }
  .ef-btn-inline .ef-svg-icon { width: 16px; height: 16px; }
  body.darkmode .ef-btn-inline { border-color: #3f3f46; background: #202024; color: #d4d4d8; }
  body.darkmode .ef-btn-inline:hover { border-color: #d9ae0b; background: #302a12; color: #ffe277; }

  .ef-picker-overlay { z-index: 12000; }
  .ef-picker-modal-box { width: min(430px, calc(100vw - 24px)); max-width: 430px; }
  .ef-calendar-head { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; gap: 8px; margin: 8px 0 14px; }
  .ef-calendar-head strong { text-align: center; color: #1f2937; text-transform: capitalize; }
  .ef-calendar-head button {
    width: 42px; height: 42px; border: 1px solid #d5dce8; border-radius: 10px;
    background: #fff; color: #334155; font: 800 1.5rem/1 inherit; cursor: pointer;
  }
  .ef-calendar-head button:hover { border-color: #b89200; background: #fffbdf; }
  .ef-calendar-weekdays, .ef-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
  .ef-calendar-weekdays { margin-bottom: 5px; color: #64748b; font-size: .72rem; font-weight: 800; text-align: center; }
  .ef-calendar-weekdays span { padding: 5px 0; }
  .ef-calendar-grid > span, .ef-calendar-grid > button { aspect-ratio: 1; min-width: 0; }
  .ef-calendar-grid button {
    border: 1px solid transparent; border-radius: 10px; background: #f6f8fb; color: #1f2937;
    font: 750 .86rem/1 inherit; cursor: pointer; transition: border-color .15s, background .15s, transform .15s;
  }
  .ef-calendar-grid button:hover { border-color: #b89200; background: #fff8d8; transform: translateY(-1px); }
  .ef-calendar-grid button.today { border-color: #aab4c2; }
  .ef-calendar-grid button.selected { border-color: #b89200; background: #f5c518; color: #171717; box-shadow: 0 4px 12px rgba(184,146,0,.22); }
  .ef-calendar-grid button.other-month:not(.selected) { color:#9aa4b2; background:#fafbfc; opacity:.66; }
  .ef-calendar-grid button.other-month:not(.selected):hover { color:#475569; background:#fff8d8; opacity:1; }
  body.darkmode .ef-calendar-head strong { color: #f4f4f5; }
  body.darkmode .ef-calendar-head button { border-color: #3f3f46; background: #202024; color: #e4e4e7; }
  body.darkmode .ef-calendar-head button:hover { border-color: #d9ae0b; background: #302a12; }
  body.darkmode .ef-calendar-weekdays { color: #a1a1aa; }
  body.darkmode .ef-calendar-grid button { background: #24262b; color: #e4e4e7; }
  body.darkmode .ef-calendar-grid button:hover { border-color: #d9ae0b; background: #302a12; }
  body.darkmode .ef-calendar-grid button.today { border-color: #71717a; }
  body.darkmode .ef-calendar-grid button.selected { background: #f5c518; color: #171717; }
  body.darkmode .ef-calendar-grid button.other-month:not(.selected) { color:#666a72; background:#1d1f23; opacity:.7; }
  body.darkmode .ef-calendar-grid button.other-month:not(.selected):hover { color:#d4d4d8; background:#302a12; opacity:1; }
  .ef-time-preview { display: flex; align-items: baseline; justify-content: center; gap: 7px; margin: 6px 0 14px; }
  .ef-time-preview strong { font-size: 2.1rem; letter-spacing: .04em; color: #1f2937; }
  .ef-time-preview span { color: #64748b; font-weight: 700; }
  body.darkmode .ef-time-preview strong { color: #f4f4f5; }
  body.darkmode .ef-time-preview span { color: #a1a1aa; }
  .ef-time-wheels { display: grid; grid-template-columns: minmax(0,1fr) 22px minmax(0,1fr); align-items: end; gap: 8px; }
  .ef-time-wheels section { min-width: 0; }
  .ef-time-wheels h4 { margin: 0 0 8px; color: #64748b; font-size: .72rem; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
  .ef-time-wheel {
    position: relative; display: block;
    box-sizing:border-box; height:144px; padding:48px 7px; overflow-x:hidden; overflow-y:auto; border:1px solid #d5dce8; border-radius:14px;
    background:
      linear-gradient(to bottom, transparent 47px, #d5dce8 47px, #d5dce8 48px, transparent 48px, transparent 95px, #d5dce8 95px, #d5dce8 96px, transparent 96px),
      linear-gradient(to bottom, #f4f6f9, #fff 32%, #fff 68%, #f4f6f9);
    scroll-snap-type: y mandatory; scrollbar-width: none; overscroll-behavior: contain;
    touch-action: pan-y; user-select: none; cursor: grab; outline: none;
    -webkit-overflow-scrolling: touch;
  }
  .ef-time-wheel::-webkit-scrollbar { display:none; }
  .ef-time-wheel.free-scrolling, .ef-time-wheel.dragging { scroll-snap-type:none; }
  .ef-time-wheel.dragging { cursor:grabbing; }
  .ef-time-wheel::before, .ef-time-wheel::after { content:none; }
  .ef-time-wheel:focus-visible { border-color:#b89200; box-shadow:0 0 0 3px rgba(184,146,0,.16); }
  .ef-time-wheel-value {
    display:grid; place-items:center; width:100%; min-width:0; height:48px; min-height:48px; padding:0; border:0; background:transparent;
    color:#94a3b8; opacity:.38; font:750 1.05rem/1 inherit; cursor:pointer; scroll-snap-align:center; scroll-snap-stop:normal;
    transform:scale(.86); transition:color .1s linear, transform .1s linear, opacity .1s linear;
  }
  .ef-time-wheel-value.near { opacity:.68; transform:scale(.94); }
  .ef-time-wheel-value:hover { color:#475569; opacity:.82; }
  .ef-time-wheel-value.selected { color:#111827; opacity:1; font-size:1.65rem; font-weight:850; transform:scale(1); }
  .ef-time-wheel.dragging .ef-time-wheel-value { transition:none; }
  .ef-time-wheel-separator { align-self:end; display:grid; place-items:center; height:144px; margin:0; color:#334155; font-size:2rem; font-weight:850; line-height:1; text-align:center; }
  body.darkmode .ef-time-wheels h4 { color:#a1a1aa; }
  body.darkmode .ef-time-wheel {
    border-color:#3f3f46;
    background:
      linear-gradient(to bottom, transparent 47px, #4a4d54 47px, #4a4d54 48px, transparent 48px, transparent 95px, #4a4d54 95px, #4a4d54 96px, transparent 96px),
      linear-gradient(to bottom,#1b1d21,#292b30 32%,#292b30 68%,#1b1d21);
  }
  body.darkmode .ef-time-wheel-value { color:#71717a; }
  body.darkmode .ef-time-wheel-value.near { color:#a1a1aa; }
  body.darkmode .ef-time-wheel-value:hover { color:#d4d4d8; }
  body.darkmode .ef-time-wheel-value.selected { color:#f5c518; }
  body.darkmode .ef-time-wheel-separator { color:#e4e4e7; }
  .ef-picker-note { margin: 12px 0 0 !important; color: #64748b; font-size: .76rem !important; text-align: center; }
  body.darkmode .ef-picker-note { color: #a1a1aa !important; }

  .ef-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 22px; flex-wrap: wrap; }
  .ef-btn-primary {
    min-height: 40px;
    padding: 10px 20px; border-radius: 8px; border: none;
    background: var(--accent); color: #111; font-weight: 750;
    font-size: .92rem; cursor: pointer; font-family: inherit; font-style: normal;
    transition: opacity .2s, transform .15s, box-shadow .2s;
    box-shadow: 0 5px 14px rgba(184,146,0,0.22);
  }
  .ef-btn-primary:hover { opacity: .9; box-shadow: 0 7px 18px rgba(184,146,0,0.28); }
  .ef-btn-primary:active { transform: scale(.98); }
  .ef-btn-secondary {
    min-height: 40px;
    padding: 10px 20px; border-radius: 8px; border: 1px solid #d5dce8;
    background: #fff; color: #475569; font-weight: 650;
    font-size: .92rem; cursor: pointer; font-family: inherit; font-style: normal;
    transition: background .2s, border-color .2s, color .2s, transform .15s;
  }
  .ef-btn-secondary:hover { border-color: #b6c1d1; color: #111827; background: #f8fafc; }
  .ef-btn-secondary:active { transform: scale(.98); }
  body.darkmode .ef-btn-secondary { background: #202024; border-color: #3f3f46; color: #d4d4d8; }
  body.darkmode .ef-btn-secondary:hover { background: #2a2a2e; border-color: #52525b; color: #f4f4f5; }

  .ef-link-modal-box { max-width: 460px; }
  .ef-link-modal-box h3 {
    margin: 0 42px 14px 0;
  }
  .ef-link-modal-box > p, .ef-link-modal-box .ef-modal-scroll-body > p {
    margin-bottom: 16px !important;
  }
  .ef-link-modal-box .ef-modal-actions {
    margin-top: 18px;
  }
  .ef-link-preview {
    padding: 11px 12px; border-radius: 8px;
    background: #f8fafc; border: 1px solid #e2e8f0;
    color: #334155; font-size: .86rem; font-weight: 650;
    line-height: 1.45; overflow-wrap: anywhere;
  }
  body.darkmode .ef-link-preview {
    background: #202024; border-color: #3f3f46; color: #e4e4e7;
  }

  .ef-item { position: relative; }

  /* Geänderte Einträge orange markieren */
  .ef-item.ef-changed { border-color: #f0a500 !important; }

  /* Fehlertext im PW-Modal */
  .ef-pw-error {
    color: #b42318; background: #fff1f0; border: 1px solid rgba(180,35,24,0.16);
    border-radius: 8px; padding: 9px 11px;
    font-size: .84rem; margin-top: 8px; display: none; font-style: normal;
  }
  .ef-pw-error.visible { display: block; }
  body.darkmode .ef-pw-error {
    color: #ffb4aa; background: rgba(180,35,24,0.15); border-color: rgba(255,180,170,0.18);
  }
  .ef-login-modal-box { max-width:470px; padding:30px; box-shadow:0 0 72px rgba(15,23,42,.34); }
  body.darkmode .ef-login-modal-box { box-shadow:0 0 78px rgba(255,255,255,.17); }
  .ef-login-heading { display:flex; align-items:center; gap:14px; margin:0 54px 8px 0; }
  .ef-login-heading h3 { margin: 2px 0 0; }
  .ef-login-icon {
    display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px;
    border-radius: 14px; background: #fff8d8; font-size: 1.25rem;
  }
  body.darkmode .ef-login-icon { background: #302a12; }
  .ef-password-field { position: relative; }
  .ef-password-field input { width: 100%; padding-right: 92px; box-sizing: border-box; }
  .ef-password-toggle {
    position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
    min-height: 32px; padding: 5px 9px; border: 0; border-radius: 7px;
    background: #eef2f6; color: #475569; font: 700 .74rem/1 inherit; cursor: pointer;
  }
  .ef-password-toggle:hover { background: #e2e8f0; color: #111827; }
  body.darkmode .ef-password-toggle { background: #34343a; color: #d4d4d8; }
  body.darkmode .ef-password-toggle:hover { background: #414148; color: #fff; }
  .ef-login-modal-box .ef-modal-actions { display:grid; grid-template-columns:1fr 1fr; flex-wrap:nowrap; }
  .ef-login-modal-box .ef-modal-actions > button { width:100%; }
  .ef-login-theme-toggle {
    position:absolute; top:20px; right:20px; z-index:2; display:grid !important; place-items:center !important; align-content:center; justify-content:center; gap:0 !important;
    width:42px; min-width:42px; height:42px; min-height:42px; padding:0; border-radius:999px;
  }
  .ef-login-theme-toggle .ef-button-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .ef-login-theme-toggle .ef-svg-icon { display:grid; place-items:center; width:20px; height:20px; min-width:20px; margin:0; line-height:0; transform:none; }
  .ef-login-theme-toggle .ef-svg-icon svg,
  .ef-login-theme-toggle .ef-svg-icon img { display:block; width:20px; height:20px; margin:0; }
  .ef-edit-modal-box { max-width: 720px; }
  .ef-edit-section {
    margin: 0 0 14px; padding: 16px 17px 2px; border: 1px solid #e2e8f0;
    border-radius: 13px; background: #f8fafc;
  }
  .ef-edit-section h4 { margin: 0 0 14px; color: #334155; font-size: .78rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
  body.darkmode .ef-edit-section { border-color:#343b49; background:#202126; }
  body.darkmode .ef-edit-section h4 { color:#cbd5e1; }
  .ef-interest-details { margin-top: 2px; border:1px solid #e2e8f0; border-radius:13px; overflow:hidden; background:#fff; }
  .ef-interest-details summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; cursor:pointer; color:#334155; font-size:.84rem; font-weight:750; list-style:none; }
  .ef-interest-details summary::-webkit-details-marker { display:none; }
  .ef-interest-details summary::after {
    content:''; flex:0 0 9px; width:9px; height:9px; box-sizing:border-box;
    border-right:2px solid #64748b; border-bottom:2px solid #64748b;
    transform:translateY(-22%) rotate(45deg); transform-origin:50% 50%; transition:transform .18s ease;
  }
  .ef-interest-details[open] summary::after { transform:translateY(22%) rotate(225deg); }
  .ef-interest-details summary strong { margin-left:auto; min-width:28px; padding:4px 8px; border-radius:999px; text-align:center; color:#344054; background:#edf1f7; font-size:.74rem; }
  .ef-interest-details-body { padding:0 16px 16px; border-top:1px solid #edf0f4; }
  .ef-interest-details-body p { margin:13px 0; color:#64748b; font-size:.8rem; line-height:1.55; }
  body.darkmode .ef-interest-details { border-color:#343b49; background:#202126; }
  body.darkmode .ef-interest-details summary { color:#e2e8f0; }
  body.darkmode .ef-interest-details summary::after { border-color:#c5c7cb; }
  body.darkmode .ef-interest-details summary strong { color:#dbeafe; background:#26364d; }
  body.darkmode .ef-interest-details-body { border-top-color:#343b49; }
  body.darkmode .ef-interest-details-body p { color:#a9b4c5; }
  .ef-interest-history { margin:12px 0 14px; }
  .ef-interest-log { max-height:260px; overflow:auto; border:1px solid #e2e8f0; border-radius:11px; background:#fff; }
  .ef-interest-log-row { display:grid; grid-template-columns:minmax(132px,1fr) minmax(170px,1.3fr) 72px 58px; gap:10px; align-items:center; padding:10px 12px; border-bottom:1px solid #edf0f4; font-size:.76rem; }
  .ef-interest-log-row:last-child { border-bottom:0; }
  .ef-interest-log-head { position:sticky; top:0; z-index:1; color:#64748b; background:#f8fafc; font-size:.68rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
  .ef-interest-log-row time { color:#64748b; }
  .ef-interest-log-row strong { color:#334155; }
  .ef-interest-log-row b,.ef-interest-log-row > span:last-child { color:#475569; text-align:right; }
  .ef-interest-log-row.added b { color:#16854b; }
  .ef-interest-log-row.removed b { color:#b42318; }
  body.darkmode .ef-interest-log { border-color:#3a3d43; background:#181a1e; }
  body.darkmode .ef-interest-log-row { border-bottom-color:#34373d; }
  body.darkmode .ef-interest-log-head { color:#a1a1aa; background:#202226; }
  body.darkmode .ef-interest-log-row time { color:#a1a1aa; }
  body.darkmode .ef-interest-log-row strong { color:#e4e4e7; }
  body.darkmode .ef-interest-log-row b,body.darkmode .ef-interest-log-row > span:last-child { color:#c7cad0; }
  body.darkmode .ef-interest-log-row.added b { color:#75e096; }
  body.darkmode .ef-interest-log-row.removed b { color:#ff9c94; }
  @media(max-width:560px) {
    .ef-interest-log-row { grid-template-columns:minmax(92px,1.15fr) minmax(0,1fr) 38px; gap:4px; padding:8px 7px; font-size:.69rem; }
    .ef-interest-log-head { font-size:.6rem; letter-spacing:.025em; }
    .ef-interest-log-row > :last-child { display:none; }
  }
  .ef-custom-select { position:relative; width:100%; }
  .ef-native-select {
    position:absolute !important; width:1px !important; height:1px !important;
    padding:0 !important; margin:0 !important; opacity:0 !important; pointer-events:none !important;
  }
  .ef-custom-select-trigger {
    width:100%; min-height:42px; padding:10px 42px 10px 12px; border:1px solid #d5dce8;
    border-radius:10px; background:#fff; color:#111827; font:inherit; text-align:left; cursor:pointer;
    position:relative; transition:border-color .18s, box-shadow .18s, background-color .18s;
  }
  .ef-custom-select-trigger::after {
    content:''; position:absolute; top:50%; right:14px; width:8px; height:8px;
    border-right:2px solid #64748b; border-bottom:2px solid #64748b;
    transform:translateY(-70%) rotate(45deg); transition:transform .18s ease;
  }
  .ef-custom-select.open .ef-custom-select-trigger { border-color:var(--accent); box-shadow:0 0 0 3px rgba(184,146,0,.14); }
  .ef-custom-select.open .ef-custom-select-trigger::after { transform:translateY(-25%) rotate(225deg); }
  .ef-custom-select-menu {
    display:none; position:absolute; z-index:1200; top:calc(100% + 7px); left:0; right:0;
    max-height:240px; overflow:auto; padding:6px; border:1px solid #d7deea; border-radius:12px;
    background:#fff; box-shadow:0 18px 45px rgba(15,23,42,.2);
  }
  .ef-custom-select.open .ef-custom-select-menu { display:grid; gap:3px; }
  .ef-custom-select-option {
    width:100%; padding:10px 11px; border:0; border-radius:8px; background:transparent;
    color:#263244; font:inherit; text-align:left; cursor:pointer;
  }
  .ef-custom-select-option:hover, .ef-custom-select-option:focus { outline:0; background:#f1f4f8; }
  .ef-custom-select-option.selected { color:#6f5800; background:#fff7cf; font-weight:800; }
  body.darkmode .ef-custom-select-trigger { background:#202226; border-color:#3a3d43; color:#f4f4f5; }
  body.darkmode .ef-custom-select-trigger::after { border-color:#c5c7cb; }
  body.darkmode .ef-custom-select-menu { border-color:#3a3d43; background:#1b1d21; box-shadow:0 22px 55px rgba(0,0,0,.6), inset 0 1px rgba(255,255,255,.025); }
  body.darkmode .ef-custom-select-option { color:#e6e7e9; }
  body.darkmode .ef-custom-select-option:hover, body.darkmode .ef-custom-select-option:focus { background:#292c31; }
  body.darkmode .ef-custom-select-option.selected { color:#f8d84a; background:#332d12; }

  /* Ausstehende-Änderungen-Bar – jetzt als Pille im Footer direkt unter dem Edit-Button */
  #ef-root #ef-save-bar {
    display: none;
    background: #f0a500; color: #111;
    border: 1.5px solid #d18b00;
    border-radius: 999px;
    padding: 7px 18px;
    font-size: .8rem; font-weight: 700;
    cursor: pointer; font-family: inherit;
    transition: background .2s, transform .15s, box-shadow .2s;
    touch-action: manipulation;
    box-shadow: 0 2px 8px rgba(240,165,0,0.3);
  }
  #ef-root #ef-save-bar:hover { background: #ffb820; box-shadow: 0 3px 12px rgba(240,165,0,0.45); }
  #ef-root #ef-save-bar:active { transform: scale(.97); }
  #ef-root #ef-save-bar.visible { display: inline-flex; align-items: center; gap: 6px; }

  /* Wochentag-Indikator inline im Datum-Label */
  .ef-day-inline {
    display: inline-block;
    font-size: .72rem; font-weight: 700;
    color: var(--accent);
    background: rgba(240,165,0,0.12);
    border: 1px solid rgba(240,165,0,0.4);
    border-radius: 4px;
    padding: 1px 6px;
    margin-left: 6px;
    letter-spacing: .3px;
    min-width: 32px; text-align: center;
    opacity: 0; transition: opacity .15s;
  }
  .ef-day-inline.visible { opacity: 1; }
  body.darkmode .ef-day-inline { color: #f0c040; background: rgba(240,165,0,0.15); }
  /* kleiner Format-Hinweis in Labels */
  .ef-form-hint {
    font-weight: 400; font-size: .68rem;
    text-transform: none; color: #aaa; margin-left: 4px;
  }
  body.darkmode .ef-form-hint { color: #777; }

  /* Interessenten-Reset-Button im Edit-Modal */
  .ef-interest-reset-row { margin-bottom: 4px; }
  .ef-btn-reset-interest {
    display: inline-flex; align-items: center; gap: 8px;
    background: transparent; color: #b07000;
    border: 1.5px solid rgba(240,165,0,0.5);
    border-radius: 8px;
    padding: 8px 14px;
    font-size: .82rem; font-weight: 600;
    cursor: pointer; font-family: inherit;
    transition: all .2s;
    align-self: flex-start;
  }
  .ef-btn-reset-interest:hover { background: rgba(240,165,0,0.12); border-color: #f0a500; color: #b07000; }
  .ef-btn-reset-interest:disabled { opacity: .4; cursor: not-allowed; }
  body.darkmode .ef-btn-reset-interest { color: #f0c040; }
  body.darkmode .ef-btn-reset-interest:hover { background: rgba(240,165,0,0.15); color: #f0c040; }

  /* ── Responsive ── */
  @media (max-width: 520px) {
    #ef-root { padding: 24px 12px 36px; }
    /* Kürzere Animationen auf Mobile – wirkt direkter und reduziert Ruckler */
    #ef-root .ef-month-body  { transition-duration: .35s; }
    #ef-root .ef-item-detail { transition-duration: .28s; }
    #ef-root .ef-item-row        { grid-template-columns: 1fr auto auto; }
    #ef-root .ef-day-pill        { display: none; }
    #ef-root .ef-date-text       { display: none; }
    #ef-root .ef-detail-grid{ grid-template-columns: 1fr 1fr; }
    #ef-root .ef-month-header { padding: 14px 16px; }
    /* Inhaltsbreite; jede Aktion rückt bei Platzmangel in die nächste Zeile. */
    #ef-root .ef-suggest-bar { display:flex; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:7px; }
    #ef-root :is(.ef-cal-btn, .ef-share-btn),
    #ef-root .ef-interest-btn { justify-content:center; padding-inline:7px; font-size:.74rem; white-space:nowrap; }
    #ef-root :is(.ef-cal-btn, .ef-share-btn) { flex:0 0 auto; width:auto; }
    #ef-root .ef-interest-wrap { display:flex; flex:0 1 auto; width:max-content; }
    #ef-root .ef-interest-btn { width:auto; }
    #ef-root .ef-suggest-action { flex:0 1 auto; min-width:0; margin-left:0; }
    #ef-root .ef-suggest-btn { width:max-content; max-width:100%; margin-left:0; }
    body.ef-editmode #ef-root .ef-interest-wrap { display:none; }
    /* Modal: 2-Spalten-Felder auf einem Feld untereinander */
    .ef-form-row { grid-template-columns: 1fr; gap: 0; }
    .ef-modal-box { --ef-modal-padding-block:20px; --ef-modal-padding-inline:16px; padding: 20px 16px; border-radius: 14px; }
    .ef-modal-overlay { padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); }
    .ef-modal-actions { flex-direction: column-reverse; }
    .ef-modal-actions .ef-btn-primary,
    .ef-modal-actions .ef-btn-secondary { width: 100%; text-align: center; justify-content: center; }
    .ef-inline-actions { display: grid; grid-template-columns: 1fr; }
    .ef-btn-inline { width: 100%; }
    .ef-picker-modal-box { --ef-modal-padding-block:18px; --ef-modal-padding-inline:14px; padding: 18px 14px; }
    .ef-calendar-weekdays, .ef-calendar-grid { gap: 3px; }
    .ef-calendar-grid button { border-radius: 8px; }
    .ef-login-modal-box { --ef-modal-padding-block:24px; --ef-modal-padding-inline:18px; padding:24px 18px 20px; }
    .ef-login-theme-toggle { top:16px; right:16px; }
    .ef-login-heading { margin-right:50px; }
    .ef-login-modal-box .ef-modal-actions { display:grid; grid-template-columns:1fr 1fr; }
  }

/* ── Mobile Kopfzeilen: kompakte Status-Pills ── */
#ef-body .ef-item-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 24px;
  align-items: center;
  gap: 0.5rem;
}

/* ══ Eigenständige Verwaltungsoberfläche ══ */
.ef-admin-dashboard {
  --admin-bg: #f3f6fb;
  --admin-panel: #ffffff;
  --admin-text: #172033;
  --admin-muted: #667085;
  --admin-border: #d7deea;
  --admin-accent: #8a6d00;
  width: min(1440px, calc(100% - 32px));
  margin: 24px auto 96px;
  color: var(--admin-text);
  font-family: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
}
.ef-admin-dashboard[hidden], body.ef-adminmode #ef-root { display: none !important; }
body.ef-admin-entry-loading #ef-root { visibility: hidden; }
.ef-scroll-fade {
  position: fixed; z-index: 20; left: 0; right: 0; height: 64px;
  pointer-events: none; opacity: 0; transition: opacity .24s ease;
}
.ef-scroll-fade-top { top: 0; background: linear-gradient(to bottom, rgba(243,246,251,.76) 0%, rgba(243,246,251,.42) 34%, rgba(243,246,251,0) 100%); }
.ef-scroll-fade-bottom { bottom: 0; background: linear-gradient(to top, rgba(243,246,251,.76) 0%, rgba(243,246,251,.42) 34%, rgba(243,246,251,0) 100%); }
body.ef-admin-entry.ef-can-scroll-up .ef-scroll-fade-top,
body.ef-admin-entry.ef-can-scroll-down .ef-scroll-fade-bottom { opacity: 1; }
body.darkmode .ef-scroll-fade-top { background: linear-gradient(to bottom, rgba(15,16,18,.78) 0%, rgba(15,16,18,.44) 34%, rgba(15,16,18,0) 100%); }
body.darkmode .ef-scroll-fade-bottom { background: linear-gradient(to top, rgba(15,16,18,.78) 0%, rgba(15,16,18,.44) 34%, rgba(15,16,18,0) 100%); }
body.ef-adminmode { background: #f3f6fb; }
.ef-admin-dashboard *, .ef-admin-dashboard *::before, .ef-admin-dashboard *::after { box-sizing: border-box; }
.ef-admin-scroll-content { display:flow-root; }
/* The native scroller spans the full screen. Its fixed L-shaped clipping
   boundary hides content behind the card centre but retains the entire
   right-hand scrollbar gutter, without any per-scroll JS coordinates. */
@media (min-width:861px) {
  body.ef-admin-entry.ef-adminmode { overflow:hidden; }
  body.ef-admin-entry.ef-adminmode .ef-admin-dashboard {
    position:fixed; inset:0; width:auto; margin:0; display:block;
    --ef-admin-tray-half:36px;
    --ef-admin-scrollbar-width:8px;
  }
  body.ef-admin-entry.ef-adminmode .ef-admin-scroll-viewport {
    height:100%; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scroll-padding-bottom:calc(28px + 2 * var(--ef-admin-tray-half));
    clip-path:polygon(0 0,100% 0,100% 100%,calc(100% - var(--ef-admin-scrollbar-width)) 100%,calc(100% - var(--ef-admin-scrollbar-width)) calc(100% - 12px - var(--ef-admin-tray-half)),0 calc(100% - 12px - var(--ef-admin-tray-half)));
  }
  body.ef-admin-entry.ef-adminmode .ef-admin-scroll-content {
    width:min(1440px,calc(100% - 32px)); margin-inline:auto;
    padding-top:24px; padding-bottom:calc(28px + 2 * var(--ef-admin-tray-half));
  }
  body.ef-admin-entry.ef-adminmode .ef-admin-footer {
    position:absolute; bottom:12px; margin:0;
    width:var(--ef-admin-content-width,min(1440px,calc(100% - 32px)));
    left:calc(50% + var(--ef-admin-tray-offset,0px)); transform:translateX(-50%);
    background:var(--admin-panel);
  }
  body.ef-admin-entry.ef-adminmode .ef-scroll-fade { right:var(--ef-admin-scrollbar-width); }
  body.ef-modal-scroll-lock .ef-admin-scroll-viewport { overflow:hidden !important; }
}
.ef-admin-header {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 28px 30px; border: 1px solid var(--admin-border); border-radius: 18px;
  background: var(--admin-panel); box-shadow: 0 12px 38px rgba(43,55,78,.08);
}
.ef-admin-brand { display:flex; align-items:center; gap:20px; min-width:0; }
.ef-admin-logo { width:72px; height:82px; flex:0 0 72px; padding:2px; border-radius:12px; background:transparent; object-fit:contain; object-position:center; box-sizing:border-box; filter:drop-shadow(0 5px 12px rgba(0,0,0,.14)); }
.ef-svg-icon { display:inline-grid; place-items:center; width:19px; height:19px; min-width:19px; line-height:0; vertical-align:-.2em; }
.ef-svg-icon img, .ef-svg-icon svg { display:block; width:100%; height:100%; color:currentColor; overflow:visible; transition:transform .38s cubic-bezier(.22,1,.36,1),filter .12s linear; }
.ef-admin-btn-primary .ef-svg-icon img { filter:brightness(0) invert(1); }
.ef-btn-primary .ef-svg-icon img { filter:brightness(0); }
.ef-admin-btn-primary .ef-svg-icon svg, .ef-btn-primary .ef-svg-icon svg { color:inherit; }
body.darkmode .ef-svg-icon img { filter:invert(1) grayscale(1) brightness(1.7); }
body.darkmode .ef-admin-btn-primary .ef-svg-icon img { filter:brightness(0) invert(1); }
body.darkmode .ef-btn-primary .ef-svg-icon img { filter:brightness(0); }
button:has(.ef-svg-icon), .ef-heading-with-icon, .ef-item-interest, .ef-sug-notice { display:flex; align-items:center; gap:8px; }
button:hover .ef-svg-icon img[src$="refresh.svg"] { transform:rotate(360deg); }
button:hover .ef-svg-icon img[src$="edit.svg"] { transform:translate(2px,-2px) rotate(-4deg); }
button:hover .ef-svg-icon img[src$="delete.svg"] { transform:translateY(-2px) rotate(4deg); }
button:hover .ef-svg-icon img[src$="add.svg"] { transform:rotate(90deg) scale(1.06); }
button:hover .ef-svg-icon img[src$="restore-workspace.svg"] { transform:rotate(-16deg); }
.ef-heading-with-icon .ef-svg-icon { width:24px; height:24px; min-width:24px; color:var(--accent); }
.ef-login-icon .ef-svg-icon { width:25px; height:25px; min-width:25px; }
.ef-interest-btn .ef-svg-icon, .ef-item-interest .ef-svg-icon { width:16px; height:16px; min-width:16px; }
.ef-modal-close .ef-svg-icon { width:18px; height:18px; min-width:18px; }
.ef-theme-switching *, .ef-theme-switching *::before, .ef-theme-switching *::after { transition:none !important; }
.ef-confirm-modal-box { max-width:480px; }
.ef-confirm-modal-box > p, .ef-confirm-modal-box .ef-modal-scroll-body > p { color:#64748b; line-height:1.65; white-space:pre-line; }
body.darkmode .ef-confirm-modal-box > p, body.darkmode .ef-confirm-modal-box .ef-modal-scroll-body > p { color:#a1a1aa; }
.ef-save-review-modal-box { width:min(820px,calc(100vw - 28px)); }
.ef-save-review-intro { margin:0 0 14px; color:#64748b; line-height:1.55; }
.ef-save-review-select-all { display:flex; align-items:center; gap:10px; width:max-content; margin-bottom:12px; font-weight:750; cursor:pointer; }
.ef-save-review-select-all input, .ef-save-review-check { width:19px; height:19px; margin:0; accent-color:#9a7900; cursor:pointer; }
.ef-save-review-list { display:grid; gap:10px; max-height:min(52vh,540px); overflow:auto; padding:2px 5px 2px 2px; }
.ef-save-review-card { position:relative; cursor:default; }
.ef-save-review-card-header { display:flex; align-items:center; gap:12px; min-height:38px; padding-right:46px; cursor:pointer; }
.ef-save-review-trash { position:absolute; top:8px; right:8px; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border:0; border-radius:9px; color:var(--admin-muted,#64748b); background:transparent; cursor:pointer; }
.ef-save-review-trash:hover { color:#b42318; background:rgba(180,35,24,.08); }
.ef-save-review-trash .ef-svg-icon { width:18px; height:18px; min-width:18px; }
.ef-save-review-card-header > span { display:grid; gap:2px; }
.ef-save-review-card-header small { color:var(--admin-muted,#64748b); font-size:.7rem; font-weight:500; }
.ef-save-review-actions { display:flex; flex-direction:row; justify-content:space-between; flex-wrap:nowrap; }
.ef-save-review-actions > button { min-width:0; min-height:44px; padding-inline:14px; }
.ef-save-review-actions button:disabled { opacity:.45; cursor:not-allowed; }
body.darkmode .ef-save-review-intro { color:#a1a1aa; }
body.darkmode .ef-save-review-trash:hover { color:#ffaaa1; background:rgba(255,170,161,.08); }
.ef-app-quick-menu { display:none; position:fixed; z-index:960; right:max(18px,env(safe-area-inset-right)); bottom:max(18px,env(safe-area-inset-bottom)); width:54px; height:54px; align-items:center; gap:8px; font-family:'Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif; }
body.ef-standalone-app:not(.ef-adminmode) .ef-app-quick-menu { display:flex; }
body.ef-standalone-app #ef-root #ef-edit-fab { display:none; }
.ef-app-quick-actions .ef-app-preview-return { display:none; }
body.ef-admin-preview .ef-app-admin-open { display:none; }
body.ef-admin-preview .ef-app-quick-actions .ef-app-preview-return { display:inline-flex; }
.ef-app-quick-actions { position:absolute; right:0; bottom:64px; display:inline-grid; justify-items:stretch; gap:7px; width:max-content; min-width:0; max-width:calc(100vw - 36px); padding:9px; border:1px solid rgba(120,126,138,.32); border-radius:16px; background:rgba(255,255,255,.97); box-shadow:0 12px 28px rgba(15,23,42,.16); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px) scale(.94); transform-origin:bottom right; transition:opacity .2s ease,transform .26s cubic-bezier(.22,1,.36,1),visibility 0s linear .26s; }
.ef-app-quick-menu.expanded .ef-app-quick-actions { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1); transition-delay:0s; }
.ef-app-quick-action { display:inline-flex; align-items:center; justify-content:flex-start; gap:8px; width:auto; min-height:42px; padding:9px 13px; border:1px solid rgba(120,126,138,.28); border-radius:11px; color:#273142; background:#fff; font:750 .8rem/1.2 inherit; white-space:nowrap; cursor:pointer; transition:transform .18s ease,background-color .18s ease,border-color .18s ease; }
.ef-app-quick-action:hover { transform:translateY(-1px); border-color:#b89200; background:#fff9df; }
.ef-app-quick-action:disabled { opacity:.62; cursor:wait; transform:none; }
.ef-app-quick-action[hidden] { display:none !important; }
.ef-app-menu-toggle { position:relative; z-index:2; display:grid; place-items:center; width:54px; height:54px; padding:0; border:1px solid rgba(120,126,138,.34); border-radius:50%; color:#273142; background:rgba(255,255,255,.97); box-shadow:0 10px 24px rgba(15,23,42,.18); cursor:pointer; }
.ef-menu-glyph { position:relative; display:grid; place-items:center; width:22px; height:22px; }
.ef-menu-glyph i { position:absolute; left:3px; width:16px; height:2px; border-radius:999px; background:currentColor; transform-origin:center; transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .16s ease; }
.ef-menu-glyph i:nth-child(1) { transform:translateY(-5px); }
.ef-menu-glyph i:nth-child(3) { transform:translateY(5px); }
.expanded > .ef-app-menu-toggle .ef-menu-glyph i:nth-child(1),
.ef-admin-footer.expanded .ef-menu-glyph i:nth-child(1) { transform:rotate(45deg); }
.expanded > .ef-app-menu-toggle .ef-menu-glyph i:nth-child(2),
.ef-admin-footer.expanded .ef-menu-glyph i:nth-child(2) { opacity:0; }
.expanded > .ef-app-menu-toggle .ef-menu-glyph i:nth-child(3),
.ef-admin-footer.expanded .ef-menu-glyph i:nth-child(3) { transform:rotate(-45deg); }
body.darkmode .ef-app-quick-actions { border-color:rgba(255,255,255,.14); background:rgba(25,27,31,.97); box-shadow:0 12px 28px rgba(0,0,0,.34); }
body.darkmode .ef-app-quick-action { color:#f5f5f5; border-color:#3b3e44; background:#191b1f; }
body.darkmode .ef-app-quick-action:hover { border-color:#f2c400; background:#25272c; }
body.darkmode .ef-app-menu-toggle { color:#f5f5f5; border-color:#3b3e44; background:#191b1f; box-shadow:0 10px 24px rgba(0,0,0,.34); }
.ef-confirm-danger { background:#b42318 !important; color:#fff !important; box-shadow:0 5px 14px rgba(180,35,24,.24) !important; }
.ef-admin-btn-archive { color:#8a6800; border-color:var(--admin-border); background:#fff; }
.ef-admin-btn-archive:hover { color:#6f5400; border-color:#aeb6c1; background:#f8fafc; }
body.darkmode .ef-admin-btn-archive { color:#f5c518; border-color:#3c4047; background:#191b1f; }
body.darkmode .ef-admin-btn-archive:hover { color:#ffdb55; border-color:#5a5e66; background:#25272c; }
.ef-archive-modal-box { max-width:760px; }
.ef-archive-content { display:grid; gap:10px; max-height:min(58vh,520px); overflow:auto; margin-top:16px; padding-right:4px; }
.ef-archive-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; }
.ef-archive-item > div:first-child { display:grid; gap:4px; }
.ef-archive-item strong { color:#1f2937; }
.ef-archive-item span { color:#64748b; font-size:.78rem; }
.ef-archive-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.ef-archive-actions .ef-admin-btn { white-space:nowrap; }
body.darkmode .ef-archive-item { border-color:#343b49; background:#202126; }
body.darkmode .ef-archive-item strong { color:#f4f4f5; }
body.darkmode .ef-archive-item span { color:#a1a1aa; }
@media(max-width:700px) {
  .ef-archive-item { align-items:stretch; flex-direction:column; }
  .ef-archive-actions { display:grid; grid-template-columns:1fr; }
}
.ef-admin-eyebrow { display: block; color: var(--admin-accent); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 5px; }
.ef-admin-header h1 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.1; }
.ef-admin-header p { margin: 9px 0 0; color: var(--admin-muted); }
.ef-admin-header-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content:flex-end; }
.ef-theme-toggle { font-variant-numeric: tabular-nums; }
.ef-admin-toolbar {
  display: grid; grid-template-columns: 140px minmax(240px, 1fr) auto;
  gap: 14px; align-items: end; margin: 18px 0;
  padding: 18px; border: 1px solid var(--admin-border); border-radius: 16px; background: var(--admin-panel);
}
.ef-admin-toolbar label { display: grid; gap: 6px; min-width: 0; }
.ef-admin-toolbar label > span { color: var(--admin-muted); font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.ef-admin-toolbar input, .ef-admin-toolbar select {
  width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--admin-border);
  border-radius: 9px; background: #fff; color: var(--admin-text); font: inherit; outline: none;
}
.ef-admin-toolbar select {
  appearance:none; -webkit-appearance:none; padding-right:38px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:16px;
}
.ef-admin-toolbar input:focus, .ef-admin-toolbar select:focus { border-color: var(--admin-accent); box-shadow: 0 0 0 3px rgba(168,130,0,.14); }
.ef-admin-toolbar-actions, .ef-admin-row-actions { display: flex; gap: 8px; align-items: center; }
.ef-admin-row-actions { justify-content:flex-end; }
.ef-admin-btn {
  min-height: 42px; padding: 9px 15px; border: 1px solid transparent; border-radius: 9px;
  font: 700 .86rem/1.2 inherit; cursor: pointer; transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; white-space: nowrap;
}
.ef-admin-btn:disabled { opacity: .48; cursor: not-allowed; }
.ef-admin-btn-primary { background: #9a7900; color: #fff; }
.ef-admin-btn-primary:hover:not(:disabled) { background: #7c6200; transform: translateY(-1px); }
.ef-admin-btn-secondary { background: #fff; border-color: var(--admin-border); color: var(--admin-text); }
.ef-admin-btn-secondary:hover { border-color: #aeb6c1; background: #f8fafc; }
.ef-admin-btn-danger { background:#fff; border-color:var(--admin-border); color:#b42318; }
.ef-admin-btn-danger:hover { border-color:#aeb6c1; background:#f8fafc; }
.ef-admin-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 14px; }
.ef-admin-stat { width:100%; padding: 14px 16px; border: 1px solid var(--admin-border); border-radius: 12px; background: var(--admin-panel); color:var(--admin-text); font:inherit; text-align:left; cursor:pointer; transition:border-color .16s,transform .16s,box-shadow .16s,background .16s; }
.ef-admin-stat:hover { border-color:var(--admin-accent); transform:translateY(-1px); box-shadow:0 8px 20px rgba(15,23,42,.08); }
.ef-admin-stat.active { border-color:var(--admin-accent); box-shadow:inset 3px 0 var(--admin-accent),0 7px 18px rgba(15,23,42,.07); }
.ef-admin-stat strong { display: block; font-size: 1.35rem; }
.ef-admin-stat span { color: var(--admin-muted); font-size: .78rem; }
.ef-admin-stat small { display:block; margin-top:5px; color:var(--admin-muted); font-size:.68rem; }
.ef-admin-changes-panel { margin:-2px 0 14px; padding:18px; border:1px solid var(--admin-border); border-radius:16px; background:var(--admin-panel); }
.ef-admin-changes-panel[hidden] { display:none !important; }
.ef-admin-changes-panel > header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.ef-admin-changes-panel h2 { margin:0; font-size:1.12rem; }
.ef-admin-change-list { display:grid; gap:10px; }
.ef-admin-change-card { padding:13px 14px; border:1px solid var(--admin-border); border-radius:12px; background:#f8fafc; }
.ef-admin-change-card header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ef-admin-change-card ul { display:grid; gap:5px; margin:10px 0 0; padding:0; list-style:none; }
.ef-admin-change-card li { display:grid; grid-template-columns:minmax(120px,.8fr) minmax(100px,1fr) minmax(100px,1fr); gap:10px; align-items:center; color:var(--admin-muted); font-size:.76rem; }
.ef-admin-change-card li span { font-weight:750; }
.ef-admin-change-card li del { overflow-wrap:anywhere; opacity:.72; }
.ef-admin-change-card li strong { overflow-wrap:anywhere; color:var(--admin-text); }
.ef-admin-change-card li strong::before { content:"→ "; color:var(--admin-accent); }
.ef-admin-change-card li.ef-admin-change-generic { display:block; }
.ef-admin-change-empty { margin:0; color:var(--admin-muted); }
.ef-admin-suggestion-card header > div:first-child { display:grid; gap:3px; min-width:0; }
.ef-admin-suggestion-card header small { color:var(--admin-muted); font-size:.7rem; font-weight:500; }
.ef-admin-suggestion-kind { color:var(--admin-accent); font-size:.65rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.ef-admin-suggestion-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.ef-admin-suggestion-new li:not(.ef-admin-change-generic) { grid-template-columns:minmax(120px,.8fr) minmax(160px,2fr); }
.ef-admin-suggestion-new li strong::before { content:none; }
.ef-admin-status { min-height: 0; margin-bottom: 10px; color: var(--admin-muted); font-size: .86rem; }
.ef-admin-table-wrap { container-type:inline-size; overflow-x: auto; border: 1px solid var(--admin-border); border-radius: 16px; background: var(--admin-panel); scroll-margin-top: 128px; }
.ef-admin-changes-panel { scroll-margin-top: 128px; }
.ef-admin-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.ef-admin-table th { padding: 12px; color: var(--admin-muted); background: #f8fafc; border-bottom: 1px solid var(--admin-border); text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.ef-admin-table td { padding: 12px; border-bottom: 1px solid #edf0f3; vertical-align: middle; }
.ef-admin-row-actions .ef-admin-btn { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; line-height:1.2; }
.ef-admin-row-action-label { display:block; white-space:nowrap; }
@media (min-width:861px) {
  .ef-admin-table { font-size:clamp(.78rem,calc(.611rem + .314vw),.86rem); }
  .ef-admin-table th { font-size:clamp(.65rem,calc(.494rem + .29vw),.72rem); letter-spacing:0; }
  .ef-admin-table td:nth-child(2), .ef-admin-table td:nth-child(3), .ef-admin-table td:nth-child(4) { white-space:nowrap; }
}
.ef-admin-table tr:last-child td { border-bottom: 0; }
.ef-admin-table tr:hover td { background: #f8faff; }
.ef-admin-table tr.ef-admin-changed td { background: #fff8d6; }
.ef-admin-name { font-weight: 750; min-width: 190px; }
.ef-admin-sub { display: block; margin-top: 3px; color: var(--admin-muted); font-size: .72rem; }
.ef-admin-mobile-heading { display:block; }
.ef-admin-mobile-toggle { display:none !important; }
.ef-admin-empty { padding: 42px !important; text-align: center; color: var(--admin-muted); }
.ef-admin-pill { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; padding:0; border:0; border-radius:0; font-size:.9em; font-weight:800; line-height:1.2; white-space:nowrap; background:transparent; }
.ef-admin-pill.yes { color:#166534; }
.ef-admin-pill.no { color:#991b1b; }
.ef-admin-pill.open { color:var(--admin-text); }
.ef-admin-interest-count { display:inline-flex; align-items:center; justify-content:center; vertical-align:middle; padding:0; color:var(--admin-text); background:transparent; font-size:.9em; font-weight:800; line-height:1.2; }
.ef-admin-footer {
  position: sticky; z-index:30; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 18px;
  margin-top: 16px; padding: 14px 18px; border:1px solid var(--admin-border); border-radius:14px;
  background:rgba(255,255,255,.94); box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
}
.ef-admin-tray-toggle { display:none; position:relative; place-items:center; width:48px; height:48px; padding:0; border:1px solid var(--admin-border); border-radius:50%; color:var(--admin-text); background:var(--admin-panel); box-shadow:0 10px 28px rgba(15,23,42,.2); cursor:pointer; }
.ef-admin-tray-badge { position:absolute; top:-5px; right:-5px; display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border:2px solid var(--admin-panel); border-radius:999px; color:#171717 !important; background:#f2c400; font-size:.66rem !important; font-weight:850; }
.ef-admin-tray-badge[hidden] { display:none; }
.ef-admin-tray-actions .ef-admin-btn { position:relative; }
.ef-admin-action-count { position:absolute; top:-7px; right:-7px; display:grid !important; place-items:center; min-width:21px; height:21px; padding:0 6px; border:2px solid var(--admin-panel); border-radius:999px; color:#171717 !important; background:#f2c400; font-size:.66rem !important; font-weight:850; line-height:1; }
.ef-admin-action-count[hidden] { display:none !important; }
.ef-admin-tray-content { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; }
.ef-admin-tray-content[hidden], .ef-admin-update-prompt[hidden] { display:none !important; }
.ef-admin-update-prompt { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; }
.ef-admin-update-prompt .ef-update-progress-card { flex:1 1 100%; width:100%; }
.ef-update-install-state { display:grid; gap:7px; width:100%; }
.ef-update-backup-note { color:var(--admin-muted); font-size:.74rem; }
.ef-admin-update-copy { display:grid; gap:3px; }
.ef-admin-update-copy span { color:var(--admin-muted); font-size:.78rem; }
.ef-admin-update-actions { display:flex; align-items:center; gap:8px; }
.ef-admin-tray-summary { display:grid; gap:3px; }
.ef-admin-tray-summary strong { font-size:.86rem; }
.ef-admin-tray-actions { display:flex; align-items:center; gap:8px; }
.ef-admin-footer span { color: var(--admin-muted); font-size: .84rem; }
.ef-admin-footer .ef-admin-btn span { color:inherit; }
.ef-admin-footer .ef-admin-btn-primary:disabled {
  opacity:1; border-color:#ead783; background:#fff4bd; color:#171717; box-shadow:none;
}
.ef-admin-footer .ef-admin-btn-primary:disabled .ef-svg-icon svg { color:#171717; }
.ef-admin-footer .ef-admin-btn-primary:disabled .ef-svg-icon img { filter:brightness(0); }
.ef-update-modal-box { width: min(620px, calc(100vw - 28px)); }
.ef-update-intro { margin: 0 0 16px; color: #697386; line-height: 1.55; }
.ef-update-content { min-height: 90px; }
.ef-update-current {
  display: flex; justify-content: space-between; gap: 18px; align-items: center;
  margin-bottom: 12px; padding: 12px 14px; border-radius: 10px; background: #f4f6f8;
}
.ef-update-current span, .ef-update-release span { color: #697386; font-size: .78rem; }
.ef-update-list { display: grid; gap: 9px; }
.ef-update-release {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 13px 14px; border: 1px solid #dfe3e8; border-radius: 11px;
}
.ef-update-release > div { display: grid; gap: 3px; min-width: 0; }
.ef-update-release.installed { background: #f7faf8; border-color: #cce8d5; }
.ef-update-empty, .ef-update-error { padding: 14px; border-radius: 10px; background: #f4f6f8; line-height: 1.5; }
.ef-update-error { color: #a61b1b; background: #fff0f0; }
.ef-update-success { display: grid; gap: 5px; padding: 10px 0; color: #246b3a; background: transparent; }
.ef-update-success span { font-size: .82rem; }
.ef-update-progress-card { display:grid; gap:10px; padding:14px; border:1px solid #dfe3e8; border-radius:11px; background:#f8fafc; }
.ef-update-progress-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ef-update-progress-heading span { color:#697386; font-size:.78rem; text-align:right; }
.ef-update-progress { height:8px; overflow:hidden; border-radius:999px; background:#e3e7ec; }
.ef-update-progress > span { display:block; height:100%; border-radius:inherit; background:repeating-linear-gradient(110deg,#a98200 0,#a98200 12px,#f2c400 12px,#f2c400 25px,#ffd94b 25px,#ffd94b 36px); background-size:72px 100%; transition:width .45s cubic-bezier(.22,1,.36,1); animation:ef-update-flow .9s linear infinite; }
@keyframes ef-update-flow { to { background-position:72px 0; } }
@media (prefers-reduced-motion:reduce) { .ef-update-progress > span { animation:none; transition:none; } }
.ef-update-reload-success { padding:0; background:transparent; }
body.darkmode .ef-admin-dashboard { --admin-bg:#0f1012; --admin-panel:#191b1f; --admin-text:#f5f5f5; --admin-muted:#b0b3b8; --admin-border:#34373d; --admin-accent:#f2c400; }
body.darkmode.ef-adminmode { background: #0f1012; }
body.darkmode .ef-admin-header { box-shadow:0 18px 48px rgba(0,0,0,.42), inset 0 1px rgba(255,255,255,.025); }
body.darkmode .ef-admin-toolbar input, body.darkmode .ef-admin-toolbar select { background-color:#131519; color:var(--admin-text); }
body.darkmode .ef-admin-toolbar select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23cbd5e1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
body.darkmode .ef-admin-table th { background:#141619; }
body.darkmode .ef-admin-table td { border-bottom-color:#303339; }
body.darkmode .ef-admin-table tr:hover td { background:#222428; }
body.darkmode .ef-admin-table tr.ef-admin-changed td { background:#332d12; }
body.darkmode .ef-admin-footer { background:rgba(25,27,31,.96); box-shadow:none; }
body.darkmode .ef-admin-tray-toggle { color:#f5f5f5; background:#191b1f; box-shadow:0 12px 32px rgba(0,0,0,.46); }
body.darkmode .ef-admin-footer .ef-admin-btn-primary:disabled {
  opacity:1; border-color:rgba(242,196,0,.18); background:rgba(242,196,0,.10); color:rgba(245,245,245,.48); box-shadow:none;
}
body.darkmode .ef-admin-footer .ef-admin-btn-primary:disabled .ef-svg-icon svg { color:rgba(245,245,245,.48); }
body.darkmode .ef-admin-footer .ef-admin-btn-primary:disabled .ef-svg-icon img { filter:brightness(0) invert(1); opacity:.48; }
body.darkmode .ef-admin-btn-secondary, body.darkmode .ef-admin-btn-danger { border-color:#3c4047; background:#191b1f; }
body.darkmode .ef-admin-btn-secondary:hover { background:#25272c; border-color:#5a5e66; }
body.darkmode .ef-admin-btn-danger:hover { border-color:#5a5e66; background:#25272c; }
body.darkmode .ef-admin-pill.yes { color:#86e5a6; }
body.darkmode .ef-admin-pill.no { color:#ffaaa3; }
body.darkmode .ef-admin-stat:hover, body.darkmode .ef-admin-stat.active { background:#202226; box-shadow:inset 3px 0 var(--admin-accent),0 10px 24px rgba(0,0,0,.24); }
body.darkmode .ef-admin-change-card { background:#202226; }
body.darkmode .ef-update-intro, body.darkmode .ef-update-current span, body.darkmode .ef-update-release span { color:#aeb4be; }
body.darkmode .ef-update-current, body.darkmode .ef-update-empty { background:#22262b; }
body.darkmode .ef-update-release { border-color:#3a3f46; }
body.darkmode .ef-update-release.installed { background:#17251b; border-color:#31563a; }
body.darkmode .ef-update-error { background:#351b1b; color:#ffaaaa; }
body.darkmode .ef-update-success { background:transparent; color:#9ad9a8; }
body.darkmode .ef-update-progress-card { border-color:#3a3f46; background:#22262b; }
body.darkmode .ef-update-progress-heading span { color:#aeb4be; }
body.darkmode .ef-update-progress { background:#3a3f46; }

.ef-pdf-toast { position:fixed; z-index:1200; left:50%; bottom:max(24px,env(safe-area-inset-bottom)); width:max-content; max-width:min(430px,calc(100vw - 28px)); box-sizing:border-box; overflow-wrap:anywhere; padding:11px 15px; border:1px solid rgba(184,146,0,.34); border-radius:999px; color:#1d2026; background:rgba(255,255,255,.97); box-shadow:0 12px 34px rgba(15,23,42,.18); font:700 .82rem/1.3 'Segoe UI',system-ui,sans-serif; opacity:0; transform:translate(-50%,12px); transition:opacity .2s ease,transform .2s ease; pointer-events:none; }
.ef-pdf-toast.visible { opacity:1; transform:translate(-50%,0); }
.ef-pdf-toast.is-error { border-color:rgba(180,35,24,.35); color:#9f2018; }
body.darkmode .ef-pdf-toast { border-color:rgba(242,196,0,.3); color:#f5f5f5; background:rgba(25,27,31,.98); box-shadow:0 14px 38px rgba(0,0,0,.42); }
body.darkmode .ef-pdf-toast.is-error { border-color:rgba(255,130,120,.4); color:#ffaaa3; }

/* Tablet portrait keeps a complete table, with touch-sized icon actions.
   The phone cards and the desktop scrolling/tray geometry remain unchanged. */
@media (min-width:861px) and (max-width:1250px) {
  .ef-admin-header { display:grid; grid-template-columns:355px minmax(0,1fr); gap:18px; padding:22px 20px; }
  .ef-admin-brand { gap:14px; }
  .ef-admin-logo { width:58px; height:66px; flex-basis:58px; }
  .ef-admin-header h1 { font-size:1.65rem; white-space:nowrap; }
  .ef-admin-header p { font-size:.85rem; line-height:1.4; }
  .ef-admin-header-actions { width:100%; gap:8px; }
  .ef-admin-header-actions .ef-admin-btn { padding-inline:12px; }
  .ef-admin-table { table-layout:fixed; }
  .ef-admin-table th, .ef-admin-table td { padding:clamp(10px,calc(4.834px + .6vw),12px) clamp(6px,calc(1.542vw - 7.276px),12px); }
  /* Distribute the remaining width proportionally instead of letting the
     location column absorb all space released by the smaller type. */
  .ef-admin-table th:nth-child(1) { width:calc(18cqw - 19.08px); }
  .ef-admin-table th:nth-child(2) { width:calc(11cqw - 11.66px); }
  .ef-admin-table th:nth-child(3) { width:calc(12cqw - 12.72px); }
  .ef-admin-table th:nth-child(4) { width:calc(11cqw - 11.66px); }
  .ef-admin-table th:nth-child(5) { width:calc(19cqw - 20.14px); }
  .ef-admin-table th:nth-child(6) { width:calc(11.5cqw - 12.19px); }
  .ef-admin-table th:nth-child(7) { width:calc(8cqw - 8.48px); }
  .ef-admin-table th:nth-child(8) { width:calc(9.5cqw - 10.07px); }
  .ef-admin-table th:nth-child(9) { width:106px; }
  .ef-admin-table th:last-child, .ef-admin-table td:last-child { padding-inline:6px; }
  .ef-admin-table td:nth-child(2), .ef-admin-table td:nth-child(3), .ef-admin-table td:nth-child(4) { white-space:nowrap; }
  .ef-admin-table td:first-child, .ef-admin-table td:nth-child(5) { overflow-wrap:anywhere; }
  .ef-admin-name { min-width:0; }
  .ef-admin-sub { font-size:.85em; }
  .ef-admin-table th:nth-child(6), .ef-admin-table th:nth-child(7), .ef-admin-table th:nth-child(8),
  .ef-admin-table td:nth-child(6), .ef-admin-table td:nth-child(7), .ef-admin-table td:nth-child(8) { text-align:center; }
  .ef-admin-row-actions { gap:6px; }
  .ef-admin-row-actions .ef-admin-btn { display:inline-flex; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; padding:0; }
  .ef-admin-row-action-label { display:none; }
}

@media (max-width: 860px) {
  .ef-scroll-fade { height:52px; }
  .ef-admin-dashboard { width: min(100% - 20px, 720px); margin-top: 10px; }
  .ef-admin-header { padding: 21px 18px; flex-direction: column; }
  .ef-admin-brand { width:100%; align-items:center; flex-direction:row; gap:13px; }
  .ef-admin-logo { width:58px; height:66px; flex:0 0 58px; }
  .ef-admin-header h1 { font-size:clamp(1.15rem,5.2vw,1.45rem); }
  .ef-admin-header p { margin-top:4px; font-size:.74rem; line-height:1.3; }
  .ef-admin-eyebrow { margin-bottom:2px; font-size:.63rem; }
  .ef-admin-header-actions { width: 100%; }
  .ef-admin-header-actions .ef-admin-btn { flex: 1; }
  .ef-admin-toolbar { grid-template-columns: 1fr; }
  .ef-admin-search { grid-column: 1 / -1; grid-row: 1; }
  .ef-admin-toolbar > label:not(.ef-admin-search) { grid-column:1; grid-row:2; }
  .ef-admin-toolbar-actions { display:grid; grid-column:1; grid-row:3; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; }
  .ef-admin-toolbar-actions .ef-admin-btn { width: 100%; }
  .ef-admin-stats { grid-template-columns: 1fr 1fr; }
  .ef-admin-table, .ef-admin-table tbody { display: block; }
  .ef-admin-table thead { display: none; }
  .ef-admin-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; padding: 15px; border-bottom: 1px solid var(--admin-border); }
  .ef-admin-table td { display: block; padding: 0; border: 0; }
  .ef-admin-table td:first-child { grid-column: 1 / -1; }
  .ef-admin-table td:last-child { grid-column: 1 / -1; }
  .ef-admin-table td::before { content: attr(data-label); display: block; margin-bottom: 2px; color: var(--admin-muted); font-size: .65rem; font-weight: 750; text-transform: uppercase; }
  .ef-admin-table td:first-child::before, .ef-admin-table td:last-child::before { display:none; }
  .ef-admin-table td:last-child .ef-admin-btn { width:100%; margin-top:6px; }
  .ef-admin-row-actions { align-items: stretch; flex-direction: column; }
  .ef-admin-mobile-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .ef-admin-mobile-heading > div { min-width:0; }
  .ef-admin-mobile-toggle { display:grid !important; place-items:center; flex:0 0 38px; width:38px; height:38px; padding:0; border:1px solid var(--admin-border); border-radius:10px; background:var(--admin-panel); color:var(--admin-text); cursor:pointer; }
  .ef-admin-mobile-chevron { display:block; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); transform-origin:50% 50%; transition:transform .2s ease; }
  .ef-admin-table tr:not(.ef-admin-mobile-collapsed) .ef-admin-mobile-chevron { transform:translateY(2px) rotate(225deg); }
  .ef-admin-table tr.ef-admin-mobile-collapsed { grid-template-columns:1fr; }
  .ef-admin-table tr.ef-admin-mobile-collapsed td:not(:first-child) { display:none; }
  .ef-admin-table tr:hover td { background:transparent; }
  .ef-admin-table tr.ef-admin-changed:hover td { background:#fff8d6; }
  body.darkmode .ef-admin-table tr:hover td { background:transparent; }
  body.darkmode .ef-admin-table tr.ef-admin-changed:hover td { background:#332d12; }
  .ef-admin-footer { position:fixed; right:14px; bottom:14px; left:auto; width:54px; min-height:54px; margin:0; padding:3px; border:0; border-radius:50%; align-items:center; justify-content:center; background:transparent; box-shadow:none; backdrop-filter:none; }
  .ef-admin-tray-toggle { z-index:2; display:grid; flex:0 0 48px; align-self:center; }
  .ef-admin-tray-content { position:absolute; right:0; bottom:64px; display:inline-grid; justify-items:end; gap:10px; width:max-content; min-width:0; max-width:calc(100vw - 28px); padding:12px; border:1px solid var(--admin-border); border-radius:18px; background:rgba(255,255,255,.97); box-shadow:0 18px 48px rgba(15,23,42,.25); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(14px) scale(.94); transform-origin:bottom right; transition:opacity .2s ease,transform .26s cubic-bezier(.22,1,.36,1),visibility 0s linear .26s; }
  .ef-admin-footer.expanded .ef-admin-tray-content { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1); transition-delay:0s; }
  .ef-admin-update-prompt { position:absolute; right:0; bottom:64px; display:grid; justify-items:stretch; gap:10px; width:min(330px,calc(100vw - 28px)); padding:12px; border:1px solid var(--admin-border); border-radius:18px; background:rgba(255,255,255,.97); box-shadow:0 18px 48px rgba(15,23,42,.25); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  .ef-admin-update-actions { display:grid; grid-template-columns:1fr 1fr; }
  .ef-admin-update-actions .ef-admin-btn { width:100%; }
  .ef-admin-tray-summary { justify-self:stretch; padding:2px 3px 0; text-align:right; }
  .ef-admin-tray-actions { display:grid; grid-template-columns:max-content; justify-items:stretch; gap:7px; width:max-content; max-width:100%; }
  .ef-admin-tray-actions .ef-admin-btn { width:100%; justify-content:flex-start; padding-inline:11px; gap:7px; font-size:.76rem; white-space:nowrap; }
  .ef-admin-tray-actions .ef-admin-tray-public { grid-column:auto; }
  body.darkmode .ef-admin-footer { background:transparent; box-shadow:none; }
  body.darkmode .ef-admin-footer .ef-admin-tray-content { background:rgba(25,27,31,.98); box-shadow:0 18px 48px rgba(0,0,0,.55); }
  body.darkmode .ef-admin-update-prompt { background:rgba(25,27,31,.98); box-shadow:0 18px 48px rgba(0,0,0,.55); }

  .ef-app-quick-menu { right:max(14px,env(safe-area-inset-right)); bottom:max(14px,env(safe-area-inset-bottom)); width:54px; height:54px; }
  .ef-app-menu-toggle { position:relative; z-index:2; display:grid; place-items:center; width:54px; height:54px; padding:0; border:1px solid rgba(120,126,138,.34); border-radius:50%; color:#273142; background:rgba(255,255,255,.97); box-shadow:0 10px 24px rgba(15,23,42,.18); cursor:pointer; }
  .ef-app-quick-actions { width:max-content; min-width:0; max-width:calc(100vw - 28px); }
  .ef-app-quick-menu.expanded .ef-app-quick-actions { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1); transition-delay:0s; }
  .ef-app-quick-action { width:auto; justify-content:flex-start; }
  body.darkmode .ef-app-menu-toggle { color:#f5f5f5; border-color:#3b3e44; background:#191b1f; box-shadow:0 10px 24px rgba(0,0,0,.34); }
  .ef-update-release { align-items: stretch; flex-direction: column; }
  .ef-update-release .ef-admin-btn { width: 100%; }
  .ef-admin-changes-panel > header { align-items:stretch; flex-direction:column; }
  .ef-admin-change-card li { grid-template-columns:1fr; gap:2px; padding:7px 0; border-top:1px solid var(--admin-border); }
  .ef-admin-change-card li:first-child { border-top:0; }
  .ef-admin-suggestion-card header { align-items:stretch; flex-direction:column; }
  .ef-admin-suggestion-actions { display:grid; grid-template-columns:1fr 1fr; }
  .ef-admin-change-card li strong::before { content:"Neu: "; }
  .ef-save-review-actions { display:grid; grid-template-columns:auto minmax(0,1fr); }
  .ef-save-review-actions button { width:100%; }
  .ef-save-review-actions > button { font-size:.85rem; }
}

@media (max-width: 460px) {
  .ef-admin-stats { grid-template-columns:1fr 1fr; gap:8px; }
  .ef-admin-stat { padding:12px; }
  .ef-admin-stat strong { font-size:1.15rem; }
  .ef-admin-stat span { font-size:.7rem; }
  .ef-admin-stat small { display:none; }
}

#ef-body .ef-item-name {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.42rem;
  overflow: hidden;
  white-space: nowrap;
}

#ef-body .ef-item-name > a,
#ef-body .ef-item-name > span:not(.ef-sug-indicator):not(.ef-item-interest) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#ef-body .ef-item-interest {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.18rem;
  line-height: 1.15;
  font-size: 0.74rem;
  padding: 0.12rem 0.45rem;
  max-width: max-content;
}

#ef-body .ef-item-date {
  min-width: 0;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.36rem;
}

#ef-body .ef-item-row .ef-mitfahrt-pill {
  width: 1.55rem;
  height: 1.55rem;
  min-width: 1.55rem;
  overflow: hidden;
}

#ef-body .ef-item-row .ef-mitfahrt-icon {
  width: .76rem;
  height: .76rem;
}

#ef-body .ef-item-chevron {
  justify-self: end;
}

@media (max-width: 560px) {
  #ef-body .ef-item-row {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    gap: 0.34rem;
  }

  #ef-body .ef-item-name {
    gap: 0.28rem;
  }

  #ef-body .ef-item-interest {
    font-size: 0.66rem;
    padding: 0.08rem 0.34rem;
  }

  #ef-body .ef-item-row .ef-mitfahrt-pill {
    width: 1.42rem;
    height: 1.42rem;
    min-width: 1.42rem;
  }

  #ef-body .ef-item-row .ef-mitfahrt-icon {
    width: .68rem;
    height: .68rem;
  }
}

/* Bedienoberfläche: keine rechteckige Browser-Markierung beim Tippen und
   keine versehentliche Textauswahl auf Schaltflächen oder Bedienelementen. */
body,
button,
a,
summary,
label,
[role="button"],
.ef-admin-header,
.ef-admin-toolbar,
.ef-admin-stats,
.ef-admin-footer,
.ef-app-quick-menu,
.ef-modal-actions {
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

button,
a,
summary,
[role="button"],
input,
select,
textarea {
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

/* Nutzdaten bleiben bewusst markier- und kopierbar. */
input,
textarea,
[contenteditable="true"],
#ef-body .ef-item,
#ef-body .ef-item a,
.ef-admin-table td,
.ef-interest-log-row:not(.ef-interest-log-head) {
  -webkit-user-select:text;
  user-select:text;
  -webkit-touch-callout:default;
}

button:focus-visible,
a:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible {
  outline:0;
  box-shadow:0 0 0 3px rgba(184,146,0,.24);
}

body.darkmode button:focus-visible,
body.darkmode a:focus-visible,
body.darkmode summary:focus-visible,
body.darkmode [role="button"]:focus-visible {
  box-shadow:0 0 0 3px rgba(245,197,24,.28);
}

@media (max-width: 380px) {
  #ef-body .ef-item-row {
    grid-template-columns: minmax(0, 1fr) 18px;
  }

  #ef-body .ef-item-date {
    display: none;
  }
}

/* Eigenständig geöffnete App: dezenter Hintergrund für Besucheransicht,
   Vorschau und Verwaltung. Die WordPress-Einbettung bleibt transparent. */
body.ef-standalone-app {
  min-height: 100vh;
  background:transparent;
}
/* Share one viewport-sized background with the native scrollbar lane. */
html:has(body.ef-standalone-app) {
  --ef-page-background:
    radial-gradient(circle at 12% 5%, rgba(242,196,0,.08), transparent 34rem),
    radial-gradient(circle at 88% 76%, rgba(102,85,204,.05), transparent 38rem),
    linear-gradient(145deg, #fff9ed 0%, #f5f0f8 52%, #eef6f3 100%);
  background:var(--ef-page-background);
  background-attachment: fixed;
}

/* Keep the subtle page colours outside the reading surfaces. */
body.ef-standalone-app:not(.darkmode) #ef-root {
  --bg-card: #f5f5f4;
  --bg-inner: #eeefed;
  --bg-detail: #f7f7f6;
}
body.ef-standalone-app:not(.darkmode) #ef-root .ef-month {
  background: rgba(255,255,255,.9);
}
body.ef-standalone-app:not(.darkmode) #ef-root .ef-item {
  background: #fff;
}

html:has(body.darkmode.ef-standalone-app) {
  --ef-page-background:
    radial-gradient(circle at 12% 5%, rgba(242,196,0,.085), transparent 35rem),
    radial-gradient(circle at 88% 76%, rgba(120,105,235,.075), transparent 40rem),
    linear-gradient(145deg, #121315 0%, #0d0e10 54%, #15140f 100%);
  background:var(--ef-page-background);
  background-attachment: fixed;
}

/* Aktualisierungshinweis der installierten PWA. */
#ef-pwa-update {
  position: fixed;
  z-index: 1200;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(620px, calc(100vw - 28px));
  padding: 12px;
  border: 1px solid rgba(120,126,138,.32);
  border-radius: 16px;
  color: #20242b;
  background: rgba(255,255,255,.97);
  box-shadow: 0 16px 44px rgba(15,23,42,.2);
  font-family: 'Segoe UI', system-ui, Arial, sans-serif;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.ef-pwa-update-copy { display: grid; gap: 2px; min-width: 0; margin-right: auto; }
.ef-pwa-update-copy strong { font-size: .92rem; }
.ef-pwa-update-copy span { color: #667085; font-size: .78rem; }
#ef-pwa-update button {
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid #c7ccd4;
  border-radius: 10px;
  color: #273142;
  background: transparent;
  font: 750 .8rem/1.2 inherit;
  white-space: nowrap;
  cursor: pointer;
}
#ef-pwa-update .ef-pwa-update-now { color: #171717; border-color: #c8a000; background: #f2c400; }
body.darkmode #ef-pwa-update { color: #f5f5f5; border-color: #3b3e44; background: rgba(25,27,31,.97); box-shadow: 0 16px 44px rgba(0,0,0,.42); }
body.darkmode .ef-pwa-update-copy span { color: #b0b3b8; }
body.darkmode #ef-pwa-update button { color: #f5f5f5; border-color: #50545c; }
body.darkmode #ef-pwa-update .ef-pwa-update-now { color: #171717; border-color: #f2c400; background: #f2c400; }

@media (max-width: 620px) {
  #ef-pwa-update { align-items: stretch; display: grid; grid-template-columns: 1fr 1fr; }
  .ef-pwa-update-copy { grid-column: 1 / -1; }
}

#ef-pwa-install-help {
  position: fixed;
  z-index: 1300;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(10,12,16,.58);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ef-pwa-install-card {
  display: grid;
  gap: 14px;
  width: min(420px, 100%);
  padding: 22px;
  border: 1px solid rgba(120,126,138,.32);
  border-radius: 18px;
  color: #20242b;
  background: #fff;
  box-shadow: 0 22px 60px rgba(0,0,0,.3);
  font-family: 'Segoe UI', system-ui, Arial, sans-serif;
}
.ef-pwa-install-card > strong { font-size: 1.08rem; }
.ef-pwa-install-card p { color: #667085; line-height: 1.5; }
.ef-pwa-install-card ol { display: grid; gap: 9px; margin: 0; padding-left: 1.4rem; }
.ef-pwa-install-card button { min-height: 44px; border: 1px solid #c8a000; border-radius: 11px; color: #171717; background: #f2c400; font: 800 .88rem/1.2 inherit; cursor: pointer; }
body.darkmode .ef-pwa-install-card { color: #f5f5f5; border-color: #3b3e44; background: #191b1f; }
body.darkmode .ef-pwa-install-card p { color: #b0b3b8; }

.ef-modal-box.ef-modal-with-actions {
  display:flex; flex-direction:column; padding:0;
  min-height:0; max-height:min(88dvh,100%); overflow:hidden;
}
.ef-modal-scroll-body {
  flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden;
  padding:var(--ef-modal-padding-block) var(--ef-modal-padding-inline);
  scrollbar-gutter:stable; overscroll-behavior:contain; touch-action:pan-y;
  scroll-padding-block:16px;
}
.ef-modal-with-actions > .ef-modal-actions {
  flex:0 0 auto; margin:0;
  padding:14px var(--ef-modal-padding-inline) var(--ef-modal-padding-block);
  border-top:1px solid rgba(15,23,42,.10);
  background:#fff;
}
body.darkmode .ef-modal-with-actions > .ef-modal-actions {
  border-top-color:rgba(255,255,255,.12); background:#181818;
}
.ef-proposal-badge {
  display:inline-block; margin-left:8px; padding:2px 6px; border-radius:5px;
  color:#6f5800; background:#fff1ac; font-size:.65rem; font-weight:800;
}
.ef-proposal-field :is(input,.ef-custom-select-trigger) {
  border-color:#b89200; box-shadow:0 0 0 2px rgba(184,146,0,.17);
}
body.darkmode .ef-proposal-badge { color:#f8d84a; background:#332d12; }
body.darkmode .ef-proposal-field :is(input,.ef-custom-select-trigger) {
  border-color:#f5c518; box-shadow:0 0 0 2px rgba(245,197,24,.16);
}




