/* MFM Social Hub – Premium 2610. Gemeinsame Basis für Portal (/social-media/) und öffentliche Seiten (/einwilligung/, /freigabe/).
   Marke wie premium.css: Tinte #0f1b2d, scharfe 3-px-Ecken, 1-px-Haarlinien, keine Schatten/Verläufe, Inter, ein Akzentblau.
   Die --mx-*-Tokens kommen im Portal aus dem Theme (premium.css); die Fallbackwerte gelten auf den eigenständigen öffentlichen Seiten.
   Intern darf es dichter sein als die Website: 15 px Grundschrift, Tabellen kompakt. Selektoren, die JS/PHP nutzen, bleiben unverändert. */
.mfm-sh {
  --sh-ink: var(--mx-ink, #0f1b2d);
  --sh-accent: var(--mx-accent-strong, #0a4a8f); --sh-accent-2: #25334a; --sh-blue: var(--mx-accent, #2a6fdb);
  --sh-text: var(--mx-ink, #0f1b2d); --sh-muted: var(--mx-text-2, #55606f); --sh-border: var(--mx-line, #dcdfe4);
  --sh-bg: var(--mx-bg-alt, #f4f4f1); --sh-cool: var(--mx-bg-cool, #eef3fa); --sh-white: #fff;
  --sh-ok: var(--mx-ok, #1f7a4d); --sh-warn: #8a5a00; --sh-warm: var(--mx-warm, #f2b84b); --sh-bad: var(--mx-err, #a3261f);
  --sh-ok-bg: #f0f7f3; --sh-warn-bg: #fff6dc; --sh-bad-bg: #fdf1f0; --sh-radius: var(--mx-radius, 3px);
  --sh-font: var(--mx-font, 'Inter Variable', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif);
  color: var(--sh-text); font-family: var(--sh-font); font-size: 15px; line-height: 1.55;
}
.mfm-sh *, .mfm-sh *::before, .mfm-sh *::after { box-sizing: border-box; }
.mfm-sh h1 { font-size: 1.75rem; font-weight: 300; letter-spacing: -.02em; line-height: 1.2; margin: .2em 0 .6em; }
.mfm-sh h2 { font-size: 1.1875rem; font-weight: 500; letter-spacing: -.01em; line-height: 1.3; margin: 1.1em 0 .5em; }
.mfm-sh h3 { font-size: 1rem; font-weight: 600; margin: 0 0 .5em; }
.mfm-sh a { color: var(--sh-accent); text-underline-offset: 3px; }
.mfm-sh label { display: block; margin: .6em 0; font-size: .875rem; font-weight: 500; }
.mfm-sh input[type=text], .mfm-sh input[type=email], .mfm-sh input[type=search], .mfm-sh input[type=date],
.mfm-sh input[type=datetime-local], .mfm-sh input[type=number], .mfm-sh input[type=url], .mfm-sh input[type=time],
.mfm-sh input[type=week], .mfm-sh input[type=tel], .mfm-sh input[type=file], .mfm-sh select, .mfm-sh textarea {
  display: block; width: 100%; margin-top: .3em; padding: .6em .8em; min-height: 44px; border: 1px solid var(--sh-border); border-radius: var(--sh-radius);
  font: inherit; font-weight: 400; background: #fff; color: var(--sh-text); transition: border-color .3s, box-shadow .3s;
}
.mfm-sh input[type=file] { padding: .5em .6em; }
.mfm-sh textarea { resize: vertical; min-height: 96px; }
.mfm-sh input:focus, .mfm-sh select:focus, .mfm-sh textarea:focus { outline: 0; border-color: var(--sh-ink); box-shadow: 0 0 0 3px rgba(42, 111, 219, .25); }
.mfm-sh fieldset { border: 1px solid var(--sh-border); border-radius: var(--sh-radius); padding: .6em 1em 1em; margin: 1em 0; min-width: 0; }
.mfm-sh fieldset[disabled] { opacity: .65; }
.mfm-sh legend { font-weight: 600; padding: 0 .3em; }
.mfm-sh-check { display: flex !important; gap: .6em; align-items: flex-start; font-weight: 400 !important; font-size: 1rem !important; margin: .35em 0 !important; cursor: pointer; }
.mfm-sh-check input { margin-top: .25em; flex: 0 0 auto; width: 1.1em; height: 1.1em; min-height: 0; accent-color: var(--sh-ink); }
.mfm-sh-check--inline { display: inline-flex !important; margin-right: 1em !important; }
.mfm-sh-checks { margin: .3em 0; }
.mfm-sh-muted, .mfm-sh small { color: var(--sh-muted); }
.mfm-sh-muted { font-size: .9em; }

.mfm-sh-card { background: var(--sh-white); border: 1px solid var(--sh-border); border-radius: var(--sh-radius); padding: 1.1em 1.3em; margin: 0 0 1em; box-shadow: none; }
.mfm-sh-card > summary { cursor: pointer; font-weight: 500; }
.mfm-sh-hint { background: var(--sh-cool); border-color: var(--sh-border); border-left: 3px solid var(--sh-blue); }
.mfm-sh-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 1.2em; }
.mfm-sh-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1em; margin-bottom: 1em; }

/* Navigation (2.5): Hauptleiste = Bereiche (Redaktion) bzw. flache Leiste (Mitarbeiter), darunter Unterpunkte als Rahmen-Chips.
   Nichts ist fixed/sticky – die Leisten stehen im Fluss der Seite. Premium: reine Linien, aktiv = 2-px-Tintenlinie. */
.mfm-sh-tabs { display: flex; gap: .2em; flex-wrap: wrap; margin: 0 0 .9em; border-bottom: 1px solid var(--sh-border); }
.mfm-sh-tabs a { display: inline-flex; align-items: center; gap: .45em; min-height: 46px; padding: .55em 1em; text-decoration: none; color: var(--sh-muted); font-weight: 500; margin-bottom: -1px; border-bottom: 2px solid transparent; border-radius: 0; transition: color .3s, border-color .3s; }
.mfm-sh-tabs a:hover { color: var(--sh-ink); }
.mfm-sh-tabs a.is-active { color: var(--sh-ink); border-bottom-color: var(--sh-ink); background: transparent; font-weight: 600; }
.mfm-sh-tabs a:focus-visible, .mfm-sh-subtabs a:focus-visible, .mfm-sh-views a:focus-visible { outline: 2px solid var(--sh-blue); outline-offset: 2px; }
.mfm-sh-tabs .dashicons { width: 18px; height: 18px; font-size: 18px; line-height: 1; flex: 0 0 auto; opacity: .75; }
.mfm-sh-tabs__short { display: none; }
.mfm-sh-badge-n { display: inline-block; min-width: 1.5em; padding: .05em .4em; border-radius: var(--sh-radius); background: var(--sh-bad); color: #fff; font-size: max(11px, .75em); font-weight: 600; line-height: 1.4; text-align: center; font-variant-numeric: tabular-nums; }
.mfm-sh-subtabs { display: flex; flex-wrap: wrap; gap: .4em; margin: 0 0 1.1em; }
.mfm-sh-subtabs a { display: inline-flex; align-items: center; gap: .3em; min-height: 40px; padding: .35em .95em; border-radius: var(--sh-radius); background: #fff; border: 1px solid var(--sh-border); color: var(--sh-text); text-decoration: none; font-size: .9em; font-weight: 500; transition: border-color .3s, background-color .3s; }
.mfm-sh-subtabs a:hover { border-color: var(--sh-ink); }
.mfm-sh-subtabs a.is-active { background: var(--sh-ink); border-color: var(--sh-ink); color: #fff; }
.mfm-sh-subtabs a.mfm-sh-subtabs__action { margin-left: auto; background: #fff; border-color: rgba(15, 27, 45, .4); color: var(--sh-ink); }
.mfm-sh-subtabs a.mfm-sh-subtabs__action.is-active { background: var(--sh-ink); color: #fff; }
/* Ansichten innerhalb eines Unterpunkts (Woche · Liste · Kalender, Status …): Segment-Umschalter, aktiv mit Tintenlinie unten –
   bewusst anders als die Rahmen-Chips der Unterleiste, damit die zwei Ebenen nicht gleich aussehen (2.5 Korrektur M4). */
.mfm-sh-views { display: inline-flex; flex-wrap: wrap; gap: 2px; max-width: 100%; margin: 0 0 .9em; padding: 3px; border: 1px solid var(--sh-border); border-radius: var(--sh-radius); background: #fff; }
.mfm-sh-views a { display: inline-flex; align-items: center; gap: .2em; min-height: 36px; padding: .3em .85em; border-radius: 2px; background: transparent; border: 0; text-decoration: none; color: var(--sh-muted); font-size: .9em; font-weight: 500; }
.mfm-sh-views a:hover { background: var(--sh-bg); color: var(--sh-ink); }
.mfm-sh-views a b { margin-left: .2em; font-weight: 600; font-variant-numeric: tabular-nums; }
.mfm-sh-views a.is-active { background: var(--sh-bg); color: var(--sh-ink); font-weight: 600; box-shadow: inset 0 -2px 0 var(--sh-ink); }
.mfm-sh-toolbar { display: flex; flex-wrap: wrap; gap: .5em; align-items: center; margin: 0 0 1em; }
.mfm-sh-toolbar input[type=search], .mfm-sh-toolbar select { width: auto; margin: 0; }
.mfm-sh-inline { display: inline-flex; gap: .5em; margin: 0; }
.mfm-sh-inline select { width: auto; margin: 0; }

/* Knöpfe: Tinte, 3 px, keine Schatten. Ghost = Rahmen, ok = Grün (Freigabe), danger = Rot-Umriss (gleich groß, nie versteckt). */
.mfm-sh-btn { display: inline-flex; align-items: center; gap: .45em; background: var(--sh-ink); color: #fff !important; border: 1px solid var(--sh-ink); border-radius: var(--sh-radius); padding: .6em 1.2em; font: inherit; font-weight: 500; letter-spacing: .005em; cursor: pointer; text-decoration: none; min-height: 44px; transition: background .3s, border-color .3s, color .3s; }
.mfm-sh-btn:hover { background: var(--sh-accent-2); border-color: var(--sh-accent-2); }
.mfm-sh-btn:disabled { opacity: .5; cursor: not-allowed; }
.mfm-sh-btn--ghost { background: transparent; color: var(--sh-ink) !important; border-color: rgba(15, 27, 45, .4); }
.mfm-sh-btn--ghost:hover { background: transparent; border-color: var(--sh-ink); }
.mfm-sh-btn--ok { background: var(--sh-ok); border-color: var(--sh-ok); }
.mfm-sh-btn--ok:hover { background: #17613c; border-color: #17613c; }
.mfm-sh-btn--danger { background: transparent; border-color: var(--sh-bad); color: var(--sh-bad) !important; }
.mfm-sh-btn--danger:hover { background: var(--sh-bad-bg); border-color: var(--sh-bad); }
.mfm-sh-link { background: none; border: 0; color: var(--sh-accent); cursor: pointer; padding: 0; font: inherit; text-decoration: underline; text-underline-offset: 3px; font-size: .9em; }
.mfm-sh-actions { display: flex; flex-wrap: wrap; gap: .5em; align-items: flex-start; margin: .8em 0; }
.mfm-sh-actions form { margin: 0; }
.mfm-sh-actions details { width: 100%; }
.mfm-sh-actions details > summary { list-style: none; display: inline-flex; }

.mfm-sh-notice { padding: .85em 1.1em; border-radius: var(--sh-radius); margin: 0 0 1em; border: 1px solid var(--sh-border); border-left: 3px solid var(--sh-ink); background: #fff; color: var(--sh-text); }
.mfm-sh-notice--success { background: var(--sh-ok-bg); border-left-color: var(--sh-ok); color: var(--sh-text); }
.mfm-sh-notice--error { background: var(--sh-bad-bg); border-left-color: var(--sh-bad); color: var(--sh-text); }
.mfm-sh-notice--info { background: var(--sh-cool); border-left-color: var(--sh-blue); color: var(--sh-text); }

.mfm-sh-light { display: inline-block; width: .8em; height: .8em; border-radius: 50%; vertical-align: -.05em; box-shadow: none; flex: 0 0 auto; }
.mfm-sh-light--gruen { background: var(--sh-ok); }
.mfm-sh-light--gelb { background: var(--sh-warm); }
.mfm-sh-light--rot { background: var(--sh-bad); }
.mfm-sh-badge { display: inline-block; font-size: max(11px, .78em); font-weight: 600; padding: .15em .55em; border-radius: var(--sh-radius); background: var(--sh-bg); color: var(--sh-ink); border: 1px solid var(--sh-border); vertical-align: middle; }
.mfm-sh-badge--freigegeben, .mfm-sh-badge--erteilt, .mfm-sh-badge--papier, .mfm-sh-badge--eingeplant, .mfm-sh-badge--veroeffentlicht { background: var(--sh-ok-bg); color: #17543a; border-color: #bcd9c9; }
.mfm-sh-badge--abgelehnt, .mfm-sh-badge--widerrufen, .mfm-sh-badge--abgelaufen, .mfm-sh-badge--gesperrt, .mfm-sh-badge--fehler { background: var(--sh-bad-bg); color: #7d1d17; border-color: #ebc3bf; }
.mfm-sh-badge--freigabe_angefragt, .mfm-sh-badge--angefragt, .mfm-sh-badge--offen, .mfm-sh-badge--neu { background: var(--sh-warn-bg); color: #6b4a00; border-color: #ecd9a0; }

.mfm-sh-table { width: 100%; border-collapse: collapse; font-size: .9333em; }
.mfm-sh-table th { text-align: left; padding: .7em .6em; border-bottom: 1px solid var(--sh-ink); font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--sh-muted); vertical-align: bottom; }
.mfm-sh-table td { text-align: left; padding: .65em .6em; border-bottom: 1px solid var(--sh-border); vertical-align: top; }
.mfm-sh-table tbody tr:hover td { background: var(--sh-bg); }
.mfm-sh-table__group td, .mfm-sh-table tbody tr.mfm-sh-table__group:hover td { background: var(--sh-bg); font-weight: 600; font-size: .9em; }
.mfm-sh-table--kv th { width: 30%; color: var(--sh-muted); font-weight: 500; font-size: .9em; letter-spacing: 0; text-transform: none; border-bottom: 1px solid var(--sh-border); }
.mfm-sh-card:has(> .mfm-sh-table) { overflow-x: auto; }

.mfm-sh-tile { display: flex; flex-direction: column; gap: .3em; padding: 1.2em; background: #fff; border: 1px solid var(--sh-border); border-radius: var(--sh-radius); text-decoration: none; color: var(--sh-text) !important; box-shadow: none; transition: border-color .3s; }
.mfm-sh-tile strong { font-size: 1.05em; font-weight: 500; }
.mfm-sh-tile span { color: var(--sh-muted); font-size: .9em; }
.mfm-sh-tile .mfm-sh-badge-n { color: #fff; }
.mfm-sh-tile:hover { border-color: var(--sh-ink); }
.mfm-sh-stats { display: flex; flex-wrap: wrap; gap: .6em; }
.mfm-sh-stats a { flex: 1 1 110px; text-decoration: none; background: var(--sh-bg); border-radius: var(--sh-radius); padding: .7em .8em; color: var(--sh-muted); font-size: .85em; }
.mfm-sh-stats b { display: block; font-size: 1.75em; font-weight: 300; letter-spacing: -.02em; color: var(--sh-ink); font-variant-numeric: tabular-nums; }

.mfm-sh-pb { position: relative; margin: .5em 0; }
.mfm-sh-pb__results { list-style: none; margin: .2em 0 0; padding: 0; border-radius: var(--sh-radius); max-height: 340px; overflow-y: auto; }
.mfm-sh-pb__results:not(:empty) { border: 1px solid var(--sh-border); background: #fff; }
.mfm-sh-pb__results li { padding: .6em .8em; border-bottom: 1px solid var(--sh-border); cursor: pointer; }
.mfm-sh-pb__results li:hover, .mfm-sh-pb__results li:focus { background: var(--sh-bg); outline: none; }
.mfm-sh-pb__empty { cursor: default !important; color: var(--sh-muted); }
.mfm-sh-pb__selected:not(:empty) { padding: .55em .8em; background: var(--sh-cool); border-radius: var(--sh-radius); margin: .3em 0; }
.mfm-sh-pb--big .mfm-sh-pb__q { font-size: 1.15em; padding: .8em; }
.mfm-sh-ampel-result { margin-top: 1em; padding: 1em 1.2em; border-radius: var(--sh-radius); border: 1px solid var(--sh-border); border-left: 3px solid; font-size: 1.05em; }
.mfm-sh-ampel-result .mfm-sh-light { width: 1.2em; height: 1.2em; vertical-align: middle; }
.mfm-sh-ampel-result--gruen { border-left-color: var(--sh-ok); background: var(--sh-ok-bg); }
.mfm-sh-ampel-result--gelb { border-left-color: var(--sh-warm); background: var(--sh-warn-bg); }
.mfm-sh-ampel-result--rot { border-left-color: var(--sh-bad); background: var(--sh-bad-bg); }
.mfm-sh-view { margin: .5em 0; }
.mfm-sh-view > span { font-weight: 600; margin-right: .5em; }

.mfm-sh-person-list { max-height: 260px; overflow-y: auto; border: 1px solid var(--sh-border); border-radius: var(--sh-radius); padding: .3em .7em; margin-top: .5em; }
.mfm-sh-filter { margin-top: .5em !important; }

.mfm-sh-file-buttons { display: flex; flex-wrap: wrap; gap: .5em; margin: .5em 0; }
.mfm-sh-file-buttons label { margin: 0; }
.mfm-sh-filelist { margin: .5em 0; padding-left: 1.2em; }
.mfm-sh-progress { position: relative; height: 26px; background: var(--sh-bg); border-radius: var(--sh-radius); overflow: hidden; margin: 1em 0; border: 1px solid var(--sh-border); }
.mfm-sh-progress > div { height: 100%; width: 0; background: var(--sh-ok); transition: width .3s; }
.mfm-sh-progress > span { position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; font-size: .82em; font-weight: 600; }

.mfm-sh-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .9em; margin: .8em 0; }
.mfm-sh-media-grid--small { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.mfm-sh-media-grid figure { margin: 0; }
.mfm-sh-media { width: 100%; max-height: 70vh; object-fit: contain; background: var(--mx-stage, #0b1220); border-radius: var(--sh-radius); display: block; }
.mfm-sh-media-grid--small .mfm-sh-media { height: 120px; object-fit: cover; }
.mfm-sh-media--file { display: flex; align-items: center; justify-content: center; min-height: 120px; color: #fff !important; }
.mfm-sh-media-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1em; }
.mfm-sh-media-card .mfm-sh-media { height: 220px; object-fit: cover; margin-bottom: .7em; }
.mfm-sh-media-card p { margin: .3em 0; }
.mfm-sh-media-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6em; max-height: 480px; overflow-y: auto; }
.mfm-sh-media-pick__item { position: relative; margin: 0 !important; font-weight: 400 !important; border: 1px solid var(--sh-border); border-radius: var(--sh-radius); padding: .3em; cursor: pointer; transition: border-color .3s; }
.mfm-sh-media-pick__item:hover { border-color: var(--sh-ink); }
.mfm-sh-media-pick__item:has(input:checked) { border-color: var(--sh-ink); background: var(--sh-bg); box-shadow: inset 0 0 0 1px var(--sh-ink); }
.mfm-sh-media-pick__item.is-blocked { border-color: var(--sh-bad); opacity: .7; }
.mfm-sh-media-pick__item input { position: absolute; top: .5em; left: .5em; z-index: 1; width: 1.2em; height: 1.2em; min-height: 0; accent-color: var(--sh-ink); }
.mfm-sh-media-pick__item .mfm-sh-media { height: 110px; object-fit: cover; }
.mfm-sh-caption { white-space: normal; background: var(--sh-bg); border-radius: var(--sh-radius); padding: .9em 1.1em; }
.mfm-sh-check-panel { border-left: 3px solid; }
.mfm-sh-check-panel--gruen { border-left-color: var(--sh-ok); }
.mfm-sh-check-panel--gelb { border-left-color: var(--sh-warm); }
.mfm-sh-check-panel--rot { border-left-color: var(--sh-bad); }
.mfm-sh-check-panel p { margin: .3em 0; }
.mfm-sh-counter { margin: -.3em 0 .5em; font-size: .85em; color: var(--sh-muted); text-align: right; }

.mfm-sh-legal { font-size: .9em; max-height: 360px; overflow-y: auto; }
.mfm-sh-legal p { margin: .5em 0; }
.mfm-sh-textversion { color: var(--sh-muted); font-size: .85em; }
.mfm-sh-sig { position: relative; }
.mfm-sh-sig canvas { width: 100%; height: 180px; border: 1px dashed #8a93a0; border-radius: var(--sh-radius); touch-action: none; background: #fff; display: block; }
.mfm-sh-sig button { position: absolute; top: .4em; right: .4em; min-height: 32px; padding: .2em .7em; }
.mfm-sh-signature { max-width: 320px; border: 1px solid var(--sh-border); border-radius: var(--sh-radius); background: #fff; }

/* Öffentliche Seiten (Einwilligung/Freigabe): Grundrückfall – die Seitenhülle (public.css) überschreibt alles Sichtbare */
body.mfm-sh-public { margin: 0; background: var(--mx-bg-alt, #f4f4f1); font-family: 'Inter Variable', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; color: #0f1b2d; }
.mfm-sh-public__head { background: #0b1220; color: #fff; padding: .9em 16px; }
.mfm-sh-public__brand { max-width: 760px; margin: 0 auto; font-weight: 600; letter-spacing: .02em; }
.mfm-sh-public__main { max-width: 760px; margin: 0 auto; padding: 1.2em 16px 2em; }
.mfm-sh-public__foot { text-align: center; font-size: .82em; color: #55606f; padding: 1.5em 16px 2.5em; }
.mfm-sh-public__foot a { color: #55606f; }

/* ---- Kunden-Freigabe 2.1.0: geschützte Vorschau, Markier-Leiste am Zeitstrahl, Entscheidung -------------------------
   iOS 14.0 kennt weder `inset` noch `border-inline` noch Flex-`gap` – daher hier top/right/bottom/left,
   border-left/right und Grid für Knopfreihen. */
body.mfm-sh-public .mfm-sh input, body.mfm-sh-public .mfm-sh textarea, body.mfm-sh-public .mfm-sh select { font-size: 16px; } /* iOS zoomt sonst */
body.mfm-sh-public button { touch-action: manipulation; }
.mfm-sh-rv-list { display: grid; gap: 1.2em; margin: .8em 0; }
.mfm-sh-rv { min-width: 0; }
.mfm-sh-rv h3 { margin: 0 0 .4em; }
.mfm-sh-rv h3 small { font-weight: 400; }
.mfm-sh-rv [hidden], .mfm-sh-rv-summary[hidden], [data-mfm-sh-approve-hint][hidden], .mfm-sh-bar[hidden] { display: none !important; }
.mfm-sh-protect { position: relative; }
body.mfm-sh-public .mfm-sh-protect, body.mfm-sh-public .mfm-sh-protect * { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
.mfm-sh-protect--img img { pointer-events: none; }
.mfm-sh-shield { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
/* Kennzeichen oben links – verdeckt die nativen Bedienelemente (unten) nicht und fängt keine Tipps ab */
.mfm-sh-wm { position: absolute; top: 8px; left: 8px; max-width: calc(100% - 16px); pointer-events: none; font-size: 12px; line-height: 1.35; color: rgba(255,255,255,.92); background: rgba(11,18,32,.78); padding: 2px 6px; border-radius: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mfm-sh-rv .mfm-sh-check { display: grid !important; grid-template-columns: auto minmax(0, 1fr); gap: .6em; min-height: 44px; align-items: center; margin: .3em 0 !important; } /* Grid: Flex-gap fehlt in iOS 14.0 */
.mfm-sh-rv .mfm-sh-check input { margin-top: 0; width: 1.3em; height: 1.3em; }
.mfm-sh-nojs { margin: .5em 0; }
.mfm-sh-nojs > summary { cursor: pointer; font-weight: 500; padding: .6em 0; min-height: 44px; }
.mfm-sh-rv-marks { margin: .4em 0; padding-left: 1.2em; }

/* Zeitstrahl (Kundenseite: role=slider; Intranet: --ro) */
.mfm-sh-marker { margin: .6em 0 .3em; }
.mfm-sh-tl { position: relative; height: 44px; background: #e6e8ec; border-radius: var(--sh-radius); touch-action: pan-y; cursor: pointer; margin: .5em 0; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent; }
.mfm-sh-tl__segs { position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; }
.mfm-sh-tl__seg { position: absolute; top: 0; bottom: 0; background: repeating-linear-gradient(45deg, rgba(163,38,31,.72) 0 6px, rgba(163,38,31,.5) 6px 12px); border-left: 2px solid #7d1d17; border-right: 2px solid #7d1d17; }
.mfm-sh-tl__seg--pending { background: none; border: 2px dashed var(--sh-bad); pointer-events: none; }
.mfm-sh-tl__seg--alt { background: #8a93a0; border-color: #55606f; }
.mfm-sh-tl__seg--erledigt { background: none; border: 2px dashed var(--sh-ok); }
.mfm-sh-tl__head { position: absolute; top: -4px; bottom: -4px; width: 3px; margin-left: -1.5px; background: var(--sh-ink); border-radius: 1px; box-shadow: 0 0 0 1px #fff; pointer-events: none; }
.mfm-sh-tl--ro { height: 26px; cursor: default; touch-action: auto; margin: .4em 0 .6em; }
.mfm-sh-tl--ro .mfm-sh-tl__seg { cursor: pointer; }
.mfm-sh-tl:focus { outline: 2px solid var(--sh-blue); outline-offset: 2px; }
.mfm-sh-tl:focus:not(:focus-visible) { outline: none; }
.mfm-sh-tl-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .4em; align-items: center; margin: 0 0 .5em; }
.mfm-sh-tl-time { font-weight: 500; font-variant-numeric: tabular-nums; }
.mfm-sh-tl-row .mfm-sh-btn, .mfm-sh-mk__btns .mfm-sh-btn, .mfm-sh-mk__step .mfm-sh-btn { justify-content: center; min-width: 44px; padding: .45em .6em; }

/* Umschalt-Knopf „Hier beginnt …“ / „Hier endet …“ */
.mfm-sh-mark-row { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-flow: column; grid-auto-columns: auto; gap: .4em; align-items: center; }
.mfm-sh-mark-btn { width: 100%; min-height: 52px; justify-content: center; text-align: center; }
.mfm-sh-mark-btn.is-active { background: var(--sh-bad); border-color: var(--sh-bad); }
.mfm-sh-mark-btn.is-active:hover { background: #7d1d17; border-color: #7d1d17; }
.mfm-sh-marker .mfm-sh-link { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0 .5em; font-size: .95em; }
.mfm-sh-marker.is-off { opacity: .45; pointer-events: none; }
.mfm-sh-marker__msg { margin: .5em 0; padding: .5em .8em; border-radius: var(--sh-radius); background: var(--sh-cool); color: var(--sh-text); font-size: .92em; }
.mfm-sh-marker__limit { margin: .5em 0; color: var(--sh-warn); font-size: .92em; }
.mfm-sh-marker__big { margin: .5em 0; padding: .7em .9em; border-radius: var(--sh-radius); background: var(--sh-warn-bg); border: 1px solid #ecd9a0; color: #4d3500; }
.mfm-sh-marker__big .mfm-sh-btn { margin-top: .4em; }
.mfm-sh-marker__h { font-weight: 600; margin: .8em 0 .3em; }

/* Liste der markierten Stellen */
.mfm-sh-marks-list { list-style: none; margin: 0; padding: 0; }
.mfm-sh-mk { margin: 0 0 .5em; padding: .6em .75em; background: #fff; border: 1px solid var(--sh-border); border-left: 3px solid var(--sh-bad); border-radius: var(--sh-radius); transition: background-color .6s; }
.mfm-sh-mk.is-new { background: var(--sh-bad-bg); transition: none; }
.mfm-sh-mk.is-open { border-color: #e2b4b0; border-left-color: var(--sh-bad); }
.mfm-sh-mk__row { margin: 0 0 .4em; font-variant-numeric: tabular-nums; }
.mfm-sh-mk__no { display: inline-block; min-width: 1.7em; height: 1.7em; line-height: 1.7em; margin-right: .35em; text-align: center; border-radius: var(--sh-radius); background: var(--sh-bad); color: #fff; font-weight: 600; font-size: .85em; }
.mfm-sh-mk__range { font-weight: 600; }
.mfm-sh-mk__len, .mfm-sh-mk__why { color: var(--sh-muted); }
.mfm-sh-mk__btns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4em; }
.mfm-sh-mk__edit { margin-top: .6em; padding-top: .5em; border-top: 1px dashed var(--sh-border); }
.mfm-sh-mk__edit > p { margin: .3em 0; }
.mfm-sh-mk__t > label { margin: .5em 0 .2em; }
.mfm-sh-mk__step { display: grid; grid-template-columns: auto minmax(0, 7.5em) auto; gap: .4em; align-items: center; justify-content: start; }
.mfm-sh .mfm-sh-mk__step input[type=text] { margin: 0; min-height: 44px; text-align: center; font-variant-numeric: tabular-nums; }
.mfm-sh .mfm-sh-mk__step input[aria-invalid=true] { border-color: var(--sh-bad); box-shadow: 0 0 0 1px var(--sh-bad); }
.mfm-sh-mk__err { margin: .4em 0; color: var(--sh-bad); font-size: .92em; }
.mfm-sh-mk__done { margin-top: .6em; }
.mfm-sh-undo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5em; align-items: center; margin: .5em 0; padding: .3em .3em .3em .9em; border-radius: var(--sh-radius); background: var(--mx-stage, #0b1220); color: #fff; }
.mfm-sh-undo .mfm-sh-btn { background: transparent; border-color: rgba(255,255,255,.5); }
.mfm-sh-undo .mfm-sh-btn:hover { background: rgba(255,255,255,.12); border-color: #fff; }

/* Entscheidung – Grid statt Flex-gap (iOS 14.0), damit „Freigeben“ und „Nicht freigeben“ nie aneinanderstoßen */
.mfm-sh-actions--stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6em; align-items: stretch; }
.mfm-sh-actions--stack > .mfm-sh-btn { width: 100%; justify-content: center; }
.mfm-sh-actions--stack > p { margin: 0; }
.mfm-sh-rv-summary { background: var(--sh-bad-bg); border: 1px solid #ebc3bf; border-left: 3px solid var(--sh-bad); border-radius: var(--sh-radius); padding: .7em .9em; }
.mfm-sh-rv-summary.is-empty { background: var(--sh-bg); border-color: var(--sh-border); border-left-color: var(--sh-border); color: var(--sh-muted); }
.mfm-sh-rv-alert .mfm-sh-btn { margin: .3em .2em; vertical-align: middle; }
.mfm-sh-confirm > p { margin: 0 0 .4em; font-weight: 600; }
.mfm-sh-confirm .mfm-sh-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(9em, 1fr)); gap: .5em; margin: .4em 0 0; }
.mfm-sh-confirm .mfm-sh-actions .mfm-sh-btn { justify-content: center; }
form.is-sending button[name=decision] { cursor: progress; opacity: .8; }
/* Hinweis „2 Stellen markiert – weiter zur Entscheidung ↓“ (2.5): steht inline nach den Medien, schwebt nicht über dem Inhalt */
.mfm-sh-bar { display: block; width: 100%; min-height: 48px; margin: .6em 0 1em; padding: .7em 1em; border: 0; border-radius: var(--sh-radius); background: var(--sh-ink); color: #fff; font: inherit; font-weight: 500; text-align: center; cursor: pointer; }
.mfm-sh-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Fokusring 2 px (Spec). Die Rücknahme mit :not(:focus-visible) steht in einer EIGENEN Regel:
   Safari < 15.4 kennt :focus-visible nicht und verwirft nur diese, zeigt den Ring dann bei jedem Fokus. */
.mfm-sh-btn:focus, .mfm-sh-link:focus, .mfm-sh-rv .mfm-sh-check input:focus, .mfm-sh-nojs > summary:focus { outline: 2px solid var(--sh-blue); outline-offset: 2px; }
.mfm-sh-undo .mfm-sh-btn:focus, .mfm-sh-bar:focus { outline: 2px solid #fff; outline-offset: -6px; }
.mfm-sh-btn:focus:not(:focus-visible), .mfm-sh-link:focus:not(:focus-visible), .mfm-sh-rv .mfm-sh-check input:focus:not(:focus-visible), .mfm-sh-nojs > summary:focus:not(:focus-visible), .mfm-sh-undo .mfm-sh-btn:focus:not(:focus-visible), .mfm-sh-bar:focus:not(:focus-visible) { outline: none; }
#markierungen { scroll-margin-top: 72px; }

/* Redaktionsplan: Monatskalender */
.mfm-sh-cal-title { font-size: 1.1em; font-weight: 500; min-width: 9em; text-align: center; }
.mfm-sh-cal__head, .mfm-sh-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.mfm-sh-cal__head div { font-weight: 600; color: var(--sh-muted); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; padding: 0 4px; }
.mfm-sh-cal__day { min-height: 110px; background: #fff; border: 1px solid var(--sh-border); border-radius: var(--sh-radius); padding: 5px; display: flex; flex-direction: column; gap: 3px; }
.mfm-sh-cal__day.is-other { background: var(--sh-bg); }
.mfm-sh-cal__day.is-today { border-color: var(--sh-ink); box-shadow: inset 0 0 0 1px var(--sh-ink); }
.mfm-sh-cal__day.is-drop { background: var(--sh-cool); border-style: dashed; border-color: var(--sh-ink); }
.mfm-sh-cal__date { font-size: .78em; color: var(--sh-muted); font-weight: 500; font-variant-numeric: tabular-nums; }
.mfm-sh-cal__item { display: block; font-size: .78em; line-height: 1.3; padding: 3px 6px; border-radius: 2px; text-decoration: none; color: var(--sh-ink) !important; background: var(--sh-bg); border-left: 2px solid var(--sh-ink); overflow: hidden; }
.mfm-sh-cal__item[draggable="true"] { cursor: grab; }
.mfm-sh-cal__item span { font-weight: 600; }
.mfm-sh-cal__item.is-saving { opacity: .5; }
.mfm-sh-cal__bank { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 760px) {
  .mfm-sh-cal__head { display: none; }
  .mfm-sh-cal__grid { grid-template-columns: 1fr; }
  .mfm-sh-cal__day { min-height: 0; }
  .mfm-sh-cal__day.is-empty { display: none; }
}

.mfm-sh-apilog summary { cursor: pointer; color: var(--sh-muted); }
.mfm-sh-apilog__resp { display: block; white-space: pre-wrap; word-break: break-all; font-size: .9em; background: var(--sh-bg); padding: 4px 6px; border-radius: 2px; max-height: 8em; overflow: auto; }

/* Vorschau je Kanal */
.mfm-sh-preview__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: .8em; }
.mfm-sh-preview__card { border: 1px solid var(--sh-border); border-radius: var(--sh-radius); overflow: hidden; background: #fff; }
.mfm-sh-preview__head { font-weight: 600; padding: 7px 10px; background: var(--sh-bg); font-size: .9em; border-bottom: 1px solid var(--sh-border); }
.mfm-sh-preview__media { width: 100%; background: var(--mx-stage, #0b1220); overflow: hidden; }
.mfm-sh-preview__img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; max-height: none; }
.mfm-sh-preview__text { padding: 8px 10px; font-size: .88em; white-space: normal; }
.mfm-sh-preview__more { color: var(--sh-muted); }
.mfm-sh-preview__meta { padding: 0 10px 8px; font-size: .78em; color: var(--sh-muted); }
.mfm-sh-preview__meta.is-over { color: var(--sh-bad); font-weight: 600; }

/* Kunden-CTA des Themes (anonyme Closure, feste Slug-Liste) im Portal ausblenden */
body.portal-page-social-media #mfm-sticky-cta, body.portal-page-social-media .mfm-reviews { display: none !important; }

@media (max-width: 600px) {
  /* Hauptleiste als festes Raster: Symbol über Kurzlabel, keine Querscroll-Leiste (Konzept C.6) */
  .mfm-sh-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 2px; overflow: visible; }
  .mfm-sh-tabs a { flex-direction: column; justify-content: center; gap: 2px; min-width: 0; min-height: 52px; padding: .35em .1em; font-size: 11.5px; line-height: 1.15; text-align: center; border-radius: 0; }
  .mfm-sh-tabs--main .mfm-sh-tabs__label { display: none; }
  .mfm-sh-tabs--main .mfm-sh-tabs__short { display: block; }
  .mfm-sh-tabs__label, .mfm-sh-tabs__short { max-width: 100%; overflow-wrap: anywhere; }
  .mfm-sh-tabs .mfm-sh-badge-n { font-size: 11px; }
  /* Unterleiste als Chips mit sichtbarem Auslauf am Rand; der aktive Chip wird per JS ins Bild geholt */
  .mfm-sh-subtabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; scroll-snap-type: x proximity; padding-bottom: 2px; }
  /* Auslauf nur, solange rechts noch etwas kommt (JS setzt die Klasse) – am Ende ist der letzte Chip voll sichtbar (Korrektur N6) */
  .mfm-sh-subtabs.is-scrollable-right { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .mfm-sh-subtabs::-webkit-scrollbar { display: none; }
  .mfm-sh-subtabs a { flex: 0 0 auto; min-height: 44px; white-space: nowrap; scroll-snap-align: start; }
  .mfm-sh-subtabs a.mfm-sh-subtabs__action { margin-left: 0; }
  .mfm-sh-views a { min-height: 44px; }
  .mfm-sh-card { padding: .95em; }
  .mfm-sh-table { font-size: .85em; }
  .mfm-sh-table small { font-size: max(11.5px, .83em); }
  .mfm-sh-actions .mfm-sh-btn { flex: 1 1 auto; justify-content: center; }
}

/* Kunden-Freigabe: Bewegung reduzieren, Vorschau nicht drucken */
@media (prefers-reduced-motion: reduce) { .mfm-sh * { scroll-behavior: auto !important; transition: none !important; } }
@media print {
  body.mfm-sh-public .mfm-sh-protect { display: none !important; }
  .mfm-sh-bar, .mfm-sh-tl-row, .mfm-sh-mark-row, .mfm-sh-mk__btns { display: none !important; }
}

/* Hinweise der Benachrichtigungs-Zentrale (Übersicht) */
.mfm-sh-inbox__list { list-style: none; margin: 0 0 .6em; padding: 0; }
.mfm-sh-inbox__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .1em .8em; align-items: center; padding: .6em 0; border-bottom: 1px solid var(--sh-border); }
.mfm-sh-inbox__item > .mfm-sh-muted, .mfm-sh-inbox__line { grid-column: 1; min-width: 0; overflow-wrap: anywhere; }
.mfm-sh-inbox__item > form { grid-column: 2; grid-row: 1 / span 2; }
.mfm-sh-inbox__item--sofort .mfm-sh-inbox__line { font-weight: 600; }

/* 2.5 – Seiten Veröffentlicht, Freigaben, Meine Einwilligung, Empfängerliste */
.mfm-sh-published, .mfm-sh-own-list, .mfm-sh-recipients { list-style: none; margin: .4em 0; padding: 0; }
.mfm-sh-published__item { display: flex; flex-wrap: wrap; gap: .4em 1em; justify-content: space-between; padding: .7em 0; border-bottom: 1px solid var(--sh-border); }
.mfm-sh-published__item > div { min-width: 0; overflow-wrap: anywhere; }
.mfm-sh-published__links a { display: inline-flex; align-items: center; min-height: 44px; margin-right: .6em; }
.mfm-sh-published__extra { display: flex; flex-direction: column; gap: .2em; align-items: flex-start; font-size: .88em; }
.mfm-sh-own-list li { display: flex; flex-wrap: wrap; gap: .5em 1em; align-items: center; padding: .65em 0; border-bottom: 1px solid var(--sh-border); overflow-wrap: anywhere; }
.mfm-sh-own-list li > span { flex: 1 1 220px; min-width: 0; }
.mfm-sh-own-list li > a, .mfm-sh-linkline a { display: inline-flex; align-items: center; min-height: 44px; }
.mfm-sh-recipients li { padding: .2em 0; }
.mfm-sh-own-media { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.mfm-sh-own-item { border: 1px solid var(--sh-border); border-radius: var(--sh-radius); padding: .6em; background: #fff; min-width: 0; overflow-wrap: anywhere; }
.mfm-sh-own-item .mfm-sh-media { width: 100%; height: auto; max-height: 260px; object-fit: contain; border-radius: var(--sh-radius); }
.mfm-sh-start-approvals { border-left: 3px solid var(--sh-ok); }
.mfm-sh-start-overview > summary { cursor: pointer; }
.mfm-sh-rc-rowchip { font-size: .88em; }
/* 2.5 (Abschlussprüfung): aufklappbare Abschnitte ohne eigene Klasse als Ziel ≥ 44 px (Handy, Daumen) – Marker bleibt */
.mfm-sh summary:not([class]) { min-height: 44px; padding: .6em 0; cursor: pointer; }
