
.transit-intro{font-size:1.05rem;color:var(--text-secondary);max-width:760px;margin-bottom:1.5rem}
.transit-nav{margin:1rem 0}.transit-nav a{text-decoration:none;display:inline-block}
.transit-controls h2,.transit-panel h2,.chart-pair h2{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:var(--accent)}
.transit-note{font-size:.82rem;color:var(--text-secondary);margin:.5rem 0 1rem;line-height:1.6}
.transit-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}
.chart-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.5rem 0}
.aux-stars-pair{margin:.75rem 0 0}.aux-stars-pair h3{font-size:.86rem;color:var(--text-secondary);margin-bottom:.55rem}.aux-stars-pair .aux-star-pillar{grid-template-columns:65px 1fr}
.transit-pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
.transit-pillars .pillar-char{font-size:2rem}.transit-pillars .pillar-half{padding:.7rem .2rem}.transit-pillars .pillar-label{padding:.5rem .15rem}
.transit-panel{padding:1.3rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin:1.5rem 0}
.comparison-element{display:grid;grid-template-columns:75px 1fr 1fr;gap:1rem;align-items:center;margin:.8rem 0;font-size:.8rem}
.element-track-group span{display:block;margin-bottom:.4rem;color:var(--text-secondary)}
.day-master-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.relation-card{background:var(--bg-card2);padding:.8rem;border:1px solid var(--border);border-radius:6px;font-size:.8rem}.relation-card p{margin-top:.4rem}
.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.78rem;min-width:650px}caption{text-align:left;color:var(--text-secondary);padding:.6rem 0}th,td{border:1px solid var(--border2);padding:.7rem;vertical-align:top}thead th{background:var(--bg-card2)}tbody th{width:80px}td{width:22%}
.pair-code{display:block;font-size:1.1rem;margin-bottom:.4rem}.relationship-tag{display:block;border-left:3px solid var(--accent);padding:.15rem .4rem;margin:.3rem 0;background:var(--bg-card2)}.branchClash{border-color:#e7826c}.branchCombination{border-color:#69ac86}.stemCombination{border-color:#91aadb}.cell-relation,.no-pair{color:var(--text-secondary);font-size:.75rem}.cell-relation{margin-top:.5rem}
footer a{color:var(--accent)}#activeLuck{font-size:.95rem}#relationshipCounts{line-height:1.8}
@media(max-width:850px){.chart-pair{grid-template-columns:1fr}.transit-pillars .pillar-char{font-size:2.4rem}}
@media(max-width:550px){.day-master-grid{grid-template-columns:1fr 1fr}.transit-panel{padding:.8rem}.comparison-element{grid-template-columns:55px 1fr 1fr;gap:.5rem}.transit-pillars{gap:.25rem}.transit-pillars .pillar-pinyin{font-size:.75rem}}

.device-zone-option{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}
.device-zone-option input{width:auto}#locationStatus:empty,#deviceTimezoneInfo:empty{display:none}

.day-officer-cycle{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem;list-style:none;padding:0;margin:1rem 0}
.day-officer-cycle li{padding:.65rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-card2);font-size:.85rem;overflow-wrap:anywhere}
.day-officer-cycle [aria-current]{border:2px solid var(--accent);font-weight:700;color:var(--accent)}
#dayOfficerName{font-size:1.35rem}

.transit-tabs{display:flex;gap:.4rem;overflow-x:auto;max-width:100%;border-bottom:1px solid var(--border);padding:.45rem .15rem .7rem;margin:1rem 0 .5rem;position:sticky;top:0;background:var(--bg-page);z-index:3;scrollbar-width:thin}
.transit-tabs button{flex:none;white-space:nowrap;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text-secondary);font:inherit;padding:.65rem .85rem;cursor:pointer}
.transit-tabs button[aria-selected=true]{color:var(--accent);background:var(--bg-card);border-color:var(--border);box-shadow:inset 0 -3px var(--accent);font-weight:700}
.transit-tabs button:focus-visible,.transit-detail summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.transit-tab-panel[hidden]{display:none!important}.transit-tab-panel>.transit-panel{margin:1rem 0}
.transit-detail{margin-top:1rem;background:var(--bg-card2);border:1px solid var(--border);border-radius:8px;padding:.8rem}
.transit-detail summary{cursor:pointer;color:var(--accent);font-weight:600}.transit-detail[open]>summary{margin-bottom:.8rem}
#interpSection{margin:1rem 0}.transit-empty{background:var(--bg-card2);border:1px dashed var(--border);padding:1rem;border-radius:8px}
.interp-output:not(:empty)+.transit-empty{display:none}
@media(max-width:550px){.transit-tabs button{font-size:.84rem;padding:.65rem}.transit-panel{min-width:0}}

/* The prediction period tabs belong to AI explanations, not the primary navigation. */
.transit-a11y-heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.transit-subtabs{display:flex;gap:.35rem;overflow-x:auto;max-width:100%;margin:.6rem 0 1rem;padding:.25rem .15rem .55rem;border-bottom:1px solid var(--border)}
.transit-subtabs button{flex:none;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font:inherit;padding:.55rem 1rem;cursor:pointer}
.transit-subtabs button:hover{background:var(--bg-card2);color:var(--text-primary)}
.transit-subtabs button[aria-selected=true]{background:var(--bg-card2);color:var(--accent);font-weight:700;box-shadow:inset 0 -2px var(--accent)}
.transit-subtabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.transit-period-panel[hidden]{display:none!important}
.transit-period-panel>.transit-panel{margin:1rem 0}
@media(max-width:550px){.transit-subtabs button{font-size:.84rem;padding:.55rem .8rem}}

