@font-face{font-family:"Jordan Hindi";font-style:normal;font-weight:400 500;font-display:swap;src:url('./fonts/NotoSansDevanagari-Regular.woff') format('woff');unicode-range:U+0900-097F,U+1CD0-1CFF,U+A8E0-A8FF}
@font-face{font-family:"Jordan Hindi";font-style:normal;font-weight:600 900;font-display:swap;src:url('./fonts/NotoSansDevanagari-Semibold.woff') format('woff');unicode-range:U+0900-097F,U+1CD0-1CFF,U+A8E0-A8FF}
:root {
  font-family: Inter,"Noto Sans Devanagari","Nirmala UI",Mangal,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color: #eafaff;
  background: #020609;
  --cyan: #25e6ff;
  --cyan2: #0baec6;
  --panel: rgba(3,13,18,.88);
  --line: rgba(47,210,232,.22);
  --muted: #75929c;
}
* {
  box-sizing: border-box;
}
html,body,#app {
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: radial-gradient(circle at 50% 35%,#06212a 0,#020609 42%,#010203 100%);
}
button,input,select {
  font: inherit;
}
.brand-mark {
  width: 38px;
  height: 38px;
  border: 1px solid var(--cyan);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--cyan);
  font-weight: 800;
  box-shadow: 0 0 22px rgba(37,230,255,.12);
}
.brand-name {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
}
.brand-sub {
  font-size: 11px;
  color: #8fb3bd;
  letter-spacing: .14em;
  margin-top: 6px;
}
.side-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 2px 0 12px;
  border-bottom: 1px solid var(--line);
}
.icon-btn,.play-btn,.now-btn,.view-buttons button,.secondary,.ghost,.primary {
  border: 1px solid var(--line);
  background: #041117;
  color: #cbf9ff;
  border-radius: 7px;
  cursor: pointer;
}
.icon-btn,.play-btn,.now-btn {
  height: 36px;
  min-width: 38px;
}
.play-btn {
  border-color: var(--cyan);
  color: var(--cyan);
}
.now-btn {
  flex: 0 0 58px;
  width: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #001317;
  background: #2ee8ff;
  border-color: #2ee8ff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .075em;
  line-height: 1;
  white-space: nowrap;
  overflow: visible;
  text-shadow: none;
  box-shadow: 0 0 14px rgba(37,230,255,.10);
}
select,input {
  width: 100%;
  background: #051319;
  color: #dbfaff;
  border: 1px solid rgba(77,193,209,.23);
  border-radius: 6px;
  padding: 7px 8px;
  outline: none;
}
.engine-badge {
  font-size: 10px;
  letter-spacing: .12em;
  padding: 7px 10px;
  border: 1px solid rgba(37,230,255,.3);
  border-radius: 999px;
  color: var(--cyan);
}
.engine-badge.loading {
  color: #f5cb6f;
  border-color: rgba(245,203,111,.3);
}
.engine-badge.error {
  color: #ff746d;
  border-color: rgba(255,116,109,.3);
}
.layout {
  height: calc(100vh - 200px);
  display: grid;
  grid-template-columns: 295px minmax(420px,1fr) 330px;
  position: relative;
  transition: grid-template-columns .22s ease;
}
.panel {
  background: var(--panel);
  overflow: auto;
  padding: 14px;
  border-color: var(--line);
  scrollbar-width: thin;
  scrollbar-color: #0b6371 #041016;
}
.left-panel {
  border-right: 1px solid var(--line);
}
.right-panel {
  border-left: 1px solid var(--line);
  min-width: 0;
  transition: width .22s ease,padding .22s ease,border-color .22s ease,opacity .18s ease;
}
section+section {
  border-top: 1px solid var(--line);
  margin-top: 16px;
  padding-top: 15px;
}
h2 {
  font-size: 10px;
  letter-spacing: .16em;
  color: #86aeb8;
  margin: 0 0 11px;
}
.grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
label {
  font-size: 10px;
  color: #7f9ba4;
  display: block;
  margin-bottom: 8px;
}
label input,label select {
  margin-top: 5px;
}
.primary,.secondary,.ghost {
  width: 100%;
  padding: 9px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
}
.primary {
  border-color: var(--cyan);
  color: #001317;
  background: var(--cyan);
}
.secondary {
  color: var(--cyan);
}
.ghost {
  color: #74929a;
  background: transparent;
}
.action-row {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 7px;
}
.small-readout {
  margin-top: 8px;
  color: #7da1aa;
  font-size: 10px;
  line-height: 1.45;
}
.object-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.object-row {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  align-items: center;
  gap: 7px;
  padding: 7px 8px;
  border: 1px solid transparent;
  border-radius: 7px;
  cursor: pointer;
  color: #bdd5dc;
  font-size: 11px;
}
.object-row:hover,.object-row.selected {
  background: rgba(24,205,229,.07);
  border-color: rgba(37,230,255,.16);
}
.object-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  box-shadow: 0 0 10px currentColor;
}
.object-name {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 7px;
}
.object-name .en {
  font-size: 10px;
}
.object-name .hi {
  font-size: 11px;
  color: #e0f9ff;
}
.object-row input {
  width: auto;
  margin: 0;
}
.toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  margin: 7px 0;
  color: #b7d2d9;
}
.toggle input {
  width: auto;
  margin: 0;
  accent-color: #20d8ef;
}
.catalog-status{margin:7px 0 9px;padding:7px 9px;border:1px solid rgba(47,210,232,.18);border-radius:7px;background:rgba(2,12,16,.66);color:#9ccbd3;font:9px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.035em;text-transform:uppercase}
.catalog-status[data-state="ready"]{color:#72f4cd;border-color:rgba(80,255,187,.23)}
.catalog-status[data-state="warning"]{color:#f5cb6f;border-color:rgba(245,203,111,.3)}
.catalog-status[data-state="error"]{color:#ff8a91;border-color:rgba(255,116,109,.3)}
.catalog-guide{margin:-3px 0 9px;color:#5e98a4;font:8px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}
.earth-orientation-status{margin-top:8px;padding:7px 9px;border:1px solid rgba(47,210,232,.16);border-radius:7px;background:rgba(2,12,16,.58);color:#78aeb8;font:8px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.035em;text-transform:uppercase}
.earth-orientation-status[data-quality="observed"]{color:#72f4cd;border-color:rgba(80,255,187,.22)}
.earth-orientation-status[data-quality="predicted"]{color:#b9e8ff;border-color:rgba(80,205,255,.22)}
.earth-orientation-status[data-quality="modelled"],.earth-orientation-status[data-quality="extrapolated"]{color:#f5cb6f;border-color:rgba(245,203,111,.26)}
.viewport-wrap {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle,#031b23 0,#02070b 48%,#010305 100%);
}
#scene {
  position: absolute;
  inset: 0;
}
#starTrailOverlay {
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  pointer-events:none;
}
.scene-overlay {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}
.scene-status {
  top: 12px;
  left: 16px;
  width: max-content;
  max-width: calc(100% - 32px);
}
.bottom-left {
  bottom: 14px;
  left: 16px;
}
.bottom-right {
  right: 14px;
  bottom: 12px;
}
.eyebrow {
  font-size: 9px;
  letter-spacing: .2em;
  color: #6f98a4;
}
.scene-date {
  font-size: 14px;
  color: #e4fbff;
  margin: 0;
}
.sky-search {
  position: absolute;
  z-index: 15;
  top: 40px;
  left: 16px;
  width: min(330px,calc(100% - 32px));
  pointer-events: auto;
}
.engine-badge[hidden] { display: none; }
.sky-search-box {
  height: 38px;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  border: 1px solid rgba(37,230,255,.22);
  border-radius: 9px;
  background: rgba(1,9,13,.82);
  box-shadow: 0 10px 28px rgba(0,0,0,.22),inset 0 0 18px rgba(37,230,255,.025);
  backdrop-filter: blur(10px);
  transition: border-color .16s ease,box-shadow .16s ease;
}
.sky-search:focus-within .sky-search-box {
  border-color: rgba(37,230,255,.58);
  box-shadow: 0 0 0 2px rgba(37,230,255,.055),0 12px 30px rgba(0,0,0,.3);
}
.sky-search-icon {
  color: var(--cyan);
  text-align: center;
  font-size: 18px;
  transform: rotate(-18deg);
}
#skySearchInput {
  height: 36px;
  min-width: 0;
  padding: 0 4px;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #e9fcff;
  font-size: 11px;
}
#skySearchInput::placeholder { color: #668791; }
#skySearchInput::-webkit-search-cancel-button { filter: invert(1); opacity: .45; }
.sky-search kbd {
  margin-right: 8px;
  padding: 2px 6px;
  border: 1px solid rgba(102,182,194,.22);
  border-radius: 5px;
  background: rgba(5,22,28,.85);
  color: #628891;
  font: 9px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;
}
.sky-search-results {
  margin-top: 5px;
  max-height: min(360px,55vh);
  overflow: auto;
  padding: 5px;
  border: 1px solid rgba(37,230,255,.22);
  border-radius: 9px;
  background: rgba(1,9,13,.96);
  box-shadow: 0 16px 36px rgba(0,0,0,.46);
  backdrop-filter: blur(14px);
  scrollbar-width: thin;
  scrollbar-color: #0b6371 #041016;
}
.sky-search-result {
  width: 100%;
  display: grid;
  grid-template-columns: 24px minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #dffaff;
  text-align: left;
  cursor: pointer;
}
.sky-search-result:hover,.sky-search-result.active {
  border-color: rgba(37,230,255,.2);
  background: rgba(37,230,255,.075);
}
.sky-search-result .result-symbol { color: var(--cyan); text-align: center; }
.sky-search-result .result-copy { min-width: 0; }
.sky-search-result .result-title {
  display: block;
  overflow: hidden;
  color: #e8fcff;
  font-size: 11px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sky-search-result .result-subtitle {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  color: #718f98;
  font: 8.5px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sky-search-result .result-kind {
  color: #5e98a4;
  font-size: 8px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sky-search-empty {
  padding: 12px 10px;
  color: #75929c;
  font-size: 10px;
  line-height: 1.5;
}
.sky-search-status {
  min-height: 16px;
  padding: 4px 2px 0;
  color: #77a8b1;
  font-size: 8.5px;
  letter-spacing: .02em;
}
.scene-nakshatra {
  margin-top: 4px;
  font-size: 11px;
  color: var(--cyan);
}
.hint {
  font-size: 9px;
  color: #53747d;
}
.scene-bottom-left{display:flex;align-items:center;gap:8px;max-width:calc(100% - 390px);pointer-events:auto}
.sky-fullscreen{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;padding:0;border:1px solid rgba(71,190,214,.28);border-radius:6px;background:linear-gradient(145deg,rgba(6,27,36,.78),rgba(1,9,14,.68));color:#79bdca;box-shadow:inset 0 1px rgba(219,251,255,.06),0 4px 12px rgba(0,0,0,.24);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer}
.sky-fullscreen:hover,.sky-fullscreen:focus-visible{color:#c9f8ff;border-color:rgba(37,230,255,.62);box-shadow:0 0 12px rgba(37,230,255,.13),inset 0 1px rgba(255,255,255,.08);outline:none}
.sky-fullscreen svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.sky-fullscreen .fullscreen-exit-icon{display:none}
.sky-fullscreen[aria-pressed="true"] .fullscreen-enter-icon{display:none}
.sky-fullscreen[aria-pressed="true"] .fullscreen-exit-icon{display:block}
.viewport-wrap:fullscreen,.viewport-wrap:-webkit-full-screen,.viewport-wrap.sky-pseudo-fullscreen{width:100vw;height:100vh;background:#010305}
.viewport-wrap.sky-pseudo-fullscreen{position:fixed;inset:0;z-index:9999}
body.sky-pseudo-fullscreen{overflow:hidden}
@media (max-width:760px){.scene-bottom-left{max-width:calc(100% - 36px);gap:6px}.sky-fullscreen{flex-basis:22px;width:22px;height:22px}.scene-bottom-left .hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.view-buttons {
  display: flex;
  gap: 6px;
  pointer-events: auto;
}
.view-buttons button {
  padding: 6px 8px;
  font-size: 8px;
  color: #73929b;
}
.view-buttons button.active {
  color: var(--cyan);
  border-color: var(--cyan);
}
.ecliptic-study-hud{display:none;top:88px;right:14px;width:min(305px,calc(100% - 28px));max-height:calc(100% - 148px);overflow:auto;padding:14px 12px;border:1px solid rgba(37,230,255,.27);border-radius:10px;background:rgba(1,9,13,.88);box-shadow:0 14px 34px rgba(0,0,0,.36),inset 0 0 22px rgba(37,230,255,.025);backdrop-filter:blur(12px);scrollbar-width:thin;scrollbar-color:#0b7585 #041016;pointer-events:auto}
.ecliptic-study-hud.visible{display:block}
.ecliptic-study-head{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#7fa9b3;font-size:9px;font-weight:800;letter-spacing:.11em;white-space:nowrap}
.ecliptic-study-actions{display:flex;flex-shrink:0;gap:4px}
.ecliptic-study-head button{padding:6px;border:1px solid rgba(37,230,255,.35);border-radius:6px;background:#05151b;color:var(--cyan);font-size:8.5px;font-weight:800;letter-spacing:.06em;white-space:nowrap;cursor:pointer}
.ecliptic-study-head button.active{background:rgba(37,230,255,.13);box-shadow:inset 0 0 10px rgba(37,230,255,.08)}
.ecliptic-study-head button:hover,.ecliptic-study-head button:focus-visible{border-color:var(--cyan);outline:none}
.ecliptic-study-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.ecliptic-study-modes button{padding:6px;border:1px solid rgba(92,151,163,.2);border-radius:6px;background:rgba(3,18,24,.72);color:#668791;font-size:9px;font-weight:800;letter-spacing:.07em;cursor:pointer}.ecliptic-study-modes button.active{border-color:rgba(37,230,255,.7);color:var(--cyan);background:rgba(37,230,255,.08)}
.ecliptic-study-body{margin-top:10px;font-size:18px;font-weight:750}
.ecliptic-study-primary{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:4px 0 9px;padding-bottom:8px;border-bottom:1px solid rgba(80,166,181,.17)}
.ecliptic-study-measure{display:flex;min-width:0;flex-direction:column;gap:4px}.ecliptic-study-measure small{color:#6f929b;font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.ecliptic-study-primary strong{color:#f1fdff;font:700 27px/1 ui-monospace,SFMono-Regular,Consolas,monospace}
.ecliptic-study-primary span{color:#7ba1aa;font-size:10px;letter-spacing:.08em}
.ecliptic-study-hud[data-mode="sun-moon"] .ecliptic-study-primary strong{font-size:30px}
.ecliptic-study-hud[data-mode="sun-moon"] .ecliptic-study-primary span{color:#d8b7f6;font-size:11.5px;font-weight:800;letter-spacing:.04em}
.ecliptic-study-grid{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;font-size:11px}
.ecliptic-study-grid span{color:#668891}.ecliptic-study-grid b{overflow:hidden;color:#d8f7fb;font-weight:600;text-align:right;text-overflow:ellipsis;white-space:nowrap}
.ecliptic-study-combined{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(80,166,181,.17);font-size:11px}.ecliptic-study-combined[hidden]{display:none}.ecliptic-study-combined span{color:#668891}.ecliptic-study-combined b{color:#d8f7fb;font-weight:600;text-align:right}.ecliptic-study-combined b:nth-of-type(1){color:#ffe279}.ecliptic-study-combined b:nth-of-type(2){color:#f2f7ff}
.ecliptic-study-combined span:nth-of-type(-n+2){font-size:12px;font-weight:750}.ecliptic-study-combined b:nth-of-type(-n+2){font-size:13px;font-weight:800}
.ecliptic-study-lunation{margin-top:11px;padding-top:10px;border-top:1px solid rgba(80,166,181,.17)}.ecliptic-study-lunation summary{color:#7bcbd6;font-size:10px;font-weight:800;letter-spacing:.1em;cursor:pointer}.ecliptic-study-lunation-grid{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;margin-top:9px;font-size:10.5px}.ecliptic-study-lunation-grid span{color:#668891}.ecliptic-study-lunation-grid b{color:#d8f7fb;font-weight:600;line-height:1.45;text-align:right}.ecliptic-study-lunation[data-kind="adhika"] summary{color:#ffc75f}.ecliptic-study-lunation[data-kind="kshaya"] summary{color:#ff829f}
.ecliptic-study-phase{display:flex;justify-content:space-between;gap:12px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(80,166,181,.17);font-size:11px}.ecliptic-study-phase span{color:#8a7fc0}.ecliptic-study-phase b{color:#f1e8ff;text-align:right}
@media (max-width:760px){.ecliptic-study-hud{right:8px;width:min(265px,calc(100% - 16px));padding:10px}.ecliptic-study-body{font-size:16px}.ecliptic-study-primary strong{font-size:22px}.ecliptic-study-grid,.ecliptic-study-combined{font-size:9.5px}.ecliptic-study-lunation-grid,.ecliptic-study-phase{font-size:9px}}
.selected-title {
  font-size: 25px;
  font-weight: 760;
  color: var(--cyan);
  margin-bottom: 0;
}
.selected-subtitle {
  font-size: 17px;
  color: #c9f9ff;
  margin: 1px 0 10px;
}
.data-table {
  display: grid;
  grid-template-columns: 1fr auto;
  font-size: 10px;
  row-gap: 7px;
}
.data-table .k {
  color: #6f8d96;
}
.data-table .v {
  color: #dffaff;
  text-align: right;
  max-width: 180px;
  overflow-wrap: anywhere;
}
.pada-card {
  margin-top: 12px;
  padding: 9px;
  border: 1px solid rgba(37,230,255,.16);
  background: rgba(37,230,255,.035);
  border-radius: 7px;
}
.pada-name {
  font-size: 11px;
  color: #dffbff;
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.pada-name span:last-child {
  color: #9fdce5;
}
.pada-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 3px;
  margin-top: 8px;
}
.pada-segment {
  height: 23px;
  border: 1px solid rgba(37,230,255,.14);
  display: grid;
  place-items: center;
  font-size: 9px;
  color: #5f8993;
  position: relative;
  background: #031016;
}
.pada-segment.active {
  border-color: var(--cyan);
  color: #e8fdff;
  background: rgba(37,230,255,.12);
  box-shadow: inset 0 0 12px rgba(37,230,255,.08);
}
.pada-segment .pada-pointer {
  position: absolute;
  bottom: -7px;
  width: 2px;
  height: 6px;
  background: var(--cyan);
}

.rashi-position-card{padding-bottom:8px}
.rashi-progress-name span:first-child{color:#e8fdff;font-weight:700}
.rashi-progress-track{position:relative;height:8px;margin-top:10px;border:1px solid rgba(37,230,255,.18);border-radius:99px;background:#031016;overflow:visible}
.rashi-progress-fill{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:rgba(37,230,255,.18);box-shadow:inset 0 0 10px rgba(37,230,255,.10)}
.rashi-progress-pointer{position:absolute;top:-4px;width:2px;height:14px;transform:translateX(-1px);background:var(--cyan);box-shadow:0 0 8px rgba(37,230,255,.55)}
.rashi-progress-scale{display:grid;grid-template-columns:repeat(4,1fr);margin-top:6px;color:#5f8993;font-size:8px}
.rashi-progress-scale span:nth-child(2),.rashi-progress-scale span:nth-child(3){text-align:center}
.rashi-progress-scale span:last-child{text-align:right}

.tithi-title {
  font-size: 18px;
  font-weight: 730;
  color: #eafaff;
}
.tithi-hindi {
  font-size: 17px;
  color: var(--cyan);
  margin-top: 2px;
}
.tithi-progress {
  height: 7px;
  background: #031016;
  border: 1px solid rgba(37,230,255,.16);
  border-radius: 99px;
  overflow: hidden;
  margin: 10px 0;
}
.tithi-progress span {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg,#0aaec6,#25e6ff);
  box-shadow: 0 0 14px rgba(37,230,255,.35);
}
.tithi-data {
  margin-top: 6px;
}
.analemma-actions {
  display: grid;
  gap: 7px;
}
.analemma-actions .ghost {
  margin-top: 1px;
}
#analemmaCanvas {
  width: 100%;
  height: 150px;
  margin-top: 10px;
  border: 1px solid var(--line);
  background: #02080c;
  border-radius: 7px;
}
.footnote {
  font-size: 9px;
  color: #5d7c85;
  line-height: 1.45;
  margin-top: 7px;
}
.bottom-strip {
  height: 200px;
  border-top: 1px solid var(--line);
  background: #02080c;
  padding: 5px 14px 6px;
  overflow: hidden;
}
.strip-mode-bar {
  height: 24px;
  display: flex;
  align-items: center;
  gap: 5px;
  padding-bottom: 4px;
}
.strip-mode-btn {
  height: 20px;
  padding: 0 9px;
  border: 1px solid rgba(37,230,255,.14);
  border-radius: 999px;
  background: rgba(3,16,22,.92);
  color: #6f9199;
  font-size: 8.5px;
  font-weight: 740;
  letter-spacing: .08em;
  cursor: pointer;
}
.strip-mode-btn.active {
  border-color: rgba(37,230,255,.62);
  color: #d9fbff;
  background: rgba(37,230,255,.075);
  box-shadow: 0 0 12px rgba(37,230,255,.08);
}
#stripModeRashi.active {
  border-color: rgba(37,230,255,.62);
  color: #d9fbff;
  background: rgba(37,230,255,.075);
  box-shadow: 0 0 12px rgba(37,230,255,.08);
}
.celestial-strip {
  height: 165px;
  display: grid;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 2px;
  padding-bottom: 5px;
  scrollbar-width: thin;
  scrollbar-color: #0b7585 #041016;
  margin-top: 0;
  cursor: grab;
  user-select: none;
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
}
.nakshatra-strip { grid-template-columns: repeat(27,146px); }
.rashi-strip { grid-template-columns: repeat(12,184px); scrollbar-color: #0b7585 #041016; }
.celestial-strip[hidden] { display: none !important; }
.celestial-strip.is-dragging,
.celestial-strip.is-dragging *,
.nakshatra-strip.is-dragging,
.nakshatra-strip.is-dragging *,
.rashi-strip.is-dragging,
.rashi-strip.is-dragging * {
  cursor: grabbing !important;
}
.nak-cell {
  position: relative;
  height: 155px;
  border: 1px solid rgba(37,230,255,.14);
  background: #031016;
  padding: 8px 7px;
  color: #789ca5;
  white-space: nowrap;
  overflow: visible;
}
.nak-cell .nak-en {
  font-size: 10px;
  line-height: 1.05;
  font-weight: 670;
  color: #b5dbe2;
  letter-spacing: .005em;
}
.nak-cell .nak-hi {
  font-size: 13px;
  line-height: 1.1;
  font-weight: 700;
  color: #ecfcff;
  margin-top: 3px;
}
.nak-cell .degree {
  position: absolute;
  top: 62px;
  left: 7px;
  font-size: 8px;
  color: #55747c;
}
.nak-anchor {
  font-size: 8.5px;
  line-height: 1.2;
  color: #72b8c2;
  margin-top: 5px;
  max-width: 130px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rashi-cell {
  position: relative;
  height: 155px;
  border: 1px solid rgba(37,230,255,.14);
  background: #031016;
  padding: 8px 7px;
  color: #789ca5;
  white-space: nowrap;
  overflow: visible;
}
.rashi-cell .rashi-en {
  font-size: 10px;
  line-height: 1.05;
  font-weight: 670;
  color: #b5dbe2;
  letter-spacing: .005em;
}
.rashi-cell .rashi-hi {
  font-size: 13px;
  line-height: 1.1;
  font-weight: 700;
  color: #ecfcff;
  margin-top: 3px;
}
.rashi-cell .degree {
  position: absolute;
  top: 62px;
  left: 7px;
  font-size: 8px;
  color: #55747c;
}
.rashi-cell.active {
  background: linear-gradient(180deg,rgba(37,230,255,.105),rgba(37,230,255,.035));
  border-color: rgba(48,232,255,.82);
  box-shadow: inset 0 0 0 1px rgba(37,230,255,.08),inset 0 0 24px rgba(37,230,255,.07);
}
.rashi-cell.selected-sector {
  box-shadow: inset 0 0 0 1px rgba(37,230,255,.08),inset 0 0 28px rgba(37,230,255,.09);
}
.rashi-degree-mini {
  position: absolute;
  left: 5px;
  right: 5px;
  bottom: 5px;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1px;
}
.rashi-degree-mini span {
  height: 17px;
  border-top: 1px solid rgba(37,230,255,.13);
  display: grid;
  place-items: center;
  font-size: 8px;
  color: #55767e;
}
.nak-cell.active {
  background: linear-gradient(180deg,rgba(37,230,255,.105),rgba(37,230,255,.035));
  border-color: rgba(48,232,255,.82);
  box-shadow: inset 0 0 0 1px rgba(37,230,255,.08),inset 0 0 24px rgba(37,230,255,.07);
}
.nak-cell.selected-sector {
  box-shadow: inset 0 0 0 1px rgba(37,230,255,.08),inset 0 0 28px rgba(37,230,255,.09);
}
.pada-mini {
  position: absolute;
  left: 5px;
  right: 5px;
  bottom: 5px;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1px;
}
.pada-mini span {
  height: 17px;
  border-top: 1px solid rgba(37,230,255,.13);
  display: grid;
  place-items: center;
  font-size: 8px;
  color: #55767e;
}
.nak-body-marker {
  position: absolute;
  z-index: 3;
  height: 20px;
  max-width: 134px;
  padding: 0 7px;
  border: 1px solid color-mix(in srgb,var(--marker) 68%,transparent);
  border-radius: 6px;
  background: rgba(1,8,12,.96);
  color: #f2fdff;
  font-size: 9.5px;
  font-weight: 620;
  line-height: 18px;
  white-space: nowrap;
  transform: translateX(-50%);
  cursor: pointer;
  box-shadow: 0 0 8px color-mix(in srgb,var(--marker) 24%,transparent);
  text-shadow: 0 1px 1px #000;
}
.nak-body-marker::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--marker);
  margin-right: 4px;
  box-shadow: 0 0 7px var(--marker);
}
.nak-body-marker.selected {
  border-color: var(--marker);
  font-weight: 790;
  color: #fff;
  box-shadow: 0 0 13px color-mix(in srgb,var(--marker) 48%,transparent);
}
.object-hover {
  top: 14px;
  left: 14px;
  padding: 7px 10px;
  border: 1px solid rgba(37,230,255,.25);
  background: rgba(1,9,13,.78);
  border-radius: 7px;
  color: #dffbff;
  font-size: 10px;
  letter-spacing: .02em;
  opacity: 0;
  transform: translateY(-3px);
  transition: .15s;
  pointer-events: none;
  white-space: nowrap;
  z-index: 12;
}
.object-hover.visible {
  opacity: 1;
  transform: translateY(0);
}
@media (max-width:1100px) {
  .layout {
    grid-template-columns: 245px 1fr;
  }
  .right-panel {
    display: none;
  }
  .brand-sub {
    display: none;
  }
  .brand-name {
    font-size: 20px;
  }
  .bottom-strip {
    height: 184px;
    padding-top: 5px;
    padding-bottom: 5px;
  }
  .layout {
    height: calc(100vh - 184px);
  }
  .celestial-strip { height: 151px; }
  .nakshatra-strip { grid-template-columns: repeat(27,138px); }
  .rashi-strip { grid-template-columns: repeat(12,174px); }
  .nak-cell,.rashi-cell { height: 141px; }
}
@media (max-width:760px) {
  .left-panel {
    display: none;
  }
  .layout {
    grid-template-columns: 1fr;
  }
  .engine-badge {
    display: none;
  }
  .sky-search { top: 40px; width: min(330px,calc(100% - 32px)); }
.layout {
    height: calc(100vh - 178px);
  }
.bottom-strip {
    height: 178px;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .celestial-strip { height: 146px; }
  .nakshatra-strip { grid-template-columns: repeat(27,132px); }
  .rashi-strip { grid-template-columns: repeat(12,166px); }
  .nak-cell,.rashi-cell { height: 136px; }
  .now-btn {
    flex-basis: 54px;
    width: 54px;
    font-size: 10px;
  }
}
/* Observer sky */
.observer-hud {
  top: 72px;
  left: 16px;
  display: none;
  max-width: 520px;
  padding: 8px 10px;
  border: 1px solid rgba(80,255,187,.18);
  background: rgba(1,9,11,.58);
  border-radius: 7px;
  backdrop-filter: blur(5px);
}
.observer-hud.visible {
  display: block;
}
.observer-location {
  font-size: 9px;
  letter-spacing: .13em;
  color: #77d6b1;
  text-transform: uppercase;
}
.observer-selected {
  margin-top: 4px;
  font-size: 11px;
  color: #dffcf0;
}
.observer-note {
  margin-top: 3px;
  font-size: 8px;
  color: #5f8178;
}
.observer-compass {
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  display: none;
  gap: 5px;
  pointer-events: auto;
}
.observer-compass.visible {
  display: flex;
}
.observer-compass button {
  border: 1px solid rgba(82,255,190,.23);
  background: rgba(1,12,15,.82);
  color: #7de5bc;
  border-radius: 6px;
  padding: 5px 8px;
  font-size: 8px;
  cursor: pointer;
  letter-spacing: .08em;
}
.observer-compass button:hover {
  border-color: #66ffc3;
  color: #d9fff0;
}
/* Observer-only labels and telescope field of view */
.observer-label-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  display: none;
}
.observer-label-layer.visible {
  display: block;
}
.observer-sky-label {
  position: absolute;
  left: 0;
  top: 0;
  transform: translate(-50%,-50%);
  white-space: nowrap;
  font-family: Inter,"Noto Sans Devanagari","Nirmala UI",Mangal,system-ui,sans-serif;
  font-weight: 620;
  letter-spacing: .01em;
  text-shadow: 0 1px 2px #000,0 0 5px rgba(0,0,0,.9);
  transition: opacity .08s linear;
  color: #cfeaf0;
  opacity: .86;
  will-change: transform,left,top;
}
.observer-sky-label.body {
  font-weight: 680;
  opacity: .94;
}
.observer-sky-label.body.selected {
  font-weight: 780;
  opacity: 1;
  text-shadow: 0 1px 2px #000,0 0 7px currentColor;
}
.observer-sky-label.nakshatra {
  color: #82c5cf;
  opacity: .62;
  font-weight: 560;
}
.observer-sky-label.nakshatra.current {
  color: #bfeff5;
  opacity: .88;
  font-weight: 690;
}
.observer-sky-label.rashi {
  color: #82c5cf;
  opacity: .62;
  font-weight: 560;
  text-shadow: 0 1px 2px #000,0 0 6px rgba(37,230,255,.16);
}
.observer-sky-label.rashi.current {
  color: #bfeff5;
  opacity: .88;
  font-weight: 690;
}
.observer-sky-label.anchor {
  color: #a8ccd2;
  opacity: .68;
  font-weight: 540;
}
.observer-label-layer[data-size="small"] .observer-sky-label.body {
  font-size: 11px;
}
.observer-label-layer[data-size="small"] .observer-sky-label.nakshatra {
  font-size: 9px;
}
.observer-label-layer[data-size="small"] .observer-sky-label.rashi {
  font-size: 9px;
}
.observer-label-layer[data-size="small"] .observer-sky-label.anchor {
  font-size: 8px;
}
.observer-label-layer[data-size="medium"] .observer-sky-label.body {
  font-size: 13px;
}
.observer-label-layer[data-size="medium"] .observer-sky-label.nakshatra {
  font-size: 10.5px;
}
.observer-label-layer[data-size="medium"] .observer-sky-label.rashi {
  font-size: 10.5px;
}
.observer-label-layer[data-size="medium"] .observer-sky-label.anchor {
  font-size: 9px;
}
.observer-label-layer[data-size="large"] .observer-sky-label.body {
  font-size: 16px;
}
.observer-label-layer[data-size="large"] .observer-sky-label.nakshatra {
  font-size: 13px;
}
.observer-label-layer[data-size="large"] .observer-sky-label.rashi {
  font-size: 13px;
}
.observer-label-layer[data-size="large"] .observer-sky-label.anchor {
  font-size: 11px;
}
.observer-tools {
  left: 50%;
  bottom: 47px;
  transform: translateX(-50%);
  display: none;
  align-items: center;
  gap: 5px;
  pointer-events: auto;
  padding: 4px 5px;
  border: 1px solid rgba(37,230,255,.13);
  border-radius: 7px;
  background: rgba(1,10,14,.70);
  backdrop-filter: blur(4px);
}
.observer-tools.visible {
  display: flex;
}
.observer-tools span {
  font-size: 8px;
  color: #79aeb8;
  min-width: 48px;
  text-align: center;
  letter-spacing: .06em;
}
.observer-tools button {
  border: 1px solid rgba(37,230,255,.17);
  background: #031016;
  color: #86b8c1;
  border-radius: 5px;
  padding: 4px 7px;
  font-size: 7.5px;
  letter-spacing: .06em;
  cursor: pointer;
}
.observer-tools button:hover {
  color: #dffbff;
  border-color: rgba(37,230,255,.52);
}
.compact-action {
  width:100%; margin-top:4px; padding:6px 8px; border:1px solid rgba(37,230,255,.18);
  border-radius:6px; background:#031016; color:#83bdc8; font-size:8px; letter-spacing:.08em; cursor:pointer;
}
.compact-action:hover { color:#e6fcff; border-color:rgba(37,230,255,.5); }
.stellar-pair-card {
  margin-top:10px; padding:10px; border:1px solid rgba(37,230,255,.28); border-radius:8px;
  background:linear-gradient(145deg,rgba(2,19,25,.92),rgba(1,9,13,.96));
}
.stellar-pair-card .pair-title { color:#58ebff; font-size:11px; font-weight:800; letter-spacing:.05em; }
.stellar-pair-card .pair-status { margin-top:5px; color:#f4fbff; font-size:12px; font-weight:750; }
.stellar-pair-card .pair-detail { margin-top:4px; color:#83b8c2; font-size:9px; line-height:1.45; }
.stellar-pair-card button { margin-top:8px; width:100%; padding:6px; border:1px solid #20dff5; border-radius:5px; background:#05202a; color:#c8faff; font-size:8px; font-weight:800; cursor:pointer; }
.pair-trail-legend { display:flex; flex-wrap:wrap; gap:5px 13px; margin:8px 0 7px; font-size:10px; font-weight:700; letter-spacing:.02em; }
.pair-trail-legend .alcor { color:#ff62d5; text-shadow:0 0 7px rgba(255,98,213,.65); }
.pair-trail-legend .mizar { color:#25e6ff; text-shadow:0 0 7px rgba(37,230,255,.65); }
.pair-transition { margin-top:8px; border-top:1px solid rgba(37,230,255,.18); border-bottom:1px solid rgba(37,230,255,.12); padding:6px 0; color:#85bbc5; font-size:9px; line-height:1.45; }
.pair-transition summary { color:#55e9ff; font-size:8px; font-weight:800; letter-spacing:.06em; cursor:pointer; }
.pair-transition > div { padding-top:6px; }
.stellar-pair-card .pair-detail b,.pair-transition b { color:#c9f8ff; font-weight:700; }
.observer-sky-label.pole { color:#dffcff; border-color:rgba(80,239,255,.5); text-shadow:0 0 8px #22dff7; font-weight:800; }
.observer-label-layer[data-size="small"] .observer-sky-label.body.selected {
  font-size: 12px;
}
.observer-label-layer[data-size="medium"] .observer-sky-label.body.selected {
  font-size: 15px;
}
.observer-label-layer[data-size="large"] .observer-sky-label.body.selected {
  font-size: 18px;
}
/* Trajectory controls */
.trajectory-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-top: 7px;
}
.trajectory-actions button {
  margin: 0;
}
.trajectory-legend {
  display: flex;
  gap: 11px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 8px;
  font-size: 8px;
  color: #7899a2;
}
.trajectory-legend span::before {
  content: "";
  display: inline-block;
  width: 13px;
  height: 3px;
  border-radius: 4px;
  margin-right: 4px;
  vertical-align: middle;
}
.trajectory-legend .direct-key::before {
  background: #7bdff0;
}
.trajectory-legend .retro-key::before {
  background: #ff3f86;
}
.trajectory-actions.single {
  grid-template-columns: 1fr;
}
.trajectory-actions.single .secondary {
  width: 100%;
}
.advanced-controls {
  margin-top: 10px;
  border-top: 1px solid rgba(37,230,255,.10);
  padding-top: 8px;
}
.advanced-controls summary {
  color: #6f929c;
  font-size: 8px;
  letter-spacing: .10em;
  cursor: pointer;
  user-select: none;
}
.advanced-controls[open] summary {
  color: #9fdce5;
  margin-bottom: 9px;
}
.star-advanced {
  margin-top: 10px;
}
.star-advanced .data-table {
  margin-top: 8px;
}
.advanced-grid {
  margin-top: 3px;
}

.right-panel section:first-child{padding-top:8px;}


/* Collapsible right data panel */
.right-panel-toggle { position:absolute; top:50%; transform:translateY(-50%); right:330px; z-index:5; width:auto; padding:8px 10px; font-size:10px; font-weight:700; letter-spacing:.08em; border:1px solid var(--line); border-right:none; border-radius:8px 0 0 8px; background:rgba(3,13,18,.94); color:#9edee8; cursor:pointer; transition:right .22s ease, color .16s ease, border-color .16s ease; }
.right-panel-toggle:hover { color: var(--cyan); border-color: rgba(37,230,255,.35); }
.panel-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto}
#selectionDetails{position:relative}
#selectionHeaderActions{position:absolute;right:13px;top:13px}
#selectionDetails .selected-title{padding-right:73px;overflow-wrap:anywhere}
.interface-language{display:inline-flex;flex:0 0 auto;gap:1px;padding:2px;border:1px solid rgba(97,202,220,.2);border-radius:6px;background:linear-gradient(140deg,rgba(29,58,70,.52),rgba(2,10,17,.78));box-shadow:inset 0 1px 0 rgba(204,244,255,.09),0 3px 12px #0005;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.interface-language button{all:unset;box-sizing:border-box;min-width:25px;height:20px;padding:0 4px;text-align:center;font:600 10px/20px Inter,"Nirmala UI",Mangal,system-ui,sans-serif;letter-spacing:.02em;color:#89a4ad;cursor:pointer;border-radius:3px}
.interface-language button[aria-pressed="true"]{color:#b9f5ff;background:rgba(70,201,225,.12);box-shadow:inset 0 0 0 1px rgba(94,225,245,.16),0 0 7px rgba(36,202,230,.07)}
.interface-language button:hover{color:#d5faff;background:rgba(86,204,221,.1)}
.interface-language button:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}
html[lang="hi"] [data-language-duplicate]{display:none!important}
html[lang="hi"] .data-table .k{overflow-wrap:anywhere}
.layout.right-collapsed { grid-template-columns: 295px minmax(420px,1fr) 0px; }
.layout.right-collapsed .right-panel { width:0; min-width:0; padding:0; border-left-color:transparent; opacity:0; overflow:hidden; visibility:hidden; pointer-events:none; }
.layout.right-collapsed .right-panel > * { display:none; }
.layout.right-collapsed .right-panel-toggle { right:0; }
@media (max-width:1100px){ .right-panel-toggle { display:none; } }


/* Floating sky time controls */
/* previous baseline right:70px preserved for audit */
.sky-toolbar{position:absolute;top:14px;right:12px;z-index:4;display:flex;align-items:flex-start;gap:12px;pointer-events:auto;}
.sky-epoch-controls{display:flex;gap:8px;align-items:center;padding:8px 10px;background:rgba(3,13,18,.58);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(47,210,232,.18);border-radius:12px;box-shadow:0 8px 26px rgba(0,0,0,.16);}
.sky-epoch-controls .icon-btn,.sky-epoch-controls .play-btn,.sky-epoch-controls .now-btn{height:34px;min-width:36px;}
.sky-epoch-controls .now-btn{width:56px;flex:0 0 56px;}
.sky-epoch-controls select{width:auto;min-width:104px;padding:7px 28px 7px 10px;background:rgba(4,17,23,.86);}
.sky-toolbar .engine-badge{align-self:center;background:rgba(3,13,18,.48);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
@media (max-width:1100px){ .sky-toolbar{gap:8px;right:10px;top:10px;} .layout.right-collapsed{grid-template-columns:245px 1fr;} }
@media (max-width:760px){ .sky-toolbar{right:8px;top:8px;gap:6px;} .sky-epoch-controls{padding:6px 8px;} .sky-epoch-controls select{min-width:92px;} .sky-toolbar .engine-badge{display:none;} .layout.right-collapsed{grid-template-columns:1fr;} }

/* Developer-only diagnostics. Hidden unless Ctrl+Shift+D is pressed. */
.diagnostics-panel{position:fixed;left:12px;bottom:194px;z-index:99;display:none;min-width:250px;max-width:360px;margin:0;padding:10px 12px;border:1px solid rgba(37,230,255,.24);border-radius:9px;background:rgba(0,7,10,.90);color:#aeeaf2;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;pointer-events:none;box-shadow:0 8px 30px rgba(0,0,0,.28)}
.diagnostics-panel.visible{display:block}

.transit-data .k,.transit-data .v{font-size:12px;}

/* Celestial event research lab */
.event-lab details{border:1px solid rgba(37,230,255,.13);border-radius:8px;padding:9px;margin-top:9px;background:rgba(2,12,17,.42)}
.event-lab summary{cursor:pointer;color:#9adce6;font-size:9px;font-weight:750;letter-spacing:.08em;user-select:none}
.event-lab details[open] summary{color:var(--cyan);margin-bottom:9px}
.event-controls{margin-top:4px}
.event-run{width:100%;margin-top:8px}
.event-status{margin:8px 0 5px;color:#6f9da7;font-size:9px;line-height:1.35}
.event-status[data-state="loading"]{color:#ffd76a}
.event-status[data-state="ok"]{color:#65f0b2}
.event-status[data-state="error"]{color:#ff7895}
.event-card{position:relative;margin-top:7px;padding:9px;border:1px solid rgba(37,230,255,.15);border-radius:7px;background:rgba(4,18,24,.66)}
.event-card-title{padding-right:60px;color:#e6fbff;font-size:12px;font-weight:750}
.event-card-time{margin-top:3px;color:#39e6ff;font-size:10px}
.event-card-data{margin-top:6px;color:#92bac3;font-size:9px;line-height:1.5}
.event-card button{position:absolute;right:7px;top:7px;width:auto;padding:5px 7px;font-size:8px}
.event-contact-list{color:#b9d8de}
.event-uncertainty{color:#f1ce78}
.event-empty{padding:9px 2px;color:#7398a1;font-size:9px}


/* Compact selected-star instrument panel */
#selectionDetails.star-selection-mode{display:flex;flex-direction:column;}
#selectionDetails.star-selection-mode .selected-title{order:1;}
#selectionDetails.star-selection-mode .selected-subtitle{order:2;margin-bottom:7px;font-size:12px;color:#9fdce5;line-height:1.45;}
#selectionDetails.star-selection-mode #padaCard{order:3;}
#selectionDetails.star-selection-mode #selectedData{order:4;}
#selectionDetails.star-selection-mode #starAdvancedDetails{order:5;}
#selectionDetails.star-selection-mode #stellarPairCard{order:6;}
#selectionDetails.star-selection-mode .selected-title{font-size:23px;line-height:1.08;}
#selectionDetails.star-selection-mode #selectedData{row-gap:5px;margin-top:9px;}
.star-summary-heading{grid-column:1/-1;margin-top:7px;padding-top:7px;border-top:1px solid rgba(37,230,255,.09);font-size:8px;font-weight:750;letter-spacing:.13em;color:#5f9aa5;}
.star-summary-heading:first-child{margin-top:0;}
#selectionDetails.star-selection-mode .data-table .k{color:#6f949d;}
#selectionDetails.star-selection-mode .data-table .v{color:#dffaff;font-variant-numeric:tabular-nums;}
.star-sector-card{margin-top:3px;padding:8px 9px 7px;background:rgba(37,230,255,.025);border-color:rgba(37,230,255,.14);}
.star-sector-kicker{font-size:8px;font-weight:800;letter-spacing:.13em;color:#5f9aa5;margin-bottom:5px;}
.star-sector-title{display:flex;justify-content:space-between;gap:10px;align-items:baseline;color:#e8fdff;font-size:11px;font-weight:720;}
.star-sector-title span:last-child{font-size:9px;font-weight:520;color:#9fdce5;white-space:nowrap;}
.star-sector-meta{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:9px;color:#8bb6bf;}
.star-sector-meta span:first-child{color:#dffaff;font-weight:650;}
.star-pada-track{height:5px;margin-top:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;position:relative;overflow:visible;}
.star-pada-track>span{display:block;background:#06171e;border:1px solid rgba(37,230,255,.12);border-radius:2px;}
.star-pada-track>span.active{background:rgba(37,230,255,.22);border-color:rgba(37,230,255,.55);}
.star-pada-track>i{position:absolute;top:-3px;width:2px;height:11px;transform:translateX(-1px);background:var(--cyan);box-shadow:0 0 7px rgba(37,230,255,.55);}
.star-pada-scale,.star-rashi-scale{display:grid;grid-template-columns:repeat(4,1fr);margin-top:4px;color:#577b84;font-size:7px;text-align:center;}
.star-sector-progress{position:relative;height:5px;margin-top:8px;border:1px solid rgba(37,230,255,.14);border-radius:99px;background:#06171e;overflow:visible;}
.star-sector-progress>span{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:rgba(37,230,255,.20);}
.star-sector-progress>i{position:absolute;top:-3px;width:2px;height:11px;transform:translateX(-1px);background:var(--cyan);box-shadow:0 0 7px rgba(37,230,255,.55);}
.star-rashi-scale{text-align:left;}
.star-rashi-scale span:nth-child(2),.star-rashi-scale span:nth-child(3){text-align:center;}
.star-rashi-scale span:last-child{text-align:right;}
#selectionDetails.star-selection-mode .star-advanced{margin-top:10px;}
#selectionDetails.star-selection-mode .star-advanced summary{font-size:9px;letter-spacing:.11em;}
#selectionDetails.star-selection-mode .star-advanced .data-table{font-size:11px;row-gap:8px;line-height:1.35;}
#selectionDetails.star-selection-mode .star-advanced .data-table .k{color:#789ea7;}
#selectionDetails.star-selection-mode .star-advanced .data-table .v{max-width:185px;}

/* Compact astronomical lunar-month layer */
.lunar-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.lunar-section-head h2{margin:0}
.lunar-system-select{width:auto;min-width:100px;padding:5px 24px 5px 8px;font-size:10px;color:#c8f8ff;background:#041218}
.lunar-month-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.lunar-month-title{font-size:18px;font-weight:760;color:#effdff;line-height:1.05}
.lunar-month-hindi{font-size:16px;font-weight:680;color:var(--cyan);margin-top:2px;line-height:1.08}
.lunar-month-status{flex:0 0 auto;margin-top:2px;padding:4px 6px;border:1px solid rgba(37,230,255,.18);border-radius:6px;color:#7bb9c3;font-size:8.5px;font-weight:760;letter-spacing:.065em;white-space:nowrap}
.lunar-month-progress{height:5px;margin:8px 0 6px;border:1px solid rgba(37,230,255,.14);border-radius:99px;background:#031016;overflow:hidden}
.lunar-month-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#087c8e,#25e6ff);box-shadow:0 0 10px rgba(37,230,255,.25)}
.lunar-month-data{margin-top:2px}
.lunar-month-data .k,.lunar-month-data .v{font-size:11px}
.lunar-tithi-divider{height:1px;margin:11px 0 9px;background:rgba(47,210,232,.16)}
.tithi-data .k,.tithi-data .v{font-size:11px}
#tithiSection .footnote{font-size:9.5px}

/* Sunrise-aware Panchāṅga day: deliberately compact and non-repetitive. */
.panchanga-day{margin-top:10px;padding-top:9px;border-top:1px solid rgba(37,230,255,.12)}
.panchanga-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;color:#72a5af;font-size:9px;font-weight:780;letter-spacing:.10em}
.panchanga-day-head span:last-child{color:#4f818b;font-size:8.5px}
.panchanga-day-data{margin-top:0}
.panchanga-day-data .k,.panchanga-day-data .v{font-size:11.5px}
.panchanga-day-data .v{line-height:1.28}
/* Festival details reuse the existing right panel; no extra dashboard. */
.festival-section[hidden]{display:none!important}
#festivalSection{font-family:inherit;min-width:0}
#festivalSection .festival-heading,#festivalSection .festival-nav,#festivalSection .festival-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}
#festivalSection .festival-heading{margin-bottom:10px}
#festivalSection .festival-heading h2{margin:0;color:#78abb5;font-size:.75rem;line-height:1.4;font-weight:650;letter-spacing:.10em}
#festivalSection .festival-close{flex:0 0 26px;width:26px;min-width:26px;max-width:26px;height:26px;min-height:26px;margin:0;padding:0;display:grid;place-items:center;border:1px solid rgba(47,210,232,.18);border-radius:6px;background:transparent;color:#8ab6c0;font-size:1rem;line-height:1;font-weight:400;cursor:pointer}
#festivalSection .festival-close:hover{color:var(--cyan);background:rgba(37,230,255,.06);border-color:rgba(37,230,255,.5)}
#festivalSection .selected-title{margin:0;color:#c4f7ff;font-size:1.125rem;line-height:1.3;font-weight:680;letter-spacing:-.015em;overflow-wrap:anywhere}
#festivalSection .festival-native{margin-top:4px;color:#70b7c5;font-size:.875rem;font-weight:500;line-height:1.45}
#festivalSection p{font-size:.8125rem;line-height:1.5;margin:10px 0}
#festivalSection #festivalRule{color:#abc4cc;margin:12px 0 10px}
#festivalSection .festival-nav{padding:4px 0 10px;border-bottom:1px solid var(--line)}
#festivalSection .festival-nav button{flex:0 1 auto;margin:0;min-height:28px;padding:4px 8px;background:transparent;border-color:transparent;color:#80b8c3;border-radius:5px;font-size:.75rem;line-height:1.3;font-weight:600;letter-spacing:.035em}
#festivalSection .festival-nav button:hover{background:rgba(37,230,255,.05);border-color:var(--line);color:#c4f7ff}
#festivalSection #festivalData{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;margin:13px 0 6px}
#festivalSection #festivalData .k{padding:0;border:0;color:#789da8;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
#festivalSection #festivalData .v{padding:0;border:0;min-width:0;max-width:none;color:#e2f8ff;font-size:.875rem;font-weight:550;line-height:1.45;text-align:left;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#festivalSection #festivalStatus{margin:7px 0 13px;color:#86a6b0;font-size:.8125rem;line-height:1.45}
#festivalSection #festivalStatus[data-state="error"]{color:#ffa69a}
#festivalSection #festivalStatus[data-state="loading"]{color:#8cd6e2}
#festivalSection .festival-moment{display:block;margin:0;color:#7ca2ae;font-size:.75rem;font-weight:600;letter-spacing:.04em}
#festivalSection select{display:block;width:100%;min-width:0;margin:6px 0 10px;padding:7px 9px;min-height:34px;border:1px solid rgba(47,210,232,.24);border-radius:6px;background:#041117;color:#cceaf2;font-size:.8125rem;font-weight:500;letter-spacing:normal;line-height:1.35}
#festivalSection .festival-actions button{flex:1;min-width:0;min-height:32px;margin:0;padding:7px 8px;border-radius:6px;font-size:.75rem;font-weight:750;letter-spacing:.07em;line-height:1.3;box-shadow:none}
#festivalSection .festival-actions .primary{background:#24d3e8;border-color:#24d3e8;color:#00212a}
#festivalSection .festival-actions .primary:hover{background:#52e4f4;border-color:#52e4f4}
#festivalSection .festival-actions .secondary{background:#05171e;color:#8ad9e6;border-color:rgba(47,210,232,.28)}
#festivalSection .festival-actions .secondary:hover{background:#09232c;border-color:rgba(47,210,232,.55)}
#festivalSection button:focus-visible,#festivalSection select:focus-visible,#festivalSection summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
#festivalSection button:disabled{opacity:.45;cursor:default}
#festivalSection #festivalLive{color:#79b7c5;font-size:.75rem;margin:9px 0 0;line-height:1.45}
#festivalSection #festivalLive:empty{display:none}
#festivalSection .festival-details{margin-top:15px;padding-top:11px;border-top:1px solid var(--line)}
#festivalSection .festival-details summary{color:#74a5b0;font-size:.75rem;line-height:1.5;font-weight:650;letter-spacing:.065em;cursor:pointer}
#festivalSection .festival-region{color:#93bac5}
#festivalSection #festivalTechnicalData{grid-template-columns:minmax(65px,.7fr) minmax(0,1.7fr);gap:7px 9px;margin-top:10px}
#festivalSection #festivalTechnicalData .k,#festivalSection #festivalTechnicalData .v{font-size:.75rem;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#festivalSection #festivalTechnicalData .k{color:#6f98a5}
#festivalSection #festivalTechnicalData .v{max-width:none;min-width:0;color:#b0d0d9}
#festivalSection #festivalNote{color:#7696a3;font-size:.75rem;line-height:1.55}
#festivalSection a{color:#68c4d5;font-size:.75rem;text-underline-offset:3px}

/* Topic surfaces: one deep-colour container per subject, without touching the sky. */
.panel{
  --card-edge:rgba(62,136,162,.18);
  --card-text:#c7e4ee;
  background:linear-gradient(180deg,#010509,#010305);
}
.panel > .topic-card{
  min-width:0;margin:0 0 14px;padding:13px;
  border:1px solid var(--card-edge);border-radius:12px;
  background:linear-gradient(145deg,#06121d 0%,#040c14 56%,#03090f 100%);
  box-shadow:inset 0 1px 0 rgba(112,186,211,.025),0 7px 16px rgba(0,0,0,.5);
}
.panel > .topic-card:last-child{margin-bottom:2px}
.right-panel > .topic-card:first-child{padding-top:13px}
.panel > .topic-card[hidden]{display:none!important}
.left-panel > .topic-card{padding:11px;background:linear-gradient(145deg,#05111a,#03090f)}
.topic-card > h2{color:#83becd;line-height:1.45;letter-spacing:.09em}
.topic-card .data-table{column-gap:10px;row-gap:8px;font-size:.75rem;line-height:1.5}
.topic-card .data-table .k{color:#86a9b7}
.topic-card .data-table .v{color:var(--card-text)}
.topic-card input:not([type="checkbox"]):not([type="range"]),.topic-card select{
  background:#02070d;border-color:rgba(72,136,164,.24);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.22);
}
.topic-card button:focus-visible,.topic-card select:focus-visible,.topic-card summary:focus-visible{
  outline:2px solid var(--cyan);outline-offset:3px;
}
#festivalSection .festival-heading h2{color:#83becd;font-size:.6875rem}
#festivalSection .festival-close{background:#02080e;border-color:var(--card-edge);color:#9dccd9}
#festivalSection .festival-nav{margin-top:12px;padding:6px 0;border-top:1px solid var(--card-edge);border-bottom:1px solid var(--card-edge)}
#festivalSection .festival-actions .primary{background:linear-gradient(180deg,#20c8df,#0da8c1);border-color:#25bcd2;box-shadow:inset 0 1px rgba(255,255,255,.1),0 3px 8px rgba(0,0,0,.35)}
#festivalSection .festival-actions .secondary{background:#05131d;border-color:rgba(60,143,169,.3)}
#festivalSection .festival-details{
  margin:15px -13px -13px;padding:12px 13px;
  border-top:1px solid var(--card-edge);border-radius:0 0 12px 12px;
  background:rgba(0,3,7,.58);box-shadow:inset 0 1px 0 rgba(100,166,195,.015);
}
#festivalSection .festival-details summary{color:#8bb9c9;font-size:.6875rem;letter-spacing:.08em}
#festivalSection .festival-details[open] summary{margin-bottom:12px;color:#a4e6f3}
#festivalSection #festivalNote{color:#91aab7}
.calendar-card > h2{font-size:11px;margin:0 0 13px}
.calendar-part{min-width:0;padding:12px 0}
.calendar-part + .calendar-part{border-top:1px solid var(--card-edge)}
.calendar-lunar{padding-top:0}
.calendar-part h3{font-size:10px;line-height:1.5;font-weight:650;letter-spacing:.07em;color:#92c6d7;margin:0}
.calendar-part-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.calendar-part-head > span{color:#8babb7;font-size:8px;letter-spacing:.065em;white-space:nowrap}
.calendar-card .lunar-section-head{gap:7px;margin-bottom:12px}
.calendar-card .lunar-system-select{min-width:0;width:auto;max-width:130px;padding:6px 4px;font-size:11px;margin:0}
.calendar-card .lunar-month-title,.calendar-card .solar-value-name{font-size:1.25rem;line-height:1.25;font-weight:650;color:#effdff;overflow-wrap:anywhere}
.calendar-card .lunar-month-hindi,.calendar-card .solar-value-native{font-size:.9375rem;line-height:1.4;color:#7ccbdc;font-weight:500;margin-top:2px;overflow-wrap:anywhere}
.calendar-card .lunar-month-progress,.calendar-card .tithi-progress{height:4px;margin:10px 0}
.calendar-card .lunar-tithi-divider{margin:14px 0 12px;background:rgba(108,168,192,.14)}
.calendar-card .data-table{grid-template-columns:minmax(60px,.8fr) minmax(0,1.6fr);gap:8px 10px}
.calendar-card .data-table .k,.calendar-card .data-table .v{font-size:.75rem;line-height:1.5;min-width:0;max-width:none}
.calendar-card .tithi-title{font-size:16px;line-height:1.3}
.calendar-card .tithi-hindi{font-size:13px;line-height:1.4}
.calendar-card .calendar-solar{
  margin:0 -13px;padding:13px;background:linear-gradient(100deg,rgba(2,34,43,.32),rgba(2,19,29,.2));
  border-top:1px solid var(--card-edge);border-bottom:1px solid var(--card-edge);
}
.calendar-card .calendar-solar h3{color:#92c6d7}
.solar-calendar-data{display:grid;gap:14px}
.solar-calendar-entry{min-width:0}
.solar-value-label{color:#86a9b7;font-size:.75rem;line-height:1.5;margin-bottom:4px}
.calendar-card .panchanga-day{margin-top:0;padding-top:13px;border-top:0}
.calendar-card .panchanga-day-head{margin-bottom:10px;letter-spacing:.07em;color:#92bdcd}
.calendar-card .panchanga-day-head span:last-child{color:#8babb7;font-size:8px}
#tithiSection .calendar-footnote{margin:0;padding-top:10px;border-top:1px solid rgba(108,168,192,.14);font-size:10px;line-height:1.6;color:#8eabb8}

/* Slightly larger data; titles, controls and the sky retain their existing scale. */
#selectionDetails .data-table .k,#selectionDetails .data-table .v,
#transitSection .data-table .k,#transitSection .data-table .v{font-size:.75rem;line-height:1.5;min-width:0}
#selectionDetails .data-table{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}
#selectionDetails .data-table .v{max-width:none;font-variant-numeric:tabular-nums}
#selectionDetails .pada-card{font-size:.75rem;line-height:1.5}
#festivalSection #festivalData .v{font-size:.9375rem}
#festivalSection #festivalTechnicalData .k,#festivalSection #festivalTechnicalData .v{font-size:.8125rem}

/* Devanagari needs its own optical sizes and line-height, not tiny Latin captions.
   EN keeps all of the approved sizing; numerical values and sky geometry do not change. */
html[lang="hi"]{font-family:Inter,"Jordan Hindi","Noto Sans Devanagari","Nirmala UI",Mangal,system-ui,sans-serif}
html[lang="hi"] :is(h2,h3,label,button,summary,.brand-name,.brand-sub,.panchanga-day-head){letter-spacing:normal}
html[lang="hi"] .left-panel :is(label,input,select,.primary,.secondary,.ghost){font-size:12px;line-height:1.5}
html[lang="hi"] .topic-card > h2{font-size:12px;line-height:1.5}
html[lang="hi"] .object-name .en{font-size:14px;line-height:1.5}
html[lang="hi"] .nak-cell .nak-en,html[lang="hi"] .rashi-cell .rashi-en{font-size:14px;line-height:1.5;font-weight:650;color:#ecfcff}
html[lang="hi"] .nak-body-marker{font-size:12px;line-height:18px}
html[lang="hi"] :is(.strip-mode-btn,.view-buttons button,.now-btn){font-size:11px;line-height:1.5}
html[lang="hi"] .sky-search input{font-size:12px}
html[lang="hi"] .topic-card .data-table :is(.k,.v){font-size:13px!important;line-height:1.6!important}
html[lang="hi"] #festivalSection .festival-heading h2{font-size:12px;line-height:1.5;letter-spacing:normal}
html[lang="hi"] #festivalSection :is(p,select,.festival-moment,.festival-nav button,.festival-actions button,.festival-details summary){font-size:13px;line-height:1.55;letter-spacing:normal}
html[lang="hi"] #festivalSection #festivalData .v{font-size:15px!important}
html[lang="hi"] #festivalSection .selected-title{font-size:20px;line-height:1.5}
html[lang="hi"] .calendar-part :is(h3,.panchanga-day-head){font-size:12px;line-height:1.5}
html[lang="hi"] .calendar-part-head > span,html[lang="hi"] .calendar-card .panchanga-day-head span:last-child{font-size:10px;letter-spacing:normal}
html[lang="hi"] .calendar-card :is(.lunar-month-title,.solar-value-name){line-height:1.5}
html[lang="hi"] .calendar-card .lunar-system-select{font-size:12px}
html[lang="hi"] .solar-value-label{font-size:13px}

/* A quiet dedication in the existing data card; absent until both are selected. */
#selectionDetails.pyalu-selection .selected-title{font-size:21px;line-height:1.4}
#selectionDetails.pyalu-selection .selected-subtitle{font-size:14px;line-height:1.6}
#selectionDetails.pyalu-selection .data-table{display:block}
.pyalu-caption{font-size:11px;line-height:1.6;color:#7197a6;margin:10px 0 0}
.pyalu-dedication{margin:18px 0 3px;padding:17px 0 0;border-top:1px solid rgba(100,203,226,.16);font-family:"Jordan Hindi","Noto Sans Devanagari","Nirmala UI",Mangal,sans-serif;font-size:16px;font-weight:400;line-height:1.95;letter-spacing:normal;color:#cce7ef;text-wrap:pretty}
.pyalu-dedication p{margin:0 0 20px}
.pyalu-dedication p:last-child{margin-bottom:0;color:#b6dfea}
.pyalu-dedication[hidden]{display:none!important}
#selectionDetails.star-selection-mode .pyalu-dedication{order:5}
.startup-dedication{position:absolute;z-index:35;left:50%;top:50%;width:min(290px,calc(100% - 38px));padding:14px 18px 15px;transform:translate(-50%,-50%);text-align:center;color:#d9f7ff;background:linear-gradient(145deg,rgba(8,31,40,.78),rgba(2,11,16,.7));border:1px solid rgba(104,225,245,.24);border-radius:12px;box-shadow:0 18px 55px rgba(0,0,0,.5),inset 0 1px 0 rgba(213,250,255,.08);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);transition:opacity .65s ease,transform .65s ease;pointer-events:none}
.startup-dedication p{margin:0;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:400;line-height:1.65;color:#d6edf2;text-wrap:balance}
.startup-dedication p + p{margin-top:11px;font-size:11px;font-weight:600;letter-spacing:.055em;color:#63dff1}
.startup-dedication.leaving{opacity:0;transform:translate(-50%,calc(-50% - 6px))}
.startup-dedication[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){.startup-dedication{transition:none}}

#scene canvas { width:100%; height:100%; touch-action:none; }
/* Phone and tablet workspace: the same panels in accessible modal sheets. */
.mobile-nav { display:none; }
.mobile-nav[hidden] { display:none!important; }
#mobilePanel { width:min(520px,100%); max-width:100%; max-height:90dvh; margin:auto auto 0; padding:0; color:#eafaff; background:#031017; border:1px solid var(--line); border-radius:16px 16px 0 0; }
#mobilePanel::backdrop { background:rgba(0,4,8,.65); }
.mobile-panel-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); }
.mobile-panel-header h2 { margin:0; font-size:16px; }
.mobile-panel-header button,.mobile-nav button { min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:7px; color:#bff7ff; background:#08222b; cursor:pointer; }
#mobilePanelContent { overflow:auto; max-height:calc(90dvh - 70px); padding-bottom:env(safe-area-inset-bottom); overscroll-behavior:contain; }
#mobilePanel .panel { display:block; width:100%; padding:16px; overflow:visible; border:0; }
#mobilePanel .panel input:not([type=checkbox]),#mobilePanel .panel select { min-height:44px; font-size:16px; }
#mobilePanel .panel button,#mobilePanel .panel summary,#mobilePanel .object-row { min-height:44px; }
#mobilePanel .panel label,#mobilePanel .object-name .en,#mobilePanel .object-name .hi,#mobilePanel .data-table { font-size:14px; }
#mobilePanel .toggle { min-height:44px; }
#mobilePanel input[type=checkbox] { width:20px; height:20px; flex-shrink:0; }
#mobilePanel .observer-tools,#mobilePanel .observer-compass { position:static; transform:none; flex-wrap:wrap; margin-top:12px; }
#mobilePanel .observer-tools button,#mobilePanel .observer-compass button { font-size:12px; min-width:44px; }
@media (max-width:1100px) {
  #app { display:flex; flex-direction:column; height:100dvh; padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
  .mobile-nav { display:flex; align-items:center; flex-shrink:0; gap:8px; min-height:56px; padding:6px 10px; border-bottom:1px solid var(--line); }
  .mobile-brand { flex:1; color:var(--cyan); font-weight:800; white-space:nowrap; }
  .mobile-brand span { font-size:12px; margin-left:4px; }
  .layout,.layout.right-collapsed { flex:1; min-height:0; height:auto; grid-template-columns:minmax(0,1fr); transition:none; }
  .layout > .left-panel,.layout > .right-panel,.right-panel-toggle { display:none; }
  .bottom-strip { flex-shrink:0; height:172px; padding:4px 8px; }
  .strip-mode-bar { min-height:40px; }
  .strip-mode-btn { min-height:40px; font-size:12px; }
  .celestial-strip { height:124px; }
  .nak-cell,.rashi-cell { height:118px; }
  .sky-toolbar { left:8px; right:8px; top:8px; justify-content:flex-end; }
  .sky-toolbar .engine-badge { display:none; }
  .sky-epoch-controls { gap:4px; padding:4px; }
  .sky-epoch-controls .icon-btn,.sky-epoch-controls .play-btn,.sky-epoch-controls .now-btn { height:44px; min-width:44px; }
  .sky-epoch-controls select { min-height:44px; font-size:16px; min-width:0; max-width:130px; padding:6px; }
  .sky-search { top:70px; left:10px; width:min(330px,calc(100% - 20px)); }
  .sky-search-box { height:44px; }
  #skySearchInput { font-size:16px; min-width:0; }
  .sky-search kbd { display:none; }
  .scene-status { top:122px; left:12px; }
  .scene-date { font-size:12px; }
  .observer-hud { top:146px; left:12px; max-width:calc(100% - 24px); }
  .observer-note { display:none; }
  #sceneHint { display:none; }
  .view-buttons { left:62px; right:8px; bottom:8px; overflow-x:auto; gap:4px; touch-action:pan-x; }
  .view-buttons button { min-height:44px; flex-shrink:0; font-size:11px; padding:6px 8px; }
  #skyFullscreen { width:44px; height:44px; left:8px; bottom:8px; }
}
@media (max-width:380px) {
  .mobile-brand span { display:none; }
  .sky-epoch-controls { width:100%; }
  .sky-epoch-controls select { flex:1; width:0; }
  .sky-epoch-controls .now-btn { flex-basis:48px; width:48px; }
}
@media (max-width:1100px) and (max-height:550px) and (orientation:landscape) {
  .bottom-strip { height:112px; }
  .celestial-strip { height:64px; }
  .nak-cell,.rashi-cell { height:118px; }
  .celestial-strip { overflow-y:auto; }
  .sky-search { top:8px; width:calc(100% - 375px); }
  .scene-status { top:64px; }
  .observer-hud { top:88px; }
  .mobile-nav { min-height:48px; padding-top:2px; padding-bottom:2px; }
}
@media (pointer:coarse) and (min-width:1101px) {
  button,select,input:not([type=checkbox]),summary { min-height:44px; }
  .toggle,.object-row { min-height:44px; }
}

@media (max-width:1100px) {
  .scene-bottom-left { left:8px; bottom:8px; max-width:44px; }
  #skyFullscreen { flex-basis:44px; }
  #skyFullscreen svg { width:20px; height:20px; }
}
