/* GoSite – Ergänzungen zu app.css/theme.css/project.css (Basis: Steerboard-Referenzen) */

/* Menüpunkte, die in späteren Phasen kommen */
.lp-sidebar-link--soon { opacity: .55; cursor: default; }
.lp-sidebar-link--soon small { margin-left: auto; font-size: .65rem; opacity: .8; }

/* Laufende Aktionen (Passkey-Abfrage) */
.btn.is-busy { position: relative; pointer-events: none; opacity: .75; }

/* Passkey umbenennen: aufklappbar ohne JavaScript */
.gs-rename { position: relative; }
.gs-rename > summary { list-style: none; }
.gs-rename > summary::-webkit-details-marker { display: none; }
.gs-rename-form {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 20;
    display: flex; gap: 6px; padding: 8px; min-width: 280px;
    background: var(--bg); border: 1px solid var(--border); border-radius: 10px;
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
}

/* Formular-Abschnitte und Modals (wie Kundenformular in steerboard.de) */
.gs-modal .modal-content { border: 0; border-radius: 14px; overflow: hidden; }
.gs-modal .modal-header { border-bottom: 2px solid var(--primary); }
.gs-modal .modal-body { background: var(--surface); max-height: 68vh; overflow-y: auto; }
.cust-section { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; margin-bottom: 14px; }
.cust-section-title { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--primary); font-size: .95rem; margin-bottom: 12px; }
.cust-section-title i { opacity: .75; }

/* Datatable: Kopf fixiert in Primärfarbe */
.gs-datatable .datatable-inner { max-height: 60vh; overflow-y: auto; }
.gs-datatable thead th { position: sticky; top: 0; z-index: 5; background: var(--primary) !important; color: var(--bg) !important; font-weight: 600; }
.gs-datatable thead th i { color: var(--bg) !important; }

