    /* ── Lesson editor ────────────────────────────────────────────── */
    .le-bar {
      display: flex; align-items: center; justify-content: space-between;
      gap: 1rem; padding: 1rem 1.2rem;
      background: var(--card); border: 1px solid var(--line);
      border-radius: var(--radius);
      margin-bottom: 1.1rem;
      position: sticky; top: 64px; z-index: 4;
      box-shadow: var(--shadow-sm);
    }
    .le-bar-title {
      font-family: var(--font-display); font-size: 1.1rem; font-weight: 500;
      color: var(--ink); letter-spacing: -.005em;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .le-bar-actions { display: flex; gap: .55rem; flex-shrink: 0; }

    .le-card {
      background: var(--card); border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 1.4rem 1.4rem 1.2rem;
      margin-bottom: 1.1rem;
    }

    /* ── Sections / Quiz tabs ── */
    .le-tabs {
      display: flex; gap: .35rem;
      border-bottom: 1px solid var(--line);
      margin-bottom: 1.1rem;
      position: sticky; top: 130px; z-index: 3;
      background: var(--bg, #fff);
      padding-top: .25rem;
    }
    .le-tab {
      background: transparent; border: none;
      padding: .75rem 1.1rem; font-family: inherit;
      font-size: .95rem; font-weight: 500; color: var(--ink-mute);
      cursor: pointer;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      display: inline-flex; align-items: center; gap: .55rem;
      transition: color .15s, border-color .15s;
    }
    .le-tab:hover { color: var(--ink); }
    .le-tab.is-active {
      color: var(--ink);
      border-bottom-color: var(--ink);
    }
    .le-tab-count {
      display: inline-block; min-width: 1.5em; text-align: center;
      padding: 0 .45rem; font-size: .72rem; font-weight: 600;
      background: var(--line-soft); color: var(--ink-mute);
      border-radius: 10px;
    }
    .le-tab.is-active .le-tab-count { background: var(--ink); color: var(--bg, #fff); }
    .le-tab-pane { /* inherits flow */ }
    .le-row { margin-bottom: .85rem; }
    .le-row:last-child { margin-bottom: 0; }
    .le-meta-row {
      display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .85rem;
      margin-bottom: 0;
    }
    .le-meta { display: flex; flex-direction: column; gap: .35rem; }
    .le-meta > span {
      font-size: .68rem; font-weight: 700; letter-spacing: .12em;
      text-transform: uppercase; color: var(--ink-mute);
    }

    .le-input {
      width: 100%;
      padding: .65rem .85rem;
      background: var(--bg-tint); border: 1px solid var(--line);
      border-radius: 8px;
      font-family: inherit; font-size: .94rem; color: var(--ink);
      transition: all .14s ease;
    }
    .le-input:focus {
      outline: none; border-color: var(--ink); background: var(--card);
      box-shadow: 0 0 0 3px rgba(26,22,16,.06);
    }
    textarea.le-input { resize: vertical; min-height: 60px; line-height: 1.5; }
    .le-input-h {
      font-family: var(--font-display); font-size: 1.4rem; font-weight: 500;
      letter-spacing: -.01em; padding: .85rem 1rem;
    }
    .le-input-h2 {
      font-family: var(--font-display); font-size: 1.15rem; font-weight: 500;
      letter-spacing: -.005em;
    }
    .le-input-mute { background: var(--line-soft); font-style: italic; color: var(--ink-soft); }

    /* ── Section card (groups blocks) ─────────────────────────────── */
    .le-section {
      background: var(--bg-tint); border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      margin-bottom: 1.1rem;
      overflow: hidden;
    }
    .le-section-h {
      display: flex; align-items: center; gap: .55rem;
      padding: .75rem 1rem;
      background: var(--card);
      border-bottom: 1px solid var(--line-soft);
    }
    .le-section-num {
      font-family: var(--font-display); font-size: .92rem; font-weight: 600;
      color: var(--ink-mute); letter-spacing: -.005em;
      min-width: 32px;
    }
    .le-section-title {
      flex: 1; min-width: 0;
      font-family: var(--font-display); font-size: 1.05rem; font-weight: 500;
      color: var(--ink); letter-spacing: -.005em;
      background: transparent; border: 1px solid transparent;
    }
    .le-section-title:hover { background: var(--bg-tint); border-color: var(--line); }
    .le-section-title:focus { background: var(--bg-tint); border-color: var(--ink); }
    .le-section-actions { display: flex; gap: .25rem; }
    .le-section-body { padding: 1rem 1.1rem 1.1rem; }
    .le-add-section-row { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px dashed var(--line); }

    /* ── Block ────────────────────────────────────────────────────── */
    .le-blocks { display: flex; flex-direction: column; gap: .65rem; }
    .le-block {
      background: var(--card); border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: .85rem 1rem;
    }
    .le-block[data-type="heading"]    { border-left: 4px solid var(--ink); }
    .le-block[data-type="text"]       { border-left: 4px solid var(--line); }
    .le-block[data-type="keyRule"]    { border-left: 4px solid var(--accent-warm); }
    .le-block[data-type="comparison"] { border-left: 4px solid var(--accent-blue); }
    .le-block[data-type="reveal"]     { border-left: 4px solid var(--gold); }
    .le-block[data-type="image"]      { border-left: 4px solid #5C8A6A; }
    .le-block[data-type="video"]      { border-left: 4px solid #C04040; }
    .le-block[data-type="animation"]  { border-left: 4px solid #B85FA8; }
    .le-block[data-type="table"]      { border-left: 4px solid #5C4220; }
    .le-block[data-type="graph"]      { border-left: 4px solid #1B9A7F; }
    .le-block[data-type="explanation"]{ border-left: 4px solid #7C5BA8; }

    .le-block-h {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: .55rem;
    }
    .le-block-tag {
      display: inline-flex; align-items: center; gap: .35rem;
      font-size: .66rem; font-weight: 700; letter-spacing: .14em;
      text-transform: uppercase; color: var(--ink-mute);
    }
    .le-block-tag-icon {
      display: inline-flex; align-items: center; justify-content: center;
      width: 18px; height: 18px; border-radius: 4px;
      background: var(--line-soft); color: var(--ink-soft);
      font-size: .78rem; font-weight: 700; letter-spacing: 0;
      font-family: var(--font-display);
    }
    .le-block[data-type="heading"]    .le-block-tag-icon { background: var(--ink); color: var(--bg); }
    .le-block[data-type="keyRule"]    .le-block-tag-icon { background: var(--accent-warm-soft); color: var(--accent-warm); }
    .le-block[data-type="comparison"] .le-block-tag-icon { background: rgba(31,77,107,.12); color: var(--accent-blue); }
    .le-block[data-type="reveal"]     .le-block-tag-icon { background: rgba(184,146,58,.18); color: var(--gold); }
    .le-block[data-type="image"]      .le-block-tag-icon { background: rgba(92,138,106,.18); color: #5C8A6A; }
    .le-block[data-type="video"]      .le-block-tag-icon { background: rgba(192,64,64,.14); color: #C04040; }
    .le-block[data-type="animation"]  .le-block-tag-icon { background: rgba(184,95,168,.16); color: #B85FA8; }
    .le-block[data-type="table"]      .le-block-tag-icon { background: rgba(92,66,32,.14); color: #5C4220; }
    .le-block[data-type="graph"]      .le-block-tag-icon { background: rgba(27,154,127,.16); color: #1B9A7F; }
    .le-block[data-type="explanation"].le-block-tag-icon { background: rgba(124,91,168,.16); color: #7C5BA8; }
    .le-block[data-type="explanation"] .le-block-tag-icon { background: rgba(124,91,168,.16); color: #7C5BA8; }

    .le-block-actions { display: flex; gap: .25rem; }
    .le-icon-btn {
      width: 28px; height: 28px; border-radius: 6px;
      background: transparent; border: 1px solid var(--line);
      color: var(--ink-soft); font-size: .9rem; line-height: 1;
      cursor: pointer; transition: all .14s ease;
    }
    .le-icon-btn:hover { background: var(--bg-tint); color: var(--ink); border-color: var(--ink-soft); }
    .le-icon-danger:hover { background: #FBECEC; color: #C04040; border-color: #C04040; }

    /* ── Block-type specific styling ──────────────────────────────── */
    /* Rich text editor (contentEditable) */
    .le-rt-toolbar {
      display: flex; gap: .25rem; padding: .25rem;
      background: var(--bg-tint); border: 1px solid var(--line);
      border-bottom: 0; border-radius: 8px 8px 0 0;
    }
    .le-rt-btn {
      width: 30px; height: 28px; border-radius: 5px;
      background: transparent; border: 0;
      color: var(--ink-soft); font-size: .9rem; line-height: 1;
      cursor: pointer; transition: all .12s ease;
      display: inline-flex; align-items: center; justify-content: center;
    }
    .le-rt-btn:hover { background: var(--card); color: var(--ink); }
    .le-rt-area {
      min-height: 90px;
      padding: .8rem 1rem;
      background: var(--bg-tint); border: 1px solid var(--line);
      border-radius: 0 0 8px 8px;
      font-family: inherit; font-size: .96rem; color: var(--ink); line-height: 1.6;
      outline: none; transition: all .14s ease;
      overflow-wrap: break-word;
    }
    .le-rt-area:focus { border-color: var(--ink); background: var(--card); box-shadow: 0 0 0 3px rgba(26,22,16,.06); }
    .le-rt-area p { margin: 0 0 .6rem; }
    .le-rt-area p:last-child { margin-bottom: 0; }
    .le-rt-area ul, .le-rt-area ol { margin: 0 0 .6rem 1.2rem; padding: 0; }
    .le-rt-area:empty::before {
      content: 'Start typing… (Ctrl+B for bold, Ctrl+I for italic)';
      color: var(--ink-mute); font-style: italic;
    }

    /* Key rule callout-style input */
    .le-keyrule-input {
      background: var(--accent-warm-soft);
      border-color: color-mix(in oklab, var(--accent-warm) 28%, transparent);
      color: var(--ink);
    }
    .le-keyrule-input::placeholder { color: color-mix(in oklab, var(--accent-warm) 65%, var(--ink-soft)); }

    /* Comparison: 2-column grid */
    .le-cmp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
    .le-cmp-cell { display: flex; flex-direction: column; gap: .35rem; padding: .65rem; border-radius: 8px; border: 1px solid; }
    .le-cmp-wrong { background: #FDF2F2; border-color: #F0D5D5; }
    .le-cmp-right { background: #F1FAF3; border-color: #C8E0CC; }
    .le-cmp-lbl {
      display: inline-flex; align-items: center; gap: .35rem;
      font-size: .68rem; font-weight: 700; letter-spacing: .12em;
      text-transform: uppercase;
    }
    .le-cmp-wrong .le-cmp-lbl { color: #9C2E2E; }
    .le-cmp-right .le-cmp-lbl { color: #2A7A52; }
    .le-cmp-mark { font-size: .9rem; }
    .le-cmp-grid textarea { background: var(--card); }

    /* Reveal: stacked labels for q/a/hint */
    .le-sub-lbl {
      display: block; margin-bottom: .3rem;
      font-size: .68rem; font-weight: 700; letter-spacing: .12em;
      text-transform: uppercase; color: var(--ink-mute);
    }

    /* Image / Video upload + preview */
    .le-input-help {
      font-size: .76rem; color: var(--ink-mute);
      margin-top: .35rem; line-height: 1.4;
    }
    .le-input-help strong { color: var(--ink-soft); font-weight: 600; }
    .le-upload-row {
      display: grid; grid-template-columns: 1fr auto; gap: .55rem;
      align-items: stretch;
    }
    .le-upload-btn {
      display: inline-flex; align-items: center; gap: .4rem;
      padding: 0 1.1rem;
      background: var(--ink); color: var(--bg); border: 0;
      border-radius: 8px; font-family: inherit; font-size: .88rem; font-weight: 600;
      cursor: pointer; transition: all .14s ease;
      white-space: nowrap;
    }
    .le-upload-btn:hover { background: var(--accent-warm); transform: translateY(-1px); }
    .le-upload-btn:disabled { opacity: .5; cursor: wait; transform: none; }
    .le-upload-icon {
      display: inline-flex; align-items: center; justify-content: center;
      width: 16px; height: 16px; border-radius: 50%;
      background: var(--bg); color: var(--ink); font-size: .7rem; font-weight: 700;
    }
    .le-upload-status {
      font-size: .82rem; color: var(--ink-soft);
      margin-top: .5rem; min-height: 1.2em;
      font-family: inherit;
    }
    .le-upload-status.is-error { color: #9C2E2E; font-weight: 600; }

    .le-media-preview {
      margin-top: .85rem; padding: .65rem;
      background: var(--bg-tint); border: 1px solid var(--line);
      border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
    }
    .le-media-preview img {
      max-width: 100%; max-height: 280px;
      border-radius: 6px; display: block;
      object-fit: contain;
    }
    .le-media-video iframe,
    .le-media-video video {
      width: 100%; max-width: 560px; aspect-ratio: 16/9;
      border: 0; border-radius: 6px; display: block;
      background: #000;
    }
    .le-media-empty {
      margin-top: .85rem; padding: 2rem 1rem;
      background: var(--bg-tint); border: 1px dashed var(--line);
      border-radius: 10px;
      color: var(--ink-mute); font-size: .9rem;
      text-align: center; font-style: italic;
    }

    /* Explanation block — multi-language tabs + rich editor */
    .le-expl-tabs {
      display: flex; align-items: center; gap: .25rem; flex-wrap: wrap;
      padding: .35rem .4rem;
      background: var(--bg-tint);
      border: 1px solid var(--line); border-bottom: 0;
      border-radius: 8px 8px 0 0;
    }
    .le-expl-tab {
      display: inline-flex; align-items: center; gap: .4rem;
      padding: .4rem .75rem;
      background: transparent; border: 1px solid transparent;
      border-radius: 6px; cursor: pointer;
      font-size: .82rem; color: var(--ink-soft); font-weight: 500;
      transition: all .12s ease;
      position: relative;
    }
    .le-expl-tab:hover { background: var(--card); color: var(--ink); }
    .le-expl-tab.is-active {
      background: var(--card); border-color: var(--line);
      color: var(--ink); font-weight: 600;
      box-shadow: 0 1px 0 var(--card);
    }
    .le-expl-flag { font-size: 1rem; line-height: 1; }
    .le-expl-default-badge {
      color: var(--accent-warm); font-size: .82rem; line-height: 1;
      margin-left: .15rem;
    }
    .le-expl-tab-x {
      width: 16px; height: 16px; border-radius: 50%;
      background: transparent; border: 0; color: var(--ink-mute);
      font-size: 1rem; line-height: 1; cursor: pointer; padding: 0;
      margin-left: .15rem;
      display: inline-flex; align-items: center; justify-content: center;
      opacity: 0; transition: opacity .12s ease;
    }
    .le-expl-tab:hover .le-expl-tab-x { opacity: .8; }
    .le-expl-tab-x:hover { background: #FBECEC; color: #C04040; opacity: 1; }
    .le-expl-add-select {
      padding: .4rem .65rem;
      background: transparent; border: 1px dashed var(--line);
      color: var(--ink-mute); font-family: inherit; font-size: .82rem;
      border-radius: 6px; cursor: pointer; transition: all .12s ease;
    }
    .le-expl-add-select:hover {
      border-color: var(--ink-soft); color: var(--ink); background: var(--card);
    }
    .le-expl-toolbar {
      border-top: 0;
      border-radius: 0;
      padding-right: .35rem;
    }
    .le-expl-set-default {
      background: transparent; border: 0;
      color: var(--ink-mute); font-family: inherit;
      font-size: .76rem; font-weight: 600;
      padding: .3rem .65rem; border-radius: 5px;
      cursor: pointer; transition: all .12s ease;
    }
    .le-expl-set-default:hover {
      background: var(--accent-warm-soft); color: var(--accent-warm);
    }
    /* Explanation rich-text area gets the same look as text block but
       seamless with the tabs above (no top border-radius). */
    .le-expl-area {
      border-top: 0;
      border-radius: 0 0 8px 8px;
    }

    /* ── Quiz panel ──────────────────────────────────────────────── */
    .le-quiz-help {
      font-size: .86rem; color: var(--ink-soft);
      margin: -.25rem 0 1rem; line-height: 1.55;
    }
    .le-quiz-list { display: flex; flex-direction: column; gap: .85rem; margin-bottom: 1.25rem; }
    .le-q {
      background: var(--card);
      border: 1px solid var(--line);
      border-left: 4px solid var(--accent-warm);
      border-radius: var(--radius);
      overflow: hidden;
    }
    .le-q[data-qtype="mcq"]   { border-left-color: var(--accent-blue); }
    .le-q[data-qtype="multi"] { border-left-color: #5C8A6A; }
    .le-q[data-qtype="tfng"]  { border-left-color: var(--gold); }
    .le-q[data-qtype="fill"]  { border-left-color: var(--accent-warm); }
    .le-q-h {
      display: flex; align-items: center; gap: .5rem;
      padding: .65rem .85rem;
      background: var(--bg-tint);
      border-bottom: 1px solid var(--line-soft);
    }
    .le-q-num {
      font-family: var(--font-display); font-weight: 600;
      color: var(--ink); font-size: .94rem;
      min-width: 32px;
    }
    .le-q-tag {
      display: inline-flex; align-items: center; gap: .35rem;
      font-size: .68rem; font-weight: 700; letter-spacing: .12em;
      text-transform: uppercase; color: var(--ink-mute);
    }
    .le-q-tag-icon {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 22px; height: 18px; padding: 0 .25rem;
      border-radius: 4px; background: var(--line-soft); color: var(--ink-soft);
      font-size: .72rem; font-weight: 700; letter-spacing: 0;
    }
    .le-q[data-qtype="mcq"]   .le-q-tag-icon { background: rgba(31,77,107,.12); color: var(--accent-blue); }
    .le-q[data-qtype="multi"] .le-q-tag-icon { background: rgba(92,138,106,.16); color: #5C8A6A; }
    .le-q[data-qtype="tfng"]  .le-q-tag-icon { background: rgba(184,146,58,.16); color: var(--gold); }
    .le-q[data-qtype="fill"]  .le-q-tag-icon { background: var(--accent-warm-soft); color: var(--accent-warm); }
    .le-q-body { padding: 1rem 1.1rem 1.1rem; }

    .le-q-options { display: flex; flex-direction: column; gap: .4rem; margin-bottom: .65rem; }
    .le-q-opt {
      display: flex; align-items: center; gap: .55rem;
    }
    .le-q-radio {
      flex-shrink: 0; width: 18px; height: 18px;
      accent-color: var(--ink); cursor: pointer;
    }
    .le-q-add-opt { padding: .35rem .85rem; font-size: .82rem; }

    .le-q-tfng {
      display: flex; gap: .55rem; flex-wrap: wrap;
    }
    .le-q-tfng-pill {
      display: inline-flex; align-items: center; gap: .45rem;
      padding: .55rem 1rem; cursor: pointer;
      background: var(--card); border: 1.5px solid var(--line);
      border-radius: 99px; transition: all .14s ease;
      font-weight: 600; font-size: .88rem; color: var(--ink-soft);
    }
    .le-q-tfng-pill:hover { border-color: var(--ink-soft); color: var(--ink); }
    .le-q-tfng-pill.is-active {
      background: var(--ink); border-color: var(--ink); color: var(--bg);
    }
    .le-q-tfng-pill input { display: none; }

    .le-q-fills { display: flex; flex-direction: column; gap: .4rem; margin-bottom: .65rem; }
    .le-q-fill-row { display: flex; align-items: center; gap: .55rem; }

    .le-add-q-row {
      display: flex; gap: .35rem; flex-wrap: wrap; align-items: center;
      padding: 1rem; background: var(--bg-tint);
      border: 1px dashed var(--line); border-radius: var(--radius);
    }
    .le-add-q-lbl {
      font-size: .76rem; font-weight: 600;
      color: var(--ink-mute); letter-spacing: .04em;
      margin-right: .35rem;
    }
    .le-add-q-btn {
      display: inline-flex; align-items: center; gap: .4rem;
      padding: .5rem .85rem;
      background: var(--card); border: 1px solid var(--line); color: var(--ink-soft);
      border-radius: 99px; font-family: inherit; font-size: .82rem; font-weight: 600;
      cursor: pointer; transition: all .14s ease;
    }
    .le-add-q-btn:hover { background: var(--ink); border-color: var(--ink); color: var(--bg); transform: translateY(-1px); }
    .le-add-q-icon {
      display: inline-flex; align-items: center; justify-content: center;
      min-width: 22px; height: 20px; padding: 0 .35rem; border-radius: 4px;
      background: var(--line-soft); color: var(--ink);
      font-size: .76rem; font-weight: 700;
      transition: all .14s ease;
    }
    .le-add-q-btn:hover .le-add-q-icon { background: var(--accent-warm); color: var(--bg); }

    /* Bunny Stream strip + upload */
    .le-bunny-strip {
      display: flex; align-items: center; gap: .65rem;
      padding: .65rem .85rem;
      background: #FFFEFA; border: 1px solid var(--line);
      border-radius: 9px; margin-bottom: .75rem; flex-wrap: wrap;
    }
    .le-bunny-dot { color: var(--success, #5C8A6A); font-size: .75rem; }
    .le-bunny-label { font-weight: 700; font-size: .88rem; color: var(--ink); }
    .le-bunny-guid {
      font-family: 'SF Mono', Menlo, monospace; font-size: .76rem;
      color: var(--ink-mute); padding: .15rem .45rem;
      background: var(--bg-tint); border-radius: 4px;
    }
    .le-bunny-btn {
      padding: .35rem .85rem; font-size: .8rem; font-weight: 600;
      background: var(--card); border: 1px solid var(--line); color: var(--ink);
      border-radius: 99px; cursor: pointer; transition: all .14s ease;
      font-family: inherit;
    }
    .le-bunny-btn:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
    .le-bunny-btn.is-danger { color: #C04040; border-color: rgba(192,64,64,.4); }
    .le-bunny-btn.is-danger:hover { background: #C04040; color: #fff; border-color: #C04040; }

    .le-bunny-upload-row {
      display: flex; gap: .85rem; align-items: center;
      flex-wrap: wrap; margin-bottom: .75rem;
    }
    .le-bunny-upload-btn {
      padding: .65rem 1.1rem;
      background: linear-gradient(135deg, var(--ink) 0%, var(--accent-warm) 100%);
      color: var(--bg); border: 0; border-radius: 999px;
      font-size: .88rem; font-weight: 600; cursor: pointer;
      display: inline-flex; align-items: center; gap: .5rem;
      transition: all .14s ease;
      font-family: inherit;
    }
    .le-bunny-upload-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(214,118,89,.32); }

    /* Radio rows (animation format) */
    .le-radio-row { display: flex; gap: .55rem; flex-wrap: wrap; }
    .le-radio {
      flex: 1; min-width: 180px;
      display: flex; gap: .55rem; align-items: center;
      padding: .65rem .85rem;
      background: var(--card); border: 1.5px solid var(--line);
      border-radius: 10px; cursor: pointer;
      transition: all .14s ease;
    }
    .le-radio:hover { border-color: var(--ink-soft); }
    .le-radio.is-selected { border-color: var(--ink); background: var(--bg-tint); }
    .le-radio input { margin: 0; accent-color: var(--ink); }
    .le-radio span { font-size: .88rem; color: var(--ink); }
    .le-radio code { font-family: 'SF Mono', Menlo, monospace; font-size: .82em; background: var(--line-soft); padding: .05rem .3rem; border-radius: 3px; }

    /* Table block editor */
    .le-table-wrap {
      overflow-x: auto;
      border: 1px solid var(--line); border-radius: 8px;
      background: var(--card);
    }
    .le-table {
      width: 100%; border-collapse: collapse;
      font-family: inherit; font-size: .9rem;
    }
    .le-table th, .le-table td {
      padding: 0; border: 1px solid var(--line); position: relative;
      vertical-align: top;
    }
    .le-table th {
      background: var(--bg-tint);
    }
    .le-table-cell {
      width: 100%; padding: .5rem .65rem;
      background: transparent; border: 0; outline: none;
      font-family: inherit; font-size: inherit; color: var(--ink);
    }
    .le-table-cell:focus { background: rgba(214,118,89,.06); box-shadow: inset 0 0 0 2px var(--accent-warm); }
    .le-table th .le-table-cell { font-weight: 600; color: var(--ink); }
    .le-table-x {
      position: absolute; top: 4px; right: 4px;
      width: 18px; height: 18px; border-radius: 50%;
      background: transparent; border: 0; color: var(--ink-mute);
      font-size: .85rem; line-height: 1; cursor: pointer;
      opacity: 0; transition: all .14s ease;
    }
    .le-table th:hover .le-table-x,
    .le-table tr:hover .le-table-x { opacity: 1; }
    .le-table-x:hover { background: #FBECEC; color: #C04040; }
    .le-table-add {
      width: 26px; height: 26px; border-radius: 50%;
      background: var(--bg-tint); border: 1px dashed var(--line);
      color: var(--ink-mute); font-size: 1rem; cursor: pointer;
      transition: all .14s ease;
    }
    .le-table-add:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
    .le-table-add-cell { width: 40px; text-align: center; }
    .le-table-row-actions { width: 32px; }
    .le-table-add-row-cell {
      padding: 0 !important; background: var(--bg-tint);
      text-align: center; border-top: 1px dashed var(--line) !important;
    }
    .le-table-add-row {
      width: 100%; padding: .5rem; background: transparent;
      border: 0; color: var(--ink-mute); font-size: .82rem; font-weight: 600;
      cursor: pointer; transition: all .14s ease;
    }
    .le-table-add-row:hover { background: var(--ink); color: var(--bg); }

    /* Graph block editor */
    .le-graph-row {
      display: grid; grid-template-columns: 200px 1fr; gap: .85rem;
    }
    .le-graph-labels {
      display: flex; flex-wrap: wrap; gap: .5rem; align-items: center;
      padding: .55rem .65rem; background: var(--bg-tint);
      border: 1px solid var(--line); border-radius: 8px;
    }
    .le-graph-label-cell {
      position: relative; display: inline-flex;
      background: var(--card); border-radius: 6px;
    }
    .le-graph-label-cell .le-input {
      width: 110px; padding: .35rem .5rem; padding-right: 1.3rem;
      background: var(--card); border: 1px solid var(--line);
      font-size: .85rem;
    }
    .le-graph-label-cell .le-table-x {
      position: absolute; right: 2px; top: 50%; transform: translateY(-50%);
      opacity: 0; width: 16px; height: 16px;
    }
    .le-graph-label-cell:hover .le-table-x { opacity: 1; }
    .le-graph-datasets { display: flex; flex-direction: column; gap: .65rem; }
    .le-graph-dataset {
      padding: .85rem 1rem;
      background: var(--bg-tint); border: 1px solid var(--line);
      border-radius: 10px;
    }
    .le-graph-ds-h {
      display: flex; gap: .5rem; align-items: center; margin-bottom: .65rem;
    }
    .le-graph-ds-label { flex: 1; min-width: 0; }
    .le-graph-ds-color {
      width: 36px; height: 36px; padding: 0; border: 1px solid var(--line);
      border-radius: 8px; cursor: pointer; background: transparent;
    }
    .le-graph-ds-data {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
      gap: .4rem;
    }
    .le-graph-ds-cell { display: flex; flex-direction: column; gap: .2rem; }
    .le-graph-ds-cell-lbl {
      font-size: .68rem; font-weight: 600; color: var(--ink-mute);
      letter-spacing: .04em; padding-left: .15rem;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .le-graph-ds-cell-input { padding: .35rem .5rem; font-size: .85rem; }
    .le-graph-preview {
      margin-top: .65rem; padding: 1rem; background: var(--card);
      border: 1px solid var(--line); border-radius: 10px;
      height: 320px; position: relative;
    }
    .le-graph-preview canvas { max-width: 100%; }

    @media (max-width: 720px) {
      .le-graph-row { grid-template-columns: 1fr; }
    }

    /* ── Add-block toolbar ────────────────────────────────────────── */
    .le-add-row {
      display: flex; gap: .35rem; flex-wrap: wrap;
      margin-top: .85rem; padding-top: 1rem;
      border-top: 1px dashed var(--line);
    }
    .le-add-btn {
      display: inline-flex; align-items: center; gap: .4rem;
      padding: .5rem .85rem;
      background: var(--card); border: 1px solid var(--line); color: var(--ink-soft);
      border-radius: 99px; font-family: inherit; font-size: .82rem; font-weight: 600;
      cursor: pointer; transition: all .14s ease;
    }
    .le-add-btn:hover { background: var(--ink); border-color: var(--ink); color: var(--bg); transform: translateY(-1px); }
    .le-add-btn-icon {
      display: inline-flex; align-items: center; justify-content: center;
      width: 18px; height: 18px; border-radius: 4px;
      background: var(--line-soft); color: var(--ink);
      font-family: var(--font-display); font-size: .78rem; font-weight: 700;
      transition: all .14s ease;
    }
    .le-add-btn:hover .le-add-btn-icon { background: var(--accent-warm); color: var(--bg); }

    @media (max-width: 720px) {
      .le-meta-row { grid-template-columns: 1fr; }
      .l-row-cat { width: auto; }
      .le-bar { position: static; }
      .le-cmp-grid { grid-template-columns: 1fr; }
      .le-section-h { flex-wrap: wrap; }
    }

    /* God-only block notice (video / animation editing). */
    .le-godonly-notice {
      display: flex; gap: .65rem;
      padding: .75rem 1rem;
      margin-bottom: .85rem;
      background: rgba(214,118,89,0.08);
      border: 1px solid rgba(214,118,89,0.30);
      border-radius: 10px;
      font-size: .85rem; line-height: 1.55;
      color: var(--ink);
    }
    .le-godonly-notice strong { color: #b8553a; }
    .le-godonly-mark {
      flex-shrink: 0;
      font-size: 1rem;
      line-height: 1.55;
    }
    .le-radio.is-disabled {
      opacity: .55;
      cursor: not-allowed;
    }

