:root {
  --brand: #1e293b;
  --brand-accent: #d97706;
}
html, body { height: 100%; }
body { font-family: "Hiragino Sans", "Noto Sans JP", "Yu Gothic", system-ui, -apple-system, sans-serif; }
.demo-badge { background: #f59e0b; color: #1e293b; font-weight: 700; }
.card { background: #fff; border-radius: 0.9rem; box-shadow: 0 1px 3px rgba(15,23,42,.08), 0 8px 24px -12px rgba(15,23,42,.25); }
.nav-link { color: #cbd5e1; }
.nav-link.active { color: #fff; background: rgba(255,255,255,.12); }
.nav-link:hover { color: #fff; }
.status-pill { font-size: .72rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px; }
.st-unused { background: #e2e8f0; color: #475569; }
.st-trial { background: #dbeafe; color: #1d4ed8; }
.st-active { background: #dcfce7; color: #15803d; }
.st-suspended { background: #fee2e2; color: #b91c1c; }
.st-invited { background: #fef3c7; color: #b45309; }
.st-accepted { background: #dcfce7; color: #15803d; }
.st-revoked, .st-disabled { background: #e2e8f0; color: #64748b; }
.st-enabled { background: #dcfce7; color: #15803d; }
.st-draft { background: #e2e8f0; color: #475569; }
.st-registered { background: #e0e7ff; color: #4338ca; }
.st-verified { background: #cffafe; color: #0e7490; }
.st-error { background: #fee2e2; color: #b91c1c; }
.st-ok { background: #dcfce7; color: #15803d; }
.toast { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 60; max-width: 26rem; }
.modal-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.55); z-index: 50; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.spin { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
table.grid-table th { text-align: left; font-size: .72rem; color: #64748b; text-transform: none; padding: .5rem .75rem; border-bottom: 1px solid #e2e8f0; white-space: nowrap; }
table.grid-table td { padding: .6rem .75rem; border-bottom: 1px solid #f1f5f9; font-size: .85rem; vertical-align: middle; }
table.grid-table tr:hover td { background: #f8fafc; }
.kbd { background:#f1f5f9; border:1px solid #cbd5e1; border-radius:.3rem; padding:.05rem .35rem; font-size:.72rem; }
.step-badge { display:inline-flex; align-items:center; gap:.4rem; font-size:.75rem; color:#64748b; }
