:root{--bg: #0d1117;--bg-card: #161b22;--bg-hover: #1c2128;--border: #30363d;--text: #e6edf3;--text-dim: #8b949e;--text-muted: #6e7681;--accent: #58a6ff;--green: #3fb950;--green-bg: rgba(63, 185, 80, .08);--red: #f85149;--red-bg: rgba(248, 81, 73, .08);--yellow: #d29922;--yellow-bg: rgba(210, 153, 34, .08);--purple: #bc8cff;--purple-bg: rgba(188, 140, 255, .08);--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}#app{max-width:1400px;margin:0 auto;padding:24px 20px 60px}header{margin-bottom:24px}h1{font-size:1.5rem;font-weight:600;display:flex;align-items:center;gap:8px}h1 svg{width:28px;height:28px}.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:16px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.control-group{display:flex;flex-direction:column;gap:4px}.control-group label{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.dropdown{position:relative;min-width:220px}.dropdown-trigger{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:6px;font-size:.9rem;cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;outline:none}.dropdown-trigger:hover,.dropdown-trigger:focus{border-color:var(--accent)}.dropdown-trigger .arrow{font-size:.7rem;color:var(--text-dim);flex-shrink:0}.dropdown-panel{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:320px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;z-index:100;padding:4px 0}.dropdown-panel.open{display:block}.dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:.85rem;color:var(--text)}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item.selected{color:var(--accent);font-weight:600}.dropdown-item input{width:16px;height:16px;accent-color:var(--accent)}.dropdown-item .item-date{font-weight:500}.dropdown-item .item-notes{color:var(--text-muted);font-size:.75rem;margin-left:4px}.dropdown-item.all-tests{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:8px;font-weight:600}input[type=text]{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:6px;font-size:.9rem;outline:none}input[type=text]:focus{border-color:var(--accent)}.toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.85rem;color:var(--text-dim);padding-bottom:8px}.toggle input{width:16px;height:16px;accent-color:var(--accent)}.charts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;margin-top:20px}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;overflow:hidden}.chart-card .header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.chart-card .title{font-size:.9rem;font-weight:600}.chart-card .latest{display:flex;align-items:center;gap:6px;font-size:.8rem}.chart-card .latest-value{font-weight:600;font-size:1.1rem}.flag-badge{padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.flag-below,.flag-above,.flag-abnormal{background:var(--red-bg);color:var(--red)}.flag-in,.flag-normal{background:var(--green-bg);color:var(--green)}.flag-na{background:#8b949e1a;color:var(--text-muted)}.chart-container{width:100%;height:200px}.loading{text-align:center;padding:60px;color:var(--text-dim)}.loading .spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.error{text-align:center;padding:40px;color:var(--red)}.empty{text-align:center;padding:40px;color:var(--text-dim)}@media (max-width: 600px){.charts-grid{grid-template-columns:1fr}.controls{flex-direction:column;align-items:stretch}.toggle{padding-bottom:0}}