/* Domain-Status */
.gs-dstatus .badge { font-size: .68rem; }
.gs-steps { display: flex; gap: 0; }
.gs-step { flex: 1; text-align: center; position: relative; font-size: .82rem; }
.gs-step b { display: block; margin-top: 6px; }
.gs-step span { color: var(--muted); }
.gs-step::before { content: ''; position: absolute; top: 22px; left: -50%; width: 100%; height: 3px; background: var(--border); z-index: 0; }
.gs-step:first-child::before { display: none; }
.gs-step.is-ok::before { background: #16a34a; }
.gs-step-dot { position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 50%; margin: 0 auto; display: flex; align-items: center; justify-content: center; background: #b8c3cf; color: #fff; }
.gs-step.is-ok .gs-step-dot { background: #16a34a; }

/* Design-Seite */
.gs-color { width: 44px; min-width: 44px; height: 34px; padding: 2px; }
.gs-brand-preview { min-height: 64px; display: flex; align-items: center; justify-content: center; background: var(--surface); border: 1px dashed var(--border); border-radius: 8px; padding: 8px; }
.gs-brand-preview img { max-height: 90px; max-width: 100%; }

/* Branding-Felder (wie naheblick Design-Seite) */
.gs-slot-preview { min-height: 96px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.gs-slot-preview--header { background: var(--bg); border: 1px solid var(--border); }
.gs-slot-logo { max-height: 54px; max-width: 100%; }
.gs-slot-photo { max-height: 90px; max-width: 100%; object-fit: contain; }
.gs-fav-box { min-width: 64px; min-height: 64px; }
.gs-fav-dim { font-size: .74rem; }
.gs-fav-file { font-family: monospace; font-size: .62rem; word-break: break-all; }

/* Logo-Größen wie naheblick theme.css (42 px Kopfzeile, Login 380/240 px); Höhe der Kopfzeile per Design-Einstellung.
   object-fit hält breite Logos (auch SVG ohne feste Größe) im Rahmen, ohne sie zu verzerren. */
.brand-header-logo { height: var(--gs-header-logo-h, 42px); width: auto; max-width: min(280px, 55vw); object-fit: contain; object-position: left center; display: block; }
.brand-login-logo { width: 100%; max-width: 380px; height: auto; max-height: 260px; object-fit: contain; }
.brand-login-logo-mobile { width: 100%; max-width: 240px; height: auto; max-height: 120px; object-fit: contain; }

/* Seitenliste (Menübaum, Basis: naheblick Webseiten) */
.wp-list { margin: 0; }
.wp-list .wp-list { padding-left: 28px; border-left: 2px solid var(--border); margin-left: 10px; }
.wp-item.dragging > .wp-row { opacity: .5; background: var(--surface); }
.wp-row:hover { background: rgba(0,0,0,.02); }
.wp-handle { cursor: grab; width: 14px; }
.wp-pin { width: 14px; }
.wp-actions form { margin: 0; }

/* Such-Vorschau (SEO) */
.gs-serp { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; background: #fff; font-family: Arial, Helvetica, sans-serif; }
.gs-serp-url { font-size: .78rem; color: #202124; }
.gs-serp-title { font-size: 1.1rem; color: #1a0dab; line-height: 1.3; margin: 2px 0; }
.gs-serp-desc { font-size: .85rem; color: #4d5156; line-height: 1.45; }

/* ─── Mediathek (Phase 3.2, Basis: naheblick) ─── */
.gs-media-layout { display: flex; min-height: 62vh; }
.gs-media-aside { width: 240px; min-width: 240px; border-right: 1px solid var(--border); background: var(--bg); }
.gs-media-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; position: relative; }
.gs-media-body { flex: 1 1 auto; padding: 1rem; background: var(--surface); }
.gs-media-label { font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; font-size: .7rem; }
.gs-media-mini { font-size: .75rem; padding: 2px 8px; }
.gs-media-search { width: 200px; }
.gs-media-scope { min-width: 260px; max-width: 420px; }
.gs-media-quota { width: 120px; height: 6px; display: inline-flex; }
.gs-media-filter { color: var(--muted); text-decoration: none; padding: 1px 8px; border-radius: 999px; }
.gs-media-filter.is-active { background: var(--primary); color: var(--bg); }
.gs-media-dropmsg { display: none; position: absolute; inset: 0; z-index: 20; align-items: center; justify-content: center; flex-direction: column;
    background: color-mix(in srgb, var(--primary) 12%, transparent); border: 3px dashed var(--primary); border-radius: 8px; color: var(--primary); font-weight: 600; pointer-events: none; }
.gs-media-main.is-dragover .gs-media-dropmsg { display: flex; }
.gs-media-previewimg { max-width: 100%; max-height: 76vh; object-fit: contain; border-radius: 4px; }
.gs-media-textimg { width: 140px; max-height: 140px; object-fit: contain; border-radius: 6px; background: var(--surface); }
.gs-media-listthumb { width: 56px; height: 40px; object-fit: cover; border-radius: 4px; background: var(--surface); }
.gs-media-table .gs-media-rowactions .btn { padding: 2px 7px; }
.gs-media-table tr.dragging { opacity: .4; }
.gs-media-frame { width: 100%; height: 72vh; border: 0; display: block; }
.gs-media-picker .gs-media-layout { min-height: 0; }
.gs-media-picker .gs-media-body { max-height: calc(100vh - 190px); overflow-y: auto; }
.lp-folder-tree { list-style: none; padding: 0; margin: 0; }
.lp-folder-row { display: flex; align-items: center; gap: 4px; padding: 2px 4px 2px 0; border-radius: 6px; }
.lp-folder-row:hover { background: var(--surface); }
.lp-folder-row--active { background: var(--surface); }
.lp-folder-row--active .lp-folder-link { color: var(--primary); font-weight: 600; }
.lp-folder-row--drop { background: var(--surface); outline: 2px dashed var(--primary); }
.lp-folder-link { display: flex; align-items: center; gap: 6px; text-decoration: none; color: var(--ink); font-size: .84rem; padding: 4px 6px; border-radius: 5px; overflow: hidden; }
.lp-folder-special { padding: 5px 8px; }
.brand-folder-ic { color: var(--primary); }
.brand-file-ic { color: var(--muted); }
.lp-folder-toggle { flex-shrink: 0; width: 20px; height: 20px; border: 0; background: none; padding: 0; display: flex; align-items: center; justify-content: center; color: var(--muted); cursor: pointer; transition: transform .15s; }
.lp-folder-toggle.open { transform: rotate(90deg); }
.lp-folder-toggle-space { width: 20px; flex-shrink: 0; }
.lp-folder-count { font-size: .7rem; color: var(--muted); background: var(--border); border-radius: 10px; padding: 0 6px; flex-shrink: 0; }
.lp-folder-actions { display: none; gap: 2px; margin-left: auto; flex-shrink: 0; }
.lp-folder-row:hover .lp-folder-actions { display: flex; }
.lp-folder-btn { border: 0; background: none; padding: 3px 5px; color: var(--muted); border-radius: 4px; cursor: pointer; line-height: 1; }
.lp-folder-btn:hover { background: var(--border); }
.lp-folder-btn--danger:hover { color: #b91c1c; }
.lp-folder-children { padding-left: 16px; list-style: none; margin: 0; }
.lp-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.lp-media-card { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; position: relative; transition: box-shadow .15s, transform .1s; }
.lp-media-card:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, .12); transform: translateY(-1px); }
.lp-media-card.dragging { opacity: .4; }
.lp-media-thumb { position: relative; height: 112px; overflow: hidden; background: var(--surface); display: flex; align-items: center; justify-content: center;
    background-image: linear-gradient(45deg, #eef1f4 25%, transparent 25%, transparent 75%, #eef1f4 75%), linear-gradient(45deg, #eef1f4 25%, transparent 25%, transparent 75%, #eef1f4 75%);
    background-size: 14px 14px; background-position: 0 0, 7px 7px; }
.lp-media-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lp-media-overlay { position: absolute; inset: 0; background: rgba(15, 23, 42, .5); display: none; align-items: center; align-content: center; justify-content: center; flex-wrap: wrap; gap: 4px; padding: 6px; }
.lp-media-card:hover .lp-media-overlay, .lp-media-card:focus-within .lp-media-overlay { display: flex; }
.lp-media-name { padding: 6px 8px 2px; font-size: .78rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lp-media-meta { padding: 0 8px 6px; font-size: .72rem; color: var(--muted); }
.lp-media-tag { display: inline-block; font-size: .62rem; font-weight: 700; line-height: 1; padding: 2px 5px; border-radius: 4px; margin-left: 3px; background: var(--border); color: var(--muted); vertical-align: 1px; }
.lp-media-tag--ok { background: #dcfce7; color: #166534; }
.lp-media-tag--miss { background: #fef3c7; color: #92400e; }
.gs-media-picker .lp-media-card { cursor: not-allowed; opacity: .55; }
.gs-media-picker .lp-media-card.is-pickable { cursor: pointer; opacity: 1; }
.gs-media-picker .lp-media-card.is-pickable:hover, .gs-media-picker .lp-media-card.is-pickable:focus { outline: 2px solid var(--primary); outline-offset: -2px; }
.lp-media-card.is-current { outline: 3px solid var(--primary); outline-offset: -2px; }
.lp-media-card.is-current::after { content: 'aktuell'; position: absolute; top: 6px; left: 6px; background: var(--primary); color: #fff; font-size: .66rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
@media (max-width: 767.98px) {
    .gs-media-layout { flex-direction: column; }
    .gs-media-aside { width: auto; min-width: 0; border-right: 0; border-bottom: 1px solid var(--border); }
}
#gs-media-modal { z-index: 3400; } /* über den Editor-Dialogen (wie naheblick bw-media-modal) */

/* ─── Formulare & Anfragen (Phase 3.5) ─────────────────────────────────── */
.gs-fb-list { display: flex; flex-direction: column; gap: .5rem; }
.gs-fb-item { border: 1px solid var(--border); border-radius: 8px; background: var(--bg); padding: .6rem .75rem; }
.gs-fb-item:focus-within { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(var(--mdb-primary-rgb), .12); }
.gs-fb-head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.gs-fb-head .gs-fb-type { width: auto; max-width: 230px; }
.gs-fb-grip { color: var(--muted); }
.gs-fb-title { font-weight: 600; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40%; }
.gs-fb-body { margin-top: .4rem; }
.gs-fb-body [hidden] { display: none !important; }
.gs-fb-savebar { position: sticky; bottom: 0; z-index: 5; margin-top: 1rem; padding: .75rem 1rem; background: var(--bg); border-top: 1px solid var(--border); box-shadow: 0 -4px 12px rgba(0,0,0,.05); }
.gs-inq-values { display: grid; grid-template-columns: minmax(140px, 30%) 1fr; gap: .4rem 1rem; }
.gs-inq-values dt { font-weight: 600; color: var(--muted); font-size: .9rem; }
.gs-inq-values dd { margin: 0; word-break: break-word; }
@media (max-width: 575.98px) { .gs-inq-values { grid-template-columns: 1fr; } .gs-inq-values dd { margin-bottom: .5rem; } }

/* ─── SEO, Rechtstexte, Barrierefreiheit (Phase 3.7) ───────────────────── */
.gs-legal-preview { max-height: 360px; overflow: auto; border: 1px solid var(--border); border-radius: 8px; padding: .75rem 1rem; background: var(--surface); font-size: .85rem; }
.gs-legal-preview h1 { font-size: 1.2rem; } .gs-legal-preview h2 { font-size: 1.05rem; } .gs-legal-preview h3, .gs-legal-preview h4 { font-size: .95rem; }
.gs-a11y-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 3300; width: min(440px, 100vw); background: var(--bg); color: var(--ink);
    border-left: 1px solid var(--border); box-shadow: -8px 0 28px rgba(16,32,45,.18); display: flex; flex-direction: column; }
.gs-a11y-panel[hidden] { display: none; }
.gs-a11y-panel:focus { outline: none; }
.gs-a11y-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); background: var(--surface); }
.gs-a11y-title { font-size: 1.05rem; font-weight: 700; margin: 0; color: var(--primary); }
.gs-a11y-body { padding: 14px 18px 24px; overflow: auto; flex: 1 1 auto; }
.gs-a11y-sum { display: flex; gap: 16px; flex-wrap: wrap; font-weight: 600; font-size: .9rem; margin-bottom: 12px; }
.gs-a11y-list { list-style: none; padding: 0; margin: 0 0 12px; }
.gs-a11y-item { border: 1px solid var(--border); border-left-width: 4px; border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; font-size: .86rem; }
.gs-a11y-item--error { border-left-color: #dc2626; } .gs-a11y-item--warn { border-left-color: #d97706; } .gs-a11y-item--info { border-left-color: #0284c7; }
.gs-a11y-msg { font-weight: 600; }
.gs-a11y-snip { display: block; margin-top: 4px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .78rem; }
.gs-a11y-tip { margin-top: 4px; color: var(--muted); }
.gs-a11y-note { font-size: .78rem; color: var(--muted); }
.gs-a11y-ok { font-weight: 600; }

/* Fehler-Log (wie naheblick brand-logbox) */
.gs-logbox { background: #1e1e2a; color: #d8dbe2; border-radius: .5rem; padding: .75rem 1rem; max-height: 70vh; overflow: auto; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; line-height: 1.45; }
.gs-log-line { white-space: pre-wrap; word-break: break-word; padding: .15rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.gs-log-line:last-child { border-bottom: 0; }
.gs-log-line.is-err { color: #ff8a8a; }
.gs-log-line.is-warn { color: #ffd27a; }

/* ─── Formular-Editor (1:1 naheblick „Funnel → Formulare“) ─── */
.lf-actionbar { position: fixed; left: var(--lp-sidebar-w, 240px); right: 0; bottom: 46px; z-index: 1031; margin: 0; padding: 12px 32px; background: rgba(255,255,255,.97); backdrop-filter: saturate(1.1) blur(6px); border-top: 1px solid #e6ebf0; box-shadow: 0 -6px 22px rgba(16,32,45,.12); }
@media (max-width: 991px) { .lf-actionbar { left: 0; padding: 12px 16px; } }
.lf-actionbar .btn-primary { padding-left: 1.2rem; padding-right: 1.2rem; }
.lf-actionbar-spacer { height: 84px; }
#fld-list .fld-row { border: 1px solid #e6ebf0; border-left: 3px solid #9db8c9; border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(16,32,45,.05); transition: box-shadow .15s ease, border-color .15s ease; }
#fld-list .fld-row:hover { box-shadow: 0 8px 20px rgba(16,32,45,.10); border-left-color: var(--primary); }
#fld-list .fld-row .card-body { padding: .75rem .85rem; }
#fld-list .fld-row .form-label.small { font-weight: 600; color: #4E5B63; margin-bottom: .15rem; }
#fld-list .fld-type { font-weight: 600; background-color: #f7f9fb; }
#fld-list .fld-arrows { display: inline-flex; gap: 4px; align-self: flex-start; }
#fld-list .fld-arrows .btn { width: 32px; height: 31px; padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: .82rem; border-radius: 7px; }
#fld-list .fld-row__main > .btn { border-radius: 8px; }
#fld-list .fld-row .form-control:focus, #fld-list .fld-row .form-select:focus { border-color: #5b7f9c; box-shadow: 0 0 0 .18rem rgba(var(--mdb-primary-rgb), .12); }
#fld-list .fld-space { display: flex; align-items: center; gap: 4px; align-self: flex-start; }
#fld-list .fld-space .input-group { width: 72px; }
#fld-list .fld-space .input-group-text { padding: 0 4px; background: #eef4fb; color: #4E5B63; font-size: .7rem; }
#fld-list .fld-space .form-control { padding: 0 2px; text-align: center; height: 31px; }
#fld-list .fld-row--stephead .fld-space, #fld-list .fld-row--stephead .fld-arrows { display: none !important; }
#fld-list .fld-group { border: 1px solid #cdddea; border-left: 6px solid var(--primary); border-radius: 14px; background: #f5f9fd; padding: 12px 12px 8px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(16,32,45,.05); }
#fld-list .fld-group-head { display: flex; align-items: center; gap: .6rem; margin: 0 2px .6rem; flex-wrap: wrap; }
#fld-list .fld-step-badge { display: inline-flex; align-items: center; gap: .4rem; background: var(--primary); color: #fff; font-size: .78rem; font-weight: 700; border-radius: 999px; padding: .22rem .85rem; }
#fld-list .fld-steptools-act { margin-left: auto; display: inline-flex; gap: .25rem; }
#fld-list .fld-add-in { width: 100%; border: 1px dashed #9db8c9; color: var(--primary); background: #fff; font-weight: 600; font-size: .82rem; margin-top: 2px; }
#fld-list .fld-add-in:hover { background: #eef4fb; border-color: var(--primary); }
#fld-list .fld-row--stephead { border-left-color: var(--primary) !important; background: #eef4fb !important; }
#fld-list .min-w-0 { min-width: 0; }
.lf-subbox { border: 1px solid #dbe6f0; border-radius: 10px; background: #f6fbff; padding: .5rem .7rem; }
.lf-subbox > summary { cursor: pointer; color: #2c5876; }
.lf-eblock { border: 1px solid #e3eaf1; border-radius: 12px; background: #fbfdff; padding: .75rem .9rem; margin-top: 14px; }
.lf-eblock__title { font-weight: 600; font-size: .95rem; margin-bottom: .5rem; color: #20405a; }
.lf-eblock__ctl { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; margin-top: .4rem; }
.lf-ctl-lbl { font-size: .75rem; color: #5c6b7a; margin-bottom: 3px; display: block; }
.lf-statetable { border-collapse: separate; border-spacing: 10px 6px; }
.lf-colorcard { border: 1px solid #e6ebf0; border-radius: 10px; background: #fff; padding: .55rem .6rem; height: 100%; }
.lf-grouptitle { font-weight: 600; font-size: .8rem; text-transform: uppercase; color: var(--muted); letter-spacing: .04em; border-bottom: 1px solid #e3eaf1; padding-bottom: 4px; margin: 1rem 0 .5rem; }
.lf-pal { display: inline-flex; flex-direction: column; gap: 3px; min-width: 116px; vertical-align: top; position: relative; }
.lf-pal-sw { height: 24px; border: 1px solid #ccc; border-radius: 5px; background: transparent; cursor: pointer; padding: 0; }
.lf-pal-sw:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
.lf-pal-lbl { max-width: 116px; line-height: 1.15; }
.lf-pal-light, .lf-pal-alpha { height: 24px; font-size: .7rem !important; }
.lf-pal-pop { position: fixed; z-index: 3000; background: #fff; border: 1px solid #ccc; border-radius: 6px; padding: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.18); width: 236px; }
.lf-pal-pop hr { margin: .5rem 0; }
.lf-pal-pop__grid { display: flex; flex-wrap: wrap; gap: 4px; }
.lf-pal-pop__sw { width: 26px; height: 26px; border: 1px solid rgba(0,0,0,.15); border-radius: 4px; cursor: pointer; padding: 0; background: #fff; }
.lf-pal-pop__sw.is-current { border: 2px solid var(--primary); }
.lead-copy { cursor: pointer; }
.gs-mask { letter-spacing: .15em; color: var(--muted); }
.gs-form-preview .lf-wrap { color: var(--ink); }

/* ── SEO & GEO: Editor-Panel (admin/seo/_panel.html.twig, nb-seo-panel.js) – wie naheblick ── */
.nb-seo .nb-seo-tabs .nav-link { font-size: .78rem; border: 1px solid #e3e8ee; }
.nb-serp { border: 1px solid #e3e8ee; border-radius: 10px; padding: 10px 12px; background: #fff; font-family: Arial, Helvetica, sans-serif; }
.nb-serp-url { font-size: 12px; color: #4d5156; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nb-serp-title { font-size: 18px; line-height: 1.3; color: #1a0dab; margin: 2px 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.nb-serp-desc { font-size: 13px; line-height: 1.45; color: #4d5156; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nb-seo-meter { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.nb-seo-bar { flex: 1; height: 5px; border-radius: 3px; background: #e9edf1; overflow: hidden; }
.nb-seo-bar span { display: block; height: 100%; width: 0; background: #adb5bd; transition: width .2s; }
.nb-seo-checks li { display: flex; gap: 6px; align-items: flex-start; padding: 3px 0; }
.nb-seo-checks i { margin-top: 3px; }
.nb-seo-checks .nb-seo-fix { white-space: nowrap; font-size: .75rem; }
.nb-seo-checks .nb-seo-tip { display: block; color: #6c757d; font-size: .75rem; }
.nb-seo-chip { cursor: pointer; }
.nb-seo-ogpv { max-width: 100%; max-height: 120px; border-radius: 8px; border: 1px solid #ddd; object-fit: cover; }

/* Phase 4.3: „Als Kunde ansehen“ – roter Hinweis bleibt beim Scrollen sichtbar */
.gs-impersonation-bar { position: sticky; top: .5rem; z-index: 1020; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }

/* Link-Statistik › Getrackte Links (wie naheblick #link-datatable): Zellen umbrechen, Zahlen rechtsbündig */
.gs-tl-table td, .gs-tl-table th { white-space: normal !important; vertical-align: top; }
.gs-tl-table td:first-child, .gs-tl-table th:first-child { min-width: 240px; }
.gs-tl-table td:first-child, .gs-tl-table td:nth-child(3) { word-break: break-word; overflow-wrap: anywhere; }
.gs-tl-table td:nth-child(n+4) { text-align: right; white-space: nowrap !important; }
.gs-tl-table th:nth-child(n+4) { text-align: right; }

/* ─── Verträge online (Phase 5) ─────────────────────────────────────────── */
.gs-contract-text { max-height: 60vh; overflow-y: auto; padding: 1rem 1.25rem; border: 1px solid var(--border, #DCE3EA); border-radius: 6px; background: var(--bg, #fff); line-height: 1.6; }
.gs-contract-text--preview { max-height: 70vh; font-size: .9rem; }
.gs-contract-text--full { max-height: none; overflow: visible; }
.gs-contract-text h1, .gs-contract-text h2 { font-size: 1.25rem; margin-top: 1.25rem; }
.gs-contract-text h3, .gs-contract-text h4 { font-size: 1.05rem; margin-top: 1rem; }
.gs-contract-text table { width: 100%; border-collapse: collapse; margin: .75rem 0; font-size: .9rem; }
.gs-contract-text th, .gs-contract-text td { border: 1px solid var(--border, #DCE3EA); padding: .35rem .5rem; vertical-align: top; }
.gs-pre-wrap { white-space: pre-wrap; }
@media print {
    .lp-sidebar, .lp-admin-header, .lp-admin-footer, .lp-sidebar-backdrop, .gs-no-print, #flash-container, .gs-impersonation-bar { display: none !important; }
    .lp-admin-wrap { margin: 0 !important; padding: 0 !important; }
    .gs-contract-text { max-height: none !important; overflow: visible !important; border: 0; padding: 0; }
    .card { box-shadow: none !important; border: 0 !important; }
    .gs-print-break { break-before: page; }
}

/* Design › Palettenfarbwähler (templates/admin/design/_dfields.html.twig cref, gosite-design.js) – nur Farben c1…cN.
   Aussehen wie der Editor-Picker .nb-cp (Knopf mit Farbpunkt + Name); Grundmaße zusätzlich als style im Markup. */
.gs-cref{display:inline-flex;align-items:center;gap:4px;position:relative;vertical-align:middle;white-space:nowrap}
.gs-cref .gs-cref-sw{height:31px;width:150px;padding:0 8px;text-transform:none;font-weight:400;box-shadow:none;background:#fff;color:#33404c}
.gs-cref .gs-cref-sw:hover,.gs-cref .gs-cref-sw:focus-visible{background:#f6f8fa;box-shadow:none}
.gs-cref .gs-cref-dot{width:16px;height:16px;border:1px solid #ccc;border-radius:3px;flex:none}
.gs-cref .gs-cref-lbl{font-size:.78rem}
.gs-cref .gs-cref-light,.gs-cref .gs-cref-alpha{width:74px;height:31px;padding:0 4px;font-size:.72rem}
.gs-cref-pop{position:fixed;z-index:3000;background:#fff;border:1px solid #ccc;border-radius:6px;padding:6px;box-shadow:0 6px 20px rgba(0,0,0,.18);width:236px}
.gs-cref-grid{display:flex;flex-wrap:wrap;gap:4px}
.gs-cref-pop .gs-cref-opt{width:26px;height:26px;border:1px solid rgba(0,0,0,.15);border-radius:4px;padding:0;cursor:pointer;position:relative}
.gs-cref-pop .gs-cref-opt.is-current{outline:2px solid #24323d;outline-offset:1px}
.gs-cref-pop .gs-cref-opt span{position:absolute;left:0;right:0;bottom:-1px;font-size:8px;line-height:10px;text-align:center;color:#fff;text-shadow:0 0 2px #000;pointer-events:none}

/* ─── Hilfe & Nachrichten, Mein Profil (Migration 0032) ─────────────────── */
.gs-msg-list { display: flex; flex-direction: column; gap: 1rem; }
.gs-msg { display: flex; gap: .75rem; align-items: flex-start; max-width: 860px; }
.gs-msg--own { margin-left: auto; flex-direction: row-reverse; }
.gs-msg-avatar { width: 36px; height: 36px; font-size: .85rem; }
.gs-msg-bubble { flex: 1 1 auto; min-width: 0; border: 1px solid var(--border, #DCE4E1); border-radius: 8px; padding: .6rem .85rem; background: var(--bg, #fff); }
.gs-msg--staff .gs-msg-bubble { background: var(--surface, #F2F6F3); }
.gs-msg--internal .gs-msg-bubble { background: #FFF8E1; border-style: dashed; border-color: #E9B324; }
.gs-msg-head { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin-bottom: .35rem; }
.gs-msg-body { white-space: normal; overflow-wrap: anywhere; line-height: 1.55; }
.gs-msg-files li { margin-top: .15rem; }
.gs-msg-form--internal textarea { background: #FFF8E1; border-color: #E9B324; }
.gs-avatar-crop { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.gs-avatar-crop.d-none { display: none !important; }
.gs-avatar-frame { position: relative; width: 160px; height: 160px; overflow: hidden; border-radius: 50%; border: 2px solid var(--border, #DCE4E1); flex: none; background: #f6f8fa; }
.gs-avatar-frame img { position: absolute; max-width: none; user-select: none; pointer-events: none; }

/* Mehrsprachigkeit (Migration 0037): Übersetzungs-Kennzeichen in Seiten-/Beitragslisten, Flaggen */
.gs-trans-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;margin:0 2px;border:1px solid #d5dbe3;border-radius:4px;font-size:.72rem;font-weight:600;line-height:1.5;color:inherit;background:#fff;text-decoration:none;vertical-align:middle}
.gs-trans-badge img{border-radius:1px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.gs-trans-badge i.flag:not(.icon){margin:0}
.gs-trans-badge.is-offline{opacity:.6}
.gs-trans-badge.is-missing{border-style:dashed;color:#8a96a3;cursor:pointer}
.gs-trans-badge.is-missing:hover,.gs-trans-badge.is-missing:focus-visible{color:inherit;border-style:solid}
.gs-flag{border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12);vertical-align:-2px}
