/* ============================================================
   ARISDOC.CLOUD — Admin console. Extends styles.css + dashboard.css
   (same tokens / neumorphism / glass). RU-only internal tooling.
   ============================================================ */
@import url('/styles.css');
@import url('/dashboard.css');

/* ---- login gate ---- */
[hidden] { display: none !important; }
.gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.gate__card { width: 100%; max-width: 400px; padding: 36px; }
.gate__card h1 { font-family: var(--font-display); font-weight: 700; font-size: 24px; letter-spacing: -.03em; }
.gate__card .sub { color: var(--muted); font-size: 14px; margin: 6px 0 24px; }
.gate__badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 100px;
  background: var(--grad-soft); color: var(--accent-ink); font-size: 12px; font-weight: 700; margin-bottom: 18px; }
.gate__err { color: #d4342a; font-size: 13px; font-weight: 600; margin-top: 12px; min-height: 18px; }

/* ---- admin shell tweaks ---- */
.admin-hidden { display: none !important; }
.side__lbl.brandmark b { color: var(--accent-ink); }
.badge-role { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 100px;
  background: var(--grad); color: #fff; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; }

.page-head { margin-bottom: 22px; }
.page-head h1 { font-family: var(--font-display); font-weight: 700; font-size: clamp(22px,3vw,30px); letter-spacing: -.03em; }
.page-head p { color: var(--muted); font-size: 14.5px; margin-top: 3px; }

/* ---- KPI cards ---- */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 22px; }
.kpi { padding: 20px; }
.kpi .lbl { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 12.5px; font-weight: 600; margin-bottom: 12px; }
.kpi .lbl .ico { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: var(--grad-soft); color: var(--accent-ink); }
.kpi .lbl .ico svg { width: 18px; height: 18px; }
.kpi .val { font-family: var(--font-display); font-weight: 700; font-size: 30px; letter-spacing: -.03em; line-height: 1; }
.kpi .val small { font-size: 14px; color: var(--faint); font-weight: 600; margin-left: 4px; }
.kpi .delta { font-size: 12px; color: var(--faint); font-weight: 600; margin-top: 7px; }
.kpi.accent .val { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (max-width: 1080px) { .kpis { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .kpis { grid-template-columns: 1fr; } }

/* ---- plan distribution ---- */
.plan-dist { display: grid; gap: 12px; }
.plan-dist .row { display: flex; align-items: center; gap: 14px; }
.plan-dist .nm { width: 92px; font-weight: 700; font-size: 13.5px; text-transform: capitalize; }
.plan-dist .track { flex: 1; height: 12px; border-radius: 100px; background: rgba(47,107,255,.12); overflow: hidden; }
.plan-dist .track i { display: block; height: 100%; border-radius: 100px; background: var(--grad); min-width: 2px; }
.plan-dist .nn { width: 46px; text-align: right; font-family: var(--font-display); font-weight: 700; font-size: 14px; }

/* ---- toolbar (search + filters) ---- */
.toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.toolbar .search { flex: 1; min-width: 200px; max-width: 380px; }
.select { display: inline-flex; align-items: center; border-radius: var(--r-md); background: var(--surface);
  box-shadow: var(--nm-inset); padding: 0 6px 0 14px; }
.select select { border: 0; background: transparent; outline: none; font-family: var(--font-body); font-weight: 600;
  font-size: 13.5px; color: var(--text); padding: 11px 8px; cursor: pointer; }

/* ---- table ---- */
.tbl-wrap { padding: 8px 8px 14px; overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
table.tbl th { text-align: left; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--faint); padding: 14px 14px; border-bottom: 1px solid rgba(20,40,90,.08); white-space: nowrap; }
table.tbl td { padding: 14px 14px; border-bottom: 1px solid rgba(20,40,90,.05); vertical-align: middle; }
table.tbl tr:last-child td { border-bottom: 0; }
table.tbl tbody tr { transition: background .15s var(--ease); }
table.tbl tbody tr:hover { background: rgba(255,255,255,.45); }
.cell-main { font-weight: 700; color: var(--text); }
.cell-sub { color: var(--faint); font-size: 12px; }
.mono { font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 12px; color: var(--muted); }

/* ---- badges ---- */
.bdg { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 100px;
  font-size: 11.5px; font-weight: 700; background: var(--surface-2); color: var(--muted); box-shadow: var(--nm-sm); }
.bdg .d { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.bdg.ok { color: #18923f; background: rgba(33,186,90,.12); box-shadow: none; }
.bdg.warn { color: #b8860b; background: rgba(230,180,30,.16); box-shadow: none; }
.bdg.bad { color: #d4342a; background: rgba(212,52,42,.12); box-shadow: none; }
.bdg.info { color: var(--accent-ink); background: var(--grad-soft); box-shadow: none; }
.bdg.plan-free { color: var(--muted); }
.bdg.plan-pro { color: #7c3aed; background: rgba(124,58,237,.12); box-shadow: none; }
.bdg.plan-business { color: var(--accent-ink); background: var(--grad-soft); box-shadow: none; }

/* ---- mini usage bar in table ---- */
.ubar { min-width: 130px; }
.ubar .top { display: flex; justify-content: space-between; font-size: 11px; font-weight: 600; color: var(--muted); margin-bottom: 4px; }
.ubar .track { height: 6px; border-radius: 100px; background: rgba(47,107,255,.12); overflow: hidden; }
.ubar .track i { display: block; height: 100%; border-radius: 100px; background: var(--grad); }
.ubar .track i.hot { background: linear-gradient(135deg,#ff7a59,#ff3d6e); }

/* ---- row actions ---- */
.act-btns { display: flex; gap: 8px; justify-content: flex-end; }
.mini-btn { border: 0; cursor: pointer; font-family: var(--font-body); font-weight: 600; font-size: 12.5px;
  padding: 8px 14px; border-radius: var(--r-sm); background: var(--surface); box-shadow: var(--nm-sm); color: var(--text);
  transition: all .18s var(--ease); white-space: nowrap; }
.mini-btn:hover { transform: translateY(-1px); box-shadow: var(--nm-sm), 0 6px 14px rgba(20,40,90,.12); }
.mini-btn.danger { color: #d4342a; }
.mini-btn.go { color: var(--accent-ink); }

/* ---- pagination ---- */
.pager { display: flex; align-items: center; justify-content: space-between; padding: 14px 6px 2px; gap: 12px; }
.pager .info { color: var(--faint); font-size: 13px; font-weight: 600; }
.pager .nav { display: flex; gap: 8px; }

/* ---- modal ---- */
.modal-bg { position: fixed; inset: 0; z-index: 90; background: rgba(20,30,55,.42); backdrop-filter: blur(4px);
  display: grid; place-items: center; padding: 24px; opacity: 0; visibility: hidden; transition: all .2s var(--ease); }
.modal-bg.open { opacity: 1; visibility: visible; }
.modal { width: 100%; max-width: 560px; max-height: 88vh; overflow-y: auto; padding: 28px; transform: translateY(12px); transition: transform .25s var(--ease); }
.modal-bg.open .modal { transform: none; }
.modal__head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; gap: 12px; }
.modal__head h2 { font-family: var(--font-display); font-weight: 700; font-size: 21px; letter-spacing: -.02em; }
.modal__head .x { width: 36px; height: 36px; border-radius: 11px; border: 0; cursor: pointer; flex: 0 0 auto;
  background: var(--surface); box-shadow: var(--nm-sm); color: var(--muted); display: grid; place-items: center; }
.modal__head .x:hover { color: var(--text); }
.modal h4 { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--faint); margin: 18px 0 10px; }
.kv { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kv .item { padding: 13px 15px; border-radius: var(--r-md); background: var(--surface); box-shadow: var(--nm-inset); }
.kv .item .k { font-size: 11.5px; color: var(--faint); font-weight: 600; }
.kv .item .v { font-family: var(--font-display); font-weight: 700; font-size: 17px; margin-top: 3px; }
.member { display: flex; align-items: center; gap: 11px; padding: 10px 4px; border-bottom: 1px solid rgba(20,40,90,.05); }
.member .ava { width: 32px; height: 32px; border-radius: 50%; background: var(--grad); color: #fff; display: grid; place-items: center;
  font-weight: 700; font-size: 12px; font-family: var(--font-display); flex: 0 0 auto; }
.member .who b { font-size: 13.5px; display: block; } .member .who small { color: var(--faint); font-size: 12px; }
.member .role { margin-left: auto; }
.form-row { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.form-row .field { flex: 1; min-width: 140px; margin-bottom: 0; }
.limit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.limit-grid .field { margin-bottom: 0; }
.input.sm input, .input.sm select { padding: 10px 0; font-size: 14px; }
.input select { flex: 1; border: 0; background: transparent; outline: none; font-family: var(--font-body); font-size: 15px; color: var(--text); padding: 13px 0; cursor: pointer; }

/* ---- empty / loading ---- */
.state { text-align: center; padding: 50px 20px; color: var(--faint); }
.state svg { width: 40px; height: 40px; opacity: .5; margin-bottom: 12px; }
.spinner { width: 30px; height: 30px; border-radius: 50%; border: 3px solid rgba(47,107,255,.2); border-top-color: var(--accent);
  animation: btnspin .7s linear infinite; margin: 40px auto; }

/* mobile sidebar toggle reuse */
@media (max-width: 860px) { .kpis { grid-template-columns: 1fr 1fr; } }
