:root{
  --bg:#f6f5f1;
  --panel:#ffffff;
  --muted:#5b6573;
  --text:#111827;
  --line:#e5e7eb;
  --accent:#1d4ed8;
  --accent2:#0f766e;
  --warn:#b45309;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);background:linear-gradient(180deg,#fbfaf7,var(--bg));color:var(--text);}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
.site-header{position:sticky;top:0;z-index:10;background:rgba(251,250,247,0.90);backdrop-filter: blur(8px);border-bottom:1px solid var(--line);}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}
.brand-title{font-weight:750;letter-spacing:0.2px}
.brand-subtitle{color:var(--muted);font-size:13px;margin-top:4px}
.nav a{color:var(--muted);text-decoration:none;margin-left:14px;font-size:14px}
.nav a:hover{color:var(--text)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin:18px 0;box-shadow:0 10px 24px rgba(17,24,39,0.08);}
h2{margin:0 0 12px 0}
.small{color:var(--muted);font-size:13px;line-height:1.45}
.controls{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;align-items:end;}
.control{grid-column:span 3;}
.control.search{grid-column:span 6;}
.control.actions{grid-column:span 6;display:flex;gap:10px;justify-content:flex-end;}
label{display:block;font-size:12px;color:var(--muted);margin:0 0 6px 0}
select,input[type="search"],input[type="range"]{width:100%;}
select,input[type="search"]{background:#ffffff;border:1px solid var(--line);color:var(--text);padding:10px 10px;border-radius:10px;outline:none;}
select:focus,input[type="search"]:focus{border-color:rgba(29,78,216,0.45);box-shadow:0 0 0 3px rgba(29,78,216,0.10);}
input[type="search"]::placeholder{color:#9aa3af}
.btn{background:#ffffff;border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:10px;cursor:pointer;}
.btn:hover{border-color:#cbd5e1}
.btn-primary{background:linear-gradient(180deg,rgba(29,78,216,0.10),rgba(29,78,216,0.06));border-color:rgba(29,78,216,0.35);}
.meta{display:flex;align-items:center;justify-content:space-between;margin:14px 0 8px 0;}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;}
table{width:100%;border-collapse:collapse}
th,td{padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{position:sticky;top:0;background:#fafafa;text-align:left;font-size:12px;color:var(--muted)}
td{font-size:13px;line-height:1.35}
tbody tr:hover{background:rgba(29,78,216,0.05);cursor:pointer}
.pager{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.hidden{display:none !important;}
.detail-head{display:flex;align-items:center;justify-content:space-between}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 12px 0;}
.detail-card{background:#fafafa;border:1px solid var(--line);border-radius:12px;padding:10px;}
.k{color:var(--muted);font-size:12px;margin-bottom:4px}
.v{font-weight:650}
.quote{font-family:var(--mono);background:#fbfbfb;border:1px solid var(--line);border-radius:12px;padding:12px;white-space:pre-wrap;line-height:1.5;}
mark{background:rgba(180,83,9,0.12);border:1px solid rgba(180,83,9,0.18);color:var(--text);padding:0 2px;border-radius:4px;}
.chart{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fbfbfb;}
.bar{display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:10px;}
.bar:hover{background:rgba(29,78,216,0.05);cursor:pointer}
.bar .label{width:210px;color:var(--muted);font-size:12px}
.stack{flex:1;height:14px;border-radius:999px;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb;display:flex;}
.seg-citizen{background:rgba(29,78,216,0.70)}
.seg-person{background:rgba(15,118,110,0.70)}
.seg-unclear{background:rgba(180,83,9,0.65)}
.bar .num{width:70px;text-align:right;color:var(--muted);font-size:12px}
.legend{margin-top:10px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;border:1px solid #e5e7eb}
.swatch-citizen{background:rgba(29,78,216,0.70)}
.swatch-person{background:rgba(15,118,110,0.70)}
.swatch-unclear{background:rgba(180,83,9,0.65)}
.site-footer{border-top:1px solid var(--line);margin-top:24px;padding:14px 0;color:var(--muted)}
@media (max-width:900px){
  .control{grid-column:span 6;}
  .control.search{grid-column:span 12;}
  .control.actions{grid-column:span 12;justify-content:flex-start;}
  .detail-grid{grid-template-columns:repeat(2,1fr);}
  .bar .label{width:140px}
}


/* ---------- Mobile optimizations (v4) ---------- */
.nav-toggle{
  display:none;
  background:#ffffff;
  border:1px solid var(--line);
  color:var(--text);
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
  font-size:16px;
}
.mobile-hint{display:none}

/* Improve tap targets */
select,input[type="search"],.btn{min-height:44px}
th,td{padding:12px 10px}

/* Make long quotes easier to read */
td:last-child{max-width:720px}

/* Responsive table-to-cards */
@media (max-width: 720px){
  .site-header .wrap{gap:10px}
  .brand-subtitle{display:none}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  .nav{
    display:none;
    position:absolute;
    right:16px;
    top:58px;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:12px;
    padding:10px;
    box-shadow:0 10px 24px rgba(17,24,39,0.12);
  }
  .nav a{display:block;margin:8px 0}

  .mobile-hint{display:block;margin-bottom:6px}

  /* Controls become single column */
  .controls{grid-template-columns:1fr}
  .control,.control.search,.control.actions{grid-column:1 / -1}
  .control.actions{justify-content:flex-start;flex-wrap:wrap}
  .control.actions .btn{flex:1 1 160px}

  /* Card layout */
  .table-wrap{border:none}
  table{border-collapse:separate;border-spacing:0 10px}
  thead{display:none}
  tbody tr{
    display:block;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 10px 24px rgba(17,24,39,0.06);
    padding:10px 12px;
  }
  tbody td{
    display:block;
    border-bottom:none;
    padding:6px 0;
  }
  tbody td:nth-child(1)::before{content:"Header 1";display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
  tbody td:nth-child(2)::before{content:"Section";display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
  tbody td:nth-child(3)::before{content:"Term";display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
  tbody td:nth-child(4)::before{content:"Determination";display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
  tbody td:nth-child(5)::before{content:"Confidence";display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
  tbody td:nth-child(6)::before{content:"Quotation";display:block;color:var(--muted);font-size:12px;margin-bottom:2px}

  .detail-grid{grid-template-columns:1fr}
  .bar .label{width:120px}
}

/* Slightly larger typography on very small devices */
@media (max-width: 420px){
  body{font-size:15px}
  .brand-title{font-size:16px}
}


/* --- Plots inside Explore --- */
.plots{
  display:grid;
  gap:14px;
  margin: 14px 0 6px 0;
}
@media (min-width: 900px){
  .plots{ grid-template-columns: 1fr 1fr; align-items: stretch; }
}
.plot-card{
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  background: var(--panel);
}
.plot-card h3{ margin: 0 0 6px 0; font-size: 15px; letter-spacing: -.01em; }
.chartBox{
  height: 260px; /* fixed height (prevents vertical expansion) */
  width: 100%;
  position: relative;
}
.chartBox canvas{
  width: 100% !important;
  height: 100% !important;
  display: block;
}