/* Shared transit AI preferences are hidden until their settings dialog opens. */
body.transit-ai-modal-open{overflow:hidden}
.transit-ai-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.72);padding:1rem}
.transit-ai-modal.hidden{display:none!important}
.transit-ai-dialog{display:flex;flex-direction:column;width:min(100%,660px);max-height:calc(100dvh - 2rem);background:var(--bg-card);border:1px solid var(--border2);border-radius:12px;box-shadow:0 12px 52px rgba(0,0,0,.45);color:var(--text-primary);overflow:hidden}
.transit-ai-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}
.transit-ai-modal-header h2{font-size:1.1rem;font-weight:700;color:var(--accent)}
.transit-ai-modal-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:1rem 1.25rem}
.transit-ai-modal-footer{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding:.85rem 1.25rem}
.transit-ai-dialog #interpSettings>summary,.transit-ai-dialog #interpFocus>summary{display:none}
.transit-ai-dialog #interpSettings,.transit-ai-dialog #interpFocus{margin:0}
.transit-ai-dialog #interpSettings{margin-bottom:1rem}
.transit-ai-dialog #interpFocus{padding:.85rem;background:var(--bg-card2)}
.transit-ai-dialog .interp-settings-body{padding-top:0;border-top:0}
.transit-ai-dialog #transitAiSettingsStatus:empty{display:none}
.transit-ai-dialog #transitAiSettingsStatus:not(:empty){margin:0;padding:.6rem 1.25rem;border-bottom:1px solid var(--border)}
.transit-ai-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:550px){.transit-ai-modal{padding:.5rem}.transit-ai-dialog{max-height:calc(100dvh - 1rem)}.transit-ai-modal-header,.transit-ai-modal-body,.transit-ai-modal-footer{padding:.8rem}.transit-ai-dialog #transitAiSettingsStatus:not(:empty){padding:.6rem .8rem}}

/* Keep the moment and location controls aligned independently of help text. */
.transit-moment-grid,.transit-location-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start; }
.transit-moment-grid { margin-top:20px; }
.transit-location-grid { margin-top:20px; }
.transit-controls .field { min-width:0;gap:8px; }
.transit-controls .field label { margin:0; }
.transit-controls .field input { box-sizing:border-box;min-width:0;height:44px; }
.transit-location-grid>.location-lookup { grid-column:span 2;min-width:0;margin:0;padding:0;border:0; }
.transit-location-grid>.location-lookup>label { font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:600;line-height:normal;margin:0 0 8px; }
.transit-location-grid .location-search-row { flex-wrap:nowrap;align-items:stretch;gap:8px; }
.transit-location-grid .location-search-row input { flex:1;box-sizing:border-box;width:0;min-width:0;height:44px;padding:8px 12px;cursor:text; }
.transit-location-grid .location-search-row button { flex:none;height:44px;padding:8px 18px; }
.transit-location-grid .location-results:empty,.transit-location-grid #lookupStatus:empty { display:none; }
.transit-location-grid #locationHint { margin:8px 0 0;font-size:.74rem;line-height:1.5; }
.transit-location-grid .location-lookup small { margin-top:5px;font-size:.7rem; }
.transit-controls .transit-actions { border-top:1px solid var(--border);padding-top:18px;margin:20px 0 14px;gap:8px; }
.transit-controls .device-zone-option { align-items:flex-start;line-height:1.5; }
.transit-controls .device-zone-option input { margin-top:3px;flex:none;accent-color:var(--accent); }
.transit-controls>p:last-child { margin-bottom:0;font-size:.74rem; }
@media(max-width:600px) {
  .transit-moment-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
  .transit-moment-grid>.field:last-child { grid-column:1/-1; }
  .transit-location-grid { grid-template-columns:1fr;gap:16px;margin-top:16px; }
  .transit-location-grid>.location-lookup { grid-column:auto; }
  .transit-controls .transit-actions button { flex:1 1 140px;white-space:normal;text-align:center; }
}

/* A compact summary exposes the complete moment editor on demand. */
.transit-moment-collapsible { padding:16px; }
.transit-moment-collapsible>summary { display:block;list-style:none;cursor:pointer; }
.transit-moment-collapsible>summary::-webkit-details-marker { display:none; }
.transit-moment-caption { display:block;font-size:.75rem;color:var(--text-secondary);margin-bottom:8px; }
.transit-moment-summary-row { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;min-height:40px;box-sizing:border-box;border:1px solid var(--border2);border-radius:8px;background:var(--bg-input);font-size:.8rem;color:var(--text-primary); }
#transitMomentSummary { min-width:0;overflow-wrap:anywhere; }
.transit-moment-triangle { flex:none;color:var(--accent);font-size:1rem;transition:transform .15s; }
.transit-moment-collapsible[open] .transit-moment-triangle { transform:rotate(180deg); }
.transit-moment-collapsible>summary:hover .transit-moment-summary-row { border-color:var(--accent); }
.transit-moment-collapsible>summary:focus-visible { outline:2px solid var(--accent);outline-offset:4px;border-radius:8px; }
.transit-moment-editor { margin-top:20px;padding:4px 8px 8px; }
@media(max-width:600px) { .transit-moment-collapsible { padding:12px; }.transit-moment-editor { padding:0; } }
@media(prefers-reduced-motion:reduce) { .transit-moment-triangle { transition:none; } }

.transit-chart-panel[hidden] { display:none!important; }
#transitPanelCharts>.transit-chart-panel { margin-top:0; }
#transitChartTabs { margin-top:16px; }
.transit-chart-panel h3 { color:var(--accent);margin-bottom:8px; }
