.chart-viewer{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;color:var(--astro-ink)}.chart-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;justify-content:flex-start;width:100%;padding:12px 18px;border:1px solid var(--astro-border);border-radius:10px;background-color:var(--astro-surface)}.chart-main{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%}.chart-container{position:relative;width:min(85vw,85vh,1100px);aspect-ratio:1;margin:0 auto;background:var(--astro-surface);border:1px solid var(--astro-border);border-radius:14px;box-shadow:var(--astro-shadow)}.chart-time-corner{position:absolute;top:10px;z-index:5}.chart-time-corner--left{left:10px}.chart-time-corner--right{right:10px}.chart-time-buttons{display:flex;flex-direction:column;gap:8px}.chart-time-row{display:flex;gap:8px}.chart-time-row--extra{animation:chart-time-row-in .12s ease-out}@keyframes chart-time-row-in{from{opacity:0}to{opacity:1}}.chart-time-more[aria-expanded="true"]{background-color:var(--astro-surface);color:var(--astro-accent);border-color:var(--astro-accent)}.chart-time-more{font-size:1rem;line-height:1;letter-spacing:.05em}.chart-time-btn{padding:.25rem .55rem;border:1px solid var(--astro-border);border-radius:6px;background-color:color-mix(in srgb,var(--astro-surface) 55%,transparent);color:var(--astro-ink-soft);font-size:.92rem;font-family:inherit;line-height:1.4;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.chart-time-btn:hover{background-color:var(--astro-surface);color:var(--astro-ink);border-color:var(--astro-accent)}.chart-time-btn:focus-visible{outline:2px solid var(--astro-accent);outline-offset:1px}.chart-time-btn--reset{width:100%;justify-content:center;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){.chart-time-row--extra{animation:none}}.chart-dateline{text-align:center;margin-bottom:10px;font-family:var(--astro-serif);font-size:1rem;color:var(--astro-ink)}.chart-dateline .chart-dateline-sep{color:var(--astro-ink-soft)}.loading-text{width:min(85vw,85vh,1100px);aspect-ratio:1;margin:0 auto;display:flex;align-items:center;justify-content:center;font-family:var(--astro-serif);font-size:20px;font-style:italic;color:var(--astro-ink-soft)}.chart-preparing{margin:1.25rem 0 0 1.25rem;font-family:var(--astro-serif);font-size:1.05rem;font-style:italic;color:var(--astro-ink-soft)}.chart-error{width:min(85vw,85vh,1100px);aspect-ratio:1;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;border:1px dashed var(--astro-border);border-radius:14px;background:var(--astro-surface)}.chart-error-message{margin:0;font-family:var(--astro-serif);font-size:20px;font-style:italic;color:var(--astro-ink-soft)}.chart-error-retry{padding:.4rem .9rem;border:1px solid var(--astro-accent);border-radius:8px;background:var(--astro-surface);color:var(--astro-accent);font-family:inherit;font-size:.9rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.chart-error-retry:hover{background:var(--astro-accent-soft)}.chart-error-retry:focus-visible{outline:2px solid var(--astro-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.chart-error-retry{transition:none}}.chart-empty{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;width:100%;box-sizing:border-box;margin-bottom:16px;padding:12px 18px;border:1px solid color-mix(in srgb,var(--astro-criteria) 25%,transparent);border-radius:10px;background:var(--astro-criteria-soft)}.chart-empty-message{margin:0;font-family:var(--astro-serif);font-size:1.05rem;color:var(--astro-ink)}.chart-empty-action{color:var(--astro-criteria);font-size:.92rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.chart-empty-action:hover{color:var(--astro-ink)}.chart-empty-action:focus-visible{outline:2px solid var(--astro-criteria);outline-offset:3px;border-radius:3px}.chart-controls{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:flex-end;margin-bottom:16px}.chart-control-group{display:flex;flex-direction:column;gap:6px;min-width:220px;padding:8px 12px;border:1px solid var(--astro-border);border-radius:8px;background:var(--astro-surface-2)}.chart-person-row>.chart-control-group,.chart-type-row .chart-control-group{padding:6px 10px}.chart-person-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;flex-basis:100%;justify-content:flex-start}.chart-control-group label{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--astro-ink-soft)}.chart-control-group select{padding:.3rem .5rem;border:1px solid var(--astro-border);border-radius:8px;background:var(--astro-surface);color:var(--astro-ink);font-size:.86rem;font-family:inherit}.chart-control-group select:focus{outline:0;border-color:var(--astro-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--astro-accent) 20%,transparent)}.chart-control-group select:disabled{background:var(--astro-surface-2);color:var(--astro-ink-soft)}.chart-control-group--compact{min-width:0;justify-content:flex-end}.chart-relocate-toggle,.chart-compare-toggle{align-self:flex-start;padding:0;border:0;background:none;color:var(--astro-accent);font-size:.78rem;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.chart-relocate-toggle:hover,.chart-compare-toggle:hover{color:var(--astro-ink)}.chart-place-label{align-self:flex-start;display:inline-flex;align-items:baseline;gap:4px;font-size:.78rem;color:var(--astro-ink-soft);white-space:nowrap}.chart-compare-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.chart-compare-head span{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--astro-ink-soft)}.chart-compare-remove{padding:0 4px;border:0;background:none;color:var(--astro-ink-soft);font-size:.78rem;line-height:1;cursor:pointer}.chart-compare-remove:hover{color:var(--astro-ink)}.chart-type-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.chart-type-row .chart-control-group{flex-direction:row;align-items:center;gap:6px;min-width:0}.chart-type-row .chart-control-group label{white-space:nowrap}.chart-type-row select{min-width:0;width:auto;padding:.3rem .4rem;font-size:.82rem}.chart-type-divider{width:1px;align-self:stretch;background:var(--astro-border)}.chart-type-segmented{display:inline-flex;border:1px solid var(--astro-border);border-radius:8px;background:var(--astro-surface-2);padding:2px;gap:2px}.chart-type-segmented button{border:0;background:transparent;color:var(--astro-ink-soft);font-family:inherit;font-size:.8rem;padding:.28rem .55rem;border-radius:6px;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.chart-type-segmented button:hover{color:var(--astro-ink)}.chart-type-segmented button.chart-type-segmented__option--active{background:var(--astro-surface);color:var(--astro-accent);font-weight:700;box-shadow:0 1px 2px rgba(42,37,48,.1)}.chart-type-segmented button:focus-visible{outline:2px solid var(--astro-accent);outline-offset:1px}.chart-type-summary{flex-basis:100%;width:100%;box-sizing:border-box;font-family:var(--astro-serif);font-size:.95rem;color:var(--astro-ink);padding:0 2px 2px}.chart-type-summary b{color:var(--astro-accent);font-weight:700}.chart-type-ring{position:relative;flex-basis:100%;width:100%;box-sizing:border-box;padding:10px 12px 10px 16px;border:1px solid var(--astro-border);border-left-width:3px;border-radius:8px;background:var(--astro-surface)}.chart-type-ring--inner{border-left-color:var(--astro-accent)}.chart-type-ring--outer{border-left-color:var(--astro-ink-soft)}.chart-type-ring__head{flex-basis:100%;display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.chart-type-ring__name{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--astro-ink)}.chart-type-ring__note{font-size:.72rem;color:var(--astro-ink-soft)}.chart-type-ring .chart-control-group{border-color:transparent;background:transparent;padding:0}.chart-mode-switch{white-space:nowrap;font-family:inherit;font-size:.76rem;color:var(--astro-ink-soft);background:none;border:0;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:0}.chart-mode-switch:hover{color:var(--astro-accent)}@media(prefers-reduced-motion:reduce){.chart-type-segmented button{transition:none}}.chart-type-buttons{display:flex;flex-wrap:wrap;gap:8px}.chart-type-button{padding:.3rem .7rem;border:1px solid var(--astro-border);border-radius:8px;background-color:var(--astro-surface);color:var(--astro-ink);cursor:pointer;font-size:.86rem;font-family:inherit;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.chart-type-button:hover{background-color:color-mix(in srgb,var(--astro-accent) 8%,transparent)}.chart-type-button:focus-visible{outline:2px solid var(--astro-accent);outline-offset:1px}.chart-type-button--active{border-color:var(--astro-accent);color:var(--astro-accent);font-weight:700;background-color:var(--astro-accent-soft)}.chart-type-button--active:hover{background-color:color-mix(in srgb,var(--astro-accent) 16%,var(--astro-surface))}@media(prefers-reduced-motion:reduce){.chart-type-button{transition:none}}.chart-control-group--date{flex-shrink:0;min-width:0}.ring-date{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}.ring-date__label{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--astro-ink-soft)}.ring-date__row{display:flex;align-items:center;gap:8px}.ring-date__input{padding:.3rem .5rem;border:1px solid var(--astro-border);border-radius:8px;background:var(--astro-surface);color:var(--astro-ink);font-size:.86rem;font-family:inherit;font-variant-numeric:tabular-nums;min-width:13.5rem}.ring-date__input:focus{outline:0;border-color:var(--astro-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--astro-accent) 20%,transparent)}.ring-date__reset{padding:.25rem .55rem;border:1px solid var(--astro-border);border-radius:6px;background:color-mix(in srgb,var(--astro-surface) 55%,transparent);color:var(--astro-ink-soft);font-size:.78rem;font-family:inherit;line-height:1.4;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.ring-date__reset:hover{background:var(--astro-surface);color:var(--astro-ink);border-color:var(--astro-accent)}.ring-date__reset:focus-visible{outline:2px solid var(--astro-accent);outline-offset:1px}.ring-date__status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.ring-date__link{padding:.25rem .55rem;border:1px solid var(--astro-border);border-radius:6px;background:color-mix(in srgb,var(--astro-surface) 55%,transparent);color:var(--astro-ink-soft);font-size:.78rem;font-family:inherit;line-height:1.4;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.ring-date__link[aria-pressed="false"]{border-color:var(--astro-accent);color:var(--astro-accent);background:var(--astro-accent-soft)}.ring-date__link:hover{background:var(--astro-surface);color:var(--astro-ink);border-color:var(--astro-accent)}.ring-date__link:focus-visible{outline:2px solid var(--astro-accent);outline-offset:1px}@media(max-width:720px){.chart-control-group--date{flex-basis:100%}}@media(prefers-reduced-motion:reduce){.ring-date__reset,.ring-date__link{transition:none}}