@import "bootstrap_reset.css";
@import "../uploader/uploader.css";

[editor-instance] [hidden] {
    display: none !important;
}

/* =============================================
    VARIABILI GLOBALI (scoped su [editor-instance])
   ============================================= */
[editor-instance] {
    /* Custom top fixed navbar [CMS] */
    --top-external-fixed-nav: 0px;
    --editor-toolbar-sticky-top: var(--top-external-fixed-nav, 0px);
    --editor-mobile-sticky-left: 0px;
    --editor-mobile-sticky-width: 100%;
    --editor-mobile-toolbar-height: 0px;
    --editor-mobile-footer-height: 0px;
    --editor-mobile-bottom-offset: 0px;
    --editor-modal-z-index: 1000;

    /* Font */
    --ff-open-sans: "Open Sans", Arial, sans-serif;
    --ff-varela-round: "Varela Round", Arial, sans-serif;

    /* Palette base (default theme) */
    --cc-base: rgb(15, 23, 42);
    --cc-bianco: rgb(255, 255, 255);
    --cc-grigio: rgb(226, 232, 240);
    --cc-bg-grigio: rgb(248, 250, 252);
    --cc-bg-nero: rgb(15, 23, 42);
    --cc-orange: rgb(14, 165, 233);
    --cc-orange-hov: rgb(2, 132, 199);
    --cc-green: rgb(22, 163, 74);
    --cc-green-hov: rgb(21, 128, 61);
    --cc-rosso: rgb(220, 38, 38);
    --cc-rosso-hov: rgb(185, 28, 28);
    --cc-giallo: rgb(250, 204, 21);
    --cc-giallo-hov: rgb(245, 158, 11);
    --cc-default: rgb(241, 245, 249);

    /* Scrollbar */
    --scroll-bar-width: 15px;

    /* Variabili semantiche editor (default) */
    --ed-font-base: var(--ff-open-sans);
    --ed-font-ui: var(--ff-varela-round);
    --ed-color-white: var(--cc-bianco);
    --ed-color-text: var(--cc-base);
    --ed-color-text-strong: rgb(31, 41, 55);
    --ed-color-text-muted: rgb(71, 85, 105);
    --ed-color-text-subtle: rgb(100, 116, 139);
    --ed-color-text-soft: rgb(148, 163, 184);
    --ed-color-border: var(--cc-grigio);
    --ed-color-border-soft: rgb(209, 213, 219);
    --ed-color-border-strong: rgb(203, 213, 225);
    --ed-color-border-ghost: rgb(219, 227, 238);
    --ed-color-surface: var(--cc-bg-grigio);
    --ed-color-surface-muted: var(--cc-default);
    --ed-color-surface-alt: rgb(249, 250, 251);
    --ed-color-accent: var(--cc-orange);
    --ed-color-accent-hover: var(--cc-orange-hov);
    --ed-color-accent-deep: rgb(3, 105, 161);
    --ed-color-accent-soft: rgb(125, 211, 252);
    --ed-color-accent-light: rgb(56, 189, 248);
    --ed-color-accent-ultra: rgb(186, 230, 253);
    --ed-color-accent-pale: rgb(219, 234, 254);
    --ed-color-success: var(--cc-green);
    --ed-color-success-hover: var(--cc-green-hov);
    --ed-color-success-dark: rgb(22, 101, 52);
    --ed-color-danger: var(--cc-rosso);
    --ed-color-danger-dark: var(--cc-rosso-hov);
    --ed-color-danger-light: rgb(252, 202, 202);
    --ed-color-danger-soft: rgb(254, 226, 226);
    --ed-color-warning: var(--cc-giallo);
    --ed-color-warning-strong: var(--cc-giallo-hov);
    --ed-color-warning-soft: rgb(253, 230, 138);
    --ed-color-warning-hover: rgb(252, 211, 77);
    --ed-color-warning-pale: rgb(254, 249, 195);
    --ed-color-warning-dark: rgb(113, 63, 18);
    --ed-color-link: rgb(29, 78, 216);
    --ed-color-link-soft: rgb(203, 213, 245);

    /* Nuove variabili per raggi di bordo, ombre, transizioni */
    --ed-radius-xs: 4px;
    --ed-radius-sm: 8px;
    --ed-radius-md: 10px;
    --ed-radius-lg: 12px;
    --ed-radius-xl: 14px;
    --ed-radius-round: 999px;

    --ed-shadow-sm: 0 8px 16px rgba(15, 23, 42, 0.12);
    --ed-shadow-md: 0 12px 24px rgba(15, 23, 42, 0.08);
    --ed-shadow-lg: 0 16px 30px rgba(15, 23, 42, 0.16);
    --ed-shadow-xl: 0 30px 80px rgba(15, 23, 42, 0.25);

    --ed-transition-fast: 0.15s ease;
    --ed-transition-normal: 0.2s ease;
    --ed-transition-slow: 0.25s ease;

    /* Spaziature comuni */
    --ed-gap-xs: 4px;
    --ed-gap-sm: 6px;
    --ed-gap-md: 8px;
    --ed-gap-lg: 12px;
    --ed-gap-xl: 16px;

    font-family: var(--ed-font-base);
    line-height: 1.5;
    color: var(--ed-color-text);
    position: relative;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-block: 0;
}

[editor-instance][data-editor-modal-host] {
    position: static;
    width: auto;
    max-width: none;
    min-width: 0;
    padding: 0;
    --editor-modal-z-index: 100000;
}

[editor-instance] *,
[editor-instance] *::before,
[editor-instance] *::after {
    box-sizing: border-box;
}

/* ================
    TEMA GINGER
   ================ */
[editor-instance][editor-theme="ginger"],
[editor-instance][data-editor-theme="ginger"] {
    --ff-open-sans: "Open Sans", sans-serif;
    --ff-varela-round: "Varela Round", sans-serif;
    --cc-base: rgb(59, 59, 59);
    --cc-bianco: rgb(255, 255, 255);
    --cc-grigio: rgb(230, 230, 230);
    --cc-bg-grigio: rgb(245, 245, 245);
    --cc-bg-nero: rgb(51, 51, 51);
    --cc-orange: rgba(242, 140, 0, 1);
    --cc-orange-hov: rgb(233, 80, 14);
    --cc-green: rgb(122, 176, 9);
    --cc-green-hov: rgb(57, 132, 57);
    --cc-rosso: rgb(205, 8, 8);
    --cc-rosso-hov: rgb(128, 5, 5);
    --cc-giallo: rgb(252, 206, 0);
    --cc-giallo-hov: rgb(214, 175, 0);
    --cc-default: rgb(245, 245, 245);

    --ed-font-base: var(--ff-open-sans);
    --ed-font-ui: var(--ff-varela-round);
    --ed-color-white: var(--cc-bianco);
    --ed-color-text: var(--cc-base);
    --ed-color-text-strong: rgb(44, 44, 44);
    --ed-color-text-muted: rgb(89, 89, 89);
    --ed-color-text-subtle: rgb(120, 120, 120);
    --ed-color-text-soft: rgb(154, 154, 154);
    --ed-color-border: var(--cc-grigio);
    --ed-color-border-soft: rgb(212, 212, 212);
    --ed-color-border-strong: rgb(160, 160, 160);
    --ed-color-border-ghost: rgb(224, 224, 224);
    --ed-color-surface: rgb(255, 242, 217);
    --ed-color-surface-muted: var(--cc-default);
    --ed-color-surface-alt: rgb(250, 250, 250);
    --ed-color-accent: var(--cc-orange);
    --ed-color-accent-hover: var(--cc-orange-hov);
    --ed-color-accent-deep: rgb(194, 92, 0);
    --ed-color-accent-soft: rgb(255, 209, 153);
    --ed-color-accent-light: rgb(255, 179, 102);
    --ed-color-accent-ultra: rgb(255, 236, 210);
    --ed-color-accent-pale: rgb(255, 245, 233);
    --ed-color-success: var(--cc-green);
    --ed-color-success-hover: var(--cc-green-hov);
    --ed-color-success-dark: rgb(52, 109, 52);
    --ed-color-danger: var(--cc-rosso);
    --ed-color-danger-dark: var(--cc-rosso-hov);
    --ed-color-danger-light: rgb(247, 180, 180);
    --ed-color-danger-soft: rgb(252, 226, 226);
    --ed-color-warning: var(--cc-giallo);
    --ed-color-warning-strong: var(--cc-giallo-hov);
    --ed-color-warning-soft: rgb(255, 236, 155);
    --ed-color-warning-hover: rgb(244, 203, 33);
    --ed-color-warning-pale: rgb(255, 247, 210);
    --ed-color-warning-dark: rgb(132, 92, 0);
    --ed-color-link: var(--cc-orange);
    --ed-color-link-soft: rgb(255, 229, 194);
}

/* ================
    TEMI DARK
   ================ */
[editor-instance][editor-theme="default-dark"],
[editor-instance][data-editor-theme="default-dark"] {
    --cc-base: rgb(226, 232, 240);
    --cc-bianco: rgb(17, 24, 39);
    --cc-grigio: rgb(51, 65, 85);
    --cc-bg-grigio: rgb(15, 23, 42);
    --cc-bg-nero: rgb(2, 6, 23);
    --cc-orange: rgb(125, 211, 252);
    --cc-orange-hov: rgb(186, 230, 253);
    --cc-green: rgb(134, 239, 172);
    --cc-green-hov: rgb(187, 247, 208);
    --cc-rosso: rgb(252, 165, 165);
    --cc-rosso-hov: rgb(254, 202, 202);
    --cc-giallo: rgb(253, 224, 71);
    --cc-giallo-hov: rgb(254, 240, 138);
    --cc-default: rgb(30, 41, 59);

    --ed-color-white: var(--cc-bianco);
    --ed-color-text: var(--cc-base);
    --ed-color-text-strong: rgb(248, 250, 252);
    --ed-color-text-muted: rgb(203, 213, 225);
    --ed-color-text-subtle: rgb(148, 163, 184);
    --ed-color-text-soft: rgb(100, 116, 139);
    --ed-color-border: rgb(51, 65, 85);
    --ed-color-border-soft: rgb(71, 85, 105);
    --ed-color-border-strong: rgb(100, 116, 139);
    --ed-color-border-ghost: rgb(30, 41, 59);
    --ed-color-surface: rgb(15, 23, 42);
    --ed-color-surface-muted: rgb(30, 41, 59);
    --ed-color-surface-alt: rgb(24, 34, 52);
    --ed-color-accent: var(--cc-orange);
    --ed-color-accent-hover: var(--cc-orange-hov);
    --ed-color-accent-deep: rgb(186, 230, 253);
    --ed-color-accent-soft: rgb(14, 116, 144);
    --ed-color-accent-light: rgb(103, 232, 249);
    --ed-color-accent-ultra: rgb(22, 78, 99);
    --ed-color-accent-pale: rgb(8, 47, 73);
    --ed-color-success: var(--cc-green);
    --ed-color-success-hover: var(--cc-green-hov);
    --ed-color-success-dark: rgb(187, 247, 208);
    --ed-color-danger: var(--cc-rosso);
    --ed-color-danger-dark: var(--cc-rosso-hov);
    --ed-color-danger-light: rgb(127, 29, 29);
    --ed-color-danger-soft: rgb(69, 10, 10);
    --ed-color-warning: var(--cc-giallo);
    --ed-color-warning-strong: var(--cc-giallo-hov);
    --ed-color-warning-soft: rgb(113, 63, 18);
    --ed-color-warning-hover: rgb(161, 98, 7);
    --ed-color-warning-pale: rgb(69, 26, 3);
    --ed-color-warning-dark: rgb(254, 240, 138);
    --ed-color-link: rgb(125, 211, 252);
    --ed-color-link-soft: rgb(14, 116, 144);

    --ed-shadow-sm: 0 8px 16px rgba(0, 0, 0, 0.34);
    --ed-shadow-md: 0 12px 24px rgba(0, 0, 0, 0.28);
    --ed-shadow-lg: 0 16px 30px rgba(0, 0, 0, 0.42);
    --ed-shadow-xl: 0 30px 80px rgba(0, 0, 0, 0.56);
}

[editor-instance][editor-theme="ginger-dark"],
[editor-instance][data-editor-theme="ginger-dark"] {
    --ff-open-sans: "Open Sans", sans-serif;
    --ff-varela-round: "Varela Round", sans-serif;
    --cc-base: rgb(244, 236, 225);
    --cc-bianco: rgb(31, 24, 18);
    --cc-grigio: rgb(92, 74, 58);
    --cc-bg-grigio: rgb(38, 29, 22);
    --cc-bg-nero: rgb(20, 16, 13);
    --cc-orange: rgb(255, 179, 102);
    --cc-orange-hov: rgb(255, 209, 153);
    --cc-green: rgb(190, 242, 100);
    --cc-green-hov: rgb(217, 249, 157);
    --cc-rosso: rgb(252, 165, 165);
    --cc-rosso-hov: rgb(254, 202, 202);
    --cc-giallo: rgb(253, 224, 71);
    --cc-giallo-hov: rgb(254, 240, 138);
    --cc-default: rgb(54, 42, 31);

    --ed-font-base: var(--ff-open-sans);
    --ed-font-ui: var(--ff-varela-round);
    --ed-color-white: var(--cc-bianco);
    --ed-color-text: var(--cc-base);
    --ed-color-text-strong: rgb(255, 250, 244);
    --ed-color-text-muted: rgb(224, 210, 192);
    --ed-color-text-subtle: rgb(186, 164, 138);
    --ed-color-text-soft: rgb(142, 118, 92);
    --ed-color-border: rgb(92, 74, 58);
    --ed-color-border-soft: rgb(112, 88, 65);
    --ed-color-border-strong: rgb(150, 113, 75);
    --ed-color-border-ghost: rgb(64, 49, 36);
    --ed-color-surface: rgb(47, 35, 25);
    --ed-color-surface-muted: rgb(54, 42, 31);
    --ed-color-surface-alt: rgb(40, 31, 24);
    --ed-color-accent: var(--cc-orange);
    --ed-color-accent-hover: var(--cc-orange-hov);
    --ed-color-accent-deep: rgb(255, 209, 153);
    --ed-color-accent-soft: rgb(154, 83, 19);
    --ed-color-accent-light: rgb(251, 146, 60);
    --ed-color-accent-ultra: rgb(91, 45, 11);
    --ed-color-accent-pale: rgb(67, 36, 13);
    --ed-color-success: var(--cc-green);
    --ed-color-success-hover: var(--cc-green-hov);
    --ed-color-success-dark: rgb(217, 249, 157);
    --ed-color-danger: var(--cc-rosso);
    --ed-color-danger-dark: var(--cc-rosso-hov);
    --ed-color-danger-light: rgb(127, 29, 29);
    --ed-color-danger-soft: rgb(69, 10, 10);
    --ed-color-warning: var(--cc-giallo);
    --ed-color-warning-strong: var(--cc-giallo-hov);
    --ed-color-warning-soft: rgb(113, 63, 18);
    --ed-color-warning-hover: rgb(161, 98, 7);
    --ed-color-warning-pale: rgb(69, 26, 3);
    --ed-color-warning-dark: rgb(254, 240, 138);
    --ed-color-link: var(--cc-orange);
    --ed-color-link-soft: rgb(154, 83, 19);

    --ed-shadow-sm: 0 8px 16px rgba(0, 0, 0, 0.32);
    --ed-shadow-md: 0 12px 24px rgba(0, 0, 0, 0.28);
    --ed-shadow-lg: 0 16px 30px rgba(0, 0, 0, 0.42);
    --ed-shadow-xl: 0 30px 80px rgba(0, 0, 0, 0.56);
}

/* ================
   UI LAYER
   ================ */
[editor-instance] .editor-ui-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 25;
}

[editor-instance] .editor-inline-toolbar {
    position: absolute;
    display: none;
    flex-direction: column;
    align-items: center;
    font-family: var(--ed-font-ui);
    z-index: 60;
    pointer-events: auto;
}

