/* ═══════════════════════════════════════════════════════
   Garantex · Admin — standalone stylesheet (admin.<domain>)
   Dark, keyboard-friendly, mobile-first (works in the Telegram
   WebView and on desktop).
═══════════════════════════════════════════════════════ */
:root{
  --bg:#0b0e17; --bg2:#111524; --bg3:#171c30;
  --line:#232842; --line-soft:#1a1f36;
  --t1:#e6ecff; --t2:#adb6d3; --t3:#6c7699;
  --ac:#00f593; --ac2:#00c777;
  --err:#ff5c74; --warn:#ffbf3b; --info:#3ea3ff;
  --radius:14px;
  --mono:"JetBrains Mono", ui-monospace, monospace;
  --head:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0; background:var(--bg); color:var(--t1);
  font-family:var(--head); font-size:14px; -webkit-font-smoothing:antialiased;
}
button{
  font-family:inherit; cursor:pointer; border:none; outline:none;
}

/* Splash */
.ap-splash{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; }
.ap-splash-inner{ text-align:center; }
.ap-logo{ font-weight:800; font-size:20px; letter-spacing:.3px; color:var(--ac); }
.ap-splash-msg{ margin-top:8px; color:var(--t3); font-size:13px; }

/* Layout */
.ap-shell{ min-height:100%; display:flex; flex-direction:column; }
.ap-topbar{
  position:sticky; top:0; z-index:5;
  display:flex; align-items:center; gap:12px; padding:14px 16px;
  border-bottom:1px solid var(--line-soft); background:rgba(11,14,23,.9);
  backdrop-filter:saturate(140%) blur(6px);
}
.ap-topbar .ap-title{ font-weight:800; letter-spacing:.3px; font-size:16px; }
.ap-topbar .ap-role{
  padding:3px 8px; border-radius:999px; font-size:11px; font-weight:700;
  background:rgba(0,245,147,.12); color:var(--ac);
}
.ap-topbar .ap-role.mgr{ background:rgba(62,163,255,.14); color:var(--info); }
.ap-topbar .ap-me{ margin-left:auto; color:var(--t2); font-size:12px; }

.ap-tabs{
  display:flex; gap:4px; padding:8px 12px; border-bottom:1px solid var(--line-soft);
  overflow-x:auto; scrollbar-width:none;
}
.ap-tabs::-webkit-scrollbar{ display:none; }
.ap-tab{
  padding:8px 14px; border-radius:10px; background:transparent; color:var(--t2);
  font-size:13px; font-weight:600; white-space:nowrap;
}
.ap-tab.active{ background:var(--bg3); color:var(--t1); }
.ap-body{ padding:14px 16px 60px; flex:1; }

/* Search + toolbar */
.ap-toolbar{ display:flex; gap:8px; margin-bottom:12px; align-items:center; flex-wrap:wrap; }
.ap-search{
  flex:1; min-width:180px; height:40px; padding:0 14px; border-radius:12px;
  background:var(--bg2); border:1px solid var(--line-soft); color:var(--t1);
  font-family:inherit; font-size:13px; outline:none;
}
.ap-search:focus{ border-color:var(--ac); }
.ap-btn{
  padding:10px 14px; border-radius:12px; background:var(--bg3); color:var(--t1);
  font-size:13px; font-weight:600; display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--line-soft);
}
.ap-btn.primary{ background:var(--ac); color:#00201b; border-color:transparent; }
.ap-btn.err{ background:rgba(255,92,116,.18); color:var(--err); border-color:transparent; }
.ap-btn.warn{ background:rgba(255,191,59,.16); color:var(--warn); border-color:transparent; }
.ap-btn:disabled{ opacity:.55; cursor:not-allowed; }

/* Cards / list */
.ap-card{ background:var(--bg2); border:1px solid var(--line-soft); border-radius:var(--radius); }
.ap-list{ display:flex; flex-direction:column; gap:8px; }
.ap-row{
  padding:12px 14px; border-radius:12px; background:var(--bg2);
  border:1px solid var(--line-soft); display:flex; align-items:center; gap:12px;
  cursor:pointer;
}
.ap-row:hover{ border-color:var(--line); background:var(--bg3); }
.ap-row .name{ font-weight:600; color:var(--t1); }
.ap-row .sub  { color:var(--t3); font-size:12px; font-family:var(--mono); }
.ap-row .right{ margin-left:auto; text-align:right; }
.ap-row .bal  { font-family:var(--mono); font-weight:700; color:var(--ac); }
.ap-row .bal.zero{ color:var(--t3); }
.ap-empty{ text-align:center; padding:28px 12px; color:var(--t3); font-size:13px; }

/* Stat tiles */
.ap-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-bottom:14px; }
.ap-stat{ padding:14px; border-radius:14px; background:var(--bg2); border:1px solid var(--line-soft); }
.ap-stat .k{ color:var(--t3); font-size:11px; text-transform:uppercase; letter-spacing:.4px; font-weight:600; }
.ap-stat .v{ font-family:var(--mono); font-weight:700; font-size:20px; color:var(--t1); margin-top:6px; }
.ap-stat .v.small{ font-size:16px; }

