3816 lines
90 KiB
CSS
3816 lines
90 KiB
CSS
/**
|
|
* Inline Editor Styles
|
|
* Flexible and reusable for other websites
|
|
*/
|
|
|
|
/*
|
|
* Editor theme variables are injected by header.php as a <style>:root{…}</style>
|
|
* block built from content/settings.json. We deliberately do NOT declare a
|
|
* competing :root here — if we did, this file (loaded later via <link>) would
|
|
* override the header injection due to source order, and site theming would
|
|
* silently break for any setting that differed from the defaults.
|
|
*
|
|
* Defaults instead live in the second argument of each var() call below, so
|
|
* the header injection is always authoritative when present, and the defaults
|
|
* only kick in if a variable is missing entirely.
|
|
*/
|
|
|
|
/*
|
|
* Fix: background-clip:text + editable-field child.
|
|
* When editableText() wraps text in <span class="editable-field">,
|
|
* gradient-text effects break because background-clip doesn't inherit.
|
|
* This rule makes the child span inherit the gradient text properties.
|
|
*/
|
|
body.visual-editing .editable-field,
|
|
body.edit-mode-active .editable-field {
|
|
background: inherit;
|
|
-webkit-background-clip: inherit;
|
|
-webkit-text-fill-color: inherit;
|
|
background-clip: inherit;
|
|
}
|
|
|
|
/* ============================================================
|
|
ADMIN BAR
|
|
============================================================ */
|
|
|
|
#admin-bar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: var(--editor-bar-bg, #23282d);
|
|
color: #fff;
|
|
z-index: 10000;
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.admin-bar-inner {
|
|
max-width: 1400px;
|
|
margin: 0 auto;
|
|
padding: 8px 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
}
|
|
|
|
.admin-bar-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.admin-bar-center {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.admin-bar-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.admin-bar-logo-icon {
|
|
display: block;
|
|
width: 24px;
|
|
height: 24px;
|
|
border-radius: 4px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* Dark single-colour logos (default Raiju icon) turn white; set by markAdminBarLogo() */
|
|
.admin-bar-logo-icon--default {
|
|
filter: brightness(0) invert(1);
|
|
opacity: 0.85;
|
|
}
|
|
|
|
.admin-bar-info {
|
|
opacity: 0.8;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.admin-bar-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
/* Page backups share one compact toolbar group in browse and edit mode. */
|
|
.admin-bar-backups {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
padding-inline-end: 24px;
|
|
margin-inline-end: 16px;
|
|
border-inline-end: 1px solid rgba(255, 255, 255, .25);
|
|
}
|
|
.admin-bar-backups[hidden] { display: none; }
|
|
#admin-bar.has-page-backups .admin-bar-info { display: none; }
|
|
#admin-bar .admin-bar-backup-select {
|
|
width: 240px;
|
|
max-width: 100%;
|
|
min-width: 0;
|
|
height: 30px;
|
|
padding-block: 4px;
|
|
padding-inline-start: 9px;
|
|
border: 1px solid rgba(255, 255, 255, .4);
|
|
border-radius: var(--editor-btn-radius, 6px);
|
|
background-color: var(--editor-bar-bg, #23282d);
|
|
color: #fff;
|
|
color-scheme: dark;
|
|
font: inherit;
|
|
font-variant-numeric: tabular-nums;
|
|
cursor: pointer;
|
|
--rj-select-caret-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
|
|
}
|
|
#admin-bar .admin-bar-backup-select:focus-visible,
|
|
#admin-bar #admin-btn-restore-backup:focus-visible {
|
|
outline: 2px solid #fff;
|
|
outline-offset: 2px;
|
|
}
|
|
#admin-bar .admin-bar-backup-select:disabled { opacity: .6; cursor: default; }
|
|
@media (max-width: 1100px) {
|
|
#admin-bar.has-page-backups .admin-bar-inner { flex-wrap: wrap; }
|
|
#admin-bar.has-page-backups .admin-bar-center {
|
|
flex: 1 1 100%;
|
|
order: 3;
|
|
min-width: 0;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
#admin-bar.has-page-backups .admin-bar-right { margin-inline-start: auto; }
|
|
#admin-bar.has-page-backups .admin-bar-backups {
|
|
flex: 1 1 100%;
|
|
justify-content: center;
|
|
margin-inline-end: 0;
|
|
padding: 0 0 12px;
|
|
margin-bottom: 4px;
|
|
border-inline-end: 0;
|
|
border-bottom: 1px solid rgba(255, 255, 255, .25);
|
|
}
|
|
}
|
|
@media (max-width: 600px) {
|
|
#admin-bar.has-page-backups .admin-bar-edit-controls { display: contents; }
|
|
#admin-bar .admin-bar-backup-select,
|
|
#admin-bar #admin-btn-restore-backup { min-height: 40px; }
|
|
#admin-bar .admin-bar-backup-select { flex: 1; max-width: 260px; }
|
|
}
|
|
|
|
.admin-bar-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: rgba(255, 255, 255, 0.75);
|
|
text-decoration: none;
|
|
padding: 4px 10px;
|
|
border-radius: 3px;
|
|
transition: background 0.2s, color 0.2s;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.admin-bar-link:hover {
|
|
background: var(--editor-bar-hover, #32373c);
|
|
color: #fff;
|
|
}
|
|
|
|
.admin-bar-seo {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 4px 9px;
|
|
border: 1px solid rgba(255, 255, 255, 0.24);
|
|
border-radius: 999px;
|
|
color: rgba(255, 255, 255, 0.86);
|
|
cursor: pointer;
|
|
outline: none;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.admin-bar-seo:hover {
|
|
color: #fff;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.admin-bar-seo-dot {
|
|
width: 9px;
|
|
height: 9px;
|
|
border-radius: 50%;
|
|
background: #f59e0b;
|
|
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.16);
|
|
}
|
|
|
|
.admin-bar-seo--green .admin-bar-seo-dot {
|
|
background: #22c55e;
|
|
box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.16);
|
|
}
|
|
|
|
.admin-bar-seo--yellow .admin-bar-seo-dot {
|
|
background: #f59e0b;
|
|
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.18);
|
|
}
|
|
|
|
.admin-bar-seo--red .admin-bar-seo-dot {
|
|
background: #ef4444;
|
|
box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.18);
|
|
}
|
|
|
|
.admin-bar-seo-score {
|
|
opacity: 0.72;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.admin-bar-seo-label {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.admin-bar-seo-popover {
|
|
position: absolute;
|
|
top: calc(100% + 10px);
|
|
right: 0;
|
|
width: min(360px, calc(100vw - 28px));
|
|
max-width: calc(100vw - 28px);
|
|
padding: 14px 16px;
|
|
border-radius: 8px;
|
|
background: #16191d;
|
|
color: #fff;
|
|
box-shadow: 0 18px 45px rgba(0, 0, 0, 0.35);
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transform: translateY(-4px);
|
|
transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
|
|
pointer-events: none;
|
|
white-space: normal;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.admin-bar-seo:hover .admin-bar-seo-popover,
|
|
.admin-bar-seo:focus-visible .admin-bar-seo-popover {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.admin-bar-seo-popover strong {
|
|
display: block;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.admin-bar-seo-popover ul {
|
|
margin: 0;
|
|
padding-left: 18px;
|
|
}
|
|
|
|
.admin-bar-seo-popover li + li {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.admin-bar-seo-popover li {
|
|
white-space: normal;
|
|
}
|
|
|
|
body.has-admin-bar {
|
|
padding-top: var(--raiju-admin-bar-height, 40px);
|
|
}
|
|
|
|
body.has-admin-bar .site-header {
|
|
top: var(--raiju-admin-bar-height, 40px);
|
|
}
|
|
|
|
body.has-admin-bar .mobile-nav-overlay {
|
|
top: var(--raiju-admin-bar-height, 40px);
|
|
}
|
|
|
|
/* Site templates set .main-content padding-top based on --header-height.
|
|
When the admin bar is present, it pushes .site-header down by its height,
|
|
so the scroll-start of the content area needs the same extra offset. */
|
|
body.has-admin-bar .main-content {
|
|
padding-top: calc(var(--header-height, 80px) + var(--spacing-lg, 4rem) + var(--raiju-admin-bar-height, 40px));
|
|
}
|
|
|
|
/* ============================================================
|
|
EDITIERBARE SECTIONS
|
|
============================================================ */
|
|
|
|
.editable-section {
|
|
position: relative;
|
|
border-radius: 0;
|
|
}
|
|
|
|
body.edit-mode-active .editable-section {
|
|
cursor: default;
|
|
outline: 1px solid transparent;
|
|
outline-offset: 6px;
|
|
transition: outline-color 0.2s ease;
|
|
}
|
|
|
|
body.edit-mode-active .editable-section:hover {
|
|
outline-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
/* About-Section spezifisch */
|
|
.editable-about-section {
|
|
padding: 4px;
|
|
margin: -4px;
|
|
}
|
|
|
|
/* Leere Sections im Edit-Mode */
|
|
body.edit-mode-active .editable-section.editable-empty {
|
|
min-height: 60px;
|
|
border: 2px dashed rgba(13, 156, 144, 0.3);
|
|
background: rgba(13, 156, 144, 0.05);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.editable-placeholder {
|
|
color: rgba(13, 156, 144, 0.6);
|
|
font-size: 14px;
|
|
font-style: italic;
|
|
}
|
|
|
|
body.edit-mode-active .editable-section.editable-empty:hover {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
background: rgba(13, 156, 144, 0.1);
|
|
}
|
|
|
|
/* ============================================================
|
|
OVERLAY WITH BUTTONS (Edit, Delete, Drag Handle)
|
|
============================================================ */
|
|
|
|
.editable-overlay {
|
|
position: absolute;
|
|
/* Anchor above the section so the toolbar never covers content,
|
|
even on tiny sections. The 2px overlap is a hover bridge so the
|
|
cursor doesn't lose the section's :hover when crossing into the
|
|
toolbar. */
|
|
bottom: calc(100% - 2px);
|
|
right: 0;
|
|
background: var(--editor-primary, #2563eb);
|
|
color: white;
|
|
padding: 4px 8px;
|
|
border-radius: 4px 4px 4px 0;
|
|
font-size: 12px;
|
|
opacity: 0;
|
|
transition: opacity 0.2s;
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
body.edit-mode-active .editable-section:hover .editable-overlay,
|
|
body.edit-mode-active .editable-section.is-overlay-active .editable-overlay,
|
|
body.edit-mode-active .editable-overlay:hover {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
/* Button-Overlay Variante */
|
|
.editable-overlay-buttons {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1px;
|
|
padding: 4px;
|
|
background: rgba(35, 40, 45, 0.95);
|
|
border-radius: 6px;
|
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
|
|
}
|
|
|
|
.overlay-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
border: none;
|
|
background: transparent;
|
|
color: white;
|
|
cursor: pointer;
|
|
border-radius: 3px;
|
|
transition: background 0.2s, color 0.2s;
|
|
}
|
|
|
|
.overlay-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.overlay-btn:hover {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.overlay-btn-edit:hover {
|
|
background: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.overlay-btn-delete:hover {
|
|
background: var(--editor-danger, #dc3545);
|
|
}
|
|
|
|
.overlay-btn-hide {
|
|
color: rgba(255, 255, 255, 0.7);
|
|
}
|
|
|
|
.overlay-btn-hide:hover {
|
|
background: rgba(255, 200, 0, 0.3);
|
|
color: #ffc800;
|
|
}
|
|
|
|
.overlay-drag-handle {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 28px;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
cursor: grab;
|
|
}
|
|
|
|
.overlay-drag-handle svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.overlay-drag-handle:hover {
|
|
color: white;
|
|
}
|
|
|
|
.editable-icon {
|
|
display: inline-block;
|
|
}
|
|
|
|
/* ============================================================
|
|
ADD BUTTONS BELOW SECTIONS
|
|
============================================================ */
|
|
|
|
.section-add-buttons {
|
|
position: absolute;
|
|
bottom: -18px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
display: flex;
|
|
gap: 4px;
|
|
opacity: 0;
|
|
transition: opacity 0.15s ease;
|
|
z-index: 15;
|
|
pointer-events: none;
|
|
}
|
|
|
|
body.edit-mode-active .editable-section:hover .section-add-buttons,
|
|
body.edit-mode-active .section-add-buttons:has(.section-add-btn-toggle[aria-expanded="true"]) {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
/* Single "add section" toggle (replaces the row of type-specific buttons).
|
|
Inverted (dark) to match other editor chrome like .editable-overlay-buttons. */
|
|
.section-add-btn-toggle {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 32px;
|
|
height: 32px;
|
|
padding: 0;
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
background: rgba(35, 40, 45, 0.95);
|
|
color: rgba(255, 255, 255, 0.85);
|
|
cursor: pointer;
|
|
border-radius: 50%;
|
|
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.section-add-btn-toggle svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.section-add-btn-toggle:hover,
|
|
.section-add-btn-toggle.is-hover,
|
|
.section-add-btn-toggle[aria-expanded="true"] {
|
|
background: var(--editor-primary, #2563eb) !important;
|
|
color: #fff !important;
|
|
border-color: rgba(255, 255, 255, 0.35) !important;
|
|
box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28), 0 0 0 2px color-mix(in srgb, var(--editor-primary, #2563eb) 34%, transparent) !important;
|
|
transform: scale(1.12) !important;
|
|
}
|
|
|
|
.section-add-btn-toggle:focus-visible {
|
|
outline: 2px solid var(--editor-primary, #2563eb);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* ============================================================
|
|
SECTION TYPE PICKER (popover opened by the "+" button)
|
|
============================================================ */
|
|
|
|
.section-type-picker {
|
|
position: absolute;
|
|
z-index: 1000;
|
|
min-width: 320px;
|
|
max-width: 420px;
|
|
background: rgba(35, 40, 45, 0.97);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: 8px;
|
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35), 0 2px 6px rgba(0, 0, 0, 0.2);
|
|
padding: 8px;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
animation: sectionTypePickerIn 0.12s ease-out;
|
|
}
|
|
|
|
@keyframes sectionTypePickerIn {
|
|
from { opacity: 0; transform: translateY(-4px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
.section-type-picker__category {
|
|
padding: 4px 4px 8px;
|
|
}
|
|
|
|
.section-type-picker__category + .section-type-picker__category {
|
|
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
|
margin-top: 4px;
|
|
padding-top: 8px;
|
|
}
|
|
|
|
.section-type-picker__category-label {
|
|
display: block;
|
|
font-size: 10px;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
padding: 2px 4px 6px;
|
|
}
|
|
|
|
.section-type-picker__grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 2px;
|
|
}
|
|
|
|
.section-type-picker__item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 8px 4px;
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
border-radius: 6px;
|
|
cursor: pointer;
|
|
color: rgba(255, 255, 255, 0.78);
|
|
transition: background 0.1s ease, color 0.1s ease, border-color 0.1s ease;
|
|
font: inherit;
|
|
min-height: 58px;
|
|
}
|
|
|
|
.section-type-picker__item:hover,
|
|
.section-type-picker__item:focus-visible {
|
|
background: rgba(255, 255, 255, 0.08);
|
|
color: #fff;
|
|
border-color: rgba(255, 255, 255, 0.12);
|
|
outline: none;
|
|
}
|
|
|
|
.section-type-picker__icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
|
|
.section-type-picker__icon svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.section-type-picker__label {
|
|
font-size: 11px;
|
|
line-height: 1.2;
|
|
text-align: center;
|
|
}
|
|
|
|
/* ============================================================
|
|
DRAG & DROP
|
|
============================================================ */
|
|
|
|
.editable-section.dragging {
|
|
opacity: 0.5;
|
|
outline: 2px solid var(--editor-primary, #2563eb);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.editable-section.drag-over {
|
|
background: rgba(13, 156, 144, 0.1);
|
|
}
|
|
|
|
.editable-section.drag-over-top {
|
|
box-shadow: inset 0 3px 0 var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.editable-section.drag-over-bottom {
|
|
box-shadow: inset 0 -3px 0 var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
/* ============================================================
|
|
CLICK BLOCKER FOR IFRAMES (important for Drag & Drop!)
|
|
============================================================ */
|
|
|
|
.editable-section .audio-embed,
|
|
.editable-section .video-container {
|
|
position: relative;
|
|
pointer-events: none; /* Verhindert dass iframes Drag abfangen */
|
|
}
|
|
|
|
.editable-section .audio-embed::after,
|
|
.editable-section .video-container::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
z-index: 5;
|
|
pointer-events: auto; /* Pseudo-element catches clicks */
|
|
}
|
|
|
|
body.edit-mode-active .editable-section:hover .audio-embed::after,
|
|
body.edit-mode-active .editable-section:hover .video-container::after {
|
|
background: rgba(13, 156, 144, 0.1);
|
|
}
|
|
|
|
/* Completely block iframes during dragging */
|
|
.editable-section.dragging .audio-embed,
|
|
.editable-section.dragging .video-container,
|
|
.editable-section.dragging iframe {
|
|
pointer-events: none !important;
|
|
}
|
|
|
|
/* ============================================================
|
|
MODAL
|
|
============================================================ */
|
|
|
|
.editor-modal {
|
|
display: none;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 20000;
|
|
font-family: 'Geist', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
font-size: 14px;
|
|
line-height: 1.5;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
.editor-modal.active {
|
|
display: block;
|
|
}
|
|
|
|
.editor-modal-backdrop {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0,0,0,0.6);
|
|
animation: fadeIn 0.2s ease;
|
|
}
|
|
|
|
.editor-modal-content {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
background: #ffffff;
|
|
border-radius: 12px 12px 0 12px;
|
|
box-shadow: 0 8px 16px rgba(13, 149, 156, 0.04), 0 16px 48px rgba(0, 0, 0, 0.16);
|
|
width: 90%;
|
|
max-width: 700px;
|
|
max-height: 90vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
animation: slideIn 0.2s ease;
|
|
}
|
|
|
|
/* Logged-in browsing: invite the user to enable editing without covering other dialogs. */
|
|
dialog.editor-mode-hint {
|
|
box-sizing: border-box;
|
|
width: min(540px, calc(100% - 32px));
|
|
max-height: calc(100dvh - 32px);
|
|
margin: auto;
|
|
padding: 28px;
|
|
overflow: auto;
|
|
border: 1px solid #dce0e5;
|
|
border-radius: 12px;
|
|
background: #fff;
|
|
color: #333;
|
|
font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
box-shadow: 0 16px 48px rgba(0, 0, 0, .2);
|
|
}
|
|
dialog.editor-mode-hint::backdrop { background: rgba(0, 0, 0, .5); }
|
|
dialog.editor-mode-hint h2 {
|
|
margin: 0 0 12px;
|
|
color: var(--editor-primary, #2563eb);
|
|
font-family: inherit;
|
|
font-size: 22px;
|
|
line-height: 1.25;
|
|
font-weight: 600;
|
|
}
|
|
dialog.editor-mode-hint p { margin: 0; font: inherit; color: inherit; }
|
|
.editor-mode-hint__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 24px; }
|
|
dialog.editor-mode-hint .editor-btn { min-height: 42px; }
|
|
dialog.editor-mode-hint .editor-btn:focus-visible { outline: 2px solid var(--editor-primary, #2563eb); outline-offset: 3px; }
|
|
[data-site-theme="dark"] dialog.editor-mode-hint { background: #24272d; color: #f0f0f0; border-color: #454a53; }
|
|
[data-site-theme="dark"] dialog.editor-mode-hint h2 { color: inherit; }
|
|
@media (max-width: 480px) {
|
|
dialog.editor-mode-hint { padding: 22px; }
|
|
.editor-mode-hint__actions { flex-direction: column-reverse; }
|
|
.editor-mode-hint__actions .editor-btn { width: 100%; }
|
|
}
|
|
|
|
.editor-modal-small {
|
|
max-width: 400px;
|
|
}
|
|
|
|
.editor-modal-wide {
|
|
max-width: 900px;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from { opacity: 0; }
|
|
to { opacity: 1; }
|
|
}
|
|
|
|
@keyframes slideIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translate(-50%, -50%) scale(0.95);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translate(-50%, -50%) scale(1);
|
|
}
|
|
}
|
|
|
|
.editor-modal-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 16px 24px;
|
|
border-bottom: 1px solid #e2e2e2;
|
|
}
|
|
|
|
.editor-modal-header h3 {
|
|
margin: 0;
|
|
font-size: 1.125rem;
|
|
font-family: inherit;
|
|
font-weight: 600;
|
|
color: #1a1a1a;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.editor-close-btn {
|
|
background: none;
|
|
border: none;
|
|
font-size: 22px;
|
|
color: #8a8a8a;
|
|
cursor: pointer;
|
|
padding: 0;
|
|
width: 32px;
|
|
height: 32px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 6px;
|
|
transition: background-color 0.15s, color 0.15s;
|
|
}
|
|
|
|
.editor-close-btn:hover {
|
|
background: #f5f5f5;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
.editor-modal-body {
|
|
padding: 24px;
|
|
overflow-y: auto;
|
|
flex: 1;
|
|
}
|
|
|
|
.editor-modal-footer {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
padding: 16px 24px;
|
|
border-top: 1px solid #e2e2e2;
|
|
background: #f5f5f5;
|
|
border-radius: 0 0 0 12px;
|
|
}
|
|
|
|
ADD SECTION MODAL
|
|
============================================================ */
|
|
|
|
.add-section-search {
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.add-section-search input {
|
|
width: 100%;
|
|
padding: 10px 14px;
|
|
border: 2px solid #e2e2e2;
|
|
border-radius: 8px;
|
|
font-size: 14px;
|
|
outline: none;
|
|
transition: border-color 0.15s;
|
|
box-sizing: border-box;
|
|
background: #fff;
|
|
color: #333;
|
|
}
|
|
|
|
.add-section-search input:focus {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.add-section-category {
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.add-section-category:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.add-section-category-label {
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
color: #888;
|
|
margin-bottom: 8px;
|
|
padding-left: 2px;
|
|
}
|
|
|
|
.add-section-options {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr 1fr;
|
|
gap: 8px;
|
|
}
|
|
|
|
.add-section-option {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 14px 10px;
|
|
border: 2px solid #e2e2e2;
|
|
background: #ffffff;
|
|
border-radius: 8px;
|
|
cursor: pointer;
|
|
transition: border-color 0.15s, background-color 0.15s;
|
|
}
|
|
|
|
.add-section-option:hover {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
background: rgba(13, 156, 144, 0.05);
|
|
}
|
|
|
|
.add-section-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 32px;
|
|
height: 32px;
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.add-section-icon svg {
|
|
width: 26px;
|
|
height: 26px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.add-section-option:hover .add-section-icon {
|
|
color: var(--editor-primary-hover, #1d4ed8);
|
|
}
|
|
|
|
.add-section-label {
|
|
font-size: 12px;
|
|
font-weight: 500;
|
|
color: #333;
|
|
text-align: center;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
/* ============================================================
|
|
FORMULAR-FELDER
|
|
============================================================ */
|
|
|
|
.editor-field {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.editor-field:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.editor-field label {
|
|
display: block;
|
|
font-family: inherit;
|
|
font-weight: 500;
|
|
margin-bottom: 6px;
|
|
color: #525252;
|
|
font-size: 13px;
|
|
}
|
|
|
|
/* Titel-Zeile mit Input und Select */
|
|
.editor-title-row {
|
|
display: flex;
|
|
gap: 10px;
|
|
}
|
|
|
|
.editor-title-row input[type="text"] {
|
|
flex: 1;
|
|
}
|
|
|
|
.editor-title-tag-select {
|
|
width: 180px;
|
|
padding: 10px 14px;
|
|
border: 1px solid #e2e2e2;
|
|
border-radius: 6px;
|
|
font-size: 14px;
|
|
font-family: inherit;
|
|
background: white;
|
|
cursor: pointer;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='%23666'%3E%3Cpath d='M5 8h14l-7 8z'/%3E%3C/svg%3E");
|
|
background-repeat: no-repeat;
|
|
background-position: right 12px center;
|
|
padding-right: 42px;
|
|
transition: border-color 0.15s, box-shadow 0.15s;
|
|
}
|
|
|
|
.editor-title-tag-select:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 3px rgba(13, 149, 156, 0.15);
|
|
}
|
|
|
|
.editor-field input[type="text"],
|
|
.editor-field input[type="url"],
|
|
.editor-field input[type="date"],
|
|
.editor-field input[type="time"],
|
|
.editor-field input[type="number"],
|
|
.editor-field textarea,
|
|
.editor-field select {
|
|
width: 100%;
|
|
padding: 10px 14px;
|
|
border: 1px solid #e2e2e2;
|
|
border-radius: 6px;
|
|
font-size: 14px;
|
|
font-family: inherit;
|
|
color: #1a1a1a;
|
|
background: #ffffff;
|
|
transition: border-color 0.15s, box-shadow 0.15s;
|
|
}
|
|
|
|
.editor-field select {
|
|
width: auto;
|
|
min-width: 180px;
|
|
max-width: 100%;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='%23666'%3E%3Cpath d='M5 8h14l-7 8z'/%3E%3C/svg%3E");
|
|
background-repeat: no-repeat;
|
|
background-position: right 12px center;
|
|
padding-right: 42px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.editor-field input[type="text"]::placeholder,
|
|
.editor-field input[type="url"]::placeholder,
|
|
.editor-field textarea::placeholder {
|
|
color: #8a8a8a;
|
|
}
|
|
|
|
.editor-field input[type="text"]:focus,
|
|
.editor-field input[type="url"]:focus,
|
|
.editor-field input[type="date"]:focus,
|
|
.editor-field input[type="time"]:focus,
|
|
.editor-field input[type="number"]:focus,
|
|
.editor-field textarea:focus,
|
|
.editor-field select:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 3px rgba(13, 149, 156, 0.15);
|
|
}
|
|
|
|
.editor-field textarea {
|
|
resize: vertical;
|
|
min-height: 80px;
|
|
}
|
|
|
|
.editor-field small {
|
|
display: block;
|
|
margin-top: 6px;
|
|
color: #8a8a8a;
|
|
font-size: 13px;
|
|
}
|
|
|
|
/* Zwei-Spalten-Layout */
|
|
.editor-row {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 20px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.editor-row .editor-field {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* ============================================================
|
|
FLOATING TOOLBAR (inline rich text editing)
|
|
============================================================ */
|
|
|
|
.floating-toolbar {
|
|
position: fixed;
|
|
z-index: 10001;
|
|
display: none;
|
|
align-items: center;
|
|
gap: 1px;
|
|
padding: 4px;
|
|
background: rgba(35, 40, 45, 0.95);
|
|
border-radius: 6px;
|
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
|
|
animation: floatingToolbarIn 0.15s ease;
|
|
}
|
|
|
|
@keyframes floatingToolbarIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(4px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.floating-toolbar button {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 30px;
|
|
height: 28px;
|
|
border: none;
|
|
background: transparent;
|
|
color: #ccc;
|
|
cursor: pointer;
|
|
border-radius: 4px;
|
|
font-size: 14px;
|
|
font-family: inherit;
|
|
transition: background 0.15s, color 0.15s;
|
|
padding: 0;
|
|
}
|
|
|
|
.floating-toolbar button:hover {
|
|
background: rgba(255, 255, 255, 0.15);
|
|
color: #fff;
|
|
}
|
|
|
|
.floating-toolbar button[data-editor-tooltip]::after,
|
|
.raiju-editor-control-btn[data-editor-tooltip]::after,
|
|
.raiju-editor-drag-handle[data-editor-tooltip]::after,
|
|
.section-add-btn-toggle[data-editor-tooltip]::after {
|
|
content: attr(data-editor-tooltip);
|
|
position: absolute;
|
|
left: 50%;
|
|
bottom: calc(100% + 8px);
|
|
transform: translateX(-50%) translateY(2px);
|
|
z-index: 10002;
|
|
display: block;
|
|
width: max-content;
|
|
max-width: 180px;
|
|
padding: 5px 7px;
|
|
border-radius: 4px;
|
|
background: rgba(17, 24, 39, 0.96);
|
|
color: #fff;
|
|
font: 600 11px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
|
|
letter-spacing: 0;
|
|
text-transform: none;
|
|
white-space: nowrap;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transition: opacity 0.12s ease, transform 0.12s ease;
|
|
}
|
|
|
|
.floating-toolbar button[data-editor-tooltip]:hover::after,
|
|
.floating-toolbar button[data-editor-tooltip]:focus-visible::after,
|
|
.raiju-editor-control-btn[data-editor-tooltip]:hover::after,
|
|
.raiju-editor-control-btn[data-editor-tooltip].is-hover::after,
|
|
.raiju-editor-control-btn[data-editor-tooltip]:focus-visible::after,
|
|
.raiju-editor-drag-handle[data-editor-tooltip]:hover::after,
|
|
.raiju-editor-drag-handle[data-editor-tooltip].is-hover::after,
|
|
.raiju-editor-drag-handle[data-editor-tooltip]:focus-visible::after,
|
|
.section-add-btn-toggle[data-editor-tooltip]:hover::after,
|
|
.section-add-btn-toggle[data-editor-tooltip].is-hover::after,
|
|
.section-add-btn-toggle[data-editor-tooltip]:focus-visible::after {
|
|
opacity: 1;
|
|
transform: translateX(-50%) translateY(0);
|
|
}
|
|
|
|
.floating-toolbar button:active {
|
|
background: var(--editor-primary, #2563eb);
|
|
color: #fff;
|
|
}
|
|
|
|
.floating-toolbar button svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.floating-toolbar-separator {
|
|
width: 1px;
|
|
height: 20px;
|
|
background: rgba(255, 255, 255, 0.15);
|
|
margin: 0 4px;
|
|
}
|
|
|
|
/* ============================================================
|
|
WYSIWYG TOOLBAR & EDITOR
|
|
============================================================ */
|
|
|
|
.editor-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 8px;
|
|
background: #f5f5f5;
|
|
border: 1px solid #ddd;
|
|
border-bottom: none;
|
|
border-radius: 4px 4px 0 0;
|
|
}
|
|
|
|
.editor-toolbar button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: white;
|
|
border: 1px solid #ddd;
|
|
padding: 6px 10px;
|
|
border-radius: 4px;
|
|
cursor: pointer;
|
|
font-size: 14px;
|
|
min-width: 32px;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.editor-toolbar button:hover {
|
|
background: var(--editor-primary, #2563eb);
|
|
border-color: var(--editor-primary, #2563eb);
|
|
color: white;
|
|
}
|
|
|
|
/* Eraser Button mit SVG Icon */
|
|
.editor-toolbar-eraser {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 6px 8px;
|
|
}
|
|
|
|
.editor-toolbar-eraser svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.editor-toolbar-separator {
|
|
width: 1px;
|
|
height: 24px;
|
|
background: #ddd;
|
|
margin: 0 8px;
|
|
}
|
|
|
|
.editor-toolbar .editor-toggle {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
align-self: stretch;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
font-size: 13px;
|
|
color: #666;
|
|
margin: 0;
|
|
line-height: 1;
|
|
padding: 0 2px;
|
|
}
|
|
|
|
.editor-toolbar .editor-toggle input {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex: 0 0 16px;
|
|
cursor: pointer;
|
|
accent-color: var(--editor-primary, #2563eb);
|
|
display: block;
|
|
margin: 0;
|
|
}
|
|
|
|
.editor-toolbar .editor-toggle span {
|
|
display: block;
|
|
}
|
|
|
|
/* Checkbox label for options below the editor */
|
|
.editor-checkbox-label {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
padding: 10px 12px;
|
|
background: #f8f9fa;
|
|
border: 1px solid #ddd;
|
|
border-radius: 4px;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.editor-checkbox-label:hover {
|
|
background: #f0f0f0;
|
|
border-color: #ccc;
|
|
}
|
|
|
|
.editor-checkbox-label input {
|
|
width: 18px;
|
|
height: 18px;
|
|
cursor: pointer;
|
|
accent-color: var(--color-primary, #60c8cd);
|
|
}
|
|
|
|
.editor-checkbox-label span {
|
|
font-weight: 500;
|
|
color: #333;
|
|
}
|
|
|
|
.editor-checkbox-label small {
|
|
color: #888;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.editor-checkbox-label input:checked + span {
|
|
color: var(--color-primary, #60c8cd);
|
|
}
|
|
|
|
.editor-wysiwyg {
|
|
min-height: 400px;
|
|
max-height: 600px;
|
|
overflow-y: auto;
|
|
padding: 12px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 0 0 4px 4px;
|
|
font-size: 14px;
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
line-height: 1.6;
|
|
background: white;
|
|
}
|
|
|
|
.editor-wysiwyg:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 2px rgba(13, 156, 144, 0.2);
|
|
}
|
|
|
|
.editor-wysiwyg p {
|
|
margin: 0 0 1em 0;
|
|
}
|
|
|
|
.editor-wysiwyg p:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.editor-wysiwyg ul, .editor-wysiwyg ol {
|
|
margin: 0 0 1em 0;
|
|
padding-left: 1.5em;
|
|
}
|
|
|
|
.editor-wysiwyg a {
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
/* HTML Editor */
|
|
textarea.editor-html {
|
|
width: 100%;
|
|
min-height: 400px;
|
|
max-height: 600px;
|
|
padding: 12px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 0 0 4px 4px;
|
|
font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, Consolas, monospace;
|
|
font-size: 13px;
|
|
line-height: 1.6;
|
|
tab-size: 2;
|
|
white-space: pre-wrap;
|
|
word-wrap: break-word;
|
|
resize: vertical;
|
|
background: #1e1e1e;
|
|
color: #d4d4d4;
|
|
}
|
|
|
|
.editor-html:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
/* ============================================================
|
|
MEDIA PREVIEW
|
|
============================================================ */
|
|
|
|
.editor-media-preview {
|
|
margin-top: 15px;
|
|
padding: 15px;
|
|
background: #f9f9f9;
|
|
border-radius: 4px;
|
|
border: 1px solid #eee;
|
|
}
|
|
|
|
.preview-placeholder {
|
|
color: #999;
|
|
text-align: center;
|
|
margin: 0;
|
|
padding: 30px;
|
|
}
|
|
|
|
/* ============================================================
|
|
BUTTONS
|
|
============================================================ */
|
|
|
|
.editor-btn {
|
|
padding: 10px 20px;
|
|
border: none;
|
|
border-radius: var(--editor-btn-radius, 6px);
|
|
font-size: 14px;
|
|
font-family: inherit;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: background 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
|
|
}
|
|
|
|
.editor-btn-primary {
|
|
background: var(--editor-btn-bg, radial-gradient(ellipse at 50% 0%, #4580ed 0%, #2563eb 70%));
|
|
color: white;
|
|
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
transition: box-shadow 0.2s, transform 0.15s;
|
|
}
|
|
|
|
.editor-btn-primary:hover {
|
|
background: var(--editor-btn-bg-hover, radial-gradient(ellipse at 50% 0%, #5d94ef 0%, #2563eb 70%));
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15),
|
|
0 4px 20px color-mix(in srgb, var(--editor-primary, #2563eb) 35%, transparent);
|
|
}
|
|
|
|
/* Glow off: no shadow in any state; the hover still brightens the fill */
|
|
.editor-flat .editor-btn-primary,
|
|
.editor-flat .editor-btn-primary:hover,
|
|
.editor-flat .editor-btn-primary:active {
|
|
box-shadow: none;
|
|
text-shadow: none;
|
|
}
|
|
|
|
.editor-btn-secondary {
|
|
background: #f0f0f0;
|
|
color: #525252;
|
|
border: 1px solid #e2e2e2;
|
|
}
|
|
|
|
.editor-btn-secondary:hover {
|
|
background: #e5e5e5;
|
|
border-color: #ccc;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
.editor-btn-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 38px;
|
|
min-width: 38px;
|
|
padding: 0;
|
|
background: #e0e0e0;
|
|
color: #333;
|
|
}
|
|
|
|
.editor-btn-icon:hover {
|
|
background: var(--editor-primary, #2563eb);
|
|
color: white;
|
|
}
|
|
|
|
.editor-btn-icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.editor-btn-danger {
|
|
background: var(--editor-danger, #dc3545);
|
|
color: white;
|
|
}
|
|
|
|
.editor-btn-danger:hover {
|
|
background: var(--editor-danger-hover, #c82333);
|
|
}
|
|
|
|
/* ============================================================
|
|
TOAST NACHRICHTEN
|
|
============================================================ */
|
|
|
|
.editor-toast {
|
|
position: fixed;
|
|
top: calc(var(--raiju-admin-bar-height, 40px) + 16px);
|
|
right: 20px;
|
|
max-width: calc(100vw - 40px);
|
|
box-sizing: border-box;
|
|
padding: 12px 20px;
|
|
border-radius: var(--editor-btn-radius, 6px);
|
|
background: var(--editor-bar-bg, #23282d);
|
|
color: white;
|
|
font-family: var(--rj-font-sans, 'Geist', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
|
|
font-size: 14px;
|
|
line-height: 1.45;
|
|
z-index: 30000;
|
|
animation: slideInToast 0.3s ease;
|
|
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
|
|
}
|
|
|
|
.editor-toast-success {
|
|
background: var(--editor-primary, var(--editor-success, #2563eb));
|
|
}
|
|
|
|
.editor-toast-error {
|
|
background: var(--editor-danger, #dc3545);
|
|
}
|
|
|
|
@keyframes slideInToast {
|
|
from {
|
|
transform: translateY(-10px);
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
/* Toast mit Undo-Button */
|
|
.editor-toast-success {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 15px;
|
|
}
|
|
|
|
.toast-message {
|
|
flex: 1;
|
|
}
|
|
|
|
|
|
/* ============================================================
|
|
ADMIN BAR BUTTON
|
|
============================================================ */
|
|
|
|
#admin-bar .admin-bar-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
background: transparent;
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
color: #fff;
|
|
padding: 4px 12px;
|
|
border-radius: var(--editor-btn-radius, 6px);
|
|
font-size: 13px;
|
|
cursor: pointer;
|
|
transition: background-color 0.15s ease, background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn:hover,
|
|
#admin-bar .admin-bar-btn.is-hover,
|
|
#admin-bar .admin-bar-btn:focus-visible {
|
|
background: rgba(255, 255, 255, 0.18) !important;
|
|
border-color: rgba(255, 255, 255, 0.85) !important;
|
|
color: #fff !important;
|
|
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12), 0 8px 22px rgba(0, 0, 0, 0.28) !important;
|
|
transform: translateY(-2px) !important;
|
|
outline: none;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn:disabled {
|
|
opacity: 0.4;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn:disabled:hover {
|
|
background: transparent !important;
|
|
border-color: rgba(255, 255, 255, 0.3) !important;
|
|
color: #fff !important;
|
|
box-shadow: none !important;
|
|
transform: none !important;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-edit {
|
|
background: var(--editor-btn-bg, radial-gradient(ellipse at 50% 0%, #4580ed 0%, #2563eb 70%));
|
|
border-color: var(--editor-primary, #2563eb);
|
|
font-weight: 600;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-edit:hover,
|
|
#admin-bar .admin-bar-btn-edit.is-hover,
|
|
#admin-bar .admin-bar-btn-edit:focus-visible {
|
|
background: var(--editor-btn-bg-hover, radial-gradient(ellipse at 50% 0%, #5d94ef 0%, #2563eb 70%)) !important;
|
|
border-color: var(--editor-primary-hover, #1d4ed8) !important;
|
|
color: #fff !important;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-content-editor {
|
|
text-decoration: none;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
line-height: 1;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-content-editor:hover,
|
|
#admin-bar .admin-bar-btn-content-editor.is-hover,
|
|
#admin-bar .admin-bar-btn-content-editor:focus-visible {
|
|
background: rgba(255, 255, 255, 0.15) !important;
|
|
color: #fff !important;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-save {
|
|
background: transparent;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
font-weight: 600;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-save:hover,
|
|
#admin-bar .admin-bar-btn-save.is-hover,
|
|
#admin-bar .admin-bar-btn-save:focus-visible {
|
|
background: rgba(255, 255, 255, 0.18) !important;
|
|
border-color: var(--editor-primary-hover, #1d4ed8) !important;
|
|
color: #fff !important;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-save-exit {
|
|
background: var(--editor-btn-bg, radial-gradient(ellipse at 50% 0%, #4580ed 0%, #2563eb 70%));
|
|
border-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-save-exit:hover,
|
|
#admin-bar .admin-bar-btn-save-exit.is-hover,
|
|
#admin-bar .admin-bar-btn-save-exit:focus-visible {
|
|
background: var(--editor-btn-bg-hover, radial-gradient(ellipse at 50% 0%, #5d94ef 0%, #2563eb 70%)) !important;
|
|
border-color: var(--editor-primary-hover, #1d4ed8) !important;
|
|
}
|
|
|
|
|
|
#admin-bar .admin-bar-btn-cancel {
|
|
border-color: rgba(255, 255, 255, 0.5);
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn-undo,
|
|
#admin-bar .admin-bar-btn-redo {
|
|
padding: 4px 8px;
|
|
}
|
|
|
|
.admin-bar-edit-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
}
|
|
|
|
.admin-bar-view-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
/* ============================================================
|
|
VERLAUF-MODAL (History)
|
|
============================================================ */
|
|
|
|
.editor-modal-medium {
|
|
max-width: 550px;
|
|
}
|
|
|
|
.history-list {
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.history-page-header {
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
color: #8a8a8a;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
padding: 12px 0 6px;
|
|
border-bottom: 1px solid #e2e2e2;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.history-page-header:not(:first-child) {
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.history-entry {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 10px 12px;
|
|
background: #f5f5f5;
|
|
border-radius: 6px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.history-entry:hover {
|
|
background: #ebebeb;
|
|
}
|
|
|
|
.history-entry-info {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
}
|
|
|
|
.history-entry-date {
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
.history-entry-action {
|
|
font-size: 12px;
|
|
color: #8a8a8a;
|
|
}
|
|
|
|
.editor-btn-small {
|
|
padding: 6px 12px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.history-empty {
|
|
text-align: center;
|
|
color: #999;
|
|
padding: 40px 20px;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* ============================================================
|
|
CONFIRM DIALOG
|
|
============================================================ */
|
|
|
|
.confirm-dialog-content {
|
|
text-align: center;
|
|
padding: 10px 0;
|
|
}
|
|
|
|
.confirm-dialog-icon {
|
|
width: 48px;
|
|
height: 48px;
|
|
margin: 0 auto 15px;
|
|
color: var(--editor-danger, #dc3545);
|
|
}
|
|
|
|
.confirm-dialog-icon svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.confirm-dialog-message {
|
|
font-size: 15px;
|
|
color: #1a1a1a;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.confirm-dialog-hint {
|
|
font-size: 13px;
|
|
color: #8a8a8a;
|
|
margin: 0;
|
|
}
|
|
|
|
.confirm-dialog-footer {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
padding: 16px 24px;
|
|
border-top: 1px solid #e2e2e2;
|
|
background: #f5f5f5;
|
|
border-radius: 0 0 12px 12px;
|
|
}
|
|
|
|
/* ============================================================
|
|
PROMPT DIALOG (for links etc.)
|
|
============================================================ */
|
|
|
|
.prompt-dialog-content {
|
|
padding: 10px 0;
|
|
}
|
|
|
|
.prompt-dialog-label {
|
|
display: block;
|
|
font-weight: 500;
|
|
margin-bottom: 8px;
|
|
color: #525252;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.prompt-dialog-input {
|
|
width: 100%;
|
|
padding: 10px 14px;
|
|
border: 1px solid #e2e2e2;
|
|
border-radius: 6px;
|
|
font-size: 14px;
|
|
font-family: inherit;
|
|
color: #1a1a1a;
|
|
}
|
|
|
|
select.prompt-dialog-input {
|
|
padding-right: 32px;
|
|
appearance: none;
|
|
-webkit-appearance: none;
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%23666'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
|
|
background-repeat: no-repeat;
|
|
background-position: right 12px center;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.prompt-dialog-input:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 3px rgba(13, 149, 156, 0.15);
|
|
}
|
|
|
|
/* Link editor — secondary options (new tab, download) */
|
|
.link-editor-options {
|
|
margin-top: 12px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
.link-editor-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 13px;
|
|
color: var(--rj-text, #333);
|
|
cursor: pointer;
|
|
user-select: none;
|
|
}
|
|
|
|
.link-editor-option input[type="checkbox"] {
|
|
margin: 0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.link-editor-option--disabled {
|
|
opacity: 0.45;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.link-editor-option--disabled,
|
|
.link-editor-option--disabled * {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
/* HTML Source Editor */
|
|
.html-source-textarea {
|
|
width: 100%;
|
|
min-height: 300px;
|
|
flex: 1;
|
|
padding: 14px 16px;
|
|
border: 1px solid #e2e2e2;
|
|
border-radius: 6px;
|
|
font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, Consolas, monospace;
|
|
font-size: 13px;
|
|
line-height: 1.6;
|
|
tab-size: 2;
|
|
resize: vertical;
|
|
background: #fafafa;
|
|
color: #1a1a1a;
|
|
white-space: pre-wrap;
|
|
word-wrap: break-word;
|
|
}
|
|
|
|
.html-source-textarea:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 3px rgba(13, 149, 156, 0.15);
|
|
}
|
|
|
|
/* ============================================================
|
|
EDITIERBARE KONZERTE
|
|
============================================================ */
|
|
|
|
.editable-event {
|
|
position: relative;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
body.edit-mode-active .editable-event {
|
|
cursor: pointer;
|
|
}
|
|
|
|
body.edit-mode-active .editable-event:hover {
|
|
outline: 1px solid var(--editor-primary, #2563eb);
|
|
outline-offset: 6px;
|
|
background: rgba(13, 156, 144, 0.03);
|
|
}
|
|
|
|
.editable-event .editable-overlay {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
background: var(--editor-primary, #2563eb);
|
|
color: white;
|
|
padding: 4px 8px;
|
|
border-radius: 0 4px 0 4px;
|
|
font-size: 12px;
|
|
opacity: 0;
|
|
transition: opacity 0.2s;
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
body.edit-mode-active .editable-event:hover .editable-overlay {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ============================================================
|
|
EDITIERBARE FOOTER-FELDER
|
|
============================================================ */
|
|
|
|
.editable-footer-active {
|
|
position: relative;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
body.edit-mode-active .editable-footer-active {
|
|
cursor: pointer;
|
|
transition: outline-color 0.2s ease;
|
|
}
|
|
|
|
body.edit-mode-active .editable-footer-active:hover {
|
|
outline: 1px solid var(--editor-primary, #2563eb);
|
|
outline-offset: 2px;
|
|
background: rgba(13, 156, 144, 0.1);
|
|
}
|
|
|
|
.editable-footer-active::after {
|
|
content: '✎';
|
|
position: absolute;
|
|
top: -8px;
|
|
right: -8px;
|
|
background: var(--editor-primary, #2563eb);
|
|
color: white;
|
|
width: 16px;
|
|
height: 16px;
|
|
border-radius: 50%;
|
|
font-size: 10px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
opacity: 0;
|
|
transition: opacity 0.2s;
|
|
pointer-events: none;
|
|
}
|
|
|
|
body.edit-mode-active .editable-footer-active:hover::after {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ============================================================
|
|
EDITABLE FIELDS (Custom Layouts)
|
|
============================================================ */
|
|
|
|
.editable-field-active {
|
|
position: relative;
|
|
}
|
|
|
|
/* Editable links keep the display of the site's styles (button links are inline-flex or block);
|
|
:where() keeps the specificity of the former rule for all other fields */
|
|
.editable-field-active:not(:where([data-editable-link])) {
|
|
display: inline;
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-active {
|
|
cursor: text;
|
|
outline: 1px solid transparent;
|
|
outline-offset: 2px;
|
|
transition: outline-color 0.2s ease;
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-active:hover {
|
|
outline-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-active::selection,
|
|
body.edit-mode-active .editable-field-active *::selection {
|
|
background: color-mix(in srgb, var(--editor-primary, #2563eb) 26%, transparent) !important;
|
|
color: inherit !important;
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-active.editable-field-block-hitbox {
|
|
display: inline-block;
|
|
min-width: min(100%, 5rem);
|
|
padding: 0.04em 0.12em;
|
|
margin: -0.04em -0.12em;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-active.editable-field-block-hitbox:hover {
|
|
background: color-mix(in srgb, var(--editor-primary, #2563eb) 8%, transparent);
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-active.editable-field-editing,
|
|
body.edit-mode-active .editable-field-html.editable-field-active {
|
|
display: block;
|
|
}
|
|
|
|
/* HTML fields keep pointer cursor (open modal) */
|
|
body.edit-mode-active .editable-field-html.editable-field-active {
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* Composite groups for custom templates */
|
|
.editable-group-active {
|
|
position: relative;
|
|
}
|
|
|
|
body.edit-mode-active .editable-group-active {
|
|
cursor: pointer;
|
|
outline: 1px solid transparent;
|
|
outline-offset: 6px;
|
|
transition: outline-color 0.15s ease;
|
|
}
|
|
|
|
body.edit-mode-active .editable-group-active:hover,
|
|
body.edit-mode-active .editable-group-active:focus-within {
|
|
outline-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
body:not(.visual-editing) .editable-field-active,
|
|
body:not(.visual-editing) .editable-field-active:hover,
|
|
body:not(.visual-editing) .editable-group-active,
|
|
body:not(.visual-editing) .editable-group-active:hover,
|
|
body:not(.visual-editing) .editable-group-active:focus-within {
|
|
cursor: inherit !important;
|
|
outline: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
body:not(.visual-editing) .editable-overlay,
|
|
body:not(.visual-editing) .editable-group-overlay,
|
|
body:not(.visual-editing) .raiju-editor-section-overlay,
|
|
body:not(.visual-editing) .raiju-editor-list-overlay,
|
|
body:not(.visual-editing) .raiju-editor-group-overlay,
|
|
body:not(.visual-editing) .raiju-editor-control-btn,
|
|
body:not(.visual-editing) .raiju-editor-drag-handle {
|
|
display: none !important;
|
|
}
|
|
|
|
.editable-group-overlay {
|
|
display: none;
|
|
position: absolute;
|
|
top: -28px;
|
|
right: 0;
|
|
z-index: 30;
|
|
align-items: center;
|
|
gap: 4px;
|
|
height: 26px;
|
|
padding: 0 8px;
|
|
border: 0;
|
|
border-radius: 4px 4px 0 0;
|
|
background: var(--editor-primary, #2563eb);
|
|
color: #fff;
|
|
font: 600 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
cursor: pointer;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
|
|
}
|
|
|
|
.editable-group-overlay svg {
|
|
width: 13px;
|
|
height: 13px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
body.edit-mode-active .editable-group-active:hover > .editable-group-overlay,
|
|
body.edit-mode-active .editable-group-active:focus-within > .editable-group-overlay,
|
|
body.edit-mode-active .editable-group-overlay:focus {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.group-editor-field + .group-editor-field {
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.group-editor-html {
|
|
min-height: 160px;
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
}
|
|
|
|
.group-link-target {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.group-link-option {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.group-icon-picker {
|
|
display: grid;
|
|
gap: 10px;
|
|
}
|
|
|
|
.group-icon-selected {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-height: 42px;
|
|
padding: 8px 10px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 6px;
|
|
background: #f8f8f8;
|
|
}
|
|
|
|
.group-icon-selected-preview {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.group-icon-selected-preview svg {
|
|
width: 22px;
|
|
height: 22px;
|
|
}
|
|
|
|
.group-icon-selected-label {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: #333;
|
|
}
|
|
|
|
.group-icon-search {
|
|
width: 100%;
|
|
}
|
|
|
|
.group-icon-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
|
|
gap: 6px;
|
|
max-height: 260px;
|
|
overflow: auto;
|
|
padding: 2px;
|
|
}
|
|
|
|
.group-icon-option {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
min-height: 76px;
|
|
padding: 8px 6px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 6px;
|
|
background: #fff;
|
|
color: #333;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s;
|
|
}
|
|
|
|
.group-icon-option svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
|
|
.group-icon-option span {
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
font-size: 11px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.group-icon-option:hover,
|
|
.group-icon-option:focus-visible {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
color: var(--editor-primary, #2563eb);
|
|
outline: none;
|
|
}
|
|
|
|
.group-icon-option-active {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
background: color-mix(in srgb, var(--editor-primary, #2563eb) 12%, #fff);
|
|
color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 1px var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.group-image-alt {
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.group-editor-special {
|
|
padding: 12px;
|
|
border: 1px solid var(--editor-border, #e5e7eb);
|
|
border-radius: 8px;
|
|
background: var(--editor-bg-soft, #f8fafc);
|
|
}
|
|
|
|
.group-special-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.group-special-header label {
|
|
margin: 0;
|
|
}
|
|
|
|
.group-special-icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 24px;
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.group-special-icon svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.group-link-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(160px, 0.8fr) minmax(220px, 1.2fr);
|
|
gap: 10px;
|
|
align-items: start;
|
|
}
|
|
|
|
.group-special-control {
|
|
display: grid;
|
|
gap: 5px;
|
|
margin: 0;
|
|
}
|
|
|
|
.group-special-control > span {
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
color: var(--editor-text-muted, #64748b);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.06em;
|
|
}
|
|
|
|
.group-special-control--target .link-page-select,
|
|
.group-special-control--target input {
|
|
margin-top: 0 !important;
|
|
}
|
|
|
|
.group-image-grid {
|
|
display: grid;
|
|
grid-template-columns: 84px minmax(0, 1fr);
|
|
gap: 12px;
|
|
align-items: start;
|
|
}
|
|
|
|
.group-image-preview {
|
|
width: 84px;
|
|
min-height: 84px;
|
|
margin: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.group-image-preview:empty::before {
|
|
content: '';
|
|
width: 100%;
|
|
aspect-ratio: 1;
|
|
border: 1px dashed var(--editor-border, #cbd5e1);
|
|
border-radius: 6px;
|
|
background: #fff;
|
|
}
|
|
|
|
.group-image-preview img {
|
|
width: 84px;
|
|
height: 84px;
|
|
object-fit: cover;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.group-image-controls {
|
|
min-width: 0;
|
|
}
|
|
|
|
.group-image-path-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 8px;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.group-link-grid,
|
|
.group-image-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Reset gradient-text when admin is logged in (editable-field spans
|
|
inside gradient-clip parents inherit transparent fill and become invisible) */
|
|
.hero-title:has(.editable-field),
|
|
.trust-value:has(.editable-field),
|
|
.step-number:has(.editable-field),
|
|
.metric-value:has(.editable-field),
|
|
.cta-heading:has(.editable-field),
|
|
.section-label:has(.editable-field),
|
|
.stats-card__value:has(.editable-field) {
|
|
-webkit-text-fill-color: initial !important;
|
|
-webkit-background-clip: initial !important;
|
|
background-clip: initial !important;
|
|
background: none !important;
|
|
color: var(--color-text-on-dark, #e4e4e7) !important;
|
|
}
|
|
|
|
/* Light theme: use dark text color instead */
|
|
[data-theme="light"] .hero-title:has(.editable-field),
|
|
[data-theme="light"] .trust-value:has(.editable-field),
|
|
[data-theme="light"] .step-number:has(.editable-field),
|
|
[data-theme="light"] .metric-value:has(.editable-field),
|
|
[data-theme="light"] .cta-heading:has(.editable-field),
|
|
[data-theme="light"] .section-label:has(.editable-field),
|
|
[data-theme="light"] .stats-card__value:has(.editable-field),
|
|
.landing-comparison-light .hero-title:has(.editable-field),
|
|
.landing-comparison-light .trust-value:has(.editable-field),
|
|
.landing-comparison-light .cta-heading:has(.editable-field),
|
|
.landing-comparison-light .section-label:has(.editable-field) {
|
|
color: var(--color-text, #1a1a25) !important;
|
|
}
|
|
|
|
/* Accordions: show all content in edit mode */
|
|
|
|
/* FAQ accordion */
|
|
body.edit-mode-active .faq-item {
|
|
overflow: visible !important;
|
|
}
|
|
|
|
body.edit-mode-active .faq-item__answer {
|
|
display: block !important;
|
|
max-height: none !important;
|
|
opacity: 1 !important;
|
|
overflow: visible !important;
|
|
}
|
|
|
|
body.edit-mode-active .faq-item__answer[hidden] {
|
|
display: block !important;
|
|
}
|
|
|
|
/* Vibecoding accordion (grid-template-rows animation) */
|
|
body.edit-mode-active .vibecoding-card-body {
|
|
grid-template-rows: 1fr !important;
|
|
transition: none !important;
|
|
}
|
|
|
|
body.edit-mode-active .vibecoding-card-body > * {
|
|
overflow: visible !important;
|
|
padding-bottom: 1rem;
|
|
}
|
|
|
|
/* Landing sections: allow overflow for add-buttons in edit mode */
|
|
body.edit-mode-active .landing-hero,
|
|
body.edit-mode-active .landing-features,
|
|
body.edit-mode-active .landing-cta,
|
|
body.edit-mode-active .landing-dark,
|
|
body.edit-mode-active .landing-trust,
|
|
body.edit-mode-active .landing-steps,
|
|
body.edit-mode-active .landing-vibecoding,
|
|
body.edit-mode-active .landing-comparison-dark,
|
|
body.edit-mode-active .landing-comparison-light,
|
|
body.edit-mode-active .landing-metrics,
|
|
body.edit-mode-active .feature-card,
|
|
body.edit-mode-active .vibecoding-card {
|
|
overflow: visible !important;
|
|
}
|
|
|
|
/* Aktiver Bearbeitungsmodus (contentEditable) */
|
|
.editable-field-editing {
|
|
outline: 2px solid var(--editor-primary, #2563eb) !important;
|
|
background: rgba(255, 255, 255, 0.95) !important;
|
|
caret-color: var(--editor-primary, #2563eb);
|
|
min-width: 20px;
|
|
/* Reset gradient-text so content is visible on white editing bg */
|
|
-webkit-text-fill-color: initial !important;
|
|
-webkit-background-clip: initial !important;
|
|
background-clip: initial !important;
|
|
color: #1f2937 !important;
|
|
}
|
|
|
|
/* Sichtbare Schreibmarke */
|
|
.editable-field-editing:focus {
|
|
caret-color: #000;
|
|
}
|
|
|
|
/* Landing page dark sections: editable fields need readable outlines */
|
|
.page-landing body.edit-mode-active .editable-field-active:hover,
|
|
.page-showcase body.edit-mode-active .editable-field-active:hover {
|
|
outline-color: #60a5fa;
|
|
}
|
|
|
|
/* Landing page: non-editing gradient text fields must stay visible in edit mode */
|
|
.page-landing body.edit-mode-active .editable-field-active {
|
|
cursor: text;
|
|
}
|
|
|
|
/* ============================================================
|
|
EDITABLE LISTS (Repeatable Items)
|
|
============================================================ */
|
|
|
|
.editable-list-item {
|
|
position: relative;
|
|
}
|
|
|
|
body.edit-mode-active .editable-list-item {
|
|
outline: 2px solid transparent;
|
|
outline-offset: 2px;
|
|
transition: outline-color 0.2s ease;
|
|
}
|
|
|
|
body.edit-mode-active .editable-list-item:hover {
|
|
outline-color: var(--editor-primary, #2563eb);
|
|
z-index: 20;
|
|
}
|
|
|
|
body.edit-mode-active .editable-list-item.is-overlay-active {
|
|
z-index: 20;
|
|
}
|
|
|
|
/* Overlay controls — anchored above the item so it never covers small
|
|
items (trust badges, single cards, info-box rows). The 2px overlap
|
|
keeps :hover continuous when the cursor moves item -> toolbar. */
|
|
.editable-list-overlay {
|
|
position: absolute;
|
|
bottom: calc(100% - 2px);
|
|
right: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1px;
|
|
padding: 3px;
|
|
background: rgba(35, 40, 45, 0.95);
|
|
border-radius: 4px 4px 4px 0;
|
|
opacity: 0;
|
|
transition: opacity 0.2s;
|
|
pointer-events: none;
|
|
z-index: 10;
|
|
}
|
|
|
|
.editable-list-item.editable-group-active > .editable-list-overlay {
|
|
top: 8px;
|
|
bottom: auto;
|
|
right: 8px;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
body.edit-mode-active .editable-list-item:hover .editable-list-overlay,
|
|
body.edit-mode-active .editable-list-item.is-overlay-active .editable-list-overlay,
|
|
body.edit-mode-active .editable-list-overlay:hover {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.editable-list-overlay .overlay-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
border: none;
|
|
background: transparent;
|
|
color: #fff;
|
|
cursor: pointer;
|
|
border-radius: 3px;
|
|
padding: 0;
|
|
transition: background 0.2s, color 0.2s;
|
|
}
|
|
|
|
.editable-list-overlay .overlay-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.editable-list-overlay .overlay-btn:hover {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.editable-list-overlay .overlay-btn-edit:hover {
|
|
background: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.editable-list-overlay .overlay-btn-delete:hover {
|
|
background: var(--editor-danger, #dc3545);
|
|
}
|
|
|
|
.editable-list-overlay .list-drag-handle {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 28px;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
cursor: grab;
|
|
}
|
|
|
|
.editable-list-overlay .list-drag-handle svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.editable-list-overlay .list-drag-handle:hover {
|
|
color: #fff;
|
|
}
|
|
|
|
/* Harden editor chrome against broad site CSS such as .card span, .button,
|
|
article:hover, text-transform, inherited fonts, and clipped card controls. */
|
|
body.edit-mode-active .raiju-editor-section-overlay,
|
|
body.edit-mode-active .raiju-editor-list-overlay,
|
|
body.edit-mode-active .raiju-editor-group-overlay {
|
|
box-sizing: border-box !important;
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
|
|
font-size: 12px !important;
|
|
font-weight: 600 !important;
|
|
line-height: 1 !important;
|
|
letter-spacing: 0 !important;
|
|
text-transform: none !important;
|
|
text-decoration: none !important;
|
|
gap: 1px !important;
|
|
padding: 4px !important;
|
|
border-radius: 6px !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-section-overlay,
|
|
body.edit-mode-active .raiju-editor-group-overlay {
|
|
pointer-events: auto !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-list-overlay {
|
|
position: absolute !important;
|
|
display: flex !important;
|
|
overflow: visible !important;
|
|
width: auto !important;
|
|
height: auto !important;
|
|
min-width: 0 !important;
|
|
min-height: 0 !important;
|
|
color: #fff !important;
|
|
background: rgba(35, 40, 45, 0.95) !important;
|
|
border: 0 !important;
|
|
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22) !important;
|
|
pointer-events: none !important;
|
|
}
|
|
|
|
body.edit-mode-active .editable-list-item:hover .raiju-editor-list-overlay,
|
|
body.edit-mode-active .editable-list-item.is-overlay-active .raiju-editor-list-overlay,
|
|
body.edit-mode-active .raiju-editor-list-overlay:hover {
|
|
pointer-events: auto !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-control-btn,
|
|
body.edit-mode-active .raiju-editor-drag-handle,
|
|
body.edit-mode-active .raiju-editor-group-overlay {
|
|
appearance: none !important;
|
|
box-sizing: border-box !important;
|
|
position: relative !important;
|
|
font: 600 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
|
|
letter-spacing: 0 !important;
|
|
text-transform: none !important;
|
|
text-decoration: none !important;
|
|
transform: none !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-control-btn {
|
|
display: flex !important;
|
|
align-items: center !important;
|
|
justify-content: center !important;
|
|
width: 30px !important;
|
|
height: 28px !important;
|
|
min-width: 30px !important;
|
|
min-height: 28px !important;
|
|
max-width: 30px !important;
|
|
max-height: 28px !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
border: 0 !important;
|
|
border-radius: 3px !important;
|
|
color: #fff !important;
|
|
background: transparent !important;
|
|
cursor: pointer !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-control-btn svg,
|
|
body.edit-mode-active .raiju-editor-drag-handle svg,
|
|
body.edit-mode-active .raiju-editor-group-overlay svg {
|
|
display: block !important;
|
|
width: 16px !important;
|
|
height: 16px !important;
|
|
min-width: 16px !important;
|
|
min-height: 16px !important;
|
|
fill: currentColor !important;
|
|
stroke: none;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-drag-handle {
|
|
display: flex !important;
|
|
align-items: center !important;
|
|
justify-content: center !important;
|
|
width: 30px !important;
|
|
height: 28px !important;
|
|
min-width: 30px !important;
|
|
min-height: 28px !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
color: rgba(255, 255, 255, 0.65) !important;
|
|
background: transparent !important;
|
|
cursor: grab !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-drag-handle:active {
|
|
cursor: grabbing !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-control-btn:hover,
|
|
body.edit-mode-active .raiju-editor-control-btn.is-hover,
|
|
body.edit-mode-active .raiju-editor-control-btn:focus-visible {
|
|
background: rgba(255, 255, 255, 0.22) !important;
|
|
color: #fff !important;
|
|
}
|
|
|
|
body.edit-mode-active .raiju-editor-drag-handle:hover,
|
|
body.edit-mode-active .raiju-editor-drag-handle.is-hover,
|
|
body.edit-mode-active .raiju-editor-drag-handle:focus-visible {
|
|
color: #fff !important;
|
|
}
|
|
|
|
/* Drag & Drop visual feedback */
|
|
.editable-list-item.dragging {
|
|
opacity: 0.5;
|
|
outline: 2px solid var(--editor-primary, #2563eb);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.editable-list-item.drag-over-top {
|
|
box-shadow: inset 0 3px 0 var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.editable-list-item.drag-over-bottom {
|
|
box-shadow: inset 0 -3px 0 var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
/* Add button per item (circular + at bottom edge, visible on hover) */
|
|
.list-item-add-btn {
|
|
position: absolute;
|
|
bottom: -14px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 28px;
|
|
height: 28px;
|
|
border: 2px solid var(--editor-primary, #2563eb);
|
|
background: #fff;
|
|
color: var(--editor-primary, #2563eb);
|
|
cursor: pointer;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
opacity: 0;
|
|
transition: opacity 0.2s, transform 0.2s, background 0.2s, color 0.2s;
|
|
z-index: 15;
|
|
pointer-events: none;
|
|
padding: 0;
|
|
}
|
|
|
|
.list-item-add-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
body.edit-mode-active .editable-list-item:hover .list-item-add-btn {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.list-item-add-btn:hover {
|
|
background: var(--editor-primary, #2563eb);
|
|
color: #fff;
|
|
transform: translateX(-50%) scale(1.15);
|
|
}
|
|
|
|
/* ============================================================
|
|
EDITABLE TEXT LIST (paragraph blocks)
|
|
============================================================ */
|
|
|
|
.editable-text-list-item {
|
|
position: relative;
|
|
}
|
|
|
|
.editable-text-list-item > .editable-field-html {
|
|
min-height: 1.5em;
|
|
}
|
|
|
|
/* For visitors: container is invisible */
|
|
.editable-text-list:not([data-editable-list]) {
|
|
display: contents;
|
|
}
|
|
|
|
/* Image field row (used in section editor) */
|
|
.editor-image-row {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.editor-image-row input[type="text"] {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.editor-image-row .editor-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
white-space: nowrap;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.editor-image-row .editor-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: currentColor;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.editor-image-preview {
|
|
margin-top: 15px;
|
|
padding: 15px;
|
|
background: #f9f9f9;
|
|
border-radius: 4px;
|
|
border: 1px solid #eee;
|
|
text-align: center;
|
|
}
|
|
|
|
.editor-image-preview img {
|
|
max-width: 100%;
|
|
max-height: 200px;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Audio-Manager Liste */
|
|
/* Shared toolbar styles (used by audio manager) */
|
|
.image-manager-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 15px;
|
|
margin-bottom: 20px;
|
|
padding-bottom: 15px;
|
|
border-bottom: 1px solid #eee;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.image-upload-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
cursor: pointer;
|
|
color: white;
|
|
}
|
|
|
|
.image-upload-btn svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.image-manager-info {
|
|
font-size: 13px;
|
|
color: #666;
|
|
}
|
|
|
|
.image-manager-search {
|
|
flex: 1;
|
|
min-width: 150px;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.image-search-input {
|
|
width: 100%;
|
|
padding: 8px 12px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 4px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.image-search-input:focus {
|
|
outline: none;
|
|
border-color: var(--editor-primary, #2563eb);
|
|
box-shadow: 0 0 0 2px rgba(13, 156, 144, 0.15);
|
|
}
|
|
|
|
.image-manager-container {
|
|
max-height: 450px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.image-manager-empty,
|
|
.image-manager-loading,
|
|
.image-manager-error {
|
|
text-align: center;
|
|
padding: 40px 20px;
|
|
color: #999;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-manager-toolbar {
|
|
border-bottom-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-search-input {
|
|
background: #0f0f0f;
|
|
color: #e5e5e5;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
.audio-manager-list {
|
|
max-height: 400px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
/* Shared list-row layout (used by audio manager) */
|
|
.image-list-header,
|
|
.image-list-row {
|
|
display: grid;
|
|
grid-template-columns: 40px 60px 1fr 100px 140px 120px;
|
|
gap: 10px;
|
|
padding: 8px 12px;
|
|
align-items: center;
|
|
}
|
|
|
|
.image-list-header {
|
|
background: #f5f5f5;
|
|
border-radius: 6px 6px 0 0;
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
color: #666;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.5px;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
|
|
.image-list-body {
|
|
border: 1px solid #eee;
|
|
border-top: none;
|
|
border-radius: 0 0 6px 6px;
|
|
}
|
|
|
|
.image-list-row {
|
|
border-bottom: 1px solid #eee;
|
|
cursor: pointer;
|
|
transition: background 0.15s;
|
|
}
|
|
|
|
.image-list-row:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.image-list-row:hover {
|
|
background: #f9f9f9;
|
|
}
|
|
|
|
.image-list-name {
|
|
font-size: 13px;
|
|
color: #333;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.image-list-size,
|
|
.image-list-date {
|
|
font-size: 12px;
|
|
color: #666;
|
|
}
|
|
|
|
.image-list-header-col {
|
|
user-select: none;
|
|
}
|
|
|
|
.audio-manager-list .image-list-header {
|
|
grid-template-columns: 40px 1fr 100px 140px 120px;
|
|
}
|
|
|
|
.audio-manager-list .image-list-row {
|
|
grid-template-columns: 40px 1fr 100px 140px 120px;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-list-header {
|
|
background: #141414;
|
|
color: #666;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-list-body {
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-list-row {
|
|
border-bottom-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-list-row:hover {
|
|
background: #1a1a1a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .image-list-name {
|
|
color: #e5e5e5;
|
|
}
|
|
|
|
.audio-list-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.audio-list-icon svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
/* Audio-Editor Buttons Layout */
|
|
.editor-audio-buttons {
|
|
display: flex;
|
|
gap: 10px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
/* Inline Button mit Icon links und Text rechts */
|
|
.editor-btn-inline {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.editor-btn-inline svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.editor-btn-primary.editor-btn-inline {
|
|
color: white;
|
|
}
|
|
|
|
/* Label als Button: margin-bottom entfernen */
|
|
label.editor-btn-inline {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
/* ============================================================
|
|
KONZERT-BEARBEITUNG
|
|
============================================================ */
|
|
|
|
/* "New Event" Button */
|
|
.event-add-wrapper {
|
|
margin-bottom: 20px;
|
|
text-align: center;
|
|
}
|
|
|
|
.event-add-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 36px;
|
|
padding: 0 14px;
|
|
border: 1px solid rgba(255, 255, 255, 0.18);
|
|
border-radius: 6px;
|
|
background: var(--editor-panel, #22272b);
|
|
color: var(--editor-text, #f8fafc);
|
|
font: 600 13px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
cursor: pointer;
|
|
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
|
|
transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
|
|
}
|
|
|
|
.event-add-btn:hover {
|
|
background: var(--editor-panel-hover, #30363d);
|
|
border-color: rgba(255, 255, 255, 0.32);
|
|
color: #fff;
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
/* Event card in edit mode */
|
|
.event-card-editable {
|
|
position: relative;
|
|
}
|
|
|
|
body.edit-mode-active .event-card-editable {
|
|
cursor: pointer;
|
|
}
|
|
|
|
body.edit-mode-active .event-card-editable:hover {
|
|
outline: 1px solid var(--editor-primary, #2563eb);
|
|
outline-offset: 6px;
|
|
background: rgba(13, 149, 156, 0.03);
|
|
}
|
|
|
|
/* Edit/delete buttons on event card */
|
|
.event-edit-buttons {
|
|
position: absolute;
|
|
top: 8px;
|
|
right: 8px;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 2px;
|
|
padding: 2px;
|
|
background: rgba(35, 40, 45, 0.95);
|
|
border-radius: 6px;
|
|
opacity: 0;
|
|
transition: opacity 0.2s ease;
|
|
z-index: 10;
|
|
}
|
|
|
|
body.edit-mode-active .event-card-editable:hover .event-edit-buttons {
|
|
opacity: 1;
|
|
}
|
|
|
|
.event-edit-btn,
|
|
.event-hide-btn,
|
|
.event-delete-btn {
|
|
width: 28px;
|
|
height: 28px;
|
|
border: none;
|
|
border-radius: 4px;
|
|
cursor: pointer;
|
|
font-size: 13px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: background 0.2s ease, color 0.2s ease;
|
|
background: transparent;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
}
|
|
|
|
.event-edit-btn svg,
|
|
.event-hide-btn svg,
|
|
.event-delete-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
}
|
|
|
|
.event-edit-btn:hover {
|
|
background: rgba(13, 149, 156, 0.2);
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.event-hide-btn:hover {
|
|
background: rgba(13, 149, 156, 0.2);
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.event-delete-btn:hover {
|
|
background: rgba(220, 53, 69, 0.3);
|
|
color: #dc3545;
|
|
}
|
|
|
|
/* Hidden event card styling */
|
|
body.edit-mode-active .event-card-hidden {
|
|
opacity: 0.4;
|
|
}
|
|
|
|
body.edit-mode-active .event-card-hidden .event-edit-buttons {
|
|
opacity: 1;
|
|
}
|
|
|
|
body.edit-mode-active .event-card-hidden .event-hide-btn {
|
|
color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
/* Generic editor language tabs */
|
|
.editor-lang-section,
|
|
.event-lang-section {
|
|
margin-top: 16px;
|
|
border: 1px solid #e2e2e2;
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.editor-lang-header {
|
|
display: flex;
|
|
align-items: stretch;
|
|
gap: 8px;
|
|
background: #f5f5f5;
|
|
border-bottom: 1px solid #e2e2e2;
|
|
}
|
|
|
|
.editor-lang-tabs,
|
|
.event-lang-tabs {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0;
|
|
}
|
|
|
|
.event-lang-tabs {
|
|
background: #f5f5f5;
|
|
border-bottom: 1px solid #e2e2e2;
|
|
}
|
|
|
|
.editor-lang-tab,
|
|
.event-lang-tab {
|
|
padding: 8px 16px;
|
|
border: none;
|
|
background: transparent;
|
|
color: #8a8a8a;
|
|
cursor: pointer;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
transition: color 0.2s, background 0.2s;
|
|
border-bottom: 2px solid transparent;
|
|
}
|
|
|
|
.editor-lang-tab:hover,
|
|
.event-lang-tab:hover {
|
|
color: #1a1a1a;
|
|
background: rgba(0, 0, 0, 0.04);
|
|
}
|
|
|
|
.editor-lang-tab.active,
|
|
.event-lang-tab.active {
|
|
color: var(--editor-primary, #2563eb);
|
|
border-bottom-color: var(--editor-primary, #2563eb);
|
|
background: rgba(13, 149, 156, 0.06);
|
|
}
|
|
|
|
.editor-lang-translate-btn,
|
|
.event-lang-copy-btn {
|
|
margin-left: auto;
|
|
padding: 6px 12px;
|
|
border: 1px solid #e2e2e2;
|
|
border-radius: 6px;
|
|
background: transparent;
|
|
color: #8a8a8a;
|
|
cursor: pointer;
|
|
font-size: 12px;
|
|
font-family: inherit;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
margin-right: 8px;
|
|
white-space: nowrap;
|
|
transition: color 0.15s, border-color 0.15s, background-color 0.15s;
|
|
}
|
|
|
|
.editor-lang-translate-btn {
|
|
margin: 6px 8px 6px auto;
|
|
}
|
|
|
|
.editor-lang-translate-btn:hover,
|
|
.event-lang-copy-btn:hover {
|
|
color: var(--editor-primary, #2563eb);
|
|
border-color: var(--editor-primary, #2563eb);
|
|
background: rgba(13, 149, 156, 0.06);
|
|
}
|
|
|
|
.event-lang-copy-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.editor-lang-panel,
|
|
.event-lang-panel {
|
|
padding: 16px;
|
|
}
|
|
|
|
.editor-lang-panel .editor-field + .editor-field,
|
|
.event-lang-panel .editor-field + .editor-field {
|
|
margin-top: 12px;
|
|
}
|
|
|
|
/* ============================================================
|
|
RESIZABLE MODALS
|
|
============================================================ */
|
|
|
|
.editor-modal-content {
|
|
position: absolute;
|
|
/* Resize-Eigenschaften */
|
|
min-width: 320px;
|
|
min-height: 200px;
|
|
}
|
|
|
|
.editor-modal-content.resizable {
|
|
resize: none; /* Browser-Resize deaktivieren, wir machen es selbst */
|
|
}
|
|
|
|
.modal-resize-handle {
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
width: 20px;
|
|
height: 20px;
|
|
cursor: nwse-resize;
|
|
z-index: 10;
|
|
background: transparent;
|
|
}
|
|
|
|
.modal-resize-handle::before {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 4px;
|
|
right: 4px;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-right: 2px solid #ccc;
|
|
border-bottom: 2px solid #ccc;
|
|
}
|
|
|
|
.modal-resize-handle::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 4px;
|
|
right: 4px;
|
|
width: 6px;
|
|
height: 6px;
|
|
border-right: 2px solid #ccc;
|
|
border-bottom: 2px solid #ccc;
|
|
}
|
|
|
|
.modal-resize-handle:hover::before,
|
|
.modal-resize-handle:hover::after {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
.editor-modal-content.resizing {
|
|
user-select: none;
|
|
}
|
|
|
|
/* When modal is resized, remove transform for simpler positioning */
|
|
.editor-modal-content.custom-size {
|
|
transform: none;
|
|
}
|
|
|
|
/* ============================================================
|
|
RESPONSIVE
|
|
============================================================ */
|
|
|
|
@media (max-width: 1400px) {
|
|
body.visual-editing .admin-bar-inner,
|
|
body.edit-mode-active .admin-bar-inner {
|
|
max-width: none;
|
|
padding-inline: 12px;
|
|
gap: 10px;
|
|
}
|
|
|
|
body.visual-editing .admin-bar-info,
|
|
body.edit-mode-active .admin-bar-info,
|
|
body.visual-editing .admin-bar-seo,
|
|
body.edit-mode-active .admin-bar-seo {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1200px) {
|
|
.admin-bar-inner {
|
|
max-width: none;
|
|
padding-inline: 10px;
|
|
gap: 8px;
|
|
}
|
|
|
|
.admin-bar-info {
|
|
display: none;
|
|
}
|
|
|
|
#admin-bar .admin-bar-btn,
|
|
.admin-bar-link {
|
|
padding-inline: 9px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 980px) {
|
|
.admin-bar-seo-score {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.admin-bar-inner {
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
text-align: center;
|
|
}
|
|
|
|
.admin-bar-info {
|
|
flex: none;
|
|
width: 100%;
|
|
order: 3;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.editor-modal-content {
|
|
width: 95%;
|
|
max-height: 95vh;
|
|
}
|
|
|
|
.editor-toolbar {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.editor-row {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.editor-modal-footer {
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.editor-modal-footer .editor-btn-danger {
|
|
width: 100%;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.add-section-options {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.section-add-buttons {
|
|
bottom: -30px;
|
|
}
|
|
|
|
body.edit-mode-active .editable-section:hover .section-add-buttons {
|
|
bottom: -34px;
|
|
}
|
|
}
|
|
|
|
/* ============================================================
|
|
HIDDEN ELEMENTS
|
|
============================================================ */
|
|
|
|
/* Admins (logged-in, with admin bar) always see hidden elements at reduced
|
|
opacity — not only inside Edit Mode. Otherwise a hidden block looks
|
|
identical to a visible one when the editor is closed, which misleads
|
|
admins about what visitors see. */
|
|
body.has-admin-bar [data-hidden="true"],
|
|
body.edit-mode-active [data-hidden="true"] {
|
|
opacity: 0.35;
|
|
}
|
|
|
|
body.has-admin-bar [data-hidden="true"]:hover,
|
|
body.edit-mode-active [data-hidden="true"]:hover {
|
|
opacity: 0.55;
|
|
}
|
|
|
|
/* Editable field wrapper (for text/link hide buttons) */
|
|
.editable-field-wrapper {
|
|
position: relative;
|
|
display: inline;
|
|
}
|
|
|
|
.editable-field-wrapper:has(> .btn) {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
/* Field hide button — small eye icon */
|
|
.field-hide-btn {
|
|
display: none;
|
|
position: absolute;
|
|
top: -8px;
|
|
right: -8px;
|
|
z-index: 10;
|
|
width: 22px;
|
|
height: 22px;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 50%;
|
|
background: rgba(35, 40, 45, 0.9);
|
|
color: rgba(255, 255, 255, 0.7);
|
|
cursor: pointer;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: background 0.15s, color 0.15s, opacity 0.15s;
|
|
}
|
|
|
|
.field-hide-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
body.edit-mode-active .editable-field-wrapper:hover .field-hide-btn {
|
|
display: flex;
|
|
}
|
|
|
|
/* Placeholder for empty/broken images in edit mode */
|
|
/* Wrapper that the editor adds around editable images (zero specificity, so
|
|
site styles can adapt it without !important) */
|
|
:where(.editable-image-wrapper) {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
/* The image filled a static frame via object-fit: keep filling it */
|
|
:where(.editable-image-wrapper--fill) {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
/* The image was absolutely positioned or filled a positioned frame:
|
|
the wrapper covers that frame */
|
|
:where(.editable-image-wrapper--positioned) {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: block;
|
|
}
|
|
|
|
body.edit-mode-active .editable-image-empty {
|
|
min-width: 200px;
|
|
min-height: 120px;
|
|
background: repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(128,128,128,0.08) 8px, rgba(128,128,128,0.08) 16px);
|
|
border: 2px dashed rgba(128,128,128,0.3);
|
|
border-radius: 8px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
body.edit-mode-active .editable-image-empty::after {
|
|
content: 'Click to add image';
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.85rem;
|
|
color: rgba(128,128,128,0.6);
|
|
pointer-events: none;
|
|
}
|
|
|
|
body.edit-mode-active .editable-image-wrapper:hover .field-hide-btn {
|
|
display: flex;
|
|
}
|
|
|
|
.field-hide-btn:hover {
|
|
background: rgba(255, 200, 0, 0.3);
|
|
color: #ffc800;
|
|
}
|
|
|
|
/* Always show the hide button when the element is hidden (so user can unhide) */
|
|
body.edit-mode-active [data-hidden="true"] ~ .field-hide-btn,
|
|
body.edit-mode-active .editable-field-wrapper:has([data-hidden="true"]) .field-hide-btn,
|
|
body.edit-mode-active .editable-image-wrapper:has([data-hidden="true"]) .field-hide-btn {
|
|
display: flex;
|
|
color: #ffc800;
|
|
}
|
|
|
|
/* Comparison table: label cell gets relative positioning for eye button */
|
|
body.edit-mode-active .comparison-label-with-eye {
|
|
position: relative;
|
|
padding-left: 28px;
|
|
}
|
|
|
|
/* Comparison table row hide button — positioned at left edge of label cell */
|
|
.comparison-row-hide-btn {
|
|
display: none;
|
|
position: absolute;
|
|
left: 4px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 22px;
|
|
height: 22px;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 3px;
|
|
background: transparent;
|
|
color: rgba(255, 255, 255, 0.4);
|
|
cursor: pointer;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: color 0.15s, background 0.15s;
|
|
z-index: 2;
|
|
}
|
|
|
|
.comparison-row-hide-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
body.edit-mode-active .comparison-row-hide-btn {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.comparison-row-hide-btn:hover {
|
|
color: #ffc800;
|
|
background: rgba(255, 200, 0, 0.15);
|
|
}
|
|
|
|
/* Hidden row: show button in yellow */
|
|
body.edit-mode-active tr[data-hidden="true"] .comparison-row-hide-btn {
|
|
color: #ffc800;
|
|
}
|
|
|
|
/* Comparison cell: icon visible outside edit mode, hidden in edit mode */
|
|
.cell-type-icon {
|
|
font-size: 1.1em;
|
|
}
|
|
|
|
body.edit-mode-active .cell-type-icon {
|
|
display: none;
|
|
}
|
|
|
|
/* In non-edit mode: hide editable span for yes/no cells (icon shown instead) */
|
|
td[data-cell-type="yes"] > .editable-field,
|
|
td[data-cell-type="no"] > .editable-field {
|
|
display: none;
|
|
}
|
|
|
|
/* In edit mode: show editable span only for text-type cells, below the buttons */
|
|
body.edit-mode-active td[data-cell-type="text"] > .editable-field {
|
|
display: block;
|
|
}
|
|
|
|
body.edit-mode-active .cell-text-hidden {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Placeholder for empty text fields in comparison cells */
|
|
body.edit-mode-active td[data-cell-type] .editable-field[data-empty="true"]:empty::after,
|
|
body.edit-mode-active td[data-cell-type] .editable-field[data-empty="true"]:not(.cell-text-hidden)::after {
|
|
content: 'enter text…';
|
|
color: rgba(255, 255, 255, 0.3);
|
|
font-style: italic;
|
|
pointer-events: none;
|
|
}
|
|
|
|
[data-theme="light"] body.edit-mode-active td[data-cell-type] .editable-field[data-empty="true"]::after {
|
|
color: rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* Comparison cell toggle buttons (yes / no / text) */
|
|
.cell-toggle-group {
|
|
display: none;
|
|
gap: 2px;
|
|
}
|
|
|
|
body.edit-mode-active .cell-toggle-group {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.cell-toggle-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 24px;
|
|
height: 20px;
|
|
padding: 0;
|
|
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
border-radius: 3px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
color: #a1a1aa;
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
transition: background 0.15s, color 0.15s, border-color 0.15s;
|
|
line-height: 1;
|
|
}
|
|
|
|
.cell-toggle-btn:hover {
|
|
background: rgba(255, 255, 255, 0.12);
|
|
color: #e4e4e7;
|
|
}
|
|
|
|
.cell-toggle-btn--active[data-mode="yes"] {
|
|
background: rgba(34, 197, 94, 0.2);
|
|
border-color: rgba(34, 197, 94, 0.5);
|
|
color: #22c55e;
|
|
}
|
|
|
|
.cell-toggle-btn--active[data-mode="no"] {
|
|
background: rgba(239, 68, 68, 0.2);
|
|
border-color: rgba(239, 68, 68, 0.5);
|
|
color: #ef4444;
|
|
}
|
|
|
|
.cell-toggle-btn--active[data-mode="text"] {
|
|
background: rgba(59, 130, 246, 0.2);
|
|
border-color: rgba(59, 130, 246, 0.5);
|
|
color: #3b82f6;
|
|
}
|
|
|
|
/* Light theme overrides for toggle buttons */
|
|
[data-theme="light"] .cell-toggle-btn {
|
|
border-color: rgba(0, 0, 0, 0.15);
|
|
background: rgba(0, 0, 0, 0.04);
|
|
color: #71717a;
|
|
}
|
|
|
|
[data-theme="light"] .cell-toggle-btn:hover {
|
|
background: rgba(0, 0, 0, 0.08);
|
|
color: #3f3f46;
|
|
}
|
|
|
|
/* ============================================================
|
|
DARK MODE — Admin Theme for Editor Modals
|
|
============================================================ */
|
|
|
|
[data-site-theme="dark"] .editor-modal {
|
|
color: #e5e5e5;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal-content {
|
|
background: #1a1a1a;
|
|
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal-header {
|
|
border-bottom-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal-header h3 {
|
|
color: #e5e5e5;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-close-btn {
|
|
color: #a3a3a3;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-close-btn:hover {
|
|
background: #2a2a2a;
|
|
color: #e5e5e5;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal-footer {
|
|
border-top-color: #2a2a2a;
|
|
background: #141414;
|
|
}
|
|
|
|
/* Form fields */
|
|
[data-site-theme="dark"] .editor-modal input[type="text"],
|
|
[data-site-theme="dark"] .editor-modal input[type="search"],
|
|
[data-site-theme="dark"] .editor-modal input[type="url"],
|
|
[data-site-theme="dark"] .editor-modal input[type="date"],
|
|
[data-site-theme="dark"] .editor-modal input[type="time"],
|
|
[data-site-theme="dark"] .editor-modal textarea,
|
|
[data-site-theme="dark"] .editor-modal select {
|
|
background-color: #0f0f0f;
|
|
color: #e5e5e5;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal select {
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='%23a3a3a3'%3E%3Cpath d='M5 8h14l-7 8z'/%3E%3C/svg%3E");
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal input::placeholder,
|
|
[data-site-theme="dark"] .editor-modal textarea::placeholder {
|
|
color: #666;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-modal input:focus,
|
|
[data-site-theme="dark"] .editor-modal input[type="search"]:focus,
|
|
[data-site-theme="dark"] .editor-modal textarea:focus,
|
|
[data-site-theme="dark"] .editor-modal select:focus {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
outline: none;
|
|
}
|
|
|
|
[data-site-theme="dark"] .group-icon-selected {
|
|
background: #111;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .group-icon-selected-label {
|
|
color: #e5e5e5;
|
|
}
|
|
|
|
[data-site-theme="dark"] .group-icon-option {
|
|
background: #0f0f0f;
|
|
color: #d4d4d4;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .group-icon-option:hover,
|
|
[data-site-theme="dark"] .group-icon-option:focus-visible,
|
|
[data-site-theme="dark"] .group-icon-option-active {
|
|
border-color: var(--editor-primary, #2563eb);
|
|
color: var(--editor-primary, #60a5fa);
|
|
}
|
|
|
|
[data-site-theme="dark"] .group-icon-option-active {
|
|
background: color-mix(in srgb, var(--editor-primary, #2563eb) 18%, #0f0f0f);
|
|
}
|
|
|
|
|
|
|
|
/* Secondary buttons in modals */
|
|
[data-site-theme="dark"] .editor-btn-secondary {
|
|
background: #2a2a2a;
|
|
color: #e5e5e5;
|
|
border-color: #3a3a3a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-btn-secondary:hover {
|
|
background: #333;
|
|
border-color: #444;
|
|
}
|
|
|
|
/* Danger buttons */
|
|
[data-site-theme="dark"] .editor-btn-danger {
|
|
background: #7f1d1d;
|
|
color: #fca5a5;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-btn-danger:hover {
|
|
background: #991b1b;
|
|
}
|
|
|
|
/* Event editor tabs */
|
|
[data-site-theme="dark"] .editor-lang-section,
|
|
[data-site-theme="dark"] .event-lang-section {
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-header,
|
|
[data-site-theme="dark"] .event-lang-tabs {
|
|
background: #0f0f0f;
|
|
border-bottom-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-tab,
|
|
[data-site-theme="dark"] .event-lang-tab {
|
|
color: #a3a3a3;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-tab:hover,
|
|
[data-site-theme="dark"] .event-lang-tab:hover {
|
|
color: #e5e5e5;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-tab.active,
|
|
[data-site-theme="dark"] .event-lang-tab.active {
|
|
background: #1a1a1a;
|
|
color: #60c8cd;
|
|
border-bottom-color: #60c8cd;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-translate-btn,
|
|
[data-site-theme="dark"] .event-lang-copy-btn {
|
|
color: #666;
|
|
border-color: #3a3a3a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-translate-btn:hover,
|
|
[data-site-theme="dark"] .event-lang-copy-btn:hover {
|
|
color: #60c8cd;
|
|
border-color: #60c8cd;
|
|
background: rgba(96, 200, 205, 0.08);
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-lang-panel,
|
|
[data-site-theme="dark"] .event-lang-panel {
|
|
background: #1a1a1a;
|
|
}
|
|
|
|
/* Preview areas */
|
|
[data-site-theme="dark"] .preview-container {
|
|
background: #0f0f0f;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .preview-placeholder {
|
|
color: #666;
|
|
}
|
|
|
|
/* Editor field labels and sections */
|
|
[data-site-theme="dark"] .editor-field-label {
|
|
color: #a3a3a3;
|
|
}
|
|
|
|
[data-site-theme="dark"] .editor-field-group {
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
/* Image preview in event editor */
|
|
[data-site-theme="dark"] .editor-image-preview {
|
|
background: #0f0f0f;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
/* Confirm/prompt dialogs */
|
|
[data-site-theme="dark"] .confirm-dialog-message {
|
|
color: #e5e5e5;
|
|
}
|
|
|
|
[data-site-theme="dark"] .confirm-dialog-hint {
|
|
color: #666;
|
|
}
|
|
|
|
[data-site-theme="dark"] .confirm-dialog-footer {
|
|
background: #141414;
|
|
border-top-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .prompt-dialog-label {
|
|
color: #a3a3a3;
|
|
}
|
|
|
|
[data-site-theme="dark"] .prompt-dialog-input {
|
|
background: #0f0f0f;
|
|
color: #e5e5e5;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
[data-site-theme="dark"] .html-source-textarea {
|
|
background: #0f0f0f;
|
|
color: #e5e5e5;
|
|
border-color: #2a2a2a;
|
|
}
|
|
|
|
/* News Post Inline Editing */
|
|
body.edit-mode-active .news-editable {
|
|
outline: 1px solid transparent;
|
|
outline-offset: 2px;
|
|
transition: outline-color 0.2s;
|
|
min-height: 1em;
|
|
cursor: text;
|
|
}
|
|
|
|
body.edit-mode-active .news-editable:hover,
|
|
body.edit-mode-active .news-editable:focus {
|
|
outline-color: var(--editor-primary, #2563eb);
|
|
}
|
|
|
|
body.edit-mode-active .news-editable:focus {
|
|
outline-width: 2px;
|
|
}
|
|
|
|
/* Editor-only media title label (youtube, soundcloud).
|
|
Rendered only for admins to expose the "title" metadata field inline
|
|
— not visible to visitors. */
|
|
.block-media-title--editor-only {
|
|
margin: 0.5em 0 0;
|
|
padding: 4px 8px;
|
|
font-size: 13px;
|
|
color: var(--color-text-secondary, #525252);
|
|
background: rgba(37, 99, 235, 0.04);
|
|
border-left: 2px solid var(--editor-primary, #2563eb);
|
|
border-radius: 2px;
|
|
font-style: italic;
|
|
}
|
|
.block-media-title--editor-only::before {
|
|
content: "Title: ";
|
|
font-weight: 600;
|
|
font-style: normal;
|
|
opacity: 0.7;
|
|
}
|