[editor-instance] .editor-inline-toolbar[data-open="true"] {
    display: inline-flex;
}

[editor-instance] .editor-inline-toolbar-row {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 4px;
    border: 1px solid var(--ed-color-border-soft);
    border-radius: var(--ed-radius-lg);
    background: var(--ed-color-white);
    box-shadow: var(--ed-shadow-lg);
}

[editor-instance] .editor-inline-toolbar button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ed-gap-sm);
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--ed-radius-sm);
    background: transparent;
    color: var(--ed-color-text-strong);
    cursor: pointer;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1;
    transition: background var(--ed-transition-fast), border-color var(--ed-transition-fast), color var(--ed-transition-fast);
}

[editor-instance] .editor-inline-toolbar button:hover,
[editor-instance] .editor-inline-toolbar button:focus-visible {
    background: var(--ed-color-accent-pale);
    color: var(--ed-color-accent-deep);
    outline: none;
}

[editor-instance] .editor-inline-toolbar button.is-active {
    background: var(--ed-color-accent);
    border-color: var(--ed-color-accent);
    color: var(--ed-color-white);
}

[editor-instance] .editor-inline-symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
}

[editor-instance] .editor-inline-symbol-italic {
    font-style: italic;
}

[editor-instance] .editor-inline-symbol-strike {
    text-decoration: line-through;
}

[editor-instance] .editor-inline-icon {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance] .editor-inline-more-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    display: none;
    min-width: 210px;
    flex-direction: column;
    gap: var(--ed-gap-xs);
    padding: var(--ed-gap-md);
    border: 1px solid var(--ed-color-border);
    border-radius: var(--ed-radius-md);
    background: var(--ed-color-white);
    box-shadow: var(--ed-shadow-lg);
    transform: translateX(-50%);
}

[editor-instance] .editor-inline-toolbar[data-more-open="true"] .editor-inline-more-menu {
    display: flex;
}

[editor-instance] .editor-inline-more-menu button {
    width: 100%;
    height: auto;
    justify-content: flex-start;
    padding: 8px 10px;
    font-size: 0.82rem;
    font-weight: 700;
    border-radius: var(--ed-radius-sm);
    background: var(--ed-color-surface);
}

[editor-instance] .editor-inline-more-menu button:hover,
[editor-instance] .editor-inline-more-menu button:focus-visible {
    background: var(--ed-color-accent-pale);
}

[editor-instance] .editor-inline-menu-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    min-width: 24px;
    color: currentColor;
    font-weight: 800;
}

[editor-instance] .editor-inline-menu-underline {
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* ================
   SCROLLBAR STILI UNIFICATI
   ================ */
[editor-instance] :is(.editor, .image-grid, .uploader-gallery, [modal-template-list], .modal-word-body textarea, .modal-code-body textarea) {
    scrollbar-width: thin;
    scrollbar-color: var(--ed-color-accent) var(--ed-color-surface);
}

[editor-instance] :is(.editor, .image-grid, .uploader-gallery, [modal-template-list], .modal-word-body textarea, .modal-code-body textarea)::-webkit-scrollbar {
    width: var(--scroll-bar-width);
    height: var(--scroll-bar-width);
}

[editor-instance] :is(.editor, .image-grid, .uploader-gallery, [modal-template-list], .modal-word-body textarea, .modal-code-body textarea)::-webkit-scrollbar-thumb {
    background: var(--ed-color-accent);
    border-radius: var(--ed-radius-round);
    border: 3px solid var(--ed-color-surface);
}

[editor-instance] :is(.editor, .image-grid, .uploader-gallery, [modal-template-list], .modal-word-body textarea, .modal-code-body textarea)::-webkit-scrollbar-track {
    background: var(--ed-color-surface);
}

/* ================
    TOOLBAR + FOOTER: STILI COMUNI PER BOTTONI E TOOLTIP
   ================ */

/* Base per tutti i bottoni di toolbar e footer (non completamente, ma per ridurre duplicazioni) */
[editor-instance] :is(.toolbar button, .editor-footer-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ed-gap-sm);
    cursor: pointer;
    border: 1px solid transparent;
    border-radius: var(--ed-radius-sm);
    background-color: var(--ed-color-white);
    color: var(--ed-color-text);
    transition: background var(--ed-transition-normal), border-color var(--ed-transition-normal), color var(--ed-transition-normal);
}

/* Tooltip comune per toolbar e footer */
[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip] {
    position: relative;
    --tooltip-left: 50%;
    --tooltip-right: auto;
    --tooltip-translate-x: -50%;
    --tooltip-shift-x: 0px;
    --tooltip-offset-y: 6px;
    --tooltip-top: auto;
    --tooltip-bottom: calc(100% + 8px);
}

[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip][data-tooltip-align="left"] {
    --tooltip-left: 0;
    --tooltip-right: auto;
    --tooltip-translate-x: 0;
}

[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip][data-tooltip-align="right"] {
    --tooltip-left: auto;
    --tooltip-right: 0;
    --tooltip-translate-x: 0;
}

[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    top: var(--tooltip-top);
    bottom: var(--tooltip-bottom);
    left: var(--tooltip-left);
    right: var(--tooltip-right);
    transform: translateX(calc(var(--tooltip-translate-x) + var(--tooltip-shift-x))) translateY(var(--tooltip-offset-y));
    opacity: 0;
    pointer-events: none;
    padding: var(--ed-gap-sm) var(--ed-gap-md);
    border-radius: var(--ed-radius-md);
    background: var(--ed-color-text);
    color: var(--ed-color-white);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.25);
    transition: opacity var(--ed-transition-fast), transform var(--ed-transition-fast);
    z-index: 50;
}

[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip]:hover::after,
[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip]:focus-visible::after {
    opacity: 1;
    transform: translateX(calc(var(--tooltip-translate-x) + var(--tooltip-shift-x))) translateY(0);
}

[editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip][data-tooltip-placement="bottom"] {
    --tooltip-top: calc(100% + 8px);
    --tooltip-bottom: auto;
    --tooltip-offset-y: -6px;
}

/* Sfondo hover per bottoni toolbar (non footer) */
[editor-instance] .toolbar button:hover {
    background-color: var(--ed-color-border);
    border-color: var(--ed-color-border-strong);
}

/* Stato attivo comune */
[editor-instance] .toolbar button.is-active {
    background: var(--ed-color-accent);
    border-color: var(--ed-color-accent);
    color: var(--ed-color-white);
}

[editor-instance] .toolbar .toolbar-primary {
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    border-color: var(--ed-color-accent);
}

[editor-instance] .toolbar .toolbar-primary:hover {
    background: var(--ed-color-accent-hover);
    border-color: var(--ed-color-accent-hover);
}

[editor-instance] .toolbar .toolbar-clean {
    background-color: var(--ed-color-warning-soft);
    border-color: var(--ed-color-border);
    color: var(--ed-color-text);
}

[editor-instance] .toolbar .toolbar-clean:hover {
    background-color: var(--ed-color-warning-hover);
    border-color: var(--ed-color-warning-strong);
}

[editor-instance] :is(.toolbar, .editor-footer) button[editor-delete-selection]:hover {
    background-color: var(--ed-color-danger);
    border-color: var(--ed-color-danger);
    color: var(--ed-color-white);
}

[editor-instance] .toolbar button.is-disabled {
    opacity: 0.45;
    cursor: not-allowed;
    background-color: var(--ed-color-surface-muted);
    border-color: transparent;
    color: var(--ed-color-text-soft);
    pointer-events: none;
}

/* Misura tooltip nascosta (necessaria per JS) */
.editor-tooltip-measure {
    display: inline-block;
    position: fixed;
    top: -9999px;
    left: -9999px;
    visibility: hidden;
    pointer-events: none;
    padding: var(--ed-gap-sm) var(--ed-gap-md);
    border-radius: var(--ed-radius-md);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    box-sizing: border-box;
}

/* Icone comuni */
[editor-instance] .toolbar .icon,
[editor-instance] .editor-footer-button .icon {
    width: 18px;
    height: 18px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance] .toolbar button[data-toolbar-tool="htmlView"] .icon {
    width: 24px;
    height: 24px;
}

/* ================
    TOOLBAR SPECIFICO
   ================ */
[editor-instance] .toolbar {
    --toolbar-fixed-right-width: 44px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ed-gap-md);
    margin-bottom: 0;
    padding: var(--ed-gap-xs);
    padding-right: calc(var(--ed-gap-xs) + var(--toolbar-fixed-right-width));
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-surface);
    box-shadow: 0 4px 8px rgba(15, 23, 42, 0.08);
    position: -webkit-sticky;
    position: sticky;
    top: var(--editor-toolbar-sticky-top, var(--top-external-fixed-nav, 0px)); /* 45px */
    z-index: 25;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

[editor-instance] .toolbar.toolbar--stacked {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: var(--ed-gap-sm);
}

[editor-instance] .toolbar-scroll {
    display: flex;
    flex-direction: column;
    gap: var(--ed-gap-sm);
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

[editor-instance] .toolbar.toolbar--stacked .toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ed-gap-sm);
    min-width: 0;
    max-width: 100%;
}

[editor-instance] .toolbar-group {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border-radius: var(--ed-radius-sm);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-white);
}

[editor-instance] .toolbar-spacer {
    flex: 1 1 auto;
    min-width: 12px;
}

[editor-instance] .toolbar button {
    padding: 4px 5px;
}

[editor-instance] .toolbar .toolbar-label {
    font-weight: 700;
    font-size: 0.85rem;
}

[editor-instance] .toolbar-fixed-right {
    position: absolute;
    top: 4px; right: 4px; bottom: 4px;
    padding: 0;
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: stretch;
}

[editor-instance] .toolbar-fixed-right button {
    height: 100%;
    padding: 0 8px;
    border-radius: var(--ed-radius-sm);
}

@media (max-width: 720px) {
    [editor-instance].is-mobile-sticky-active {
        padding-top: var(--editor-mobile-toolbar-height);
        padding-bottom: calc(var(--ed-gap-lg) + env(safe-area-inset-bottom, 0px));
    }

    [editor-instance].is-mobile-sticky-active .toolbar {
        position: fixed;
        top: calc(var(--top-external-fixed-nav, 0px) + env(safe-area-inset-top, 0px));
        left: var(--editor-mobile-sticky-left);
        width: var(--editor-mobile-sticky-width);
        max-width: var(--editor-mobile-sticky-width);
        margin: 0;
        z-index: 120;
        box-sizing: border-box;
    }

    [editor-instance].is-html-view.is-mobile-sticky-active {
        padding-top: 0;
        padding-bottom: 0;
    }

    [editor-instance].is-html-view.is-mobile-sticky-active .toolbar {
        position: -webkit-sticky;
        position: sticky;
        top: var(--editor-toolbar-sticky-top, 0px);
        left: auto;
        width: auto;
        max-width: none;
        margin-bottom: 0;
        z-index: 25;
    }

    [editor-instance].is-mobile-sticky-active .editor-footer {
        position: static;
        bottom: auto;
        left: auto;
        width: auto;
        max-width: none;
        margin-top: var(--ed-gap-sm);
        z-index: auto;
        box-sizing: border-box;
    }

    [editor-instance] .toolbar {
        --toolbar-fixed-right-width: 48px;
        flex-direction: row;
        align-items: stretch;
        flex-wrap: nowrap;
        padding-right: calc(var(--ed-gap-xs) + var(--toolbar-fixed-right-width));
        min-height: 56px;
        overflow: hidden;
    }

    [editor-instance] .toolbar-scroll {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        max-width: 100%;
        flex-direction: row;
        align-items: center;
        gap: var(--ed-gap-sm);
        overflow-x: auto;
        overflow-y: hidden;
        white-space: nowrap;
        min-height: 48px;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        touch-action: pan-x;
        scrollbar-width: thin;
        scrollbar-color: var(--ed-color-accent) var(--ed-color-surface);
    }

    [editor-instance] .toolbar-scroll::-webkit-scrollbar {
        height: 8px;
    }

    [editor-instance] .toolbar-scroll::-webkit-scrollbar-thumb {
        background: var(--ed-color-accent);
        border-radius: var(--ed-radius-round);
    }

    [editor-instance] .toolbar-scroll::-webkit-scrollbar-track {
        background: transparent;
    }

    [editor-instance] .toolbar.toolbar--stacked .toolbar-row {
        display: inline-flex;
        flex: 0 0 auto;
        flex-wrap: nowrap;
        gap: var(--ed-gap-sm);
        width: max-content;
        min-width: max-content;
        max-width: none;
    }

    [editor-instance] .toolbar-spacer {
        display: none;
    }

    [editor-instance] .toolbar-group {
        flex: 0 0 auto;
        min-height: 44px;
    }

    [editor-instance] :is(.toolbar button, .editor-footer-button) {
        min-width: 44px;
        min-height: 44px;
    }
}

/* Dropdown */
[editor-instance] .toolbar-dropdown { position: relative; display: inline-flex; }
[editor-instance] .toolbar-dropdown-trigger { gap: var(--ed-gap-sm); }
[editor-instance] .toolbar-dropdown-trigger > * { pointer-events: none; }
[editor-instance] .toolbar-caret {
    width: 13px; height: 13px;
    fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
}

[editor-instance] .toolbar-dropdown-menu {
    position: absolute;
    top: calc(100% + 8px); left: 0;
    display: none;
    flex-direction: column;
    gap: var(--ed-gap-sm);
    min-width: 160px;
    padding: var(--ed-gap-md);
    border-radius: var(--ed-radius-lg);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-white);
    box-shadow: var(--ed-shadow-lg);
    z-index: 30;
}

[editor-instance] .toolbar-dropdown-menu.is-detached {
    position: absolute;
    z-index: 110;
    display: flex;
}

[editor-instance] .toolbar-dropdown.is-open .toolbar-dropdown-menu { display: flex; }

[editor-instance] .toolbar-dropdown-menu button {
    justify-content: flex-start;
    width: 100%;
    background: var(--ed-color-surface);
    border-radius: var(--ed-radius-md);
}
[editor-instance] .toolbar-dropdown-menu button:hover {
    background: var(--ed-color-border);
}

[editor-instance] .toolbar-table-menu { min-width: 200px; }
[editor-instance] .toolbar-table-inputs {
    display: inline-flex; align-items: center; gap: var(--ed-gap-md);
    padding: var(--ed-gap-xs); border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-surface);
}
[editor-instance] .toolbar-table-inputs input {
    width: 60px; padding: 6px 8px; border-radius: var(--ed-radius-sm);
    border: 1px solid var(--ed-color-border-strong);
    font-size: 0.9rem; text-align: center;
}
[editor-instance] .toolbar-table-sep { font-weight: 700; color: var(--ed-color-text-subtle); }
[editor-instance] .toolbar-table-options { display: flex; flex-wrap: wrap; gap: var(--ed-gap-md); align-items: center; }
[editor-instance] .toolbar-check {
    display: inline-flex; align-items: center; gap: var(--ed-gap-sm);
    font-size: 0.85rem; color: var(--ed-color-text);
}
[editor-instance] .toolbar-check input { width: 14px; height: 14px; }

