:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-kpi-bg: #f1f5f9;--color-text: #0f172a;--color-text-muted: #64748b;--color-border: #e2e8f0;--color-accent: #3b82f6;--color-secondary: #e87007;--color-accent-light: #dbeafe;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04)}html.theme-dark{--color-bg: #0f172a;--color-surface: #1e293b;--color-kpi-bg: #243548;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-border: #334155;--color-accent: #60a5fa;--color-secondary: #fb923c;--color-accent-light: #1e3a5f;--shadow: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2)}html.theme-light{--color-bg: #f8fafc;--color-surface: #ffffff;--color-kpi-bg: #f1f5f9;--color-text: #0f172a;--color-text-muted: #64748b;--color-border: #e2e8f0;--color-accent: #3b82f6;--color-secondary: #e87007;--color-accent-light: #dbeafe;--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04)}@media(prefers-color-scheme:dark){html:not(.theme-light):not(.theme-dark){--color-bg: #0f172a;--color-surface: #1e293b;--color-kpi-bg: #243548;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-border: #334155;--color-accent: #60a5fa;--color-secondary: #fb923c;--color-accent-light: #1e3a5f;--shadow: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}.site-header{background:var(--color-surface)}#dashboard-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 2rem}.theme-slider-wrap{display:flex;align-items:center;gap:.5rem}.theme-slider-icon{font-size:1.1rem;color:var(--color-text-muted);transition:color .2s}.theme-slider-wrap.is-dark .theme-slider-icon:first-child{color:var(--color-text-muted)}.theme-slider-wrap.is-dark .theme-slider-icon:last-child{color:var(--color-accent)}.theme-slider-wrap:not(.is-dark) .theme-slider-icon:first-child{color:var(--color-accent)}.theme-slider-wrap:not(.is-dark) .theme-slider-icon:last-child{color:var(--color-text-muted)}.theme-slider{position:relative;width:44px;height:24px;padding:0;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg);cursor:pointer;transition:background .2s,border-color .2s}.theme-slider:hover{border-color:var(--color-accent)}.theme-slider-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--color-accent);transition:transform .2s ease}.theme-slider-wrap.is-dark .theme-slider-thumb{transform:translate(22px)}.theme-slider:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.header-inner{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.header-title h1{font-size:1.5rem;font-weight:700;line-height:1.2}.header-inner .theme-slider-wrap{margin-top:.15rem}.header-title h1 a{color:var(--color-accent);text-decoration:none}.header-title h1 a:hover{text-decoration:underline}.subtitle{color:var(--color-text-muted);font-size:.875rem}.subtitle code{background:var(--color-accent-light);padding:.1em .4em;border-radius:4px;font-size:.825rem}.header-actions{display:flex;align-items:center;gap:1rem}.version-badge{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8rem;font-weight:400;color:var(--color-accent);background:var(--color-accent-light);padding:.15em .5em;border-radius:6px}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.kpi-card{display:flex;align-items:center;gap:.75rem;background:var(--color-kpi-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow)}.kpi-icon{font-size:1.75rem;color:var(--color-accent)}.kpi-text{display:flex;flex-direction:column}.kpi-value{font-size:1.35rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.kpi-label{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.dashboard-grid{max-width:1200px;margin:2rem auto;padding:0 2rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);min-width:0}.card h2{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card-header h2{margin-bottom:0}.stats-section{max-width:1200px;margin:1.5rem auto 0;padding:0 2rem;display:flex;flex-direction:column;gap:1rem}.summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.summary-card{display:flex;align-items:center;gap:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow)}.summary-icon{font-size:1.75rem;color:var(--color-accent)}.summary-text{display:flex;flex-direction:column}.summary-value{font-size:1.35rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.summary-label{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.period-pills{display:flex;gap:2px;background:var(--color-bg);border-radius:8px;padding:6px 8px 6px 6px;min-width:340px;flex-shrink:0}.period-pill{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:.3rem .75rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s;line-height:1.4;white-space:nowrap;text-align:center}.period-pill:hover{background:var(--color-border);color:var(--color-text)}.period-pill.active{background:var(--color-accent);color:#fff}.period-pill:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.chart-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.chart-subtitle{font-size:.8rem;font-weight:600;color:var(--color-text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.03em}.card-wide{grid-column:1 / -1}.chart-container{position:relative;width:100%;overflow:hidden}.chart-pair>*{min-width:0}.chart-container--wide{aspect-ratio:2.5 / 1}.chart-container--half{aspect-ratio:1.2 / 1}.paths-table{width:100%;border-collapse:collapse;font-size:.875rem}.paths-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.paths-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border)}.path-cell{max-width:180px}.path-cell code{font-size:.8rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.num-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.bar-cell{width:80px}.mini-bar{height:8px;border-radius:4px;background:var(--color-accent);opacity:.7;transition:width .3s ease}.badge{font-size:.7rem;background:var(--color-accent-light);color:var(--color-accent);padding:.15em .5em;border-radius:999px;font-weight:600}.timeline-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.timeline-scroll::-webkit-scrollbar{height:6px}.timeline-scroll::-webkit-scrollbar-track{background:transparent}.timeline-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.timeline-track{position:relative;min-width:100%}.timeline-line{position:absolute;left:0;right:0;height:2px;background:var(--color-border);border-radius:1px;transform:translateY(-1px)}.timeline-point{position:absolute;transform:translate(-50%,-50%);width:14px}a.timeline-point{color:inherit;text-decoration:none;display:block;cursor:pointer;height:14px;z-index:1}.timeline-point:hover{z-index:5}.timeline-dot{position:relative;z-index:1;width:100%;height:100%;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-surface);box-shadow:0 0 0 2px var(--color-accent);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.timeline-point:hover .timeline-dot{transform:scale(1.35);box-shadow:0 0 0 3px var(--color-accent)}.timeline-stem{position:absolute;left:50%;width:1px;background:var(--color-border);transform:translate(-.5px);pointer-events:none}.timeline-point--above .timeline-stem{bottom:100%}.timeline-point--below .timeline-stem{top:100%}.timeline-label{position:absolute;left:50%;transform:translate(-50%);text-align:center;white-space:nowrap;display:flex;flex-direction:column;align-items:center}.timeline-tag{font-size:.75rem;font-weight:600;color:var(--color-text);line-height:1.3}.timeline-tag--link{color:inherit;text-decoration:none}.timeline-tag--link:hover{text-decoration:underline}.timeline-date{font-size:.65rem;color:var(--color-text-muted);line-height:1.3}.timeline-dl{font-size:.625rem;color:var(--color-accent);line-height:1.3;max-height:0;overflow:hidden;opacity:0;transition:max-height .2s ease,opacity .2s ease}.timeline-point:hover .timeline-dl{max-height:1.5em;opacity:1}.timeline-year-marker{position:absolute;width:1px;background:var(--color-border);opacity:.5;transform:translate(-.5px);pointer-events:none}.timeline-year-label{position:absolute;top:100%;left:50%;transform:translate(-50%);font-size:.65rem;color:var(--color-text-muted);white-space:nowrap;margin-top:4px}.timeline-empty{color:var(--color-text-muted);text-align:center;padding:2rem}#dashboard-footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:1rem 2rem;margin-top:2rem}.footer-inner{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.footer-right{display:flex;align-items:center;gap:1rem}.footer-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-text-muted);font-size:.875rem;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--color-accent)}.footer-link .mdi{font-size:1.25rem}.footer-text{color:var(--color-text-muted);font-size:.875rem}.footer-text code{background:var(--color-accent-light);padding:.1em .4em;border-radius:4px;font-size:.825rem}.error-banner{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;padding:1rem 2rem;margin:2rem auto;max-width:1200px;border-radius:var(--radius);text-align:center}html.theme-dark .error-banner{background:#450a0a;color:#fca5a5;border-color:#7f1d1d}@media(prefers-color-scheme:dark){html:not(.theme-light) .error-banner{background:#450a0a;color:#fca5a5;border-color:#7f1d1d}}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr;padding:0 1rem;gap:1rem;margin:1.25rem auto}.site-header{position:relative;border-bottom:1px solid var(--color-border)}#dashboard-header{padding:.75rem 1rem;border-bottom:none;position:relative}.header-inner .theme-slider-wrap{position:absolute;top:.9rem;right:1rem}.header-title{padding-right:5.5rem}.header-inner{flex-direction:column;align-items:flex-start;gap:.75rem}#dashboard-footer{padding:1rem}.header-actions{width:100%}.kpi-row{grid-template-columns:repeat(2,1fr);gap:.75rem}.kpi-card{padding:.75rem 1rem}.kpi-value{font-size:1.15rem}.card{padding:1rem}.card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.period-pills{min-width:0;max-width:100%;width:calc(100% + 1rem);margin-left:-.5rem;padding:6px 8px 6px 6px;gap:1px}.period-pill{padding:.35rem .5rem;font-size:.75rem;min-height:32px}.chart-container--wide{aspect-ratio:2 / 1}.chart-container--half{aspect-ratio:1.5 / 1}.chart-pair{grid-template-columns:1fr;gap:1rem}.stats-section{padding:0 1rem;margin-top:1rem}.summary-row{grid-template-columns:repeat(2,1fr);gap:.75rem}.summary-card{padding:.75rem 1rem}.summary-value{font-size:1.15rem}#paths-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.paths-table{min-width:400px}.timeline-tag{font-size:.65rem}.timeline-date{font-size:.6rem}}@media(max-width:480px){.header-title h1{font-size:1.25rem}.period-pill{padding:.3rem .4rem;font-size:.7rem;min-height:28px}.summary-card{padding:.65rem .85rem;gap:.5rem}.summary-icon{font-size:1.5rem}.summary-value{font-size:1.05rem}.chart-container--wide{aspect-ratio:1.6 / 1}.chart-container--half{aspect-ratio:1.2 / 1}.card{padding:.85rem}.card h2{font-size:.85rem}.kpi-card{padding:.65rem .85rem;gap:.5rem}.kpi-value{font-size:1.05rem}.timeline-point,a.timeline-point{width:10px;height:10px}}
