*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #12151f;--bg-card: #191d2b;--bg-hover: #1f2335;--border: #252a3a;--border-light: #2e3448;--text: #f0e6cc;--text-muted: #7a7060;--text-dim: #3a3428;--accent: #f5a623;--accent-dim: rgba(245, 166, 35, .15);--green: #4aff7a;--blue: #4a6aff;--orange: #ff7a4a;--serif: "Fraunces", Georgia, serif;--mono: "DM Mono", "Courier New", monospace;--ruled: repeating-linear-gradient( to bottom, transparent, transparent 23px, rgba(240, 230, 204, .025) 23px, rgba(240, 230, 204, .025) 24px )}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--serif);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:var(--mono);cursor:pointer;border:none;background:none}.shell{min-height:100vh;display:flex;flex-direction:column}.header{border-bottom:1px solid var(--border);padding:16px 40px;display:flex;align-items:center;gap:14px}.header-title{font-family:var(--serif);font-size:22px;font-weight:600;font-style:italic;color:var(--text);letter-spacing:-.01em}.header-sub{font-family:var(--mono);font-size:11px;color:var(--text-muted);letter-spacing:.08em}.main{flex:1;padding:32px 40px 64px;max-width:1140px;margin:0 auto;width:100%}.filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:28px;flex-wrap:wrap}.filter-label{font-family:var(--mono);font-size:10px;color:var(--text-muted);letter-spacing:.1em;margin-right:4px}.filter-pill{font-family:var(--mono);font-size:11px;padding:4px 12px;border-radius:99px;border:1px solid var(--border-light);color:var(--text-muted);background:transparent;transition:all .12s;letter-spacing:.04em}.filter-pill:hover{border-color:var(--accent);color:var(--accent)}.filter-pill.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px}@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.grid{grid-template-columns:1fr}}.card{background:var(--bg-card);background-image:var(--ruled);border:1px solid var(--border);border-radius:6px;padding:16px;cursor:pointer;transition:transform .12s,border-color .12s,background-color .12s;display:flex;flex-direction:column;gap:10px}.card:hover{transform:translateY(-2px);border-color:var(--border-light);background-color:var(--bg-hover)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.card-id{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.06em;flex-shrink:0}.card-name{font-family:var(--serif);font-size:15px;font-weight:500;color:var(--text);line-height:1.3;flex:1}.card-body{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.card-labels{display:flex;flex-wrap:wrap;gap:4px;flex:1}.label-chip{font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:99px;border:1px solid var(--border-light);color:var(--text-muted);letter-spacing:.02em}.card-accuracy{text-align:right;flex-shrink:0}.accuracy-value{font-family:var(--serif);font-size:24px;font-weight:300;font-style:italic;color:var(--text);line-height:1}.accuracy-label{font-family:var(--mono);font-size:9px;color:var(--text-muted);letter-spacing:.1em;margin-top:2px}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid var(--border)}.card-meta{display:flex;align-items:center;gap:8px}.classifier-badge{font-family:var(--mono);font-size:9px;padding:2px 7px;border-radius:3px;letter-spacing:.06em;font-weight:500}.badge-knn{background:#4a6aff26;color:#6a8aff}.badge-centroid{background:#ff7a4a26;color:#ff9a6a}.badge-linear{background:#4aff7a26;color:#4aff7a}.card-date{font-family:var(--mono);font-size:10px;color:var(--text-muted)}.sparkline{display:block;opacity:.85}.pagination{display:flex;justify-content:center;align-items:center;gap:6px}.page-btn{font-family:var(--mono);font-size:12px;padding:6px 12px;border-radius:4px;border:1px solid var(--border-light);color:var(--text-muted);background:transparent;transition:all .1s}.page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.page-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.page-btn:disabled{opacity:.3;cursor:default}.detail-back{font-family:var(--mono);font-size:11px;color:var(--text-muted);letter-spacing:.06em;margin-bottom:28px;display:inline-flex;align-items:center;gap:6px;transition:color .1s}.detail-back:hover{color:var(--accent);cursor:pointer}.detail-id{font-family:var(--mono);font-size:13px;color:var(--accent);letter-spacing:.1em;margin-bottom:6px}.detail-name{font-family:var(--serif);font-size:32px;font-weight:500;font-style:italic;line-height:1.15;margin-bottom:24px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}@media(max-width:600px){.detail-grid{grid-template-columns:1fr}}.detail-section{border:1px solid var(--border);border-radius:6px;padding:18px;background:var(--bg-card)}.detail-section-label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--text-muted);margin-bottom:10px}.detail-accuracy{font-family:var(--serif);font-size:48px;font-weight:300;font-style:italic;color:var(--text);line-height:1}.detail-meta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.embed-block{margin-top:24px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.embed-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-card)}.embed-title{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--text-muted)}.copy-btn{font-family:var(--mono);font-size:10px;padding:3px 10px;border-radius:3px;border:1px solid var(--border-light);color:var(--text-muted);transition:all .1s}.copy-btn:hover{border-color:var(--accent);color:var(--accent)}.copy-btn.copied{border-color:var(--green);color:var(--green)}.embed-code{padding:14px;font-family:var(--mono);font-size:12px;color:#8ab4cc;background:#0d1018;overflow-x:auto;white-space:pre;line-height:1.6}.state-msg{text-align:center;padding:64px 0;font-family:var(--mono);font-size:13px;color:var(--text-muted)}.lineage-link{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
