/* ============================================================
   Testovací panel (mimo telefon)
   ============================================================ */
.admin-panel{
  position:fixed; top:0; right:0; bottom:0; width:460px; z-index:9999;
  background:#14151a; color:#e8e9ee; overflow:hidden;
  display:flex; flex-direction:column;
  font-family: var(--ios-font); font-size:13px;
  box-shadow:-10px 0 34px rgba(0,0,0,.5);
  transform:translateX(100%); transition:transform .25s ease;
}
body.admin-open .admin-panel{ transform:translateX(0); }
body.admin-open .stage{ right:460px; }
.stage{ transition:right .25s ease; }

.admin-toggle{
  position:fixed; top:14px; right:14px; z-index:10000;
  background:#2f6df0; color:#fff; border:0; border-radius:7px;
  padding:9px 14px; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.35);
}
body.admin-open .admin-toggle{ right:474px; }

/* ---------- hlavička ---------- */
.admin-head{
  flex:0 0 auto; padding:14px 16px 0; border-bottom:1px solid #23252d; background:#181a20;
}
.admin-head__top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.admin-head h2{ margin:0; font-size:15px; font-weight:700; letter-spacing:.2px; }
.admin-head__state{ font-size:11px; color:#8a8f9e; }
.admin-head__state b{ color:#6fd08c; font-weight:600; }
.admin-actions{ display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }

.admin-btn{
  background:#23262f; color:#e8e9ee; border:1px solid #31343f; border-radius:6px;
  padding:6px 10px; font-family:inherit; font-size:12px; cursor:pointer;
}
.admin-btn:hover{ background:#2b2f3a; }
.admin-btn--primary{ background:#2f6df0; border-color:#2f6df0; color:#fff; font-weight:600; }
.admin-btn--primary:hover{ background:#3d78f5; }
.admin-btn--danger{ background:#2e1a1d; border-color:#5d2a2f; color:#ff9a9a; }
.admin-btn--ghost{ background:transparent; }
.admin-btn--sm{ padding:4px 8px; font-size:11.5px; }

.admin-tabs{ display:flex; gap:2px; }
.admin-tabs button{
  background:none; border:0; border-bottom:2px solid transparent; color:#8a8f9e;
  padding:9px 12px; font-family:inherit; font-size:12.5px; font-weight:600; cursor:pointer;
}
.admin-tabs button:hover{ color:#c9ccd6; }
.admin-tabs button.active{ color:#fff; border-bottom-color:#2f6df0; }
.admin-tabs .count{
  display:inline-block; margin-left:5px; padding:1px 5px; border-radius:8px;
  background:#262a35; color:#9aa0b0; font-size:10px; font-weight:700;
}

/* ---------- obsah ---------- */
.admin-body{ flex:1; overflow-y:auto; padding:12px 16px 40px; }
.admin-toolbar{ display:flex; gap:8px; align-items:center; margin-bottom:10px; }
.admin-toolbar input[type="search"]{
  flex:1; background:#101218; border:1px solid #2a2d38; border-radius:6px; color:#e8e9ee;
  padding:7px 10px; font-family:inherit; font-size:12.5px;
}
.admin-toolbar input[type="search"]:focus{ outline:none; border-color:#2f6df0; }

/* ---------- karta položky (rozbalovací) ---------- */
.admin-item{
  border:1px solid #262933; border-radius:8px; margin-bottom:7px; background:#1a1d24;
  overflow:hidden;
}
.admin-item__head{
  display:flex; align-items:center; gap:9px; padding:9px 10px; cursor:pointer;
}
.admin-item__head:hover{ background:#1f232b; }
.admin-item__dot{
  width:22px; height:22px; border-radius:50%; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  font-size:9.5px; font-weight:700; color:#fff;
}
.admin-item__name{ flex:1; min-width:0; font-size:13px; font-weight:600; line-height:1.25; }
.admin-item__sub{
  display:block; font-size:11px; color:#8a8f9e; font-weight:400; margin-top:2px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.admin-item__arrow{ color:#6b7184; font-size:12px; flex:0 0 auto; }
.admin-item__body{ padding:2px 10px 11px; border-top:1px solid #23262f; }
.admin-item.is-open .admin-item__arrow{ transform:rotate(90deg); }

/* ---------- formulářová mřížka ---------- */
.admin-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-top:9px; }
.admin-grid--3{ grid-template-columns:repeat(3,1fr); }
.admin-field{ display:flex; flex-direction:column; gap:3px; }
.admin-field--full{ grid-column:1 / -1; }
.admin-field label{
  font-size:10px; color:#7f8494; text-transform:uppercase; letter-spacing:.5px; font-weight:700;
}
.admin-field input, .admin-field select, .admin-field textarea{
  background:#101218; border:1px solid #2a2d38; border-radius:5px; color:#eef0f5;
  padding:6px 8px; font-family:inherit; font-size:12.5px; width:100%;
}
.admin-field textarea{ min-height:52px; resize:vertical; line-height:1.4; }
.admin-field input:focus, .admin-field select:focus, .admin-field textarea:focus{
  outline:none; border-color:#2f6df0;
}
.admin-check{ display:flex; align-items:center; gap:6px; font-size:12px; color:#c3c7d2; padding-top:4px; }

.admin-sub{
  margin-top:10px; padding-top:9px; border-top:1px dashed #2a2d38;
}
.admin-sub__title{
  font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:#7f8494;
  font-weight:700; margin-bottom:6px;
}
.admin-rowline{ display:flex; gap:6px; align-items:flex-start; margin-bottom:6px; }
.admin-rowline > *{ min-width:0; }

/* ---------- zprávy ---------- */
.admin-msg{
  border:1px solid #262933; border-radius:7px; padding:8px; margin-bottom:7px; background:#161920;
}
.admin-msg__top{ display:flex; gap:6px; align-items:center; margin-bottom:6px; }
.admin-msg__top select{ width:auto; flex:0 0 96px; }
.admin-msg__top .spacer{ flex:1; }
.admin-msg textarea{ min-height:46px; }
.admin-photo{ display:flex; gap:8px; align-items:center; margin-top:7px; }
.admin-photo img{
  width:60px; height:60px; object-fit:cover; border-radius:6px; border:1px solid #2a2d38;
}
.admin-photo__actions{ display:flex; flex-direction:column; gap:5px; }
.admin-note{ color:#8a8f9e; font-size:11.5px; line-height:1.55; margin:8px 0; }
.admin-note code{ background:#101218; padding:1px 5px; border-radius:4px; color:#b8c3d8; }
.admin-empty{ color:#7f8494; font-size:12px; padding:18px 0; text-align:center; }

/* ---------- přihlášení / modál ---------- */
.admin-login{
  position:fixed; inset:0; z-index:10001; background:rgba(0,0,0,.78);
  display:flex; align-items:center; justify-content:center;
}
.admin-login form{
  background:#1a1d24; padding:20px; border-radius:11px; width:320px;
  display:flex; flex-direction:column; gap:10px; color:#e8e9ee;
  font-family: var(--ios-font); border:1px solid #2a2d38;
}
.admin-login h3{ margin:0; font-size:15px; }
.admin-login input, .admin-login textarea{
  background:#101218; border:1px solid #2a2d38; border-radius:6px;
  color:#fff; padding:8px; font-family:inherit; font-size:16px;
}
.admin-login .err{ color:#ff9a9a; font-size:12px; }

@media (max-width: 980px){
  .admin-panel{ width:100%; }
  body.admin-open .stage{ right:0; opacity:.2; }
  body.admin-open .admin-toggle{ right:14px; }
}

/* ---------- testovací panel: stav hry ---------- */
.dbg-facts{ margin-top:4px; }
.dbg-value{ font-size:12.5px; color:#eef0f5; line-height:1.35; }
.dbg-queue{ margin-top:10px; }
.dbg-queue ol{ margin:0; padding-left:18px; font-size:12px; line-height:1.55; color:#c9ccd6; }
.dbg-when{ color:#6fd08c; font-variant-numeric:tabular-nums; }
.dbg-empty{ margin:0; font-size:12px; color:#6b7184; }