[editor-instance] .toolbar-image-menu {
    min-width: 236px;
    gap: var(--ed-gap-md);
}
[editor-instance] .toolbar-image-menu .toolbar-image-mode {
    display: flex;
    align-items: center;
    gap: var(--ed-gap-md);
    min-height: 40px;
}
[editor-instance] .toolbar-image-menu :is(.toolbar-image-mode, .toolbar-image-gallery-label) .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}
[editor-instance] .toolbar-image-gallery-option {
    display: flex;
    flex-direction: column;
    gap: var(--ed-gap-md);
    padding-top: var(--ed-gap-md);
    border-top: 1px solid var(--ed-color-border);
}
[editor-instance] .toolbar-image-gallery-label {
    display: flex;
    align-items: center;
    gap: var(--ed-gap-md);
    color: var(--ed-color-text);
    font-weight: 700;
}
[editor-instance] .toolbar-image-gallery-hint {
    color: var(--ed-color-text-muted);
    font-size: 0.75rem;
    line-height: 1.35;
}
[editor-instance] .toolbar-image-gallery-columns {
    display: grid;
    grid-template-columns: repeat(5, minmax(36px, 1fr));
    gap: var(--ed-gap-sm);
}
[editor-instance] .toolbar-dropdown-menu .toolbar-image-gallery-columns button {
    width: 100%;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    justify-content: center;
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    color: var(--ed-color-text);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
[editor-instance] .toolbar-dropdown-menu .toolbar-image-gallery-columns button:hover,
[editor-instance] .toolbar-dropdown-menu .toolbar-image-gallery-columns button:focus-visible {
    border-color: var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
}

@media (hover: none), (pointer: coarse) {
    [editor-instance] :is(.toolbar button, .editor-footer-button) {
        -webkit-tap-highlight-color: transparent;
    }

    [editor-instance] :is(.toolbar, .editor-footer) button[data-tooltip]::after {
        display: none;
    }
}

/* ================
   EDITOR CONTENT
   ================ */
[editor-instance] .editor-read-only-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--ed-gap-md);
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-surface);
    color: var(--ed-color-text-muted);
    font-family: var(--ed-font-ui);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    position: -webkit-sticky;
    position: sticky;
    top: var(--editor-toolbar-sticky-top, var(--top-external-fixed-nav, 0px));
    z-index: 25;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

[editor-instance] .editor-read-only-status .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance][data-editor-read-only] .editor {
    --editor-handle-gutter: 0px;
    border-bottom: 1px solid var(--ed-color-border);
    cursor: default;
    caret-color: transparent;
    -webkit-user-modify: read-only;
    user-select: text;
}

[editor-instance][data-editor-read-only] .editor * {
    user-select: text;
}

[editor-instance][data-editor-read-only] :is(
    .editor-inline-toolbar,
    .editor-block-handle,
    .editor-gallery-controls,
    [data-editor-resource-controls],
    [data-editor-anchor-nav-edit],
    [data-image-link-trigger],
    [data-caption-add],
    [data-caption-remove],
    [data-gallery-image-remove],
    [data-gallery-add],
    [data-gallery-group-add],
    [data-image-caption-trigger],
    [data-gallery-caption-trigger]
) {
    display: none !important;
}

[editor-instance][data-editor-read-only] .editor :is(input, textarea, select, button) {
    pointer-events: none;
}

[editor-instance] .editor {
    --editor-handle-gutter: 25px;
    border-left: 1px solid var(--ed-color-border);
    border-right: 1px solid var(--ed-color-border);
    min-height: 200px;
    padding-top: 25px;
    padding-inline: 15px;
    outline: 1px solid transparent;
    overflow: visible;
    height: auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    cursor: text;
    overflow-wrap: anywhere;
}

[editor-instance] .editor [data-editor-anchor-target] {
    position: relative;
    scroll-margin-top: calc(var(--top-external-fixed-nav, 0px) + 78px);
}

[editor-instance] .editor [data-editor-anchor-target]::before {
    content: "";
    position: absolute;
    top: -10px;
    left: -10px;
    width: 20px;
    height: 20px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-accent-soft);
    background-color: var(--ed-color-accent-pale);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230369a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 1 0-7l2-2a5 5 0 0 1 7 7l-1 1'/%3E%3Cpath d='M14 11a5 5 0 0 1 0 7l-2 2a5 5 0 1 1-7-7l1-1'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
    pointer-events: none;
    z-index: 3;
}

[editor-instance] .editor .editor-anchor-nav {
    display: flex;
    flex-direction: column;
    gap: var(--ed-gap-sm);
    margin: 0 0 var(--ed-gap-lg);
    padding: 10px 12px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-accent-soft);
    background: var(--ed-color-accent-pale);
    color: var(--ed-color-accent-deep);
    cursor: default;
    user-select: none;
}

[editor-instance] .editor .editor-anchor-nav-title {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

[editor-instance] .editor .editor-anchor-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ed-gap-sm);
}

[editor-instance] .editor .editor-anchor-nav-item {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    max-width: 100%;
}

[editor-instance] .editor .editor-anchor-nav-link {
    display: inline-flex;
    align-items: center;
    max-width: min(100%, 320px);
    padding: 4px 8px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-accent-soft);
    background: var(--ed-color-white);
    color: var(--ed-color-link);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[editor-instance] .editor .editor-anchor-nav-link:hover {
    border-color: var(--ed-color-accent);
    color: var(--ed-color-accent-deep);
}

[editor-instance] .editor .editor-anchor-nav-edit {
    width: 24px;
    height: 24px;
    min-width: 24px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-accent-soft);
    background: var(--ed-color-white);
    color: var(--ed-color-accent-deep);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
}

[editor-instance] .editor .editor-anchor-nav-edit .icon {
    width: 13px;
    height: 13px;
}

[editor-instance] .editor .editor-anchor-nav-edit:hover {
    background: var(--ed-color-accent-ultra);
}

@media (max-width: 720px) {
    [editor-instance] .editor .editor-anchor-nav-links {
        flex-direction: column;
    }

    [editor-instance] .editor .editor-anchor-nav-link {
        max-width: 100%;
    }
}

[editor-instance] .editor::selection,
[editor-instance] .editor *::selection {
    background: rgba(14, 165, 233, 0.35);
    color: inherit;
}

[editor-instance] .editor-columns {
    display: flex;
    align-items: flex-start;
    gap: var(--column-gap, var(--ed-gap-xl));
    flex-wrap: nowrap;
}

[editor-instance] .editor-columns .editor-column {
    min-width: 0;
    flex: 0 1 var(--column-left, 50%);
}

[editor-instance] .editor-columns .editor-column[data-column="right"] {
    flex-basis: var(--column-right, 50%);
}

@media (max-width: 720px) {
    [editor-instance] .editor-columns {
        flex-direction: column;
    }
    [editor-instance] .editor-columns .editor-column {
        flex-basis: auto;
        width: 100%;
    }
}

/* HTML View */
[editor-instance].is-html-view {
    --editor-toolbar-sticky-top: 0px;
    overflow-x: clip;
}

[editor-instance].is-html-view .toolbar {
    top: 0;
}

@supports not (overflow: clip) {
    [editor-instance].is-html-view {
        overflow-x: visible;
    }
}

[editor-instance].is-html-view .editor {
    background: var(--ed-color-warning-pale);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: var(--editor-html-font-size, 0.85rem);
    white-space: pre-wrap;
    line-height: var(--editor-html-line-height, 1.45);
    tab-size: 4;
    overflow: auto;
    overflow-wrap: anywhere;
    word-break: break-word;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    -webkit-user-modify: read-write-plaintext-only;
}

[editor-instance] .editor-html-view {
    display: block;
    position: relative;
    max-width: 100%;
    box-sizing: border-box;
}

[editor-instance].is-html-view .editor-html-view {
    display: grid;
    grid-template-columns: var(--editor-html-gutter, 44px) minmax(0, 1fr);
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    box-sizing: border-box;
}

[editor-instance] .editor-html-gutter { display: none; }

[editor-instance].is-html-view .editor-html-gutter {
    display: block;
    position: relative;
    background: var(--ed-color-surface);
    border-right: 1px solid var(--ed-color-border);
    color: var(--ed-color-text-soft);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: var(--editor-html-font-size, 0.85rem);
    line-height: var(--editor-html-line-height, 1.45);
    padding: 10px 8px 10px 16px;
    text-align: right;
    user-select: none;
    box-sizing: border-box;
    min-width: 0;
    overflow: hidden;
}

[editor-instance].is-html-view .editor-html-gutter::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 8px;
    background: var(--ed-color-border);
}

[editor-instance].is-html-view .editor-html-template-box {
    background: var(--ed-color-surface-muted);
    border: 1px solid var(--ed-color-border);
    border-radius: var(--ed-radius-sm);
    padding: 8px 10px;
    margin: 6px 0;
    white-space: pre-wrap;
    color: var(--ed-color-text);
}

[editor-instance] .editor-html-lines { white-space: pre; pointer-events: none; }

/* ================
   FOOTER EDITOR
   ================ */
[editor-instance] .editor-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ed-gap-md);
    height: 35px;
    padding: 0 8px;
    background: var(--ed-color-surface);
    border: 1px solid var(--ed-color-border);
    color: var(--ed-color-text);
    font-size: 0.85rem;
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
    z-index: 20;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

[editor-instance] .editor-footer-actions {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-md);
    min-width: 0;
    flex: 1 1 auto;
}

[editor-instance] .editor-footer-counts {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-sm);
    flex: 0 0 auto;
    font-size: 0.75rem;
    color: var(--ed-color-text-subtle);
    line-height: 1;
}

[editor-instance] .editor-footer-sep {
    width: 1px;
    height: 18px;
    background: var(--ed-color-border);
}

[editor-instance] .editor-footer-tags {
    font-size: 0.75rem;
    color: var(--ed-color-text-subtle);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 50ch;
    flex: 1 1 auto;
    min-width: 0;
}

/* Bottoni footer personalizzati (sovrascritture) */
[editor-instance] .editor-footer-button {
    width: 28px; height: 28px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-border);
    background-color: var(--ed-color-warning-soft);
    line-height: 1;
    padding: 0;
    /* l'eredità della base comune si applica già */
}

[editor-instance] .editor-footer-button:hover {
    background-color: var(--ed-color-warning-hover);
    border-color: var(--ed-color-warning-strong);
}

[editor-instance] .editor-footer-button[editor-word-paste] {
    width: auto;
    padding: 0 10px;
    gap: var(--ed-gap-sm);
    background-color: var(--ed-color-success);
    border-color: var(--ed-color-success);
    color: var(--ed-color-white);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
[editor-instance] .editor-footer-button[editor-word-paste]:hover {
    background-color: var(--ed-color-success);
    border-color: var(--ed-color-success-hover);
}

[editor-instance] .editor-footer-button[editor-select-all] {
    background-color: var(--ed-color-accent);
    border-color: var(--ed-color-accent);
    color: var(--ed-color-white);
}
[editor-instance] .editor-footer-button[editor-select-all]:hover {
    background-color: var(--ed-color-accent-hover);
    border-color: var(--ed-color-accent-hover);
}

[editor-instance] .editor-footer-button[editor-outline-toggle] {
    background-color: var(--ed-color-accent-pale);
    border-color: var(--ed-color-accent-soft);
    color: var(--ed-color-accent-deep);
}
[editor-instance] .editor-footer-button[editor-outline-toggle]:hover {
    background-color: var(--ed-color-accent-ultra);
    border-color: var(--ed-color-accent-light);
}
[editor-instance] .editor-footer-button[editor-outline-toggle].is-active {
    background-color: var(--ed-color-accent-hover);
    border-color: var(--ed-color-accent-deep);
    color: var(--ed-color-white);
}

[editor-instance] .editor-footer-button[editor-delete-selection] {
    background-color: var(--ed-color-danger);
    border-color: var(--ed-color-danger);
    color: var(--ed-color-white);
}
[editor-instance] .editor-footer-button[editor-delete-selection]:hover {
    background-color: var(--ed-color-danger-dark);
    border-color: var(--ed-color-danger-dark);
    box-shadow: 0 0 0 2px var(--ed-color-danger-light);
}

[editor-instance] .editor-footer-button:focus-visible {
    outline: 2px solid var(--ed-color-accent-light);
    outline-offset: 2px;
}

[editor-instance] .editor-footer-count {
    font-variant-numeric: tabular-nums;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    color: inherit;
}

[editor-instance] .editor-footer-count[data-character-limit-active] {
    color: var(--ed-color-text);
}

[editor-instance] .editor-footer-count[data-character-limit-reached] {
    color: var(--ed-color-danger);
    font-weight: 800;
}

[editor-instance] .editor-footer-count-sep {
    color: inherit;
    font-size: inherit;
    opacity: 0.95;
}

/* ================
    BLOCCHI EDITOR: STILI UNIFICATI
   ================ */
/* Raggruppamento dei blocchi principali */
[editor-instance] .editor :is(p, h1, h2, h3, h4, h5, h6, blockquote, pre, ul, ol, table, [data-image-block], [data-html-block], [data-columns-block]) {
    outline: 1px dashed var(--ed-color-border);
    border-radius: var(--ed-radius-xs);
    padding: 6px 6px 6px calc(6px + var(--editor-handle-gutter));
    margin: 8px 0;
    color: inherit;
}

[editor-instance] .editor [editor-empty-block] {
    background-color: rgba(239, 68, 68, 0.12);
    border-color: rgba(239, 68, 68, 0.45);
}

/* Intestazioni */
[editor-instance] .editor h1,
[editor-instance] .editor h2,
[editor-instance] .editor h3,
[editor-instance] .editor h4,
[editor-instance] .editor h5,
[editor-instance] .editor h6 {
    color: var(--ed-color-text-strong);
    font-family: var(--ed-font-base);
    /* Il livello H1-H6 definisce la gerarchia, non il grassetto. */
    font-weight: 400;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

[editor-instance] .editor h1 {
    font-size: clamp(1.75rem, 1.55rem + 0.9vw, 2.15rem);
}

[editor-instance] .editor h2 {
    font-size: clamp(1.45rem, 1.3rem + 0.6vw, 1.75rem);
}

[editor-instance] .editor h3 {
    font-size: clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem);
}

[editor-instance] .editor h4 {
    font-size: 1.1rem;
}

[editor-instance] .editor h5 {
    font-size: 1rem;
}

[editor-instance] .editor h6 {
    font-size: 0.9rem;
}

[editor-instance] .editor small {
    font-size: 0.8em;
}

/* Blocchi con line-height ereditato */
[editor-instance] .editor :is(blockquote, pre, ul, ol, table, [data-image-block], [data-html-block], [data-columns-block]) {
    line-height: inherit;
}

/* Pre e code max-width */
[editor-instance] .editor pre,
[editor-instance] .editor pre code {
    max-width: 100%;
}

/* Liste */
[editor-instance] .editor ul,
[editor-instance] .editor ol {
    padding-left: calc(26px + var(--editor-handle-gutter));
    list-style-position: outside;
}

[editor-instance] .editor ul {
    list-style-type: disc;
}

[editor-instance] .editor ol {
    list-style-type: decimal;
}

[editor-instance] .editor li {
    padding-left: calc(6px + (var(--editor-handle-gutter) / 2));
}

/* Immagine */
[editor-instance] .editor [data-image-block] {
    display: block;
    padding: 10px 10px 10px calc(5px + var(--editor-handle-gutter));
    max-width: 100%;
}

/* HTML embed */
[editor-instance] .editor [data-html-block] {
    display: block;
    position: relative;
    padding: 30px 10px 10px calc(10px + var(--editor-handle-gutter));
    background: var(--ed-color-surface-alt);
    min-height: 54px;
}

[editor-instance] .editor [data-html-block]::before {
    content: "</> HTML EMBED";
    display: inline-flex;
    align-items: center;
    position: absolute;
    top: -14px;
    left: calc(10px + var(--editor-handle-gutter));
    padding: 4px 10px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    color: var(--ed-color-text-muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    pointer-events: none;
}

[editor-instance] .editor [data-html-block] [data-html-render] {
    border-radius: var(--ed-radius-sm);
    border: 1px dashed var(--ed-color-border-soft);
    background: var(--ed-color-white);
    min-height: 34px;
    overflow: auto;
    pointer-events: none;
}

[editor-instance] .editor [data-html-block] [data-html-render] .editor-html-json-preview {
    margin: 0;
    padding: 10px 12px;
    color: var(--ed-color-text);
    font-size: 0.84rem;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

[editor-instance] .editor [data-html-block] [data-html-render] :is(iframe, img, video, embed, object) {
    max-width: 100%;
}

[editor-instance] .editor [data-html-block] [data-html-render] .editor-html-embed-responsive {
    position: relative;
    width: 100%;
    max-width: 100%;
    padding-top: var(--embed-ratio, 56.25%);
    overflow: hidden;
}

[editor-instance] .editor [data-html-block] [data-html-render] .editor-html-embed-responsive > iframe {
    border: 0;
}

[editor-instance] .editor [data-html-block] [data-html-render]:empty::before {
    content: "EMBED HTML";
    display: block;
    padding: 8px 10px;
    color: var(--ed-color-text-soft);
    font-size: 0.78rem;
    letter-spacing: 0.05em;
}

/* Colonne */
[editor-instance] .editor [data-columns-block] {
    padding-left: calc(6px + var(--editor-handle-gutter));
}

/* HR */
[editor-instance] .editor hr {
    border: none;
    border-top: 1px solid var(--ed-color-border-strong);
    margin: 14px 0;
}

/* Tabella */
[editor-instance] .editor table {
    width: 100%;
    border-collapse: collapse;
    --editor-handle-gutter: 24px;
}

[editor-instance] .editor table td,
[editor-instance] .editor table th {
    border: 1px dashed var(--ed-color-border);
    padding: 8px;
    vertical-align: top;
}

[editor-instance] .editor table :is(thead th, thead td, tfoot td, tfoot th) {
    background: var(--ed-color-surface-muted);
}

[editor-instance] .editor table td:focus-within,
[editor-instance] .editor table th:focus-within {
    outline: 2px solid var(--ed-color-accent-light);
    outline-offset: 2px;
}

/* Seleziona tutto */
[editor-instance] .editor.editor-select-all-visual > .editor-select-all-block {
    background: var(--ed-color-accent-pale);
    border-radius: var(--ed-radius-sm);
    box-shadow: inset 0 0 0 1px var(--ed-color-accent-soft);
}

/* Struttura tabella */
[editor-instance] .editor table[data-table-structure-mode="true"] {
    outline: 2px solid var(--ed-color-accent-soft);
    outline-offset: 2px;
}
[editor-instance] .editor table[data-table-structure-mode="true"] td,
[editor-instance] .editor table[data-table-structure-mode="true"] th {
    cursor: pointer;
    user-select: none;
}
[editor-instance] .editor table[data-table-structure-mode="true"] td.editor-table-struct-selected,
[editor-instance] .editor table[data-table-structure-mode="true"] th.editor-table-struct-selected {
    background: var(--ed-color-accent-pale);
    box-shadow: inset 0 0 0 2px var(--ed-color-accent);
}

/* Link */
[editor-instance] .editor a:not(.image-link) {
    color: var(--ed-color-link);
}
[editor-instance] .editor a:not(.image-link):hover {
    color: var(--ed-color-accent-hover);
}

/* ================
   BLOCCO IMMAGINE E GALLERY
   ================ */
[editor-instance] .editor [data-image-block],
[editor-instance] .editor [data-image-block] * {
    box-sizing: border-box;
}

[editor-instance] .editor [data-image-block] img {
    width: 100%;
    height: auto;
    display: block;
}

[editor-instance] .editor [data-image-block] a.image-link {
    position: relative;
    display: inline-block;
}

[editor-instance] .editor-image-block.image-layout-center > .image-media > a.image-link {
    width: var(--image-size, 100%);
    margin: 0 auto;
    display: block;
}

[editor-instance] .editor-image-block.image-layout-left > .image-media > a.image-link,
[editor-instance] .editor-image-block.image-layout-right > .image-media > a.image-link {
    width: 100%;
    display: block;
}

/* Trigger del link */
[editor-instance] .editor .image-link-trigger {
    position: absolute;
    right: 12px; bottom: 12px;
    max-width: calc(100% - 24px);
    min-height: 34px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-border-strong);
    background: rgba(255, 255, 255, 0.96);
    color: var(--ed-color-text);
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-md);
    padding: var(--ed-gap-xs) var(--ed-gap-md) var(--ed-gap-xs) var(--ed-gap-xs);
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.24);
    user-select: none;
    pointer-events: auto;
    transition: transform 0.14s ease, box-shadow 0.14s ease, background-color 0.14s ease;
}
[editor-instance] .editor .image-link-trigger:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.28);
}

