/* Сервисный режим — стили оверлея, подгружается после style.css */
.overlay#ovService{ z-index:60; }
.overlay#ovService .panel{ width:min(980px,98vw); max-height:92vh; }
.svc-head{ display:flex; align-items:center; gap:12px; padding:14px 20px;
  border-bottom:1px solid var(--line); background:rgba(232,182,76,.08); }
.svc-head .svc-badge{ width:30px;height:30px;border-radius:8px;background:var(--gold);color:#191204;
  display:grid;place-items:center;font-weight:800;font-size:1.05em;flex-shrink:0; }
.svc-head h2{ font-size:1.06em; font-weight:800; letter-spacing:.3px; }
.svc-head .svc-sub{ color:var(--dim); font-size:.78em; margin-top:2px; }
.svc-tabs{ display:flex; gap:4px; padding:8px 14px; border-bottom:1px solid var(--line);
  background:rgba(0,0,0,.18); overflow-x:auto; }
.svc-tab{ padding:8px 14px; border-radius:9px; font-weight:600; font-size:.86em;
  color:var(--dim); white-space:nowrap; transition:background .14s, color .14s; }
.svc-tab:hover{ background:rgba(255,255,255,.08); color:#eef1f6; }
.svc-tab.active{ background:var(--gold); color:#191204; }

.svc-body{ padding:14px 18px 18px; max-height:74vh; overflow:auto; }
.svc-toolbar{ display:flex; gap:8px; align-items:center; margin-bottom:14px; flex-wrap:wrap; }
.svc-toolbar input[type=search]{ flex:1 1 240px; min-width:160px; padding:9px 12px; border-radius:9px;
  background:rgba(255,255,255,.06); border:1px solid var(--line); color:inherit; font:inherit; }
.svc-toolbar input[type=search]:focus{ outline:none; border-color:rgba(232,182,76,.5); background:rgba(255,255,255,.1); }
.svc-toolbar select{ padding:8px 10px; border-radius:9px; background:rgba(255,255,255,.06);
  border:1px solid var(--line); color:inherit; font:inherit; }
.svc-count{ color:var(--dim); font-size:.82em; }

/* список узлов */
.svc-nodes{ display:flex; flex-direction:column; gap:8px; }
.svc-chapter{ font-size:.78em; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); padding:14px 0 4px; border-bottom:1px solid rgba(232,182,76,.18);
  margin-bottom:4px; }
.svc-node{ display:grid; grid-template-columns:140px 1fr auto; gap:10px; align-items:center;
  padding:9px 12px; border-radius:9px; border:1px solid var(--line); background:rgba(255,255,255,.03);
  transition:background .14s, border-color .14s; }
.svc-node:hover{ background:rgba(255,255,255,.08); border-color:rgba(232,182,76,.4); }
.svc-node .id{ font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace; font-size:.84em;
  color:var(--gold-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.svc-node .id .badge{ display:inline-block; padding:2px 6px; border-radius:6px; background:rgba(232,182,76,.15);
  color:var(--gold); font-size:.74em; margin-left:6px; vertical-align:1px; }
.svc-node .what{ color:#d2dae8; font-size:.9em; line-height:1.4;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.svc-node .what.who-narr{ color:#9aa4b4; font-style:italic; }
.svc-node .what.who-anya{ color:#8ec6f2; }
.svc-node .what.who-vika{ color:#ef7b93; }
.svc-node .what.who-dania{ color:#f2b061; }
.svc-node .what.who-marina{ color:#c49ae8; }
.svc-node .what.who-saha{ color:#cfd6e2; }
.svc-node .act{ display:flex; gap:6px; }
.svc-node .act button{ padding:6px 11px; border-radius:7px; font-size:.8em; font-weight:600;
  background:rgba(232,182,76,.16); border:1px solid rgba(232,182,76,.5); color:var(--gold-2); }
.svc-node .act button:hover{ background:var(--gold); color:#191204; }
.svc-node .act .ghost{ background:rgba(255,255,255,.06); border-color:var(--line); color:var(--dim); }
.svc-node .act .ghost:hover{ background:rgba(255,255,255,.14); color:#eef1f6; border-color:rgba(255,255,255,.3); }

/* галерея фонов / спрайтов / cg */
.svc-grid{ display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); }
.svc-tile{ position:relative; border-radius:11px; overflow:hidden; border:1px solid var(--line);
  background:rgba(0,0,0,.4); cursor:pointer; transition:transform .14s, border-color .14s;
  aspect-ratio:16/9; display:grid; place-items:end stretch; }
.svc-tile:hover{ transform:translateY(-2px); border-color:rgba(232,182,76,.55); }
.svc-tile .bg{ position:absolute; inset:0; background-size:cover; background-position:center; }
.svc-tile .cap{ position:relative; padding:7px 9px; width:100%;
  background:linear-gradient(0deg,rgba(0,0,0,.85),transparent); font-size:.78em; line-height:1.25; }
.svc-tile .cap b{ display:block; font-weight:700; color:#eef1f6; }
.svc-tile .cap span{ color:var(--dim); font-size:.86em; }
.svc-tile.svc-sprite .bg{ background-size:contain; background-repeat:no-repeat; background-position:bottom center; }
.svc-tile.svc-sprite{ aspect-ratio:3/4; background:linear-gradient(180deg,#1d2230,#0a0d14); }

/* звуки */
.svc-sfx{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px; }
.svc-sfx button{ padding:11px 12px; border-radius:9px; background:rgba(255,255,255,.05);
  border:1px solid var(--line); font-weight:600; text-align:left; display:flex; gap:10px; align-items:center;
  transition:background .14s, border-color .14s; }
.svc-sfx button:hover{ background:rgba(232,182,76,.12); border-color:rgba(232,182,76,.45); }
.svc-sfx button::before{ content:"♪"; color:var(--gold); font-size:1.1em; }

/* читы */
.svc-cheats{ display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.svc-cheat{ padding:14px 16px; border-radius:12px; border:1px solid var(--line);
  background:rgba(255,255,255,.04); display:flex; flex-direction:column; gap:6px; }
.svc-cheat h4{ font-size:.94em; color:var(--gold); font-weight:700; }
.svc-cheat p{ color:var(--dim); font-size:.82em; line-height:1.4; flex:1; }
.svc-cheat button{ margin-top:6px; padding:8px 12px; border-radius:8px;
  background:linear-gradient(180deg,rgba(232,182,76,.94),rgba(201,146,47,.94));
  color:#191204; font-weight:700; font-size:.88em; }
.svc-cheat button:hover{ filter:brightness(1.06); }
.svc-cheat button.danger{ background:rgba(224,107,107,.18); border:1px solid rgba(224,107,107,.4); color:#ffb9b9; }
.svc-cheat button.danger:hover{ background:rgba(224,107,107,.32); }

/* состояние */
.svc-state{ font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace; font-size:.86em;
  background:rgba(0,0,0,.4); padding:14px 16px; border-radius:11px; border:1px solid var(--line);
  white-space:pre-wrap; word-break:break-word; color:#d2dae8; }
.svc-state .k{ color:var(--gold); }
.svc-state .v{ color:#9ee0bd; }
.svc-state .v-zero{ color:#9aa4b4; }

/* маленькая плашка "сервис" в углу игры */
.svc-fab{ position:absolute; top:10px; left:10px; z-index:6; padding:5px 10px;
  border-radius:8px; font-size:.74em; font-weight:700; background:rgba(232,182,76,.85);
  color:#191204; border:1px solid rgba(232,182,76,.95); cursor:pointer;
  display:flex; align-items:center; gap:6px; }
.svc-fab:hover{ background:var(--gold); }
.svc-fab::before{ content:"🔧"; font-size:.95em; }

/* утилиты */
.svc-empty{ text-align:center; padding:30px; color:var(--dim); font-style:italic; }
.svc-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.svc-tag{ display:inline-block; padding:2px 7px; border-radius:99px; font-size:.74em;
  background:rgba(232,182,76,.15); color:var(--gold); margin-right:4px; }

@media (max-width:760px){
  .svc-body{ padding:10px 12px 14px; }
  .svc-node{ grid-template-columns:110px 1fr auto; gap:8px; padding:8px 10px; }
  .svc-node .act button{ padding:5px 8px; font-size:.76em; }
  .svc-grid{ grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
}