*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#000;--surface:#111;--border:#333;--text:#fff;--text-secondary:#999;--primary:#fff;--primary-hover:#ccc;--focus-ring:0 0 0 3px #ffffff4d;--radius:8px;--font:"JetBrains Mono", "SF Mono", "Fira Code", "Consolas", monospace;--mono:"JetBrains Mono", "SF Mono", "Fira Code", "Consolas", monospace}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}#app{max-width:100%;padding:16px 0}header{margin-bottom:0;padding:0 16px}h1{letter-spacing:-.02em;margin-bottom:0;font-size:1.75rem;font-weight:700}.controls{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}#search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:200px;color:var(--text);outline:none;flex:1;padding:10px 14px;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}#search:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}.combobox{min-width:180px;position:relative}#category-filter{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);outline:none;padding:10px 32px 10px 14px;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}#category-filter:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}.combobox-arrow{pointer-events:none;color:var(--text-secondary);font-size:.75rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.combobox-list{z-index:100;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:240px;margin-top:2px;padding:4px 0;list-style:none;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.combobox-list.open{display:block}.combobox-list li{color:var(--text);cursor:pointer;padding:8px 14px;font-size:.875rem}.combobox-list li:hover,.combobox-list li.highlighted{background:#222}.combobox-list li.no-match{color:var(--text-secondary);cursor:default}.combobox-list li.no-match:hover{background:0 0}.table-wrapper{border:1px solid var(--border);background:var(--surface);border-radius:0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9375rem}thead th{background:var(--bg);border-bottom:2px solid var(--border);text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:12px 16px;font-size:.8125rem;font-weight:600;position:sticky;top:0}thead th.num{text-align:center;width:56px}thead th.sortable{cursor:pointer}thead th.sortable:hover{color:var(--text)}thead th.sortable:after{content:" ↕";opacity:.3;font-size:.75rem}thead th.sortable.asc:after{content:" ↑";opacity:1}thead th.sortable.desc:after{content:" ↓";opacity:1}tbody tr{border-bottom:1px solid var(--border);transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#ffffff0d}tbody td{vertical-align:middle;padding:10px 16px}.resource-link{color:inherit;text-decoration:none}.resource-link:hover{color:var(--primary);text-decoration:underline}tbody td.num{text-align:center;color:var(--text-secondary);font-size:.8125rem;font-family:var(--mono)}.categories{flex-wrap:wrap;gap:6px;display:flex}.category-tag{color:#fff;white-space:nowrap;cursor:pointer;background:#222;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-secondary);padding:48px 16px}.empty-state p{font-size:1rem}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin-top:0;padding:8px 0;display:flex}.pagination button{border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.875rem;font-family:var(--mono);cursor:pointer;border-radius:6px;padding:6px 14px;transition:background .1s,border-color .1s}.pagination button:hover:not(:disabled){background:#222;border-color:#444}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination button.active{color:#fff;background:0 0;border-color:#fff}.pagination button.active:hover{background:#222}.pagination .info{color:var(--text-secondary);padding:0 12px;font-size:.8125rem}@media (width<=640px){h1{font-size:1.375rem}.controls{flex-direction:column}#search,.combobox{width:100%}thead th,tbody td{padding:8px 10px}}