[editor-instance] .editor .image-link-trigger-icon {
    width: 26px; height: 26px;
    min-width: 26px; min-height: 26px;
    border-radius: var(--ed-radius-round);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.2);
}

[editor-instance] .editor .image-link-trigger .icon {
    width: 16px; height: 16px;
    fill: none; stroke: currentColor; stroke-width: 2.2;
    stroke-linecap: round; stroke-linejoin: round;
}

[editor-instance] .editor .image-link-trigger-badge {
    display: inline-block;
    max-width: clamp(110px, 38vw, 310px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.75rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: var(--ed-color-text);
}

/* Caption comune */
[editor-instance] .editor [data-image-block] figcaption {
    margin-top: 0;
    font-size: 0.9rem;
    color: var(--ed-color-text);
    border: 1px dashed var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    padding: 8px 10px;
    border-radius: var(--ed-radius-sm);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    min-height: 28px;
    position: relative;
}

[editor-instance] .editor [data-image-block] figcaption[editor-caption-empty] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ed-color-text-soft);
}

[editor-instance] .editor [data-image-block] figcaption[editor-caption-active],
[editor-instance] .editor [data-image-block] figcaption:not([editor-caption-empty]) {
    padding-right: 32px;
}

[editor-instance] .editor [data-image-block] figcaption[editor-caption-active] [data-caption-add],
[editor-instance] .editor [data-image-block] figcaption:not([editor-caption-empty]) [data-caption-add] {
    display: none;
}

/* Bottoni caption e rimozione – stili basi condivisi */
[editor-instance] .editor [data-image-block] :is(.image-caption-add, .gallery-caption-add, .image-caption-remove, .gallery-caption-remove),
[editor-instance] .editor [data-image-block] :is(.image-caption-trigger, .gallery-caption-trigger, .gallery-image-remove, .gallery-add, .gallery-group-add) {
    position: relative;
    top: 5px;
    margin-inline: auto;
    width: 24px; height: 24px;
    border-radius: 50%;
    border: 1px dashed var(--ed-color-text-soft);
    background-color: var(--cc-bianco);
    color: var(--ed-color-text);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 0;
    line-height: 0;
}

[editor-instance] .editor [data-image-block] :is(.image-caption-remove, .gallery-caption-remove) {
    position: absolute;
    top: 0; right: -10px;
    transform: translateY(-50%);
    width: 18px; height: 18px;
    border: none;
    background: var(--ed-color-danger);
    color: var(--ed-color-white);
}

[editor-instance] .editor [data-image-block] figcaption[editor-caption-empty] [data-caption-remove] {
    display: none;
}

/* Icone SVG */
[editor-instance] .editor [data-image-block] :is(.image-caption-add, .gallery-caption-add, .image-caption-remove, .gallery-caption-remove,
    .image-caption-trigger, .gallery-caption-trigger, .gallery-image-remove, .gallery-add, .gallery-group-add) svg {
    width: 14px; height: 14px;
    fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
}

/* Layout immagine */
[editor-instance] .editor-image-block.image-layout-center { text-align: center; }
[editor-instance] .editor-image-block .image-media { min-width: 0; }
[editor-instance] .editor-image-block.image-layout-center > .image-media {
    width: var(--image-size, 100%);
    margin: 0 auto;
}
[editor-instance] .editor-image-block.image-layout-center > .image-media img {
    width: 100%;
    outline: 1px solid rgb(230,230,230);
}

[editor-instance] .editor-image-block.image-layout-left,
[editor-instance] .editor-image-block.image-layout-right {
    display: grid;
    grid-template-rows: auto;
    column-gap: var(--ed-gap-lg);
    row-gap: 0;
    align-items: start;
    width: 100%;
}

[editor-instance] .editor-image-block.image-layout-left {
    grid-template-columns: minmax(0, var(--image-size, 50%)) minmax(0, calc(100% - var(--image-size, 50%)));
}
[editor-instance] .editor-image-block.image-layout-right {
    grid-template-columns: minmax(0, calc(100% - var(--image-size, 50%))) minmax(0, var(--image-size, 50%));
}

[editor-instance] .editor-image-block.image-layout-left > .image-media {
    grid-column: 1; grid-row: 1;
}
[editor-instance] .editor-image-block.image-layout-left > [data-image-text] {
    grid-column: 2; grid-row: 1;
}
[editor-instance] .editor-image-block.image-layout-right > .image-media {
    grid-column: 2; grid-row: 1;
}
[editor-instance] .editor-image-block.image-layout-right > [data-image-text] {
    grid-column: 1; grid-row: 1;
}

[editor-instance] .editor-image-block .image-text { min-width: 0; }
[editor-instance] .editor-image-block.image-layout-left img,
[editor-instance] .editor-image-block.image-layout-right img { width: 100%; }
[editor-instance] .editor-image-block.image-layout-left figcaption,
[editor-instance] .editor-image-block.image-layout-right figcaption { width: 100%; margin-top: 0; }

