:root{color-scheme:light;--bg: #f4f5f6;--surface: #ffffff;--surface-hover: #eef0f1;--fg: #1a1a1a;--muted: #6b6f72;--border: #e1e4e6;--green-50: #eaf7e6;--green-300: #73d864;--green-500: #3dae2b;--green-700: #276f1b;--green-800: #1b5013;--accent: var(--green-500);--accent-strong: var(--green-700);--accent-hover: var(--green-800);--accent-fg: #ffffff;--warn-bg: #fdecea;--warn-fg: #9c2b2b;--info-bg: var(--green-50);--font-stack: "Roboto", "Segoe UI", system-ui, -apple-system, sans-serif;--size-brand: 20px;--size-body: 15px;--size-caption: 12px;--radius: 6px;--radius-card: 12px;--card-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 8px 24px rgba(0, 0, 0, .06);--row-hover: rgba(61, 174, 43, .11);--swatch-edge: rgba(0, 0, 0, .25)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #121614;--surface: #1b201d;--surface-hover: #242b27;--fg: #ecefea;--muted: #9aa39c;--border: #2a312c;--green-50: #1b241d;--accent: #5bc44a;--accent-strong: var(--green-700);--accent-hover: #2f8521;--warn-bg: #3a1f1f;--warn-fg: #f5b5b5;--info-bg: #1b241d;--row-hover: rgba(91, 196, 74, .12);--swatch-edge: rgba(255, 255, 255, .25);--card-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .22)}}*{box-sizing:border-box}html{font-family:var(--font-stack);font-size:var(--size-body)}body{margin:0;background:var(--bg);color:var(--fg);font-size:var(--size-body)}a{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;box-shadow:0 0 0 4px var(--surface)}button{font:inherit;font-weight:500;padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);cursor:pointer}button:hover:not(:disabled){background:var(--surface-hover)}button:disabled{opacity:.6;cursor:default}input[type=search]{font:inherit;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);min-width:180px}input[type=search]::placeholder{color:var(--muted)}input[type=checkbox]{accent-color:var(--green-500);margin:0}.muted{color:var(--muted)}.caption{font-size:var(--size-caption);color:var(--muted)}.centered{display:grid;place-items:center;min-height:60vh;padding:16px;color:var(--muted)}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:16px;min-height:60px;padding:8px 24px 12px;background:var(--surface);position:sticky;top:0;z-index:2}.app-header:after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--green-700),var(--green-500),var(--green-300))}.brand{display:flex;align-items:center;gap:12px;font-size:var(--size-brand)}.brand strong{font-weight:600}.brand-mark{width:10px;height:22px;border-radius:3px;background:var(--green-500);flex:none}.brand nav{display:flex;gap:12px;font-size:var(--size-body)}.brand nav a{text-decoration:none;font-weight:500}.brand nav a[aria-current=page]{color:var(--fg);border-bottom:2px solid var(--green-500);padding-bottom:2px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-actions .user{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 3px;border:1px solid var(--border);border-radius:999px;background:var(--surface-hover);font-size:13px;color:var(--fg)}.header-actions .avatar{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-strong);color:var(--accent-fg);font-size:11px;font-weight:700;flex:none}.pat-warning{background:var(--warn-bg);color:var(--warn-fg);padding:4px 10px;border-radius:var(--radius);font-weight:500;font-size:var(--size-caption)}.page{padding:16px 24px 32px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 0 12px}.toolbar .group{display:flex;gap:4px;align-items:center}.toolbar .segmented{gap:0;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.toolbar .segmented button{border:0;border-left:1px solid var(--border);border-radius:0;background:transparent;font-size:14px;font-weight:500;padding:8px 16px;transition:background .12s ease}.toolbar .segmented button:first-child{border-left:0;border-radius:999px 0 0 999px;padding-left:20px}.toolbar .segmented button:last-child{border-radius:0 999px 999px 0;padding-right:20px}.toolbar .segmented button.active{background:var(--accent-strong);color:var(--accent-fg);box-shadow:inset 0 1px #ffffff2e}.toolbar .segmented button.active:hover{background:var(--accent-hover)}.toolbar .range-label{font-size:15px;font-weight:500;white-space:nowrap}.toolbar select{font:inherit;padding:4px;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius)}.toolbar select[multiple]{vertical-align:top;max-height:8em}.toolbar .check{display:flex;align-items:center;gap:6px;font-weight:500;white-space:nowrap}.legend{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:13px;color:var(--muted)}.legend-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none}.legend-group li{display:flex;align-items:center;gap:6px;white-space:nowrap;padding:3px 10px;border-radius:999px;background:var(--surface-hover);font-size:12px;font-weight:500}.legend .swatch{width:12px;height:12px;border-radius:3px;border:1px solid var(--swatch-edge);flex:none}.legend .stripe{width:4px;height:14px;border-radius:2px;border:1px solid var(--swatch-edge);flex:none}.timeline-scroll{overflow:auto;position:relative;max-height:calc(100vh - 220px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--card-shadow)}.timeline-scroll svg{display:block;-webkit-user-select:none;user-select:none}.timeline-scroll g.row:hover rect.row-bg{fill:var(--row-hover)}.timeline-scroll rect.row-hit:focus-visible{stroke:var(--fg);stroke-width:2px}.timeline-scroll path.chevron{transition:transform .15s ease}.timeline-scroll.panning{cursor:grabbing}.timeline-axis{position:sticky;top:0;z-index:1;background:var(--surface)}.timeline-axis+svg{margin-top:calc(-1 * var(--axis-h))}.empty-state{margin:32px auto;padding:32px 24px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);color:var(--muted);font-size:15px;max-width:48ch;text-align:center}.empty-state .empty-glyph{display:block;margin:0 auto 12px;color:var(--green-500)}.empty-state p{margin:0}.banner{margin:0 0 12px;padding:8px 12px;border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-fg)}.banner.info{background:var(--info-bg);color:var(--fg);border:1px solid var(--border)}.panel{margin:16px 0 0;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--card-shadow)}.panel summary{padding:10px 14px;cursor:pointer;font-size:15px;font-weight:500;transition:background .12s ease}.panel summary:hover{background:var(--surface-hover);border-radius:var(--radius-card)}.panel summary .badge{margin-left:4px}.badge{display:inline-block;min-width:20px;padding:0 6px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--muted);font-size:var(--size-caption);font-weight:500;text-align:center}.panel ul{margin:0;padding:0 12px 12px 28px}.panel li{margin:6px 0;font-size:15px}.tooltip{opacity:0;transition:opacity .12s ease-out;position:fixed;pointer-events:none;max-width:360px;padding:8px 10px;border-radius:var(--radius);background:var(--surface);color:var(--fg);border:1px solid var(--border);box-shadow:0 4px 16px #00000026;z-index:3;font-size:var(--size-caption)}.tooltip.shown{opacity:1}.tooltip h4{margin:0 0 4px;font-size:var(--size-body);font-weight:500}.tooltip dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 8px}.tooltip dt{color:var(--muted)}.tooltip dd{margin:0}@media(max-width:700px){.app-header{padding:8px 12px 12px}.page{padding:12px 12px 24px}}@media(prefers-reduced-motion:reduce){*{transition-duration:0ms!important}}
