
  :root { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans"; }
  body { margin: 24px; }
  h1 { margin-bottom: 4px; }
  .sub { color:#555; margin:0 0 16px 0; }
  .controls { display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; }
  .controls input, .controls select { padding:8px 10px; border:1px solid #ddd; border-radius:8px; }
  .controls .cols { display:flex; align-items:center; gap:8px; }
  table { width:100%; border-collapse:collapse; }
  thead th { text-align:left; position: sticky; top: 0; background:#fafafa; border-bottom:2px solid #eee; }
  th, td { padding: 12px 10px; border-bottom:1px solid #eee; vertical-align:top; }
  tr:hover { background:#fcfcfc; }
  tr.month-row td { background:#f6f7fb; color:#222; font-weight:700; border-top:2px solid #e6e8f5; }
  .tag { display:inline-block; padding:3px 8px; border-radius:999px; background:#eef2ff; color:#3730a3; font-size:12px; }
  .hidden { display:none; }
  @media (max-width: 800px){
    table, thead, tbody, th, td, tr { display:block; }
    thead { display:none; }
    tr { margin-bottom: 10px; border:1px solid #f0f0f0; border-radius:10px; padding:8px; }
    tr.month-row { border:none; padding:0; margin:16px 0 6px 0; }
    td { border:none; padding:6px 8px; }
    td::before { content: attr(data-label); font-weight:600; display:block; margin-bottom:3px; color:#333; }
  }
  footer { margin-top: 18px; color:#666; font-size:0.9rem; }