/* Modal */
.ap-mask{ position:fixed; inset:0; background:rgba(0,0,0,.6); backdrop-filter:blur(3px); display:flex; align-items:flex-end; justify-content:center; z-index:20; }
.ap-modal{
  width:100%; max-width:520px; max-height:92vh; overflow:auto;
  background:var(--bg2); border-top:1px solid var(--line);
  border-radius:20px 20px 0 0; padding:16px 16px 32px;
}
@media (min-width:640px){
  .ap-mask{ align-items:center; }
  .ap-modal{ border-radius:20px; }
}
.ap-modal h2{ margin:0 0 4px; font-size:17px; }
.ap-modal .m-sub{ color:var(--t3); font-size:12px; margin-bottom:14px; font-family:var(--mono); }
.ap-modal-close{ float:right; background:none; color:var(--t3); font-size:22px; padding:0 6px; }
.ap-section{ margin-top:16px; padding-top:14px; border-top:1px dashed var(--line-soft); }
.ap-section h3{ margin:0 0 10px; font-size:13px; color:var(--t2); font-weight:600; letter-spacing:.3px; text-transform:uppercase; }
.ap-kv{ display:flex; justify-content:space-between; padding:5px 0; border-bottom:1px solid var(--line-soft); font-size:13px; }
.ap-kv:last-child{ border-bottom:none; }
.ap-kv .k{ color:var(--t3); }
.ap-kv .v{ font-family:var(--mono); color:var(--t1); }

/* Form */
.ap-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.ap-field label{ font-size:12px; color:var(--t3); font-weight:600; }
.ap-input, .ap-select, .ap-textarea{
  height:40px; padding:0 12px; border-radius:10px; background:var(--bg); color:var(--t1);
  border:1px solid var(--line-soft); font-family:inherit; font-size:13px; outline:none;
}
.ap-textarea{ height:auto; padding:10px 12px; min-height:60px; resize:vertical; }
.ap-input:focus, .ap-select:focus, .ap-textarea:focus{ border-color:var(--ac); }
.ap-row-inline{ display:flex; gap:8px; align-items:flex-end; }
.ap-row-inline > *{ flex:1; }

/* Toast bar */
.toast-item{ padding:8px 10px; border-radius:10px; background:var(--bg3); border:1px solid var(--line-soft); margin-bottom:6px; }
.toast-item.err  { border-color:rgba(255,92,116,.35); }
.toast-item.warn { border-color:rgba(255,191,59,.35); }
.toast-item.info { border-color:rgba(62,163,255,.35); }
.toast-item .head{ display:flex; align-items:center; gap:6px; font-size:12px; }
.toast-item .head .evt{ font-family:var(--mono); font-weight:700; }
.toast-item .head .lvl{ padding:1px 6px; border-radius:6px; font-size:10px; font-weight:700; }
.toast-item .head .lvl.err{ background:rgba(255,92,116,.18); color:var(--err); }
.toast-item .head .lvl.warn{ background:rgba(255,191,59,.18); color:var(--warn); }
.toast-item .head .lvl.info{ background:rgba(62,163,255,.18); color:var(--info); }
.toast-item .txt{ margin-top:4px; color:var(--t1); font-size:13px; word-break:break-word; }
.toast-item.consumed{ opacity:.55; }
.toast-item .del{ margin-left:auto; color:var(--t3); font-size:14px; background:none; }

/* Runtime toasts (top-right) */
#ap-toasts{
  position:fixed; top:12px; right:12px; z-index:100;
  display:flex; flex-direction:column; gap:8px; max-width:calc(100vw - 24px);
}
.rt-toast{
  padding:10px 14px; border-radius:12px; background:var(--bg2);
  border:1px solid var(--line); color:var(--t1); font-size:13px;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  animation:rtIn .18s ease;
}
.rt-toast.err  { border-color:rgba(255,92,116,.5);  color:#ffe1e6; background:linear-gradient(180deg, rgba(255,92,116,.14), var(--bg2)); }
.rt-toast.ok   { border-color:rgba(0,245,147,.4);   color:#c8ffea; background:linear-gradient(180deg, rgba(0,245,147,.12), var(--bg2)); }
.rt-toast.warn { border-color:rgba(255,191,59,.45); color:#ffe8bf; background:linear-gradient(180deg, rgba(255,191,59,.13), var(--bg2)); }
@keyframes rtIn{ from{ transform:translateY(-8px); opacity:0; } to{ transform:none; opacity:1; } }

/* Pill */
.pill{
  padding:2px 7px; border-radius:8px; font-size:10px; font-weight:700;
  background:var(--bg3); color:var(--t2); font-family:var(--mono);
}
.pill.ac{ background:rgba(0,245,147,.14); color:var(--ac); }
.pill.err{ background:rgba(255,92,116,.14); color:var(--err); }
