/* Reusable component primitives: actions, buttons, cards, tabs, zones. */
.actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.lang-mini { display:flex; gap:4px; padding:4px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.70); }
.lang-mini form { margin:0; }
.lang-mini a, .lang-mini button { padding:6px 9px; border:0; border-radius:999px; background:transparent; font:inherit; font-size:12px; font-weight:850; color:var(--muted); cursor:pointer; }
.lang-mini a.active, .lang-mini button.active { background:var(--accent); color:#fff; }
.btn { background:var(--accent); color:white; border:0; min-height:44px; min-width:112px; width:max-content; max-width:100%; padding:10px 18px; line-height:1.25; border-radius:13px; font-weight:850; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:7px; transition:.15s ease; box-shadow:var(--soft); white-space:nowrap; text-align:center; vertical-align:middle; }
.btn:hover { transform:translateY(-1px); filter:brightness(1.04); }
.btn.secondary { background:var(--panel); color:var(--text); border:1px solid var(--line); }
.btn.danger { background:var(--bad); color:white; }
.btn.success { background:var(--ok); color:white; }
.btn.small { min-height:36px; min-width:86px; padding:8px 12px; border-radius:10px; font-size:13px; line-height:1.2; }
.btn[disabled], .is-readonly .write-only { opacity:.48; cursor:not-allowed; pointer-events:none; }
.card, .table-card, .glass-card { background:var(--glass); backdrop-filter:blur(18px) saturate(135%); border:1px solid var(--line); border-radius:22px; padding:18px; box-shadow:var(--shadow); }
.notice { border:1px solid var(--line); border-radius:16px; padding:12px 14px; margin-bottom:14px; background:rgba(238,242,255,.82); color:var(--muted); font-weight:700; }
.notice.info { border-color:rgba(99,102,241,.18); }
.stat-card { position:relative; overflow:hidden; min-height:132px; transition:.16s ease; }
.stat-card:hover { transform:translateY(-2px); }
.stat-card::after { content:""; position:absolute; inset:auto -30px -45px auto; width:140px; height:140px; border-radius:50%; opacity:.18; background:currentColor; }
.stat-card.warn { color:#b45309; background:linear-gradient(135deg,#fff7ed 0%,rgba(255,255,255,.78) 74%); border-color:rgba(217,119,6,.24); }
.stat-card.bad { color:#dc2626; background:linear-gradient(135deg,#fef2f2 0%,rgba(255,255,255,.78) 74%); border-color:rgba(220,38,38,.24); }
.stat-card.info { color:#2563eb; background:linear-gradient(135deg,#eff6ff 0%,rgba(255,255,255,.78) 74%); border-color:rgba(37,99,235,.22); }
.stat-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; color:var(--text); }
.stat-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:15px; background:rgba(255,255,255,.68); box-shadow:var(--soft); }
.metric { font-size:31px; font-weight:950; margin-top:9px; letter-spacing:-.035em; color:var(--text); }
.kv:last-child { border-bottom:0; }
.prewrap { white-space:pre-wrap; word-break:break-word; }
.logbox { white-space:pre-wrap; overflow:auto; max-height:70vh; direction:ltr; text-align:left; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; background:#111827; color:#f9fafb; border:1px solid var(--line); border-radius:14px; padding:14px; }
.tabs { display:flex; gap:8px; flex-wrap:wrap; }
.tabs a { min-height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:rgba(255,255,255,.66); font-weight:750; }
.tabs a.active { color:white; background:var(--accent); border-color:var(--accent); }
.danger-zone { border-color:rgba(239,68,68,.30); background:rgba(239,68,68,.06); }
.success-zone { border-color:rgba(34,197,94,.30); background:rgba(34,197,94,.06); }

/* Phase 25: breadcrumb tokens from centralized navigation */
.crumb-sep {
  color: var(--text-muted);
  margin: 0 6px;
}
[dir="rtl"] .crumb-sep {
  margin: 0 6px;
}

/* Phase 26: protected deposit proof previews */
.deposit-proof-card .proof-preview {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  padding: 10px;
  max-width: 560px;
}
.deposit-proof-card .proof-preview img {
  display: block;
  width: 100%;
  max-height: 560px;
  object-fit: contain;
  border-radius: 12px;
  background: #fff;
}
.deposit-proof-card .proof-text {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(255,255,255,.72);
}

/* Phase 27: operations cards and command references */
.btn.warning { background:var(--warn); color:white; }
.ops-card { border-color:rgba(37,99,235,.14); background:rgba(255,255,255,.82); }
.small-log { max-height:180px; font-size:12px; padding:10px; }
.command-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.command-grid > div { display:grid; gap:5px; padding:10px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.70); min-width:0; }
.command-grid strong { font-size:13px; }
.command-grid code { display:block; overflow:auto; white-space:nowrap; }
