/* Page-specific overrides. Prefer style.css tokens. */

/* ── Toast notifications ─────────────────────────────────────── */
#toast-container {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}
.toast {
  padding: 0.65rem 1.1rem;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 500;
  opacity: 0;
  transform: translateX(20px);
  transition: opacity 0.25s, transform 0.25s;
  pointer-events: auto;
  max-width: 360px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.toast-show {
  opacity: 1;
  transform: translateX(0);
}
.toast-success {
  background: #0d3320;
  border: 1px solid #2ea043;
  color: #7ee2a8;
}
.toast-error {
  background: #3b1519;
  border: 1px solid #7a2a32;
  color: #ffb4bc;
}
.toast-info {
  background: #1a2a3d;
  border: 1px solid #2c4a6a;
  color: #9fd0ff;
}

/* ── Sidebar enhancements ────────────────────────────────────── */
.sidebar-heading {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin: 1rem 0 0.35rem;
  padding: 0 0.6rem;
  font-weight: 600;
}
.sidebar-heading:first-child {
  margin-top: 0;
}

/* Mobile sidebar toggle */
.sidebar-toggle {
  display: none;
  background: none;
  border: 1px solid var(--card-border);
  color: var(--fg);
  padding: 0.35rem 0.6rem;
  border-radius: 6px;
  font-size: 0.85rem;
  cursor: pointer;
  margin-top: 0;
}
@media (max-width: 800px) {
  .sidebar-toggle { display: inline-block; }
  .sidebar { display: none; }
  .sidebar.sidebar-open { display: block; }
}

/* ── Admin pages ─────────────────────────────────────────────── */

/* Dashboard stat cards */
body[data-page="admin_dashboard"] .grid .card {
  transition: border-color 0.15s;
}
body[data-page="admin_dashboard"] .grid .card:hover {
  border-color: var(--accent);
}

/* Dashboard quick-action cards */
body[data-page="admin_dashboard"] a.card {
  cursor: pointer;
}
body[data-page="admin_dashboard"] a.card:hover {
  border-color: var(--link);
  text-decoration: none;
}
body[data-page="admin_dashboard"] a.card strong {
  color: var(--link);
}

/* Invite page */
.invite-code {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}
.btn-copy {
  background: none;
  border: 1px solid var(--card-border);
  color: var(--muted);
  padding: 0.15rem 0.35rem;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.8rem;
  margin-top: 0;
  margin-left: 0.35rem;
}
.btn-copy:hover {
  border-color: var(--link);
  color: var(--link);
  background: none;
}
.scopes-cell {
  font-size: 0.78rem;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Badge variants */
.badge-used {
  background: var(--tag-bg);
  border-color: var(--card-border);
  color: var(--muted);
}
.badge-expired {
  background: var(--err-bg);
  border-color: var(--err-border);
  color: var(--err-fg);
}
.tag-active {
  background: #0d3320;
  color: #7ee2a8;
}

/* Action badges in logs */
.action-badge {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 4px;
  font-size: 0.78rem;
  font-family: monospace;
  background: var(--tag-bg);
  color: var(--badge-fg);
}
.action-invite { background: #2a1a3d; color: #c9a0ff; }
.action-user { background: #1a2a3d; color: #9fd0ff; }
.action-setting { background: #2a2210; color: #ffd27a; }
.action-content { background: #0d3320; color: #7ee2a8; }
.action-business { background: #3b1519; color: #ffb4bc; }

.ts-cell {
  white-space: nowrap;
  font-size: 0.82rem;
}
.detail-cell {
  font-size: 0.82rem;
  max-width: 250px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Small buttons */
.btn-sm {
  padding: 0.3rem 0.6rem;
  font-size: 0.8rem;
  margin-top: 0;
}

/* Form groups */
.form-group {
  margin-bottom: 1rem;
}
.form-group label {
  margin-top: 0;
}
.form-control {
  width: 100%;
}

/* ── Toast in form pages ─────────────────────────────────────── */
.crumb .btn-ghost {
  margin-left: 0.5rem;
  padding: 0.25rem 0.6rem;
  font-size: 0.82rem;
}

/* ── Light theme overrides ───────────────────────────────────── */
[data-theme="light"] {
  color-scheme: light;
  --bg: #f5f7fa;
  --bg-elev: #ffffff;
  --fg: #1a2332;
  --muted: #5a6a7e;
  --card: #ffffff;
  --card-border: #d8dee6;
  --accent: #1a6ee0;
  --accent-hover: #1558b8;
  --link: #1a6ee0;
  --warn-bg: #fff8e6;
  --warn-border: #e6d4a0;
  --warn-fg: #8a6d1a;
  --err-bg: #fef0f0;
  --err-border: #e0b0b0;
  --err-fg: #c03040;
  --badge-bg: #e8f0fe;
  --badge-border: #b0c8f0;
  --badge-fg: #1a5ab8;
  --tag-bg: #eef2f7;
  --claim-bg: #f0f4f8;
}

/* ── Portal page additions ───────────────────────────────────── */
body[data-page="portal"] .actions {
  margin-bottom: 1.5rem;
}

/* ── Status page ─────────────────────────────────────────────── */
body[data-page="status"] .grid .card {
  text-align: center;
}
