// JURISDICTIONS PLATFORM — design tokens (forest-green "law/authority" accent)
const Tjx = window.ArbiterTokens;

const jx = {
  // Accent — forest green
  forest:       '#166534',
  forestDeep:   '#14532D',
  forestLight:  '#86EFAC',
  forestBg:     'rgba(22,101,52,0.07)',
  forestBorder: 'rgba(22,101,52,0.22)',

  // Secondary palette
  indigo:    '#4338CA',
  indigoBg:  'rgba(67,56,202,0.08)',
  violet:    '#7C3AED',
  violetBg:  'rgba(124,58,237,0.08)',
  crimson:   '#B91C1C',
  crimsonBg: 'rgba(185,28,28,0.08)',
  amber:     '#B45309',
  amberBg:   'rgba(180,83,9,0.08)',
  emerald:   '#059669',
  emeraldBg: 'rgba(5,150,105,0.08)',
  teal:      '#0D9488',
  tealBg:    'rgba(13,148,136,0.08)',
  slate:     '#475569',
  slateBg:   'rgba(71,85,105,0.08)',
  navy:      '#1E3A8A',
  navyBg:    'rgba(30,58,138,0.08)',

  // Layout
  container: { flex: 1, overflow: 'auto', background: Tjx.color.bg.primary },
  header: {
    padding: '16px 24px', borderBottom: `1px solid ${Tjx.color.border.light}`,
    background: Tjx.color.bg.card, display: 'flex', alignItems: 'center', justifyContent: 'space-between',
  },
  headerTitle: { display: 'flex', alignItems: 'center', gap: '12px' },
  jxIcon: {
    width: '32px', height: '32px', borderRadius: '6px',
    background: 'linear-gradient(135deg, #166534 0%, #14532D 100%)',
    display: 'flex', alignItems: 'center', justifyContent: 'center',
    color: '#fff', fontSize: '15px', fontWeight: 700,
  },
  title:    { fontSize: '18px', fontWeight: 700, color: Tjx.color.text.primary, letterSpacing: '-0.02em' },
  subtitle: { fontSize: '12px', color: Tjx.color.text.tertiary, marginTop: '1px' },

  tabs: {
    display: 'flex', gap: '0', borderBottom: `1px solid ${Tjx.color.border.light}`,
    background: Tjx.color.bg.card, padding: '0 24px', overflowX: 'auto',
  },
  tab: {
    padding: '10px 16px', fontSize: '12px', fontWeight: 500,
    color: Tjx.color.text.tertiary, cursor: 'pointer', border: 'none', background: 'none',
    borderBottom: '2px solid transparent', fontFamily: Tjx.font.family,
    transition: 'all 0.15s', marginBottom: '-1px', whiteSpace: 'nowrap',
    display: 'flex', alignItems: 'center', gap: '6px',
  },
  tabActive: { color: '#166534', borderBottomColor: '#166534', fontWeight: 600 },
  body: { padding: '20px 24px' },

  card:  { background: Tjx.color.bg.card, border: `1px solid ${Tjx.color.border.light}`, borderRadius: Tjx.radius.lg, overflow: 'hidden', marginBottom: '16px' },
  cardH: { padding: '10px 16px', borderBottom: `1px solid ${Tjx.color.border.light}`, fontSize: '12px', fontWeight: 600, color: Tjx.color.text.primary, display: 'flex', alignItems: 'center', justifyContent: 'space-between' },

  stat:      { display: 'flex', flexDirection: 'column', gap: '2px', padding: '12px 16px', background: Tjx.color.bg.secondary, borderRadius: '6px', border: `1px solid ${Tjx.color.border.light}` },
  statLabel: { fontSize: '10px', fontWeight: 600, color: Tjx.color.text.tertiary, textTransform: 'uppercase', letterSpacing: '0.08em' },
  statValue: { fontSize: '22px', fontWeight: 700, letterSpacing: '-0.02em', lineHeight: 1.1, color: Tjx.color.text.primary },
  statDelta: { fontSize: '10px', fontWeight: 500, marginTop: '2px' },

  kpiPill:      { display: 'flex', alignItems: 'center', gap: '8px', padding: '6px 14px', borderRadius: '8px', background: Tjx.color.bg.secondary, border: `1px solid ${Tjx.color.border.light}` },
  kpiPillLabel: { fontSize: '10px', fontWeight: 600, color: Tjx.color.text.tertiary, textTransform: 'uppercase', letterSpacing: '0.06em' },
  kpiPillValue: { fontSize: '14px', fontWeight: 700, color: Tjx.color.text.primary, fontFamily: Tjx.font.mono },

  tag:  { display: 'inline-flex', alignItems: 'center', padding: '2px 8px', borderRadius: '10px', fontSize: '10px', fontWeight: 600 },
  pill: { display: 'inline-flex', alignItems: 'center', padding: '3px 10px', borderRadius: '12px', fontSize: '11px', fontWeight: 500, gap: '4px' },

  th: { fontSize: '10px', fontWeight: 600, color: Tjx.color.text.tertiary, textTransform: 'uppercase', letterSpacing: '0.08em', padding: '8px 12px', textAlign: 'left', background: Tjx.color.bg.secondary, borderBottom: `1px solid ${Tjx.color.border.light}`, whiteSpace: 'nowrap' },
  td: { fontSize: '12px', color: Tjx.color.text.primary, padding: '10px 12px', borderBottom: `1px solid ${Tjx.color.border.light}`, verticalAlign: 'middle' },

  btnPrimary:   { padding: '6px 14px', borderRadius: '6px', background: '#166534', border: 'none', color: '#fff', fontSize: '12px', fontWeight: 700, cursor: 'pointer', fontFamily: Tjx.font.family, display: 'inline-flex', alignItems: 'center', gap: '6px' },
  btnSecondary: { padding: '5px 12px', borderRadius: '6px', border: `1px solid ${Tjx.color.border.light}`, background: Tjx.color.bg.card, fontSize: '11px', fontWeight: 500, color: Tjx.color.text.secondary, cursor: 'pointer', fontFamily: Tjx.font.family, display: 'inline-flex', alignItems: 'center', gap: '5px' },
  btnGhost:     { padding: '4px 10px', borderRadius: '5px', border: 'none', background: 'transparent', fontSize: '11px', fontWeight: 500, color: '#166534', cursor: 'pointer', fontFamily: Tjx.font.family, display: 'inline-flex', alignItems: 'center', gap: '4px' },

  filterBtn:       { padding: '4px 10px', borderRadius: Tjx.radius.md, border: `1px solid ${Tjx.color.border.light}`, background: Tjx.color.bg.card, fontSize: '11px', fontWeight: 500, color: Tjx.color.text.secondary, cursor: 'pointer', fontFamily: Tjx.font.family },
  filterBtnActive: { background: '#166534', color: '#fff', borderColor: '#166534' },

  courtTypeColor: (t) => ({
    'Federal':     { bg: 'rgba(30,58,138,0.08)',  color: '#1E3A8A' },
    'State':       { bg: 'rgba(22,101,52,0.08)',  color: '#166534' },
    'Appellate':   { bg: 'rgba(67,56,202,0.08)',  color: '#4338CA' },
    'Supreme':     { bg: 'rgba(124,58,237,0.08)', color: '#7C3AED' },
    'Bankruptcy':  { bg: 'rgba(13,148,136,0.08)', color: '#0D9488' },
    'Administrative': { bg: 'rgba(71,85,105,0.08)', color: '#475569' },
    'Tribal':      { bg: 'rgba(180,83,9,0.08)',   color: '#B45309' },
  }[t] || { bg: 'rgba(71,85,105,0.06)', color: '#475569' }),

  admissionStatusColor: (s) => ({
    'Active':       { bg: 'rgba(5,150,105,0.08)',  color: '#059669' },
    'Pending':      { bg: 'rgba(180,83,9,0.08)',   color: '#B45309' },
    'Suspended':    { bg: 'rgba(185,28,28,0.08)',  color: '#B91C1C' },
    'Inactive':     { bg: 'rgba(71,85,105,0.08)',  color: '#475569' },
    'CLE Due':      { bg: 'rgba(180,83,9,0.08)',   color: '#B45309' },
  }[s] || { bg: 'rgba(71,85,105,0.06)', color: '#475569' }),

  phvStatusColor: (s) => ({
    'Granted':  { bg: 'rgba(5,150,105,0.08)',  color: '#059669' },
    'Pending':  { bg: 'rgba(180,83,9,0.08)',   color: '#B45309' },
    'Denied':   { bg: 'rgba(185,28,28,0.08)',  color: '#B91C1C' },
    'Expired':  { bg: 'rgba(71,85,105,0.08)',  color: '#475569' },
  }[s] || { bg: 'rgba(71,85,105,0.06)', color: '#475569' }),

  severityColor: (s) => ({
    'Critical': { bg: 'rgba(185,28,28,0.10)', color: '#B91C1C' },
    'High':     { bg: 'rgba(180,83,9,0.10)',  color: '#B45309' },
    'Medium':   { bg: 'rgba(67,56,202,0.10)', color: '#4338CA' },
    'Low':      { bg: 'rgba(71,85,105,0.08)', color: '#475569' },
    'Info':     { bg: 'rgba(22,101,52,0.08)', color: '#166534' },
  }[s] || { bg: 'rgba(71,85,105,0.06)', color: '#475569' }),

  num: (n) => n == null ? '—' : n.toLocaleString(),
  fmtDate: (iso) => iso ? new Date(iso).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }) : '—',
  daysUntil: (iso) => {
    if (!iso) return null;
    const diff = Math.round((new Date(iso) - new Date()) / 86400000);
    return diff;
  },
};

window.__jx = jx;