/* Gallery */
[editor-instance] .editor-image-block.image-layout-gallery {
    display: flex;
    flex-direction: column;
    gap: var(--ed-gap-xl);
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-group {
    display: grid;
    grid-template-columns: repeat(var(--gallery-cols, 3), minmax(0, 1fr));
    gap: var(--ed-gap-md);
}

@media (max-width: 720px) {
    [editor-instance] .editor-image-block.image-layout-gallery .gallery-group[data-gallery-cols] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [editor-instance] .editor-image-block.image-layout-gallery .gallery-group[data-gallery-cols]::before {
        content: "Modalita " attr(data-gallery-cols) " immagini attiva: vista mobile a 2 per riga";
        grid-column: 1 / -1;
        display: block;
        padding: 6px 10px;
        border-radius: var(--ed-radius-sm);
        border: 1px solid var(--ed-color-warning-soft);
        background: var(--ed-color-warning-pale);
        color: var(--ed-color-warning-dark);
        font-size: 0.75rem;
        font-weight: 700;
        line-height: 1.25;
        letter-spacing: 0.01em;
    }
}

[editor-instance] .editor-image-block.image-layout-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

[editor-instance] .editor-image-block.image-layout-gallery > figcaption {
    grid-column: 1 / -1;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-group-add {
    align-self: center;
    width: 44px; height: 44px;
}

[editor-instance] .editor [data-image-text] { padding-left: 0; }

[editor-instance] .editor-image-block.image-layout-gallery .gallery-item {
    border: 1px dashed var(--ed-color-border);
    border-radius: var(--ed-radius-xs);
    padding: 4px;
    min-height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background: var(--ed-color-surface);
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-item[editor-gallery-item-empty] {
    background: var(--ed-color-surface);
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-add {
    width: 36px; height: 36px;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-item:not([editor-gallery-item-empty]) .gallery-add {
    display: none;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-figure {
    width: 100%;
    display: block;
    text-align: center;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    min-height: 120px;
    border-radius: var(--ed-radius-xs);
    border: 1px dashed var(--ed-color-border-strong);
    background: var(--ed-color-white);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

[editor-instance] .editor-image-block.image-layout-gallery figure.gallery-figure:has(> figcaption) .gallery-image {
    border-radius: var(--ed-radius-sm) var(--ed-radius-sm) 0 0;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-image a.image-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-caption {
    font-size: 0.85rem;
}

[editor-instance] .editor-image-block.image-layout-gallery .gallery-image-remove {
    position: absolute;
    top: 5px; right: 5px;
    width: 18px; height: 18px;
    border: none;
    background: var(--ed-color-danger);
    color: var(--ed-color-white);
}

/* Gallery controls */
[editor-instance] .editor-gallery-controls {
    position: absolute;
    top: 8px; left: 8px; right: 8px;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: var(--ed-gap-lg);
    padding: 8px 10px;
    border-radius: var(--ed-radius-lg);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-white);
    box-shadow: var(--ed-shadow-sm);
    z-index: 40;
    pointer-events: auto;
}

[editor-instance] .editor-gallery-controls.is-visible { display: flex; }

[editor-instance] .editor-gallery-controls .gallery-delete {
    border: 1px solid var(--ed-color-danger-light);
    background: var(--ed-color-danger-soft);
    color: var(--ed-color-danger-dark);
    padding: 6px 10px;
    border-radius: var(--ed-radius-md);
    cursor: pointer;
    font-weight: 600;
}

[editor-instance] .editor-gallery-controls .gallery-columns {
    display: flex; gap: var(--ed-gap-sm);
}

[editor-instance] .editor-gallery-controls .gallery-columns button {
    width: 32px; height: 32px;
    border-radius: var(--ed-radius-sm);
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    cursor: pointer;
    font-weight: 600;
}

[editor-instance] .editor-gallery-controls .gallery-columns button.is-active {
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    border-color: var(--ed-color-accent);
}

/* ================
   BLOCK HANDLE E MENU
   ================ */
[editor-instance] .editor-block-handle {
    position: absolute;
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    min-height: 34px;
    padding: 2px;
    border-radius: var(--ed-radius-xs);
    border: 1px solid var(--ed-color-border-soft);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    box-shadow: var(--ed-shadow-sm);
    transform: translateY(-50%);
    cursor: pointer;
    z-index: 30;
    pointer-events: auto;
}

[editor-instance] .editor-block-handle:not(.editor-item-handle) {
    transform: translate(-50%, -50%);
}

[editor-instance] .editor-block-handle.gallery-block-handle,
[editor-instance] .editor-block-handle.gallery-group-handle,
[editor-instance] .editor-block-handle.columns-block-handle {
    background: var(--ed-color-accent);
    border-color: var(--ed-color-accent);
    color: var(--ed-color-white);
}

[editor-instance] .editor-block-handle.gallery-group-handle {
    transform: translate(-50%, -50%);
}

[editor-instance] .editor-block-handle.gallery-item-handle {
    background: var(--ed-color-surface-muted);
    border-color: var(--ed-color-border-strong);
    color: var(--ed-color-text);
}

[editor-instance] .editor-item-handle {
    min-width: 25px;
    width: auto;
    height: 34px;
    padding: 2px;
    border-radius: var(--ed-radius-xs);
}

[editor-instance] .editor-block-handle.columns-block-handle {
    transform: translate(-50%, -50%);
}

[editor-instance] .editor-item-handle.template-item-handle { display: none !important; }

[editor-instance] .editor-block-handle.is-visible { display: inline-flex; }

[editor-instance] .editor-block-handle-label {
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
    white-space: nowrap;
    margin-bottom: 3px;
}

[editor-instance] .editor-block-handle::after {
    content: "\22EE";
    display: block;
    font-size: 11px;
    line-height: 0.7;
    letter-spacing: 0;
    opacity: 0.85;
}

/* Menu */
[editor-instance] .editor-block-menu {
    position: absolute;
    display: none;
    flex-direction: column;
    gap: var(--ed-gap-xs);
    padding: var(--ed-gap-md);
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-white);
    box-shadow: var(--ed-shadow-lg);
    z-index: 30;
    min-width: 124px;
    pointer-events: auto;
}

[editor-instance] .editor-block-menu[data-open="true"] { display: flex; }

[editor-instance] .editor-block-menu button {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--ed-gap-sm);
    padding: 6px 8px;
    border-radius: var(--ed-radius-sm);
    border: 1px solid transparent;
    background: var(--ed-color-surface);
    color: var(--ed-color-text);
    cursor: pointer;
    font-weight: 600;
    font-size: 0.78rem;
    line-height: 1.15;
}

[editor-instance] .editor-block-menu button .menu-action-icon {
    width: 13px; height: 13px;
    flex-shrink: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance] .editor-block-menu :is(.editor-block-add, .editor-block-replace, .editor-block-edit) {
    background: var(--ed-color-warning-pale);
    border-color: var(--ed-color-warning);
    color: var(--ed-color-warning-dark);
}
[editor-instance] .editor-block-menu :is(.editor-block-add, .editor-block-replace, .editor-block-edit):hover {
    background: var(--ed-color-warning);
}

[editor-instance] .editor-block-menu button:hover { background: var(--ed-color-border); }

[editor-instance] .editor-block-menu-section { display: flex; flex-direction: column; gap: var(--ed-gap-xs); }
[editor-instance] .editor-block-menu-divider { height: 1px; background: var(--ed-color-border); margin: 2px 0; }
[editor-instance] .editor-block-menu-title {
    font-size: 0.66rem; font-weight: 700; color: var(--ed-color-text-muted);
    text-transform: uppercase; letter-spacing: 0.06em;
}

[editor-instance] .editor-block-menu-hint {
    max-width: 210px;
    margin: 0;
    color: var(--ed-color-text-muted);
    font-size: 0.76rem;
    line-height: 1.35;
}

[editor-instance] .editor-block-menu input[type="range"] { width: 100%; cursor: pointer; }
[editor-instance] .editor-block-menu-size-labels {
    display: flex; justify-content: space-between; font-size: 0.66rem; color: var(--ed-color-text-soft);
}
[editor-instance] .editor-block-menu-table {
    display: inline-flex; align-items: center; gap: var(--ed-gap-sm);
}
[editor-instance] .editor-block-menu-table--size {
    flex-wrap: wrap;
}
[editor-instance] .editor-block-menu-table input {
    width: auto; padding: 5px 7px; border-radius: 7px;
    border: 1px solid var(--ed-color-border-strong); text-align: center; font-size: 0.8rem;
}
[editor-instance] .editor-block-menu-table--size input {
    width: 58px;
}
[editor-instance] .editor-block-menu-checks { display: flex; flex-wrap: wrap; gap: var(--ed-gap-md); align-items: center; }
[editor-instance] .editor-block-menu-check {
    display: inline-flex; align-items: center; gap: 5px; font-size: 0.78rem; color: var(--ed-color-text);
}
[editor-instance] .editor-block-menu-check input { width: 14px; height: 14px; }
[editor-instance] .editor-block-menu-field input { width: 100%; padding: 5px 7px; border-radius: 7px; border: 1px solid var(--ed-color-border-strong); font-size: 0.8rem; }
[editor-instance] .editor-block-menu-field.is-hidden { display: none; }

[editor-instance] .editor-block-menu-layout { display: flex; gap: var(--ed-gap-sm); }
[editor-instance] .editor-block-menu-layout button { width: 30px; height: 30px; justify-content: center; padding: 0; }
[editor-instance] .editor-block-menu-layout svg {
    width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
}
[editor-instance] .editor-block-menu-layout button.is-active { background: var(--ed-color-accent); color: var(--ed-color-white); }

[editor-instance] .editor-block-menu .gallery-columns { display: flex; gap: 5px; flex-wrap: wrap; }
[editor-instance] .editor-block-menu .gallery-columns button {
    width: 28px; height: 28px; border-radius: 7px;
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    cursor: pointer;
    font-weight: 600;
    font-size: 0.78rem;
}
[editor-instance] .editor-block-menu .gallery-columns button.is-active {
    background: var(--ed-color-accent); color: var(--ed-color-white); border-color: var(--ed-color-accent);
}

[editor-instance] .editor-block-menu .editor-block-delete { background: var(--ed-color-danger-soft); color: var(--ed-color-danger-dark); }
[editor-instance] .editor-block-menu .editor-block-delete:hover { background: var(--ed-color-danger-light); }

[editor-instance] .editor-block-menu .editor-block-anchor {
    background: #dbeafe;
    border-color: #60a5fa;
    color: #1d4ed8;
}
[editor-instance] .editor-block-menu .editor-block-anchor:hover {
    background: #bfdbfe;
    border-color: #3b82f6;
    color: #1e40af;
}
[editor-instance] .editor-block-menu .editor-block-anchor.is-active {
    background: #3b82f6;
    border-color: #2563eb;
    color: #ffffff;
}

/* ================
    MODALI: STILI COMUNI
   ================ */
[editor-instance] .modal {
    position: fixed;
    inset: 0;
    align-items: center;
    justify-content: center;
    /*padding: 4dvh 4dvw;*/
    width: 100dvw;
    height: 100dvh;
    background-color: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(6px);
    z-index: var(--editor-modal-z-index, 1000);
}

[editor-instance] .modal[modal-hidden] { display: none; }
[editor-instance] .modal:not([modal-hidden]) { display: flex; }

[editor-instance] .modal-content {
    width: 80dvw; height: 80dvh;
    position: relative;
    background-color: var(--ed-color-white);
    color: var(--ed-color-text);
    border-radius: var(--ed-radius-xl);
    border: 1px solid var(--ed-color-border);
    box-shadow: var(--ed-shadow-xl);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: var(--ed-gap-xl);
    overflow: visible;
    isolation: isolate;
    --modal-top-color: rgba(14, 165, 233, 0.18);
}

[editor-instance] .modal-content::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 148px;
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    background: linear-gradient(to bottom, var(--modal-top-color) 0%, rgba(255,255,255,0) 100%);
    pointer-events: none;
    z-index: 0;
}

[editor-instance] .modal-content::after {
    content: '';
    position: absolute;
    right: 0; bottom: 0;
    width: clamp(180px, 36vw, 420px);
    height: clamp(180px, 36vw, 420px);
    background-image: var(--modal-context-icon, none);
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: contain;
    opacity: 0.22;
    border-bottom-right-radius: inherit;
    pointer-events: none;
    z-index: 0;
    -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0) 100%);
    mask-image: linear-gradient(to top, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0) 100%);
}

[editor-instance] .modal-content > * { position: relative; z-index: 1; }

/* Icone di contesto specifiche per tipo modale */
[editor-instance] .modal[modal-image] .modal-content {
    --modal-top-color: rgba(14, 165, 233, 0.18);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='32'%20y='48'%20width='192'%20height='160'%20rx='22'/%3E%3Ccircle%20cx='88'%20cy='96'%20r='16'/%3E%3Cpath%20d='M54%20184l52-56%2034%2036%2026-30%2036%2050'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-code] .modal-content {
    --modal-top-color: rgba(99, 102, 241, 0.2);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M94%2064L56%20128l38%2064'/%3E%3Cpath%20d='M162%2064l38%2064-38%2064'/%3E%3Cpath%20d='M136%2048l-16%20160'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-link] .modal-content {
    --modal-top-color: rgba(16, 185, 129, 0.2);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M102%20154l-20%2020a40%2040%200%201%201-56-56l28-28a40%2040%200%200%201%2056%200'/%3E%3Cpath%20d='M154%20102l20-20a40%2040%200%201%201%2056%2056l-28%2028a40%2040%200%200%201-56%200'/%3E%3Cpath%20d='M94%20162l68-68'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-youtube] .modal-content         { --modal-top-color: rgba(239, 68, 68, 0.2); }
[editor-instance] .modal[modal-video-platforms] .modal-content { --modal-top-color: rgba(239, 68, 68, 0.2); }
[editor-instance] .modal[modal-vimeo] .modal-content           { --modal-top-color: rgba(26, 183, 234, 0.2); }
[editor-instance] .modal[modal-facebook-video] .modal-content  { --modal-top-color: rgba(24, 119, 242, 0.2); }
[editor-instance] .modal[modal-text-color] .modal-content {
    --modal-top-color: rgba(245, 158, 11, 0.2);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M70%20196l46-136h24l46%20136'/%3E%3Cpath%20d='M88%20146h80'/%3E%3Cpath%20d='M182%20176c0-16%2016-24%2016-40a16%2016%200%200%200-32%200c0%2016%2016%2024%2016%2040z'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-text-bg] .modal-content {
    --modal-top-color: rgba(239, 68, 68, 0.2);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M48%20198h160'/%3E%3Cpath%20d='M82%20162l62-62%2030%2030-62%2062-36%208%206-38z'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-word] .modal-content {
    --modal-top-color: rgba(37, 99, 235, 0.2);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M74%2034h84l42%2042v146H74z'/%3E%3Cpath%20d='M158%2034v42h42'/%3E%3Cpath%20d='M96%20118l12%2054%2018-40%2018%2040%2012-54'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-template] .modal-content {
    --modal-top-color: rgba(20, 184, 166, 0.2);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='34'%20y='44'%20width='188'%20height='168'%20rx='18'/%3E%3Cpath%20d='M34%2094h188'/%3E%3Cpath%20d='M116%2094v118'/%3E%3Cpath%20d='M116%20146h106'/%3E%3C/g%3E%3C/svg%3E");
}
[editor-instance] .modal[modal-paste-list-conflict] .modal-content {
    --modal-top-color: rgba(16, 185, 129, 0.16);
    --modal-context-icon: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20256%20256'%3E%3Cg%20fill='none'%20stroke='%230ea5e9'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M76%2072h108'/%3E%3Cpath%20d='M76%20128h108'/%3E%3Cpath%20d='M76%20184h108'/%3E%3Ccircle%20cx='52'%20cy='72'%20r='10'/%3E%3Ccircle%20cx='52'%20cy='128'%20r='10'/%3E%3Ccircle%20cx='52'%20cy='184'%20r='10'/%3E%3C/g%3E%3C/svg%3E");
}

@media (max-width: 720px) {
    [editor-instance] .modal-content::before { height: 112px; }
    [editor-instance] .modal-content::after {
        right: 0; bottom: 0;
        width: clamp(140px, 46vw, 260px);
        height: clamp(140px, 46vw, 260px);
        opacity: 0.2;
    }
}

/* Pulsante chiusura modale */
[editor-instance] .close {
    position: absolute;
    top: -22px;
    right: -22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: var(--ed-radius-round);
    border: 0;
    appearance: none;
    --modal-close-bg: var(--ed-color-accent);
    --modal-close-bg-hover: var(--ed-color-accent-hover);
    --modal-close-focus-ring: var(--ed-color-accent-soft);
    background: var(--modal-close-bg);
    color: var(--ed-color-white);
    cursor: pointer;
    font-size: 0;
    line-height: 1;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.22);
    transition: background var(--ed-transition-fast), transform var(--ed-transition-fast), box-shadow var(--ed-transition-fast);
    z-index: 3;
}

[editor-instance] .close:hover {
    background: var(--modal-close-bg-hover);
}

[editor-instance] .close:focus-visible {
    outline: 3px solid var(--ed-color-white);
    outline-offset: 3px;
    box-shadow: 0 0 0 6px var(--modal-close-focus-ring), 0 10px 22px rgba(15, 23, 42, 0.22);
}

[editor-instance] .close::before {
    content: '';
    width: 20px;
    height: 20px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cg%20fill='none'%20stroke='black'%20stroke-width='2.3'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%206l12%2012'/%3E%3Cpath%20d='M18%206L6%2018'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cg%20fill='none'%20stroke='black'%20stroke-width='2.3'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%206l12%2012'/%3E%3Cpath%20d='M18%206L6%2018'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}

[editor-instance] .modal .close > .icon {
    display: none;
}

@media (max-width: 720px) {
    [editor-instance] .close {
        top: -17px;
        right: -10px;
        width: 34px;
        height: 34px;
    }

    [editor-instance] .close::before {
        width: 16px;
        height: 16px;
    }
}

/* Icone nei modali */
[editor-instance] .modal .icon {
    width: 18px; height: 18px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Intestazione modale */
[editor-instance] .modal-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--ed-gap-xs);
    padding: 0;
    margin: 2px 0 8px;
    border: 0;
    background: transparent;
    max-width: calc(100% - 64px);
}

[editor-instance] .modal-heading-main { display: inline-flex; align-items: center; justify-content: flex-start; gap: var(--ed-gap-md); min-width: 0; }
[editor-instance] .modal-heading-title-wrap { display: inline-flex; align-items: center; gap: var(--ed-gap-md); min-width: 0; }

[editor-instance] .modal-heading-icon {
    width: 22px; height: 22px; flex: 0 0 22px;
    display: block;
    fill: none;
    stroke: var(--ed-color-text);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance] [data-modal-heading-title] {
    margin: 0;
    color: var(--ed-color-text);
    font-family: var(--ed-font-ui);
    font-size: clamp(1.05rem, 0.98rem + 0.32vw, 1.24rem);
    line-height: 1.14;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

[editor-instance] [data-modal-heading-description] {
    margin: 0;
    color: var(--ed-color-text-muted);
    line-height: 1.45;
    font-size: 0.75rem;
    letter-spacing: 0.035em;
    text-transform: uppercase;
    padding-left: 30px;
}

/* Toggle intestazione */
[editor-instance] .modal-heading-toggle {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 16px; height: 16px; min-width: 16px; min-height: 16px;
    padding: 0 !important;
    margin: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: 0;
    color: var(--ed-color-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex: 0 0 16px;
    transition: color var(--ed-transition-normal);
}

[editor-instance] .modal-heading-toggle:hover { color: var(--ed-color-accent); }
[editor-instance] .modal-heading-toggle .icon {
    width: 15px; height: 15px;
    transform: rotate(-90deg);
    transition: transform var(--ed-transition-normal), color var(--ed-transition-normal);
}
[editor-instance] .modal-heading-toggle[aria-expanded="true"] .icon { transform: rotate(0deg); }
[editor-instance] .modal-heading-toggle:focus-visible { outline: 0; color: var(--ed-color-accent); }

/* Tabs */
[editor-instance] .tabs {
    display: flex; flex-wrap: wrap;
    gap: var(--ed-gap-md);
    padding: var(--ed-gap-sm);
    border-radius: var(--ed-radius-lg);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-surface);
}

[editor-instance] .tab-link {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-md);
    padding: 8px 16px;
    cursor: pointer;
    border-radius: var(--ed-radius-md);
    border: 1px solid transparent;
    background: transparent;
    color: var(--ed-color-text);
}

[editor-instance] .tab-link.active {
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    border-color: var(--ed-color-accent);
}

@media (max-width: 720px) {
    [editor-instance] .modal[modal-image] .tabs {
        flex-wrap: nowrap;
        justify-content: space-between;
    }

    [editor-instance] .modal[modal-image] .tabs .tab-link {
        flex: 1 1 0;
        justify-content: center;
        gap: 0;
        padding: 8px 6px;
    }

    [editor-instance] .modal[modal-image] .tabs .tab-link span {
        display: none;
    }

    [editor-instance] .modal[modal-image] .tabs .tab-link .icon {
        width: 36px;
        height: 36px;
    }
}

[editor-instance] .tab-content { display: none; min-height: 0; }

[editor-instance] .tab-content.active {
    display: flex;
    gap: var(--ed-gap-lg);
    align-items: center;
}

[editor-instance] .tab-content[modal-tab="url"].active,
[editor-instance] .tab-content[modal-tab="server"].active,
[editor-instance] .tab-content[modal-tab="uploader"].active {
    flex-direction: column;
    align-items: stretch;
}

[editor-instance] .tab-content[modal-tab="uploader"].active { flex: 1; min-height: 0; }
[editor-instance] .tab-content[modal-tab="server"] { width: 100%; }
[editor-instance] .tab-content[modal-tab="uploader"] { width: 100%; min-height: 0; }
[editor-instance] .tab-content[modal-tab="server"] input[type="text"] {
    width: 100%; flex: 0 0 auto; box-sizing: border-box;
}

/* ================
    MODALI SPECIFICI
   ================ */

/* --- IMMAGINI --- */
[editor-instance] :is(
    .modal-image-search,
    .modal-image-url-form,
    .modal-youtube-form,
    .modal-vimeo-form,
    .modal-facebook-video-form
) {
    display: flex;
    align-items: stretch;
    gap: 0;
}

[editor-instance] .modal-image-search-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
}

