/* ============================================================
   Blender-style dark theme (homage к Blender 4.x)
   Тёмная тема, шрифт Inter, синий select #4772b3, оранжевый active,
   флэт-виджеты со скруглением ~4px, эмбосс (светлая верхняя кромка),
   ховер-осветление. Отклик — только цветом, без приподнимания.
   ============================================================ */
:root{
  --b-window:#1a1a1a;      /* фон окна */
  --b-editor:#303030;      /* основной регион */
  --b-panel:#2f2f2f;       /* панель */
  --b-header:#2b2b2b;      /* хедеры/полосы */
  --b-region:#232323;      /* тёмные регионы: аутлайнер, поля ввода */
  --b-region-2:#282828;
  --b-tab-off:#272727;

  --b-widget:#565656;      /* база кнопки */
  --b-widget-top:#5e5e5e;  /* верх градиента кнопки (эмбосс) */
  --b-widget-bot:#505050;  /* низ градиента */
  --b-widget-hover:#6a6a6a;
  --b-widget-edge:#1c1c1c; /* нижняя кромка виджета */

  --b-text:#dcdcdc;
  --b-text-dim:#9a9a9a;
  --b-text-mute:#6f6f6f;

  --b-accent:#4772b3;      /* синий select/active Blender */
  --b-accent-top:#5182c6;
  --b-accent-hover:#5a86c9;
  --b-accent-ink:#ffffff;

  --b-active:#e8952f;      /* оранжевый (активный объект) */
  --b-red:#c0392b;
  --b-green:#4a8f3c;

  --b-line:#3a3a3a;
  --b-line-2:#454545;
  --b-shadow:0 6px 24px -6px rgba(0,0,0,.6), 0 2px 8px -2px rgba(0,0,0,.5);
  --b-radius:4px;
  --b-radius-sm:3px;
  --b-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --b-mono:"JetBrains Mono",ui-monospace,monospace;
  --b-ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--b-window);color:var(--b-text);font-family:var(--b-sans);
  font-size:13px;line-height:1.35;-webkit-font-smoothing:antialiased;
  font-feature-settings:"cv05" 1,"ss01" 1;letter-spacing:.1px;}
