
  /* ---- editor app ---- */
  .ed{flex:1;display:flex;flex-direction:column;background:#0d1220;min-height:0}
  .ed .bar{flex:none;display:flex;align-items:center;gap:8px;padding:7px 10px;
    background:var(--chrome-2);border-bottom:1px solid rgba(0,0,0,.3);font-size:12px}
  .ed .bar select{background:#0d1220;color:var(--ink);border:1px solid var(--edge);
    border-radius:6px;padding:4px 8px;font-family:var(--mono);font-size:12px}
  .ed .bar .fname{color:var(--ink-dim)} .ed .bar .save{margin-left:auto;color:var(--accent);
    border:1px solid var(--accent);border-radius:6px;padding:4px 12px}
  .ed .bar .save:hover{background:rgba(var(--accent-rgb),.14)}
  .ed .bar .status{color:var(--ink-faint)}
  .ed .bar .prev{color:var(--ink-dim);border:1px solid var(--edge);border-radius:6px;padding:2px 8px;
    cursor:pointer;background:none;font-size:11.5px}
  .ed .bar .prev:hover{color:var(--accent);border-color:var(--accent)}
  .ed .bar .prev.on{color:var(--accent);border-color:var(--accent);background:rgba(var(--accent-rgb),.14)}
  .ed-split{flex:1;display:flex;min-height:0;min-width:0}
  .ed-prev{flex:1;min-width:0;display:none;flex-direction:column;border-left:1px solid var(--edge)}
  .ed.preview .ed-prev{display:flex}
  .ed-prevbar{flex:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;color:#7b8aa3;
    padding:5px 10px;background:#0d1220;border-bottom:1px solid var(--edge);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ed-prev iframe{flex:1;width:100%;border:0;background:#fff}
  .ed textarea{flex:1;resize:none;border:none;outline:none;background:#0d1220;color:var(--ink);
    font-family:var(--mono);font-size:13.5px;line-height:1.7;padding:14px 16px;tab-size:2;
    caret-color:var(--accent);user-select:text}