[editor-instance] :is(
    .modal-image-search,
    .modal-image-url-form,
    .modal-youtube-form,
    .modal-vimeo-form,
    .modal-facebook-video-form
) .modal-image-search-field > input[type="text"] {
    flex: 1 1 auto;
    margin: 0;
    padding-right: 38px;
    border-right: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

[editor-instance] :is(
    .modal-image-search > .modal-image-search-btn,
    .modal-image-url-form > .modal-image-search-btn,
    .modal-youtube-form > .modal-image-search-btn,
    .modal-vimeo-form > .modal-image-search-btn,
    .modal-facebook-video-form > .modal-image-search-btn
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-content: center;
    gap: var(--ed-gap-md);
    flex: 0 0 auto;
    color: var(--cc-bianco);
    margin-left: 0;
    padding: 10px 16px;
    white-space: nowrap;
    border-left: 0;
    border: none;
    border-radius: var(--ed-radius-md);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

[editor-instance] :is(
    .modal-image-search > .modal-image-search-btn,
    .modal-image-url-form > .modal-image-search-btn,
    .modal-youtube-form > .modal-image-search-btn,
    .modal-vimeo-form > .modal-image-search-btn,
    .modal-facebook-video-form > .modal-image-search-btn
) .icon {
    width: 20px;
    height: 20px;
}

[editor-instance] .modal-image-url-header {
    display: flex; flex-direction: column; gap: var(--ed-gap-xs);
}
[editor-instance] .modal-image-url-header > h3 { margin: 0; font-size: 1.05rem; color: var(--ed-color-text); }
[editor-instance] .modal-image-url-header > p { margin: 0; color: var(--ed-color-text-muted); font-size: 0.92rem; line-height: 1.4; }

[editor-instance] .modal-image-url-preview {
    display: flex; flex-direction: column; gap: var(--ed-gap-md);
}

/* --- YOUTUBE/VIDEO --- */
[editor-instance] .modal-youtube-content { width: min(92vw, 980px); height: auto; max-height: 90dvh; }
[editor-instance] .modal-youtube-body { display: flex; flex-direction: column; gap: var(--ed-gap-lg); min-height: 0; }

[editor-instance] .modal-youtube-form > button.modal-image-search-btn {
    background: var(--ed-color-danger); border-color: var(--ed-color-danger);
}
[editor-instance] .modal-youtube-form > button.modal-image-search-btn:hover {
    background: var(--ed-color-danger-dark); border-color: var(--ed-color-danger-dark);
}
[editor-instance] .modal-vimeo-form > button.modal-image-search-btn {
    background: #1ab7ea; border-color: #1ab7ea;
}
[editor-instance] .modal-vimeo-form > button.modal-image-search-btn:hover {
    background: #1298c2; border-color: #1298c2;
}
[editor-instance] .modal-facebook-video-form > button.modal-image-search-btn {
    background: #1877f2; border-color: #1877f2;
}
[editor-instance] .modal-facebook-video-form > button.modal-image-search-btn:hover {
    background: #145ec3; border-color: #145ec3;
}

[editor-instance] .modal-youtube-preview { display: flex; flex-direction: column; gap: var(--ed-gap-md); }
[editor-instance] .modal-youtube-preview-actions { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

[editor-instance] .modal-youtube-action-card--embed {
    border-color: rgba(239, 68, 68, 0.35);
    background: linear-gradient(180deg, rgba(239, 68, 68, 0.12) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-youtube-action-card--embed .modal-image-url-action-bg-icon { color: var(--ed-color-danger); }
[editor-instance] .modal-youtube-action-embed { background: var(--ed-color-danger); border-color: var(--ed-color-danger); }
[editor-instance] .modal-youtube-action-embed:hover { background: var(--ed-color-danger-dark); border-color: var(--ed-color-danger-dark); }

[editor-instance] .modal-youtube-action-card--thumbnail {
    border-color: var(--ed-color-accent-soft);
    background: linear-gradient(180deg, var(--ed-color-accent-pale) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-youtube-action-card--thumbnail .modal-image-url-action-bg-icon { color: var(--ed-color-accent); }
[editor-instance] .modal-youtube-action-thumbnail { background: var(--ed-color-accent); border-color: var(--ed-color-accent); }
[editor-instance] .modal-youtube-action-thumbnail:hover { background: var(--ed-color-accent-hover); border-color: var(--ed-color-accent-hover); }

/* Altri video provider */
[editor-instance] .modal-video-platforms-provider {
    display: inline-flex; align-items: center; gap: var(--ed-gap-sm); width: fit-content;
    padding: 4px 8px; border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-accent-soft);
    background: var(--ed-color-accent-pale);
    color: var(--ed-color-accent);
    font-size: 0.74rem; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase;
}
[editor-instance] .modal-video-platforms-footer { display: flex; flex-direction: column; gap: var(--ed-gap-sm); }
[editor-instance] .modal-video-platforms-status { margin: 0; min-height: 1.2em; }
[editor-instance] .modal-video-platforms-provider[hidden] { display: none !important; }

[editor-instance] .modal[modal-video-platforms][data-provider="vimeo"] :is(.modal-video-platforms-action-embed, .modal-video-platforms-action-thumbnail) {
    background: #1ab7ea; border-color: #1ab7ea;
}
[editor-instance] .modal[modal-video-platforms][data-provider="vimeo"] :is(.modal-video-platforms-action-embed, .modal-video-platforms-action-thumbnail):hover {
    background: #1298c2; border-color: #1298c2;
}
[editor-instance] .modal[modal-video-platforms][data-provider="facebook"] :is(.modal-video-platforms-action-embed, .modal-video-platforms-action-thumbnail) {
    background: #1877f2; border-color: #1877f2;
}
[editor-instance] .modal[modal-video-platforms][data-provider="facebook"] :is(.modal-video-platforms-action-embed, .modal-video-platforms-action-thumbnail):hover {
    background: #145ec3; border-color: #145ec3;
}
[editor-instance] .modal[modal-video-platforms][data-provider="dailymotion"] :is(.modal-video-platforms-action-embed, .modal-video-platforms-action-thumbnail) {
    background: #0066dc; border-color: #0066dc;
}
[editor-instance] .modal[modal-video-platforms][data-provider="dailymotion"] :is(.modal-video-platforms-action-embed, .modal-video-platforms-action-thumbnail):hover {
    background: #0052b0; border-color: #0052b0;
}

/* Vimeo specific */
[editor-instance] .modal-vimeo-action-card--embed {
    border-color: rgba(26, 183, 234, 0.35);
    background: linear-gradient(180deg, rgba(26, 183, 234, 0.12) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-vimeo-action-card--embed .modal-image-url-action-bg-icon { color: #1ab7ea; }
[editor-instance] .modal-vimeo-action-embed { background: #1ab7ea; border-color: #1ab7ea; }
[editor-instance] .modal-vimeo-action-embed:hover { background: #1298c2; border-color: #1298c2; }
[editor-instance] .modal-vimeo-action-card--thumbnail {
    border-color: rgba(26, 183, 234, 0.3);
    background: linear-gradient(180deg, rgba(26, 183, 234, 0.1) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-vimeo-action-card--thumbnail .modal-image-url-action-bg-icon { color: #1ab7ea; }
[editor-instance] .modal-vimeo-action-thumbnail { background: #1ab7ea; border-color: #1ab7ea; }
[editor-instance] .modal-vimeo-action-thumbnail:hover { background: #1298c2; border-color: #1298c2; }

/* Facebook video specific */
[editor-instance] .modal-facebook-video-action-card--embed {
    border-color: rgba(24, 119, 242, 0.35);
    background: linear-gradient(180deg, rgba(24, 119, 242, 0.12) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-facebook-video-action-card--embed .modal-image-url-action-bg-icon { color: #1877f2; }
[editor-instance] .modal-facebook-video-action-embed { background: #1877f2; border-color: #1877f2; }
[editor-instance] .modal-facebook-video-action-embed:hover { background: #145ec3; border-color: #145ec3; }
[editor-instance] .modal-facebook-video-action-card--thumbnail {
    border-color: rgba(24, 119, 242, 0.3);
    background: linear-gradient(180deg, rgba(24, 119, 242, 0.1) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-facebook-video-action-card--thumbnail .modal-image-url-action-bg-icon { color: #1877f2; }
[editor-instance] .modal-facebook-video-action-thumbnail { background: #1877f2; border-color: #1877f2; }
[editor-instance] .modal-facebook-video-action-thumbnail:hover { background: #145ec3; border-color: #145ec3; }

/* Card preview youtube */
[editor-instance] .modal-youtube-card-preview {
    width: 100%; aspect-ratio: 16 / 9;
    border: 1px solid var(--ed-color-border);
    border-radius: var(--ed-radius-md);
    overflow: hidden;
    background: var(--ed-color-white);
}
[editor-instance] .modal-youtube-card-preview iframe,
[editor-instance] .modal-youtube-card-preview img {
    width: 100%; height: 100%; border: 0; display: block;
}
[editor-instance] .modal-youtube-card-preview--image img { object-fit: cover; }

@media (max-width: 720px) {
    [editor-instance] .modal-youtube-content { width: min(96vw, 980px); }
}

/* Actions cards */
[editor-instance] .modal-image-url-preview[hidden] { display: none !important; }
[editor-instance] .modal-image-url-preview[data-preview-busy] { opacity: 0.82; }
[editor-instance] .modal-image-url-preview-gallery { grid-template-columns: minmax(160px, 240px); max-height: none; overflow: visible; }
[editor-instance] .modal-image-url-preview-item { max-width: 240px; }
[editor-instance] .modal-image-url-preview-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--ed-gap-lg); }

[editor-instance] .modal-image-url-action-card {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; gap: var(--ed-gap-md);
    min-height: 152px;
    padding: var(--ed-gap-xl);
    border-radius: var(--ed-radius-xl);
    border: 1px solid var(--ed-color-border-soft);
    background: linear-gradient(180deg, var(--ed-color-surface-alt) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-image-url-action-card > * { position: relative; z-index: 1; }
[editor-instance] .modal-image-url-action-card h4 {
    margin: 0; color: var(--ed-color-text-strong); font-size: 0.95rem;
    letter-spacing: 0.03em; text-transform: uppercase;
}
[editor-instance] .modal-image-url-action-card p {
    margin: 0; color: var(--ed-color-text-muted); font-size: 0.85rem; line-height: 1.45; max-width: 92%;
}
[editor-instance] .modal-image-url-action-card--external {
    border-color: var(--ed-color-accent-soft);
    background: linear-gradient(180deg, var(--ed-color-accent-pale) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-image-url-action-card--upload {
    border-color: rgba(34, 197, 94, 0.34);
    background: linear-gradient(180deg, rgba(34, 197, 94, 0.12) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-image-url-action-bg-icon {
    position: absolute; right: -8px; bottom: -8px;
    width: 92px; height: 92px; pointer-events: none;
    color: var(--ed-color-accent); opacity: 0.14;
    fill: none; stroke: currentColor; stroke-width: 1.9;
    stroke-linecap: round; stroke-linejoin: round; z-index: 0;
}
[editor-instance] .modal-image-url-action-card--upload .modal-image-url-action-bg-icon { color: var(--ed-color-success); }
[editor-instance] .modal-image-url-action-card > button.modal-image-search-btn.modal-image-search-btn {
    display: inline-flex;
    align-items: center;
    width: 100%; margin-top: auto; justify-content: center;
    gap: var(--ed-gap-md);
    padding: 10px 16px;
    color: var(--ed-color-white);
    font-weight: 700;
    border-radius: var(--ed-radius-md);
    border: none;
    transition: all .25s ease-in-out;
}
[editor-instance] .modal-image-url-action-card > button.modal-image-search-btn .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}
[editor-instance] .modal-image-url-action-card > button.modal-image-search-btn:disabled {
    opacity: 0.56; cursor: not-allowed; filter: saturate(0.7);
}
[editor-instance] .modal-image-url-upload-progress { width: 100%; min-height: 12px; }
[editor-instance] .modal-image-url-upload-progress[hidden] { display: none !important; }

[editor-instance] .tab-content button.modal-image-url-action-upload {
    background: var(--ed-color-success); border-color: var(--ed-color-success);
}
[editor-instance] .tab-content button.modal-image-url-action-upload:hover {
    background: var(--ed-color-success-hover); border-color: var(--ed-color-success-hover);
}

[editor-instance] .modal-paste-list-content {
    width: min(92vw, 860px);
    height: auto;
    max-height: 90dvh;
}
[editor-instance] .modal-paste-list-actions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--ed-gap-lg);
}
[editor-instance] .modal-paste-list-action-card--plain {
    border-color: var(--ed-color-accent-soft);
    background: linear-gradient(180deg, var(--ed-color-accent-pale) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-paste-list-action-card--semantic {
    border-color: rgba(34, 197, 94, 0.34);
    background: linear-gradient(180deg, rgba(34, 197, 94, 0.12) 0%, var(--ed-color-white) 72%);
}
[editor-instance] .modal-paste-list-action-card > button.modal-image-search-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-md);
    padding: 10px 16px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    cursor: pointer;
    width: 100%;
    margin-top: auto;
    justify-content: center;
}
[editor-instance] .modal-paste-list-action-card--semantic > button.modal-image-search-btn {
    border-color: var(--ed-color-success);
    background: var(--ed-color-success);
}
[editor-instance] .modal-paste-list-action-card--semantic > button.modal-image-search-btn:hover {
    border-color: var(--ed-color-success-hover);
    background: var(--ed-color-success-hover);
}
[editor-instance] .modal-paste-list-action-card--plain > button.modal-image-search-btn:hover {
    border-color: var(--ed-color-accent-hover);
    background: var(--ed-color-accent-hover);
}
[editor-instance] .modal-paste-list-action-card > button.modal-image-search-btn:disabled {
    opacity: 0.52;
    cursor: not-allowed;
    filter: saturate(0.5);
}
[editor-instance] .modal-paste-list-footer {
    display: flex;
    justify-content: flex-end;
}

/* Input e pulsanti nei modali */
[editor-instance] .modal-content input[type="text"] {
    flex: 1;
    padding: 12px 14px;
    border-radius: var(--ed-radius-md); /* border-radius overwritten in some children */
    border: 1px solid var(--ed-color-link-soft);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    font-size: 0.95rem;
    box-sizing: border-box;
}
[editor-instance] .modal-content [modal-image-filter] { width: 100%; }
[editor-instance] .modal-content input[type="text"]::placeholder { color: var(--ed-color-text-muted); }

[editor-instance] .tab-content button:not(.modal-heading-toggle) {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-md);
    padding: 10px 14px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    cursor: pointer;
}
[editor-instance] .tab-content button:not(.modal-heading-toggle) span {
    font-weight: 600; letter-spacing: 0.01em;
}

/* Pulsante clear */
[editor-instance] :is(.tab-content, .modal-youtube-form) button.modal-image-clear {
    position: absolute;
    top: 50%; right: 10px;
    transform: translateY(-50%);
    width: 22px; height: 22px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-border);
    color: var(--ed-color-text-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    z-index: 2;
    min-width: 22px; min-height: 22px;
    line-height: 1;
}
[editor-instance] :is(.tab-content, .modal-youtube-form) button.modal-image-clear[hidden] { display: none !important; }
[editor-instance] :is(.tab-content, .modal-youtube-form) button.modal-image-clear .icon { width: 12px; height: 12px; }
[editor-instance] :is(.tab-content, .modal-youtube-form) button.modal-image-clear:hover { background: var(--ed-color-border-strong); }

/* Stili specifici per input con clear */
[editor-instance] .tab-content .modal-image-search-field input[modal-image-filter] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: 0;
    padding-right: 38px;
    margin: 0;
    flex: 1 1 auto;
}
[editor-instance] .tab-content button.modal-image-search-btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-left: 0;
    margin-left: 0;
    padding: 10px 16px;
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 720px) {
    [editor-instance] .modal-image-url-form > .modal-image-url-submit {
        min-width: 44px;
        padding: 10px 12px;
        gap: 0;
    }

    [editor-instance] .modal-image-url-form > .modal-image-url-submit span {
        display: none;
    }
}

/* --- MODAL CODE / WORD / TEMPLATE --- */
[editor-instance] .modal-code-body,
[editor-instance] .modal-word-body,
[editor-instance] .modal-template-body {
    display: flex; flex-direction: column; gap: var(--ed-gap-lg); flex: 1; min-height: 0;
}
[editor-instance] .modal-code-body > h3,
[editor-instance] .modal-word-body > h3,
[editor-instance] .modal-template-body > h3 { margin: 0; font-size: 1.1rem; color: var(--ed-color-text); }
[editor-instance] .modal-code-body > p,
[editor-instance] .modal-word-body > p,
[editor-instance] .modal-template-body > p { margin: 0; color: var(--ed-color-text-muted); line-height: 1.5; }

[editor-instance] .modal-code-body textarea,
[editor-instance] .modal-word-body textarea {
    flex: 1; min-height: 220px;
    padding: var(--ed-gap-xl);
    border-radius: var(--ed-radius-lg);
    border: 1px solid var(--ed-color-link-soft);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    font-size: 0.95rem;
    font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    resize: vertical;
    width: auto;
}

[editor-instance] .modal-word-body textarea { min-height: 320px; }

[editor-instance] .modal-code-body button:not(.modal-heading-toggle),
[editor-instance] .modal-word-body button:not(.modal-heading-toggle) {
    align-self: flex-start;
    padding: 10px 16px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
}

[editor-instance] .modal[modal-word] .modal-header h3,
[editor-instance] .modal[modal-template] .modal-header h3 {
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
[editor-instance] .modal[modal-word] .modal-header p,
[editor-instance] .modal[modal-template] .modal-header p {
    color: var(--ed-color-text-strong);
}

[editor-instance] .modal[modal-word] .tab-content.active {
    align-items: stretch; flex-direction: column;
}

/* Template table */
[editor-instance] .template-table {
    border: 1px solid var(--ed-color-border);
    border-radius: var(--ed-radius-lg);
    background: var(--ed-color-white);
    overflow: auto;
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(140px, 0.9fr) minmax(220px, 2fr) minmax(110px, auto) minmax(120px, auto);
    min-height: 0;
}
[editor-instance] .template-row { display: contents; }
[editor-instance] .template-header {
    background: var(--ed-color-surface);
    font-weight: 700;
    color: var(--ed-color-text);
    align-items: center;
}
[editor-instance] .template-header .template-cell { line-height: 1.2; }
[editor-instance] .template-cell {
    font-size: 0.9rem; color: inherit; line-height: 1.4;
    padding: 6px 12px;
    border-top: 1px solid var(--ed-color-surface-muted);
    border-bottom: 1px solid var(--ed-color-surface-muted);
    display: flex; align-items: center;
}
[editor-instance] .template-row:nth-child(odd) .template-cell { background: var(--ed-color-surface-alt); }
[editor-instance] .template-row.template-header .template-cell { background: var(--ed-color-surface-muted); }
[editor-instance] .template-row.template-header + .template-row .template-cell { border-top: 0; }

[editor-instance] .template-parsecode-id {
    display: block;
    min-width: 0;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.35;
    font-variant-ligatures: none;
    color: var(--ed-color-text-strong);
    white-space: normal;
    overflow-wrap: anywhere;
}

[editor-instance] .template-actions {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-sm);
}

[editor-instance] .template-action button {
    padding: 8px 12px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    font-weight: 700;
    cursor: pointer;
}
[editor-instance] .template-action button:hover { background: var(--ed-color-accent-hover); border-color: var(--ed-color-accent-hover); }

[editor-instance] .template-insert-button {
    display: inline-flex;
    align-items: center;
    gap: var(--ed-gap-sm);
}

[editor-instance] .template-insert-icon {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance] .template-action .template-preview-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    min-width: 36px;
    border-color: var(--ed-color-border-strong);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
}

[editor-instance] .template-action .template-preview-button:hover,
[editor-instance] .template-action .template-preview-button:focus-visible {
    background: var(--ed-color-accent-pale);
    border-color: var(--ed-color-accent);
    color: var(--ed-color-accent-deep);
    outline: none;
}

[editor-instance] .template-preview-icon {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[editor-instance] .template-preview-tooltip {
    position: fixed;
    z-index: 100000;
    width: min(240px, calc(100vw - 24px));
    padding: 6px;
    border-radius: 3px;
    border: 1px solid rgb(46, 46, 46);
    background: rgb(68, 68, 68);
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.35);
    pointer-events: none;
}

[editor-instance] .template-preview-tooltip[hidden] {
    display: none;
}

[editor-instance] .template-preview-tooltip::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 14px;
    height: 14px;
    background: rgb(68, 68, 68);
    border-right: 1px solid rgb(46, 46, 46);
    border-bottom: 1px solid rgb(46, 46, 46);
    transform: translateX(-50%) rotate(45deg);
}

[editor-instance] .template-preview-tooltip[data-placement="bottom"]::after {
    top: -8px;
    bottom: auto;
    border-right: 0;
    border-bottom: 0;
    border-left: 1px solid rgb(46, 46, 46);
    border-top: 1px solid rgb(46, 46, 46);
}

[editor-instance] .template-preview-tooltip img {
    display: block;
    width: 100%;
    height: auto;
    max-height: min(180px, calc(100vh - 48px));
    object-fit: contain;
    border-radius: 2px;
}

@media (max-width: 720px) {
    [editor-instance] .template-insert-button {
        width: 36px;
        height: 36px;
        min-width: 36px;
        padding: 0;
        justify-content: center;
    }

    [editor-instance] .template-insert-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

[editor-instance] .editor-template-code {
    display: block;
    padding: 8px 10px;
    border-radius: var(--ed-radius-md);
    border: 1px dashed var(--ed-color-border);
    background: var(--ed-color-surface);
    color: var(--ed-color-text);
    white-space: pre-wrap;
    font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

[editor-instance] .editor-template-block {
    display: block;
    position: relative;
    margin: 14px 0;
    padding: var(--ed-gap-lg);
    border-radius: var(--ed-radius-lg);
    border: 1px dashed var(--ed-color-border-strong);
    background: var(--ed-color-surface-muted);
    color: var(--ed-color-text);
}
[editor-instance] .editor-template-block[data-template-preview-visible="1"] {
    padding-right: calc(var(--ed-gap-lg) + 48px);
}
[editor-instance] .editor-template-block .template-preview-button--inline {
    position: absolute;
    top: var(--ed-gap-md);
    right: var(--ed-gap-md);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    padding: 0;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.14);
    z-index: 2;
}
[editor-instance] .editor-template-block .template-preview-button--inline:hover,
[editor-instance] .editor-template-block .template-preview-button--inline:focus-visible {
    background: var(--ed-color-accent-pale);
    border-color: var(--ed-color-accent);
    color: var(--ed-color-accent-deep);
    outline: none;
}

[editor-instance] .template-block-header {
    font-size: 0.78rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--ed-color-text-muted); margin-bottom: 10px;
}

[editor-instance] .template-block-body,
[editor-instance] .template-block-fields {
    display: flex; flex-direction: column; gap: var(--ed-gap-lg);
}

[editor-instance] .template-item {
    display: flex; flex-direction: column; gap: var(--ed-gap-md);
    padding: var(--ed-gap-md);
    border-radius: var(--ed-radius-md);
    border: 1px dashed var(--ed-color-border-soft);
    background: var(--ed-color-surface);
}

[editor-instance] .template-item-header {
    display: inline-flex; align-items: center; align-self: flex-start; gap: var(--ed-gap-md);
    padding: 4px 11px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-border);
    font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--ed-color-text-muted);
    cursor: pointer; user-select: none;
    transition: background-color var(--ed-transition-normal), border-color var(--ed-transition-normal), color var(--ed-transition-normal);
}
[editor-instance] .template-item-header:hover {
    background: var(--ed-color-accent-pale);
    border-color: var(--ed-color-accent-light);
    color: var(--ed-color-link);
}
[editor-instance] .template-item-header .template-item-dup {
    display: inline-flex; align-items: center; justify-content: center;
    width: 16px; height: 16px; border-radius: var(--ed-radius-round);
    background: var(--ed-color-warning);
    color: var(--ed-color-warning-dark);
    font-size: 0.8rem; font-weight: 800; line-height: 1;
}

[editor-instance] .template-item-body { display: flex; flex-direction: column; gap: var(--ed-gap-md); }

[editor-instance] .template-field { display: flex; flex-direction: column; gap: var(--ed-gap-sm); }

[editor-instance] .template-field-label {
    display: inline-flex; align-items: center; align-self: flex-start;
    padding: 4px 11px;
    border-radius: var(--ed-radius-round);
    border: 1px solid var(--ed-color-border-ghost);
    background: var(--ed-color-surface);
    font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; color: var(--ed-color-text-muted);
}

[editor-instance] .template-field-value {
    min-height: 24px; padding: 8px 10px;
    border-radius: var(--ed-radius-sm);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    position: relative;
}
[editor-instance] .template-field-value:focus,
[editor-instance] .template-field-value:focus-within {
    outline: 2px solid var(--ed-color-accent); outline-offset: 0;
    border-color: var(--ed-color-accent);
}
[editor-instance] .template-color-value {
    padding: 0;
    min-height: 0;
    overflow: hidden;
}
[editor-instance] .template-color-value select {
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 0;
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    font: inherit;
    font-weight: 700;
    outline: none;
}
[editor-instance] .template-color-value:focus-within {
    outline: 2px solid var(--ed-color-accent);
    outline-offset: 0;
    border-color: var(--ed-color-accent);
}
[editor-instance] .template-field-value[data-template-value="title"] { font-weight: 600; white-space: pre-wrap; }
[editor-instance] .template-field-value[data-template-value="title"] [data-template-title-span] {
    display: block;
    width: 100%;
    min-height: 1.3em;
    white-space: pre-wrap;
    outline: none;
}
[editor-instance] .template-field-value:not([data-template-placeholder-visible="1"])::before,
[editor-instance] .template-field-value[data-template-value="title"] [data-template-title-span]:not([data-template-placeholder-visible="1"])::before {
    content: none !important;
}
[editor-instance] .template-field-value[data-template-value="title"] [data-template-title-span][data-template-placeholder-visible="1"]::before {
    content: attr(data-template-placeholder);
    color: var(--ed-color-text-soft);
    pointer-events: none;
}
[editor-instance] .template-field-value[data-template-value="title"]:focus-within [data-template-title-span][data-template-placeholder-visible="1"]::before {
    content: '';
}
[editor-instance] .template-field-value[data-template-value="text"][data-template-placeholder-visible="1"]::before {
    content: attr(data-template-placeholder);
    position: absolute;
    top: 8px;
    left: 10px;
    color: var(--ed-color-text-soft);
    pointer-events: none;
}
[editor-instance] .template-field-value[data-template-value="text"][data-template-text-tools="FULL"][data-template-placeholder-visible="1"]:has(> p)::before {
    top: 22px;
    left: calc(16px + var(--editor-handle-gutter));
}
[editor-instance] .template-field-value[data-template-value="text"][data-template-placeholder-visible="1"]:focus-within::before {
    content: '';
}

[editor-instance] .template-field-value[data-template-value="text"]:not([data-template-text-tools="FULL"])[data-template-placeholder-visible="1"]:has(> p)::before {
    left: calc(16px + var(--editor-handle-gutter));
}

/* I campi template TESTO in modalita P non devono ereditare i blocchi editor
   (outline/padding verticali/margini). Conservano pero' il gutter sinistro
   riservato alla maniglia contestuale, come tutti gli altri P dell'editor. */
[editor-instance] .template-field-value[data-template-value="text"]:not([data-template-text-tools="FULL"]) > p {
    outline: none;
    border-radius: 0;
    padding: 0 0 0 calc(6px + var(--editor-handle-gutter));
    margin: 0;
}
[editor-instance] .template-field-value[data-template-value="text"]:not([data-template-text-tools="FULL"]) > p + p {
    margin-top: 8px;
}

[editor-instance] .template-link-row { display: flex; flex-wrap: wrap; gap: var(--ed-gap-md); align-items: center; }
[editor-instance] .template-link-input {
    flex: 1 1 180px; min-width: 140px;
    padding: 6px 8px;
    border-radius: var(--ed-radius-sm);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-white);
    color: var(--ed-color-text);
    font-size: 0.85rem;
}
[editor-instance] .template-link-input:focus {
    outline: 2px solid var(--ed-color-accent); outline-offset: 0;
    border-color: var(--ed-color-accent);
}

[editor-instance] .template-link-blank {
    display: inline-flex; align-items: center; gap: var(--ed-gap-xs);
    font-size: 0.7rem; color: var(--ed-color-text-muted);
    user-select: none;
}
[editor-instance] .template-link-blank input { width: 12px; height: 12px; margin: 0; cursor: pointer; }

/* --- MODAL LINK --- */
[editor-instance] .modal-link-content { width: min(92vw, 520px); height: auto; max-height: 90dvh; }
[editor-instance] .modal-link-body { display: flex; flex-direction: column; gap: var(--ed-gap-xl); }
[editor-instance] .modal-link-body > h3 { margin: 0; font-size: 1.1rem; color: var(--ed-color-text); }
[editor-instance] .modal-link-body > p { margin: 0; color: var(--ed-color-text-muted); line-height: 1.5; }
[editor-instance] .modal-link-types { display: flex; gap: var(--ed-gap-md); flex-wrap: wrap; }
[editor-instance] .modal-link-option {
    display: inline-flex; align-items: center; gap: var(--ed-gap-md);
    padding: 8px 12px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-border);
    background: var(--ed-color-surface);
    cursor: pointer; font-weight: 600; color: var(--ed-color-text);
}
[editor-instance] .modal-link-option input { accent-color: var(--ed-color-accent); }
[editor-instance] .modal-link-field { display: flex; flex-direction: column; gap: var(--ed-gap-sm); font-weight: 600; color: var(--ed-color-text); }
[editor-instance] .modal-link-field span { font-size: 0.9rem; color: var(--ed-color-text-muted); }
[editor-instance] .modal-link-check { display: inline-flex; align-items: center; gap: var(--ed-gap-md); color: var(--ed-color-text); font-weight: 600; }
[editor-instance] .modal-link-check input { accent-color: var(--ed-color-accent); }
[editor-instance] .modal-link-actions { display: flex; gap: var(--ed-gap-md); flex-wrap: wrap; }

[editor-instance] .modal-link-delete,
[editor-instance] .modal-link-submit,
[editor-instance] .modal-link-cancel {
    padding: 10px 16px;
    border-radius: var(--ed-radius-md);
    font-weight: 700; letter-spacing: 0.02em; cursor: pointer;
}
[editor-instance] .modal-link-delete {
    border: 1px solid var(--ed-color-danger-light);
    background: var(--ed-color-danger-soft);
    color: var(--ed-color-danger-dark);
}
[editor-instance] .modal-link-delete:hover { background: var(--ed-color-danger-light); }
[editor-instance] .modal-link-submit {
    border: 1px solid var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
}
[editor-instance] .modal-link-submit:hover { background: var(--ed-color-accent-hover); border-color: var(--ed-color-accent-hover); }
[editor-instance] .modal-link-cancel {
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    color: var(--ed-color-text);
}
[editor-instance] .modal-link-cancel:hover { background: var(--ed-color-border); }

[editor-instance] .modal-table-confirm-content {
    width: min(92vw, 560px);
    height: auto;
    max-height: 90dvh;
}

[editor-instance] .modal-image-delete-confirm-content {
    overflow: visible;
    --modal-top-color: rgba(239, 68, 68, 0.2);
    background:
        linear-gradient(135deg, rgba(254, 226, 226, 0.95) 0%, rgba(255, 247, 237, 0.72) 42%, rgba(255, 255, 255, 0.98) 76%),
        var(--ed-color-white);
}

[editor-instance] .modal-image-delete-confirm-content::before {
    height: 170px;
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    background:
        radial-gradient(circle at 12% 0%, rgba(248, 113, 113, 0.3) 0%, rgba(248, 113, 113, 0) 48%),
        linear-gradient(150deg, rgba(254, 202, 202, 0.72) 0%, rgba(254, 242, 242, 0.42) 56%, rgba(255, 255, 255, 0) 100%);
}

[editor-instance] .modal-image-delete-close {
    --modal-close-bg: var(--ed-color-danger);
    --modal-close-bg-hover: var(--ed-color-danger-dark);
    --modal-close-focus-ring: var(--ed-color-danger-light);
    box-shadow: 0 10px 22px rgba(127, 29, 29, 0.24);
}

[editor-instance] .modal-image-delete-close:hover {
    background: var(--modal-close-bg-hover);
}

[editor-instance] .modal-image-delete-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

[editor-instance] .modal-image-delete-submit .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    stroke-width: 2.2;
}

[editor-instance] .modal-table-confirm-heading {
    margin-right: 28px;
}

[editor-instance] .modal-table-confirm-body {
    display: flex;
    flex-direction: column;
    gap: var(--ed-gap-md);
}

[editor-instance] .modal-table-confirm-summary {
    padding: 12px 14px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-warning-soft);
    background: var(--ed-color-warning-pale);
    color: var(--ed-color-warning-dark);
    font-weight: 700;
    line-height: 1.45;
}

[editor-instance] .modal-table-confirm-note {
    margin: 0;
    color: var(--ed-color-text-muted);
    line-height: 1.5;
}

[editor-instance] .modal-table-confirm-actions {
    justify-content: flex-end;
}

/* --- MODAL COLORE --- */
[editor-instance] .modal-color-content { width: min(92vw, 420px); height: auto; max-height: 90dvh; }
[editor-instance] .modal-color-body { display: flex; flex-direction: column; gap: var(--ed-gap-xl); }
[editor-instance] .modal-color-body > h3 { margin: 0; font-size: 1.1rem; color: var(--ed-color-text); }
[editor-instance] .modal-color-body > p { margin: 0; color: var(--ed-color-text-muted); line-height: 1.5; }
[editor-instance] .modal-color-row { display: flex; align-items: center; gap: var(--ed-gap-lg); }
[editor-instance] .modal-color-row input[type="color"] {
    width: 56px; height: 44px; padding: 0;
    border: 1px solid var(--ed-color-link-soft);
    border-radius: var(--ed-radius-md);
    background: var(--ed-color-white);
    cursor: pointer;
}
[editor-instance] .modal-color-row input[type="text"] { flex: 1; }
[editor-instance] .modal-color-apply {
    align-self: flex-start;
    padding: 10px 16px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-accent);
    background: var(--ed-color-accent);
    color: var(--ed-color-white); font-weight: 700; letter-spacing: 0.02em; cursor: pointer;
}
[editor-instance] .modal-color-apply:hover { background: var(--ed-color-accent-hover); border-color: var(--ed-color-accent-hover); }
[editor-instance] .modal-color-actions { display: flex; flex-wrap: wrap; gap: var(--ed-gap-md); }
[editor-instance] .modal-color-actions .modal-color-apply,
[editor-instance] .modal-color-actions .modal-color-reset { align-self: auto; }
[editor-instance] .modal-color-reset {
    padding: 10px 16px;
    border-radius: var(--ed-radius-md);
    border: 1px solid var(--ed-color-border-strong);
    background: var(--ed-color-surface);
    color: var(--ed-color-text); font-weight: 700; letter-spacing: 0.02em; cursor: pointer;
}
[editor-instance] .modal-color-reset:hover { background: var(--ed-color-border); }

/* --- GALLERY IMMAGINI MODALE --- */
[editor-instance] .image-grid { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; }
[editor-instance] .image-grid-inner {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-flow: row;
    gap: var(--ed-gap-xl);
    align-items: stretch;
}
[editor-instance] .tab-content [modal-image-list] .image-card {
    display: flex; flex-direction: column; gap: var(--ed-gap-sm);
    width: 100%; height: 100%; padding: var(--ed-gap-md);
    position: relative;
    border: 1px solid var(--ed-color-border);
    border-radius: var(--ed-radius-md);
    background: var(--ed-color-surface);
    text-align: left; cursor: pointer;
    box-sizing: border-box; color: var(--ed-color-text);
    margin: 0;
}
[editor-instance] .tab-content [modal-image-list] .image-card:focus-visible {
    outline: 2px solid var(--ed-color-accent);
    outline-offset: 2px;
}
[editor-instance] .tab-content [modal-image-list] .image-card img {
    width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain;
    display: block; border-radius: var(--ed-radius-md);
    border: 2px solid transparent;
    background: var(--ed-color-white);
    transition: transform var(--ed-transition-normal), border-color var(--ed-transition-normal);
}
[editor-instance] .tab-content [modal-image-list] .image-card.selected img { border: 2px solid var(--ed-color-border-strong); }
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card.selected img {
    border-color: var(--ed-color-accent);
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card::after,
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item[data-gallery-image-url]::after {
    content: "✓";
    position: absolute;
    top: 12px;
    right: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: var(--ed-radius-round);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
    opacity: 0;
    transform: scale(0.82);
    transition: opacity var(--ed-transition-fast), transform var(--ed-transition-fast);
    pointer-events: none;
    z-index: 2;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card.selected::after,
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item.is-gallery-selected::after {
    opacity: 1;
    transform: scale(1);
}
[editor-instance] .tab-content [modal-image-list] .image-card:hover img {
    transform: translateY(-2px);
    border-color: var(--ed-color-border-strong);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-name {
    font-size: 0.75rem; color: var(--ed-color-text-subtle);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    width: 100%;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border: 1px solid var(--ed-color-accent);
    border-radius: var(--ed-radius-sm);
    overflow: visible;
    background: var(--ed-color-accent);
    position: relative;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-actions.has-delete {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action {
    min-width: 0;
    min-height: 34px;
    padding: 6px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ed-color-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--ed-transition-fast), color var(--ed-transition-fast), opacity var(--ed-transition-fast);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action:first-child {
    border-top-left-radius: calc(var(--ed-radius-sm) - 1px);
    border-bottom-left-radius: calc(var(--ed-radius-sm) - 1px);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action:last-child {
    border-top-right-radius: calc(var(--ed-radius-sm) - 1px);
    border-bottom-right-radius: calc(var(--ed-radius-sm) - 1px);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action + .image-card-action {
    border-left: 1px solid rgba(255, 255, 255, 0.28);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip] {
    position: relative;
    --tooltip-left: 50%;
    --tooltip-right: auto;
    --tooltip-translate-x: -50%;
    --tooltip-shift-x: 0px;
    --tooltip-offset-y: 6px;
    --tooltip-top: auto;
    --tooltip-bottom: calc(100% + 8px);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip][data-tooltip-align="left"] {
    --tooltip-left: 0;
    --tooltip-right: auto;
    --tooltip-translate-x: 0;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip][data-tooltip-align="right"] {
    --tooltip-left: auto;
    --tooltip-right: 0;
    --tooltip-translate-x: 0;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    top: var(--tooltip-top);
    bottom: var(--tooltip-bottom);
    left: var(--tooltip-left);
    right: var(--tooltip-right);
    transform: translateX(calc(var(--tooltip-translate-x) + var(--tooltip-shift-x))) translateY(var(--tooltip-offset-y));
    opacity: 0;
    pointer-events: none;
    padding: var(--ed-gap-sm) var(--ed-gap-md);
    border-radius: var(--ed-radius-md);
    background: var(--ed-color-text);
    color: var(--ed-color-white);
    font-size: 0.75rem;
    font-weight: 600;
    width: max-content;
    max-width: var(--tooltip-max-width, none);
    box-sizing: border-box;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.25);
    transition: opacity var(--ed-transition-fast), transform var(--ed-transition-fast);
    z-index: 1300;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip]:hover::after,
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip]:focus-visible::after,
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip].is-tooltip-visible::after {
    opacity: 1;
    transform: translateX(calc(var(--tooltip-translate-x) + var(--tooltip-shift-x))) translateY(0);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action[data-tooltip][data-tooltip-placement="bottom"] {
    --tooltip-top: calc(100% + 8px);
    --tooltip-bottom: auto;
    --tooltip-offset-y: -6px;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action .icon {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action:hover {
    background: rgba(255, 255, 255, 0.12);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action:disabled {
    opacity: 0.72;
    cursor: default;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action.image-card-action-insert {
    background: var(--ed-color-accent);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action.image-card-action-insert:hover {
    background: var(--ed-color-accent-hover);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action.image-card-action-copy {
    background: var(--ed-color-accent-hover);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action.image-card-action-copy.is-copied {
    background: var(--ed-color-warning);
    color: var(--ed-color-warning-dark);
    opacity: 1;
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action.image-card-action-delete {
    background: var(--ed-color-danger);
}
[editor-instance] .tab-content [modal-image-list] .image-card .image-card-action.image-card-action-delete:hover {
    background: var(--ed-color-danger-dark);
}

[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card .image-card-action-insert {
    display: none;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card .image-card-action-insert + .image-card-action-copy {
    /* The insert action is hidden in Gallery mode, so the copy action becomes
       the first visible control. Keep its outer corner and remove the divider
       that would otherwise be left by the hidden sibling. */
    border-top-left-radius: calc(var(--ed-radius-sm) - 1px);
    border-bottom-left-radius: calc(var(--ed-radius-sm) - 1px);
    border-left: 0;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card .image-card-actions {
    grid-template-columns: minmax(0, 1fr);
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card .image-card-actions.has-delete {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .tab-content.active {
    flex: 1 1 auto;
    min-height: 0;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .tab-content[modal-tab="uploader"].active {
    overflow-y: auto;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item[data-gallery-image-url] {
    position: relative;
    cursor: pointer;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item[data-gallery-image-url]:focus-visible {
    outline: 2px solid var(--ed-color-accent);
    outline-offset: 2px;
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item.is-gallery-selected {
    border-color: var(--ed-color-accent);
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item img {
    object-fit: contain;
    background: var(--ed-color-white);
}
[editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item[data-gallery-image-url]::after {
    top: 8px;
    right: 8px;
}

[editor-instance] .modal-image-gallery-selection {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ed-gap-xl);
    min-height: 64px;
    padding: var(--ed-gap-lg) var(--ed-gap-xl);
    border: 1px solid var(--ed-color-border);
    border-radius: var(--ed-radius-lg);
    background: var(--ed-color-white);
}
[editor-instance] .modal-image-gallery-selection[hidden] {
    display: none !important;
}
[editor-instance] .modal-image-gallery-selection-summary {
    min-width: 0;
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    gap: var(--ed-gap-xs) var(--ed-gap-md);
}
[editor-instance] .modal-image-gallery-selection-label {
    color: var(--ed-color-text);
    font-weight: 700;
}
[editor-instance] [modal-image-gallery-counter] {
    color: var(--ed-color-accent);
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}
[editor-instance] .modal-image-gallery-selection-status {
    grid-column: 1 / -1;
    color: var(--ed-color-text-muted);
    font-size: 0.8rem;
    line-height: 1.35;
}
[editor-instance] .modal-image-gallery-insert {
    min-width: 132px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ed-gap-md);
    padding: 10px 18px;
    border: 1px solid var(--ed-color-accent);
    border-radius: var(--ed-radius-md);
    background: var(--ed-color-accent);
    color: var(--ed-color-white);
    cursor: pointer;
    font-weight: 700;
    transition: background var(--ed-transition-fast), border-color var(--ed-transition-fast), opacity var(--ed-transition-fast);
}
[editor-instance] .modal-image-gallery-insert:hover:not(:disabled) {
    border-color: var(--ed-color-accent-hover);
    background: var(--ed-color-accent-hover);
}
[editor-instance] .modal-image-gallery-insert:focus-visible {
    outline: 2px solid var(--ed-color-accent);
    outline-offset: 2px;
}
[editor-instance] .modal-image-gallery-insert:disabled {
    border-color: var(--ed-color-border);
    background: var(--ed-color-surface-muted);
    color: var(--ed-color-text-subtle);
    cursor: not-allowed;
}
@media (max-width: 720px) {
    [editor-instance] .toolbar-dropdown-menu .toolbar-image-gallery-columns button {
        min-height: 44px;
    }
    [editor-instance] .modal-image-gallery-selection {
        padding: var(--ed-gap-md);
    }
    [editor-instance] .modal-image-gallery-insert {
        min-width: 112px;
        padding-inline: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    [editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card::after,
    [editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .uploader-preview-item[data-gallery-image-url]::after,
    [editor-instance] .modal-image-gallery-insert {
        transition: none;
    }
    [editor-instance] .modal[modal-image][data-image-insert-mode="gallery"] .image-card:hover img {
        transform: none;
    }
}

@media (max-width: 1200px) { [editor-instance] .image-grid-inner { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 980px)  { [editor-instance] .image-grid-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 720px)  { [editor-instance] .image-grid-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 460px)  { [editor-instance] .image-grid-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ================
    RESPONSIVE EDITOR
   ================ */
@media (max-width: 1024px) {
    [editor-instance] .editor {
        --editor-handle-gutter: 20px;
        padding-inline: clamp(10px, 2.6vw, 15px);
    }

    [editor-instance] .editor :is(p, h1, h2, h3, h4, h5, h6, blockquote, pre, ul, ol, table, [data-image-block], [data-html-block], [data-columns-block]) {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    [editor-instance] .editor :is(img, video, iframe, embed, object) {
        max-width: 100%;
    }

    [editor-instance] .editor :is(img, video) {
        height: auto;
    }

    [editor-instance] .editor :is(pre, code, .editor-template-code) {
        white-space: pre-wrap;
        overflow-wrap: anywhere;
    }

    [editor-instance] .editor table {
        table-layout: fixed;
    }

    [editor-instance] .editor table :is(td, th) {
        min-width: 0;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    [editor-instance] .editor [style*="width"] {
        max-width: 100% !important;
    }
}

@media (max-width: 720px) {
    [editor-instance] .editor {
        --editor-handle-gutter: 16px;
        padding-top: 16px;
    }

    [editor-instance] .editor :is(p, h1, h2, h3, h4, h5, h6, blockquote, pre, ul, ol, table, [data-image-block], [data-html-block], [data-columns-block]) {
        padding-left: calc(6px + var(--editor-handle-gutter));
    }

    [editor-instance] .editor ul,
    [editor-instance] .editor ol {
        padding-left: calc(20px + var(--editor-handle-gutter));
    }

    [editor-instance] .editor li {
        padding-left: 6px;
    }

    [editor-instance] .editor [data-image-block],
    [editor-instance] .editor [data-html-block],
    [editor-instance] .editor [data-columns-block] {
        padding-left: calc(8px + var(--editor-handle-gutter));
    }

    [editor-instance] .editor-footer {
        height: auto;
        min-height: 44px;
        flex-wrap: nowrap;
        align-items: center;
        padding: 6px 8px;
    }

    [editor-instance] .editor-footer-actions {
        flex: 1 1 auto;
        min-width: 0;
    }

    [editor-instance] .editor-footer-counts {
        flex: 0 0 auto;
        justify-content: flex-end;
        margin-left: auto;
        min-width: 0;
        white-space: nowrap;
    }

    [editor-instance] .editor-footer-tags {
        max-width: 100%;
    }
}

/* ================
    OUTLINE MODE (unificata con :is())
   ================ */
[editor-instance].is-outline-mode .editor :is(
    p, h1, h2, h3, h4, h5, h6, blockquote, pre, ul, ol, table,
    [data-image-block], [data-html-block],
    .editor-template-code, .editor-template-block, .template-item,
    .editor-image-block.image-layout-gallery .gallery-item,
    .editor-image-block.image-layout-gallery .gallery-image,
    .editor-image-block.image-layout-gallery .gallery-add,
    .editor-image-block.image-layout-gallery .gallery-group-add,
    [data-image-block] figcaption,
    [data-image-block] .image-caption-add,
    [data-image-block] .gallery-caption-add,
    [data-image-block] .image-caption-trigger,
    .editor-image-block.image-layout-gallery .gallery-caption-trigger
) {
    border-style: dashed !important;
    border-width: 2px !important;
    border-color: var(--ed-color-accent-hover) !important;
}

[editor-instance].is-outline-mode .editor table td,
[editor-instance].is-outline-mode .editor table th {
    border-style: dashed !important;
    border-width: 2px !important;
    border-color: var(--ed-color-accent-hover) !important;
}

[editor-instance].is-outline-mode .editor [editor-empty-block] {
    background-color: rgba(239, 68, 68, 0.2) !important;
    border-color: var(--ed-color-danger) !important;
}
