/* ============================================================
   Testovací panel (mimo telefon) – stejný vzhled jako u
   Telefonu detektiva
   ============================================================ */
.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);
  padding-top:env(safe-area-inset-top, 0px); padding-bottom:env(safe-area-inset-bottom, 0px);
  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:calc(14px + env(safe-area-inset-top, 0px));
  right:calc(14px + env(safe-area-inset-right, 0px)); 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-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:focus-visible, .admin-toggle:focus-visible{ outline:2px solid #6f9bff; outline-offset:2px; }
.admin-btn--primary{ background:#2f6df0; border-color:#2f6df0; color:#fff; font-weight:600; }
.admin-btn--primary:hover{ background:#3d78f5; }
.admin-btn--ghost{ background:transparent; }

/* ---------- obsah ---------- */
.admin-body{ flex:1; overflow-y:auto; padding:12px 16px 40px; }

.admin-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:4px; }
.admin-field{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.admin-field label{
  font-size:10px; color:#7f8494; text-transform:uppercase; letter-spacing:.5px; font-weight:700;
}
.dbg-value{ font-size:12.5px; color:#eef0f5; line-height:1.35; font-variant-numeric:tabular-nums; }

.admin-sub{ margin-top:12px; padding-top:10px; 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-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; }

/* ---------- kontrola podle zadání ---------- */
.dbg-checks{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.dbg-checks li{
  display:grid; grid-template-columns:20px minmax(0,1fr); gap:8px; align-items:start;
  padding:7px 9px; border-radius:7px; background:#1a1d24; border:1px solid #262933;
}
.dbg-checks b{ display:block; font-size:12.5px; font-weight:600; line-height:1.35; }
.dbg-checks small{ display:block; margin-top:2px; font-size:11px; color:#8a8f9e; line-height:1.45;
  overflow-wrap:anywhere; }
.dbg-mark{
  width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700;
}
.dbg-checks .is-ok .dbg-mark{ background:#183323; color:#6fd08c; }
.dbg-checks .is-bad{ border-color:#5d2a2f; background:#24171a; }
.dbg-checks .is-bad .dbg-mark{ background:#4a1f24; color:#ff9a9a; }

/* ---------- přihlášení ---------- */
.admin-login{
  position:fixed; inset:0; z-index:10001; background:rgba(0,0,0,.78);
  display:flex; align-items:center; justify-content:center;
  padding-left:max(16px, env(safe-area-inset-left, 0px));
  padding-right:max(16px, env(safe-area-inset-right, 0px));
}
.admin-login form{
  background:#1a1d24; padding:20px; border-radius:11px; width:320px; max-width:100%;
  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{
  background:#101218; border:1px solid #2a2d38; border-radius:6px;
  color:#fff; padding:8px; font-family:inherit; font-size:16px;
}
.admin-login input:focus{ outline:none; border-color:#2f6df0; }
.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:calc(14px + env(safe-area-inset-right, 0px)); }
}
@media (prefers-reduced-motion: reduce){
  .admin-panel, .stage{ transition:none; }
}
