/* Framework-independent components. Load tokens.css first. */
*,*::before,*::after{box-sizing:border-box}
.jeb-btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:48px;padding:.8rem 1.25rem;border:1px solid transparent;border-radius:var(--jeb-radius-sm);font:800 .875rem/1.3 var(--jeb-font);text-decoration:none;cursor:pointer;transition:background var(--jeb-duration),border-color var(--jeb-duration),transform var(--jeb-duration);background:var(--jeb-gold-400);color:#121722}
.jeb-btn:hover:not(:disabled):not([aria-disabled="true"]){background:var(--jeb-gold-300);transform:translateY(-1px)}
.jeb-btn--secondary{background:transparent;color:var(--jeb-text);border-color:var(--jeb-control-border)}
.jeb-btn--secondary:hover:not(:disabled):not([aria-disabled="true"]){background:var(--jeb-surface-raised);border-color:var(--jeb-muted)}
.jeb-btn--small{min-height:42px;padding:.6rem .9rem}
.jeb-btn:disabled,.jeb-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--jeb-focus);outline-offset:4px}
.jeb-card{padding:var(--jeb-space-5);border:1px solid var(--jeb-border);border-radius:var(--jeb-radius-md);background:var(--jeb-surface);color:var(--jeb-text)}
.jeb-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border:1px solid var(--jeb-border);border-radius:var(--jeb-radius-pill);font:800 .7rem/1.3 var(--jeb-font);letter-spacing:.01em;background:var(--jeb-surface);color:var(--jeb-muted)}
.jeb-badge--gold{color:var(--jeb-accent);background:var(--jeb-accent-subtle);border-color:transparent}
.jeb-badge--success{color:var(--jeb-success)}
.jeb-badge--danger{color:var(--jeb-danger)}
.jeb-label{display:block;font:800 .8rem/1.5 var(--jeb-font);margin-bottom:.5rem}
.jeb-field{display:block;width:100%;min-height:48px;padding:.8rem 1rem;background:var(--jeb-bg);border:1px solid var(--jeb-control-border);border-radius:var(--jeb-radius-sm);color:var(--jeb-text);font:400 1rem/1.5 var(--jeb-font)}
.jeb-field::placeholder{color:var(--jeb-muted)}
.jeb-field[aria-invalid="true"]{border-color:var(--jeb-danger)}
.jeb-help{color:var(--jeb-muted);font-size:.8rem;line-height:1.6;margin:.5rem 0 0}
.jeb-error{color:var(--jeb-danger);font-size:.8rem}
.jeb-tabs{display:flex;gap:.4rem;flex-wrap:wrap;padding:.3rem;background:var(--jeb-bg);border:1px solid var(--jeb-border);border-radius:var(--jeb-radius-sm)}
.jeb-tab{min-height:42px;padding:.65rem 1rem;border:0;border-radius:.35rem;background:none;color:var(--jeb-muted);font:800 .8rem/1.3 var(--jeb-font);cursor:pointer}
.jeb-tab[aria-selected="true"]{background:var(--jeb-surface-raised);color:var(--jeb-text);box-shadow:inset 0 -2px 0 var(--jeb-accent)}
.jeb-alert{padding:1rem 1.2rem;border:1px solid var(--jeb-border);border-left:3px solid var(--jeb-accent);border-radius:.5rem;background:var(--jeb-surface);font-size:.875rem;line-height:1.7}
.jeb-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--jeb-border);border-radius:.75rem}
.jeb-table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}
.jeb-table th{font-weight:800;color:var(--jeb-muted);background:var(--jeb-surface)}
.jeb-table td,.jeb-table th{padding:1rem;border-bottom:1px solid var(--jeb-border)}
.jeb-table tr:last-child td{border-bottom:0}
.jeb-table caption{text-align:left;padding:1rem;font-weight:800}
.jeb-empty{padding:2.5rem 1rem;text-align:center;color:var(--jeb-muted);border:1px dashed var(--jeb-border);border-radius:.75rem}
.jeb-skeleton{height:1rem;background:var(--jeb-border);border-radius:.3rem}
.jeb-link{color:var(--jeb-accent);text-underline-offset:4px}
.jeb-kicker{font:800 .7rem/1.5 var(--jeb-font);letter-spacing:.15em;text-transform:uppercase;color:var(--jeb-accent)}

