/* Script editor (admin "Скрипты" and the dashboard's "Мои скрипты") */
.se { display: grid; grid-template-columns: minmax(220px, 290px) minmax(0, 1fr); gap: 16px; align-items: start; }
.se-list { position: sticky; top: 16px; display: grid; gap: 10px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 12px; max-height: calc(100vh - 120px); grid-template-rows: auto auto minmax(0, 1fr); }
.se-list-head { display: flex; gap: 8px; }
.se-search { flex: 1; min-width: 0; height: 30px; font: inherit; font-size: 13px; color: var(--ink); background: var(--bg-alt); border: 1px solid var(--line); border-radius: 8px; padding: 0 10px; outline: none; }
.se-search:focus { border-color: var(--accent); }
.se-filter { width: 100%; }
.se-filter button { flex: 1; padding-left: 6px; padding-right: 6px; font-size: 12px; white-space: nowrap; }
.se-items { overflow-y: auto; display: grid; gap: 2px; align-content: start; margin: 0 -4px; padding: 0 4px; }
.se-item { appearance: none; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; border-radius: 8px; padding: 8px 10px; display: grid; gap: 3px; }
.se-item:hover { background: var(--fill); }
.se-item.on { background: var(--accent-soft); }
.se-item-top { display: flex; align-items: center; gap: 8px; justify-content: space-between; min-width: 0; }
.se-item-top b { font-size: 13.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.se-item-top .badge { height: 18px; font-size: 11px; padding: 0 7px; flex: none; }
.se-item-sub { font-size: 12px; color: var(--ink-3, var(--ink-2)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.se-none { font-size: 13px; color: var(--ink-2); padding: 18px 6px; text-align: center; }

.se-pane { min-width: 0; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 16px; display: grid; gap: 12px; }
.se-empty { display: grid; gap: 6px; place-items: center; text-align: center; padding: 72px 16px; color: var(--ink-2); font-size: 14px; }
.se-empty b { color: var(--ink); font-size: 15px; }

.se-head { display: grid; gap: 6px; }
.se-title { display: flex; align-items: center; gap: 10px; }
.se-name { flex: 1; min-width: 0; font: inherit; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); background: transparent; border: 1px solid transparent; border-radius: 8px; padding: 2px 6px; margin-left: -7px; outline: none; }
.se-name:hover { border-color: var(--line); }
.se-name:focus { border-color: var(--accent); }
.se-meta { font-size: 12.5px; color: var(--ink-2); }
.se-desc { font: inherit; font-size: 13.5px; color: var(--ink); background: var(--bg-alt); border: 1px solid var(--line); border-radius: 8px; padding: 7px 10px; outline: none; }
.se-desc:focus { border-color: var(--accent); }
.se-hint { font-size: 12.5px; color: var(--ink-2); margin: 0; }

.se-tabs { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
.se-tab { appearance: none; border: 1px solid transparent; background: transparent; color: var(--ink-2); font: 12.5px/1 var(--mono); cursor: pointer; border-radius: 7px; padding: 6px 9px; display: inline-flex; align-items: center; gap: 6px; }
.se-tab:hover { background: var(--fill); color: var(--ink); }
.se-tab.on { background: var(--bg-alt); border-color: var(--line); color: var(--ink); }
.se-tab i { font-style: normal; color: var(--accent); font-size: 9px; }
.se-x { opacity: .5; padding: 0 2px; border-radius: 4px; font-family: var(--font); }
.se-x:hover { opacity: 1; background: var(--danger-soft); color: var(--danger); }
.se-add { color: var(--link); }
.se-newfile { height: 26px; width: 160px; font: 12.5px var(--mono); color: var(--ink); background: var(--bg-alt); border: 1px solid var(--accent); border-radius: 7px; padding: 0 8px; outline: none; }

.se-code { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--bg-alt); height: min(62vh, 640px); }
.se-gutter, .se-text { font: 13px/20px var(--mono); margin: 0; padding: 12px 0; tab-size: 2; }
.se-gutter { min-width: 46px; padding-left: 10px; padding-right: 10px; text-align: right; color: var(--ink-2); opacity: .55; overflow: hidden; user-select: none; border-right: 1px solid var(--line); white-space: pre; }
.se-text { width: 100%; height: 100%; resize: none; border: 0; outline: none; background: transparent; color: var(--ink); padding-left: 12px; padding-right: 12px; white-space: pre; overflow: auto; }
.se-text::selection { background: var(--accent-soft); }
.se-binary { grid-column: 1 / -1; padding: 24px; color: var(--ink-2); font-size: 13px; }

.se-check { display: grid; gap: 4px; }
.se-check:empty { display: none; }
.se-check-head { font-size: 13px; font-weight: 600; padding: 2px 0 4px; }
.se-check-head.ok { color: var(--ok); }
.se-check-head.bad { color: var(--danger); }
.se-find { appearance: none; border: 0; text-align: left; cursor: pointer; font: inherit; font-size: 12.5px; color: var(--ink); background: var(--fill); border-radius: 8px; padding: 7px 10px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; border-left: 3px solid var(--line-2, var(--line)); }
.se-find:hover { background: var(--fill-2, var(--fill)); }
.se-find.bad { border-left-color: var(--danger); }
.se-find.warn { border-left-color: var(--warn); }
.se-find-where { font-family: var(--mono); color: var(--ink-2); }
.se-find code { grid-column: 2; font: 12px var(--mono); color: var(--ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.se-actions { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.se-left, .se-right { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.se-dirty { font-size: 12px; color: var(--warn); }
.se-reject { display: flex; gap: 6px; }
.se-reject input { flex: 1; min-width: 0; height: 30px; font: inherit; font-size: 13px; color: var(--ink); background: var(--bg-alt); border: 1px solid var(--line); border-radius: 8px; padding: 0 10px; outline: none; }

.se-create { display: grid; gap: 12px; max-width: 560px; }
.se-create h2 { font-size: 20px; letter-spacing: -0.02em; margin: 0; }
.se-create label { display: grid; gap: 6px; font-size: 13px; color: var(--ink-2); font-weight: 500; }
.se-create input:not([type=checkbox]):not([type=file]) { font: inherit; font-size: 14px; color: var(--ink); background: var(--bg-alt); border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; outline: none; }
.se-create input:focus { border-color: var(--accent); }
.se-create .se-check-row { display: flex; align-items: center; gap: 8px; color: var(--ink); }

@media (max-width: 900px) {
  .se { grid-template-columns: minmax(0, 1fr); }
  .se-list { position: static; max-height: 320px; }
  .se-code { height: 60vh; }
}
