*{box-sizing:border-box}
:root{--fg:#111;--bg:#fff;--muted:#666;--line:#e6e6ef;--pill:#f7f7fb}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;color:var(--fg);background:var(--bg)}
header{padding:22px 18px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5}
h1{margin:0 0 4px;font-size:24px}
.sub{margin:0;color:var(--muted)}
main{max-width:1100px;margin:22px auto;padding:0 16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 1px 2px rgba(20,20,20,.03)}
.card h3{margin:0 0 6px;font-size:16px}
.card p{margin:0 0 8px;color:#333}
.badge{display:inline-block;padding:8px 10px;border:1px solid #111;border-radius:10px;background:#fff}
.btn{display:inline-block;padding:10px 14px;border:1px solid #111;border-radius:12px;text-decoration:none;color:#111}
.btn:hover{background:#111;color:#fff}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
table{border-collapse:collapse;width:100%}
th,td{border:1px solid var(--line);padding:10px;text-align:left;font-size:14px}
th{background:var(--pill)}
.small{color:var(--muted);font-size:12px}
footer{margin:32px 0;padding:16px;color:var(--muted);text-align:center;font-size:12px}
input[type="search"]{flex:1;min-width:240px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:15px}
.tabs{display:flex;gap:8px;margin:10px 0}
.tab{padding:8px 12px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer}
.tab.active{background:#111;color:#fff;border-color:#111}
.panel{display:none}.panel.active{display:block}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.meta{color:#666;font-size:12px;margin-bottom:6px}

/* Simple loading indicator.  This is hidden once data has finished loading. */
#loading{display:block;text-align:center;margin:20px;font-size:13px;color:var(--muted)}
.hidden{display:none}