*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#0a0a0f;color:#fff}.transits-page{--bg: #0b0e13;--panel: #151a22;--ink: #e7e2d6;--muted: #8a93a3;--line: #2a3140;--accent: #c9a36d;height:100%;min-height:100%;background:radial-gradient(ellipse 80% 50% at 20% 0%,rgba(74,158,255,.08),transparent 55%),radial-gradient(ellipse 60% 40% at 90% 10%,rgba(201,163,109,.07),transparent 50%),var(--bg);color:var(--ink);font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.transits-header{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:#0c1016d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:2}.transits-brand{font-size:1.35rem;letter-spacing:.04em;font-weight:600}.transits-brand span{color:var(--muted);font-weight:400;font-size:.95rem;margin-left:.5rem}.transits-controls{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;font-size:.9rem;color:var(--muted)}.transits-controls label{display:flex;gap:8px;align-items:center}.transits-controls input[type=datetime-local]{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit}.transits-scope{display:inline-flex;align-items:center;gap:4px}.transits-scope-label{margin-right:4px}.transits-scope-btn{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:4px 10px;font:inherit;font-size:.85rem;cursor:pointer}.transits-scope-btn:hover{color:var(--ink);border-color:#3d4658}.transits-scope-btn.is-active{color:var(--ink);border-color:var(--accent);background:#c9a36d1f}.transits-badge{border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:.8rem}.transits-badge.fixture{border-color:var(--accent);color:var(--accent)}.transits-layout{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(320px,1fr);gap:12px;padding:12px;box-sizing:border-box;align-items:start}@media(max-width:900px){.transits-layout{grid-template-columns:1fr}}.transits-wheel-pane,.transits-timeline-pane{background:#12161cbf;border:1px solid var(--line);border-radius:10px}.transits-wheel-pane{display:flex;align-items:stretch;justify-content:center;padding:12px;max-height:calc(100vh - 96px);min-height:420px;position:sticky;top:72px;overflow:auto}.transits-wheel-stack{display:flex;flex-direction:column;gap:8px;width:100%;min-height:0}.transits-wheel-frame{flex:1 1 auto;min-height:320px;max-height:min(calc(100vh - 220px),720px);display:flex;align-items:center;justify-content:center}.transits-wheel-frame .transit-wheel{max-height:100%}.declination-strip{flex:0 0 auto;border-top:1px solid var(--line);padding-top:6px}.declination-strip-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 4px 2px}.declination-strip-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.declination-strip-legend{display:flex;gap:12px;font-size:.72rem;color:var(--muted)}.decl-legend-natal:before{content:"◇ ";color:#8a93a3}.decl-legend-transit:before{content:"○ ";color:#c8c2b4}.declination-strip-svg{display:block;width:100%;height:auto;max-height:120px}.transits-timeline-pane{overflow:visible;padding:10px 12px 28px;min-height:unset}.transits-status{padding:24px;color:var(--muted)}.transits-status.error{color:#ff8e8e}.aspect-timeline{display:flex;flex-direction:column;gap:10px}.timeline-axis{position:relative;height:28px;margin-left:140px;border-bottom:1px solid var(--line)}.timeline-day{position:absolute;top:0;transform:translate(-50%);font-size:.7rem;color:var(--muted)}.timeline-now{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);transform:translate(-50%)}.timeline-section-header{width:100%;display:flex;justify-content:space-between;background:transparent;border:none;color:var(--ink);font:inherit;padding:6px 0;cursor:pointer}.timeline-count{color:var(--muted);font-size:.85rem}.timeline-row-block{border-radius:4px}.timeline-row-block:hover,.timeline-row-block.is-hovered{background:#ffffff08}.timeline-row-block.is-selected{background:#c9a36d1f}.timeline-row{display:grid;grid-template-columns:140px 1fr;gap:8px;align-items:center;padding:4px 0;cursor:pointer}.timeline-identity{display:flex;gap:6px;align-items:baseline;font-size:1rem}.timeline-expand{flex:0 0 auto;width:1.1em;padding:0;margin:0;border:none;background:transparent;color:var(--muted);font:inherit;font-size:.75rem;line-height:1;cursor:pointer}.timeline-expand:hover{color:var(--ink)}.timeline-detail{margin:0 0 10px;display:flex;flex-direction:column;gap:8px}.timeline-corpus{padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#00000047}.timeline-corpus-title{font-size:.95rem;font-weight:600;margin-bottom:8px;color:var(--ink)}.timeline-corpus-group{margin-top:8px}.timeline-corpus-group-label{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.timeline-corpus ul{margin:0;padding-left:1.1rem;color:#c8c2b4;font-size:.85rem;line-height:1.4}.timeline-corpus li+li{margin-top:3px}.timeline-corpus-empty{margin:0;font-size:.8rem;color:var(--muted)}.timeline-nested{display:flex;flex-direction:column;gap:4px;padding:6px 0 10px 12px;border-left:2px solid rgba(200,194,180,.25);margin-left:6px}.timeline-nested-label{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.timeline-nested-row{display:grid;grid-template-columns:minmax(140px,1.1fr) 2fr;gap:8px;align-items:center;padding:4px 6px;border-radius:4px;cursor:pointer}.timeline-nested-row:hover,.timeline-nested-row.is-hovered{background:#ffffff0a}.timeline-nested-row.is-selected{background:#ffffff12;outline:1px solid rgba(200,194,180,.35)}.timeline-nested-row.missing{opacity:.55;cursor:default}.timeline-nested-id{font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-track-nested{height:12px}.timeline-json-toggle{align-self:flex-start;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:4px;padding:3px 8px;font:inherit;font-size:.75rem;cursor:pointer}.timeline-json-toggle:hover{color:var(--ink)}.timeline-json{margin:0;padding:10px 12px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:6px;background:#00000059;color:#c8c2b4;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;line-height:1.35;white-space:pre}.timeline-track{position:relative;height:18px;background:#ffffff08;border-radius:3px;overflow:hidden}.timeline-window{position:absolute;top:2px;bottom:2px;border:1px solid;border-radius:3px;overflow:hidden;background:#ffffff0a}.timeline-window.clip-left{border-left:2px dashed #e0c56a;border-top-left-radius:0;border-bottom-left-radius:0}.timeline-window.clip-right{border-right:2px dashed #e0c56a;border-top-right-radius:0;border-bottom-right-radius:0}.timeline-segment{position:absolute;top:0;bottom:0;opacity:.75}.timeline-segment.kind-applying,.timeline-segment.kind-approaching,.timeline-segment.kind-forming,.timeline-segment.kind-crossing,.timeline-segment.kind-emerging{background:linear-gradient(90deg,#7bb8d940,#7bb8d98c)}.timeline-segment.kind-exact,.timeline-segment.kind-cazimi{background:#ffd700b3}.timeline-segment.kind-combust{background:linear-gradient(90deg,#ff8c4259,#ff8c42a6,#ff8c4259)}.timeline-segment.kind-under_the_beams{background:repeating-linear-gradient(90deg,#c4a57473,#c4a57473 4px,#c4a5742e 4px 8px)}.timeline-segment.kind-separating,.timeline-segment.kind-departing,.timeline-segment.kind-dissolving,.timeline-segment.kind-settling{background:linear-gradient(90deg,#ff6b6b8c,#ff6b6b33)}.timeline-segment.kind-station_retrograde,.timeline-segment.kind-station_direct,.timeline-segment.kind-retrograde{background:repeating-linear-gradient(90deg,#9b4dca8c,#9b4dca8c 3px,#9b4dca33 3px 6px)}.timeline-segment.kind-shadow_ingress{background:linear-gradient(90deg,#9b4dca33,#9b4dca73)}.timeline-segment.kind-shadow_egress{background:linear-gradient(90deg,#9b4dca73,#9b4dca33)}.timeline-segment.kind-out_of_bounds{background:repeating-linear-gradient(90deg,#e0a4588c,#e0a4588c 4px,#e0a45838 4px 8px)}.timeline-now-mark{position:absolute;top:0;bottom:0;width:1px;background:var(--accent);opacity:.7;transform:translate(-50%);pointer-events:none}