::selection{background:var(--b-accent);color:#fff}

/* тонкие скроллбары как в Blender */
*{scrollbar-width:thin;scrollbar-color:#4a4a4a transparent}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:6px;border:3px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#5a5a5a;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}

/* ---------- виджеты: кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:26px;padding:0 11px;border:1px solid var(--b-widget-edge);
  border-radius:var(--b-radius);
  background:linear-gradient(var(--b-widget-top),var(--b-widget-bot));
  color:var(--b-text);font:inherit;font-size:12.5px;font-weight:450;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  transition:background .1s var(--b-ease),color .1s,border-color .1s;user-select:none;white-space:nowrap}
.btn:hover{background:linear-gradient(#727272,var(--b-widget-hover))}
.btn:active{background:var(--b-accent);border-color:#1c1c1c;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.btn svg{width:15px;height:15px;flex:none}
.btn.primary{background:linear-gradient(var(--b-accent-top),var(--b-accent));color:var(--b-accent-ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.btn.primary:hover{background:linear-gradient(#5f8fd4,var(--b-accent-hover))}
.btn.primary:active{background:#3f66a0}
.btn.danger:active{background:var(--b-red)}
.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--b-text-dim)}
.btn.ghost:hover{background:rgba(255,255,255,.06);color:var(--b-text)}
.btn.sm{height:22px;padding:0 8px;font-size:12px}
.btn.icon{width:26px;padding:0}
.btn[disabled]{opacity:.4;cursor:default;pointer-events:none}

/* ---------- поля ввода ---------- */
.field{display:block;width:100%;height:26px;padding:0 9px;
  background:var(--b-region);color:var(--b-text);
  border:1px solid var(--b-widget-edge);border-radius:var(--b-radius);
  font:inherit;font-size:12.5px;box-shadow:inset 0 1px 2px rgba(0,0,0,.35);
  transition:border-color .1s,background .1s;outline:none}
.field::placeholder{color:var(--b-text-mute)}
.field:hover{background:#282828}
.field:focus{border-color:var(--b-accent);background:#262626;box-shadow:inset 0 1px 2px rgba(0,0,0,.35),0 0 0 1px var(--b-accent)}
textarea.field{height:auto;padding:7px 9px;resize:vertical;line-height:1.45}
label.lbl{display:block;font-size:11.5px;color:var(--b-text-dim);margin-bottom:5px;font-weight:450}

/* чекбокс */
.chk{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:12.5px}
.chk input{position:absolute;opacity:0;width:0;height:0}
.chk .box{width:15px;height:15px;border-radius:3px;background:var(--b-region);
  border:1px solid var(--b-widget-edge);display:grid;place-items:center;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.35);transition:background .1s,border-color .1s}
.chk .box svg{width:11px;height:11px;opacity:0;color:#fff;transition:opacity .08s}
.chk input:checked + .box{background:var(--b-accent);border-color:#2f527e}
.chk input:checked + .box svg{opacity:1}
.chk:hover .box{border-color:var(--b-line-2)}

/* селект/дропдаун */
.sel{position:relative;display:inline-flex;align-items:center}
.sel select{appearance:none;height:26px;padding:0 28px 0 10px;
  background:linear-gradient(var(--b-widget-top),var(--b-widget-bot));color:var(--b-text);
  border:1px solid var(--b-widget-edge);border-radius:var(--b-radius);font:inherit;font-size:12.5px;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.sel select:hover{background:linear-gradient(#727272,var(--b-widget-hover))}
.sel::after{content:"";position:absolute;right:10px;top:50%;width:0;height:0;pointer-events:none;
  border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--b-text-dim);transform:translateY(-2px)}

/* ---------- панель (сворачиваемая, как в Blender Properties) ---------- */
.panel{background:var(--b-panel);border:1px solid var(--b-line);border-radius:var(--b-radius);overflow:hidden}
.panel > .ph{display:flex;align-items:center;gap:7px;height:28px;padding:0 10px;
  background:#383838;border-bottom:1px solid var(--b-line);cursor:default;
  font-size:12px;font-weight:550;color:var(--b-text);letter-spacing:.2px}
.panel > .ph .tri{width:0;height:0;border-left:5px solid var(--b-text-dim);
  border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s}
.panel.open > .ph .tri{transform:rotate(90deg)}
.panel > .pb{padding:12px}

.card{background:var(--b-panel);border:1px solid var(--b-line);border-radius:var(--b-radius)}

/* ---------- таблица (аутлайнер-стиль) ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl{table-layout:fixed}
.tbl td{overflow:hidden;text-overflow:ellipsis}
.tbl thead th{background:var(--b-header);color:var(--b-text-dim);
  text-align:left;font-weight:500;font-size:11px;letter-spacing:.4px;text-transform:uppercase;
  padding:7px 12px;border-bottom:1px solid var(--b-line);white-space:nowrap}
.tbl tbody td{padding:7px 12px;border-bottom:1px solid #2a2a2a;color:var(--b-text)}
.tbl tbody tr{transition:background .08s}
.tbl tbody tr:hover{background:#2b2b2b}
.tbl tbody tr.rsel td{background:var(--b-accent);color:#fff}
.tbl tbody tr.rsel .mono{color:#dbe6f7}
.mono{font-family:var(--b-mono);font-size:11.5px;color:var(--b-text-dim)}

/* бейджи-пилюли статуса */
.pill{display:inline-flex;align-items:center;gap:5px;height:19px;padding:0 8px;border-radius:3px;
  font-size:11px;font-weight:500;letter-spacing:.2px}
.pill.ok{background:rgba(74,143,60,.22);color:#8fce7f}
.pill.warn{background:rgba(232,149,47,.2);color:#e8b06a}
.pill.bad{background:rgba(192,57,43,.22);color:#e08b82}
.pill.blue{background:rgba(71,114,179,.24);color:#8fb0e0}
.dot{width:7px;height:7px;border-radius:50%;flex:none}
