:root {
  /* ── Dark theme (default) ─────────────────────────────── */
  /* Backgrounds — deep navy-charcoal, not pure black */
  --bg:      #12111a;
  --bg1:     #12111a;
  --bg2:     #1a1924;
  --bg3:     #22212e;
  --bg4:     #2c2b3a;
  --bg5:     #363546;
  /* Borders */
  --border:  rgba(255,255,255,0.05);
  --border2: rgba(255,255,255,0.10);
  --border3: rgba(255,255,255,0.18);
  /* Text hierarchy */
  --text:    #f0ead8;     /* warm white — primary */
  --text2:   #a09890;     /* muted — secondary labels */
  --text3:   #5e5c68;     /* very muted — placeholders, tertiary */
  --text1:   #f0ead8;
  --text4:   #45434f;
  /* Gold accent (Vedic / premium feel) */
  --accent:  #c8a84b;
  --accent2: #e6c86e;
  --accent-fg: #1a1408;     /* dark text on gold buttons */
  --accent3: rgba(200,168,75,0.10);
  /* House cusp markers in charts */
  --cusp-col: #6ee7b7;
  /* Status */
  --red:     #c47070;
  --red2:    rgba(196,112,112,0.12);
  --green:   #72a872;
  --green2:  rgba(114,168,114,0.12);
  --blue:    #7096c4;
  --blue2:   rgba(112,150,196,0.12);
  --orange:  #c49060;
  --orange2: rgba(196,144,96,0.12);
  --flag-retro: #f87171;
  --flag-ex: #4ade80;
  --flag-de: #f97316;
  --flag-uccha: #a3e635;
  --flag-mtr: #60a5fa;
  --flag-neecha: #fb923c;
  --flag-sandhi: #22d3ee;
  --flag-combust: #f59e0b;
  --flag-dagdha: #ea580c;
  --flag-varg: #c084fc;
  --flag-bdk: #38bdf8;
  --flag-mbdk: #e879f9;
  --flag-mks: #fb7185;
  --flag-mb: #a78bfa;
  --flag-parivartana: #f87171;
  --flag-nak-ex: #2dd4bf;
  --flag-bcp-swami: #818cf8;
  --flag-bcp-active: #ef4444;
  --flag-bcp-cs-active: #22c55e;
  --tab-indicator: #ef4444;
  --tr:  0.16s ease;
  --tr2: 0.28s ease;
  --r:   4px;
  --r2:  7px;
  /* Fonts */
  --font-head: 'Cinzel', 'Georgia', serif;          /* logo, short uppercase labels only */
  --font-display: 'Cormorant Garamond', 'Georgia', serif; /* story titles, chart name, modals */
  --font-body: 'Inter', -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Consolas', monospace;
  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
  --shadow:    0 4px 14px rgba(0,0,0,0.5);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.6);
  /* Capacitor / notched devices — 0 on desktop browsers */
  --sat: env(safe-area-inset-top, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --sal: env(safe-area-inset-left, 0px);
  --sar: env(safe-area-inset-right, 0px);
  --topbar-h: 48px;
  --site-footer-h: 40px;
  /* Dynamic viewport: CSS dvh when supported; JS may override with visualViewport */
  --vvh: 100vh;
}
@supports (height: 100dvh) {
  :root { --vvh: 100dvh; }
}

[data-theme="light"] {
  /* ── Light theme — warm parchment ────────────────────── */
  --bg:      #f5f1e8;
  --bg1:     #f5f1e8;
  --bg2:     #eee9dc;
  --bg3:     #e6e0d2;
  --bg4:     #d8d1c2;
  --bg5:     #c8c0ae;
  --border:  rgba(0,0,0,0.09);
  --border2: rgba(0,0,0,0.16);
  --border3: rgba(0,0,0,0.26);
  --text:    #18160f;      /* near-black for max contrast */
  --text2:   #3a3630;      /* FIXED: was #4a4640 — now clearly readable secondary */
  --text3:   #5c564e;      /* FIXED: was #7a7468 — lifted for readable labels */
  --text1:   #18160f;
  --text4:   #7a7468;      /* FIXED: was #9b9488 — still subtle but visible */
  --accent:  #7a4e04;      /* stronger gold for better contrast on light bg */
  --accent2: #5e3a02;
  --accent3: rgba(122,78,4,0.10);
  --cusp-col:#1a6a4a;      /* teal darkened for light bg legibility */
  --red:     #8a2020;
  --red2:    rgba(138,32,32,0.10);
  --green:   #1e5a1e;
  --green2:  rgba(30,90,30,0.10);
  --blue:    #14408a;
  --blue2:   rgba(20,64,138,0.10);
  --orange:  #7a3c10;
  --orange2: rgba(122,60,16,0.10);
  --flag-retro: #8a2020;
  --flag-ex: #1e5a1e;
  --flag-de: #7a3c10;
  --flag-uccha: #3f6212;
  --flag-mtr: #14408a;
  --flag-neecha: #9a3412;
  --flag-sandhi: #0e7490;
  --flag-combust: #7a4e04;
  --flag-dagdha: #c2410c;
  --flag-varg: #4c1d95;
  --flag-bdk: #0e7490;
  --flag-mbdk: #86198f;
  --flag-mks: #9f1239;
  --flag-mb: #5b21b6;
  --flag-parivartana: #8a2020;
  --flag-nak-ex: #0f766e;
  --flag-bcp-swami: #4338ca;
  --flag-bcp-active: #dc2626;
  --flag-bcp-cs-active: #16a34a;
  --tab-indicator: #dc2626;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.10);
  --shadow:    0 4px 14px rgba(0,0,0,0.14);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.18);
  /* Light-specific: tooltip/popup override */
  --popup-bg:    #ffffff;
  --popup-text:  #18160f;
  --popup-border:#c8c0ae;
}

[data-theme="paper"] {
  /* ── Kindle Paper theme — warm cream reading surface ─── */
  --bg:      #f2ead8;
  --bg1:     #f2ead8;
  --bg2:     #e8dfc8;
  --bg3:     #ddd4bc;
  --bg4:     #cfc4aa;
  --bg5:     #bfb398;
  --border:  rgba(90,70,40,0.12);
  --border2: rgba(90,70,40,0.20);
  --border3: rgba(90,70,40,0.32);
  --text:    #2c1f0e;      /* deep warm brown — primary text */
  --text2:   #4a3820;      /* medium brown — secondary labels */
  --text3:   #6e5a3e;      /* warm muted — placeholders, tertiary */
  --text1:   #2c1f0e;
  --text4:   #8a7458;      /* subtle warm grey-brown */
  --accent:  #7a4e04;      /* amber-brown accent */
  --accent2: #5e3a02;
  --accent3: rgba(122,78,4,0.12);
  --cusp-col:#1a5e3a;      /* muted teal for chart cusps */
  --red:     #8a1c1c;
  --red2:    rgba(138,28,28,0.10);
  --green:   #1c521c;
  --green2:  rgba(28,82,28,0.10);
  --blue:    #1a3c7a;
  --blue2:   rgba(26,60,122,0.10);
  --orange:  #783010;
  --orange2: rgba(120,48,16,0.10);
  --flag-retro: #8a1c1c;
  --flag-ex: #1c521c;
  --flag-de: #783010;
  --flag-uccha: #3f6212;
  --flag-mtr: #14408a;
  --flag-neecha: #9a3412;
  --flag-sandhi: #0e7490;
  --flag-combust: #7a4e04;
  --flag-dagdha: #c2410c;
  --flag-varg: #4c1d95;
  --flag-bdk: #0e7490;
  --flag-mbdk: #86198f;
  --flag-mks: #9f1239;
  --flag-mb: #5b21b6;
  --flag-parivartana: #8a1c1c;
  --flag-nak-ex: #0f766e;
  --flag-bcp-swami: #4338ca;
  --flag-bcp-active: #dc2626;
  --flag-bcp-cs-active: #16a34a;
  --tab-indicator: #dc2626;
  --shadow-sm: 0 1px 4px rgba(60,40,10,0.12);
  --shadow:    0 4px 16px rgba(60,40,10,0.16);
  --shadow-lg: 0 8px 32px rgba(60,40,10,0.22);
  --popup-bg:    #f5ecd8;
  --popup-text:  #2c1f0e;
  --popup-border:#bfb398;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
/* Public/marketing pages scroll normally */
html:has(body.pricing-page-body),
html:has(body.pricing-page-body) body{
  height:auto;
  min-height:100%;
  overflow-x:hidden;
  overflow-y:auto;
}
body.pricing-page-body{
  min-height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
}
body{
  font-family:var(--font-body);background:var(--bg);color:var(--text);
  display:flex;flex-direction:column;font-size:14px;line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
button{cursor:pointer;font-family:var(--font-body)}
input,select,textarea{font-family:var(--font-body);color:var(--text)}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bg5);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--border3)}

/* ── Table scroll affordance (mobile / coarse pointer) — Slice 2.2 ──
   Tabs bars keep hidden scrollbars on purpose. Wide tables get a visible
   thumb + soft right-edge inset so drag-to-scroll is discoverable. */
.table-scroll{-webkit-overflow-scrolling:touch}
@media (max-width:1024px),(pointer:coarse){
  .table-scroll,
  .an-body,
  .kp-table-shell,
  .bnn-aspects-scroll,
  .bnn-act-scroll,
  .jk-arc-wrap,
  .srch-eph-table-wrap,
  .bcp-chakra-scroll,
  #sbc-container,
  .jhd-table-wrap,
  .ref-table-scroll,
  .data-table-wrap,
  .planet-table-wrap,
  .dasha-browser,
  #bcp-life-events-body{
    scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb, var(--text) 45%, transparent) transparent;
    -webkit-overflow-scrolling:touch;
  }
  .table-scroll::-webkit-scrollbar,
  .an-body::-webkit-scrollbar,
  .kp-table-shell::-webkit-scrollbar,
  .bnn-aspects-scroll::-webkit-scrollbar,
  .bnn-act-scroll::-webkit-scrollbar,
  .jk-arc-wrap::-webkit-scrollbar,
  .srch-eph-table-wrap::-webkit-scrollbar,
  .bcp-chakra-scroll::-webkit-scrollbar,
  #sbc-container::-webkit-scrollbar,
  .jhd-table-wrap::-webkit-scrollbar,
  .ref-table-scroll::-webkit-scrollbar,
  .data-table-wrap::-webkit-scrollbar,
  .planet-table-wrap::-webkit-scrollbar,
  .dasha-browser::-webkit-scrollbar,
  #bcp-life-events-body::-webkit-scrollbar{
    width:8px;height:8px;display:block;
  }
  .table-scroll::-webkit-scrollbar-thumb,
  .an-body::-webkit-scrollbar-thumb,
  .kp-table-shell::-webkit-scrollbar-thumb,
  .bnn-aspects-scroll::-webkit-scrollbar-thumb,
  .bnn-act-scroll::-webkit-scrollbar-thumb,
  .jk-arc-wrap::-webkit-scrollbar-thumb,
  .srch-eph-table-wrap::-webkit-scrollbar-thumb,
  .bcp-chakra-scroll::-webkit-scrollbar-thumb,
  #sbc-container::-webkit-scrollbar-thumb,
  .jhd-table-wrap::-webkit-scrollbar-thumb,
  .ref-table-scroll::-webkit-scrollbar-thumb,
  .data-table-wrap::-webkit-scrollbar-thumb,
  .planet-table-wrap::-webkit-scrollbar-thumb,
  .dasha-browser::-webkit-scrollbar-thumb,
  #bcp-life-events-body::-webkit-scrollbar-thumb{
    background:color-mix(in srgb, var(--text) 42%, transparent);
    border-radius:4px;
  }
  .table-scroll::-webkit-scrollbar-track,
  .an-body::-webkit-scrollbar-track,
  .kp-table-shell::-webkit-scrollbar-track,
  .bnn-aspects-scroll::-webkit-scrollbar-track,
  .bnn-act-scroll::-webkit-scrollbar-track,
  .jk-arc-wrap::-webkit-scrollbar-track,
  .srch-eph-table-wrap::-webkit-scrollbar-track,
  .bcp-chakra-scroll::-webkit-scrollbar-track,
  #sbc-container::-webkit-scrollbar-track,
  .jhd-table-wrap::-webkit-scrollbar-track,
  .ref-table-scroll::-webkit-scrollbar-track,
  .data-table-wrap::-webkit-scrollbar-track,
  .planet-table-wrap::-webkit-scrollbar-track,
  .dasha-browser::-webkit-scrollbar-track,
  #bcp-life-events-body::-webkit-scrollbar-track{
    background:color-mix(in srgb, var(--bg5) 55%, transparent);
  }
  /* Soft right-edge hint on the widest / most-clipped surfaces */
  .table-scroll,
  .an-body,
  .bnn-prog-rounds,
  .bnn-le-list,
  .kp-table-shell,
  .bnn-aspects-scroll,
  .jk-arc-wrap,
  .srch-eph-table-wrap,
  .bcp-chakra-scroll,
  #sbc-container{
    box-shadow:inset -14px 0 10px -10px color-mix(in srgb, var(--text) 22%, transparent);
  }
}

/* ── Topbar ─────────────────────────── */
.topbar{
  height:calc(var(--topbar-h) + var(--sat));
  padding:var(--sat) max(16px, var(--sar)) 0 max(16px, var(--sal));
  box-sizing:border-box;
  background:var(--bg2);border-bottom:1px solid var(--border2);
  display:flex;align-items:center;gap:12px;flex-shrink:0;z-index:50;
  box-shadow:var(--shadow-sm);
}
.logo{
  font-family:var(--font-head);font-size:16px;letter-spacing:0.1em;
  color:var(--accent);display:flex;align-items:center;gap:8px;
}
.logo-sym{font-size:20px;line-height:1;flex-shrink:0}
.topbar-sep{width:1px;height:20px;background:var(--border2);margin:0 4px}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.user-info{font-size:11px;color:var(--text3);font-family:var(--font-mono);letter-spacing:0.02em}
.tier-pill{
  font-size:10px;letter-spacing:0.02em;text-transform:none;
  color:var(--accent);border:1px solid rgba(200,168,75,0.4);
  padding:3px 9px;border-radius:20px;font-family:inherit;font-weight:600;
  background:var(--accent3);white-space:nowrap;
}

/* Entitlement soft-lock — locked teasers (tiers.md)
   T1 paid wraps: hide real cards, show title rows + 🔒 (no blur/frost overlays). */
.entitlement-locked{
  position:relative !important;
}
.entitlement-locked:not(.entitlement-self-blur):not(.entitlement-teaser-mode) > *:not(.entitlement-lock-scrim):not(.entitlement-lock-overlay):not(.entitlement-teaser-list):not(.entitlement-guest-pill){
  pointer-events:none;
  user-select:none;
}
.entitlement-lock-scrim{display:none !important} /* retired frost plate */
/* Compact controls: dim only */
.entitlement-locked.entitlement-self-blur{
  opacity:.55;
  min-height:0 !important;
  overflow:visible;
}
.entitlement-locked.entitlement-self-blur > *{
  pointer-events:none;
}
.entitlement-ctrl-disabled,
button.entitlement-locked.entitlement-self-blur:disabled,
.entitlement-locked.entitlement-self-blur.entitlement-ctrl-disabled{
  opacity:.45;
  cursor:not-allowed !important;
  filter:grayscale(0.15);
}
.entitlement-lock-overlay{display:none !important}

/* Locked teaser rows */
.entitlement-teaser-mode > *:not(.entitlement-teaser-list){
  display:none !important;
}
/* T1: whole tab panels — centered upgrade pill (only when tab/subpanel is active) */
.tab-content.entitlement-guest-empty:not(.active),
.para-subpanel.entitlement-guest-empty:not(.active){
  display:none !important;
}
.tab-content.entitlement-guest-empty.active,
.para-subpanel.entitlement-guest-empty.active{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:min(56vh, 520px);
  padding:24px 16px;
  box-sizing:border-box;
}
.entitlement-guest-empty > *:not(.entitlement-guest-pill){
  display:none !important;
}
.entitlement-guest-pill{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  width:min(380px, 92vw);
  margin:0;
  padding:28px 24px 22px;
  border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border2));
  border-radius:16px;
  background:
    linear-gradient(165deg, color-mix(in srgb, var(--accent) 7%, var(--bg2)) 0%, var(--bg2) 55%, var(--bg3) 100%);
  color:var(--text);
  text-align:center;
  line-height:1.45;
  box-shadow:
    0 1px 0 color-mix(in srgb, var(--accent) 18%, transparent) inset,
    0 12px 32px rgba(0,0,0,0.14);
  pointer-events:auto;
  user-select:auto;
}
.entitlement-guest-pill .entitlement-guest-pill-btn{pointer-events:auto;cursor:pointer}
.entitlement-guest-pill-badge{
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  margin-bottom:14px;
  border-radius:50%;
  background:var(--accent3);
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  color:var(--accent);
  box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 8%, transparent);
}
.entitlement-guest-pill-kicker{
  display:block;
  margin-bottom:6px;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.entitlement-guest-pill-title{
  display:block;
  margin-bottom:8px;
  font-family:var(--font-head);
  font-size:20px;
  font-weight:700;
  letter-spacing:0.03em;
  color:var(--text);
  line-height:1.2;
}
.entitlement-guest-pill-sub{
  display:block;
  margin-bottom:18px;
  font-size:12px;
  color:var(--text2);
  max-width:26em;
  line-height:1.55;
}
.entitlement-guest-pill-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
}
.entitlement-guest-pill-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 16px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.03em;
  cursor:pointer;
  font:inherit;
  transition:filter .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}
.entitlement-guest-pill-btn:hover,
.entitlement-guest-pill-btn:focus-visible{
  outline:none;
  transform:translateY(-1px);
}
.entitlement-guest-pill-btn-trial{
  background:var(--bg3);
  color:var(--text);
  border:1px solid var(--border2);
}
.entitlement-guest-pill-btn-trial:hover,
.entitlement-guest-pill-btn-trial:focus-visible{
  border-color:color-mix(in srgb, var(--accent) 45%, var(--border2));
  background:var(--bg4);
}
.entitlement-guest-pill-btn-plans{
  background:linear-gradient(180deg, #e8c96a 0%, #c8a84b 100%);
  color:#1a1408;
  border:1px solid #a8872f;
  box-shadow:0 2px 8px color-mix(in srgb, #c8a84b 40%, transparent);
}
.entitlement-guest-pill-btn-plans:hover,
.entitlement-guest-pill-btn-plans:focus-visible{
  filter:brightness(1.05);
}
.entitlement-lock-actions .entitlement-trial-btn{
  background:var(--bg3);
  color:var(--text);
  border:1px solid var(--border2);
}
.entitlement-lock-actions .entitlement-trial-btn:hover{
  border-color:color-mix(in srgb, var(--accent) 45%, var(--border2));
  color:var(--text);
  background:var(--bg4);
}
.entitlement-lock-actions .entitlement-upgrade-btn{
  background:linear-gradient(180deg, #e8c96a 0%, #c8a84b 100%);
  color:#1a1408;
  border:1px solid #a8872f;
}
.entitlement-lock-actions .entitlement-upgrade-btn:hover{
  color:#1a1408;
  filter:brightness(1.05);
  background:linear-gradient(180deg, #edd078 0%, #d4b456 100%);
}
.entitlement-teaser-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:10px 14px 16px;
  padding:0;
  list-style:none;
}
.fusion-lock-wrap > .entitlement-teaser-list{
  margin:8px 0 12px;
}
.entitlement-teaser-row{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  box-sizing:border-box;
  text-align:left;
  padding:12px 14px;
  border:1px solid var(--border2);
  border-radius:8px;
  background:var(--bg3);
  color:var(--text);
  cursor:pointer;
  font:inherit;
  font-size:13px;
  line-height:1.35;
}
.entitlement-teaser-row:hover,
.entitlement-teaser-row:focus-visible{
  border-color:var(--accent);
  outline:none;
}
.entitlement-teaser-ico{
  flex:0 0 auto;
  font-size:14px;
  opacity:.85;
}
.entitlement-teaser-title{
  flex:1 1 auto;
  min-width:0;
  font-weight:600;
  color:var(--text);
}
.entitlement-teaser-hint{
  flex:0 0 auto;
  font-size:11px;
  color:var(--text3);
  white-space:nowrap;
}
@media (max-width:520px){
  .entitlement-teaser-hint{display:none}
  .entitlement-teaser-row{padding:11px 12px}
}

.entitlement-upgrade-float{
  position:fixed;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  z-index:6000;
  width:min(360px, calc(100vw - 32px));
  pointer-events:none;
}
.entitlement-upgrade-float[hidden]{display:none !important}
.entitlement-float-card{
  position:relative;
  pointer-events:auto;
  max-width:none;width:100%;
  padding:16px 18px 14px;
  border-radius:12px;
  background:var(--bg2);
  border:1px solid var(--border2);
  box-shadow:0 16px 48px rgba(0,0,0,.28);
  text-align:center;
}
.entitlement-float-close{
  position:absolute;top:8px;right:10px;
  width:28px;height:28px;padding:0;margin:0;
  border:none;border-radius:6px;
  background:transparent;color:var(--text3);
  font-size:20px;line-height:1;cursor:pointer;
}
.entitlement-float-close:hover{color:var(--text);background:var(--bg3)}
.entitlement-lock-title{font-weight:700;font-size:13px;margin:0 24px 6px 0;color:var(--text);text-align:left}
.entitlement-lock-msg{font-size:12px;line-height:1.45;color:var(--text2);margin:0 0 12px;text-align:left}
.entitlement-lock-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}
.entitlement-tab-locked{opacity:.55}
.entitlement-tab-locked::after{content:' 🔒';font-size:10px}
.fusion-lock-wrap{
  position:relative;
  overflow:hidden;
  margin-bottom:12px;
  flex-shrink:0;
  background:var(--bg2);
}
.fusion-lock-wrap.entitlement-teaser-mode{
  overflow:visible;
  min-height:0;
}
.fusion-lock-wrap .fusion-slots,
.fusion-lock-wrap .chart-slot,
.fusion-lock-wrap .slot-chart-area{
  overflow:hidden;
}
.core-paid-lock,.pc-paid-lock{
  position:relative;
  min-height:0;
  overflow:visible;
}
/* Keep Planetary Positions above any fusion spill */
#planets-section{
  position:relative;
  z-index:2;
  background:var(--bg2);
  margin-top:4px;
}
.icon-btn{
  background:none;border:1px solid var(--border2);color:var(--text2);
  width:30px;height:30px;border-radius:var(--r);
  display:flex;align-items:center;justify-content:center;font-size:14px;
  transition:all var(--tr);
}
.icon-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent3)}
.pref-top-btn{
  border-color:rgba(220,38,38,.85);
  color:#fff;
  background:var(--red);
}
.pref-top-btn:hover{
  border-color:var(--red);
  color:#fff;
  background:var(--red);
  filter:brightness(1.15);
}
.top-watch{
  color:var(--accent2);
  font-family:var(--font-mono);
  font-size:12px;
  min-width:88px;
  text-align:left;
  letter-spacing:.03em;
}
.top-btn{
  background:none;border:1px solid var(--border2);color:var(--text2);
  padding:5px 13px;border-radius:var(--r);font-size:11px;letter-spacing:0.04em;
  transition:all var(--tr);font-weight:500;
}
.top-btn:hover{border-color:var(--border3);color:var(--text);background:var(--bg3)}

/* ── Layout ─────────────────────────── */
.layout{display:flex;flex:1;overflow:hidden;min-height:0;height:calc(var(--vvh) - var(--topbar-h) - var(--site-footer-h) - var(--sat) - var(--sab))}

/* ── Sidebar ─────────────────────────── */
.sidebar{
  width:292px;flex-shrink:0;background:var(--bg2);
  border-right:1px solid var(--border2);
  display:flex;flex-direction:column;overflow:hidden;
  transition:width var(--tr2);position:relative;
  min-height:0;
}
.sidebar.collapsed{width:0;border-right:none}
.sidebar-inner{width:292px;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;display:block}

.sidebar-hdr{
  padding:13px 16px 11px;border-bottom:1px solid var(--border2);
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.sidebar-title{
  font-family:var(--font-head);font-size:11px;letter-spacing:0.22em;
  color:var(--text3);text-transform:uppercase;
}

.sidebar-toggle{
  position:fixed;left:0;top:50%;transform:translateY(-50%);
  background:var(--bg2);border:1px solid var(--border2);border-left:none;
  border-radius:0 var(--r2) var(--r2) 0;color:var(--text3);padding:12px 5px;
  font-size:10px;transition:color var(--tr),background var(--tr);z-index:200;display:none;
  box-shadow:var(--shadow-sm);cursor:pointer;
}
.sidebar-toggle:hover{color:var(--accent);background:var(--bg3)}

/* ── Form ─────────────────────────────── */
.form-body{padding:14px 16px;display:flex;flex-direction:column;gap:11px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{
  font-size:10px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text3);font-weight:600;
}
.field input,.field select,.field textarea{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  padding:7px 10px;font-size:12px;color:var(--text);outline:none;
  transition:border-color var(--tr),background var(--tr);width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--accent);background:var(--bg4);
}
.field input::placeholder{color:var(--text3)}
.field textarea{resize:vertical;min-height:52px}
.field select option{background:var(--bg3);color:var(--text)}
.field-row{display:flex;gap:8px}
.field-row .field{flex:1}

.input-btn-row{display:flex;gap:6px}
.input-btn-row input{flex:1}

.city-results{
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);
  overflow:hidden;display:none;margin-top:3px;
  box-shadow:var(--shadow);
}
.city-item{
  padding:8px 12px;font-size:12px;color:var(--text2);cursor:pointer;
  border-bottom:1px solid var(--border);transition:background var(--tr);
}
.city-item:last-child{border-bottom:none}
.city-item:hover{background:var(--bg4);color:var(--text)}

.coord-row{display:flex;gap:6px}
.coord-row input{flex:1;font-size:11px}

.sep{height:1px;background:var(--border);margin:4px 0}

.horary-row{display:flex;gap:6px;align-items:flex-end}
.horary-row .field{flex:1;margin:0}

.small-btn{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);
  padding:7px 10px;border-radius:var(--r);font-size:11px;font-weight:500;
  transition:all var(--tr);white-space:nowrap;
}
.small-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent3)}

/* Category select styling */
.cat-row{display:flex;gap:6px}
.cat-row select{flex:1}

/* ── Calculate btn ───────────────────── */
.btn-calc{
  margin:0 16px 16px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none;border-radius:var(--r2);
  padding:11px;color:var(--accent-fg);font-size:11px;letter-spacing:0.18em;
  text-transform:uppercase;transition:all var(--tr);font-weight:700;
  position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(200,168,75,0.3);
}
.btn-calc:hover{
  background:linear-gradient(135deg,var(--accent2),var(--accent));
  transform:translateY(-1px);box-shadow:0 4px 14px rgba(200,168,75,0.4);
}
.btn-calc:active{transform:translateY(0)}
.btn-calc:disabled{opacity:0.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn-calc.loading::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.22),transparent);
  animation:shimmer 1s infinite;
}
@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* ── Main content ────────────────────── */
.main{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative}

/* ── Empty state ─────────────────────── */
.empty-state{
  flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;color:var(--text3);text-align:center;gap:12px;
}
.empty-sym{font-size:52px;opacity:0.15;animation:pulse 6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:0.15}50%{opacity:0.32}}
.empty-title{
  font-family:var(--font-body);font-size:18px;font-weight:600;
  color:var(--text2);letter-spacing:0.04em;
}
.empty-sub{font-size:11px;letter-spacing:0.1em;color:var(--text3);text-transform:uppercase}

/* ── Results ─────────────────────────── */
.results{flex:1;overflow:hidden;display:none;flex-direction:column}
.results.visible{display:flex}

.results-hdr{
  padding:11px 16px;border-bottom:1px solid var(--border2);
  display:flex;align-items:flex-start;gap:12px;flex-shrink:0;
  background:var(--bg2);box-shadow:var(--shadow-sm);
}
.r-hdr-toggle{display:none}
.r-hdr-full{
  display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0;width:100%;
}
.r-hdr-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:7px}
.r-name{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--text);letter-spacing:0.02em;line-height:1.2}
.r-meta-wrap{display:flex;flex-direction:column;gap:5px;min-width:0}
.r-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px 7px}
.r-chip{
  display:inline-flex;align-items:center;gap:5px;max-width:100%;
  padding:3px 9px;border-radius:5px;background:var(--bg3);
  border:1px solid var(--border);font-size:11px;line-height:1.35;color:var(--text2);
}
.r-chip-wide{white-space:normal}
.r-chip-lbl{
  font-size:9px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--text3);font-weight:600;flex-shrink:0;
}
.r-chip-val{font-family:var(--font-mono);color:var(--text);font-size:11px}
.r-chip-type{
  font-weight:700;letter-spacing:.07em;text-transform:uppercase;font-size:10px;
  padding:4px 10px;
}
.r-chip-natal{
  background:rgba(var(--accent2-rgb,99,102,241),.12);
  border-color:rgba(var(--accent2-rgb,99,102,241),.32);color:var(--text);
}
.r-chip-kp-natal{
  background:rgba(200,168,75,.10);
  border-color:rgba(200,168,75,.36);color:var(--accent);
}
.r-chip-horary{
  background:rgba(200,168,75,.14);
  border-color:rgba(200,168,75,.42);color:var(--accent);
}
.r-chip-horary-num{
  padding:4px 12px;
  background:rgba(200,168,75,.22);
  border-color:rgba(200,168,75,.55);
}
.r-chip-horary-num .r-chip-lbl{color:var(--accent);font-size:9px}
.r-chip-horary-num .r-chip-val{
  color:var(--accent);font-size:15px;font-weight:800;letter-spacing:.03em;
  font-family:var(--font-display);
}
.r-chip-ellipsis{
  max-width:168px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.r-chip-ayn-deg{font-weight:600;color:var(--text)}
.r-meta{font-size:11px;color:var(--text3);font-family:var(--font-mono);letter-spacing:0.02em}
.r-submeta{font-size:10px;color:var(--text3);font-family:var(--font-mono);letter-spacing:0.02em;margin-top:2px}
.r-actions{margin-left:auto;display:flex;gap:7px}
.btn-save{
  background:none;border:1px solid rgba(200,168,75,0.5);color:var(--accent);
  padding:5px 14px;border-radius:var(--r);font-size:10px;letter-spacing:0.12em;
  text-transform:uppercase;transition:all var(--tr);font-weight:600;
}
.btn-save:hover{
  background:var(--accent);color:var(--accent-fg);
  border-color:var(--accent);box-shadow:0 2px 8px rgba(200,168,75,0.25);
}
.btn-edit{
  background:none;border:1px solid var(--border2);color:var(--text2);
  padding:5px 12px;border-radius:var(--r);font-size:10px;
  letter-spacing:0.08em;text-transform:uppercase;transition:all var(--tr);font-weight:500;
}
.btn-edit:hover{border-color:var(--border3);color:var(--text);background:var(--bg3)}
.btn-delete{
  background:none;border:1px solid rgba(196,112,112,0.4);color:var(--red);
  padding:5px 12px;border-radius:var(--r);font-size:10px;
  letter-spacing:0.08em;text-transform:uppercase;transition:all var(--tr);font-weight:500;
}
.btn-delete:hover{background:var(--red);color:var(--accent-fg);border-color:var(--red)}

/* ── Tabs ─────────────────────────────── */
.tabs-bar{
  display:flex;border-bottom:1px solid var(--border2);
  padding:0 16px;background:var(--bg2);flex-shrink:0;
  overflow-x:auto;scrollbar-width:none;
}
.tabs-bar::-webkit-scrollbar{display:none}
.tab-btn{
  background:none;border:none;border-bottom:2px solid transparent;
  padding:10px 14px;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--text3);transition:all var(--tr);white-space:nowrap;margin-bottom:-1px;
  font-weight:600;
}
.tab-btn:hover{color:var(--text2);background:var(--accent3)}
.tab-btn.active{
  color:var(--accent);
  border-bottom:3px solid var(--tab-indicator);
  box-shadow:none;
  background:var(--accent3);
}
.tab-content{flex:1;overflow:hidden;display:none;min-height:0;background:var(--bg2)}
.tab-content.active{display:flex;flex-direction:column;overflow:hidden;min-height:0;background:var(--bg2)}

/* Parashari outer + nested subpanels */
#tab-parashari.active{display:flex;flex-direction:column;overflow:hidden;min-height:0}
#parashari-subpanels{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}
.para-subpanel{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0}
.para-subpanel.active{display:flex}
#tab-chart.para-subpanel.active,
#tab-yogas.para-subpanel.active,
#tab-strengths.para-subpanel.active,
#tab-dasha.para-subpanel.active,
#tab-transit.para-subpanel.active,
#tab-prashna.para-subpanel.active{display:flex;flex-direction:column;overflow:hidden;min-height:0}
/* Chakras: one scroll owner — tall SBC must not clip at bottom */
#tab-chakras.para-subpanel.active{
  display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;min-height:0;
  -webkit-overflow-scrolling:touch;
}
/* analysis/bnn/jamakkol tabs get their own scroll */
#tab-analysis.active,#tab-bnn.active,#tab-bcp.active,#tab-kp.active,#tab-jamakkol.active{overflow:hidden}
#tab-kp.active #kp-inner{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
#kp-subtab-scroll{
  flex:1 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0;
  -webkit-overflow-scrolling:touch;
}
/* One scroll owner for KP: pane grows; do not nest a second vertical scroller */
#kp-subtab-scroll > .kp-subpanel.active > .analysis-outer{
  overflow:visible;
  flex:none;
  height:auto;
  max-height:none;
  min-height:0;
}
.kp-subpanel{display:none}
.kp-subpanel.active{display:block}
#kp-panel-vimshottari.active{
  display:flex;flex-direction:column;height:auto;min-height:100%;
  padding:14px 12px 24px;box-sizing:border-box;
  overflow:visible;
}
#kp-panel-vimshottari .kp-vimshottari-subsec{
  margin-top:0;
  flex:0 0 auto;
  width:100%;
  /* Tall enough for chrome + 9 dasha rows (lord + dates + age) */
  height:min(85vh,820px);
  max-height:min(85vh,820px);
  min-height:520px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
#kp-panel-vimshottari .kp-vimshottari-subsec>.kp-btr-subsec-hdr{flex-shrink:0}
#kp-panel-vimshottari .dasha-outer{
  flex:1;min-height:0;height:auto;display:flex;flex-direction:column;overflow:hidden;
}
#kp-panel-vimshottari .dasha-browser{
  flex:1;min-height:0;overflow:hidden;
}
.kp-dasha-wa-footer{
  flex-shrink:0;
  margin-top:6px;
  padding:8px 10px;
  border-top:1px solid var(--border2);
  background:var(--bg2);
  font-size:11px;
  line-height:1.45;
  max-height:min(220px, 32vh);
  overflow-y:auto;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.kp-dasha-wa-footer-hdr{
  font-weight:600;
  font-size:11px;
  margin:0 0 4px;
  color:var(--text2);
}
.kp-dasha-wa-footer-note{
  margin:0 0 6px;
  font-size:10px;
  color:var(--text3);
}
.kp-dasha-wa-cols{
  display:grid;
  grid-template-columns:repeat(5, minmax(150px, 1fr));
  gap:8px 12px;
  align-items:start;
}
.kp-dasha-wa-col{
  min-width:0;
  padding:4px 6px;
  border:1px solid var(--border2);
  border-radius:6px;
  background:color-mix(in srgb, var(--bg) 55%, var(--bg2));
}
.kp-dasha-wa-col-ads{
  max-height:160px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.kp-dasha-wa-col-hdr{
  font-weight:600;
  font-size:10px;
  color:var(--text3);
  margin:0 0 4px;
  padding-bottom:3px;
  border-bottom:1px solid var(--border2);
}
.kp-dasha-wa-row{
  display:flex;
  flex-wrap:wrap;
  gap:2px 8px;
  align-items:baseline;
  padding:2px 0;
}
.kp-dasha-wa-pair{font-weight:600;color:var(--text);min-width:6.5em}
.kp-dasha-wa-deg{font-variant-numeric:tabular-nums;color:var(--text2)}
.kp-dasha-wa-asp{font-weight:600}
.kp-dasha-wa-fav{color:#15803d}
.kp-dasha-wa-unfav{color:#b91c1c}
.kp-dasha-wa-neut{color:#a16207}
.kp-dasha-wa-none{color:var(--text3);font-style:italic}
.kp-dasha-wa-same{color:var(--text3)}
[data-theme="light"] .kp-dasha-wa-fav,
[data-theme="paper"] .kp-dasha-wa-fav{color:#166534}
[data-theme="light"] .kp-dasha-wa-unfav,
[data-theme="paper"] .kp-dasha-wa-unfav{color:#991b1b}
@media (max-width:1100px){
  .kp-dasha-wa-cols{grid-template-columns:repeat(3, minmax(140px, 1fr))}
}
@media (max-width:900px){
  .kp-dasha-wa-cols{grid-template-columns:repeat(2, minmax(140px, 1fr))}
}
@media (max-width:520px){
  .kp-dasha-wa-cols{grid-template-columns:1fr}
}
#kp-dasha-planet-houses-section{
  flex:0 0 auto;
  position:relative;
  z-index:1;
  margin-top:14px;
  width:100%;
}
#kp-dasha-planet-houses-host,
#kp-vim-house-table-section{margin-top:14px}
#kp-vim-house-table-wrap{margin:0}
#kp-vim-house-table-section .kp-combo-house-ext-opt{display:inline-flex;margin-bottom:8px}
#kp-vim-house-table-section .kp-vim-house-select-row{margin-bottom:12px}
#kp-dasha-planets-rp-row .kp-dasha-rp-current{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;
}

/* Transit Event Match (Vimshottari) */
#kp-transit-event-match-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
#kp-tem-rp-row{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--border)}
#kp-tem-rp-row .kp-dasha-rp-current{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;
}
#kp-tem-meta{margin:0 0 10px}
.kp-tem-toolbar{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 16px;
  margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--border);
}
.kp-tem-toolbar-note{margin:0;flex:1 1 16rem;min-width:0;font-size:11px}
.kp-tem-controls{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;flex:0 0 auto;
}
.kp-tem-orb-label{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;color:var(--text2);white-space:nowrap;
}
.kp-tem-orb-label input{
  width:72px;padding:4px 8px;font-size:16px;font-family:var(--font-mono);
  background:var(--bg3);border:1px solid var(--border);border-radius:4px;color:var(--text);
}
.kp-tem-body{display:flex;flex-direction:column;gap:12px}
.kp-tem-block-title{
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text2);margin:0 0 6px;
}
.kp-tem-table{font-size:11px;border-collapse:separate;border-spacing:0}
.kp-tem-table th,.kp-tem-table td{
  padding:5px 8px;white-space:nowrap;text-align:center;vertical-align:middle;
  border-bottom:1px solid var(--border);border-right:1px solid var(--border2);
}
.kp-tem-table th{
  background:var(--bg3);color:var(--text2);font-weight:600;font-size:10px;
  text-transform:uppercase;letter-spacing:.04em;
}
.kp-tem-table td.kp-tem-row-lab,
.kp-tem-table th.kp-tem-row-lab{
  text-align:left;font-weight:700;font-family:inherit;background:var(--bg2);
  position:sticky;left:0;z-index:2;border-right:2px solid var(--border2);
  box-shadow:2px 0 0 color-mix(in srgb, var(--bg2) 100%, transparent);
}
.kp-tem-table td{font-family:var(--font-mono);font-size:10px;color:var(--text);background:var(--bg2)}
.kp-tem-table td.kp-tem-near{
  background:color-mix(in srgb, var(--accent2,#38bdf8) 28%, var(--bg2));
  font-weight:700;color:var(--text);
}
.kp-tem-table tbody tr:hover td{background:var(--bg4)}
.kp-tem-table tbody tr:hover td.kp-tem-row-lab{background:var(--bg4)}
.kp-tem-table tbody tr:hover td.kp-tem-near{
  background:color-mix(in srgb, var(--accent2,#38bdf8) 40%, var(--bg4));
}
.kp-tem-cusp-deg{font-family:var(--font-mono);font-size:10px;color:var(--text2)}
.kp-tem-cell-deg{line-height:1.25}
.kp-tem-cell-diff{line-height:1.25;font-weight:700;margin-top:2px}
.kp-tem-pl-th{vertical-align:middle}
.kp-tem-pl-hdr{
  display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:4px;line-height:1.2;
}
.kp-tem-pl-abbr{font-weight:700;line-height:1.2}
.kp-tem-dasha-pills{
  display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px;margin:0;
}
.kp-tem-dasha-pills .kp-dasha-ph-level{margin-right:0}
.kp-tem-match-cell{text-align:left;white-space:normal;min-width:72px;vertical-align:top}
.kp-tem-match-chips{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-start}
.kp-tem-chip{
  display:inline-block;padding:1px 5px;border-radius:4px;font-size:9px;font-weight:700;
  letter-spacing:.03em;line-height:1.35;white-space:nowrap;
  color:var(--accent2,#38bdf8);
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent2,#38bdf8) 18%);
  border:1px solid color-mix(in srgb, var(--border2) 55%, var(--accent2,#38bdf8) 45%);
}
.kp-tem-dap-host-aside{
  margin-top:12px;padding-top:10px;border-top:1px solid var(--border);
  flex:1 1 auto;min-height:0;
}
.kp-tem-dap-host-aside .kp-tem-dap-block{margin:0}
.kp-tem-dap-host-aside .kp-tem-block-title{margin-bottom:6px}
.kp-tem-dap-host-aside .kp-tem-dap-table th,
.kp-tem-dap-host-aside .kp-tem-dap-table td{font-size:10px;padding:4px 6px}
.kp-tem-dap-host-aside .kp-tem-dap-row-lab{min-width:5.5rem;font-size:10px}
#kp-dasha-transit-js-subsec .kp-tem-tr-sj-asp-below{
  margin-top:14px;padding-top:12px;border-top:1px solid var(--border);
}
.kp-tem-tr-sj-asp-below .kp-tem-tr-sj-asp-body{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
}
@media(max-width:900px){
  .kp-tem-tr-sj-asp-below .kp-tem-tr-sj-asp-body{grid-template-columns:1fr}
}
.kp-tem-dap-sun-labels{
  display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;
}
.kp-tem-dap-sun-chip{
  display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;
  color:var(--accent,#f59e0b);
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent,#f59e0b) 18%);
  border:1px solid color-mix(in srgb, var(--border2) 50%, var(--accent,#f59e0b) 50%);
}
.kp-tem-dap-table th,.kp-tem-dap-table td{text-align:center;vertical-align:middle}
.kp-tem-dap-table th.kp-tem-dap-row-lab,
.kp-tem-dap-table td.kp-tem-dap-row-lab{
  text-align:left;font-weight:700;min-width:7.5rem;white-space:nowrap;
}
.kp-tem-dap-table td.kp-tem-dap-lord-td{text-align:left}
.kp-tem-dap-group td{
  text-align:left;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text3);background:var(--bg3,var(--bg));padding:6px 8px;
}
.kp-tem-dap-lord{display:flex;flex-direction:column;gap:1px;align-items:flex-start;line-height:1.2}
.kp-tem-dap-lord-abbr{font-weight:700;font-size:11px;color:var(--text)}
.kp-tem-dap-lord-sub{font-size:10px;color:var(--text3);font-family:var(--font-mono)}
.kp-tem-dap-pill{
  display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:700;
  font-family:var(--font-mono);color:var(--text2);
  background:var(--bg3,var(--bg));border:1px solid var(--border);
}
.kp-tem-dap-pill.kp-tem-dap-hit{
  color:var(--blue,#3b82f6);
  background:color-mix(in srgb, var(--blue,#3b82f6) 16%, var(--bg2));
  border-color:color-mix(in srgb, var(--border2) 45%, var(--blue,#3b82f6) 55%);
}
.kp-tem-dap-cell{
  display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px;line-height:1.2;
}
.kp-tem-dap-cell .kp-tem-dasha-pills{margin:0}
.kp-tem-tr-sj-asp .kp-tem-chip{font-size:11px;letter-spacing:.02em;padding:2px 6px;white-space:nowrap}
.kp-tem-kpt-moment{
  margin-top:14px;padding-top:12px;border-top:1px solid var(--border);
}
.kp-tem-kpt-moment-hdr{
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text2);margin:0 0 10px;
}
.kp-tem-moment-layout{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,0.85fr);
  gap:14px 16px;align-items:stretch;
}
.kp-tem-moment-controls-col,.kp-tem-moment-chart-col{min-width:0}
.kp-tem-moment-chart-col{
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:var(--r2,7px);
  padding:10px 12px 12px;
  box-sizing:border-box;
}
.kp-tem-moment-controls-col{
  display:flex;flex-direction:column;
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:var(--r2,7px);
  padding:10px 12px 12px;
  box-sizing:border-box;
}
#kp-tem-kpt-moment-section .kpt-moment-grid{margin:0}
#kp-tem-kpt-city-results{z-index:5}
.kp-tem-fusion-slot{margin:0;max-width:100%;border:none;background:transparent}
#kp-tem-fusion-area{min-height:220px;background:var(--bg3,var(--bg2));border-radius:var(--r,4px)}
#kp-tem-fusion-controls{flex-wrap:wrap;gap:4px 6px;align-items:center}
@media(max-width:900px){
  .kp-tem-moment-layout{grid-template-columns:1fr}
}
.kp-tem-tr-sj-asp{
  margin-top:12px;padding-top:10px;border-top:1px solid var(--border);
  flex:1 1 auto;min-height:0;display:flex;flex-direction:column;
}
.kp-tem-tr-sj-asp-note{display:none}
.kp-tem-tr-sj-asp-body{
  display:flex;flex-direction:column;gap:8px;
  flex:1 1 auto;
}
.kp-tem-tr-sj-asp-row{
  display:grid;grid-template-columns:4.2rem minmax(0,1fr) minmax(0,1fr);
  gap:6px 10px;align-items:start;
  padding:8px 10px;border-radius:var(--r,4px);
  background:var(--bg3,var(--bg));border:1px solid var(--border);box-sizing:border-box;
  min-width:0;
}
.kp-tem-tr-sj-asp-row-common{
  background:color-mix(in srgb, var(--bg3,var(--bg)) 78%, var(--accent,#f59e0b) 14%);
  border-color:color-mix(in srgb, var(--border) 55%, var(--accent,#f59e0b) 45%);
}
.kp-tem-tr-sj-asp-lab{
  font-size:12px;font-weight:700;color:var(--text2);line-height:1.3;padding-top:2px;
}
.kp-tem-tr-sj-asp-group{min-width:0;display:flex;flex-direction:column;gap:3px}
.kp-tem-tr-sj-asp-sub{
  font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);
}
.kp-tem-asp-empty{font-size:12px;color:var(--text3)}
.kp-tem-chip-common{
  color:var(--accent,#f59e0b);
  background:color-mix(in srgb, var(--bg2) 65%, var(--accent,#f59e0b) 22%);
  border-color:color-mix(in srgb, var(--border2) 45%, var(--accent,#f59e0b) 55%);
}
@media(max-width:640px){
  .kp-tem-tr-sj-asp-row{grid-template-columns:1fr}
}
#kp-dasha-planet-houses-meta{margin:0 0 12px}
#kp-dasha-planet-houses-section .kp-btr-subsec{margin-top:14px}
#kp-dasha-planet-houses-section .kp-btr-subsec:first-child{margin-top:0}

/* Fruitful Significators (Vimshottari) */
#kp-fruitful-sig-section{margin-top:14px}
#kp-core-fruitful-sig-section .kp-fruitful-toolbar{margin-top:8px}
#kp-core-fruitful-sig-section .kp-fruitful-rp-row{margin-top:4px}
.kp-fruitful-rp-row{
  margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--border);
}
.kp-fruitful-rp-row .kp-dasha-rp-current{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;
}
.kp-fruitful-toolbar{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 16px;
  margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--border);
}
.kp-fruitful-toolbar-note{margin:0;flex:1 1 16rem;min-width:0;font-size:11px}
.kp-fruitful-fold-radios{display:flex;flex-wrap:wrap;gap:8px 14px;flex:0 0 auto;align-items:center}
.kp-fruitful-fold-label{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;user-select:none;
}
.kp-fruitful-fold-label input{margin:0;accent-color:var(--accent)}
.kp-fruitful-sig-body{display:flex;flex-direction:column;gap:12px}
.kp-fruitful-method-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
}
.kp-fruitful-method-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:10px 12px;min-width:0;display:flex;flex-direction:column;gap:8px;
}
.kp-fruitful-method-num{
  font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--accent2,#38bdf8);
}
.kp-fruitful-method-title{font-size:13px;font-weight:700;color:var(--text);line-height:1.25;margin:0}
.kp-fruitful-method-blurb{font-size:11px;color:var(--text3);line-height:1.35;margin:0}
.kp-fruitful-method-result{
  display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:1.6em;
  margin-top:auto;padding-top:6px;border-top:1px solid var(--border);
}
.kp-fruitful-chip{
  display:inline-block;font-size:11px;font-weight:700;font-family:var(--font-mono);
  padding:2px 7px;border-radius:3px;
}
.kp-house-fold-planet-link .kp-fruitful-chip{cursor:pointer}
.kp-fruitful-chip-keep{
  background:color-mix(in srgb,var(--blue,#3b82f6) 16%,var(--bg2));
  color:var(--blue,#2563eb);
  border:1px solid color-mix(in srgb,var(--blue,#3b82f6) 40%,var(--border));
}
.kp-fruitful-chip-elim{
  background:color-mix(in srgb,var(--red,#ef4444) 14%,var(--bg2));
  color:var(--red,#dc2626);
  border:1px solid color-mix(in srgb,var(--red,#ef4444) 38%,var(--border));
}
.kp-fruitful-empty{font-size:11px;color:var(--text3)}
.kp-fruitful-notes{display:flex;flex-direction:column;gap:10px}
.kp-fruitful-note-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  padding:10px 12px;
}
.kp-fruitful-note-title{font-size:12px;font-weight:700;color:var(--text2);margin:0 0 6px}
.kp-fruitful-note-body{font-size:11px;color:var(--text3);line-height:1.45;margin:0}
.kp-fruitful-note-match{
  margin-top:8px;font-size:11px;font-weight:600;color:var(--text);
  display:flex;flex-wrap:wrap;gap:5px;align-items:center;
}
.kp-fruitful-note-match-lbl{color:var(--text2);font-weight:700;margin-right:2px}
@media (max-width:768px){
  .kp-fruitful-method-grid{grid-template-columns:1fr}
  .kp-fruitful-fold-radios{width:100%}
}
#kp-dasha-transit-js-meta.kp-dasha-transit-js-meta{margin:0 0 10px}
.kp-dasha-lord-relations{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.kp-dasha-lord-rel-hdr{font-size:12px;font-weight:700;color:var(--text2);margin:0 0 4px}
.kp-dasha-lord-rel-cols{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;align-items:start;
}
.kp-dasha-lord-rel-col{
  min-width:0;padding:8px 10px;border-radius:var(--r2,7px);
  background:var(--bg2);border:1px solid var(--border);box-sizing:border-box;
}
.kp-dasha-lord-rel-col-hdr{
  font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text3);margin:0 0 8px;
}
.kp-dasha-lord-rel-list{display:flex;flex-direction:column;gap:8px}
.kp-dasha-lord-rel-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px 10px}
.kp-dasha-lord-rel-pair{font-size:12px;font-weight:600;color:var(--text);font-family:var(--font-mono);flex:0 0 auto;min-width:7.5rem}
.kp-dasha-lord-rel-chips{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 12rem;min-width:0}
.kp-dasha-lord-rel-chip{display:inline-block;font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;background:color-mix(in srgb,var(--accent2,#38bdf8) 16%,var(--bg2));color:var(--text);border:1px solid color-mix(in srgb,var(--accent2,#38bdf8) 35%,var(--border))}
.kp-dasha-lord-rel-none{font-size:11px;color:var(--text3)}
@media (max-width:900px){
  .kp-dasha-lord-rel-cols{grid-template-columns:1fr}
}
@media (max-width:768px){
  .kp-dasha-lord-rel-pair{min-width:100%}
}
#tab-prashna.para-subpanel.active #prashna-inner{flex:1;min-height:0;overflow:hidden}
#tab-prashna.para-subpanel.active #prashna-content{overflow:auto}

/* ── Chart tab ───────────────────────── */
.chart-tab-inner{flex:1;display:flex;overflow:hidden}
.chart-area{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;
  padding:16px;overflow:auto;gap:12px;
}
.chart-controls{display:flex;gap:7px}
.btn-chart-style{
  background:var(--bg3);border:1px solid var(--border2);
  color:var(--text3);padding:5px 13px;border-radius:var(--r);
  font-size:10px;letter-spacing:0.1em;text-transform:uppercase;
  transition:all var(--tr);font-weight:700;
}
.btn-chart-style.active{background:var(--accent3);border-color:var(--accent);color:var(--accent)}
.btn-chart-style:hover{border-color:var(--border3);color:var(--text2)}

/* ── Chart SVG ───────────────────────────────────────── */
.chart-svg{display:block;width:100%;height:auto}
.chart-scroll-outer .chart-slots .chart-svg{max-width:400px;margin:0 auto}
.chart-scroll-outer .fusion-slots .chart-svg{max-width:500px;margin:0 auto}
#transit-chart-slots .chart-svg{max-width:400px;margin:0 auto}


.planets-section{width:100%}
.section-title{
  font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--text3);margin-bottom:8px;
  padding-bottom:6px;border-bottom:1px solid var(--border);
}
.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.data-table th{
  text-align:left;padding:8px 10px;
  font-size:10px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--text3);border-bottom:1px solid var(--border2);font-weight:700;
  background:var(--bg3);white-space:nowrap;
}
.data-table td{
  padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text2);
  transition:background var(--tr);
}
.data-table tr:hover td{background:var(--bg4);color:var(--text)}
.data-table .accent{color:var(--accent);font-weight:600}
.data-table .retro-mark{color:var(--text3);font-size:10px;font-family:var(--font-mono)}

/* Slice 2.4 / 2.4b — freeze identity column; separate borders avoid sticky paint leak */
.data-table,
.adl-table,
.an-table,
.bnn-aspects-table,
.kp-details-table,
.kp-proximity-table,
.kp-combo-planet-table,
.kp-combo-house-grid{
  border-collapse:separate;border-spacing:0;
}
.data-table th:first-child,
.data-table td:first-child,
.adl-table th:first-child,
.adl-table td:first-child,
.an-table th:first-child,
.an-table td:first-child,
.bnn-aspects-table th:first-child,
.bnn-aspects-table td:first-child,
.kp-details-table th:first-child,
.kp-details-table td:first-child,
.kp-proximity-table th:first-child,
.kp-proximity-table td:first-child,
.kp-combo-planet-table th:first-child,
.kp-combo-planet-table td:first-child,
.kp-combo-house-grid th:first-child,
.kp-combo-house-grid td:first-child{
  position:sticky;left:0;z-index:3;
  /* full opaque fill — translucent row/group tints must not show through */
  background:var(--bg2);
  background-clip:padding-box;
  box-shadow:2px 0 5px -2px color-mix(in srgb, var(--text) 20%, transparent);
}
.data-table thead th:first-child,
.adl-table thead th:first-child,
.an-table thead th:first-child,
.bnn-aspects-table thead th:first-child,
.kp-details-table thead th:first-child,
.kp-proximity-table thead th:first-child,
.kp-combo-planet-table thead th:first-child,
.kp-combo-house-grid thead th:first-child{
  z-index:5;background:var(--bg3);
}
.data-table tr:hover td:first-child,
.adl-table tbody tr:hover td:first-child,
.an-table tr:hover td:first-child,
.bnn-aspects-table tr:hover td:first-child,
.kp-details-table tr:hover td:first-child,
.kp-proximity-table tr:hover td:first-child,
.kp-combo-planet-table tr:hover td:first-child,
.kp-combo-house-grid tr:hover td:first-child{
  background:var(--bg4);
}
[data-theme="light"] .data-table thead th:first-child,
[data-theme="paper"] .data-table thead th:first-child,
[data-theme="light"] .an-table thead th:first-child,
[data-theme="paper"] .an-table thead th:first-child{
  background:var(--bg4);
}
/* Hover rule paints all tds — keep sticky col opaque above scrolled cells */
.an-table tr:hover td:first-child{z-index:4}

/* BM summary pills — wrap instead of one forced wide row */
.bm-sum-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));
  gap:5px;margin-top:14px;width:100%;
}
.bm-sum-grid-bhava{
  grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;
}

/* Planet & Bhava Activation — consistent row alignment */
#an-bhava-house-table td,
#an-bhava-planet-table td{vertical-align:top}
#an-bhava-house-table td:first-child,
#an-bhava-planet-table td:first-child{
  padding-top:8px;min-width:52px;font-weight:600;white-space:nowrap;
}
#an-bhava-house-table td:nth-child(2),
#an-bhava-house-table td:nth-child(3){padding-top:8px;min-width:64px}

/* ── Planet sidebar ─────────────────── */
.planet-sidebar{
  width:200px;border-left:1px solid var(--border2);
  overflow-y:auto;padding:12px;flex-shrink:0;
}
.ps-title{
  font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--text3);margin-bottom:8px;
  padding-bottom:6px;border-bottom:1px solid var(--border);
}
.ps-row{
  display:flex;align-items:baseline;gap:6px;
  padding:4px 0;border-bottom:1px solid var(--border);font-size:11px;
}
.ps-row:last-child{border-bottom:none}
.ps-name{color:var(--text2);width:62px;flex-shrink:0;font-size:11px}
.ps-pos{color:var(--text);flex:1;font-family:var(--font-mono);font-size:10px}
.ps-retro{font-size:9px;color:var(--text3)}

/* ── Panchanga tab ───────────────────── */
.panchanga-inner{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.panch-grid{display:block;width:100%}

/* ── Panchanga sub-tabs ─────────────────────────────────────── */
.pc-subtabs{display:flex;border-bottom:1px solid var(--border2);padding:0 16px;background:var(--bg3);flex-shrink:0}
.pc-stab{background:none;border:none;border-bottom:2px solid transparent;padding:9px 15px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);transition:all var(--tr);white-space:nowrap;margin-bottom:-1px;font-weight:600;cursor:pointer}
.pc-stab:hover{color:var(--text2)}
.pc-stab.active{color:var(--accent);border-bottom-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);background:var(--accent3)}
.pc-subpanel{display:none;flex:1;min-height:0;overflow-y:auto;padding:16px 18px 32px}
.pc-subpanel.active{display:block}

/* ── Month calendar toolbar ─────────────────────────────────── */
.pc-month-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.pc-month-toolbar select{background:var(--bg3);color:var(--text);border:1px solid var(--border2);border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer}
.pc-month-toolbar select:focus{outline:none;border-color:var(--accent)}

/* ── Month calendar grid ─────────────────────────────────────── */
.pc-cal{width:100%;border-collapse:collapse;border-radius:10px;overflow:hidden;border:1px solid var(--border)}
.pc-cal thead tr{background:linear-gradient(90deg,var(--bg3),var(--bg2))}
.pc-cal thead th{padding:8px 4px;font-size:11px;font-weight:700;color:var(--accent2);text-align:center;text-transform:uppercase;letter-spacing:.06em}
.pc-cal td{border:1px solid var(--border);vertical-align:top;padding:0;width:14.28%;min-height:72px;cursor:pointer;transition:background var(--tr)}
.pc-cal td:hover .pc-cal-day-inner{background:rgba(255,255,255,.06)}
.pc-cal td.pc-cal-empty{background:var(--bg1);cursor:default}
.pc-cal td.pc-cal-selected .pc-cal-day-inner{background:rgba(110,231,183,.12)!important;box-shadow:inset 0 0 0 2px var(--accent1,#6ee7b7)}
.pc-cal td.pc-cal-today .pc-cal-day-num{background:var(--accent,#7c3aed);color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center}
.pc-cal-day-inner{padding:6px 7px;min-height:72px;display:flex;flex-direction:column;gap:3px}
.pc-cal-day-num{font-size:13px;font-weight:700;color:var(--text);line-height:1;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}
.pc-cal-tithi{font-size:9.5px;color:var(--accent2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-cal-nak{font-size:9px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-cal-vara{font-size:9px;padding:1px 5px;border-radius:8px;font-weight:700;align-self:flex-start;margin-top:auto}
.pc-cal-loading{opacity:.45;pointer-events:none}
.pc-cal-spinner{text-align:center;padding:8px 0;color:var(--text3);font-size:11px}

/* ── Day detail panel ───────────────────────────────────────── */
.pc-day-detail{margin-top:18px;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.pc-day-detail-hdr{padding:12px 16px;background:linear-gradient(90deg,var(--bg3),var(--bg2));border-bottom:1px solid var(--border);font-weight:700;font-size:14px;color:var(--text)}
.pc-day-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:14px 16px}
.pc-day-card{padding:12px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:8px}
.pc-day-card.pc-card-good{background:rgba(110,231,183,.08);border-color:rgba(110,231,183,.35)}
.pc-day-card.pc-card-good .pc-day-card-label{color:var(--green)}
.pc-day-card.pc-card-bad{background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.35)}
.pc-day-card.pc-card-bad .pc-day-card-label{color:var(--red)}
.pc-day-card-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:5px}
.pc-day-card-value{font-size:13px;color:var(--text);line-height:1.5;font-weight:500}
.pc-day-card-sub{font-size:11px;color:var(--text3);margin-top:3px}
.pc-day-loading{padding:24px;text-align:center;color:var(--text3);font-size:12px}

/* Loading dots in calendar cells */
.pc-cal-loading-dots{display:flex;gap:3px;align-items:center;padding:4px 2px}
.pc-cal-loading-dots span{width:4px;height:4px;border-radius:50%;background:var(--text3);opacity:.4;animation:pcDotPulse 1.2s infinite}
.pc-cal-loading-dots span:nth-child(2){animation-delay:.2s}
.pc-cal-loading-dots span:nth-child(3){animation-delay:.4s}
@keyframes pcDotPulse{0%,80%,100%{opacity:.2;transform:scale(.8)}40%{opacity:.8;transform:scale(1)}}

/* Detail grid section headers span full width */
.pc-day-section-hdr{grid-column:1/-1;display:flex;align-items:center;gap:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent2);margin-top:6px}
.pc-day-section-hdr:first-child{margin-top:0}
.pc-day-section-hdr::after{content:'';flex:1;height:1px;background:var(--border)}

/* Vara dot colors */
.pc-vara-sun{background:rgba(180,58,20,.25);color:var(--orange)}
.pc-vara-mon{background:rgba(148,163,184,.15);color:var(--text2)}
.pc-vara-tue{background:rgba(185,28,28,.2);color:var(--red)}
.pc-vara-wed{background:rgba(83,127,11,.2);color:var(--green)}
.pc-vara-thu{background:rgba(242,213,30,.15);color:var(--accent)}
.pc-vara-fri{background:rgba(168,85,247,.15);color:var(--blue)}
.pc-vara-sat{background:rgba(75,85,99,.3);color:var(--text3)}
.panch-card{
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:var(--r2);padding:13px 15px;
  transition:border-color var(--tr),background var(--tr);
}
.panch-card:hover{background:var(--bg4);border-color:var(--border3)}
.panch-label{
  font-size:9px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--text3);margin-bottom:6px;font-weight:600;
}
.panch-value{
  font-family:var(--font-display);font-size:17px;font-weight:500;
  color:var(--text);letter-spacing:0.02em;
}
.panch-sub{font-size:10px;color:var(--text3);margin-top:3px;font-family:var(--font-mono);letter-spacing:0.02em}

/* ── Dasha tab ───────────────────────── */
.dasha-outer{flex:1;min-height:0;display:flex;flex-direction:column}
.dasha-subtabs{
  display:flex;border-bottom:1px solid var(--border2);
  padding:0 16px;background:var(--bg3);flex-shrink:0;
}
.dasha-stab{
  background:none;border:none;border-bottom:2px solid transparent;
  padding:9px 15px;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--text3);transition:all var(--tr);white-space:nowrap;
  margin-bottom:-1px;font-weight:600;cursor:pointer;
}
.dasha-stab:hover{color:var(--text2)}
.dasha-stab.active{color:var(--accent);border-bottom-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);background:var(--accent3)}
.dasha-subpanel{display:none;flex:1;min-height:0;flex-direction:column;overflow:hidden}
.dasha-subpanel.active{display:flex}
.dasha-stub{
  flex:1;display:flex;align-items:center;justify-content:center;
  color:var(--text3);font-size:12px;letter-spacing:0.08em;
}
.dasha-topbar{
  display:flex;align-items:center;gap:14px;padding:10px 16px;
  border-bottom:1px solid var(--border2);background:var(--bg2);
  flex-shrink:0;flex-wrap:wrap;
}
.dasha-balance{font-size:12px;color:var(--text2);font-weight:400}
.dasha-balance strong{color:var(--accent);font-weight:600}
.dasha-lookup-row{display:flex;align-items:center;gap:7px;margin-left:auto}
.dasha-lookup-row label{
  font-size:10px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--text3);font-weight:600;
}
.dasha-lookup-row input{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  padding:5px 9px;font-size:12px;color:var(--text);outline:none;
  transition:border-color var(--tr),background var(--tr);
}
.dasha-lookup-row input:focus{border-color:var(--accent);background:var(--bg4)}
.dasha-chain-bar{
  padding:7px 16px;background:var(--accent3);
  border-bottom:1px solid rgba(200,168,75,0.25);
  font-size:12px;color:var(--accent);flex-shrink:0;
  font-weight:600;font-family:var(--font-mono);
  display:flex;align-items:center;gap:10px;
  letter-spacing:0.02em;
}
.dasha-chain-bar .dcb-label{
  color:var(--text3);font-size:10px;font-weight:400;
  font-family:var(--font-body);letter-spacing:0.06em;text-transform:uppercase;
}
.dasha-chain-bar .dcb-lord{display:inline-flex;align-items:center;gap:1px}
.dasha-chain-bar .dcb-sep{color:var(--text3);font-weight:400;padding:0 1px}
.dasha-browser{flex:1;min-height:0;display:flex;flex-direction:row;overflow:hidden}
.dasha-col-hdr{
  padding:7px 11px;background:var(--bg3);border-bottom:1px solid var(--border2);
  font-size:9px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--accent);font-weight:700;flex-shrink:0;
}
.dasha-row{
  display:flex;flex-direction:column;
  padding:8px 11px;border-bottom:1px solid var(--border);
  transition:background var(--tr),border-color var(--tr);
  cursor:pointer;
  gap:2px;
}
.dasha-row:hover{background:var(--bg4)}
.dasha-row.active{
  background:var(--accent3) !important;
  border-left:3px solid var(--accent);
  padding-left:8px;
}
.dr-short{font-size:12px;font-weight:600;color:var(--text);margin-right:2px}
.dasha-row.active .dr-short{color:var(--accent)}
.dr-full{font-size:10px;color:var(--text3);font-weight:400}
.dasha-row.active .dr-full{color:var(--accent);opacity:0.75}
.dr-range{
  font-size:11px;color:var(--text2);font-family:var(--font-mono);
  letter-spacing:0.01em;line-height:1.35;
}
.dr-date{font-size:11px;color:var(--text2);font-family:var(--font-mono);letter-spacing:0.01em}
.dr-age{
  font-size:11px;color:var(--text3);font-family:var(--font-mono);
  letter-spacing:0.01em;line-height:1.35;opacity:0.9;
}
.dasha-row.active .dr-range{color:var(--text2)}
.dasha-row.active .dr-age{color:var(--text2);opacity:1}

/* ── Preferences modal ───────────────── */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.75);
  z-index:200;display:none;align-items:flex-start;justify-content:flex-end;
}
.modal-overlay.open{display:flex}
.pref-panel{
  width:430px;height:100%;background:var(--bg2);
  border-left:1px solid var(--border2);overflow-y:auto;
  animation:slideIn 0.22s ease both;
  display:flex;flex-direction:column;box-shadow:var(--shadow-lg);
  padding-top:var(--sat);padding-bottom:var(--sab);padding-right:var(--sar);
  box-sizing:border-box;
}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
.pref-hdr{
  padding:16px 20px;border-bottom:1px solid var(--border2);
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;position:sticky;top:0;background:var(--bg2);z-index:1;
}
.pref-title{font-family:var(--font-body);font-size:15px;font-weight:600;letter-spacing:0.02em;color:var(--text)}
.pref-body{padding:18px 20px;display:flex;flex-direction:column;gap:0}
.pref-section{margin-bottom:22px}
.pref-section-title{
  font-size:9px;letter-spacing:0.24em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px;padding-bottom:7px;
  border-bottom:1px solid var(--border2);font-weight:700;
}
.pref-field{margin-bottom:11px}
.pref-field label{
  display:block;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--text3);margin-bottom:5px;font-weight:600;
}
.pref-field label.pref-check-label{
  display:flex;align-items:flex-start;gap:8px;font-size:12px;letter-spacing:0;
  text-transform:none;font-weight:500;line-height:1.35;color:var(--text2);cursor:pointer;
}
.pref-field label.pref-check-label input{width:auto;margin:2px 0 0;flex:0 0 auto}
.pref-field select,.pref-field input{
  width:100%;background:var(--bg3);border:1px solid var(--border2);
  border-radius:var(--r);padding:7px 10px;font-size:12px;color:var(--text);
  outline:none;transition:border-color var(--tr),background var(--tr);
}
.pref-field select:focus,.pref-field input:focus{border-color:var(--accent);background:var(--bg4)}
.pref-field select option{background:var(--bg3);color:var(--text)}

/* Western Aspects orb matrix (Preferences) */
.pref-waspect-shell{
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--border);border-radius:var(--r);
  background:var(--bg2);max-width:100%;
}
.pref-waspect-table{
  border-collapse:separate;border-spacing:0;
  font-size:11px;width:max-content;min-width:100%;
}
.pref-waspect-table th,.pref-waspect-table td{
  padding:4px 5px;border-bottom:1px solid var(--border);
  text-align:center;white-space:nowrap;vertical-align:middle;
}
.pref-waspect-table thead th{
  background:var(--bg3);color:var(--text3);font-weight:600;
  font-size:9px;letter-spacing:0.04em;position:sticky;top:0;z-index:2;
}
.pref-waspect-table .pref-waspect-sticky{
  position:sticky;background:var(--bg2);z-index:3;
  border-right:1px solid var(--border2);
}
.pref-waspect-table thead .pref-waspect-sticky{background:var(--bg3);z-index:4}
.pref-waspect-table .pref-waspect-aspect{
  left:0;text-align:left;min-width:108px;font-weight:600;color:var(--text);
}
.pref-waspect-table .pref-waspect-angle{
  left:108px;min-width:48px;color:var(--text2);font-family:var(--font-mono);
}
.pref-waspect-table input[type="number"]{
  width:46px;padding:3px 4px;font-size:11px;text-align:center;
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  color:var(--text);
}
.pref-waspect-table input[type="number"]:focus{
  border-color:var(--accent);outline:none;background:var(--bg4);
}
#kp-panel-vastu .kp-vastu-outer{padding:14px 12px 24px}
#kp-panel-vastu .kp-table-shell{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.kp-vastu-table{
  border-collapse:separate;border-spacing:0;
  font-size:11px;width:max-content;min-width:100%;
}
.kp-vastu-table th,.kp-vastu-table td{
  padding:5px 6px;border-bottom:1px solid var(--border);
  text-align:center;white-space:nowrap;vertical-align:middle;
}
.kp-vastu-table thead th{
  background:var(--bg3);color:var(--text3);font-weight:600;
  font-size:9px;letter-spacing:0.04em;
}
.kp-vastu-table .kp-vastu-sticky{
  position:sticky;background:var(--bg2);z-index:2;
  border-right:1px solid var(--border2);
}
.kp-vastu-table thead .kp-vastu-sticky{background:var(--bg3);z-index:3}
.kp-vastu-table .kp-vastu-pl{
  left:0;text-align:left;min-width:80px;font-weight:700;color:var(--text);
}
.kp-vastu-pl-hdr{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:3px 4px;line-height:1.25;
  max-width:100%;white-space:normal;
}
.kp-vastu-pl-abbr{font-weight:700;line-height:1.2;white-space:nowrap}
.kp-vastu-pl-hdr .kp-tem-dasha-pills{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px;margin:0;
}
.kp-vastu-pl-hdr .kp-dasha-ph-level{margin-right:0;font-size:8px;padding:0 4px}
.kp-vastu-table th.kp-vastu-col-hdr{vertical-align:bottom;text-align:center;min-width:52px}
.kp-vastu-table .kp-vastu-dir{
  left:80px;min-width:42px;text-align:center;font-weight:600;font-size:10px;color:var(--accent2);
}
.kp-vastu-table .kp-vastu-long{
  left:122px;min-width:58px;text-align:right;font-family:var(--font-mono);
  color:var(--text2);font-size:10px;
}
.kp-vastu-table .kp-vastu-rashi{
  left:180px;min-width:36px;text-align:center;font-weight:600;font-size:10px;color:var(--text);
}
.kp-vastu-table .kp-vastu-rashi-dir{
  left:216px;min-width:88px;text-align:left;font-size:9px;font-weight:600;color:var(--accent2);
  white-space:nowrap;
}
.kp-vastu-cusps-table .kp-vastu-cusp-meta-lab{
  left:0;min-width:304px;width:304px;max-width:304px;
  text-align:left;font-weight:700;font-size:10px;letter-spacing:0.03em;
  color:var(--text);background:var(--bg3);z-index:4;
  border-right:1px solid var(--border2);white-space:nowrap;
}
.kp-vastu-cusps-table .kp-vastu-cusp-meta-val{
  font-size:10px;font-weight:600;color:var(--text2);background:var(--bg3);
  white-space:nowrap;vertical-align:middle;
}
.kp-vastu-cusps-table tr.kp-vastu-cusp-meta:nth-child(1) .kp-vastu-cusp-meta-val{
  font-family:var(--font-mono);font-weight:600;
}
.kp-vastu-cusps-table tr.kp-vastu-cusp-meta:nth-child(2) .kp-vastu-cusp-meta-val{
  color:var(--text);font-weight:700;
}
.kp-vastu-cusps-table tr.kp-vastu-cusp-meta:nth-child(3) .kp-vastu-cusp-meta-val{
  color:var(--accent2);font-size:9px;
}
.kp-vastu-cusps-table tr.kp-vastu-cusp-meta:nth-child(4) .kp-vastu-cusp-meta-val{
  font-size:9px;font-weight:600;color:var(--text2);white-space:nowrap;
}
.kp-vastu-table td.kp-vastu-cell{line-height:1.25;min-width:52px}
.kp-vastu-table .kp-vastu-delta{display:block;font-family:var(--font-mono);font-size:10px;color:var(--text2)}
.kp-vastu-table .kp-vastu-asp{display:block;font-size:10px;font-weight:700;margin-top:1px}
.kp-vastu-table .kp-vastu-asp-soft{color:#15803d}
.kp-vastu-table .kp-vastu-asp-soft-minor{color:#4ade80}
.kp-vastu-table .kp-vastu-asp-hard{color:#b91c1c}
.kp-vastu-table .kp-vastu-asp-conj{color:#a16207}
.kp-vastu-table td.kp-vastu-conj{background:color-mix(in srgb, #eab308 28%, var(--bg2))}
.kp-vastu-table td.kp-vastu-fwd{background:color-mix(in srgb, #22c55e 22%, var(--bg2))}
.kp-vastu-table td.kp-vastu-soft-minor{background:color-mix(in srgb, #86efac 28%, var(--bg2))}
.kp-vastu-table td.kp-vastu-rev{background:color-mix(in srgb, #ef4444 22%, var(--bg2))}
.kp-vastu-table td.kp-vastu-self{background:var(--bg3)}
.kp-vastu-table td.kp-vastu-empty{color:var(--text3)}

.kp-vastu-rh-controls{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-bottom:4px;
}
.kp-vastu-rh-field{display:flex;flex-direction:column;gap:4px;margin:0;font-size:10px;color:var(--text3);font-weight:600;letter-spacing:0.06em;text-transform:uppercase}
.kp-vastu-rh-field select{
  min-width:120px;padding:6px 8px;font-size:12px;color:var(--text);
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
}
.kp-vastu-rh-meta{
  display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;
  font-size:12px;color:var(--text2);padding-bottom:2px;
}
.kp-vastu-rh-meta strong{color:var(--text);font-family:var(--font-mono);font-weight:700;margin-left:4px}
.kp-vastu-rh-table .kp-vastu-rh-lab{
  left:0;text-align:left;min-width:96px;font-weight:700;color:var(--text);background:var(--bg2);
  white-space:nowrap;
}
.kp-vastu-rh-table thead .kp-vastu-rh-lab,.kp-vastu-rh-table th.kp-vastu-rh-lab{background:var(--bg3)}
.kp-vastu-rh-table td.kp-vastu-rh-lon{font-family:var(--font-mono);font-size:10px}
.kp-vastu-rh-table td.kp-vastu-rh-sign{font-weight:700}
.kp-vastu-rh-table td.kp-vastu-rh-rashi-dir{font-size:9px;font-weight:600;color:var(--accent2);white-space:nowrap}
.kp-vastu-rh-table td.kp-vastu-rh-body{font-size:9px;font-weight:600;color:var(--text2);white-space:nowrap}
.kp-vastu-rh-table td.kp-vastu-rh-diff{font-family:var(--font-mono);font-size:10px}
.kp-vastu-rh-table td.kp-vastu-rh-zero{background:color-mix(in srgb, #eab308 22%, var(--bg2));font-weight:700}
.kp-vastu-rh-table td.kp-vastu-rh-soft{background:color-mix(in srgb, #22c55e 18%, var(--bg2));color:#15803d;font-weight:700}
.kp-vastu-rh-table td.kp-vastu-rh-neg{color:var(--text3)}

.kp-vastu-ref-layout{
  display:grid;width:100%;gap:14px 18px;align-items:start;
  grid-template-columns:minmax(180px,240px) minmax(200px,1fr) minmax(280px,1.15fr);
}
@media (max-width:1000px){
  .kp-vastu-ref-layout{grid-template-columns:minmax(180px,240px) minmax(0,1fr)}
  .kp-vastu-ref-meanings-col{grid-column:1 / -1}
}
@media (max-width:720px){
  .kp-vastu-ref-layout{grid-template-columns:1fr}
  .kp-vastu-ref-meanings-col{grid-column:auto}
}
.kp-vastu-ref-col{min-width:0}
.kp-vastu-ref-meanings-col{
  min-width:0;padding:8px 10px;border:1px solid var(--border);border-radius:6px;
  background:var(--bg2);align-self:stretch;
}
.kp-vastu-fusion-col{min-width:0;width:100%}
.kp-vastu-fusion-slot{margin:0;max-width:100%;border:none;background:transparent}
.kp-vastu-fusion-slot .slot-controls{flex-wrap:wrap;gap:4px 6px;align-items:center}
#kp-vastu-fusion-area{
  min-height:300px;background:var(--bg3,var(--bg2));border-radius:var(--r,4px);
  display:flex;align-items:flex-start;justify-content:center;padding:8px;
}
#kp-vastu-fusion-area .chart-svg{max-width:min(480px,100%);width:100%;margin:0 auto}
.kp-vastu-ref-grids{
  display:flex;flex-direction:column;gap:10px;
}
.kp-vastu-ref-tbl{
  width:100%;border-collapse:separate;border-spacing:0;
  font-size:11px;border:1px solid var(--border);border-radius:6px;overflow:hidden;
  background:var(--bg2);
}
.kp-vastu-ref-tbl th{
  text-align:left;padding:6px 8px;font-size:10px;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--text3);background:var(--bg3);
  border-bottom:1px solid var(--border);
}
.kp-vastu-ref-tbl td{padding:5px 8px;border-bottom:1px solid var(--border)}
.kp-vastu-ref-tbl tr:last-child td{border-bottom:none}
.kp-vastu-ref-tbl td:last-child{text-align:right;font-family:var(--font-mono);font-weight:600}
.kp-vastu-ref-tbl tr.kp-vastu-ref-hard{background:color-mix(in srgb, #ef4444 18%, var(--bg2))}
.kp-vastu-ref-tbl tr.kp-vastu-ref-soft{background:color-mix(in srgb, #22c55e 18%, var(--bg2))}
.kp-vastu-ref-tbl tr.kp-vastu-ref-soft-minor{background:color-mix(in srgb, #86efac 22%, var(--bg2))}
.kp-vastu-ref-meanings{
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--text2);
}
.kp-vastu-ref-meanings li{line-height:1.35}
.kp-vastu-ref-meanings em{color:var(--text3);font-style:normal;font-size:10px;margin:0 2px}
.kp-vastu-ref-meanings .kp-vastu-asp-hard{color:#b91c1c;font-weight:700}
.kp-vastu-ref-meanings .kp-vastu-asp-soft{color:#15803d;font-weight:700}
.kp-vastu-ref-meanings .kp-vastu-asp-soft-minor{color:#16a34a;font-weight:700}
.kp-vastu-ref-meanings .kp-vastu-asp-conj{color:#a16207;font-weight:700}

.kp-vastu-wheel-wrap{
  width:100%;max-width:100%;margin:0 auto;padding:4px 0;
}
.kp-vastu-wheel-row{
  display:flex;flex-wrap:wrap;gap:12px 16px;justify-content:center;align-items:flex-start;
  width:100%;
}
.kp-vastu-wheel-slot{
  position:relative;flex:1 1 320px;min-width:min(100%,280px);max-width:560px;margin:0;
}
.kp-vastu-wheel-caption{
  text-align:center;font-size:11px;font-weight:700;letter-spacing:0.04em;
  color:var(--text2);margin:0 0 2px;
}
.kp-vastu-wheel-controls{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;margin:0 auto 6px;
  width:100%;font-size:11px;color:var(--text2);
}
.kp-vastu-wheel-controls label{display:inline-flex;align-items:center;gap:5px;min-height:28px;cursor:pointer}
.kp-vastu-wheel-controls input{margin:0}
.kp-vastu-wheel-rotate{gap:8px;min-width:min(100%,220px)}
.kp-vastu-wheel-rotate input[type="range"]{width:120px;max-width:40vw;accent-color:var(--accent)}
.kp-vastu-wheel-rotate span{min-width:2.5em;font-variant-numeric:tabular-nums;color:var(--text)}
.kp-vastu-wheel-clear{
  min-height:28px;padding:0 10px;border:1px solid var(--border);border-radius:5px;
  background:var(--bg3);color:var(--text2);font-size:11px;font-weight:600;cursor:pointer;
}
.kp-vastu-wheel-clear:hover{border-color:var(--accent);color:var(--text)}
.kp-vastu-wheel-detail{
  display:flex;flex-wrap:wrap;justify-content:center;gap:5px 10px;
  width:100%;margin:0 auto 8px;padding:7px 9px;
  border:1px solid var(--border);border-radius:6px;background:var(--bg2);
  color:var(--text3);font-size:10px;line-height:1.35;
}
.kp-vastu-wheel-detail strong{color:var(--text);font-size:11px}
.kp-vastu-wheel-detail span{white-space:nowrap;color:var(--text2)}
.kp-vastu-wheel-detail b{color:var(--text);font-weight:700}
.kp-vastu-wheel-slot .slot-fullview-wrap{justify-content:center;margin-top:8px}
.kp-vastu-wheel-svg{display:block;width:100%;height:auto;max-width:100%;margin:0 auto}
.kp-vastu-wheel-bg{fill:var(--bg2)}
.kp-vastu-wheel-rim{stroke:var(--border);stroke-width:1.25}
.kp-vastu-wheel-tick{stroke:var(--text3);stroke-width:0.5;opacity:0.55}
.kp-vastu-wheel-tick.major{stroke:var(--text2);stroke-width:1;opacity:0.85}
.kp-vastu-wheel-sector{stroke:var(--text);stroke-width:1.25;opacity:0.55}
.kp-vastu-wheel-deg{
  fill:var(--text3);font-size:11px;font-family:var(--font-mono);font-weight:600;pointer-events:none;
}
.kp-vastu-wheel-dir{
  fill:var(--text);font-size:12px;font-weight:700;letter-spacing:0.02em;pointer-events:none;
}
.kp-vastu-wheel-lord-lab{
  fill:#fff;font-size:12px;font-weight:800;letter-spacing:0.04em;
  paint-order:stroke fill;stroke:rgba(0,0,0,0.35);stroke-width:2px;pointer-events:none;
}
.kp-vastu-wheel-inner-deity-lab{
  fill:#111;font-size:6px;font-weight:800;letter-spacing:0;pointer-events:none;
  paint-order:stroke fill;stroke:rgba(255,255,255,0.35);stroke-width:1.2px;
}
.kp-vastu-wheel-zone-lab{
  fill:#111;font-size:10px;font-weight:700;pointer-events:none;
}
.kp-vastu-wheel-zone-lab.pos{fill:#15803d}
.kp-vastu-wheel-zone-lab.neg{fill:#b91c1c}
.kp-vastu-wheel-deity-lab{
  fill:#111;font-size:8px;font-weight:700;letter-spacing:0;pointer-events:none;
  opacity:0.9;
}
.kp-vastu-wheel-deity-lab.is-corner{font-size:6.25px}
.kp-vastu-wheel-attr-lab{
  fill:#111;font-size:7px;font-weight:700;letter-spacing:0;pointer-events:none;
}
.kp-vastu-wheel-organ-lab{
  fill:var(--text);font-size:7.5px;font-weight:700;letter-spacing:0.02em;pointer-events:none;
}
.kp-vastu-wheel-guna-lab{
  fill:#111;font-size:7px;font-weight:800;letter-spacing:0.05em;pointer-events:none;
}
.kp-vastu-wheel-sign-lab{
  fill:var(--text);font-size:13px;font-weight:800;letter-spacing:0.03em;pointer-events:none;
}
[data-vastu-kind].is-active{
  stroke:var(--accent)!important;stroke-width:4px!important;
  filter:brightness(1.08);
}
.kp-vastu-wheel-plot-marker{cursor:pointer}
.kp-vastu-wheel-plot-hit{fill:transparent;stroke:none;pointer-events:all}
.kp-vastu-wheel-plot-line{fill:none;stroke-width:1;opacity:0.8}
.kp-vastu-wheel-plot-line.planet{stroke:#7c3aed}
.kp-vastu-wheel-plot-line.cusp{stroke:#0891b2}
.kp-vastu-wheel-plot-line.transit{stroke:#dc2626}
.kp-vastu-wheel-plot-dot.planet{fill:#7c3aed;stroke:#f8fafc;stroke-width:1}
.kp-vastu-wheel-plot-dot.cusp{fill:#0891b2;stroke:#f8fafc;stroke-width:1}
.kp-vastu-wheel-plot-dot.transit{fill:#dc2626;stroke:#f8fafc;stroke-width:1}
.kp-vastu-wheel-plot-lab{
  font-size:9px;font-weight:800;pointer-events:none;font-family:Arial,Helvetica,sans-serif;
  paint-order:stroke fill;stroke:#f8fafc;stroke-width:3px;stroke-linejoin:round;
}
.kp-vastu-wheel-plot-lab.planet{fill:#6d28d9}
.kp-vastu-wheel-plot-lab.cusp{fill:#0e7490}
.kp-vastu-wheel-plot-lab.transit{fill:#b91c1c}
.kp-vastu-wheel-plot-marker.is-active .kp-vastu-wheel-plot-lab{
  font-size:11px;stroke-width:4px;
}
.kp-vastu-wheel-plot-marker.is-active .kp-vastu-wheel-plot-dot{
  stroke:var(--accent);stroke-width:2.5;
}
.kp-vastu-wheel-brahma{fill:#facc15;stroke:rgba(0,0,0,0.35);stroke-width:1}
.kp-vastu-wheel-brahma-cross{stroke:#111;stroke-width:1.5;stroke-linecap:round}
.kp-vastu-wheel-brahma-lab{
  fill:#111;font-size:12px;font-weight:800;letter-spacing:0.08em;pointer-events:none;
}
.kp-vastu-simple-bg{fill:var(--bg2)}
.kp-vastu-simple-rim{fill:none;stroke:var(--text);stroke-width:1.15;opacity:0.9}
.kp-vastu-simple-tick{stroke:var(--text);stroke-width:0.55;opacity:0.7}
.kp-vastu-simple-tick.major{stroke-width:1.15;opacity:0.95}
.kp-vastu-simple-spoke{stroke:var(--text);stroke-width:0.55;opacity:0.45}
.kp-vastu-simple-spoke.major{stroke-width:1.05;opacity:0.85}
.kp-vastu-simple-hub{fill:var(--text)}
.kp-vastu-simple-zone,.kp-vastu-simple-dir,.kp-vastu-simple-attr{
  fill:transparent;stroke:none;pointer-events:none;
}
.kp-vastu-simple-zone.is-active,.kp-vastu-simple-dir.is-active,.kp-vastu-simple-attr.is-active{
  fill:color-mix(in srgb, var(--accent) 22%, transparent);
  stroke:var(--accent);stroke-width:2.5px;opacity:1;
}
.kp-vastu-simple-deg{
  fill:var(--text);font-size:10px;font-family:var(--font-mono);font-weight:700;pointer-events:none;
}
.kp-vastu-simple-attr-lab{
  fill:var(--text);font-size:6.5px;font-weight:700;letter-spacing:0;pointer-events:none;
}
.kp-vastu-simple-dir-lab{
  fill:var(--text);font-size:9px;font-weight:800;letter-spacing:0.02em;pointer-events:none;
}
.kp-vastu-simple-zone-lab{
  fill:var(--text);font-size:8px;font-weight:700;pointer-events:none;
}

[data-theme="light"] .kp-vastu-table .kp-vastu-asp-conj,
[data-theme="paper"] .kp-vastu-table .kp-vastu-asp-conj{color:#854d0e}
[data-theme="light"] .kp-vastu-table .kp-vastu-asp-soft,
[data-theme="paper"] .kp-vastu-table .kp-vastu-asp-soft{color:#166534}
[data-theme="light"] .kp-vastu-table .kp-vastu-asp-soft-minor,
[data-theme="paper"] .kp-vastu-table .kp-vastu-asp-soft-minor{color:#15803d}
[data-theme="light"] .kp-vastu-table .kp-vastu-asp-hard,
[data-theme="paper"] .kp-vastu-table .kp-vastu-asp-hard{color:#991b1b}

/* Category management */
.cat-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.cat-item{
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);
  padding:8px 10px;
}
.cat-item-hdr{
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;
}
.cat-item-name{font-size:12px;color:var(--text);font-weight:700}
.cat-toggle{font-size:10px;color:var(--text3);transition:transform var(--tr)}
.cat-item.open .cat-toggle{transform:rotate(180deg)}
.sub-cats{display:none;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.cat-item.open .sub-cats{display:block}
.sub-cat-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.sub-tag{
  background:var(--bg4);border:1px solid var(--border2);border-radius:10px;
  padding:3px 10px;font-size:10px;color:var(--text2);display:flex;align-items:center;gap:5px;
}
.sub-tag-del{background:none;border:none;color:var(--text3);font-size:11px;cursor:pointer;padding:0;line-height:1}
.sub-tag-del:hover{color:var(--red)}
.add-sub-row{display:flex;gap:6px}
.add-sub-row input{
  flex:1;background:var(--bg4);border:1px solid var(--border2);
  border-radius:var(--r);padding:5px 8px;font-size:11px;color:var(--text);outline:none;
}
.add-sub-row input:focus{border-color:var(--accent)}

.btn-add-cat{
  width:100%;background:none;border:1px dashed var(--border2);
  border-radius:var(--r);padding:7px;color:var(--text3);font-size:11px;
  transition:all var(--tr);
}
.btn-add-cat:hover{border-color:var(--accent);color:var(--accent)}
.btn-del-cat{background:none;border:none;color:var(--text3);font-size:11px;cursor:pointer;padding:2px 6px}
.btn-del-cat:hover{color:var(--red)}

.pref-footer{
  padding:14px 18px;border-top:1px solid var(--border2);
  flex-shrink:0;position:sticky;bottom:0;background:var(--bg2);
}
.btn-save-pref{
  width:100%;background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none;border-radius:var(--r2);
  padding:11px;color:var(--accent-fg);font-size:11px;letter-spacing:0.16em;
  text-transform:uppercase;font-weight:700;transition:all var(--tr);
  box-shadow:0 2px 8px rgba(200,168,75,0.25);
}
.btn-save-pref:hover{opacity:0.9;transform:translateY(-1px)}

/* ── Save / Load modal ────────────────── */
.modal{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);padding:28px;width:100%;max-width:390px;
  margin:auto;animation:fadeUp 0.2s ease both;box-shadow:var(--shadow-lg);
}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.modal-title{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--text);margin-bottom:20px;letter-spacing:0.02em}
.modal-field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.modal-field label{font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--text3);font-weight:600}
.modal-field input,.modal-field select,.modal-field textarea{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  padding:8px 10px;font-size:12px;color:var(--text);outline:none;
  transition:border-color var(--tr),background var(--tr);
}
.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{
  border-color:var(--accent);background:var(--bg4);
}
.modal-field textarea{resize:vertical;min-height:62px}
.modal-actions{display:flex;gap:8px;margin-top:20px}
.btn-primary{
  flex:1;background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none;border-radius:var(--r2);
  padding:10px;color:var(--accent-fg);font-size:10px;letter-spacing:0.16em;
  text-transform:uppercase;font-weight:700;transition:all var(--tr);
  box-shadow:0 2px 8px rgba(200,168,75,0.25);
}
.btn-primary:hover{opacity:0.9;transform:translateY(-1px);box-shadow:0 4px 12px rgba(200,168,75,0.3)}
.btn-secondary{
  background:none;border:1px solid var(--border2);border-radius:var(--r);
  padding:10px 16px;color:var(--text2);font-size:10px;letter-spacing:0.1em;
  text-transform:uppercase;transition:all var(--tr);font-weight:500;
}
.btn-secondary:hover{border-color:var(--border3);color:var(--text);background:var(--bg3)}

/* Load modal */
.charts-list{max-height:280px;overflow-y:auto;margin-top:10px}
.charts-loading{color:var(--text3);padding:12px 10px;font-size:11px;text-align:center;letter-spacing:0.08em}
.chart-list-item{
  display:flex;flex-direction:column;gap:2px;padding:9px;
  border-bottom:1px solid var(--border);cursor:pointer;border-radius:var(--r);
  transition:background var(--tr);
}
.chart-list-item:hover{background:var(--bg3)}
.cli-name{font-size:13px;color:var(--text);font-weight:700}
.cli-meta{font-size:10px;color:var(--text3);font-family:var(--font-mono)}
.search-input{
  width:100%;background:var(--bg3);border:1px solid var(--border2);
  border-radius:var(--r);padding:7px 9px;font-size:12px;color:var(--text);
  outline:none;transition:border-color var(--tr);margin-bottom:2px;
}
.search-input:focus{border-color:var(--accent)}

/* ── Life Events Panel ──────────────────────────────────────────── */
#modal-life-events .modal{
  display:flex;flex-direction:column;
  max-height:calc(var(--vvh) - 60px);
  padding:0;
}
#modal-life-events .modal-title{
  padding:20px 24px 14px;
  border-bottom:1px solid var(--border2);
  margin-bottom:0;flex-shrink:0;
}
#modal-life-events .le-modal-hdr{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
#modal-life-events .le-modal-close{flex-shrink:0}
#modal-life-events #le-edit-mode,
#modal-life-events #le-view-mode{
  overflow-y:auto;flex:1;padding:16px 24px;
}
#modal-life-events .modal-actions{
  border-top:1px solid var(--border2);
  padding:12px 24px;margin-top:0;flex-shrink:0;
  background:var(--bg2);
}
.le-edit-toolbar{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;
}
.le-calc-dasha-btn{font-size:11px;padding:4px 10px;flex-shrink:0;white-space:nowrap}
.le-slot{
  border:1px solid var(--border2);border-radius:var(--r2);
  margin-bottom:10px;padding:10px 12px;background:var(--bg2);
}
.le-slot-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.le-reset-btn{font-size:10px;padding:2px 8px;height:22px;flex-shrink:0}
.le-slot-num{font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--text3);font-weight:600}
.le-fields{display:flex;flex-direction:column;gap:7px}
.le-field-row{display:flex;gap:8px;flex-wrap:wrap}
.le-field{display:flex;flex-direction:column;gap:3px;min-width:0}
.le-field label{font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--text3);font-weight:600}
.le-input{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r1);
  color:var(--text);padding:5px 8px;font-size:12px;font-family:var(--font-mono);outline:none;width:100%;box-sizing:border-box;
}
.le-input:focus{border-color:var(--accent)}
.le-textarea{resize:vertical;min-height:52px;font-family:inherit}
.le-auto-field{}
.le-auto-val{
  background:var(--bg);border:1px solid var(--border2);border-radius:var(--r1);
  color:var(--accent);padding:5px 8px;font-size:11px;font-family:var(--font-mono);
  min-height:28px;display:flex;align-items:center;
}
/* Saved view */
.le-saved-card{
  border:1px solid var(--border2);border-radius:var(--r2);
  padding:10px 14px;margin-bottom:8px;background:var(--bg2);
}
.le-saved-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.le-saved-name{font-size:13px;font-weight:600;color:var(--text)}
.le-saved-date{font-size:11px;color:var(--text3);font-family:var(--font-mono)}
.le-saved-meta{font-size:11px;color:var(--text2);margin-top:3px}
.le-saved-desc{font-size:11px;color:var(--text3);margin-top:5px;line-height:1.5}

/* ── Toast ────────────────────────────── */
.toast{
  position:fixed;bottom:max(20px, var(--sab));right:max(20px, var(--sar));z-index:300;
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);padding:10px 12px 10px 16px;font-size:12px;color:var(--text);
  transform:translateY(60px);opacity:0;transition:all 0.25s ease;pointer-events:none;
  box-shadow:var(--shadow);font-weight:500;
  display:flex;align-items:flex-start;gap:10px;max-width:min(420px,calc(100vw - 40px - var(--sal) - var(--sar)));
}
.toast.show{transform:translateY(0);opacity:1;pointer-events:auto}
.toast-msg{flex:1;line-height:1.45;word-break:break-word;user-select:text;-webkit-user-select:text;cursor:text}
.toast-close{
  flex-shrink:0;border:none;background:transparent;color:inherit;opacity:0.7;
  font-size:20px;line-height:1;padding:0 4px;cursor:pointer;margin-top:-2px;
  border-radius:4px;
}
.toast-close:hover{opacity:1;background:rgba(127,127,127,0.15)}
.toast.success{border-color:var(--green);color:var(--green);background:var(--green2)}
.toast.error{border-color:var(--red);color:var(--red);background:var(--red2)}

/* ── Fullscreen chart overlay ──────────── */
.chart-fs-overlay{
  position:fixed;inset:0;z-index:500;
  background:rgba(0,0,0,0.82);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  padding:max(16px, var(--sat)) max(16px, var(--sar)) max(16px, var(--sab)) max(16px, var(--sal));
  box-sizing:border-box;
}
.chart-fs-modal{
  position:relative;background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);box-shadow:var(--shadow-lg);
  display:flex;flex-direction:column;align-items:center;
  max-width:min(1200px,96vw);width:100%;
  height:calc(0.95 * var(--vvh) - var(--sat) - var(--sab));
  max-height:calc(0.95 * var(--vvh) - var(--sat) - var(--sab));overflow:hidden;
}
.chart-fs-close{
  position:absolute;top:max(10px, var(--sat));right:max(12px, var(--sar));z-index:10;
  background:var(--bg4);border:1px solid var(--border2);color:var(--text2);
  width:32px;height:32px;border-radius:50%;font-size:14px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all var(--tr);
}
.chart-fs-close:hover{border-color:var(--accent);color:var(--accent);background:var(--accent3)}
.chart-fs-label{
  font-family:var(--font-head);font-size:11px;letter-spacing:0.18em;
  color:var(--accent);text-transform:uppercase;padding:12px 48px 4px;
  text-align:center;flex-shrink:0;
}
.chart-fs-actions{
  display:flex;justify-content:center;align-items:center;gap:8px;
  flex-shrink:0;padding:0 12px 6px;flex-wrap:wrap;
}
.chart-fs-actions .slot-fullview-btn{margin:0}
.chart-fs-vastu-controls{
  display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 12px;
  font-size:11px;color:var(--text2);
}
.chart-fs-vastu-controls[hidden]{display:none!important}
.chart-fs-vastu-controls label{display:inline-flex;align-items:center;gap:5px;min-height:28px;cursor:pointer}
.chart-fs-vastu-controls input{margin:0}
.chart-fs-rotate{
  display:inline-flex;align-items:center;gap:8px;min-height:28px;
  font-size:11px;color:var(--text2);cursor:pointer;
}
.chart-fs-rotate input[type="range"]{width:120px;max-width:36vw;accent-color:var(--accent)}
.chart-fs-rotate span{min-width:2.5em;font-variant-numeric:tabular-nums;color:var(--text)}
.chart-fs-stage .kp-vastu-wheel-svg,
.chart-fs-stage svg.kp-vastu-wheel-svg{
  pointer-events:auto!important;
}
.chart-fs-stage .kp-vastu-wheel-plot-marker,
.chart-fs-stage .kp-vastu-wheel-plot-marker *{
  pointer-events:auto!important;cursor:pointer;
}
.chart-fs-stage .kp-vastu-wheel-plot-lab{pointer-events:none!important}
.chart-fs-vastu-detail{
  display:flex;flex-wrap:wrap;justify-content:center;gap:5px 10px;
  width:100%;max-width:100%;margin:0;padding:6px 10px 8px;
  border-top:1px solid var(--border);background:var(--bg2);
  color:var(--text3);font-size:10px;line-height:1.35;flex-shrink:0;
  box-sizing:border-box;
}
.chart-fs-vastu-detail[hidden]{display:none!important}
.chart-fs-vastu-detail strong{color:var(--text);font-size:11px}
.chart-fs-vastu-detail span{white-space:nowrap;color:var(--text2)}
.chart-fs-vastu-detail b{color:var(--text);font-weight:700}
.chart-fs-inner{
  width:100%;flex:1;overflow:hidden;min-height:0;
  display:flex;align-items:center;justify-content:center;
  padding:8px 12px 16px;
  /* JS pinch/pan in ui.js — block native gesture conflict */
  touch-action:none;
  -webkit-user-select:none;user-select:none;
  cursor:grab;
  overscroll-behavior:contain;
}
.chart-fs-inner:active{cursor:grabbing}
.chart-fs-stage{
  transform-origin:0 0;
  will-change:transform;
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;max-width:100%;max-height:100%;
  min-width:0;min-height:0;
}
.chart-fs-inner svg,
.chart-fs-stage svg{
  display:block;flex-shrink:0;
  width:auto;height:auto;
  max-width:100%;max-height:100%;
  aspect-ratio:1;
  pointer-events:none;
}
.chart-fs-hint{
  flex-shrink:0;font-size:10px;color:var(--text3);letter-spacing:.04em;
  padding:0 12px 8px;text-align:center;
}
/* Full-view / Copy / PNG buttons below each chart slot */
.slot-fullview-btn{
  display:inline-flex;align-items:center;gap:5px;
  margin:0;padding:4px 14px;border:1px solid var(--border2);border-radius:20px;
  background:var(--bg3);color:var(--text3);font-size:10px;letter-spacing:0.08em;
  text-transform:uppercase;font-weight:600;cursor:pointer;
  transition:all var(--tr);
}
.slot-fullview-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent3)}
/* Wrapper so button centres itself below chart */
.slot-fullview-wrap{
  display:flex;justify-content:center;align-items:center;gap:6px;
  padding:2px 0 6px;flex-shrink:0;flex-wrap:wrap;
}
@media(max-width:768px){
  .chart-fs-modal{max-width:100%;border-radius:var(--r2) var(--r2) 0 0;align-self:flex-end;height:calc(0.92 * var(--vvh) - var(--sat) - var(--sab));max-height:calc(0.92 * var(--vvh) - var(--sat) - var(--sab));padding-bottom:var(--sab);box-sizing:border-box}
  .chart-fs-overlay{align-items:flex-end;padding:0;padding-top:var(--sat)}
  .chart-fs-close{top:max(10px, var(--sat));right:max(12px, var(--sar))}
  .chart-fs-inner{align-items:center;justify-content:center;padding:6px 8px 12px}
  .slot-fullview-btn{padding:8px 16px;font-size:11px;min-height:40px}
  .kp-combo-sig-copy-btn{width:32px;height:32px}
}

/* ── Generic modal wrapper ─────────────── */
.modal-wrap{
  position:fixed;inset:0;background:rgba(0,0,0,0.7);
  z-index:200;display:none;align-items:center;justify-content:center;padding:20px;
}
.modal-wrap.open{display:flex}

/* ── Chart tab — single scroll column ────────────────── */
.chart-tab-inner{flex:1;display:flex;flex-direction:column;overflow:hidden}
.chart-scroll-outer{
  flex:1;overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;
  min-height:0;
  padding-bottom:40px;
  background:var(--bg2);
}
/* chart-slots: natural height, no flex-grow so it doesn't push everything else away */
.chart-scroll-outer .chart-slots{
  display:flex;flex-shrink:0;flex-wrap:wrap;
  min-height:440px;
  border-bottom:1px solid var(--border2);
  background:var(--bg2);
}
.chart-scroll-outer .chart-slot{
  flex:1;min-width:300px;
  display:flex;flex-direction:column;
  overflow:visible;
  background:var(--bg2);
}
.chart-scroll-outer .slot-chart-area{
  flex:1;min-height:420px;
  overflow:visible;
  padding:16px 12px 8px;
  background:var(--bg2);
  display:flex;align-items:flex-start;justify-content:center;
  width:100%;box-sizing:border-box;
}
.chart-scroll-outer .planets-section{
  padding:10px 14px 16px;
  background:var(--bg2);border-top:1px solid var(--border2);
  flex-shrink:0;
}
/* analysis sections inside chart tab — with consistent spacing */
.chart-scroll-outer .an-section{
  margin:12px 14px 0;flex-shrink:0;
}
/* side-by-side row wrapper gets same margin */
.chart-scroll-outer #an-states-extra-row{
  margin:12px 14px 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  align-items:stretch;
  flex-shrink:0;
}
.chart-scroll-outer #an-states-extra-row .an-section{
  margin:0;
  display:flex;
  flex-direction:column;
}
.chart-scroll-outer #an-states-extra-row .an-section .an-body{
  flex:1;
}
.chart-scroll-outer .an-section:last-child{margin-bottom:32px}
.chart-scroll-outer .an-loading{margin:12px 14px 0;}
/* planets-section is also an an-section — give it the same spacing */
.chart-scroll-outer #planets-section{
  margin:12px 14px 0;
  border-radius:6px;
  overflow:hidden;
}
.slot-bar{
  display:flex;gap:6px;padding:8px 16px;border-bottom:1px solid var(--border2);
  background:var(--bg2);flex-shrink:0;align-items:center;
}
.slot-ctrl-btn{
  background:var(--red);border:1px solid var(--red);color:#fff;
  width:28px;height:28px;border-radius:var(--r);font-size:16px;line-height:1;
  transition:all var(--tr);display:flex;align-items:center;justify-content:center;
  font-weight:600;
}
.slot-ctrl-btn:hover{border-color:var(--red);color:#fff;background:var(--red)}
.chart-slots{
  display:flex;flex-wrap:wrap;align-content:flex-start;
  background:var(--bg2);
}
.chart-slot{
  flex:1;min-width:320px;display:flex;flex-direction:column;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);overflow:visible;
  background:var(--bg2);
}
.chart-slot:last-child{border-right:1px solid var(--border)}
.slot-controls{
  display:flex;align-items:center;gap:6px;padding:6px 10px;
  border-bottom:1px solid var(--border);background:var(--bg3);flex-shrink:0;
  flex-wrap:wrap;
}
.slot-style-btn{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);
  padding:4px 11px;border-radius:var(--r);font-size:10px;letter-spacing:0.08em;
  text-transform:uppercase;transition:all var(--tr);font-weight:600;cursor:pointer;
}
.slot-style-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent3)}
.slot-style-btn.active{background:var(--accent3);border-color:var(--accent);color:var(--accent)}
/* Source-cycle button: N / T / JK — compact pill to the right of the varga select */
.slot-source-btn{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text3);
  padding:4px 8px;border-radius:var(--r);font-size:10px;letter-spacing:0.06em;
  text-transform:uppercase;font-weight:700;cursor:pointer;transition:all var(--tr);
  flex-shrink:0;min-width:28px;text-align:center;
}
.slot-source-btn:hover{border-color:var(--accent2);color:var(--accent2);background:var(--bg4)}
.slot-source-btn[data-source="transit"]{color:var(--blue,#38bdf8);border-color:var(--blue,#38bdf8)}
.slot-source-btn[data-source="jamakkol"]{color:var(--orange,#f97316);border-color:var(--orange,#f97316)}
.slot-select{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  padding:4px 8px;font-size:11px;color:var(--text);outline:none;flex:1;min-width:80px;
  transition:border-color var(--tr),background var(--tr);
}
.slot-select:focus{border-color:var(--accent);background:var(--bg4)}
.slot-rotate-select{
  flex:0 0 auto;width:58px;min-width:58px;max-width:58px;
  padding:4px 4px;font-size:10px;
}
.slot-rotate-btn{
  flex-shrink:0;padding:4px 8px;letter-spacing:0.06em;text-transform:none;
}
.slot-chart-area{
  display:flex;align-items:flex-start;justify-content:center;
  overflow:hidden;padding:12px;
  background:var(--bg2);
}

/* ── Transit stepper ────────────────────────────────── */
.transit-stepper{display:flex;gap:0;align-items:center}
.step-btn{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);
  width:30px;height:30px;font-size:13px;transition:all var(--tr);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  flex-shrink:0;font-weight:500;
}
.step-btn:first-child{border-radius:var(--r) 0 0 var(--r)}
.step-btn:last-child{border-radius:0 var(--r) var(--r) 0}
.step-btn:hover{background:var(--accent3);border-color:var(--accent);color:var(--accent)}
.step-btn:active{transform:scale(0.92)}
.step-select{
  flex:1;background:var(--bg3);border:1px solid var(--border2);border-left:none;border-right:none;
  padding:5px 6px;font-size:11px;color:var(--text);outline:none;height:30px;
  text-align:center;
}
.step-select:focus{border-color:var(--accent)}
.transit-anim-controls{display:flex;gap:6px;margin-top:7px;align-items:center}
.anim-btn{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);
  width:34px;height:30px;border-radius:var(--r);font-size:12px;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:all var(--tr);font-weight:700;flex-shrink:0;
}
.anim-btn:hover:not(:disabled){background:var(--accent3);border-color:var(--accent);color:var(--accent)}
.anim-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}
.anim-btn:disabled{opacity:.45;cursor:not-allowed}
.anim-stop:hover:not(:disabled){background:var(--red2);border-color:var(--red);color:var(--red)}

/* ── Transit section in sidebar ─────────────────────── */
.transit-section{border-top:1px solid var(--border);flex-shrink:0}
.transit-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;cursor:pointer;transition:background var(--tr),border-color var(--tr);
}
#transit-section .transit-hdr{
  padding:10px 14px;cursor:pointer;transition:background var(--tr),border-color var(--tr);
  background:linear-gradient(90deg,rgba(220,38,38,.22),rgba(127,29,29,.12));
  border-left:3px solid var(--red);
}
#transit-section .transit-hdr:hover{background:linear-gradient(90deg,rgba(220,38,38,.32),rgba(127,29,29,.18))}
.transit-hdr-title{
  font-size:10px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--text3);font-weight:700;
}
#transit-section .transit-hdr-title{
  color:var(--text);font-weight:800;
}
.transit-hdr-toggle{font-size:11px;color:var(--text3);transition:transform var(--tr)}
#transit-section .transit-hdr-toggle{color:var(--text)}
.transit-section.open .transit-hdr-toggle{transform:rotate(180deg)}
.transit-body{display:none;overflow:visible}
.transit-section.open .transit-body{display:block}


/* ── Analysis / BNN / Prashna tabs ───────────────────────────── */
.analysis-outer{
  flex:1;overflow-y:auto;overflow-x:hidden;
  padding:14px 16px 32px;
  display:flex;flex-direction:column;gap:14px;
  min-height:0;
}
.an-loading{
  display:flex;align-items:center;gap:12px;padding:22px 16px;
  color:var(--text2);font-size:12px;font-weight:500;letter-spacing:0.03em;
}
.an-spinner{
  width:18px;height:18px;
  border:2px solid var(--border2);border-top-color:var(--accent);
  border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;
}
@keyframes spin{to{transform:rotate(360deg)}}
.an-section{background:var(--bg2);border:1px solid var(--border2);border-radius:6px;overflow:visible}
.an-hdr{
  padding:11px 16px;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:0.04em;
  color:var(--text);background:var(--bg3);border-bottom:1px solid var(--border2);
  cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;
  transition:background var(--tr);
}
.an-hdr .an-hdr-icon{color:var(--accent);margin-right:7px;font-size:13px}
.an-hdr:hover{background:var(--bg4)}
.an-hdr::after{content:'▾';font-size:12px;color:var(--text3);transition:transform .2s;opacity:0.7}
.an-hdr.collapsed::after{transform:rotate(-90deg)}
.an-body{padding:14px 16px 18px;font-size:13px;overflow-x:auto}
.an-body.hidden{display:none}
/* Dual-column analysis blocks — stack on mobile/tablet (Slice 2.3) */
.an-2col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.an-note{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  padding:9px 13px;color:var(--text2);font-size:11px;margin-bottom:14px;
  line-height:1.65;font-style:italic;
}
.an-sub-hdr{
  font-size:10px;font-weight:600;color:var(--accent);text-transform:uppercase;
  letter-spacing:0.12em;margin:16px 0 9px;
  padding-bottom:5px;border-bottom:1px solid var(--border);
}
.an-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11.5px}
.an-table th{
  padding:7px 10px;text-align:left;color:var(--text3);font-weight:600;
  border-bottom:1px solid var(--border2);white-space:nowrap;
  font-size:9.5px;text-transform:uppercase;letter-spacing:0.08em;
  background:var(--bg3);
}
.an-table td{
  padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text2);
  max-width:260px;overflow:hidden;text-overflow:ellipsis;
}
.an-table tr:hover td{background:var(--bg4);color:var(--text)}
.an-table td:first-child{color:var(--text);font-weight:500}
/* KP lords columns — subtle tint to group them */
.an-table th.kp-col, .data-table th.kp-col{color:var(--accent2);border-left:1px solid var(--border2)}
.an-table td.kp-td, .data-table td.kp-td{border-left:1px solid var(--border);font-size:10px;font-family:var(--font-mono);color:var(--text2);padding:6px 7px}
.an-table th.kp-col-first, .data-table th.kp-col-first{border-left:2px solid var(--accent2);padding-left:10px}
.an-table td.kp-td-first, .data-table td.kp-td-first{border-left:2px solid rgba(var(--accent2-rgb,99,102,241),.25);padding-left:10px}
.an-legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.an-chip{display:inline-block;padding:2px 9px;border-radius:10px;font-size:10px;font-weight:700;cursor:default;white-space:nowrap}
/* Status chips */
.st-exalted   {background:rgba(114,168,114,0.2);color:var(--green);border:1px solid rgba(114,168,114,0.35)}
.st-debil     {background:var(--red2);color:var(--red);border:1px solid rgba(196,112,112,0.3)}
.st-own       {background:var(--blue2);color:var(--blue);border:1px solid rgba(112,150,196,0.3)}
.st-uccha     {background:var(--green2);color:var(--green);border:1px solid var(--green)}
.st-neecha    {background:var(--orange2);color:var(--orange);border:1px solid rgba(196,144,96,0.3)}
.st-neutral   {background:var(--bg4);color:var(--text3);border:1px solid var(--border2)}
.st-postuccha {background:var(--green2);color:var(--green);border:1px solid var(--green)}
.st-postneecha{background:var(--orange2);color:var(--orange);border:1px solid var(--orange)}
/* Panchdha chips */
.pm-adm {background:rgba(114,168,114,0.22);color:var(--green);border:1px solid rgba(114,168,114,0.35)}
.pm-mit {background:var(--green2);color:var(--green);border:1px solid var(--green)}
.pm-sama{background:var(--orange2);color:var(--orange);border:1px solid rgba(196,144,96,0.25)}
.pm-shtr{background:var(--red2);color:var(--red);border:1px solid rgba(196,112,112,0.25)}
.pm-adhs{background:var(--red2);color:var(--red);border:1px solid var(--red)}
.pm-self{background:var(--bg4);color:var(--text3);border:1px solid var(--border)}
/* Functional nature chips */
.fn-yb{background:rgba(200,168,75,0.18);color:var(--accent2);border:1px solid rgba(200,168,75,0.35)}
.fn-b {background:rgba(114,168,114,0.15);color:var(--green);border:1px solid rgba(114,168,114,0.28)}
.fn-m {background:var(--red2);color:var(--red);border:1px solid rgba(196,112,112,0.28)}
.fn-n {background:var(--bg4);color:var(--text3);border:1px solid var(--border2)}
/* Dosha cards */
.dosha-card{border:1px solid var(--border2);border-radius:var(--r2);margin-bottom:8px;overflow:hidden}
.dosha-card-hdr{
  padding:8px 13px;display:flex;align-items:center;gap:8px;
  font-weight:600;font-size:11px;
  flex-wrap:wrap;
}
.dosha-card.triggered .dosha-card-hdr{
  background:var(--red2);border-bottom:1px solid rgba(196,112,112,0.3);color:var(--red);
}
.dosha-card.ok .dosha-card-hdr{
  background:var(--green2);border-bottom:none;color:var(--green);
}
.dosha-card-body{padding:9px 13px 11px;font-size:11px;color:var(--text2);line-height:1.6}
.dosha-inf{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.dosha-inf-chip{padding:2px 8px;border-radius:8px;font-size:10px;font-weight:700;background:var(--orange2);color:var(--orange);border:1px solid var(--orange);margin:2px}
/* BNN */
.bnn-deg-row{display:flex;align-items:baseline;gap:10px;padding:8px 12px;background:var(--bg3);border-radius:var(--r);margin-bottom:6px}
.bnn-deg-label{font-size:10px;color:var(--text3);font-weight:600;white-space:nowrap;text-transform:uppercase;letter-spacing:0.08em}
.bnn-deg-val{font-size:12px;color:var(--text);font-family:var(--font-mono);word-break:break-word;line-height:1.7;letter-spacing:0.02em}
.bnn-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--text2)}
.bnn-leg-item{display:flex;align-items:center;gap:5px}
.bnn-badge{font-weight:900;font-size:13px}
.dir-chart{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  grid-template-rows:repeat(3,minmax(90px,1fr));
  gap:2px;
  border:1px solid var(--border2);border-radius:var(--r2);overflow:hidden;
  width:100%;
  background:var(--bg);
  box-sizing:border-box;
}
.dir-box{
  background:var(--bg3);padding:10px 8px;
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;font-size:10px;
}
.dir-box.dir-corner{
  background:var(--bg2);
}
.dir-box.dir-center{
  background:var(--bg4);display:flex;align-items:center;justify-content:center;
  color:var(--accent);font-size:24px;font-family:var(--font-display);font-weight:500;min-height:90px;
  opacity:0.85;
}
.dir-label{
  font-size:9px;font-weight:700;color:var(--text3);
  text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px;
}
.dir-planet{
  font-family:var(--font-mono);font-weight:600;color:var(--text);
  font-size:14px;display:flex;align-items:center;justify-content:center;
  gap:3px;white-space:nowrap;
}
.dir-planet span[style*="font-size:9px"]{font-size:11px!important;opacity:.85!important}
.dir-planet.is-retro{color:var(--red)}
.dir-planet.is-shadow{color:var(--text3)}
.dir-planet.is-swapped{color:var(--blue)}
.dir-planet-virt{color:var(--bnn-aspects-virt,#a78bfa);font-weight:700}
.bnn-dir-virt-hint{font-size:10px;color:var(--text3);margin-left:4px}
.dir-retro-badge{font-size:12px;color:var(--red);font-weight:700}
.dir-shadow-badge{font-size:11px;color:var(--text3)}
.dir-no-exchange{
  display:flex;align-items:center;justify-content:center;
  color:var(--text3);font-size:11px;font-style:italic;
  padding:20px;text-align:center;line-height:1.5;
  border:1px dashed var(--border2);border-radius:var(--r);
  background:var(--bg3);width:100%;min-height:270px;box-sizing:border-box;
}
/* Digbala bar */
.db-bar-wrap{display:flex;align-items:center;gap:7px;min-width:120px}
.db-bar{height:5px;border-radius:3px;background:var(--bg5);flex:1;overflow:hidden}
.db-fill{height:100%;border-radius:3px;background:var(--accent);transition:width 0.4s ease}

/* ── Fusion row ───────────────────────────────────────────── */
.fusion-bar{
  display:flex;align-items:center;gap:8px;padding:7px 16px;
  border-top:1px solid var(--border2);border-bottom:1px solid var(--border2);
  background:var(--bg3);flex-shrink:0;
}
.fusion-bar-label{
  font-size:10px;font-weight:600;color:var(--accent);
  letter-spacing:0.12em;text-transform:uppercase;flex:1;
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
/* Fusion slots: same sizing treatment as chart-slots */
.chart-scroll-outer .fusion-slots{
  display:flex;flex-shrink:0;flex-wrap:wrap;
  min-height:540px;
  border-bottom:1px solid var(--border2);
  background:var(--bg2);
}
.chart-scroll-outer .fusion-slots .chart-slot{
  flex:1;min-width:360px;display:flex;flex-direction:column;overflow:visible;
  background:var(--bg2);
}
.chart-scroll-outer .fusion-slots .slot-chart-area{
  flex:1;min-height:480px;overflow:visible;
  padding:8px 12px 0;
  display:flex;align-items:flex-start;justify-content:center;
  background:var(--bg2);
}
.fusion-slots .slot-controls{background:var(--bg4)}
.fusion-slots .slot-select.outer-select{
  border-color:rgba(112,150,196,0.5);color:var(--blue);
}
/* Legend strip below slot bar */
.chart-legend{
  padding:5px 16px;font-size:10px;color:var(--accent2);
  font-family:var(--font-mono);background:var(--bg3);
  border:1px solid var(--border2);border-radius:6px;flex-shrink:0;
  letter-spacing:0.03em;font-weight:500;margin-bottom:6px;
}
.chart-legend span{
  font-size:15px;
  line-height:1;
  vertical-align:-2px;
}
.flag-strip-toggle{display:none}
.flag-strip-body{display:block}

/* ── Jamakkol Arc Distance Matrix ──────────────────────────────── */
/* ── JK Udaya info cards ─────────────────────────────── */
.jk-info-card{
  background:var(--bg3);border:1px solid;border-radius:6px;
  padding:5px 10px;min-width:80px;flex:1 1 80px;max-width:160px;
}
.jk-info-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.jk-info-val{font-weight:700;font-size:13px;color:var(--text)}
@media(max-width:768px){
  .jk-info-card{min-width:70px;flex:1 1 70px;padding:4px 8px}
  .jk-info-val{font-size:12px}
}
/* ── JK chart slot areas ─────────────────────────────── */
#jk-main-slots > div,
#jk-div-slots > div{overflow:visible}
.jk-arc-wrap{overflow-x:auto;overflow-y:auto;max-height:70vh;position:relative;border-radius:0 0 6px 6px}
.jk-arc-table{border-collapse:collapse;font-family:var(--font-mono);font-size:12px;white-space:nowrap;width:max-content}
.jk-arc-table th,.jk-arc-table td{padding:5px 9px;border:1px solid var(--border1);text-align:center;vertical-align:middle}
/* Sticky first two columns — use var(--bg2) to match an-body rendered background */
.jk-arc-table th:nth-child(1),.jk-arc-table td:nth-child(1){position:sticky;left:0;z-index:12;background:var(--bg2);min-width:58px;font-weight:700;box-shadow:1px 0 0 var(--border2)}
.jk-arc-table th:nth-child(2),.jk-arc-table td:nth-child(2){position:sticky;left:58px;z-index:12;background:var(--bg2);min-width:82px;border-right:2px solid var(--border2)}
/* Sticky header row */
.jk-arc-table thead th{position:sticky;top:0;z-index:11;background:var(--bg4);font-size:11px;letter-spacing:.04em;color:var(--accent2)}
/* Corner cells — highest z so they cover both row and col sticky */
.jk-arc-table thead th:nth-child(1){z-index:20;left:0;background:var(--bg4)}
.jk-arc-table thead th:nth-child(2){z-index:20;left:58px;background:var(--bg4)}
/* Row entity name column */
.jk-arc-table td.arc-entity{font-weight:700;color:var(--accent);font-size:13px}
.jk-arc-table td.arc-entity.is-jama{color:var(--blue)}
/* Compound degree column */
.jk-arc-table td.arc-compound{color:var(--text3);font-size:12px}
/* Value cells */
.jk-arc-table td.arc-val{font-size:12px;color:var(--text2);letter-spacing:.01em;min-width:74px}
.jk-arc-table td.arc-self{background:rgba(124,58,237,.12);color:var(--text3);font-size:12px}
/* Jama row — sticky cols need explicit bg override */
.jk-arc-table tr.jama-row td{background:rgba(124,58,237,.06)}
.jk-arc-table tr.jama-row td:nth-child(1),.jk-arc-table tr.jama-row td:nth-child(2){background:rgba(35,15,65,.5)}
.jk-arc-table tr.jama-row td.arc-entity{color:var(--blue)}
/* Hover highlight — keep sticky col visible on hover */
.jk-arc-table tbody tr:hover td{background:var(--bg4)!important}
.jk-arc-table tbody tr:hover td:nth-child(1),.jk-arc-table tbody tr:hover td:nth-child(2){background:var(--bg4)!important}

/* ── Graha / Rashi Attribute Tables ────────────────────────────── */
.jk-attr-table{width:100%;border-collapse:collapse;font-size:12px}
.jk-attr-table th,.jk-attr-table td{padding:6px 10px;border:1px solid var(--border1);vertical-align:middle}
.jk-attr-table thead th{background:var(--bg4);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent2);font-weight:700;white-space:nowrap}
/* Planet name cells */
.attr-pl{font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--accent);white-space:nowrap;min-width:36px}
/* Planet-specific colors */
.attr-su{color:var(--accent)}.attr-mo{color:var(--blue)}.attr-ma{color:var(--red)}
.attr-me{color:var(--green)}.attr-ju{color:var(--orange)}.attr-ve{color:var(--blue)}
.attr-sa{color:var(--text3)}.attr-sn{color:var(--text3)}
/* Numeric columns */
.attr-num{font-family:var(--font-mono);font-size:12px;text-align:center;color:var(--text2);white-space:nowrap}
/* Direction cells */
.attr-dir{font-family:var(--font-mono);font-weight:700;font-size:12px;color:#34d399;text-align:center;white-space:nowrap}
/* Looks cells */
.attr-look{font-size:11px;color:var(--text2)}
/* Age cells */
.attr-age{font-family:var(--font-mono);font-size:12px;color:var(--text3);white-space:nowrap}
/* Color swatch */
.attr-color-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle;flex-shrink:0}
/* Rising badges */
.attr-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
.attr-prishto{background:var(--orange2);color:var(--orange);border:1px solid var(--orange)}
.attr-siro{background:var(--blue2);color:var(--blue);border:1px solid var(--blue)}
.attr-siroprishto{background:var(--blue2);color:var(--blue);border:1px solid var(--blue)}
/* Coming soon placeholder */
.an-coming-soon{padding:16px 12px;color:var(--text3);font-size:12px;font-style:italic;text-align:center;border:1px dashed var(--border2);border-radius:6px;margin-top:4px}

/* ── Light theme specific overrides ─────────────────────────── */
[data-theme="light"] .an-section{box-shadow:var(--shadow-sm)}
[data-theme="light"] .an-hdr{background:var(--bg4)}
[data-theme="light"] .an-hdr:hover{background:var(--bg5)}
[data-theme="light"] .an-table th{background:var(--bg4)}
[data-theme="light"] .data-table th{background:var(--bg4)}
[data-theme="light"] .dosha-card.triggered .dosha-card-hdr{background:rgba(168,64,64,0.12);border-color:rgba(168,64,64,0.25);color:var(--red)}
[data-theme="light"] .dosha-card.ok .dosha-card-hdr{background:rgba(58,122,58,0.10);color:var(--green)}
[data-theme="light"] .modal-wrap{background:rgba(0,0,0,0.45)}
[data-theme="light"] .modal{box-shadow:var(--shadow-lg)}
[data-theme="light"] .pref-panel{box-shadow:var(--shadow-lg)}
[data-theme="light"] .city-results{box-shadow:var(--shadow)}
[data-theme="light"] .toast{box-shadow:var(--shadow)}
[data-theme="light"] .dir-box{background:var(--bg4)}
[data-theme="light"] .dir-box.dir-center{background:var(--bg5)}
[data-theme="light"] .panch-card{background:var(--bg4)}
[data-theme="light"] .chart-scroll-outer{background:var(--bg2)}
[data-theme="light"] .slot-controls{background:var(--bg4)}
[data-theme="light"] .bnn-deg-row{background:var(--bg4)}
[data-theme="light"] .dasha-chain-bar{background:var(--accent3);border-bottom-color:rgba(154,108,16,0.2)}
[data-theme="light"] .st-exalted {background:rgba(58,122,58,0.15);color:var(--green);border-color:rgba(58,122,58,0.3)}
[data-theme="light"] .st-debil   {background:rgba(168,64,64,0.12);color:var(--red);border-color:rgba(168,64,64,0.25)}
[data-theme="light"] .st-own     {background:rgba(42,92,168,0.12);color:var(--blue);border-color:rgba(42,92,168,0.25)}
[data-theme="light"] .fn-yb{background:rgba(154,108,16,0.14);color:var(--accent2);border-color:rgba(154,108,16,0.28)}
[data-theme="light"] .fn-b {background:rgba(58,122,58,0.12);color:var(--green);border-color:rgba(58,122,58,0.22)}
[data-theme="light"] .fn-m {background:rgba(168,64,64,0.10);color:var(--red);border-color:rgba(168,64,64,0.22)}
[data-theme="light"] .btn-calc{color:#fffef0}
[data-theme="light"] .btn-primary{color:#fffef0}
[data-theme="light"] .btn-save-pref{color:#fffef0}

/* ── Paper theme structural overrides (mirrors light) ─────── */
[data-theme="paper"] .an-section{box-shadow:var(--shadow-sm)}
[data-theme="paper"] .an-hdr{background:var(--bg4)}
[data-theme="paper"] .an-hdr:hover{background:var(--bg5)}
[data-theme="paper"] .an-table th{background:var(--bg4)}
[data-theme="paper"] .data-table th{background:var(--bg4)}
[data-theme="paper"] .dosha-card.triggered .dosha-card-hdr{background:rgba(138,28,28,0.12);border-color:rgba(138,28,28,0.25);color:var(--red)}
[data-theme="paper"] .dosha-card.ok .dosha-card-hdr{background:rgba(28,82,28,0.10);color:var(--green)}
[data-theme="paper"] .modal-wrap{background:rgba(0,0,0,0.50)}
[data-theme="paper"] .modal{box-shadow:var(--shadow-lg)}
[data-theme="paper"] .pref-panel{box-shadow:var(--shadow-lg)}
[data-theme="paper"] .city-results{box-shadow:var(--shadow)}
[data-theme="paper"] .toast{box-shadow:var(--shadow)}
[data-theme="paper"] .dir-box{background:var(--bg4)}
[data-theme="paper"] .dir-box.dir-center{background:var(--bg5)}
[data-theme="paper"] .panch-card{background:var(--bg4)}
[data-theme="paper"] .chart-scroll-outer{background:var(--bg2)}
[data-theme="paper"] .slot-controls{background:var(--bg4)}
[data-theme="paper"] .bnn-deg-row{background:var(--bg4)}
[data-theme="paper"] .dasha-chain-bar{background:var(--accent3);border-bottom-color:rgba(122,78,4,0.2)}
[data-theme="paper"] .st-exalted {background:rgba(28,82,28,0.15);color:var(--green);border-color:rgba(28,82,28,0.3)}
[data-theme="paper"] .st-debil   {background:rgba(138,28,28,0.12);color:var(--red);border-color:rgba(138,28,28,0.25)}
[data-theme="paper"] .st-own     {background:rgba(26,60,122,0.12);color:var(--blue);border-color:rgba(26,60,122,0.25)}
[data-theme="paper"] .fn-yb{background:rgba(122,78,4,0.14);color:var(--accent2);border-color:rgba(122,78,4,0.28)}
[data-theme="paper"] .fn-b {background:rgba(28,82,28,0.12);color:var(--green);border-color:rgba(28,82,28,0.22)}
[data-theme="paper"] .fn-m {background:rgba(138,28,28,0.10);color:var(--red);border-color:rgba(138,28,28,0.22)}
[data-theme="paper"] .btn-calc{color:#f5ead8}
[data-theme="paper"] .btn-primary{color:#f5ead8}
[data-theme="paper"] .btn-save-pref{color:#f5ead8}

/* ── Bhava Positions ─────────────────────────────────────────────── */
.bhava-select{
  font-size:11px;padding:3px 7px;
  background:var(--bg3);color:var(--text);
  border:1px solid var(--border2);border-radius:4px;
  font-family:var(--font-body);
}
.bhava-select:focus{border-color:var(--accent);outline:none;background:var(--bg4)}
.bhava-select option{background:var(--bg3);color:var(--text)}
.bhava-dms{font-family:var(--font-mono);font-size:11px;color:var(--text);white-space:nowrap}
.bhava-mid{color:var(--text2)!important}
.bhava-end{color:var(--text3)!important}
.bhava-planet{color:var(--accent2);font-weight:600;margin-right:3px}
.bhava-empty{color:var(--text3)}

/* ── BNN / BCP tab chart slots inside analysis-outer ───────────── */
#bnn-chart-slots,#bnn-fusion-slots,#bcp-chart-slots,#bcp-fusion-slots,#kp-chart-slots,#kp-fusion-slots,#kp-combo-fusion-slots,#kpt-chart-slots,#kpt-fusion-slots{
  display:flex;flex-wrap:wrap;flex-shrink:0;
  min-height:440px;border-bottom:1px solid var(--border2);
  background:var(--bg2);
}
#bnn-chart-slots .chart-slot,#bnn-fusion-slots .chart-slot,#bcp-chart-slots .chart-slot,#bcp-fusion-slots .chart-slot,#kp-chart-slots .chart-slot,#kp-fusion-slots .chart-slot,#kp-combo-fusion-slots .chart-slot,#kpt-chart-slots .chart-slot,#kpt-fusion-slots .chart-slot{
  flex:1;min-width:300px;display:flex;flex-direction:column;
  overflow:visible;background:var(--bg2);
  border-right:1px solid var(--border);border-bottom:1px solid var(--border);
}
#bnn-chart-slots .chart-svg,#bnn-fusion-slots .chart-svg,#bcp-chart-slots .chart-svg,#bcp-fusion-slots .chart-svg,#kp-chart-slots .chart-svg,#kp-fusion-slots .chart-svg,#kp-combo-fusion-slots .chart-svg,#kpt-chart-slots .chart-svg,#kpt-fusion-slots .chart-svg{max-width:400px;margin:0 auto}
#kp-combo-fusion-slots .slot-chart-area{
  flex:1;min-height:480px;overflow:visible;
  padding:8px 12px 0;
  display:flex;align-items:flex-start;justify-content:center;
  background:var(--bg2);
}
#kp-bhava-section{margin-top:14px}
#kpt-ruling-planets-section,#kp-nodes-section,#kp-combo-highlight-section,#kp-combo-charts-section,#kp-planet-details-section,#kp-cusp-details-section,#kp-degree-proximity-section{margin-top:14px}

/* ── KP Transit subtab — section spacing + fetch status ─────────── */
#kp-panel-utils .kp-utils-outer{padding:14px 12px 24px}
#kp-utils-horary-table-section{margin-top:14px}
#kp-utils-horary-table-section .kp-utils-horary-sub{margin-top:10px}
#kp-utils-horary-table-section .kp-utils-horary-sub:first-of-type{margin-top:0}
#kp-utils-horary-table-section .kp-utils-horary-sub > .an-hdr{
  font-size:12px;padding:9px 12px;
}
.kp-utils-horary-table{font-size:11px;margin:0}
.kp-utils-horary-table th,.kp-utils-horary-table td{white-space:nowrap;padding:5px 8px}
.kp-utils-horary-table .kp-utils-horary-dms{font-family:var(--font-mono);font-size:10px}
#kp-utils-horary-table-section .kp-table-shell{max-height:min(60vh,520px);overflow:auto}
.kp-utils-horary-filters{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;
  margin:0 0 8px;padding:0;
}
.kp-utils-horary-filter-field{
  display:flex;flex-direction:column;gap:3px;min-width:0;
  font-size:10px;color:var(--text3);font-weight:600;letter-spacing:.02em;
}
.kp-utils-horary-filter-grow{flex:1 1 9em;min-width:8em}
.kp-utils-horary-filter-field input,
.kp-utils-horary-filter-field select{
  font-size:16px;min-height:34px;padding:4px 8px;
  border:1px solid var(--border2);border-radius:6px;
  background:var(--bg2);color:var(--text1);max-width:100%;
}
.kp-utils-horary-filter-field input[type="number"]{width:5.5em}
.kp-utils-horary-filter-field select{min-width:4.5em}
.kp-utils-horary-filter-actions{display:flex;gap:6px;align-items:center;padding-bottom:1px}
.kp-utils-horary-filter-actions .btn-srch-go{min-height:34px;padding:4px 12px;font-size:12px}
.kp-utils-horary-clear{
  min-height:34px;padding:4px 10px;font-size:12px;cursor:pointer;
  border:1px solid var(--border2);border-radius:6px;
  background:var(--bg3);color:var(--text2);
}
.kp-utils-horary-table tbody tr.kp-utils-horary-row-jump td{
  background:color-mix(in srgb, var(--bg2) 55%, var(--accent) 28%);
}
#kp-panel-btr .kp-btr-outer{padding:14px 12px 24px}
.kp-btr-dna-body{padding:10px 12px 14px}
.kp-btr-dna-dual{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;
}
.kp-btr-dna-block-body{padding:10px}
.kp-btr-dna-dual .kp-btr-verdict{margin:0 0 10px}
.kp-btr-dna-cusps{
  display:flex;flex-wrap:nowrap;gap:8px;margin:0 0 10px;padding:8px 0 2px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.kp-btr-dna-cusp-house{
  flex:0 0 auto;display:flex;align-items:center;gap:6px;
  padding:5px 8px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg3);min-width:0;
}
.kp-btr-dna-cusp-hlab{
  font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text3);min-width:1.6em;
}
.kp-btr-dna-cusp-lords{display:flex;align-items:center;gap:6px}
.kp-btr-dna-cusp-field{display:inline-flex;align-items:center;gap:3px}
.kp-btr-dna-cusp-flab{
  font-size:9px;font-weight:700;color:var(--text3);letter-spacing:.03em;
}
.kp-btr-dna-cusp-pill{
  display:inline-block;min-width:1.55em;padding:2px 7px;border-radius:999px;
  font-size:10px;font-weight:700;font-family:var(--font-mono);line-height:1.3;
  text-align:center;color:var(--text);
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent) 12%);
  border:1px solid color-mix(in srgb, var(--border2) 60%, var(--accent) 30%);
  white-space:nowrap;
}
.kp-btr-dna-cusp-pill-empty{opacity:.55;font-weight:500;color:var(--text3)}
.kp-btr-dna-cusp-pill.kp-rp-planet-match{color:var(--flag-sandhi)}
.kp-btr-dna-dual .kp-btr-linkage-card{background:var(--bg3)}
.kp-btr-verdict{
  margin:0 0 12px;padding:10px 12px;border-radius:8px;border:1px solid var(--border2);
  font-size:13px;font-weight:700;letter-spacing:.02em;
  background:var(--bg3);color:var(--text2);
}
.kp-btr-verdict-ok{
  background:color-mix(in srgb, var(--bg2) 70%, var(--green) 14%);
  border-color:color-mix(in srgb, var(--border2) 55%, var(--green) 45%);
  color:var(--green);
}
.kp-btr-verdict-no{
  background:color-mix(in srgb, var(--bg2) 78%, var(--bg4) 22%);
  color:var(--text2);
}
.kp-btr-verdict-empty{font-weight:600;color:var(--text3)}
.kp-btr-linkage-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;
}
.kp-btr-linkage-card{
  border:1px solid var(--border);border-radius:8px;background:var(--bg2);overflow:hidden;min-width:0;
}
.kp-btr-linkage-hdr{
  padding:8px 10px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:color-mix(in srgb, var(--bg4) 65%, var(--bg3) 35%);border-bottom:1px solid var(--border);
  color:var(--text);
}
.kp-btr-linkage-pair{
  padding:8px 10px;font-size:12px;font-family:var(--font-mono);line-height:1.45;
  border-bottom:1px solid var(--border);background:var(--bg3);
}
.kp-btr-role{color:var(--text3);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.04em;margin-right:2px}
.kp-btr-pair-sep{margin:0 6px;color:var(--text3)}
.kp-btr-linkage-list{padding:4px 0}
.kp-btr-cond{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:7px 10px;border-bottom:1px solid var(--border);font-size:12px;
}
.kp-btr-cond:last-child{border-bottom:none}
.kp-btr-cond-label{color:var(--text2);min-width:0}
.kp-btr-cond-val{flex:0 0 auto;font-weight:700;font-family:var(--font-mono);color:var(--text3)}
.kp-btr-cond-yes .kp-btr-cond-label{color:var(--text);font-weight:600}
.kp-btr-cond-yes .kp-btr-cond-val{color:var(--green)}
.kp-btr-cond-strong{
  background:color-mix(in srgb, var(--bg2) 72%, var(--green) 12%);
}
.kp-btr-cond-strong .kp-btr-cond-label{font-weight:700;color:var(--text)}
.kp-btr-cond-strong .kp-btr-cond-val{color:var(--green)}
.kp-btr-cond-strong-chip{
  display:inline-block;margin-left:6px;padding:1px 5px;border-radius:3px;
  font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:color-mix(in srgb, var(--green) 22%, var(--bg2));
  color:var(--green);vertical-align:middle;
}
.kp-btr-dna-ext-stack{display:flex;flex-direction:column;gap:12px}
.kp-btr-dna-ext-block{min-width:0}
.kp-btr-dna-ext-subhdr{
  font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text);margin:0 0 4px;
}
.kp-btr-dna-ext-subnote{margin:0 0 8px;font-size:11px;line-height:1.4}
.kp-btr-dna-ext-cement-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:start;
}
.kp-btr-dna-ext-cement-grid .kp-btr-linkage-card{background:var(--bg3)}
.kp-btr-dna-ext-cement-grid .kp-btr-linkage-card.kp-btr-dna-ext-hit-strong{
  border-color:color-mix(in srgb, var(--border2) 50%, var(--green) 50%);
}
.kp-btr-dna-ext-moon-strip{
  padding:8px 10px;font-size:12px;font-weight:700;font-family:var(--font-mono);
  border-bottom:1px solid var(--border);background:var(--bg3);color:var(--text3);
}
.kp-btr-dna-ext-det{font-weight:500;color:var(--text3);font-size:11px}
.kp-btr-adj-body{padding:10px 12px 14px}
.kp-btr-adj-moment-row{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;margin-bottom:10px;
}
.kp-btr-adj-field{display:flex;flex-direction:column;gap:3px;min-width:0;flex:0 0 auto}
.kp-btr-adj-lbl{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em}
.kp-btr-adj-field .bhava-select{min-width:9.5em;max-width:12em}
.kp-btr-adj-place-field{max-width:9em}
.kp-btr-adj-place{
  display:block;padding:6px 8px;border-radius:6px;border:1px solid var(--border);
  background:var(--bg3);font-size:12px;font-weight:600;color:var(--text2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:9em;
}
.kp-btr-adj-reset{flex:0 0 auto;margin-left:auto}
.kp-btr-adj-apply{flex:0 0 auto;min-width:5.5em;margin-left:8px}
.kp-btr-adj-apply:disabled{opacity:.45;cursor:default}
.kp-btr-adj-nudges .kp-btr-adj-apply{align-self:center}
.kp-btr-adj-set{flex:0 0 auto}
.kp-btr-adj-meta-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 10px;
}
.kp-btr-adj-delta{
  font-family:var(--font-mono);font-size:12px;font-weight:700;padding:5px 10px;border-radius:6px;
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);white-space:nowrap;
}
.kp-btr-adj-working{
  font-family:var(--font-mono);font-size:12px;font-weight:700;padding:5px 10px;border-radius:6px;
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent) 12%);
  border:1px solid color-mix(in srgb, var(--border2) 55%, var(--accent) 35%);
  color:var(--text);white-space:nowrap;
}
.kp-btr-adj-working-empty{opacity:.55;font-weight:600;color:var(--text3)}
.kp-btr-adj-delta-zero{color:var(--text3);font-weight:600}
.kp-btr-adj-delta-fwd{
  color:var(--green);
  background:color-mix(in srgb, var(--bg2) 78%, var(--green) 12%);
  border-color:color-mix(in srgb, var(--border2) 60%, var(--green) 40%);
}
.kp-btr-adj-delta-back{
  color:var(--red);
  background:color-mix(in srgb, var(--bg2) 78%, var(--red) 12%);
  border-color:color-mix(in srgb, var(--border2) 60%, var(--red) 40%);
}
.kp-btr-adj-status{margin:0;min-height:1.2em;flex:1 1 auto}
.kp-btr-adj-status-ok{color:var(--green);font-weight:600}
.kp-btr-adj-status-error{color:var(--red);font-weight:600}
.kp-btr-adj-status-loading{color:var(--text2)}
.kp-btr-adj-nudges{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;
}
.kp-btr-nudge{
  flex:0 0 auto;min-width:2.6em;padding:5px 7px;border-radius:6px;
  border:1px solid var(--border2);background:var(--bg3);color:var(--text2);
  font-size:11px;font-weight:700;font-family:var(--font-mono);cursor:pointer;
  line-height:1.2;
}
.kp-btr-nudge:hover{border-color:var(--accent);color:var(--accent);background:var(--bg2)}
.kp-btr-nudge-sep{
  flex:0 0 auto;width:1px;height:22px;margin:0 4px;background:var(--border2);
}
.kp-btr-adj-tables{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;
}
.kp-btr-adj-block{
  border:1px solid var(--border);border-radius:8px;background:var(--bg2);overflow:hidden;min-width:0;
}
.kp-btr-adj-block-adjusted{
  background:color-mix(in srgb, var(--bg2) 78%, #5b8def 10%);
  border-color:color-mix(in srgb, var(--border2) 65%, #5b8def 35%);
}
.kp-btr-adj-block-hdr{
  padding:7px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:color-mix(in srgb, var(--bg4) 60%, var(--bg3) 40%);border-bottom:1px solid var(--border);
}
.kp-btr-adj-block-adjusted .kp-btr-adj-block-hdr{
  background:color-mix(in srgb, var(--bg3) 70%, #5b8def 14%);
}
.kp-btr-adj-table{margin:0;font-size:11px}
.kp-btr-adj-table th,.kp-btr-adj-table td{
  padding:3px 4px;white-space:nowrap;background:transparent;text-align:center;vertical-align:middle;
}
.kp-btr-adj-table th:first-child,.kp-btr-adj-table td:first-child{
  position:sticky;left:0;z-index:2;background:var(--bg2);text-align:left;font-weight:600;
}
.kp-btr-adj-block-adjusted .kp-btr-adj-table th:first-child,
.kp-btr-adj-block-adjusted .kp-btr-adj-table td:first-child{
  background:color-mix(in srgb, var(--bg2) 78%, #5b8def 10%);
}
.kp-btr-adj-table thead th:first-child{z-index:3;background:var(--bg3)}
.kp-btr-adj-block-adjusted .kp-btr-adj-table thead th:first-child{
  background:color-mix(in srgb, var(--bg3) 70%, #5b8def 14%);
}
.kp-btr-adj-pill{
  display:inline-block;min-width:1.55em;padding:2px 7px;border-radius:999px;
  font-size:10px;font-weight:600;font-family:var(--font-mono);line-height:1.3;
  text-align:center;color:var(--text2);
  background:transparent;border:1px solid transparent;
  white-space:nowrap;
}
.kp-btr-adj-pill-rl{min-width:0;padding:2px 8px}
.kp-btr-adj-pill-empty{opacity:.55;font-weight:500}
/* Color only when Original ≠ Adjusted (diff) — distinct left vs right */
.kp-btr-adj-block:not(.kp-btr-adj-block-adjusted) .kp-btr-adj-pill-diff{
  background:color-mix(in srgb, var(--bg2) 62%, #c4a574 28%);
  border-color:color-mix(in srgb, var(--border2) 55%, #c4a574 40%);
  color:var(--text);font-weight:700;
}
.kp-btr-adj-block-adjusted .kp-btr-adj-pill-diff{
  background:color-mix(in srgb, var(--bg2) 58%, #5b8def 28%);
  border-color:color-mix(in srgb, var(--border2) 50%, #5b8def 40%);
  color:var(--text);font-weight:700;
}
.kp-btr-adj-pill.kp-rp-planet-match{color:var(--flag-sandhi)}
.kp-btr-adj-pill-diff.kp-rp-planet-match{color:var(--flag-sandhi)}
/* Adjust Birth Time sub-sections: Cusps / Planets / Significator */
.kp-btr-subsec{
  margin-top:16px;padding:12px 12px 14px;
  border:1px solid var(--border2);border-radius:10px;
  background:color-mix(in srgb, var(--bg2) 92%, var(--bg4) 8%);
}
.kp-btr-adj-body > .kp-btr-subsec:first-child{margin-top:0}
.kp-btr-subsec + .kp-btr-subsec{margin-top:18px}
.kp-btr-subsec-hdr{
  display:flex;align-items:center;gap:10px;
  margin:0 0 12px;padding:0 0 10px;
  font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);border-bottom:1px solid var(--border2);
}
.kp-btr-subsec-hdr::before{
  content:"";flex:0 0 4px;align-self:stretch;border-radius:2px;
  background:color-mix(in srgb, var(--accent) 70%, var(--border2));
  min-height:1em;
}
.kp-btr-sig-cols{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;
}
.kp-btr-sig-body{padding:10px;max-height:min(70vh,720px);overflow:auto;-webkit-overflow-scrolling:touch}
.kp-btr-sig-grid{margin-top:0}
.kp-btr-sig-empty{margin:0;padding:8px 2px}
.kp-btr-sig-card .kp-combo-sig-card-hdr{padding:6px 8px}
.kp-btr-sig-card .kp-combo-sig-card-table th{width:4.2em}
.kp-btr-sig-cell{line-height:1.7}
.kp-btr-sig-cell .kp-btr-adj-pill{margin:1px 2px 1px 0;vertical-align:middle}
/* Adjust Birth Time (Moon & Ascendant Daily Transit) */
.kp-btr-ct-body{display:flex;flex-direction:column;gap:10px;min-height:0}
.kp-btr-ct-hdr{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
}
.kp-btr-ct-hdr-title{flex:1 1 12em;min-width:0}
.kp-btr-ct-help-btn{
  flex:0 0 auto;min-height:36px;padding:8px 14px;
  font-size:12px;font-weight:700;letter-spacing:.04em;
  border:1px solid var(--border2);border-radius:8px;
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent) 18%);
  color:var(--text);cursor:pointer;
}
.kp-btr-ct-help-btn:hover{
  border-color:color-mix(in srgb, var(--border2) 40%, var(--accent) 60%);
}
.kp-btr-ct-help-title-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;
}
.kp-btr-ct-help-modal{
  max-height:min(85dvh,640px);display:flex;flex-direction:column;padding:20px 18px;
  padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));
}
.kp-btr-ct-help-body{
  flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;
}
.kp-btr-ct-help-intro{margin:0 0 12px;line-height:1.45}
.kp-btr-ct-help-shell{margin:0}
.kp-btr-ct-help-table{width:100%;font-size:12px}
.kp-btr-ct-help-table th,.kp-btr-ct-help-table td{
  padding:8px 10px;vertical-align:top;text-align:left;
}
.kp-btr-ct-help-table th:last-child,.kp-btr-ct-help-table td:last-child{white-space:normal}
.kp-btr-ct-show{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  padding:8px 10px;
  border:1px solid var(--border2);border-radius:8px;
  background:color-mix(in srgb, var(--bg2) 88%, var(--bg4) 12%);
}
.kp-btr-ct-show-lab{
  font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);
}
.kp-btr-ct-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding:2px 0 6px;
}
.kp-btr-ct-batch-lab{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;color:var(--text2);
}
.kp-btr-ct-batch{
  min-height:36px;padding:6px 10px;font-size:13px;font-weight:700;
  border:1px solid var(--border2);border-radius:8px;
  background:var(--bg2);color:var(--text);
}
.kp-btr-ct-time-lab{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:600;color:var(--text2);
}
.kp-btr-ct-time-input{
  width:7.5em;min-height:36px;padding:6px 10px;font-size:16px;font-weight:700;
  font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace;
  border:1px solid var(--border2);border-radius:8px;
  background:var(--bg2);color:var(--text);
}
.kp-btr-ct-time-input:focus{
  outline:none;border-color:color-mix(in srgb, var(--border2) 30%, var(--accent) 70%);
}
.kp-btr-ct-filter{
  display:flex;flex-direction:column;align-items:stretch;gap:8px;
  padding:10px 12px;margin:0 0 4px;
  border:1px solid var(--border2);border-radius:8px;
  background:color-mix(in srgb, var(--bg2) 88%, var(--bg4) 12%);
}
.kp-btr-ct-filter-lab{
  font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);
}
.kp-btr-ct-filter-hint{
  font-size:12px;color:var(--text2);line-height:1.35;margin-top:-4px;
}
.kp-btr-ct-filter-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.kp-btr-ct-filter-sub{
  font-size:11px;font-weight:700;color:var(--text3);min-width:4.2em;
}
.kp-btr-ct-chk{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;font-weight:600;color:var(--text);cursor:pointer;
  min-height:32px;padding:2px 4px;
}
.kp-btr-ct-chk input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.kp-btr-ct-planets{display:inline-flex;flex-wrap:wrap;gap:4px}
.kp-btr-ct-pl{
  min-width:2.2em;min-height:32px;padding:4px 8px;
  font-size:12px;font-weight:700;border-radius:6px;cursor:pointer;
  border:1px solid var(--border2);background:var(--bg2);color:var(--text);
}
.kp-btr-ct-pl.is-on{
  background:color-mix(in srgb, var(--bg2) 40%, var(--accent) 45%);
  border-color:color-mix(in srgb, var(--border2) 30%, var(--accent) 70%);
  color:var(--text);font-weight:800;
}
.kp-btr-ct-pl.kp-rp-planet-match{color:var(--flag-sandhi)}
.kp-btr-ct-pl.is-on.kp-rp-planet-match{color:var(--flag-sandhi)}
.kp-btr-ct-btn-clear{
  min-height:32px;padding:4px 10px;font-size:11px;font-weight:700;
  border:1px solid var(--border2);border-radius:6px;
  background:transparent;color:var(--text2);cursor:pointer;
}
.kp-btr-ct-btn-clear:hover{border-color:var(--accent);color:var(--text)}
.kp-btr-ct-table tbody tr.kp-btr-ct-row-dim{opacity:.55}
.kp-btr-ct-btn{
  min-height:40px;min-width:5.5em;padding:10px 16px;
  font-size:13px;font-weight:700;letter-spacing:.04em;
  border:1px solid var(--border2);border-radius:8px;
  background:color-mix(in srgb, var(--bg2) 80%, var(--bg4) 20%);
  color:var(--text);cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.kp-btr-ct-btn:hover:not(:disabled){
  border-color:color-mix(in srgb, var(--border2) 40%, var(--accent) 60%);
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent) 12%);
}
.kp-btr-ct-btn:disabled{opacity:.45;cursor:not-allowed}
.kp-btr-ct-btn-load{
  border-color:color-mix(in srgb, var(--border2) 35%, var(--accent) 65%);
  background:color-mix(in srgb, var(--bg2) 55%, var(--accent) 22%);
  font-weight:800;
}
.kp-btr-ct-btn-primary{
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border-color:transparent;
  color:#fffef0 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
  white-space:normal;text-align:center;line-height:1.25;max-width:14rem;padding:6px 10px;
}
.kp-btr-ct-btn-primary:hover:not(:disabled){
  opacity:.95;background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fffef0 !important;
}
.kp-btr-ct-btn-primary:disabled{color:#fffef0 !important;opacity:.5}
.kp-btr-ct-status{margin:0;flex:1 1 12em;min-width:0}
.kp-btr-ct-status-loading{opacity:.85}
.kp-btr-ct-status-error{color:var(--danger,#c44)}
.kp-btr-ct-status-ok{color:var(--text)}
.kp-btr-ct-idle{padding:14px 8px;line-height:1.5}
.kp-btr-ct-table tbody tr.kp-btr-ct-row{cursor:pointer}
.kp-btr-ct-table tbody tr.kp-btr-ct-row:hover{
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent) 12%);
}
.kp-btr-ct-table tbody tr.kp-btr-ct-row-birth{
  box-shadow:inset 3px 0 0 color-mix(in srgb, var(--accent) 70%, transparent);
}
.kp-btr-ct-table tbody tr.kp-btr-ct-row-selected,
.kp-btr-ct-table tbody tr.kp-btr-ct-row-birth.kp-btr-ct-row-selected{
  background:color-mix(in srgb, var(--bg2) 35%, var(--accent) 48%) !important;
  outline:2px solid color-mix(in srgb, var(--accent) 80%, var(--border2));
  outline-offset:-2px;
  font-weight:700;
}
.kp-btr-ct-table tbody tr.kp-btr-ct-row-selected td{
  background:transparent;
}
.kp-btr-ct-table tbody tr.kp-btr-ct-row-range:not(.kp-btr-ct-row-selected){
  background:color-mix(in srgb, var(--bg2) 55%, #2dd4bf 22%);
}
.kp-btr-ct-table tbody tr.kp-btr-ct-row-birth.kp-btr-ct-row-range:not(.kp-btr-ct-row-selected){
  background:color-mix(in srgb, var(--bg2) 50%, #2dd4bf 26%);
}
.kp-btr-ct-time,.kp-btr-ct-deg{white-space:nowrap;font-variant-numeric:tabular-nums}
.kp-btr-ct-deg{font-family:ui-monospace,Consolas,monospace;font-size:12px}
@media (max-width:900px){
  .kp-btr-adj-tables{grid-template-columns:1fr}
  .kp-btr-sig-cols{grid-template-columns:1fr}
  .kp-btr-adj-reset{margin-left:0}
  .kp-btr-adj-moment-row{align-items:stretch}
  .kp-btr-adj-set,.kp-btr-adj-reset{width:100%}
  .kp-btr-adj-nudges .kp-btr-adj-apply{width:100%;margin-left:0;margin-top:4px}
}
@media (max-width:900px){
  .kp-btr-dna-dual{grid-template-columns:1fr}
  .kp-btr-linkage-grid{grid-template-columns:1fr}
  .kp-btr-dna-ext-cement-grid{grid-template-columns:1fr}
}
#kp-panel-utils .srch-section{margin-top:0}
#kp-panel-utils .srch-section + .srch-section{margin-top:14px}
.kp-utils-sss-row{display:flex;flex-direction:column;gap:12px}
.kp-utils-sss-modes{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:13px}
.kp-utils-sss-modes label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.kp-utils-sss-inputs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}
.kp-utils-sss-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.kp-utils-sss-input{
  min-width:0;width:min(100%,200px);padding:8px 10px;font-size:16px;
  border:1px solid var(--border2);border-radius:6px;background:var(--bg2);color:var(--text);
}
.kp-utils-sss-input:disabled{opacity:.45}
.kp-utils-sss-degree-row{display:flex;align-items:center;gap:8px}
.kp-utils-sss-valid{color:#22c55e;font-size:18px;font-weight:700;line-height:1}
.kp-utils-sss-meta{margin-top:10px;font-size:12px;color:var(--text2)}
.kp-utils-sss-results{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;
}
.kp-utils-sss-result{
  min-width:0;border:1px solid var(--border2);border-radius:8px;overflow:hidden;background:var(--bg3);
}
.kp-utils-sss-result-hdr{
  padding:8px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--text2);background:color-mix(in srgb, var(--bg2) 88%, var(--accent) 12%);
  border-bottom:1px solid var(--border2);
}
.kp-utils-sss-result-body{
  padding:14px 12px;font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;
  letter-spacing:.04em;word-break:break-word;
}
.kp-utils-sss-error{margin-top:10px;color:var(--danger,#e11d48)}
@media (max-width:640px){
  .kp-utils-sss-results{grid-template-columns:1fr}
  .kp-utils-sss-input{width:100%}
  .kp-utils-sss-inputs{align-items:stretch}
  #kp-utils-sss-btn{align-self:flex-start}
}

/* ── KP Time/Instant subtab ─────────────────────────────────────── */
#kp-panel-time-instant .kp-time-instant-outer{padding:14px 12px 24px}
#kp-panel-time-instant .an-section{margin-top:0}
#kp-panel-time-instant .an-section + .an-section{margin-top:14px}
.kp-ti-methods-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.kp-ti-method-block{
  min-width:0;padding:12px;border:1px solid var(--border2);border-radius:6px;background:var(--bg3);
}
.kp-ti-method-block .kp-combo-element-subhdr{margin-bottom:8px}
.kp-ti-method-subsection{margin-top:12px;padding-top:12px;border-top:1px solid var(--border2)}
.kp-ti-ssbl-noted{display:flex;flex-direction:column;gap:2px}
.kp-ti-ssbl-chips{margin-top:4px}
.kp-ti-rp-chip-noted{border-color:var(--accent);background:rgba(59,130,246,.08);font-weight:700}
.kp-ti-rp-chip-match{border-color:#22c55e;background:rgba(34,197,94,.12)}
@media (max-width:640px){.kp-ti-methods-grid{grid-template-columns:1fr}}
.kp-ti-calc-stack{display:flex;flex-direction:column;gap:12px}
.kp-ti-calc-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.kp-ti-calc-row{display:flex;flex-direction:column;gap:2px;min-width:0}
.kp-ti-result-row{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  padding-top:10px;border-top:1px solid var(--border2);
}
.kp-ti-lbl{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}
.kp-ti-val{font-size:18px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.kp-ti-val-sm{font-size:13px;font-weight:600}
.kp-ti-result{
  font-size:20px;font-weight:800;letter-spacing:.08em;padding:6px 16px;border-radius:6px;
  border:2px solid transparent;display:inline-block;text-align:center;
}
.kp-ti-result-sm{font-size:15px;padding:4px 12px;min-width:52px}
.kp-ti-result-yes{color:#22c55e;border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.1)}
.kp-ti-result-late{color:#f59e0b;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.1)}
.kp-ti-result-no{color:#ef4444;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.1)}
.kp-ti-legend{margin:10px 0 0;font-size:10px;line-height:1.45;color:var(--text3)}
.kp-ti-gulbarga-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-bottom:10px}
@media (max-width:400px){.kp-ti-gulbarga-grid{grid-template-columns:1fr}}
.kp-ti-gulbarga-hdr{font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.kp-ti-lord-row{display:flex;flex-direction:column;gap:1px;margin-bottom:5px}
.kp-ti-lord-match .kp-ti-val-sm{color:var(--accent)}
.kp-ti-gulbarga-rps{margin:10px 0;padding-top:10px;border-top:1px solid var(--border2)}
.kp-ti-rp-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.kp-ti-rp-chip{
  font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;
  background:var(--bg2);border:1px solid var(--border2);color:var(--text);
}
.kp-ti-rp-chip-empty{color:var(--text3)}
.kp-ti-rules-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin-top:10px;padding-top:10px;border-top:1px solid var(--border2);
}
@media (max-width:400px){.kp-ti-rules-grid{grid-template-columns:1fr}}
.kp-ti-rule-card{
  padding:8px 10px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);min-width:0;
}
.kp-ti-rule-hdr{font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.kp-ti-rule-result-row{margin-bottom:4px}
.kp-ti-rule-note{margin:0;font-size:10px;line-height:1.4;color:var(--text3)}
.kp-ti-final-answer{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  margin-top:10px;padding-top:10px;border-top:1px solid var(--border2);
}
.kp-ti-theory-block + .kp-ti-theory-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--border2)}
.kp-ti-placeholder{margin:0;font-size:11px;line-height:1.55;color:var(--text3);font-style:italic}
.kp-ti-controls-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.kp-ti-ctrl-row{display:flex;flex-direction:column;gap:5px;min-width:0}
.kp-ti-ctrl-lbl{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}
.kp-ti-ctrl-radios{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px}
.kp-ti-rp-count-desc{font-size:10px;color:var(--text2);line-height:1.4;font-style:italic;margin-top:2px}
.kp-ti-ctrl-radios label,.kp-ti-ctrl-check{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:12px;line-height:1.35}
.kp-ti-ctrl-inline{font-size:12px;font-weight:600;color:var(--text2)}
.kp-ti-num-input{
  width:72px;max-width:100%;font-size:16px;padding:5px 8px;border:1px solid var(--border2);
  border-radius:4px;background:var(--bg2);color:var(--text);font-variant-numeric:tabular-nums;
}
.kp-ti-hm-nums{display:flex;flex-wrap:wrap;gap:8px 12px}
.kp-ti-hm-num-lbl{display:flex;flex-direction:column;gap:3px;font-size:10px;font-weight:600;color:var(--text2)}
.kp-ti-hm-num{width:64px}
.kp-ti-hm-num-invalid{border-color:#ef4444!important;box-shadow:0 0 0 1px rgba(239,68,68,.35)}
.kp-ti-option-result{margin-top:4px;padding-top:10px;border-top:1px solid var(--border2)}
.kp-ti-opt-rps,.kp-ti-opt-contrib{margin-bottom:10px}
.kp-ti-opt-contrib-row{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-size:11px;
  padding:4px 0;border-bottom:1px solid var(--border2);
}
.kp-ti-opt-contrib-row:last-child{border-bottom:none}
.kp-ti-opt-planet{font-weight:700;min-width:28px}
.kp-ti-opt-nums{color:var(--text2);font-family:var(--font-mono)}
.kp-ti-opt-subtotal{font-weight:600;color:var(--accent)}
.kp-ti-opt-steps{margin:8px 0;font-size:11px}
.kp-ti-opt-step{color:var(--text2);font-family:var(--font-mono);line-height:1.5}
.kp-ti-opt-zero-note{font-size:10px;color:var(--text3);font-style:italic}
.kp-ti-result-option{color:var(--accent);border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.1)}
.kp-ti-rp-chip-excl{opacity:.55;text-decoration:line-through;font-size:9px}
.kp-ti-rp-chips-excl{margin-top:4px}
.kp-ti-hm-options-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:10px;
}
.kp-ti-hm-option-card{
  padding:8px 10px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);min-width:0;
}
.kp-ti-hm-option-card.kp-ti-hm-row-winner{border-color:var(--accent);background:rgba(59,130,246,.08)}
.kp-ti-hm-option-hdr{font-size:10px;font-weight:700;color:var(--text2);margin-bottom:6px}
.kp-ti-hm-lords{display:flex;flex-direction:column;gap:3px;font-size:11px;margin-bottom:6px}
.kp-ti-hm-lord.kp-ti-lord-match .kp-ti-val-sm,.kp-ti-hm-lord.kp-ti-lord-match{color:var(--accent);font-weight:700}
.kp-ti-hm-score{font-size:10px;color:var(--text2)}
@media (max-width:480px){.kp-ti-hm-nums{flex-direction:column}}
/* ── KP Time/Instant — Change of Time ─────────────────────────── */
.kp-ti-cot-hint{font-size:10px;font-weight:400;color:var(--text3);margin-left:8px}
.kp-ti-cot-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.kp-ti-cot-range-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.kp-ti-cot-range-lbl{font-size:11px;font-weight:600;color:var(--text2)}
.kp-ti-cot-date-input{
  font-size:16px;padding:5px 8px;border:1px solid var(--border2);border-radius:4px;
  background:var(--bg2);color:var(--text);max-width:100%;flex:1 1 140px;
}
.kp-ti-cot-time-input{
  font-size:16px;padding:5px 8px;border:1px solid var(--border2);border-radius:4px;
  background:var(--bg2);color:var(--text);max-width:100%;
  flex:0 0 auto;min-width:158px;width:158px;
}
.kp-ti-cot-moment-panel{
  padding:8px 10px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);
}
.kp-ti-cot-moment-title{font-size:11px;font-weight:700;color:var(--accent);margin-bottom:4px}
.kp-ti-cot-moment-line{font-size:11px;line-height:1.45;color:var(--text2);word-break:break-word}
.kp-ti-cot-range-hint{font-size:10px;color:var(--text3);font-style:italic;margin-top:-4px}
.kp-ti-cot-detail-nl{font-size:10px;color:var(--text2);font-weight:600}
.kp-ti-cot-chip{
  font-size:11px;padding:3px 8px;border:1px solid var(--border2);border-radius:4px;
  background:var(--bg2);color:var(--text2);font-variant-numeric:tabular-nums;
}
.kp-ti-cot-breadcrumb{display:flex;flex-wrap:wrap;gap:5px;min-height:0}
.kp-ti-cot-crumb{
  font-size:10px;padding:2px 7px;border-radius:3px;background:rgba(59,130,246,.1);
  color:var(--accent);border:1px solid rgba(59,130,246,.25);
}
.kp-ti-cot-level-tabs{
  display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  padding-bottom:2px;
}
.kp-ti-cot-level-tabs::-webkit-scrollbar{display:none}
.kp-ti-cot-tab{
  flex:0 0 auto;font-size:11px;font-weight:600;padding:5px 10px;border:1px solid var(--border2);
  border-radius:4px;background:var(--bg2);color:var(--text2);cursor:pointer;
}
.kp-ti-cot-tab.active{border-color:var(--accent);color:var(--accent);background:rgba(59,130,246,.08)}
.kp-ti-cot-select-row{display:flex;flex-direction:column;gap:4px}
.kp-ti-cot-select{
  font-size:16px;padding:6px 8px;border:1px solid var(--border2);border-radius:4px;
  background:var(--bg2);color:var(--text);max-width:100%;
}
.kp-ti-cot-detail{
  margin-bottom:10px;padding:10px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);
}
.kp-ti-cot-detail-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;line-height:1.45}
.kp-ti-cot-detail-lbl{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase}
.kp-ti-cot-detail-val{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.kp-ti-cot-detail-anchor{color:var(--accent)}
.kp-ti-cot-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
@media (max-width:640px){.kp-ti-cot-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:400px){.kp-ti-cot-grid{grid-template-columns:1fr}}
.kp-ti-cot-card{
  padding:8px 10px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);
  cursor:pointer;min-width:0;transition:border-color .15s,background .15s;
}
.kp-ti-cot-card:hover{border-color:var(--accent)}
.kp-ti-cot-card.active{border-color:var(--accent);background:rgba(59,130,246,.08)}
.kp-ti-cot-card.anchor{border-color:rgba(34,197,94,.5);box-shadow:inset 0 0 0 1px rgba(34,197,94,.2)}
.kp-ti-cot-card-hdr{font-size:12px;font-weight:700;color:var(--text);margin-bottom:4px;word-break:break-word}
.kp-ti-cot-card-hdr .kp-rp-planet-match{color:var(--flag-sandhi);font-weight:700}
.kp-ti-cot-crumb .kp-rp-planet-match{color:var(--flag-sandhi);font-weight:700}
.kp-ti-cot-detail-val .kp-rp-planet-match{color:var(--flag-sandhi);font-weight:700}
.kp-ti-cot-card-date{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;margin-bottom:2px}
.kp-ti-cot-card-time{font-size:11px;color:var(--text2);font-variant-numeric:tabular-nums}
.kp-ti-cot-nak-dist{
  display:flex;flex-direction:column;gap:10px;
}
.kp-ti-cot-nak-dist-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px;
}
.kp-ti-cot-nak-box{
  min-width:0;border:1px solid var(--border2);border-radius:6px;background:var(--bg2);
  overflow:hidden;font-size:10px;line-height:1.35;
}
.kp-ti-cot-nak-box-hdr{
  display:flex;justify-content:space-between;align-items:baseline;gap:6px;
  padding:6px 8px;font-weight:700;font-size:11px;color:var(--text);
  background:color-mix(in srgb, var(--bg3) 85%, var(--accent) 15%);
  border-bottom:1px solid var(--border2);
}
.kp-ti-cot-nak-box-hdr span:last-child{font-weight:600;color:var(--text2);font-size:10px;letter-spacing:.02em}
.kp-ti-cot-nak-box-sun{
  padding:3px 8px 4px;font-size:10px;font-weight:600;color:var(--accent);
  border-bottom:1px solid var(--border2);background:var(--bg3);
}
.kp-ti-cot-nak-dist-hint{font-size:10px;color:var(--text3);font-style:italic;margin-top:-4px}
.kp-ti-cot-nak-box-list{list-style:none;margin:0;padding:4px 0 6px;font-variant-numeric:tabular-nums}
.kp-ti-cot-nak-box-list li{
  display:flex;justify-content:space-between;gap:6px;padding:2px 8px;color:var(--text2);
}
.kp-ti-cot-nak-box-list li span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.kp-ti-cot-nak-box-list li span:last-child{flex-shrink:0;color:var(--text3)}
@media (max-width:640px){
  .kp-ti-cot-nak-dist-grid{
    display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;
  }
  .kp-ti-cot-nak-box{flex:0 0 auto;width:168px}
}

.kp-ti-cot-rp-match{
  display:flex;flex-direction:column;gap:10px;
}
#kp-ti-change-of-time-section .an-body > .kp-btr-subsec:first-child{margin-top:0}

/* Most Fruitful Star (Utils) */
.kp-mfs-intro{font-size:11px;line-height:1.5;color:var(--text2)}
.kp-mfs-meta{font-size:10px;color:var(--text3);margin-bottom:8px}
.kp-mfs-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;
}
.kp-mfs-lbl{
  font-size:11px;font-weight:600;color:var(--text2);min-width:72px;
}
.kp-mfs-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.kp-mfs-chip{
  font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;
  background:var(--bg3);border:1px solid var(--border2);color:var(--text);
}
.kp-mfs-chip.slot{
  font-weight:600;color:var(--text2);background:transparent;
}
.kp-mfs-chip.hit{border-color:rgba(34,197,94,.45);color:var(--accent,#22c55e)}
.kp-mfs-table-shell{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:4px}
.kp-mfs-table{width:100%;min-width:260px;border-collapse:collapse}
.kp-mfs-table th,.kp-mfs-table td{
  font-size:11px;padding:6px 8px;text-align:left;border-bottom:1px solid var(--border2);
}
.kp-mfs-table th{color:var(--text2);font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.kp-mfs-table td:first-child{font-weight:700;white-space:nowrap;width:3.5em}
.kp-mfs-table .kp-mfs-none{color:var(--text3);font-style:italic;font-weight:400}
.kp-mfs-combos{
  display:flex;flex-direction:column;gap:6px;
}
.kp-mfs-combo{
  font-size:12px;font-weight:700;padding:7px 10px;border-radius:5px;
  background:var(--bg2);border:1px solid var(--border2);color:var(--text);
  word-break:break-word;
}
.kp-mfs-star{white-space:nowrap}
.kp-mfs-star-swap{color:var(--text2);font-weight:600}
.kp-mfs-opt-row{align-items:flex-start}
.kp-mfs-check{
  display:flex;align-items:flex-start;gap:6px;font-size:11px;color:var(--text);
  font-weight:600;cursor:pointer;line-height:1.35;min-width:0;
}
.kp-mfs-check input{margin-top:2px;flex:0 0 auto}
.kp-mfs-opt-hint{font-size:10px;color:var(--text3);font-weight:400;font-style:italic}
.kp-mfs-tier-checks{
  display:flex;flex-direction:column;gap:6px;margin:0 0 10px;
}
.kp-mfs-timing-note{font-size:10px;color:var(--text3);font-style:italic;min-width:0}
.kp-mfs-timing-results{display:flex;flex-direction:column;gap:12px}
.kp-mfs-tier{
  border:1px solid var(--border2);border-radius:6px;background:var(--bg2);
  padding:10px;min-width:0;
}
.kp-mfs-tier-hdr{
  font-size:12px;font-weight:700;color:var(--text);margin:0 0 8px;letter-spacing:.02em;
}
.kp-mfs-tier-hits{
  display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.kp-mfs-tier-hits > .an-note{flex:1 1 100%}
.kp-mfs-hit{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:6px;
  max-width:100%;
  font-size:11px;line-height:1.35;padding:6px 12px;
  border-radius:999px;
  background:var(--bg3);border:1px solid var(--border2);color:var(--text);
  white-space:nowrap;
}
.kp-mfs-hit-chain{font-weight:700}
.kp-mfs-hit-meta{
  font-size:10px;font-weight:600;color:var(--text2);
  padding-left:6px;border-left:1px solid var(--border2);
}
.kp-ti-cot-rp-note{font-size:10px;color:var(--text3);font-style:italic;min-height:1.2em}
.kp-ti-cot-rp-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kp-ti-cot-rp-results{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;
}
.kp-ti-cot-rp-results > .an-note{grid-column:1 / -1}
.kp-ti-cot-rp-hit{
  padding:8px 10px;border:1px solid var(--border2);border-radius:5px;background:var(--bg2);
  min-width:0;height:100%;box-sizing:border-box;
}
.kp-ti-cot-rp-hit.anchor{border-color:rgba(34,197,94,.5);box-shadow:inset 0 0 0 1px rgba(34,197,94,.2)}
.kp-ti-cot-rp-hit-chain{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;
  font-size:12px;font-weight:700;color:var(--text);margin-bottom:4px;word-break:break-word;
}
.kp-ti-cot-rp-hit-count{
  font-size:10px;font-weight:600;color:var(--text2);line-height:1.2;
  padding:2px 6px;border-radius:4px;background:var(--bg3);border:1px solid var(--border2);
}
.kp-ti-cot-rp-hit-time{
  display:flex;flex-direction:column;gap:2px;
  font-size:11px;color:var(--text2);font-variant-numeric:tabular-nums;line-height:1.35;
}
.kp-ti-cot-rp-hit-from,.kp-ti-cot-rp-hit-to{display:block;word-break:break-word}
.kp-ti-cot-rp-hit-windows{display:flex;flex-direction:column;gap:4px}
.kp-ti-cot-rp-hit-windows .kp-ti-cot-rp-hit-time{font-size:10px}
#kp-panel-transit #kpt-content-wrap > #kpt-slot-toolbar{margin-top:14px}
#kp-panel-transit #kpt-content-wrap > .fusion-bar{margin-top:14px}
#kp-panel-transit #kpt-planets-section,
#kp-panel-transit #kpt-bhava-section,
#kp-panel-transit #kpt-nodes-section{margin-top:14px}
.kpt-fetch-status-slot{
  min-height:32px;margin-top:8px;display:flex;align-items:center;
  flex-shrink:0;
}
.kpt-fetch-status{
  display:inline-block;width:auto;max-width:100%;
  padding:5px 10px;font-size:11px;font-style:normal;line-height:1.4;
  color:var(--text2);background:var(--bg3);border:1px solid transparent;
  border-radius:4px;opacity:0;visibility:hidden;
}
.kpt-fetch-status.is-active{opacity:1;visibility:visible;border-color:var(--border2)}
.kpt-fetch-status.is-loading{color:var(--accent);border-color:var(--accent);background:rgba(59,130,246,.08)}
.kpt-fetch-status.is-error{color:var(--red,#ef4444);border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.06)}
.kp-combo-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 20px}
.kp-combo-summary .kp-combo-sum-label{font-weight:700;color:var(--text2);margin-right:6px}
.kp-combo-summary .kp-combo-sum-val{font-family:var(--font-mono)}
/* Combination Highlight — control bar + stacked sections */
.kp-combo-select-row{
  display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-bottom:12px;
}
.kp-combo-select-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.kp-combo-select-field .bhava-select{min-width:160px;max-width:100%}
.kp-combo-select-field .kp-combo-element-subhdr{margin-bottom:0}
.kp-combo-reset-btn{font-size:11px;padding:4px 12px;height:30px;align-self:flex-end;flex-shrink:0}
.kp-combo-sig-options{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;
  margin:0;padding:0;font-size:11px;color:var(--text2);
}
.kp-combo-sig-opt{display:flex;align-items:center;gap:5px;cursor:pointer;user-select:none;white-space:nowrap}
.kp-combo-sig-opt input{margin:0;cursor:pointer}
/* Three stacked rows: House → Planet → Element */
.kp-combo-tables-row{
  display:flex;flex-direction:column;gap:18px;width:100%;align-items:stretch;
}
.kp-combo-tables-row>.kp-btr-subsec{margin-top:0}
.kp-combo-planet-wrap>.kp-combo-sig-sub{
  margin-top:12px;
  padding:10px 10px 12px;
}
.kp-combo-planet-wrap>.kp-combo-sig-sub>.kp-btr-subsec-hdr{
  margin-bottom:8px;padding-bottom:8px;font-size:12px;
}
.kp-combo-house-wrap{
  width:100%;max-width:100%;min-width:0;
}
.kp-house-fold-layout{
  display:flex;flex-direction:column;gap:12px;align-items:stretch;width:100%;min-width:0;
}
.kp-house-fold-left{min-width:0;max-width:100%}
.kp-house-fold-left>.kp-table-shell{width:max-content;max-width:100%}
.kp-house-fold-sig-host{min-width:0;max-width:100%}
.kp-house-fold-stack{display:flex;flex-direction:column;gap:14px;min-width:0;width:100%}
.kp-house-fold-pair{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;align-items:start;min-width:0;
}
.kp-house-fold-col{min-width:0}
.kp-house-fold-title{
  font-size:12px;font-weight:700;color:var(--text);margin:0 0 6px;letter-spacing:.04em;text-transform:uppercase;
}
.kp-house-fold-table{
  border-collapse:separate;border-spacing:0;font-size:11px;margin:0;width:max-content;min-width:100%;
}
.kp-house-fold-table th,.kp-house-fold-table td{
  border:1px solid var(--border);padding:3px 6px;text-align:center;white-space:nowrap;vertical-align:middle;
}
.kp-house-fold-table th{background:var(--bg3);font-weight:600;color:var(--text2);font-size:10px}
.kp-house-fold-hs{font-weight:700;font-family:var(--font-mono);min-width:28px}
.kp-house-fold-planet{font-weight:700;font-family:var(--font-mono)}
.kp-house-fold-planet-link{
  cursor:pointer;text-decoration:none;
}
.kp-house-fold-planet-link:hover{
  text-decoration:underline;color:var(--accent);
}
.kp-house-fold-lord{font-family:var(--font-mono)}
.kp-house-fold-lord-hit{
  font-weight:700;color:var(--blue,#2563eb);
  background:color-mix(in srgb,var(--blue,#3b82f6) 14%,var(--bg2));
  padding:1px 4px;border-radius:3px;
}
.kp-house-fold-match-cell{text-align:left !important;font-family:var(--font-mono)}
.kp-house-fold-match-count{font-weight:700;margin-right:4px;color:var(--text2)}
.kp-house-fold-match-pill{
  display:inline-block;font-size:11px;font-weight:700;font-family:var(--font-mono);
  padding:2px 7px;border-radius:3px;margin:1px 2px 1px 0;
  background:color-mix(in srgb,var(--blue,#3b82f6) 16%,var(--bg2));
  color:var(--blue,#2563eb);
  border:1px solid color-mix(in srgb,var(--blue,#3b82f6) 40%,var(--border));
}
.kp-house-fold-row-green td{background:color-mix(in srgb,#009e3f 10%,var(--bg2));color:var(--text)}
.kp-house-fold-row-red td{background:color-mix(in srgb,#d91540 10%,var(--bg2));color:var(--text)}
.kp-house-fold-summary td{
  text-align:left;font-size:11px;font-weight:600;font-family:var(--font-mono);line-height:1.4;padding:5px 8px;
}
.kp-house-fold-summary-green td{
  background:color-mix(in srgb,#009e3f 18%,var(--bg2));color:#009e3f;
}
.kp-house-fold-summary-red td{
  background:color-mix(in srgb,#d91540 16%,var(--bg2));color:#d91540;
}
.kp-house-fold-common td{
  text-align:left;font-size:11px;font-weight:700;font-family:var(--font-mono);
  background:var(--bg3);color:var(--text);padding:5px 8px;line-height:1.4;
}
.kp-house-fold-empty{text-align:left !important;color:var(--text3);font-style:italic;font-size:11px}
.kp-house-fold-note,.kp-house-fold-corulers-note{margin:6px 0 0;font-size:10px}
@media(max-width:900px){
  .kp-house-fold-pair{grid-template-columns:1fr}
}
.kp-combo-house-wrap>.kp-table-shell{width:max-content;max-width:100%}
.kp-combo-house-wrap .kp-combo-house-grid{width:max-content;min-width:100%}
.kp-combo-planet-wrap{width:100%;max-width:100%;min-width:0}
.kp-table-shell{border:1px solid var(--border);border-radius:6px;background:var(--bg2);overflow-x:auto;overflow-y:hidden;margin-bottom:4px}
.kp-table-shell>table{width:100%;margin:0}
.kp-combo-house-grid{border-collapse:separate;border-spacing:0;font-size:11px;margin:0}
.kp-combo-house-grid th,.kp-combo-house-grid td{border:1px solid var(--border);padding:4px 6px;text-align:center;white-space:nowrap}
.kp-combo-house-grid th{background:var(--bg3);font-weight:600;color:var(--text2);font-size:11px}
.kp-combo-house-grid td.kp-combo-row-label{text-align:left;font-weight:700;min-width:118px;font-size:11px;line-height:1.3}
.kp-combo-house-grid input[type=checkbox]{margin:0;cursor:pointer;accent-color:var(--accent)}
.kp-combo-row-green{color:#009e3f}
.kp-combo-row-red{color:#d91540}
.kp-combo-row-blue{color:#1a5fd4}
.kp-combo-h-green{color:#009e3f;font-weight:700}
.kp-combo-h-red{color:#d91540;font-weight:700}
.kp-combo-h-blue{color:#1a5fd4;font-weight:700}
.kp-combo-row-total-h{background:var(--bg3);font-size:11px;min-width:36px}
.kp-combo-row-total-count,.kp-combo-row-total-pct{font-family:var(--font-mono);font-weight:700;font-size:11px;background:var(--bg2)}
.kp-combo-stats-row td{background:var(--bg2);font-family:var(--font-mono);font-size:11px}
.kp-combo-row-count,.kp-combo-row-pct{color:var(--text2);font-weight:600;font-size:11px}
.kp-combo-planet-table{margin:0}
.kp-combo-planet-table th{
  text-align:left;padding:6px 8px;font-size:11px;font-weight:600;
  color:var(--text2);border-bottom:1px solid var(--border);background:var(--bg3);
  white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;
}
.kp-combo-planet-table th.kp-combo-sig-col-split,
.kp-combo-planet-table td.kp-combo-sig-col-split{border-left:3px solid var(--border2)}
/* Hide optional cols via colgroup — display:none on middle th/td + rowspan drops trailing cols */
.kp-combo-planet-table.kp-combo-hide-st-sub col.kp-combo-col-st-sub,
.kp-combo-planet-table.kp-combo-hide-st-sub th.kp-combo-col-st-sub,
.kp-combo-planet-table.kp-combo-hide-st-sub td.kp-combo-col-st-sub{visibility:collapse;width:0;max-width:0;padding:0 !important;border:none !important;overflow:hidden;font-size:0;line-height:0}
.kp-combo-planet-table.kp-combo-hide-pl-ssl col.kp-combo-col-pl-ssl,
.kp-combo-planet-table.kp-combo-hide-pl-ssl th.kp-combo-col-pl-ssl,
.kp-combo-planet-table.kp-combo-hide-pl-ssl td.kp-combo-col-pl-ssl{visibility:collapse;width:0;max-width:0;padding:0 !important;border:none !important;overflow:hidden;font-size:0;line-height:0}
.kp-combo-planet-table.kp-combo-hide-waspect-out col.kp-combo-col-waspect-out,
.kp-combo-planet-table.kp-combo-hide-waspect-out th.kp-combo-col-waspect-out,
.kp-combo-planet-table.kp-combo-hide-waspect-out td.kp-combo-col-waspect-out{visibility:collapse;width:0;max-width:0;padding:0 !important;border:none !important;overflow:hidden;font-size:0;line-height:0}
.kp-combo-planet-table.kp-combo-hide-waspect-in col.kp-combo-col-waspect-in,
.kp-combo-planet-table.kp-combo-hide-waspect-in th.kp-combo-col-waspect-in,
.kp-combo-planet-table.kp-combo-hide-waspect-in td.kp-combo-col-waspect-in{visibility:collapse;width:0;max-width:0;padding:0 !important;border:none !important;overflow:hidden;font-size:0;line-height:0}
.kp-combo-waspect-pills{
  display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0;white-space:nowrap;
}
.kp-combo-waspect-pill{
  display:inline-block;max-width:100%;padding:1px 6px;border-radius:999px;
  border:1px solid var(--border2);color:var(--text2);font-family:var(--font-mono);font-size:9px;line-height:1.35;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.kp-combo-waspect-item{font-weight:700}
.kp-combo-waspect-item.kp-combo-waspect-soft{color:#15803d}
.kp-combo-waspect-item.kp-combo-waspect-hard{color:#b91c1c}
[data-theme="light"] .kp-combo-waspect-item.kp-combo-waspect-soft,
[data-theme="paper"] .kp-combo-waspect-item.kp-combo-waspect-soft{color:#166534}
[data-theme="light"] .kp-combo-waspect-item.kp-combo-waspect-hard,
[data-theme="paper"] .kp-combo-waspect-item.kp-combo-waspect-hard{color:#991b1b}
.kp-combo-waspect-pill-pl{
  background:color-mix(in srgb, var(--bg3) 72%, #3b82f6 16%);
  border-color:color-mix(in srgb, var(--border2) 55%, #3b82f6 45%);
}
.kp-combo-waspect-pill-hs{
  background:color-mix(in srgb, var(--bg3) 72%, #d97706 16%);
  border-color:color-mix(in srgb, var(--border2) 55%, #d97706 45%);
}
.kp-combo-waspect-pill-in-pl{
  background:color-mix(in srgb, var(--bg3) 72%, #0d9488 16%);
  border-color:color-mix(in srgb, var(--border2) 55%, #0d9488 45%);
}
.kp-combo-waspect-pill-in-hs{
  background:color-mix(in srgb, var(--bg3) 72%, #e11d48 16%);
  border-color:color-mix(in srgb, var(--border2) 55%, #e11d48 45%);
}
.kp-combo-col-waspect-out .kp-combo-waspect-pills,
.kp-combo-col-waspect-in .kp-combo-waspect-pills{align-items:flex-start}
.kp-combo-sig-cell-with-waspect{
  display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:4px 8px;
}
.kp-combo-sig-cell-with-waspect .kp-combo-waspect-pills{
  margin-left:auto;align-items:flex-end;flex-shrink:0;
}
.kp-combo-sig-cell-with-waspect .kp-combo-waspect-pill{text-align:right}
.kp-combo-planet-table td{padding:4px 6px;border-bottom:1px solid var(--border);font-size:11px;font-family:var(--font-mono);white-space:nowrap;line-height:1.45}
.kp-combo-planet-table tbody tr:last-child td{border-bottom:none}
.kp-table-shell>.data-table tbody tr:hover td{background:var(--bg4);color:var(--text)}
.kp-table-shell>.kp-combo-house-grid tbody tr:hover td{background:var(--bg4);color:var(--text)}
.kp-combo-planet-table tr:hover td{background:transparent;color:var(--text2)}
.kp-combo-planet-table td:first-child{font-family:inherit;font-weight:600}
.kp-combo-planet-table .kp-combo-sig-graha,
.kp-combo-sig-card-table .kp-combo-sig-graha{font-weight:700;font-family:var(--font-mono);font-size:12px;white-space:nowrap}
.kp-combo-sig-marker{
  display:inline-block;min-width:2ch;font-weight:700;white-space:pre;vertical-align:baseline;
}
.kp-combo-sig-sign{
  font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text2);white-space:nowrap;
}
.kp-combo-planet-table .kp-combo-sig-houses,
.kp-combo-sig-card-table .kp-combo-sig-houses{font-family:var(--font-mono);font-size:13px}
.kp-combo-sig-layout-label{font-size:11px;font-weight:600;color:var(--text2);margin:12px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.kp-combo-planet-wrap>.kp-combo-sig-layout-label:first-of-type{margin-top:4px}
.kp-combo-sig-legend{margin-top:10px;font-size:11px;line-height:1.65}
.kp-combo-context-wrap{margin-top:14px;padding-top:10px;border-top:1px solid var(--border)}
.kp-combo-context-hdr{margin:0 0 6px !important}
.kp-combo-context-meta{
  display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:0;font-size:10px;line-height:1.5;
}
.kp-combo-context-chip{
  display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;
  border:1px solid var(--border2);background:var(--bg3);font-family:var(--font-mono);white-space:nowrap;
  cursor:help;
}
.kp-combo-context-k{color:var(--text3);font-weight:600;text-transform:uppercase;font-size:9px;letter-spacing:0.04em}
.kp-combo-sig-vertical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:2px}
.kp-dasha-ph-level{
  display:inline-block;margin-right:4px;padding:1px 5px;border-radius:4px;
  font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--accent);background:color-mix(in srgb, var(--bg3) 70%, var(--accent) 12%);
  border:1px solid var(--border2);vertical-align:middle;
}
.kp-dasha-ph-level-birth{
  color:var(--red,#ef4444);
  background:color-mix(in srgb, var(--bg2) 72%, var(--red,#ef4444) 18%);
  border-color:color-mix(in srgb, var(--border2) 55%, var(--red,#ef4444) 45%);
}
.kp-dasha-ph-level-current{
  color:#3b82f6;
  background:color-mix(in srgb, var(--bg2) 72%, #3b82f6 18%);
  border-color:color-mix(in srgb, var(--border2) 55%, #3b82f6 45%);
}
.kp-dasha-ph-level-pravesh{
  color:#0f766e;
  background:color-mix(in srgb, var(--bg2) 70%, #14b8a6 22%);
  border-color:color-mix(in srgb, var(--border2) 50%, #14b8a6 50%);
}
.kp-combo-sig-card-pravesh{
  border-color:color-mix(in srgb, var(--border2) 45%, #14b8a6 55%);
  background:color-mix(in srgb, var(--bg2) 88%, #14b8a6 8%);
}
.kp-combo-sig-card-pravesh .kp-combo-sig-card-hdr{
  background:color-mix(in srgb, var(--bg3) 55%, #14b8a6 28%);
  border-bottom-color:color-mix(in srgb, var(--border2) 50%, #14b8a6 50%);
}
.kp-dasha-ph-period{
  padding:5px 8px 7px;font-size:10px;line-height:1.35;color:var(--text3);
  border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg2) 88%, var(--bg4) 12%);
  white-space:normal;word-break:break-word;
}
.kp-combo-sig-card .kp-dasha-ph-period + .kp-dasha-ph-period{border-top:none;padding-top:0}
.kp-dasha-ph-period .kp-dasha-ph-level{margin-right:6px;vertical-align:baseline}
.kp-dasha-ph-period-range{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.kp-dasha-ph-period-age{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.kp-dasha-ph-period-sep{color:var(--text3);opacity:.75}
.kp-combo-sig-card{border:1px solid var(--border);border-radius:6px;background:var(--bg2);overflow:hidden;min-width:0}
.kp-combo-sig-card-hdr{
  display:flex;align-items:flex-start;justify-content:space-between;gap:6px;
  padding:6px 8px;font-size:12px;font-weight:400;
  background:color-mix(in srgb, var(--bg4) 72%, var(--bg3) 28%);
  border-bottom:1px solid var(--border);
  text-align:left;line-height:1.45;
}
.kp-combo-sig-card-hdr-main{flex:1;min-width:0}
.kp-combo-sig-card-actions{
  display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:4px;
}
.kp-combo-sig-copy-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:4px;
  background:transparent;color:var(--text3);cursor:pointer;
  transition:color var(--tr),background var(--tr),border-color var(--tr);
}
.kp-combo-sig-copy-btn:hover{
  color:var(--accent);border-color:var(--border2);background:var(--bg2);
}
.kp-combo-sig-copy-btn:focus-visible{
  outline:2px solid var(--accent);outline-offset:1px;
}
.kp-combo-sig-card-hdr .kp-combo-sig-card-pl{font-weight:700;color:var(--text)}
.kp-combo-sig-card-hdr-pills{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;row-gap:4px;
  max-width:100%;vertical-align:middle;
}
.kp-combo-hdr-pill{
  display:inline-flex;align-items:center;gap:3px;max-width:100%;
  padding:2px 7px;border-radius:999px;border:1px solid var(--border2);
  font-family:var(--font-mono);font-size:10px;font-weight:600;line-height:1.35;
  color:var(--text2);white-space:nowrap;
}
.kp-combo-hdr-pill-lords{
  background:color-mix(in srgb, var(--bg2) 75%, #5b8def 12%);
  border-color:color-mix(in srgb, var(--border2) 70%, #5b8def 30%);
}
.kp-combo-hdr-pill-cnj{
  background:color-mix(in srgb, var(--bg2) 75%, #c9a227 14%);
  border-color:color-mix(in srgb, var(--border2) 70%, #c9a227 30%);
}
.kp-combo-hdr-pill-asp{
  background:color-mix(in srgb, var(--bg2) 75%, #2a9d8f 14%);
  border-color:color-mix(in srgb, var(--border2) 70%, #2a9d8f 30%);
}
.kp-combo-hdr-pill-aspto{
  background:color-mix(in srgb, var(--bg2) 75%, #9b59b6 12%);
  border-color:color-mix(in srgb, var(--border2) 70%, #9b59b6 30%);
}
.kp-combo-hdr-pill-asphs{
  background:color-mix(in srgb, var(--bg2) 75%, #e76f51 12%);
  border-color:color-mix(in srgb, var(--border2) 70%, #e76f51 30%);
}
.kp-combo-hdr-pill-nakex{
  background:color-mix(in srgb, var(--bg2) 72%, var(--flag-nak-ex,#2dd4bf) 16%);
  border-color:color-mix(in srgb, var(--border2) 55%, var(--flag-nak-ex,#2dd4bf) 40%);
  color:var(--text);
}
.kp-combo-hdr-pill-rashiex{
  background:color-mix(in srgb, var(--bg2) 72%, var(--flag-pariv,#f59e0b) 14%);
  border-color:color-mix(in srgb, var(--border2) 55%, var(--flag-pariv,#f59e0b) 40%);
  color:var(--text);
}
.kp-combo-planet-table thead .kp-combo-sig-s2s-grp{
  text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  background:var(--bg3);border-left:2px solid var(--border2);
}
.kp-combo-planet-table thead tr.kp-combo-sig-row-cols th{
  font-size:10px;font-weight:600;color:var(--text2);background:var(--bg2);padding:5px 6px;border-top:none;
}
.kp-combo-planet-table thead tr.kp-combo-sig-row-cols th:first-child{
  position:static;left:auto;z-index:auto;box-shadow:none;background:var(--bg2);
  border-left:2px solid var(--border2);
}
.kp-combo-sig-card-table{width:100%;border-collapse:collapse;font-size:11px}
.kp-combo-sig-card-table th,.kp-combo-sig-card-table td{border-bottom:1px solid var(--border);padding:4px 6px;text-align:left;vertical-align:top}
.kp-combo-sig-card-table tr:last-child th,.kp-combo-sig-card-table tr:last-child td{border-bottom:none}
.kp-combo-sig-card-table th{
  font-weight:600;color:var(--text2);white-space:nowrap;width:1%;
  font-size:11px;line-height:1.35;text-transform:uppercase;letter-spacing:.05em;
  padding-right:10px;
}
.kp-combo-sig-card-table td{
  font-family:var(--font-mono);font-size:11px;line-height:1.45;word-break:break-word;
  text-align:left;width:auto;
}
.kp-combo-sig-card-table tbody tr:hover th,
.kp-combo-sig-card-table tbody tr:hover td{background:var(--bg4);color:var(--text)}
.kp-combo-sig-card-table tr.kp-combo-sig-combined-row th,
.kp-combo-sig-card-table tr.kp-combo-sig-combined-row td{
  background:var(--bg3);
  font-weight:600;
  border-top:2px solid var(--border2);
}
.kp-combo-sig-card-table tr.kp-combo-sig-combined-row:hover th,
.kp-combo-sig-card-table tr.kp-combo-sig-combined-row:hover td{
  background:var(--bg4);
  color:var(--text);
}
.kp-combo-sig-card-table td.kp-combo-sig-score{
  width:1%;white-space:nowrap;text-align:right;font-family:var(--font-mono);font-size:10px;line-height:1.35;
  padding-left:8px;color:var(--text2);vertical-align:middle;
}
.kp-combo-sig-card-table .kp-combo-sig-score-pos{color:var(--green);font-weight:600}
.kp-combo-sig-card-table .kp-combo-sig-score-neg{color:var(--red);font-weight:600}
.kp-combo-sig-card-table .kp-combo-sig-score-sep{color:var(--text3);font-weight:400}
.kp-combo-sig-card-table .kp-combo-sig-score-net{font-weight:700;color:var(--text)}
.kp-combo-sig-card-table .kp-combo-sig-score-net-pos{color:var(--green)}
.kp-combo-sig-card-table .kp-combo-sig-score-net-neg{color:var(--red)}
.kp-combo-sig-card-table .kp-combo-sig-score-pct{display:inline;margin:0;font-weight:700;color:var(--text);font-size:10px}
.kp-combo-sig-card-table tr.kp-combo-sig-combined-row td.kp-combo-sig-score{font-size:11px}
.kp-combo-sig-card-table tr.kp-combo-sig-combined-row td.kp-combo-sig-score .kp-combo-sig-score-pct{font-size:11px}
.kp-combo-common-pill{
  display:inline-flex;align-items:center;gap:4px;vertical-align:middle;
  max-width:100%;padding:2px 8px 2px 6px;margin:0 1px;
  border-radius:999px;border:1px solid var(--border2);
  background:color-mix(in srgb, var(--bg2) 70%, var(--accent) 8%);
  font-family:var(--font-mono);font-size:11px;line-height:1.35;font-weight:600;
  white-space:nowrap;
}
.kp-combo-common-pill-mark{
  flex:0 0 auto;font-size:10px;font-weight:700;color:var(--accent);opacity:.9;
}
.kp-combo-common-pill-nums{min-width:0}
.kp-combo-ut-effect-pill{
  display:inline-flex;align-items:center;gap:4px;vertical-align:middle;
  max-width:100%;padding:2px 8px;margin:0 1px;
  border-radius:999px;border:1px solid color-mix(in srgb, #ca8a04 55%, var(--border2));
  background:color-mix(in srgb, var(--bg2) 35%, #facc15 65%);
  font-family:var(--font-mono);font-size:11px;line-height:1.35;font-weight:600;
  white-space:nowrap;
}
.kp-combo-ut-effect-pill-nums{min-width:0}
.kp-combo-planet-table td .kp-combo-common-pill,
.kp-combo-sig-card-table td .kp-combo-common-pill,
.kp-combo-planet-table td .kp-combo-ut-effect-pill,
.kp-combo-sig-card-table td .kp-combo-ut-effect-pill{white-space:nowrap}

/* Graha Card — house numbers are display-only (cusp open = chart SVG only) */
#graha-card .gc-cusp-link{
  cursor:inherit;
  text-decoration:none;
  pointer-events:auto;
}
#graha-card .gc-cusp-link:hover{color:inherit}
#graha-card .gc-kp-vert-card{
  border-color:var(--border2);
  font-size:11px;
}
#graha-card .gc-kp-vert-card .kp-combo-sig-card-hdr{padding:4px 6px;font-size:11px}
#graha-card .gc-kp-vert-card .kp-combo-sig-card-table th{
  min-width:4.5em;width:4.5em;font-size:9px;padding:3px 4px;
}
#graha-card .gc-kp-vert-card .kp-combo-sig-card-table td{padding:3px 4px;font-size:11px}
.kp-combo-sig-extra-opts{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 14px;
  margin:4px 0 8px;font-size:11px;color:var(--text2);
}
.kp-combo-sig-extra-opts .kp-combo-sig-opt{white-space:nowrap}
.kp-combo-orb-pill{
  display:inline-flex;align-items:center;max-width:100%;
  padding:6px 12px;border-radius:999px;
  border:1px solid color-mix(in srgb, var(--red) 55%, var(--border2));
  background:color-mix(in srgb, var(--bg2) 45%, var(--red2) 55%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--red) 18%, transparent);
}
.kp-combo-orb-pill .kp-combo-orb-row{margin-top:0;width:auto}
.kp-combo-orb-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;width:100%;margin-top:2px;
}
.kp-combo-orb-field{
  display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text2);
  white-space:nowrap;cursor:default;user-select:none;
}
.kp-combo-orb-input{
  width:4.5rem;min-width:4.5rem;padding:4px 6px;font-size:16px;line-height:1.2;
  border:1px solid var(--border);border-radius:4px;background:var(--bg2);color:var(--text);
  font-family:var(--font-mono);
}
@media(min-width:700px){
  .kp-combo-orb-input{font-size:12px}
}
.kp-combo-csl-level-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;width:100%}
.kp-combo-csl-level-hdr{font-weight:600;color:var(--text2);margin-right:2px}
.kp-combo-csl-level-wrap label{display:flex;align-items:center;gap:4px;cursor:pointer;user-select:none;white-space:nowrap}
.kp-combo-csl-level-wrap input{margin:0;cursor:pointer}
#kp-bhava-table th,#kp-planets-rich-table th,#kpt-planets-rich-table th{font-size:11px;letter-spacing:.06em;text-transform:uppercase}
#kp-planets-rich-table tbody td.accent,
#kpt-planets-rich-table tbody td.accent{font-size:13px;font-weight:600;color:var(--text)}
.kp-combo-element-table th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:6px 8px}
.kp-combo-element-panel{
  margin:18px 0 0;padding-top:0;border-top:none;
  min-width:0;width:100%;max-width:100%;box-sizing:border-box;
  display:flex;flex-direction:column;gap:0;
}
.kp-combo-element-panel>.kp-btr-subsec:first-child{margin-top:0}
.kp-core-dasha-strip{
  margin:0;border:none;border-radius:0;
  background:transparent;overflow:hidden;min-width:0;
}
.kp-core-dasha-strip .kp-core-dasha-topbar{
  border-bottom:none;padding:0 0 8px;gap:10px;
}
.kp-core-dasha-strip .dasha-chain-bar{
  border-bottom:none;border-top:1px solid rgba(200,168,75,0.25);
  padding:6px 0 0;
}
.kp-combo-element-intro{margin:0 0 10px;font-size:11px;line-height:1.55;white-space:normal;overflow-wrap:break-word;word-break:break-word;max-width:100%}
.kp-combo-element-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;min-width:0;max-width:100%;
}
.kp-combo-element-hdr{font-size:13px;font-weight:700;color:var(--text);margin:0 0 8px;letter-spacing:.02em}
.kp-combo-house-ext-opt{
  display:block;margin:0 0 8px;font-size:11px;color:var(--text2);cursor:pointer;
}
.kp-combo-house-ext-opt input{margin-right:6px;vertical-align:-2px}
.kp-combo-element-block{min-width:0;max-width:100%}
.kp-combo-element-subhdr{font-size:11px;font-weight:600;color:var(--text2);margin-bottom:6px}
.kp-combo-element-table td{font-size:11px;line-height:1.45}
.kp-combo-element-table td:first-child{font-weight:600;white-space:nowrap}
.kp-combo-element-table td:nth-child(3){font-weight:700;white-space:nowrap}
.kp-combo-element-table td:nth-child(4){max-width:220px;white-space:normal;line-height:1.45}
.kp-combo-element-summary{
  margin:8px 0 0;font-size:11px;line-height:1.55;color:var(--text2);font-style:italic;
  display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;
  white-space:normal;overflow-wrap:break-word;word-break:break-word;
}
.kp-combo-elem.kp-elem-earth{color:#8d6e63}
.kp-combo-elem.kp-elem-fire{color:#ff1744}
.kp-combo-elem.kp-elem-water{color:#2979ff}
.kp-combo-elem.kp-elem-air{color:#00bcd4}
@media(max-width:1024px){
  .kp-combo-element-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .kp-combo-select-field .bhava-select{min-width:140px;width:100%}
  .kp-combo-sig-vertical-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .kp-combo-sig-vertical-grid{grid-template-columns:1fr}
}
.chart-ext-planets-label{display:flex;align-items:center;gap:5px;margin-left:12px;font-size:11px;color:var(--text2);cursor:pointer;white-space:nowrap;user-select:none}
.chart-ext-planets-label input{margin:0;cursor:pointer}
.kp-details-table thead .kp-details-grp{text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 8px;border-bottom:1px solid var(--border2)}
.kp-details-table thead .kp-grp-sig{background:var(--accent3);border-left:2px solid var(--accent2)}
.kp-details-table thead .kp-grp-six{background:var(--bg3);border-left:2px solid var(--accent)}
.kp-details-table thead .kp-grp-s2s{background:var(--bg3);border-left:2px solid var(--border2)}
.kp-details-table thead .kp-grp-kp{background:var(--bg2);border-left:2px solid var(--accent2)}
.kp-details-table thead .kp-details-row-cols th{font-size:10px;font-weight:600;color:var(--text2);background:var(--bg2);padding:5px 6px;border-top:none}
/* Multi-row header: col-row first cell is Significator/A/Su — not Planet/Cusp/PL */
.kp-details-table thead tr.kp-details-row-cols th:first-child,
.kp-proximity-table thead tr.kp-prox-row-cols th:first-child{
  position:static;left:auto;z-index:auto;
  box-shadow:none;background:var(--bg2);
}
.kp-details-table .kp-grp-sig-first,.kp-details-table td.kp-grp-sig-first{border-left:2px solid var(--accent2)}
.kp-details-table .kp-grp-six-first,.kp-details-table td.kp-grp-six-first{border-left:2px solid var(--accent)}
.kp-details-table .kp-grp-s2s-first,.kp-details-table td.kp-grp-s2s-first{border-left:2px solid var(--border2)}
.kp-details-table .kp-grp-kp-first,.kp-details-table td.kp-grp-kp-first{border-left:2px solid var(--accent2)}
.kp-sig-nl-house{text-decoration:underline;text-underline-offset:2px}
.kp-details-table td.kp-sig .kp-sig-nl-house{font-weight:inherit}
.kp-details-table td.kp-grp-sig-first,
.kp-details-table td.kp-grp-sig-col,
.kp-details-table td.kp-grp-six-first,
.kp-details-table td.kp-grp-six-col,
.kp-details-table td.kp-grp-s2s-first,
.kp-details-table td.kp-grp-s2s-col,
.kp-details-table td.kp-grp-kp-first,
.kp-details-table td.kp-grp-kp-col{font-size:13px;line-height:1.45;font-family:var(--font-mono)}
.kp-details-table .kp-planet-abbr{font-family:inherit;font-size:13px;font-weight:600;line-height:1.45;white-space:nowrap}
.kp-details-table .kp-planet-abbr strong{font-weight:700}
.kp-details-table td.kp-planet-name{font-size:13px;font-weight:600;white-space:nowrap}
.kp-details-table td.kp-planet-name strong{font-weight:700}
.kp-details-table td.kp-td,
#kp-planets-rich-table td.kp-td,
#kpt-planets-rich-table td.kp-td{font-size:13px;color:var(--text);padding:6px 8px}
.kp-details-table .kp-combo-h-green{color:#009e3f;font-weight:700}
.kp-details-table .kp-combo-h-red{color:#d91540;font-weight:700}
.kp-details-table .kp-combo-h-blue{color:#1a5fd4;font-weight:700}
.kp-details-table tbody tr:hover td .kp-combo-h-green{color:#009e3f}
.kp-details-table tbody tr:hover td .kp-combo-h-red{color:#d91540}
.kp-details-table tbody tr:hover td .kp-combo-h-blue{color:#1a5fd4}
.kp-details-table td{font-size:11px;white-space:nowrap}
.kp-cusp-details-hdr{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.kp-cusp-details-title{flex:1;min-width:0}
.kp-cusp-sig-copy-sheet{
  font-family:var(--font-body);font-size:12px;color:var(--text);
  background:var(--bg2);border:1px solid var(--border);border-radius:6px;overflow:hidden;
}
.kp-cusp-sig-copy-summary{
  padding:8px 10px;background:var(--bg3);border-bottom:1px solid var(--border);
  line-height:1.5;font-size:12px;
}
.kp-cusp-sig-copy-sum-line{margin:2px 0}
.kp-cusp-sig-copy-sum-folds{
  display:flex;flex-wrap:wrap;gap:0 1.5em;align-items:baseline;
}
.kp-cusp-sig-copy-ff,.kp-cusp-sig-copy-sf{white-space:nowrap}
.kp-cusp-sig-copy-tab{display:none}
.kp-cusp-sig-copy-table{border-collapse:collapse;width:auto;background:var(--bg2)}
.kp-cusp-sig-copy-table th,.kp-cusp-sig-copy-table td{
  border:1px solid var(--border2);padding:5px 8px;text-align:left;vertical-align:top;
  white-space:nowrap;font-size:12px;
}
.kp-cusp-sig-copy-table th{
  background:var(--bg3);color:var(--text2);font-weight:600;font-size:11px;
  text-transform:uppercase;letter-spacing:.04em;
}
.kp-cusp-sig-copy-table td.accent{color:var(--accent);font-weight:700}
@media(max-width:900px){.kp-cusp-legend-grid{grid-template-columns:1fr}}
.kp-proximity-table{font-size:11px}
.kp-proximity-table thead .kp-prox-grp-matrix{text-align:center;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 8px;border-bottom:1px solid var(--border2);background:var(--bg3)}
.kp-proximity-table thead .kp-prox-row-cols th{font-size:10px;font-weight:600;color:var(--text2);background:var(--bg2);padding:5px 6px;border-top:none;letter-spacing:.06em;text-transform:uppercase}
.kp-proximity-table .kp-grp-s2s-first,.kp-proximity-table td.kp-grp-s2s-first{border-left:2px solid var(--border2)}
.kp-proximity-table .kp-grp-kp-first,.kp-proximity-table td.kp-grp-kp-first{border-left:2px solid var(--accent2)}
.kp-proximity-table td.kp-grp-s2s-first,.kp-proximity-table td.kp-grp-s2s-col,
.kp-proximity-table td.kp-grp-kp-first,.kp-proximity-table td.kp-grp-kp-col{font-family:inherit;font-size:11px;text-align:left;white-space:nowrap}
.kp-proximity-table td{font-family:var(--font-mono);font-size:10px;text-align:center;padding:4px 6px;white-space:nowrap;line-height:1.35}
.kp-proximity-table td.kp-prox-pl{font-weight:700;text-align:left;font-family:inherit}
.kp-proximity-table th.kp-prox-pl-end,.kp-proximity-table td.kp-prox-pl-end{border-left:2px solid var(--border2)}
.kp-proximity-table td.kp-prox-deg{text-align:left;font-size:11px;line-height:1.4;min-width:140px}
.kp-proximity-table tr.kp-prox-house-first td{border-top:2px solid var(--border2)}
.kp-proximity-table tbody tr:hover td{background:var(--bg4);color:var(--text)}
.kp-proximity-table td.kp-prox-near{background:rgba(var(--accent2-rgb,99,102,241),.22);font-weight:700;color:var(--text)}
.kp-table-shell .kp-proximity-table tbody tr:hover td.kp-prox-near{background:rgba(var(--accent2-rgb,99,102,241),.32);color:var(--text)}
.kp-prox-threshold-row{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text2)}
.kp-prox-threshold-row label{font-weight:600;white-space:nowrap}
.kp-prox-threshold-row input{width:72px;padding:4px 8px;font-size:11px;font-family:var(--font-mono);background:var(--bg3);border:1px solid var(--border);border-radius:4px;color:var(--text)}

/* ── KP Ruling Planets ─────────────────────────────────────────── */
.kp-rp-card-body{padding-top:2px}
.kp-rp-columns{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr) minmax(340px,1.25fr);
  gap:8px 12px;
  align-items:stretch;
}
.kp-rp-columns>.kp-btr-subsec{
  margin-top:0;
  display:flex;
  flex-direction:column;
  min-height:0;
  min-width:0;
  gap:6px;
}
.kp-rp-columns>.kp-btr-subsec>.kp-btr-subsec-hdr{
  flex-shrink:0;
  margin-bottom:4px;
}
.kp-rp-col-table{display:flex;flex-direction:column;gap:6px}
.kp-rp-col-controls{display:flex;flex-direction:column;gap:6px}
.kp-rp-grid-full{grid-column:1/-1}
.kp-rp-col{min-width:0;display:flex;flex-direction:column;gap:6px}
.kp-rp-col-title{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text2);margin-bottom:4px}
.kp-rp-col-title-inline{margin-top:2px;margin-bottom:4px}
.kp-rp-col-title-spaced{margin-top:8px}
.kp-rp-table-head{margin-bottom:4px}
.kp-rp-col-strength{font-size:10px;line-height:1.4;min-width:0}
.kp-rp-strength-body{display:flex;flex-direction:column;gap:5px}
.kp-rp-strength-item{
  padding:6px 8px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--bg3);
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.kp-rp-strength-text{color:var(--text2);line-height:1.4}
.kp-rp-strength-tags{
  font-family:var(--font-mono);
  font-weight:600;
  color:var(--accent2);
  font-size:10px;
  line-height:1.45;
  word-break:break-word;
}
.kp-rp-strength-none{color:var(--text3);font-style:italic;font-size:10px}
[data-theme="light"] .kp-rp-strength-tags,[data-theme="sepia"] .kp-rp-strength-tags{color:var(--accent)}
.kp-rp-punarphoo-lines{display:flex;flex-direction:column;gap:3px;min-width:0}
.kp-rp-punarphoo-line{font-size:10px;line-height:1.4;min-width:0}
.kp-rp-punarphoo-chart{font-weight:700;color:var(--text2);margin-right:4px}
.kp-rp-punarphoo-present{color:#dc2626!important;font-weight:700}
[data-theme="dark"] .kp-rp-punarphoo-present{color:#f87171!important}
.kp-rp-cancellation-section,.kp-rp-preference-section{
  padding:6px 8px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--bg3);
}
.kp-rp-cancellation-under-table{
  flex:1 1 auto;
  margin-top:4px;
  display:flex;
  flex-direction:column;
  gap:4px;
  min-height:0;
}
.kp-rp-cancellation-under-table .kp-rp-col-title{margin-bottom:2px}
.kp-rp-cancellation-body{font-size:10px;line-height:1.45;color:var(--text2)}
.kp-rp-cancellation-note{font-size:9px;color:var(--text3);font-style:italic;line-height:1.35;margin-top:4px}
.kp-rp-cancellation-important{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--border2);
  font-size:10px;
  line-height:1.45;
  color:var(--text2);
}
.kp-rp-cancellation-important p{margin:0 0 8px}
.kp-rp-cancellation-important p:last-child{margin-bottom:0}
.kp-rp-filter-cbs{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  margin-top:6px;
}
.kp-rp-filter-label{
  display:flex;
  align-items:flex-start;
  gap:6px;
  font-size:11px;
  color:var(--text);
  line-height:1.35;
  cursor:pointer;
}
.kp-rp-filter-label input{margin-top:2px;flex-shrink:0}
.kp-rp-filter-label .kp-rp-red{color:#dc2626;font-weight:700}
.kp-rp-filter-label .kp-rp-blue{color:#2563eb;font-weight:700}
.kp-rp-preference-section{
  display:grid;
  grid-template-columns:minmax(120px,auto) minmax(0,1fr);
  gap:2px 12px;
  align-items:start;
}
.kp-rp-preference-section>.kp-rp-col-title{margin-bottom:0;grid-row:span 2;align-self:start;padding-top:1px}
.kp-rp-type-block{
  padding-bottom:4px;
}
.kp-rp-code-lists-band{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:6px 0 8px;
  border-bottom:1px solid var(--border2);
}
.kp-rp-lists-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
}
.kp-rp-color-code-section{margin-top:2px}
.kp-rp-list-block{
  padding:6px 8px;
  border:1px solid var(--border);
  border-radius:var(--r2);
  background:var(--bg3);
  min-width:0;
}
.kp-rp-list-block-additional{border-style:dashed}
.kp-rp-list-additional{color:var(--text)}
[data-theme="light"] .kp-rp-list-additional,[data-theme="sepia"] .kp-rp-list-additional{color:var(--text)}
.kp-rp-strength-scope-static{
  font-size:9px;
  color:var(--text3);
  line-height:1.35;
  margin:-2px 0 4px;
  font-style:italic;
}
.kp-rp-strength-scope-static strong{font-style:normal;color:var(--text2);font-weight:600}
.kp-rp-strength-order-static{
  font-size:10px;
  color:var(--text2);
  line-height:1.4;
  margin:0 0 6px;
}
.kp-rp-list-block .kp-rp-col-title{margin-bottom:2px}
.kp-rp-list-block .kp-rp-list-total{margin-bottom:2px}
@media (max-width:1100px){
  .kp-rp-columns{grid-template-columns:1fr}
  .kp-rp-lists-stack{grid-template-columns:1fr}
  .kp-rp-additional-grid{grid-template-columns:1fr!important}
  .kp-rp-cancellation-section,.kp-rp-preference-section{grid-template-columns:1fr}
  .kp-rp-preference-section>.kp-rp-col-title{grid-row:auto}
}
.kp-rp-legend{font-size:10px;color:var(--text2);line-height:1.35}
.kp-rp-legend .kp-rp-red{color:#dc2626;font-weight:700}
.kp-rp-legend .kp-rp-blue{color:#2563eb;font-weight:700}
.kp-rp-legend .kp-rp-magenta{color:#c026d3;font-weight:700}
.kp-rp-rx{font-size:10px;color:var(--text2);font-weight:700;margin-left:1px}
.kp-rp-retro-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#dc2626;margin-left:4px;vertical-align:middle;flex-shrink:0}
.kp-rp-legend .kp-rp-legend-dot{margin-left:0;margin-right:4px;vertical-align:-1px}
[data-theme="dark"] .kp-rp-retro-dot{background:#f87171}
.kpt-moment-hidden{display:none!important}
.kpt-moment-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;
  padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg3);
}
.kpt-moment-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.kpt-moment-row{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end}
.kpt-moment-grid .field{min-width:100px;flex:1}
.kpt-moment-grid .field label{font-size:10px;color:var(--text3)}
.kpt-moment-grid .field input{font-size:11px;padding:4px 8px;width:100%}
.kpt-moment-row-step{align-items:flex-end}
.kpt-step-field{flex:0 1 220px;min-width:180px;max-width:100%}
.kpt-now-btn{font-size:11px;padding:5px 12px;white-space:nowrap;margin-bottom:1px}
.kpt-moment-grid .kp-rp-reset-btn{font-size:11px;padding:5px 12px;white-space:nowrap}
@media(max-width:800px){.kpt-moment-grid{grid-template-columns:1fr}}
.kp-rp-controls{margin-bottom:12px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg3)}
.kp-rp-controls-label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:8px}
.kp-rp-controls-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:8px}
.kp-rp-controls-row:last-child{margin-bottom:0}
.kp-rp-controls .field{min-width:120px;flex:1}
.kp-rp-controls .field label{font-size:10px;color:var(--text3)}
.kp-rp-controls .field input{font-size:11px;padding:4px 8px;width:100%}
.kp-rp-city-field{min-width:200px;flex:2}
.kp-rp-reset-btn{font-size:11px;padding:5px 12px;white-space:nowrap;align-self:flex-end}
.kp-rp-table{font-size:11px;text-align:center}
.kp-rp-table thead th{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 6px}
.kp-rp-table tbody td{padding:5px 7px;font-weight:600;font-family:var(--font-mono)}
.kp-rp-table td.kp-rp-inactive,
.kp-rp-table th.kp-rp-inactive{
  opacity:0.32;
  font-weight:500;
  color:var(--text3);
}
.kp-rp-table td.kp-rp-inactive .kp-rp-retro-dot{opacity:0.5}
.kp-rp-table .kp-rp-type{text-align:left;font-family:inherit;font-weight:700;color:var(--accent2);white-space:nowrap}
.kp-rp-table .kp-rp-th-grp-moon,.kp-rp-table .kp-rp-th-moon,.kp-rp-table .kp-rp-moon{background:rgba(234,179,8,.14)}
.kp-rp-table .kp-rp-th-grp-asc,.kp-rp-table .kp-rp-th-asc,.kp-rp-table .kp-rp-asc{background:rgba(16,185,129,.12)}
.kp-rp-table .kp-rp-th-day,.kp-rp-table .kp-rp-day,.kp-rp-table .kp-rp-th-nodes,.kp-rp-table .kp-rp-nodes{background:rgba(59,130,246,.12)}
.kp-rp-table .kp-rp-th-moon-end,.kp-rp-table .kp-rp-moon-end{border-right:2px solid var(--border)}
.kp-rp-table .kp-rp-th-grp-moon{border-right:none}
.kp-rp-table .kp-rp-th-grp-asc{border-left:2px solid var(--border)}
.kp-rp-table td .kp-rp-red{color:#dc2626;font-weight:700}
.kp-rp-table td .kp-rp-blue{color:#2563eb;font-weight:700}
.kp-rp-table td .kp-rp-magenta{color:#c026d3;font-weight:700}
/* RP color coding — cyan everywhere (Combo, Cusp, dasha, chips) */
.kp-rp-planet-match{
  color:var(--flag-sandhi);
  font-weight:700;
}
/* Beat .dasha-row.active .dr-short/.dr-full gold */
.dasha-row .dr-short .kp-rp-planet-match,
.dasha-row .dr-full .kp-rp-planet-match,
.dasha-row.active .dr-short .kp-rp-planet-match,
.dasha-row.active .dr-full .kp-rp-planet-match,
.dasha-balance .kp-rp-planet-match,
.dcb-lord .kp-rp-planet-match{
  color:var(--flag-sandhi)!important;
  font-weight:700;
  opacity:1;
}
.kp-dasha-rp-current{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:11px;color:var(--text2);min-width:0;max-width:100%;flex:1 1 auto;
}
.kp-dasha-meta-row{
  display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;
  padding:6px 16px 8px;border-bottom:1px solid var(--border2);
  background:var(--bg2);flex-shrink:0;
}
.kp-dasha-meta-row .kp-dasha-rp-current{
  flex:1 1 auto;width:100%;max-width:100%;
}
.kp-dasha-rp-label{
  font-size:10px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--text3);font-weight:600;flex-shrink:0;
}
.kp-dasha-rp-list{
  font-family:var(--font-mono);font-weight:600;line-height:1.35;
  display:flex;flex-wrap:wrap;gap:2px 0;min-width:0;
}
.kp-dasha-rp-none{color:var(--text3);font-weight:400}
.kp-dasha-chip{
  display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:0;
  font-family:var(--font-mono);font-size:11px;font-weight:600;
  line-height:1.45;padding:2px 7px;border-radius:4px;
  border:1px solid var(--border2);background:var(--bg3);
  color:var(--text2);white-space:normal;
}
.kp-dasha-chip-rp{border-color:color-mix(in srgb, var(--flag-sandhi) 45%, var(--border2));}
.kp-dasha-chip-ff{border-color:color-mix(in srgb, var(--accent) 40%, var(--border2));}
.kp-dasha-chip-sf{border-color:color-mix(in srgb, var(--blue) 45%, var(--border2));}
.kp-dasha-chip-common-ff{border-color:color-mix(in srgb, var(--accent) 55%, var(--border2));}
.kp-dasha-chip-common-sf{border-color:color-mix(in srgb, var(--blue) 55%, var(--border2));}
.kp-dasha-chip-empty,.kp-dasha-sig-pl{color:var(--text2);font-weight:500}
.kp-dasha-meta-has-sig{flex:1 1 220px}
.kp-rp-footer{margin-top:4px;font-size:10px;color:var(--text2);font-style:italic;line-height:1.35}
.kp-rp-fortuna{
  margin-top:6px;padding:8px 10px;
  border:1px solid var(--border2);border-radius:8px;
  background:color-mix(in srgb, var(--bg2) 88%, var(--bg4) 12%);
  font-size:11px;color:var(--text);line-height:1.45;
}
.kp-rp-fortuna-inner{display:flex;flex-direction:column;gap:6px;min-width:0}
.kp-rp-fortuna-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.kp-rp-fortuna-lbl{font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);font-size:10px}
.kp-rp-fortuna-deg{font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--text)}
.kp-rp-fortuna-lords{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}

/* Utils — Fortuna periods */
#kp-utils-fortuna-section{margin-top:14px}
.kp-fortuna-intro{font-size:11px;line-height:1.4}
.kp-fortuna-summary{
  margin:8px 0;padding:8px 10px;border:1px solid var(--border2);border-radius:8px;
  background:color-mix(in srgb, var(--bg2) 88%, var(--bg4) 12%);
}
.kp-fortuna-summary-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:6px}
.kp-fortuna-summary-lbl{font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);font-size:10px}
.kp-fortuna-summary-deg{font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--text)}
.kp-fortuna-summary-lords{display:flex;flex-wrap:wrap;gap:8px 16px}
.kp-fortuna-lord-chip{font-size:12px;font-weight:700;line-height:1.25}
.kp-fortuna-lord-lbl{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-right:4px}
.kp-fortuna-meta{margin:6px 0 8px;font-size:10px;color:var(--text2);font-style:italic;line-height:1.35}
.kp-fortuna-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px}
.kp-fortuna-search-note{font-size:10px;color:var(--text3);font-style:italic}
.kp-fortuna-results{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:stretch;
}
.kp-fortuna-tier{
  border:1px solid var(--border2);border-radius:8px;padding:8px 10px;
  background:color-mix(in srgb, var(--bg2) 92%, var(--bg3) 8%);
  min-width:0;display:flex;flex-direction:column;
}
.kp-fortuna-tier-hdr{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text2);margin-bottom:6px}
.kp-fortuna-tier-hdr .kp-fortuna-remain{
  display:block;margin-top:4px;text-transform:none;letter-spacing:0;font-weight:600;
}
.kp-fortuna-tier-body{display:flex;flex-direction:column;gap:8px;font-size:11px;line-height:1.4;color:var(--text);flex:1;min-width:0}
.kp-fortuna-hit{font-size:11px;line-height:1.35;word-break:break-word;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb, var(--border2) 65%, transparent)}
.kp-fortuna-hit:last-child{padding-bottom:0;border-bottom:none}
.kp-fortuna-hit-main{display:block;font-family:var(--font-mono);margin-top:2px}
.kp-fortuna-hit-lbl{font-family:var(--font-sans,inherit);font-weight:700;color:var(--text3);margin-right:4px}
.kp-fortuna-remain{
  margin-top:4px;font-size:10px;color:var(--accent2);font-weight:600;
  font-family:var(--font-sans,inherit);line-height:1.3;
}
.kp-fortuna-remain-now{color:var(--flag-sandhi,var(--accent))}
@media(max-width:900px){
  .kp-fortuna-results{grid-template-columns:1fr}
}
.kp-rp-type-radios{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11px;margin-bottom:4px}
.kp-rp-type-radios label{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--text2)}
.kp-rp-type-desc{font-size:10px;color:var(--text2);line-height:1.35;margin-bottom:0;font-style:italic}
.kp-rp-list-total{font-size:10px;font-weight:600;color:var(--text);margin-bottom:2px}
.kp-rp-list{
  font-size:12px;
  font-family:var(--font-mono);
  color:var(--accent2);
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  max-width:100%;
}
.kp-rp-additional-section{margin-bottom:0}
.kp-rp-additional-grid{
  display:flex;
  flex-direction:column;
  gap:2px;
  font-size:10px;
}
.kp-rp-color-code-grid{display:flex;flex-direction:column;gap:3px;font-size:10px}
.kp-rp-color-code-label{display:flex;align-items:center;gap:5px;cursor:pointer;color:var(--text2);line-height:1.35}
.kp-rp-color-code-label input[type=checkbox]{margin:0;cursor:pointer}
.kp-rp-additional-label{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px;cursor:pointer;color:var(--text2);margin-bottom:0;line-height:1.35}
.kp-rp-additional-label input[type=checkbox]{margin:1px 0 0;cursor:pointer;flex-shrink:0}
.kp-rp-additional-grid > .kp-rp-additional-row{grid-column:1/-1}
.kp-rp-additional-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.kp-rp-ad-result{
  font-family:var(--font-mono);
  color:var(--accent2);
  font-weight:600;
  font-size:10px;
  line-height:1.35;
  flex-basis:100%;
  margin-left:18px;
  word-break:break-word;
}
.kp-rp-ad-result:empty{display:none;margin:0}
.kp-rp-final-section{
  margin-top:8px;
  padding-top:6px;
  border-top:1px solid var(--border);
}
.kp-rp-final-section .kp-rp-col-title{margin-bottom:4px}
.kp-rp-final-grid{
  display:flex;
  flex-wrap:wrap;
  gap:4px 8px;
  font-size:10px;
  margin-bottom:4px;
}
.kp-rp-final-label{
  display:flex;
  align-items:center;
  gap:3px;
  cursor:pointer;
  color:var(--text2);
  line-height:1.3;
  white-space:nowrap;
}
.kp-rp-final-label input[type=checkbox]{margin:0;cursor:pointer;flex-shrink:0}
.kp-rp-extended-list{
  font-size:11px;
  font-family:var(--font-mono);
  color:var(--accent2);
  font-weight:600;
  line-height:1.35;
  word-break:break-word;
}
.kp-rp-final-hint{
  margin-top:6px;
  font-size:10px;
  line-height:1.4;
  color:var(--text3);
  font-style:italic;
}
.kp-rp-final-section .kp-rp-color-code-section{
  margin-top:8px;
  padding-top:6px;
  border-top:1px solid var(--border);
}
.kp-rp-preference-content{font-size:11px;line-height:1.45;color:var(--text2);margin-top:2px}
.kp-rp-preference-content li{margin-bottom:2px}
.kp-rp-preference-note{font-size:10px;color:var(--text3);margin-top:4px;font-style:italic}
.kp-rp-col-controls .kp-rp-type-radios{margin-bottom:4px}

[data-theme="dark"] .kp-rp-table .kp-rp-th-grp-moon,[data-theme="dark"] .kp-rp-table .kp-rp-th-moon,[data-theme="dark"] .kp-rp-table .kp-rp-moon{background:rgba(234,179,8,.1)}
[data-theme="dark"] .kp-rp-table .kp-rp-th-grp-asc,[data-theme="dark"] .kp-rp-table .kp-rp-th-asc,[data-theme="dark"] .kp-rp-table .kp-rp-asc{background:rgba(16,185,129,.1)}
[data-theme="dark"] .kp-rp-table .kp-rp-th-day,[data-theme="dark"] .kp-rp-table .kp-rp-day,[data-theme="dark"] .kp-rp-table .kp-rp-th-nodes,[data-theme="dark"] .kp-rp-table .kp-rp-nodes{background:rgba(59,130,246,.18)}

/* ── Transit divisional chart slots inside analysis-outer ──────── */
.analysis-outer .slot-chart-area{min-height:420px;overflow:visible;padding:16px 12px 24px;display:flex;align-items:flex-start;justify-content:center;}
#transit-chart-slots .chart-slot{flex:1;min-width:280px;display:flex;flex-direction:column;overflow:visible;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg2);}
#transit-chart-slots .chart-slot:last-child{border-right:1px solid var(--border);}

/* ── Transit tab flag strip inside analysis-outer ─────────────── */
.analysis-outer > .chart-legend {
  margin: -14px -16px 0;
  border-radius: 0;
}

/* ══════════════════════════════════════════════════════════════════
   Reference Tab
══════════════════════════════════════════════════════════════════ */

/* ── Reference outer layout ─────────────────────────────────────── */
#tab-reference.active{display:flex;flex-direction:column;overflow:hidden}
#ref-inner{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}

/* ── Sub-tab bar ─────────────────────────────────────────────────── */
.ref-subtab-bar{
  display:flex;border-bottom:1px solid var(--border2);
  padding:0 16px;background:var(--bg2);flex-shrink:0;gap:4px;
  overflow-x:auto;scrollbar-width:none;
}
.ref-subtab-bar::-webkit-scrollbar{display:none}
.ref-stab{
  background:none;border:none;border-bottom:2px solid transparent;
  padding:8px 12px;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text3);transition:all var(--tr);white-space:nowrap;margin-bottom:-1px;
  font-weight:600;cursor:pointer;
}
.ref-stab:hover{color:var(--text2);background:var(--accent3)}
.ref-stab.active{color:var(--accent);border-bottom-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);background:var(--accent3)}

/* ── Content scroll area ─────────────────────────────────────────── */
#ref-content{
  flex:1;overflow-y:auto;overflow-x:auto;
  padding:20px 20px 40px;min-height:0;
}

/* ── Planet nav pills ────────────────────────────────────────────── */
.ref-planets-layout{display:flex;flex-direction:column;gap:20px}
.ref-planet-nav{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:14px 0 4px;
}
.ref-planet-pill{
  background:var(--bg3);border:1px solid var(--border2);
  padding:5px 12px;border-radius:20px;font-size:11px;font-weight:600;
  color:var(--text2);cursor:pointer;transition:all var(--tr);
  font-family:var(--font-body);letter-spacing:0.02em;
}
.ref-planet-pill:hover{border-color:var(--pc,var(--accent));color:var(--pc,var(--accent));background:var(--bg4)}
.ref-planet-pill.active{
  background:color-mix(in srgb,var(--pc,var(--accent)) 14%,transparent);
  border-color:var(--pc,var(--accent));color:var(--pc,var(--accent));
}

/* ── Planet detail card ──────────────────────────────────────────── */
.ref-planet-card{
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);
  overflow:hidden;
  border-top:2px solid var(--pc,var(--accent));
}
.ref-planet-hero{
  display:flex;align-items:center;gap:14px;
  padding:16px 18px 14px;
  background:color-mix(in srgb,var(--pc,var(--accent)) 6%,transparent);
  border-bottom:1px solid var(--border);
}
.ref-planet-sym{
  font-size:36px;line-height:1;
  color:var(--pc,var(--accent));
  text-shadow:0 0 20px color-mix(in srgb,var(--pc,var(--accent)) 40%,transparent);
}
.ref-planet-name{
  font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:0.03em;
  color:var(--text);
}
.ref-planet-skt{font-size:11px;color:var(--text3);letter-spacing:0.12em;margin-top:2px}
.ref-planet-avatar{
  margin-left:auto;font-size:11px;color:var(--text3);letter-spacing:0.12em;
  text-transform:uppercase;text-align:right;
  padding:4px 10px;border:1px solid var(--border2);border-radius:20px;
  background:var(--bg3);
}

/* ── Attribute grid ──────────────────────────────────────────────── */
.ref-attrs-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:1px;background:var(--border);
  border-bottom:1px solid var(--border);
}
.ref-attr{
  display:flex;flex-direction:column;gap:3px;
  padding:9px 14px;background:var(--bg2);
}
.ref-attr-lbl{
  font-size:9px;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--text3);font-weight:600;
}
.ref-attr-val{font-size:12px;color:var(--text);line-height:1.4}

.ref-section-lbl{
  font-size:9px;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--accent);font-weight:700;
  padding:10px 14px 6px;
  border-bottom:1px solid var(--border);
  background:var(--bg3);
}

/* ── Side-by-side compact sections ───────────────────────────────── */
.ref-section-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1px;background:var(--border);
  border-bottom:1px solid var(--border);
}
.ref-section{
  background:var(--bg2);
  display:flex;flex-direction:column;
  min-width:0;
}
.ref-section .ref-section-lbl{
  border-bottom:1px solid var(--border);
  background:var(--bg3);
}
.ref-attrs-grid.ref-attrs-grid-col{
  grid-template-columns:1fr;
  border-bottom:none;
  flex:1;
}
@media(max-width:640px){
  .ref-section-row{grid-template-columns:1fr}
}

.ref-node-note{
  padding:10px 14px 12px;font-size:12px;color:var(--text2);
  line-height:1.6;border-bottom:1px solid var(--border);
  font-style:italic;
}

.ref-enemy-signs{
  display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 12px;
  border-bottom:1px solid var(--border);
}
.ref-sign-chip{
  padding:3px 10px;border-radius:12px;font-size:11px;
  background:var(--red2);color:var(--red);border:1px solid rgba(196,112,112,0.2);
}

/* ── Shared table sections ───────────────────────────────────────── */
.ref-table-section{
  margin-top:24px;padding:16px 18px;
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);
}
.ref-table-title{
  font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:0.1em;
  color:var(--accent);margin-bottom:12px;
}
.ref-table-scroll{overflow-x:auto}
.ref-table{width:100%;border-collapse:collapse;font-size:12px}
.ref-table th{
  padding:7px 10px;text-align:left;font-size:9px;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--text3);font-weight:600;
  border-bottom:2px solid var(--border2);white-space:nowrap;
}
.ref-table td{
  padding:6px 10px;border-bottom:1px solid var(--border);
  color:var(--text);vertical-align:middle;
}
.ref-table tr:hover td{background:var(--bg4)}
.ref-td-planet{font-weight:600;white-space:nowrap}
.ref-mono{font-family:var(--font-mono);font-size:11px;text-align:center}
.ref-table-mrityu th:first-child,.ref-table-mrityu td:first-child{
  position:sticky;left:0;background:var(--bg2);z-index:2;
  border-right:1px solid var(--border2);
}
.ref-table-mrityu tr:hover td:first-child{background:var(--bg4)}

/* ── Dignity status colors ───────────────────────────────────────── */
.ref-dig-ex{color:var(--green);font-weight:600}
.ref-dig-de{color:var(--red)}
.ref-dig-mt{color:var(--accent2);font-weight:600}
.ref-dig-own{color:var(--text2)}

/* ── Uccha belt grid ─────────────────────────────────────────────── */
.ref-belt-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:10px;
}
.ref-belt-card{
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);
  overflow:hidden;
}
.ref-belt-sign{
  font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--accent);font-weight:700;padding:7px 10px;
  background:var(--bg4);border-bottom:1px solid var(--border);
}

/* ── Strength bars ───────────────────────────────────────────────── */
.ref-strength-bars{display:flex;flex-direction:column;gap:6px}
.ref-strength-row{display:flex;align-items:center;gap:10px}
.ref-strength-lbl{
  font-size:11px;color:var(--text2);min-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ref-strength-track{
  flex:1;height:6px;background:var(--bg4);border-radius:3px;overflow:hidden;min-width:80px;
}
.ref-strength-fill{height:100%;border-radius:3px;transition:width 0.4s ease}
.ref-strength-pct{
  font-family:var(--font-mono);font-size:11px;color:var(--text3);min-width:38px;text-align:right;
}

/* ── Dasha chain ─────────────────────────────────────────────────── */
.ref-dasha-chain{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px;
  padding:10px 0;
}
.ref-dasha-node{
  display:flex;flex-direction:column;gap:2px;align-items:center;
  padding:8px 12px;background:var(--bg3);border:1px solid var(--border2);
  border-radius:var(--r);text-align:center;min-width:80px;
}
.ref-dasha-planet{font-weight:700;font-size:12px}
.ref-dasha-yrs{font-family:var(--font-mono);font-size:10px;color:var(--text3)}
.ref-dasha-note{font-size:9px;color:var(--text3);line-height:1.3;max-width:90px}
.ref-dasha-arrow{color:var(--text3);font-size:14px;padding:0 2px}

/* ── Hora chain ──────────────────────────────────────────────────── */
.ref-hora-chain{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  padding:10px 0 6px;
}
.ref-hora-node{font-weight:700;font-size:13px}
.ref-hora-sep{color:var(--text3);font-size:12px}

/* ── General note ────────────────────────────────────────────────── */
.ref-note{
  font-size:11px;color:var(--text3);line-height:1.6;
  border-left:2px solid var(--border2);padding-left:10px;margin-top:8px;
}

/* ── Signs grid ──────────────────────────────────────────────────── */
.ref-signs-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:10px;
}
.ref-sign-card{
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);
  overflow:hidden;transition:border-color var(--tr);
}
.ref-sign-card:hover{border-color:var(--border3)}
.ref-sign-top{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;background:var(--bg3);border-bottom:1px solid var(--border);
}
.ref-sign-sym{font-size:22px;line-height:1}
.ref-sign-name{font-family:var(--font-display);font-size:15px;font-weight:500;letter-spacing:0.02em;color:var(--text)}
.ref-sign-skt{font-size:10px;color:var(--text3);letter-spacing:0.1em}
.ref-sign-num{
  margin-left:auto;font-family:var(--font-mono);font-size:11px;
  color:var(--text3);background:var(--bg4);
  padding:2px 7px;border-radius:10px;border:1px solid var(--border);
}
.ref-sign-attrs{display:flex;flex-direction:column}
.ref-sattr{
  display:flex;justify-content:space-between;align-items:center;
  padding:5px 14px;border-bottom:1px solid var(--border);font-size:11px;
}
.ref-sattr:last-child{border-bottom:none}
.ref-sattr span:first-child{color:var(--text3)}
.ref-sattr span:last-child{color:var(--text);text-align:right;font-weight:500}

/* ── Stories ─────────────────────────────────────────────────────── */
.ref-story-tabs{
  display:flex;gap:6px;margin-bottom:20px;
  border-bottom:1px solid var(--border);padding-bottom:12px;
}
.ref-stab-sm{
  background:var(--bg3);border:1px solid var(--border2);
  padding:5px 14px;border-radius:20px;font-size:11px;font-weight:600;
  color:var(--text3);cursor:pointer;transition:all var(--tr);
  font-family:var(--font-body);letter-spacing:0.03em;
}
.ref-stab-sm:hover{color:var(--text2);border-color:var(--border3)}
.ref-stab-sm.active{
  background:var(--accent3);border-color:var(--accent);color:var(--accent);
}
.ref-story-card{
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);
  overflow:hidden;margin-bottom:20px;
  border-left:3px solid var(--accent);
}
.ref-story-subject{
  font-size:10px;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--accent);padding:12px 20px 0;font-weight:600;
}
.ref-story-title{
  font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:0.01em;line-height:1.35;
  color:var(--text);padding:6px 20px 14px;
  border-bottom:1px solid var(--border);
}
.ref-story-body{padding:16px 20px 20px;line-height:1.85;font-size:14px;color:var(--text2)}
.ref-story-body p{margin-bottom:12px}
.ref-story-body p:last-child{margin-bottom:0}
.ref-story-placeholder{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:40px;color:var(--text3);font-size:12px;letter-spacing:0.08em;
  border:1px dashed var(--border2);border-radius:var(--r2);
  background:var(--bg2);
}
.ref-story-ph-icon{font-size:24px;color:var(--border3)}


/* ── Reference — Explanation Blocks ─────────────────────────────── */
.ref-explain-block{
  background:var(--bg3);border-left:3px solid var(--accent);
  border-radius:0 var(--r) var(--r) 0;
  padding:12px 16px;margin-bottom:14px;font-size:12px;
  color:var(--text2);line-height:1.7;
}
.ref-explain-block p{margin-bottom:8px}
.ref-explain-block p:last-child{margin-bottom:0}
.ref-explain-head{
  font-size:10px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--accent2);font-weight:700;margin-bottom:6px;
}
.ref-explain-list{
  margin:6px 0 8px 16px;display:flex;flex-direction:column;gap:4px;
}
.ref-explain-list li{color:var(--text2);font-size:12px;line-height:1.6}
.ref-explain-list li:last-child{margin-bottom:0}
.ref-logic-chain{
  display:inline-block;
  font-family:var(--font-mono);font-size:11px;
  color:var(--accent);background:var(--accent3);
  border:1px solid rgba(200,168,75,0.2);
  padding:5px 12px;border-radius:var(--r);
  margin:6px 0;line-height:1.5;
}

/* ── Reference — Node two-col layout ────────────────────────────── */
.ref-node-two-col{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px;
}
@media(max-width:700px){.ref-node-two-col{grid-template-columns:1fr}}
.ref-node-block{
  background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
  padding:12px 14px;font-size:12px;color:var(--text2);line-height:1.7;
}
.ref-node-block p{margin-bottom:8px}
.ref-node-title{font-weight:700;font-size:12px;margin-bottom:8px;letter-spacing:0.02em}


/* ── Reference — View Toggle ─────────────────────────────────────── */
.ref-view-toggle{
  display:flex;gap:6px;padding:14px 0 8px;
}
.ref-view-btn{
  background:var(--bg3);border:1px solid var(--border2);
  padding:5px 14px;border-radius:20px;font-size:11px;font-weight:600;
  color:var(--text3);cursor:pointer;transition:all var(--tr);
  font-family:var(--font-body);letter-spacing:0.03em;
}
.ref-view-btn:hover{color:var(--text2);border-color:var(--border3)}
.ref-view-btn.active{background:var(--accent3);border-color:var(--accent);color:var(--accent)}

/* ── Reference — Comparison Table ───────────────────────────────── */
.ref-table-view{display:flex;flex-direction:column;gap:0}
.ref-table-comparison td{
  white-space:normal;max-width:200px;
  font-size:11.5px;vertical-align:top;line-height:1.5;
}
.ref-table-comparison td:first-child{
  white-space:nowrap;position:sticky;left:0;
  background:var(--bg2);z-index:2;
  border-right:1px solid var(--border2);
}
.ref-table-comparison tr:hover td:first-child{background:var(--bg4)}


/* ── Reference — Signs misc tags ────────────────────────────────── */
.ref-misc-tags{display:flex;flex-wrap:wrap;gap:5px;padding:10px 14px 12px;border-bottom:1px solid var(--border)}
.ref-misc-tags-sm{display:flex;flex-wrap:wrap;gap:4px}
.ref-misc-tag{
  font-size:10px;padding:2px 8px;border-radius:10px;
  background:var(--bg4);border:1px solid var(--border2);
  color:var(--text2);white-space:nowrap;
}
.ref-sign-prose{
  padding:10px 14px 12px;font-size:12px;color:var(--text2);
  line-height:1.6;border-bottom:1px solid var(--border);
}
.ref-sign-tag{
  display:inline-block;font-size:11px;
  padding:2px 8px;border-radius:10px;
  background:var(--bg3);border:1px solid var(--border2);
  color:var(--text);margin:2px 2px;
}


/* ── Reference — Panchanga inner bar ────────────────────────────── */
.ref-panchanga-bar{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:14px 0 10px;border-bottom:1px solid var(--border2);
  margin-bottom:16px;
}
.ref-panchanga-body{display:flex;flex-direction:column;gap:0}

/* ── Reference — Stub placeholder ───────────────────────────────── */
.ref-stub{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:60px 20px;color:var(--text3);
}
.ref-stub-icon{font-size:28px;color:var(--border3)}
.ref-stub-title{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:0.02em;color:var(--text2)}
.ref-stub-note{font-size:11px;letter-spacing:0.1em;text-transform:uppercase}


/* ── Reference — Nakshatra nav ───────────────────────────────────── */
.ref-nak-nav{max-height:none}
.ref-nak-pill{font-size:10px;padding:4px 10px;letter-spacing:0.02em}
.ref-nak-no{
  font-family:var(--font-mono);font-size:22px;font-weight:700;
  color:var(--pc,var(--accent));opacity:0.7;min-width:36px;text-align:center;
}


/* ── Special Points & Column Flyouts ──────────────────────────────── */
.sp-flyout-overlay{
  position:fixed;inset:0;z-index:1099;
  background:transparent;
}
.sp-flyout{
  position:fixed;top:calc(52px + var(--sat));right:max(16px, var(--sar));z-index:1100;
  width:360px;max-height:min(70vh, calc(var(--vvh) - 72px - var(--sat) - var(--sab)));
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2,8px);box-shadow:0 8px 32px rgba(0,0,0,.35);
  display:flex;flex-direction:column;overflow:hidden;
}
.col-flyout{
  position:fixed;top:calc(52px + var(--sat));right:max(16px, var(--sar));z-index:1100;
  width:340px;max-height:min(70vh, calc(var(--vvh) - 72px - var(--sat) - var(--sab)));
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2,8px);box-shadow:0 8px 32px rgba(0,0,0,.35);
  display:flex;flex-direction:column;overflow:hidden;
}
.sp-flyout-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--border2);
  font-size:12px;font-weight:600;color:var(--text1);
  background:var(--bg3);flex-shrink:0;
}
.sp-close-btn{
  background:none;border:none;color:var(--text3);cursor:pointer;
  font-size:14px;padding:0 2px;line-height:1;
  transition:color var(--tr);
}
.sp-close-btn:hover{color:var(--text1);}
.sp-flyout-body{
  overflow-y:auto;overflow-x:hidden;padding:8px 0;flex:1 1 auto;min-height:0;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}
.sp-section-title{
  font-size:10px;font-weight:600;color:var(--text3);
  text-transform:uppercase;letter-spacing:.07em;
  padding:8px 14px 4px;margin-top:4px;
  border-top:1px solid var(--border2);
}
.sp-row{
  display:flex;align-items:flex-start;gap:10px;
  padding:8px 14px;cursor:pointer;
  transition:background var(--tr);
}
.sp-row:hover{background:var(--bg3);}
.sp-check{
  margin-top:2px;flex-shrink:0;accent-color:var(--accent);
  width:14px;height:14px;cursor:pointer;
}
.sp-row-info{flex:1;min-width:0;}
.sp-row-label{
  font-size:12px;font-weight:600;color:var(--text1);
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.sp-abbr{
  font-size:10px;font-family:var(--font-mono);
  color:var(--accent);background:var(--accent3);
  padding:1px 5px;border-radius:3px;
}
.sp-tier{
  font-size:9px;font-weight:700;letter-spacing:.06em;
  color:var(--text3);background:var(--bg3);
  border:1px solid var(--border2);padding:1px 5px;border-radius:3px;
  text-transform:uppercase;
}
.sp-row-sub{
  font-size:10px;color:var(--text3);margin-top:2px;
}
.sp-note{
  display:inline-block;font-size:9px;color:var(--text3);
  margin-top:2px;
}
.sp-note-warn{color:var(--yellow,#eab308);}

/* SP group header */
.sp-group-hdr{
  display:flex;align-items:center;
  padding:7px 14px 5px;
  background:var(--bg3);
  border-top:1px solid var(--border2);
  border-bottom:1px solid var(--border2);
  margin-top:2px;
}
.sp-group-label{
  font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  color:var(--text2);
}
/* Indented individual SP rows within a group */
.sp-row-indent{padding-left:28px;}

/* Two-column grid for SP items within each group */
.sp-two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.sp-two-col .sp-row-indent{
  padding-left:14px;
  border-right:1px solid var(--border1);
}
.sp-two-col .sp-row-indent:nth-child(2n){
  border-right:none;
}

/* SP button active state */
.sp-btn-active{
  border-color:var(--accent)!important;
  color:var(--accent)!important;
  background:var(--accent3)!important;
}
/* SP button styling — slightly wider than slot-ctrl-btn */
.sp-points-btn{
  background:var(--red);border:1px solid var(--red);color:#fff;
  height:28px;padding:0 10px;border-radius:var(--r);font-size:11px;
  font-weight:600;letter-spacing:.03em;cursor:pointer;
  transition:all var(--tr);display:flex;align-items:center;gap:4px;white-space:nowrap;
}
.sp-points-btn:hover{border-color:var(--red);color:#fff;background:var(--red);}

/* Column toggle flyout */
.col-group-title{
  font-size:10px;font-weight:600;color:var(--text3);
  text-transform:uppercase;letter-spacing:.07em;
  padding:8px 14px 4px;
  border-top:1px solid var(--border2);margin-top:2px;
}
.col-group-title:first-child{border-top:none;margin-top:0;}
.col-group-row{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 14px 8px;
}
.col-chip{
  display:flex;align-items:center;gap:4px;cursor:pointer;
  background:var(--bg3);border:1px solid var(--border2);
  border-radius:4px;padding:3px 8px;font-size:11px;color:var(--text2);
  transition:all var(--tr);user-select:none;
}
.col-chip:hover{border-color:var(--accent);color:var(--accent);}
.col-chip input{accent-color:var(--accent);width:12px;height:12px;cursor:pointer;}
.an-hdr.no-collapse::after{display:none}
.an-hdr.no-collapse:hover{background:var(--bg3)}

/* ── Bhava Activation reason chips ──────────────────────────────────── */
.ba-entry{display:flex;align-items:flex-start;gap:6px;padding:3px 0;flex-wrap:wrap}
.ba-planet{font-weight:600;color:var(--accent);font-size:11px;min-width:72px;flex-shrink:0;line-height:1.6}
.ba-house{font-weight:600;color:var(--accent);font-family:var(--font-mono);font-size:11px;min-width:36px;flex-shrink:0;line-height:1.6}
.ba-reasons{display:flex;flex-wrap:wrap;gap:3px;align-items:center;flex:1;min-width:0}
.ba-reason{
  font-size:9px;color:var(--text3);background:var(--bg3);
  border:1px solid var(--border2);border-radius:3px;
  padding:1px 5px;white-space:nowrap;line-height:1.5;
}

/* ── JHora Import ──────────────────────────────────────────────── */
.jhd-defaults-bar{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:6px 0 8px;border-bottom:1px solid var(--border2);margin-bottom:8px;
}
.jhd-defaults-bar select{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text1);
  border-radius:var(--r);padding:3px 6px;font-size:11px;
}
.jhd-table-wrap{
  overflow-x:auto;max-height:54vh;overflow-y:auto;
}
.jhd-table{
  border-collapse:collapse;font-size:11px;width:100%;min-width:700px;
}
.jhd-table th{
  background:var(--bg3);color:var(--text2);font-weight:600;
  padding:5px 6px;text-align:left;border-bottom:2px solid var(--border2);
  position:sticky;top:0;z-index:1;white-space:nowrap;
}
.jhd-table td{
  padding:3px 4px;border-bottom:1px solid var(--border2);vertical-align:middle;
}
.jhd-table tr:hover td{background:var(--bg3)}
.jhd-err-row td{background:var(--bg2);color:var(--danger,#f87171);}
.jhd-cell-input{
  background:var(--bg2);border:1px solid var(--border2);color:var(--text1);
  border-radius:3px;padding:2px 5px;font-size:11px;width:100%;min-width:60px;
  box-sizing:border-box;
}
.jhd-cell-input:focus{outline:none;border-color:var(--accent);}
.jhd-fname{color:var(--text3);font-size:10px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis;}

/* BM / QS summary cards hover */
.bm-sum-card { transition: background 0.15s, border-color 0.15s; cursor:default; }
.bm-sum-card:hover { background: var(--bg3, #1e2235) !important; border-color: var(--accent) !important; }

/* ══════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — added Session 43
   Breakpoints: ≤768px (mobile), 769–1024px (tablet)
   ══════════════════════════════════════════════════════════════ */

/* ── Mobile hamburger (hidden on desktop) ── */
.mobile-menu-btn{
  display:none;background:none;border:1px solid var(--border2);
  color:var(--text2);width:36px;height:36px;min-width:36px;border-radius:var(--r);
  font-size:16px;align-items:center;justify-content:center;
  flex-shrink:0;transition:all var(--tr);
}
.mobile-menu-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent3)}

.topbar-more-btn{display:none}
.topbar-more-menu{
  display:none;position:fixed;z-index:120;
  top:calc(var(--topbar-h) + var(--sat) + 4px);right:max(8px, var(--sar));
  min-width:200px;max-width:min(280px, calc(100vw - 24px));
  background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);
  box-shadow:var(--shadow-lg);padding:6px 0;
  flex-direction:column;
}
.topbar-more-menu:not([hidden]){display:flex}
.topbar-more-user{
  padding:10px 16px 6px;font-size:12px;font-weight:600;color:var(--text);
  font-family:var(--font-mono);word-break:break-all;line-height:1.35;
}
.topbar-more-user[hidden],.topbar-more-auth[hidden],.topbar-more-sep[hidden]{display:none !important}
.topbar-more-sep{height:1px;background:var(--border);margin:4px 0}
.topbar-more-item{
  background:none;border:none;text-align:left;width:100%;
  padding:12px 16px;font-size:14px;color:var(--text);cursor:pointer;
  font-family:var(--font-body);min-height:44px;
}
.topbar-more-item:hover,.topbar-more-item:active{background:var(--bg4);color:var(--accent)}
.topbar-more-auth{font-weight:600}
.topbar-more-watch{
  padding:8px 16px;font-size:12px;color:var(--text3);font-family:var(--font-mono);
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:4px 0;
}

/* ── Sidebar backdrop (mobile overlay) ── */
.sidebar-backdrop{
  display:none;position:fixed;top:calc(44px + var(--sat));left:0;right:0;bottom:0;background:rgba(0,0,0,0.65);
  z-index:149;backdrop-filter:blur(1px);
}
.sidebar-backdrop.active{display:block}
@media(min-width:769px) and (max-width:1024px){
  .sidebar-backdrop{top:0} /* tablet: full-height backdrop for side drawer */
}

/* ═══════════════ TABLET 769–1024px ═══════════════ */
@media(min-width:769px) and (max-width:1024px){
  .topbar-sep{display:none}
  .top-btn:not(#btn-logout){font-size:10px;padding:5px 9px}
  .mobile-menu-btn{display:flex}
  /* Tablet: also use More menu — topbar still crowded */
  .topbar-secondary{display:none !important}
  .topbar-more-btn{display:flex !important;width:40px;height:40px;min-width:40px;flex-shrink:0}
  .topbar{
    overflow:hidden;
    width:100%;max-width:100%;box-sizing:border-box;
    padding-right:max(12px, calc(var(--sar) + 8px));
  }
  .user-info{
    display:block !important;max-width:96px;overflow:hidden;text-overflow:ellipsis;
    white-space:nowrap;font-size:10px;flex-shrink:1;min-width:0;
  }
  .tier-pill{display:none !important}
  .lbl-wide{display:none !important}
  .sp-btn-label{display:none}
  .slot-bar .sp-points-btn,.fusion-bar .sp-points-btn,
  .an-hdr .sp-points-btn{
    flex-shrink:0;width:28px;min-width:28px;max-width:28px;padding:0;
    overflow:hidden;justify-content:center;font-size:14px;
  }
  .tabs-bar .tab-btn:last-child,
  .ref-subtab-bar .ref-stab:last-child{
    margin-right:max(20px, calc(var(--sar) + 16px));
  }
  .slot-bar,.fusion-bar{
    box-sizing:border-box;min-width:0;
    padding-right:max(16px, calc(var(--sar) + 14px));
  }
  .slot-ctrl-btn{flex-shrink:0}

  /* Sidebar: side drawer (not top panel) — collapses off-screen left */
  .sidebar{
    position:fixed;top:0;left:0;height:100%;width:300px !important;
    z-index:150;transform:translateX(-100%);
    transition:transform 0.25s ease;
    border-right:1px solid var(--border2) !important;
    box-shadow:4px 0 24px rgba(0,0,0,0.5);
    padding-top:var(--sat);padding-bottom:var(--sab);box-sizing:border-box;
  }
  .sidebar:not(.collapsed){transform:translateX(0)}
  .sidebar.collapsed{transform:translateX(-100%)}
  .sidebar-toggle{display:none !important}
  .layout{height:calc(var(--vvh) - var(--topbar-h) - var(--site-footer-h) - var(--sat) - var(--sab))}
  .main{width:100%}

  /* Single-column chart slots — full width like mobile */
  .chart-scroll-outer .chart-slots{flex-direction:column;min-height:unset}
  .chart-scroll-outer .chart-slot{min-width:unset;flex:none;min-height:360px;width:100%}
  .chart-scroll-outer .slot-chart-area{min-height:340px;padding:12px 16px 8px;overflow:visible}

  /* 2.3: also stack analysis pairs on tablet */
  .chart-scroll-outer #an-states-extra-row{grid-template-columns:1fr;gap:12px}
  .chart-scroll-outer #an-states-extra-row .an-section{
    border-radius:6px !important;border-right:1px solid var(--border2) !important;
  }
  .an-2col,#an-dosha-cards,#bnn-dir-grid,.kp-cusp-legend-grid{grid-template-columns:1fr !important}

  /* Transit slots */
  #transit-chart-slots{flex-direction:column}
  #transit-chart-slots .chart-slot{min-width:unset;flex:none;min-height:360px;width:100%}
  #transit-chart-slots .slot-chart-area{min-height:340px;overflow:visible}

  /* Fusion slots */
  .fusion-slots{flex-direction:column}
  .fusion-slots .chart-slot{min-width:unset;flex:none;min-height:440px;width:100%}
  .chart-scroll-outer .fusion-slots .slot-chart-area{min-height:420px;overflow:visible}

  /* Results header */
  .r-meta-row-sub{display:none}

  /* Planet table: hide non-essential columns, show core ones only */
  .data-table th[data-col="abbr"],.data-table td[data-col="abbr"],
  .data-table th[data-col="belt"],.data-table td[data-col="belt"],
  .data-table th[data-col="mb"],.data-table td[data-col="mb"],
  .data-table th[data-col="lord-h"],.data-table td[data-col="lord-h"],
  .data-table th[data-col="pada"],.data-table td[data-col="pada"],
  .data-table th[data-col="func"],.data-table td[data-col="func"],
  .data-table th[data-col="activates"],.data-table td[data-col="activates"],
  .data-table th[data-col="tara"],.data-table td[data-col="tara"],
  .data-table th[data-col="speed"],.data-table td[data-col="speed"],
  .data-table th[data-col="lat"],.data-table td[data-col="lat"],
  .kp-col,.kp-td{display:none}
  .data-table-wrap,.planet-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ═══════════════ MOBILE ≤768px ═══════════════ */
@media(max-width:768px){

  /* Topbar: compact — primary New/Load + More menu (must fit without clipping ⋮) */
  .topbar{
    --topbar-h:44px;
    width:100%;max-width:100%;box-sizing:border-box;
    padding-left:max(8px, var(--sal));
    padding-right:max(12px, calc(var(--sar) + 8px));
    gap:5px;
    overflow:hidden; /* clip internal bleed; children sized to fit */
  }
  .mobile-menu-btn{display:flex;width:40px;height:40px;min-width:40px}
  .topbar-sep{display:none}
  .topbar-secondary{display:none !important}
  .logo-text,.lbl-wide{display:none !important}
  .logo{flex-shrink:0;min-width:0}
  .topbar-more-btn{
    display:flex !important;width:40px;height:40px;min-width:40px;
    font-size:18px;font-weight:700;flex-shrink:0;
  }
  .topbar-primary{font-size:11px;padding:8px 8px;min-height:40px;white-space:nowrap;flex-shrink:0}
  .top-btn:not(#btn-logout){font-size:11px;padding:8px 8px}
  .user-info{
    display:block !important;max-width:72px;overflow:hidden;text-overflow:ellipsis;
    white-space:nowrap;font-size:10px;flex-shrink:1;min-width:0;
  }
  .tier-pill{display:none !important} /* tier pill stays in More via username context */
  .topbar-right{gap:4px;flex-shrink:0;margin-left:auto;min-width:0}
  .pref-top-btn,#theme-btn{width:40px;height:40px;min-width:40px;flex-shrink:0}

  /* Tabs / Parashari subtabs: room to scroll last label fully into view */
  .tabs-bar{
    padding:0 0 0 max(12px, var(--sal));
    -webkit-overflow-scrolling:touch;
  }
  .tabs-bar .tab-btn:last-child{
    margin-right:max(20px, calc(var(--sar) + 16px));
  }
  .ref-subtab-bar{
    padding:0 0 0 max(12px, var(--sal));
    -webkit-overflow-scrolling:touch;
  }
  .ref-subtab-bar .ref-stab:last-child{
    margin-right:max(20px, calc(var(--sar) + 16px));
  }

  /* Options = gear icon only (no clipped "Options" text) */
  .sp-btn-label{display:none}
  .slot-bar .sp-points-btn,.fusion-bar .sp-points-btn,
  .an-hdr .sp-points-btn{
    flex-shrink:0;width:28px;min-width:28px;max-width:28px;padding:0;
    overflow:hidden;justify-content:center;font-size:14px;
  }
  .chart-scroll-outer{
    scrollbar-gutter:stable;
    overflow-x:hidden;
  }
  .slot-bar,.fusion-bar{
    box-sizing:border-box;width:100%;max-width:100%;min-width:0;
    padding:6px max(16px, calc(var(--sar) + 14px)) 6px max(12px, var(--sal));
    flex-wrap:nowrap;
  }
  .slot-ctrl-btn{flex-shrink:0}

  /* J1: Sidebar → full-width top panel that slides DOWN from topbar */
  .sidebar{
    position:fixed;top:calc(44px + var(--sat));left:0;right:0;width:100% !important;height:auto;
    max-height:calc(var(--vvh) - 44px - var(--sat) - var(--sab));
    z-index:150;transform:translateY(-110%);
    transition:transform 0.25s ease;
    border-right:none !important;border-bottom:1px solid var(--border2) !important;
    box-shadow:0 8px 32px rgba(0,0,0,0.6);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .sidebar:not(.collapsed){transform:translateY(0)}
  .sidebar.collapsed{transform:translateY(-110%)}
  .sidebar-inner{width:100%;max-width:600px;margin:0 auto}

  /* Hide the desktop fixed sidebar-toggle; hamburger handles expand */
  .sidebar-toggle{display:none !important}

  /* Layout: full width */
  .layout{height:calc(var(--vvh) - 44px - var(--site-footer-h) - var(--sat) - var(--sab))}
  .main{width:100%}

  /* Results header: stack on very small screens */
  .results-hdr{
    padding:6px 12px;gap:0;flex-wrap:nowrap;flex-direction:column;align-items:stretch;
  }
  .r-hdr-toggle{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    width:100%;min-height:40px;padding:6px 4px;
    background:none;border:none;cursor:pointer;text-align:left;
    font-family:var(--font-body);color:var(--text);
  }
  .r-hdr-summary{
    flex:1;min-width:0;font-size:12px;font-weight:600;line-height:1.35;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .r-hdr-chevron{flex-shrink:0;font-size:12px;color:var(--text3);padding:0 4px}
  .results-hdr:not(.r-hdr-open) .r-hdr-full{display:none}
  .results-hdr.r-hdr-open .r-hdr-full{
    display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;
    padding:4px 0 2px;border-top:1px solid var(--border);
  }
  .r-name{font-size:14px}
  .r-meta{font-size:10px}
  .r-meta-row-sub{display:none}
  .r-actions{gap:5px}
  .r-actions .btn-save,.r-actions .btn-edit,.r-actions .btn-delete{
    font-size:9px;padding:4px 8px;
  }

  /* Flag strips: one-line toggle; full legend only when expanded */
  .chart-legend{
    padding:0;margin:0 0 4px;overflow:hidden;
  }
  .flag-strip-toggle{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    width:100%;min-height:36px;padding:6px 12px;
    background:none;border:none;cursor:pointer;text-align:left;
    font-family:var(--font-mono);font-size:11px;font-weight:600;
    letter-spacing:0.06em;text-transform:uppercase;color:var(--accent2);
  }
  .flag-strip-chevron{flex-shrink:0;font-size:11px;color:var(--text3);text-transform:none;letter-spacing:0}
  .chart-legend:not(.flag-strip-open) .flag-strip-body{display:none}
  .chart-legend.flag-strip-open .flag-strip-body{
    display:block;padding:0 12px 8px;font-size:10px;line-height:1.45;
  }

  /* Tabs bar */
  .tabs-bar{padding:0 0 0 max(10px, var(--sal))}
  .tab-btn{padding:9px 10px;font-size:11px;letter-spacing:0.06em}
  .tabs-bar .tab-btn:last-child{margin-right:max(20px, calc(var(--sar) + 16px))}

  /* Chart slots: single column on mobile, proper heights */
  .chart-scroll-outer .chart-slots{flex-direction:column;min-height:unset}
  .chart-scroll-outer .chart-slot{min-width:unset;flex:none;min-height:360px;width:100%}
  .chart-scroll-outer .slot-chart-area{min-height:340px;padding:10px 8px 8px;overflow:visible}

  /* 2.3: stack crowded Core / analysis 2-col sections */
  .chart-scroll-outer #an-states-extra-row{
    grid-template-columns:1fr;gap:12px;
  }
  .chart-scroll-outer #an-states-extra-row .an-section{
    border-radius:6px !important;border-right:1px solid var(--border2) !important;
  }
  .chart-scroll-outer #an-states-extra-row .an-hdr{
    border-radius:6px 6px 0 0 !important;
  }
  .an-2col,
  #an-dosha-cards,
  #bnn-dir-grid,
  .kp-cusp-legend-grid{
    grid-template-columns:1fr !important;
  }

  /* 2.3: no horizontal clip dead-ends; keep vertical scroll fluid */
  #yogas-content,#prashna-content{overflow-x:auto;-webkit-overflow-scrolling:touch}
  #strengths-inner{
    overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;
    padding-bottom:max(24px, var(--sab));
  }
  .chart-scroll-outer,.analysis-outer,.bnn-outer{
    -webkit-overflow-scrolling:touch;
    padding-bottom:max(28px, calc(var(--sab) + 12px));
  }
  .sp-flyout,.col-flyout{
    width:min(360px, calc(100vw - 16px - var(--sal) - var(--sar)));
    max-height:min(72vh, calc(var(--vvh) - 48px - var(--sat) - var(--sab)));
    right:max(8px, var(--sar));
  }
  .sp-flyout-body{padding-bottom:max(12px, var(--sab));-webkit-overflow-scrolling:touch;min-height:0}
  .pref-panel{-webkit-overflow-scrolling:touch}

  /* Transit slots same */
  #transit-chart-slots{flex-direction:column}
  #transit-chart-slots .chart-slot{min-width:unset;flex:none;min-height:360px}
  #transit-chart-slots .slot-chart-area{min-height:340px;overflow:visible}

  /* Fusion slots */
  .fusion-slots{flex-direction:column}
  .fusion-slots .chart-slot{min-width:unset;flex:none;min-height:420px}
  .chart-scroll-outer .fusion-slots .slot-chart-area{min-height:400px;overflow:visible}

  /* Slot controls: wrap */
  .slot-controls{flex-wrap:wrap;gap:5px;padding:8px max(12px, calc(var(--sar) + 8px)) 8px 10px}

  /* Data tables: horizontal scroll */
  .data-table-wrap,.planet-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .data-table{font-size:11px}
  .data-table th,.data-table td{padding:5px 7px}
  /* Hide non-essential columns on mobile — same as tablet */
  .data-table th[data-col="abbr"],.data-table td[data-col="abbr"],
  .data-table th[data-col="belt"],.data-table td[data-col="belt"],
  .data-table th[data-col="mb"],.data-table td[data-col="mb"],
  .data-table th[data-col="lord-h"],.data-table td[data-col="lord-h"],
  .data-table th[data-col="pada"],.data-table td[data-col="pada"],
  .data-table th[data-col="func"],.data-table td[data-col="func"],
  .data-table th[data-col="activates"],.data-table td[data-col="activates"],
  .data-table th[data-col="tara"],.data-table td[data-col="tara"],
  .data-table th[data-col="speed"],.data-table td[data-col="speed"],
  .data-table th[data-col="lat"],.data-table td[data-col="lat"],
  .kp-col,.kp-td{display:none}

  /* Dasha browser: stack vertically */
  .dasha-browser{flex-direction:column}
  .dasha-topbar{flex-wrap:wrap;gap:6px;padding:8px 10px}
  .dasha-lookup-row{margin-left:0;width:100%}

  /* Analysis tab */
  .an-section{padding:12px 10px}
  .analysis-outer .slot-chart-area{padding:10px 6px 16px}

  /* Prefs panel: full width on mobile */
  .pref-panel{width:100%}

  /* Modals: full width with padding */
  .modal-wrap{padding:12px}
  .modal{padding:20px 16px;max-width:100%}

  /* Toast: bottom center on mobile */
  .toast{right:max(12px, var(--sar));bottom:max(12px, var(--sab));left:max(12px, var(--sal));text-align:center}

  /* Flyout panels: full width */
  .flyout-panel,.sp-flyout-panel{width:100% !important;max-width:100% !important}

  /* Empty state */
  .empty-sym{font-size:38px}
  .empty-title{font-size:16px}

  /* Reference tab grid */
  .ref-node-two-col{grid-template-columns:1fr}

  /* Prashna / Kerala: scrollable */
  .prashna-outer,.kerala-outer{overflow-x:auto}

  /* Jamakkol: stack */
  .jk-layout,.jk-inner{flex-direction:column !important}

  /* BNN, Age tabs */
  .bnn-outer,.age-outer{padding:10px}

  /* Form inside sidebar (already in sidebar, just tighten) */
  .form-body{padding:10px 12px;gap:9px}
  .field-row{flex-direction:column;gap:6px}
  .coord-row{flex-direction:column;gap:6px}

  /* Sidebar header close button bigger hit area */
  .sidebar-hdr .icon-btn{width:36px;height:36px;font-size:16px}

  /* J3: Graha cards — allow horizontal scroll so content isn't clipped */
  .ref-planet-card{overflow:visible}
  .ref-attrs-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
  #ref-content{padding:12px 10px 40px}
  .ref-planet-hero{padding:12px 14px 10px;gap:10px}
  .ref-planet-name{font-size:15px}

  /* J3: Top buttons — sized to fit; More menu holds secondary */
  .topbar{flex-wrap:nowrap}

  /* Mobile readability improvements */
  .an-hdr{font-size:13px;padding:12px 14px}
  .an-body{font-size:13px}
  .data-table{font-size:12px}
  .data-table th{font-size:10px;padding:6px 8px}
  .data-table td{padding:6px 8px}
  .tab-btn{font-size:11px;padding:10px 10px}
  .r-meta{font-size:12px}
  .field label{font-size:11px}
}

/* ═══════════════ VERY SMALL ≤400px ═══════════════ */
@media(max-width:600px){
  .logo span,.logo-text{display:none} /* hide logo text, keep icon */
  .logo svg{margin-right:0}
}
@media(max-width:480px){
  .topbar-primary{font-size:10px;padding:8px 8px}
  .logo-text{display:none}
}
@media(max-width:400px){
  .tab-btn{padding:8px 7px;font-size:9px}
  .r-actions .btn-save{display:none} /* hide on tiny — accessible via menu */
  .logo{font-size:13px}
  .logo svg{width:18px;height:18px}
}

/* ── All Divisional Longitudes ─────────────────────────────────────── */
.adl-group-btn{
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);
  padding:4px 10px;border-radius:var(--r);font-size:11px;font-weight:500;
  cursor:pointer;transition:all var(--tr);
}
.adl-group-btn:hover{border-color:var(--accent);color:var(--accent)}
.adl-group-active{border-color:var(--accent)!important;color:var(--accent)!important;background:var(--accent3)!important}
.adl-table td,.adl-table th{border-bottom:1px solid var(--border);text-align:center}
.adl-table tbody tr{transition:background-color var(--tr)}
.adl-table tbody tr:hover td{background:var(--bg4)!important}
.adl-table tbody tr:hover td:first-child{background:var(--bg4)!important}
.adl-legend{margin-top:10px}
.adl-legend-body{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:6px 10px;
}
.adl-legend-toggle{display:none}
.adl-legend-item{display:flex;align-items:center;gap:6px;padding:5px 9px;font-size:10px;color:var(--text2);
  background:var(--bg3);border:1px solid var(--border2);border-radius:5px;white-space:nowrap}
.adl-legend-swatch{width:11px;height:11px;border-radius:2px;flex-shrink:0;border:1px solid var(--border2)}
.adl-legend-sym{font-weight:700;font-size:11px;line-height:1;flex-shrink:0;color:var(--text1)}
.adl-legend-vb{grid-column:1/-1;margin-top:4px;padding:10px 12px;border:1px solid var(--border2);border-radius:6px;background:var(--bg2)}
.adl-legend-vb-title{font-size:10px;font-weight:600;color:var(--text2);margin-bottom:6px}
.adl-legend-vb-ratings{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:10px;margin-bottom:6px}
.adl-legend-vb-note{font-size:10px;color:var(--text3);line-height:1.5}
@media(max-width:1024px){
  .adl-legend-toggle{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    width:100%;min-height:36px;padding:6px 4px;margin-bottom:4px;
    background:none;border:none;cursor:pointer;text-align:left;
    font-family:var(--font-mono);font-size:11px;font-weight:600;
    letter-spacing:0.06em;text-transform:uppercase;color:var(--accent2);
  }
  .adl-legend-chevron{flex-shrink:0;font-size:11px;color:var(--text3);text-transform:none;letter-spacing:0}
  .adl-legend:not(.adl-legend-open) .adl-legend-body{display:none}
}

@keyframes vaCardIn {
  from { opacity:0; transform:translateY(6px) scale(0.97); }
  to   { opacity:1; transform:translateY(0)   scale(1);    }
}

/* Hide spinners on correction inputs */
#f-corr-deg::-webkit-outer-spin-button,
#f-corr-deg::-webkit-inner-spin-button,
#f-corr-min::-webkit-outer-spin-button,
#f-corr-min::-webkit-inner-spin-button,
#f-corr-sec::-webkit-outer-spin-button,
#f-corr-sec::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }

/* ── Panchanga extended sections ─────────────────────────────────── */
/* ── Panchanga base ───────────────────────────────────────────── */
.pc-section-gap{margin-top:12px}
.pc-soft-note{font-size:12px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:8px 12px;margin-bottom:12px;line-height:1.6}

/* pc-table: clean zebra with header accent */
.pc-table{width:100%;border-collapse:collapse;font-size:12px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.pc-table thead tr{background:linear-gradient(90deg,var(--bg3),var(--bg2));border-bottom:2px solid var(--border2,var(--border))}
.pc-table thead th{padding:8px 10px;color:var(--accent2);font-size:11px;font-weight:700;text-align:left;letter-spacing:.04em;text-transform:uppercase}
.pc-table td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:top}
.pc-table tr:last-child td{border-bottom:none}
.pc-lbl2{border-left:1px solid var(--border)!important}
.pc-table tbody tr:nth-child(even){background:rgba(255,255,255,.022)}
.pc-table tbody tr:hover{background:rgba(255,255,255,.045)}
.pc-lbl{color:var(--text3);font-size:10px;font-weight:700;white-space:nowrap;max-width:160px;width:1%;text-transform:uppercase;letter-spacing:.04em;padding-top:8px!important;line-height:1.4}
.pc-val{color:var(--text);font-family:var(--font-mono);font-size:12px}
.pc-val2{color:var(--text);opacity:.85;font-size:12.5px;font-weight:400;line-height:1.55}
.pc-2col{display:grid;grid-template-columns:1fr 1fr;gap:0}
.pc-2col .pc-lbl{padding-left:0}

/* quality color badges */
.pc-good{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:700;background:var(--green2);color:var(--green);border:1px solid var(--green)}
.pc-bad{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:700;background:var(--red2);color:var(--red);border:1px solid var(--red)}
.pc-neutral{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:700;background:rgba(148,163,184,.12);color:var(--text2);border:1px solid var(--border)}

/* current-time highlight row */
.pc-current-row td{background:rgba(110,231,183,.10)!important;box-shadow:inset 3px 0 0 var(--accent1,#6ee7b7)}
.pc-current-row .pc-badge-now{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:8px;font-size:9px;font-weight:800;background:var(--accent1,#6ee7b7);color:#0a0e1a;vertical-align:middle;letter-spacing:.03em}

/* timing table */
.pc-timing-table{width:100%;border-collapse:collapse;font-size:12px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.pc-timing-table thead tr{background:linear-gradient(90deg,var(--bg3),var(--bg2));border-bottom:2px solid var(--border2,var(--border))}
.pc-timing-table thead th{padding:7px 10px;color:var(--accent2);font-size:11px;font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.04em}
.pc-timing-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:12px}
.pc-timing-table tr:last-child td{border-bottom:none}
.pc-timing-table tbody tr:nth-child(even){background:rgba(255,255,255,.022)}
.pc-timing-table tbody tr:hover{background:rgba(255,255,255,.045)}
.pc-timing-table td:first-child{color:var(--text);font-weight:600}
.pc-timing-table .pc-current-row td{background:rgba(110,231,183,.10)!important;box-shadow:inset 3px 0 0 var(--accent1,#6ee7b7)}

/* 2-col grid for Panchak, Bhadra, Choghadiya etc */
.pc-2grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}
.pc-subhdr{font-size:12px;font-weight:700;color:var(--accent2);margin-bottom:8px;letter-spacing:.02em;text-transform:uppercase}

/* Bhadra cards */
.pc-bhadra-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:4px 0}
.pc-bhadra-card{border:1px solid rgba(248,113,113,.35);border-radius:8px;background:rgba(248,113,113,.07);padding:12px 14px;text-align:center}
.pc-bhadra-card .pc-bh-title{font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.pc-bhadra-card .pc-bh-time{font-size:13px;font-family:var(--font-mono);color:var(--text);text-align:right;white-space:nowrap}
.pc-bhadra-none{text-align:center;padding:18px;color:var(--text3);font-size:12px}

[data-theme="light"] .jk-info-card,
[data-theme="paper"] .jk-info-card{background:var(--bg4)}
[data-theme="light"] .jk-arc-table .arc-val,
[data-theme="paper"] .jk-arc-table .arc-val{color:var(--text)}
[data-theme="light"] .an-chip,
[data-theme="paper"] .an-chip{font-weight:700}

/* Panchak Yoga / Ganda Mool compact table */
.pc-period-table{width:100%;border-collapse:collapse;font-size:12px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.pc-period-table thead tr{background:linear-gradient(90deg,var(--bg3),var(--bg2));border-bottom:2px solid var(--border2,var(--border))}
.pc-period-table thead th{padding:7px 10px;color:var(--accent2);font-size:11px;font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.04em}
.pc-period-table td{padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text2);font-size:12px;vertical-align:middle}
.pc-period-table tr:last-child td{border-bottom:none}
.pc-period-table tbody tr:nth-child(even){background:rgba(255,255,255,.022)}
.pc-period-table .pc-current-row td{background:rgba(110,231,183,.10)!important;box-shadow:inset 3px 0 0 var(--accent1,#6ee7b7)}

/* ── Dina Shuddhi timeline ─────────────────────────────────────── */
.ds-chart{overflow-x:auto;background:linear-gradient(180deg,var(--bg2),var(--bg1));border:1px solid var(--border);border-radius:8px}
.ds-row{display:grid;grid-template-columns:132px minmax(720px,1fr);min-height:37px;border-bottom:1px solid var(--border)}
.ds-row:nth-child(even){background:rgba(255,255,255,.025)}
.ds-label{display:flex;align-items:center;justify-content:flex-end;padding:0 12px;color:var(--text2);font-size:12px;border-right:1px solid var(--border);white-space:nowrap}
.ds-track{position:relative;background-image:linear-gradient(to right,rgba(255,255,255,.08) 1px,transparent 1px);background-size:8.333% 100%}
.ds-bar{position:absolute;top:8px;height:20px;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.25);cursor:default;min-width:4px}
.ds-bar-text{display:block;padding:3px 7px;color:var(--bg1);font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-tip{display:none;position:absolute;left:50%;top:28px;transform:translateX(-50%);z-index:20;min-width:220px;background:var(--popup-bg,var(--bg3));border:1px solid var(--popup-border,var(--border3));border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.7);padding:10px 12px;color:var(--popup-text,var(--text));font-size:12px;line-height:1.65;opacity:1}
.ds-bar:hover .ds-tip{display:block}
.ds-tip-title{color:var(--red);font-weight:800;text-align:center;margin-bottom:6px}
.ds-tip b{display:inline-block;width:70px;color:var(--text)}
.ds-tip-duration{border-top:1px solid var(--border2);margin-top:6px;padding-top:6px}
.ds-axis{display:grid;grid-template-columns:repeat(13,1fr);min-width:852px;margin-left:132px;padding:7px 0;color:var(--text3);font-size:11px;font-family:var(--font-mono);text-align:center}

/* ── Hora table ───────────────────────────────────────────────── */
.hora-table-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hora-col{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg1)}
.hora-col-hdr{padding:10px 14px;background:linear-gradient(90deg,var(--bg3),var(--bg2));border-bottom:2px solid var(--border);font-weight:700;color:var(--accent2);font-size:13px;letter-spacing:.02em}
.hora-row{display:grid;grid-template-columns:minmax(150px,190px) 1fr;gap:10px;align-items:center;padding:5px 8px;border-bottom:1px solid var(--border)}
.hora-row:nth-child(odd){background:rgba(255,255,255,.022)}
.hora-row:last-child{border-bottom:none}
.hora-row.pc-hora-current{background:rgba(110,231,183,.12)!important;box-shadow:inset 3px 0 0 var(--accent1,#6ee7b7)}
.hora-chip{border-radius:5px;padding:7px 10px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.01em}
.hora-time{font-family:var(--font-mono);font-size:12px;color:var(--text2);white-space:nowrap}
.hora-moon,.hora-venus{background:#f0f0ea;color:#343844}
.hora-saturn{background:#3e4249;color:#c8ccd6;border:1px solid #555}
.hora-jupiter{background:#f7e400;color:#2e2800}
.hora-mars{background:#9e0c0e;color:#ffd0d0}
.hora-sun{background:#a03010;color:#ffe0c0}
.hora-mercury{background:#3b6b06;color:#d4f5b0}
.hora-default{background:var(--bg3);color:var(--text)}
/* Light/paper: hora chips keep planet identity but darken for contrast */
[data-theme="light"] .hora-moon,[data-theme="light"] .hora-venus,
[data-theme="paper"] .hora-moon,[data-theme="paper"] .hora-venus{background:#e8e8d8;color:#1a1a2c}
[data-theme="light"] .hora-saturn,[data-theme="paper"] .hora-saturn{background:#4a5058;color:#e8ecf0;border:1px solid #333}
[data-theme="light"] .hora-jupiter,[data-theme="paper"] .hora-jupiter{background:#c8b800;color:#1a1000}
[data-theme="light"] .hora-mars,[data-theme="paper"] .hora-mars{background:#8a0a0c;color:#ffe0e0}
[data-theme="light"] .hora-sun,[data-theme="paper"] .hora-sun{background:#8a2800;color:#ffe8d0}
[data-theme="light"] .hora-mercury,[data-theme="paper"] .hora-mercury{background:#2e5604;color:#d0f0a0}
@media(max-width:850px){.hora-table-wrap{grid-template-columns:1fr}.hora-row{grid-template-columns:1fr}.hora-time{padding:0 2px 5px}}

/* ── Month detail: Hora two-column pill layout ─── */
.pc-hora-cols{display:flex;gap:12px;align-items:flex-start}
.pc-hora-col{flex:1;min-width:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.pc-hora-col-hdr{padding:7px 12px;background:linear-gradient(90deg,var(--bg3),var(--bg2));border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.05em}
.pc-hora-item{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;border-bottom:1px solid var(--border);gap:8px}
.pc-hora-item:last-child{border-bottom:none}
.pc-hora-item:nth-child(odd){background:rgba(255,255,255,.02)}
.pc-hora-pill{border-radius:20px;padding:3px 11px;font-size:11px;font-weight:700;white-space:nowrap;letter-spacing:.02em;flex-shrink:0}
.pc-hora-time{font-family:var(--font-mono);font-size:11px;color:var(--text3);white-space:nowrap}
@media(max-width:600px){.pc-2col{grid-template-columns:1fr}.pc-2grid{grid-template-columns:1fr}}

/* ── Tooltip Card ────────────────────────────────────────────── */
#tooltip-card{position:fixed;z-index:9000;pointer-events:auto}
.tip-card{min-width:240px;max-width:340px;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.45);padding:12px 14px}
.tip-card-in{animation:tipIn .15s ease both}
@keyframes tipIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.tip-header{display:flex;align-items:baseline;gap:6px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.tip-entity-name{font-weight:700;font-size:13px;color:var(--accent)}
.tip-entity-type{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}
.tip-section{margin-top:8px}
.tip-section-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:3px}
.tip-section-content{font-size:12px;color:var(--text2);margin:0;line-height:1.5;white-space:pre-line}
/* Tooltip Admin Modal */
.ttadm-tbl{width:100%;font-size:12px;border-collapse:collapse}
.ttadm-tbl th{text-align:left;padding:4px 8px;color:var(--text3);font-weight:600;border-bottom:1px solid var(--border)}
.ttadm-tbl td{padding:4px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.ttadm-tbl td:last-child{text-align:right;white-space:nowrap}
.ttadm-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 6px}
.ttadm-del:hover{color:var(--red)}
/* Rashi card info button */
#rashi-info-btn{float:right;background:none;border:none;color:var(--accent);font-size:15px;cursor:pointer;line-height:1;padding:0 2px}


/* ═══════════════════════════════════════════════════════════════════
   SEARCH TAB — Session 76
   ═══════════════════════════════════════════════════════════════════ */

/* ── Location bar ─────────────────────────────────────────────────── */
.srch-location-bar{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);padding:14px 16px 10px;margin-bottom:12px;
}
.srch-loc-fields{
  display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;
}
.srch-loc-fields .field{margin:0;min-width:120px}
.srch-city-wrap{flex:2;min-width:180px;position:relative}
/* Float the results over content — never push layout */
.srch-city-wrap .city-results{
  position:absolute;top:100%;left:0;right:0;
  z-index:200;margin-top:2px;
}

/* ── Sections ─────────────────────────────────────────────────────── */
.srch-section{margin-bottom:10px}
.srch-section .an-hdr{
  display:flex;align-items:center;gap:8px;cursor:default;
}
.srch-section-hint{
  font-size:10px;font-weight:400;color:var(--text3);
  margin-left:4px;letter-spacing:0.01em;
}
.srch-section-body{padding:12px 14px 14px}

/* ── Pills shared ─────────────────────────────────────────────────── */
.srch-pill-row{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;
}
.srch-pill{
  padding:5px 13px;border-radius:20px;font-size:11px;font-weight:600;
  cursor:pointer;border:1px solid var(--border2);
  background:var(--bg3);color:var(--text2);
  transition:all var(--tr);font-family:var(--font-body);
  letter-spacing:0.02em;
}
.srch-pill:hover{background:var(--bg4);border-color:var(--accent);color:var(--accent)}
.srch-pill.active{
  background:color-mix(in srgb,var(--accent) 14%,transparent);
  border-color:var(--accent);color:var(--accent);
}

/* Planet-coloured pills */
.srch-pill-sun.active     {background:rgba(251,191,36,0.15); border-color:rgba(251,191,36,0.8);  color:#b45309}
.srch-pill-moon.active    {background:rgba(147,197,253,0.15);border-color:rgba(147,197,253,0.8); color:#1d4ed8}
.srch-pill-mars.active    {background:rgba(239,68,68,0.15);  border-color:rgba(239,68,68,0.8);   color:#b91c1c}
.srch-pill-mercury.active {background:rgba(52,211,153,0.15); border-color:rgba(52,211,153,0.8);  color:#065f46}
.srch-pill-jupiter.active {background:rgba(167,139,250,0.15);border-color:rgba(167,139,250,0.8); color:#5b21b6}
.srch-pill-venus.active   {background:rgba(249,168,212,0.15);border-color:rgba(249,168,212,0.8); color:#9d174d}
.srch-pill-saturn.active  {background:rgba(148,163,184,0.15);border-color:rgba(148,163,184,0.8); color:#334155}
.srch-pill-all.active     {background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent);color:var(--accent)}

/* ── Today highlight — warm amber, reads as "active right now"
   Deliberately different from accent (search button / selected pill)  ── */
:root {
  --today-bg:     rgba(217,119,6,0.12);
  --today-border: rgba(217,119,6,0.7);
  --today-text:   #b45309;
  --today-dot:    #d97706;
}
[data-theme="dark"] {
  --today-bg:     rgba(251,191,36,0.12);
  --today-border: rgba(251,191,36,0.6);
  --today-text:   #fbbf24;
  --today-dot:    #fbbf24;
}
[data-theme="paper"] {
  --today-bg:     rgba(180,83,9,0.10);
  --today-border: rgba(180,83,9,0.55);
  --today-text:   #92400e;
  --today-dot:    #b45309;
}

.srch-pill-tithi.srch-tithi-today,
.srch-pill-nak.srch-tithi-today,
.srch-pill-karana.srch-tithi-today {
  background:   var(--today-bg);
  border-color: var(--today-border);
  color:        var(--today-text);
  font-weight:  700;
  position:     relative;
}

/* Dot indicator above pill */
.srch-pill-tithi.srch-tithi-today::after,
.srch-pill-nak.srch-tithi-today::after,
.srch-pill-karana.srch-tithi-today::after {
  content: "●";
  position: absolute;
  top: -6px; right: 50%;
  transform: translateX(50%);
  font-size: 6px;
  color: var(--today-dot);
  line-height: 1;
}

/* Today + user-selected together — amber fill */
.srch-pill-tithi.srch-tithi-today.active,
.srch-pill-nak.srch-tithi-today.active,
.srch-pill-karana.srch-tithi-today.active {
  background:   var(--today-border);
  color:        #fff;
  border-color: var(--today-border);
}

/* Relative time badge next to next-start */
.srch-rel-time{
  display:inline-block;margin-left:6px;
  padding:1px 7px;border-radius:8px;font-size:10px;font-weight:600;
  background:color-mix(in srgb,var(--accent) 15%,transparent);
  color:var(--accent);letter-spacing:0.02em;vertical-align:middle;
}

/* Tithi pills — wider now that they show names not numbers */
.srch-pill-tithi{
  width:auto;min-width:36px;padding:5px 7px;text-align:center;
  font-size:10px;font-weight:600;
}
.srch-tithi-group{margin-bottom:4px}
.srch-tithi-label{
  font-size:10px;font-weight:600;color:var(--text3);
  text-transform:uppercase;letter-spacing:0.05em;
  margin-bottom:5px;
}

/* ── Search button ────────────────────────────────────────────────── */
.btn-srch-go{
  padding:7px 20px;border-radius:var(--r1);
  background:var(--accent);color:#fff;
  border:none;font-size:12px;font-weight:600;
  cursor:pointer;transition:opacity var(--tr);letter-spacing:0.02em;
  margin-bottom:12px;min-width:90px;
}
.btn-srch-go:hover{opacity:0.88}
.btn-srch-go:disabled{opacity:0.45;cursor:default}

/* ── Result area ──────────────────────────────────────────────────── */
.srch-result{min-height:0}

.srch-error{
  color:var(--red,#ef4444);font-size:12px;padding:8px 0;
}
.srch-loading{
  color:var(--text3);font-size:12px;padding:8px 0;
  display:flex;align-items:center;gap:8px;
}
.srch-spinner{
  width:14px;height:14px;border-radius:50%;
  border:2px solid var(--border2);
  border-top-color:var(--accent);
  display:inline-block;animation:srch-spin 0.7s linear infinite;
}
@keyframes srch-spin{to{transform:rotate(360deg)}}

/* ── Nakshatra / Yoga pill grid — 9 per row ──────────────────────── */
.srch-nak-grid{
  display:grid;
  grid-template-columns:repeat(9,1fr);
  gap:4px;
  margin-bottom:12px;
}
@media(max-width:700px){
  .srch-nak-grid{grid-template-columns:repeat(5,1fr)}
}
.srch-pill-nak{
  padding:4px 6px;border-radius:var(--r1);
  font-size:10px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-align:center;
}


.srch-sunmoon-result-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
}
@media(max-width:600px){
  .srch-sunmoon-result-grid{grid-template-columns:repeat(2,1fr)}
}
.srch-sm-card{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);padding:10px 12px;
  display:flex;flex-direction:column;gap:4px;
}
.srch-sm-past{opacity:0.55}
.srch-sm-icon{font-size:18px;line-height:1}
.srch-sm-label{
  font-size:10px;font-weight:600;color:var(--text3);
  text-transform:uppercase;letter-spacing:0.05em;
}
.srch-sm-time{
  font-size:15px;font-weight:700;color:var(--text1);
  display:flex;align-items:center;gap:6px;
}
.srch-sm-past-badge{
  font-size:9px;font-weight:700;padding:1px 5px;
  border-radius:6px;background:var(--bg4);
  color:var(--text3);letter-spacing:0.03em;
}
.srch-sm-next{font-size:11px;color:var(--text3);margin-top:2px}
.srch-sm-next strong{color:var(--accent)}

/* ── Sun / Moon times card (in hora result) ───────────────────────── */
.srch-sunmoon-card{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);padding:10px 14px;margin-bottom:10px;
}
.srch-sunmoon-row{
  display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;
}
.srch-sunmoon-item{
  display:flex;align-items:center;gap:5px;
}
.srch-sunmoon-icon{font-size:13px;line-height:1}
.srch-sunmoon-lbl{
  font-size:10px;color:var(--text3);font-weight:500;
  text-transform:uppercase;letter-spacing:0.04em;
}
.srch-sunmoon-val{
  font-size:12px;font-weight:600;color:var(--text1);margin-left:2px;
}
.srch-sunmoon-type .srch-sunmoon-val{
  font-size:11px;font-weight:500;color:var(--text3);
}

/* ── Hora result ──────────────────────────────────────────────────── */
.srch-hora-meta{
  font-size:11px;color:var(--text3);margin-bottom:8px;
  padding:6px 10px;background:var(--bg2);
  border-radius:var(--r1);border:1px solid var(--border2);
}
.srch-hora-table{width:100%;font-size:12px}
.srch-hora-table th{font-size:10px;color:var(--text3)}
.srch-hora-past td{opacity:0.45}
.srch-hora-active{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.srch-hora-active td{font-weight:600}

.srch-planet-tag{
  display:inline-block;padding:2px 8px;border-radius:10px;
  font-size:10px;font-weight:700;border:1px solid transparent;
}
.srch-badge-now{
  display:inline-block;margin-left:6px;
  padding:1px 6px;border-radius:8px;font-size:9px;font-weight:700;
  background:var(--accent);color:var(--accent-fg,#fff);
  vertical-align:middle;letter-spacing:0.04em;
}

/* ── Tithi result ─────────────────────────────────────────────────── */
.srch-tithi-card{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:var(--r2);padding:14px 16px;
  display:flex;flex-direction:column;gap:8px;
  max-width:420px;
}
.srch-tithi-title{
  font-size:14px;font-weight:700;color:var(--text1);
  margin-bottom:2px;
}
.srch-tithi-row{
  display:flex;align-items:center;gap:10px;font-size:12px;
}
.srch-tithi-active-row{gap:8px}
.srch-tithi-lbl{
  color:var(--text3);font-size:11px;min-width:80px;
}
.srch-tithi-val{color:var(--text1);font-weight:500}
.srch-tithi-pct{
  font-size:12px;font-weight:600;
  color:var(--accent);
}
.srch-tithi-next{color:var(--accent);font-weight:600}
.srch-tithi-divider{
  height:1px;background:var(--border2);margin:2px 0;
}

/* ── Special Search Section ──────────────────────────────────────── */
.srch-sp-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.srch-sp-action-row {
  margin-top: 14px;
}
.srch-sp-label {
  font-size: 12px;
  color: var(--text2);
  white-space: nowrap;
}
.srch-sp-select {
  font-size: 12px;
  padding: 3px 6px;
  border: 1px solid var(--border2);
  border-radius: 4px;
  background: var(--bg2);
  color: var(--text1);
  cursor: pointer;
}
.srch-sp-select:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.srch-sp-deg-input {
  width: 52px;
  font-size: 12px;
  padding: 3px 6px;
  border: 1px solid var(--border2);
  border-radius: 4px;
  background: var(--bg2);
  color: var(--text1);
  text-align: center;
}
.srch-sp-target-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 10px 0 4px;
  padding: 10px 12px;
  border: 1px solid var(--border2);
  border-radius: 6px;
  background: var(--bg1);
}
.srch-sp-radio-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.srch-sp-radio-row input[type="radio"] {
  margin: 0;
  cursor: pointer;
}
.srch-sp-radio-row label {
  font-size: 12px;
  color: var(--text1);
  cursor: pointer;
  white-space: nowrap;
  min-width: 110px;
}
.srch-sp-chart-badge {
  font-size: 10px;
  font-weight: 700;
  color: var(--accent);
  background: var(--accent-bg, rgba(99,102,241,0.12));
  border: 1px solid var(--accent);
  border-radius: 3px;
  padding: 1px 5px;
}
.srch-sp-disabled {
  opacity: 0.45;
}
#srch-sp-btn {
  margin-left: auto;
}
#srch-sp-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.srch-sp-found-card {
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 6px;
  padding: 12px 14px;
  margin-top: 10px;
  font-size: 12px;
}
.srch-sp-found-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text1);
  margin-bottom: 8px;
}
.srch-sp-found-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
  color: var(--text2);
}
.srch-sp-found-val {
  font-weight: 600;
  color: var(--text1);
}
.srch-sp-found-rel {
  color: var(--accent);
  font-weight: 600;
}
.srch-sp-chart-select {
  font-size: 10px;
  font-weight: 700;
  color: var(--accent);
  background: var(--accent-bg, rgba(99,102,241,0.1));
  border: 1px solid var(--accent);
  border-radius: 3px;
  padding: 1px 4px;
  min-width: 40px;
}

/* Special Search — summary line */
.srch-sp-summary {
  font-size: 11px;
  color: var(--text3);
  font-style: italic;
  margin: 6px 0 2px;
  min-height: 16px;
  line-height: 1.5;
}

/* Special Search — fusion chart area: constrain to slot size */
#srch-sp-fusion-area {
  max-width: 480px;
}

.srch-eph-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 10px;
  color: var(--text2);
  font-size: 12px;
}
.srch-eph-meta span {
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 4px;
  padding: 5px 8px;
}
.srch-eph-meta strong { color: var(--text1); font-weight: 600; }
.srch-eph-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border2);
  border-radius: 4px;
  margin-top: 10px;
}
.srch-eph-table {
  min-width: 980px;
  margin: 0;
  font-size: 12px;
  white-space: nowrap;
}
.srch-eph-table th {
  position: sticky;
  top: 0;
  background: var(--bg2);
  z-index: 1;
  font-size: 10px;
  text-align: center;
}
.srch-eph-table td {
  text-align: center;
  cursor: pointer;
}
.srch-eph-table tbody tr:hover {
  background: color-mix(in srgb, var(--accent) 9%, transparent);
}
.srch-eph-table td.active {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--accent);
  font-weight: 700;
}
.srch-eph-date-cell {
  color: var(--accent);
  font-weight: 700;
  text-align: left !important;
}
.srch-eph-detail {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 10px;
  border: 1px solid var(--today-border);
  background: var(--today-bg);
  color: var(--today-text);
  border-radius: 4px;
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
}
.srch-eph-detail:empty { display: none; }
.srch-eph-detail strong { color: var(--text1); }
#srch-ephemeris-section .srch-sp-action-row {
  display: grid;
  grid-template-columns: auto 62px 90px;
  align-items: center;
  gap: 6px;
  width: max-content;
  margin-top: 6px;
}
#srch-ephemeris-section #srch-eph-btn {
  margin-left: 0;
  margin-bottom: 0;
  height: 32px;
  min-height: 32px;
  width: 90px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#srch-ephemeris-section #srch-eph-month {
  height: 32px;
  min-height: 32px;
  width: 62px;
  padding: 0 8px;
}
#srch-ephemeris-section .srch-sp-label {
  display: inline-flex;
  align-items: center;
  height: 32px;
  line-height: 32px;
  margin: 0;
  min-width: 0;
}
.srch-retro-controls {
  display: grid;
  grid-template-columns: auto 82px 90px;
  align-items: center;
  gap: 6px;
  width: max-content;
  margin-bottom: 10px;
}
.srch-retro-controls .srch-sp-label {
  display: inline-flex;
  align-items: center;
  height: 32px;
  line-height: 32px;
  margin: 0;
  min-width: 0;
}
.srch-retro-controls .srch-sp-select {
  height: 32px;
  min-height: 32px;
  width: 82px;
  padding: 0 8px;
}
.srch-retro-controls .btn-srch-go {
  margin: 0;
  height: 32px;
  min-height: 32px;
  width: 90px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.srch-retro-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: var(--text2);
  font-size: 12px;
}
.srch-retro-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  margin-left: 8px;
}
.srch-retro-dot:first-child { margin-left: 0; }
.srch-retro-dot.past { background: var(--text3); }
.srch-retro-dot.active { background: var(--green); }
.srch-retro-dot.future { background: var(--accent); }
.srch-retro-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 10px;
}
.srch-retro-card {
  position: relative;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 4px;
  padding: 14px 16px 14px 34px;
}
.srch-retro-card.srch-retro-past {
  opacity: 0.72;
  border-color: var(--border2);
}
.srch-retro-card.srch-retro-active {
  background: color-mix(in srgb, var(--green) 10%, var(--bg2));
  border-color: var(--green);
}
.srch-retro-card.srch-retro-future {
  background: color-mix(in srgb, var(--accent) 8%, var(--bg2));
  border-color: var(--accent);
}
.srch-retro-num {
  position: absolute;
  left: 8px;
  top: 8px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--text3);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
}
.srch-retro-active .srch-retro-num { background: var(--green); }
.srch-retro-future .srch-retro-num { background: var(--accent); color: var(--accent-fg); }
.srch-retro-title {
  color: var(--text1);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.srch-retro-title-next { margin-top: 14px; }
.srch-retro-date {
  color: var(--text2);
  font-size: 13px;
  margin-top: 4px;
}
.srch-retro-days {
  color: var(--text2);
  font-size: 13px;
  margin-top: 14px;
}

/* ── Search Charts (saved charts criteria) ─────────────────────────── */
.srch-charts-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;
}
.srch-charts-panel{
  border:1px solid var(--border2);border-radius:var(--r2);
  background:var(--bg2);padding:10px 12px;min-width:0;
}
.srch-charts-panel-title{
  font-size:11px;font-weight:700;color:var(--text3);
  text-transform:uppercase;letter-spacing:0.06em;margin-bottom:8px;
}
.srch-charts-radio-row{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-bottom:8px;font-size:12px;color:var(--text);cursor:pointer;
}
.srch-charts-radio-row input[type="radio"]{accent-color:var(--accent);flex-shrink:0}
.srch-charts-radio-row > span:first-of-type{min-width:78px;font-weight:600}
.srch-charts-radio-top{align-items:flex-start}
.srch-charts-radio-top > span:first-of-type{padding-top:4px}
.srch-charts-check-box{
  overflow:visible;
  border:1px solid var(--border2);border-radius:var(--r);
  background:var(--bg3);padding:6px 8px;min-width:140px;flex:1;
}
.srch-charts-cond-list{margin-top:4px;width:100%}
.srch-charts-check{
  display:flex;align-items:center;gap:6px;padding:3px 0;
  font-size:11px;color:var(--text2);cursor:pointer;user-select:none;
}
.srch-charts-check input{accent-color:var(--accent);flex-shrink:0}
.srch-charts-deg-wrap{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--text2);
}
.srch-charts-deg-wrap input{width:64px}
.srch-charts-actions{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px;
}
.srch-charts-actions .btn-srch-go,
.srch-charts-actions .btn-secondary{
  margin:0;min-height:34px;padding:7px 14px;font-size:12px;line-height:1.2;
  letter-spacing:0.02em;text-transform:none;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
}
.srch-charts-actions .btn-srch-go{min-width:90px;border:1px solid transparent}

.srch-charts-stack{
  margin-bottom:8px;border:1px solid var(--border2);border-radius:var(--r2);
  background:var(--bg2);padding:8px 10px;min-height:36px;
}
.srch-charts-stack-title{
  font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;
  letter-spacing:0.05em;margin-bottom:6px;
}
.srch-charts-stack-empty{font-size:11px;color:var(--text3)}
.srch-charts-stack-row{
  display:flex;align-items:center;gap:8px;padding:4px 0;
  border-top:1px solid var(--border);font-size:11px;color:var(--text2);
}
.srch-charts-stack-row:first-of-type{border-top:none}
.srch-charts-stack-label{flex:1;min-width:0;word-break:break-word}
.srch-charts-stack-rm{
  border:none;background:transparent;color:var(--text3);cursor:pointer;
  font-size:12px;padding:2px 6px;flex-shrink:0;
}
.srch-charts-stack-rm:hover{color:var(--danger,#f87171)}
.srch-charts-meta{
  font-size:11px;color:var(--text3);margin-bottom:6px;min-height:1.2em;
}
.srch-charts-results{
  max-height:min(320px,40vh);overflow-y:auto;
  border:1px solid var(--border2);border-radius:var(--r2);
  background:var(--bg2);min-height:72px;
}
.srch-charts-results .chart-list-item{cursor:pointer}
.srch-charts-results .chart-list-item.srch-charts-selected{
  background:color-mix(in srgb, var(--accent) 12%, var(--bg2));
}
.srch-charts-empty{color:var(--text3);padding:14px 12px;font-size:11px;text-align:center}
@media (max-width:700px){
  .srch-charts-grid{grid-template-columns:1fr}
  .srch-charts-radio-row > span:first-of-type{min-width:70px}
}

/* ═══ SARVATOBHADRA CHAKRA ══════════════════════════════════════════════════ */

#tab-chakras { padding: 8px 12px 28px; }
#tab-chakras .chakras-transit-bar { margin: 0 0 12px; flex: 0 0 auto; }
#tab-chakras .chakras-transit-grid { margin: 0; }
#tab-chakras .sbc-card { margin: 0; overflow: visible; flex: 0 0 auto; }
#tab-chakras .sbc-card-body { padding-top: 10px; overflow: visible; }
#tab-chakras #sbc-vedhas-section { flex: 0 0 auto; margin-top: 12px; }

#tab-dasha .dasha-subpanel.active { padding: 8px 12px 12px; }
#tab-dasha .dasha-vim-card {
  flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden;
}
#tab-dasha .dasha-vim-body {
  flex: 1; min-height: 0; display: flex; flex-direction: column;
  padding: 0; overflow: hidden;
}
#tab-dasha .dasha-vim-body .dasha-topbar { border-radius: 0; }
#tab-dasha .dasha-vim-body .dasha-browser { flex: 1; min-height: 0; }
.sbc-marker-controls {
  display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap;
  padding: 0 4px 10px; font-size: 11px; color: var(--text2); text-align: center;
}
.sbc-marker-heading {
  color: var(--text3); font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.08em; margin-right: 2px;
}
.sbc-marker-controls label {
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
  user-select: none;
}
.sbc-marker-controls input { accent-color: var(--accent); }
.sbc-dot {
  display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.72);
}
.sbc-dot-natal { background: #2255AA; }
.sbc-dot-transit { background: #B87800; }
.sbc-dot-extra { background: #0E7C7B; }
.sbc-benefic { background: #2E7D62; }
.sbc-malefic { background: #B85C38; }
.sbc-mixed { background: #A88A2A; }
.sbc-extra-controls {
  display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap;
  padding: 0 4px 10px; font-size: 11px; color: var(--text2); text-align: center;
}
.sbc-extra-controls label {
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
  user-select: none;
}
.sbc-extra-controls input { accent-color: var(--accent); }
.sbc-vedha-chip {
  width: fit-content; max-width: min(812px, 100%);
  margin: 0 auto 8px; padding: 5px 10px; border-radius: 6px;
  border: 1px solid var(--border2); background: var(--bg3);
  color: var(--text2); font-size: 11px; line-height: 1.45; text-align: center;
}
.sbc-legend {
  display: flex; justify-content: center; align-items: center; gap: 12px;
  flex-wrap: wrap; padding: 8px 4px 0; color: var(--text3); font-size: 10px;
}
.sbc-legend span { display: inline-flex; align-items: center; gap: 5px; }
.sbc-line-demo { display: inline-block; width: 24px; height: 0; border-top: 2px solid var(--text3); }
.sbc-line-demo.dashed { border-top-style: dashed; opacity: 0.75; }

.sbc-janma-strip {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 6px 14px; padding: 10px 8px; margin-top: 6px;
  color: var(--text); font-size: 12px; line-height: 1.4;
  border: 1px solid var(--border2); border-radius: 8px;
  background: color-mix(in srgb, var(--bg3) 88%, var(--accent) 12%);
}
.sbc-janma-item {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px; border-radius: 14px; border: 1.5px solid;
  font-weight: 600;
}
.sbc-janma-item em {
  font-style: normal; font-weight: 700; margin-right: 2px;
}
#sbc-svg .sbc-janma-pada-rect {
  fill: rgba(126, 182, 255, 0.55);
  stroke: #3a7bd5;
  stroke-width: 1.2;
  pointer-events: none;
}
#sbc-svg .sbc-janma-pada-txt {
  fill: #1a4a9a;
  font-weight: 800;
  pointer-events: none;
}
[data-theme="dark"] #sbc-svg .sbc-janma-pada-rect {
  fill: rgba(90, 140, 220, 0.4);
  stroke: #7eb0ff;
}
[data-theme="dark"] #sbc-svg .sbc-janma-pada-txt { fill: #b8d4ff; }

#sbc-container {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  justify-content: center;
}

/* SVG fills */
#sbc-svg text {
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
}
#sbc-svg rect {
  shape-rendering: crispEdges;
}
#sbc-svg .sbc-bg        { fill: var(--bg); }
#sbc-svg .sbc-hdr       { fill: #dcd6c8; stroke: #b8b0a0; stroke-width: 0.5; }
#sbc-svg .sbc-nav-cell  { fill: #eee8da; }
#sbc-svg .sbc-pad-cell  { fill: #eee8da; }
#sbc-svg .sbc-corner    { fill: #e4dfd2; }
#sbc-svg .sbc-nak-top,
#sbc-svg .sbc-nak-bot,
#sbc-svg .sbc-nak-left,
#sbc-svg .sbc-nak-right { fill: #d8d1c2; }
#sbc-svg .sbc-sign-hdr,
#sbc-svg .sbc-side-sign { fill: #c9c0ad; }
#sbc-svg .sbc-vowel     { fill: #f7f2e8; }
#sbc-svg .sbc-sign      { fill: #f7f2e8; }
#sbc-svg .sbc-vara      { fill: #f7f2e8; }

/* Dark theme overrides */
[data-theme="dark"] #sbc-svg .sbc-hdr      { fill: #1f1d28; stroke: #3a3547; }
[data-theme="dark"] #sbc-svg .sbc-nav-cell { fill: #1a1824; }
[data-theme="dark"] #sbc-svg .sbc-pad-cell { fill: #1a1824; }
[data-theme="dark"] #sbc-svg .sbc-corner   { fill: #1f1d28; }
[data-theme="dark"] #sbc-svg .sbc-nak-top,
[data-theme="dark"] #sbc-svg .sbc-nak-bot,
[data-theme="dark"] #sbc-svg .sbc-nak-left,
[data-theme="dark"] #sbc-svg .sbc-nak-right{ fill: #2a2838; }
[data-theme="dark"] #sbc-svg .sbc-sign-hdr,
[data-theme="dark"] #sbc-svg .sbc-side-sign{ fill: #242133; }
[data-theme="dark"] #sbc-svg .sbc-vowel    { fill: #12111a; }
[data-theme="dark"] #sbc-svg .sbc-sign     { fill: #12111a; }
[data-theme="dark"] #sbc-svg .sbc-vara     { fill: #12111a; }

/* Paper theme */
[data-theme="paper"] #sbc-svg .sbc-hdr      { fill: #e1d6bd; stroke: #c8b995; }
[data-theme="paper"] #sbc-svg .sbc-nav-cell { fill: #f0e8d4; }
[data-theme="paper"] #sbc-svg .sbc-pad-cell { fill: #f0e8d4; }
[data-theme="paper"] #sbc-svg .sbc-corner   { fill: #e8dfc8; }
[data-theme="paper"] #sbc-svg .sbc-nak-top,
[data-theme="paper"] #sbc-svg .sbc-nak-bot,
[data-theme="paper"] #sbc-svg .sbc-nak-left,
[data-theme="paper"] #sbc-svg .sbc-nak-right{ fill: #ddd4bc; }
[data-theme="paper"] #sbc-svg .sbc-sign-hdr,
[data-theme="paper"] #sbc-svg .sbc-side-sign{ fill: #d4c8a8; }
[data-theme="paper"] #sbc-svg .sbc-vowel    { fill: #f8f0e0; }

/* SVG text fills */
#sbc-svg .sbc-hdr-txt       { fill: #403b32; font-weight: 650; }
#sbc-svg .sbc-num-txt       { fill: #554f45; font-weight: 500; }
#sbc-svg .sbc-corner-txt    { fill: #403b32; font-weight: 650; }
#sbc-svg .sbc-nak-txt       { fill: #2f2a22; font-weight: 650; }
#sbc-svg .sbc-nak-janma {
  stroke: #1a4a9a;
  stroke-width: 2.4;
}
#sbc-svg .sbc-nak-janma-seq {
  font-size: 9px;
  font-weight: 700;
  fill: #3a5068;
  pointer-events: auto;
  cursor: pointer;
}
#sbc-svg .sbc-nak-janma-seq-1 {
  fill: #1a4a9a;
  font-size: 10px;
  font-weight: 800;
}
/* Tara / Sapta Nadi / Age Cycle bands (like Pada/Nav) — full names; L/R rotated */
#sbc-svg .sbc-tara-cell { fill: #ebe4d6; }
#sbc-svg .sbc-nadi-cell { fill: #e4ebe6; }
#sbc-svg .sbc-age-cell  { fill: #e6e4eb; }
#sbc-svg .sbc-tara-band-label,
#sbc-svg .sbc-nadi-band-label,
#sbc-svg .sbc-age-band-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  pointer-events: none;
}
#sbc-svg .sbc-tara-band-label-vert,
#sbc-svg .sbc-nadi-band-label-vert,
#sbc-svg .sbc-age-band-label-vert {
  font-size: 10.5px;
  font-weight: 800;
}
#sbc-svg .sbc-age-band-label {
  font-size: 10px;
  fill: #2f2a22;
}
#sbc-svg .sbc-age-band-label-vert {
  font-size: 9.5px;
}
[data-theme="dark"] #sbc-svg .sbc-tara-cell { fill: #252230; }
[data-theme="dark"] #sbc-svg .sbc-nadi-cell { fill: #1f2a24; }
[data-theme="dark"] #sbc-svg .sbc-age-cell  { fill: #24202c; }
[data-theme="dark"] #sbc-svg .sbc-age-band-label { fill: #c8d0da; }
#sbc-svg .sbc-nak-tara-abbr-janma { fill: #2255AA; }
#sbc-svg .sbc-nak-tara-abbr-sampat { fill: #2E7D62; }
#sbc-svg .sbc-nak-tara-abbr-vipat { fill: #B85C38; }
#sbc-svg .sbc-nak-tara-abbr-kshema { fill: #5B8C3E; }
#sbc-svg .sbc-nak-tara-abbr-pratyak { fill: #A88A2A; }
#sbc-svg .sbc-nak-tara-abbr-saadhana { fill: #6B5B95; }
#sbc-svg .sbc-nak-tara-abbr-naidhana { fill: #8B4513; }
#sbc-svg .sbc-nak-tara-abbr-mitra { fill: #3D7EA6; }
#sbc-svg .sbc-nak-tara-abbr-parama-mitra { fill: #C478A8; }
#sbc-svg .sbc-sign-hdr-txt  { fill: #2f2a22; font-weight: 650; }
#sbc-svg .sbc-side-sign-txt { fill: #2f2a22; font-weight: 650; }
#sbc-svg .sbc-vowel-txt     { fill: #5f574b; font-weight: 500; }
#sbc-svg .sbc-sign-txt      { fill: #2f2a22; font-weight: 650; }
#sbc-svg .sbc-vara-day      { fill: #2f2a22; font-weight: 650; }
#sbc-svg .sbc-vara-ti       { fill: #403b32; font-weight: 600; }
#sbc-svg .sbc-vara-yo       { fill: #554f45; font-weight: 500; }
/* Janma HL — light tints via data-hl-kind (beats class fills) */
#sbc-svg rect[data-hl-kind="day"]   { fill: #F4C8C8 !important; stroke: #C07070 !important; stroke-width: 1.5px !important; }
#sbc-svg rect[data-hl-kind="tithi"] { fill: #FFE6A0 !important; }
#sbc-svg text.sbc-vara-ti[data-hl-kind="tithi"] { fill: #9A7200 !important; font-weight: 700; }
#sbc-svg rect[data-hl-kind="rashi"] { fill: #B8D4F0 !important; }
#sbc-svg rect[data-hl-kind="nak"]   { fill: #F0C8E8 !important; }
#sbc-svg rect[data-hl-kind="lagna"]{ fill: #C8E6C0 !important; }
#sbc-svg .sbc-planet-marker .sbc-planet-bg { stroke: rgba(255,255,255,0.82); stroke-width: 0.7; }
#sbc-svg .sbc-planet-marker .sbc-planet-txt { fill: #fff; font-weight: 750; pointer-events: none; }
#sbc-svg .sbc-planet-natal .sbc-planet-bg { fill: #2255AA; }
#sbc-svg .sbc-planet-transit .sbc-planet-bg { fill: #B87800; }
#sbc-svg .sbc-planet-extra .sbc-planet-bg { fill: #0E7C7B; }
#sbc-svg .sbc-planet-marker { cursor: pointer; }
#sbc-svg .sbc-planet-selected .sbc-planet-bg { stroke: #fff; stroke-width: 1.8; }
#sbc-svg .sbc-vedha-line { fill: none; stroke-width: 2.1; stroke-linecap: round; pointer-events: none; }
#sbc-svg .sbc-vedha-head { stroke: none; pointer-events: none; }
/* Gauge preview (click a Janma-seq number) — dotted, neutral, illustrative
   only. Not a real vedha: no cell hits, no letters/tithi, no state change. */
#sbc-svg .sbc-gauge-line {
  fill: none; stroke: #7A7A8A; stroke-width: 1.8;
  stroke-linecap: round; stroke-dasharray: 0.5 6;
  pointer-events: none; opacity: 0.9;
}
#sbc-svg .sbc-gauge-head { fill: #7A7A8A; stroke: none; pointer-events: none; opacity: 0.9; }
[data-theme="dark"] #sbc-svg .sbc-gauge-line,
[data-theme="dark"] #sbc-svg .sbc-gauge-head { stroke: #A0A0B0; fill: #A0A0B0; }
#sbc-svg .sbc-vedha-head-benefic { fill: #2E7D62; }
#sbc-svg .sbc-vedha-head-malefic { fill: #B85C38; }
#sbc-svg .sbc-vedha-head-mixed { fill: #A88A2A; }
#sbc-svg .sbc-vedha-line-mixed { stroke: #A88A2A; }
#sbc-svg .sbc-vedha-line-secondary {
  stroke-dasharray: 5 4;
  stroke-width: 1.6;
  opacity: 0.85;
}
#sbc-svg .sbc-vedha-dir-label {
  font-size: 9px;
  font-weight: 700;
  fill: var(--text);
  paint-order: stroke fill;
  stroke: var(--bg2);
  stroke-width: 3px;
  stroke-linejoin: round;
  pointer-events: none;
}
#sbc-svg .sbc-vedha-dir-pill { pointer-events: none; opacity: 1 !important; }
#sbc-svg .sbc-vedha-dir-pill-bg {
  fill: #FFF8EE !important;
  stroke: #8A8070 !important;
  stroke-width: 1 !important;
  fill-opacity: 1 !important;
  opacity: 1 !important;
}
#sbc-svg .sbc-vedha-dir-pill-txt {
  fill: #2F2A22 !important;
  font-size: 9px;
  font-weight: 750;
  pointer-events: none;
  fill-opacity: 1 !important;
  opacity: 1 !important;
}
[data-theme="dark"] #sbc-svg .sbc-vedha-dir-pill-bg {
  fill: #1E1C28 !important;
  stroke: #6A6580 !important;
}
[data-theme="dark"] #sbc-svg .sbc-vedha-dir-pill-txt { fill: #E8E2D6 !important; }
[data-theme="paper"] #sbc-svg .sbc-vedha-dir-pill-bg {
  fill: #F8F0E0 !important;
  stroke: #C8B995 !important;
}
#sbc-svg .sbc-vedha-dir-pill-secondary .sbc-vedha-dir-pill-bg {
  fill: #F0E8D8 !important;
  stroke: #9A9080 !important;
}
[data-theme="dark"] #sbc-svg .sbc-vedha-dir-pill-secondary .sbc-vedha-dir-pill-bg {
  fill: #2A2838 !important;
  stroke: #5A5568 !important;
}
#sbc-svg .sbc-latta-line {
  fill: none;
  stroke: #7B1FA2;
  stroke-width: 2.2;
  stroke-linecap: round;
  pointer-events: none;
}
#sbc-svg .sbc-latta-head { fill: #7B1FA2; stroke: none; pointer-events: none; }
#sbc-svg .sbc-latta-target {
  fill: none;
  stroke: rgba(123, 31, 162, 0.85);
  stroke-width: 2;
  pointer-events: none;
}
#sbc-svg .sbc-latta-pill .sbc-vedha-dir-pill-bg {
  fill: #7B1FA2 !important;
  stroke: #4A148C !important;
  fill-opacity: 1 !important;
  opacity: 1 !important;
}
#sbc-svg .sbc-latta-pill .sbc-vedha-dir-pill-txt {
  fill: #ffffff !important;
  fill-opacity: 1 !important;
  opacity: 1 !important;
}
/* Primary Front nak-only no longer uses dotted line style (was making all 3 look secondary) */
#sbc-svg .sbc-vedha-line-nakshatra-only { stroke-dasharray: none; stroke-width: 2.1; opacity: 1; }
#sbc-svg .sbc-vedha-hit { pointer-events: all; }
#sbc-svg .sbc-vedha-hit rect { fill: none; stroke-width: 2; }
#sbc-svg .sbc-vedha-benefic rect { stroke: rgba(46,125,98,0.92); }
#sbc-svg .sbc-vedha-malefic rect { stroke: rgba(184,92,56,0.92); }
#sbc-svg .sbc-vedha-mixed rect { stroke: rgba(168,138,42,0.92); }
#sbc-svg .sbc-vedha-benefic .sbc-vedha-line { stroke: #2E7D62; }
#sbc-svg .sbc-vedha-malefic .sbc-vedha-line { stroke: #B85C38; }
#sbc-svg .sbc-vedha-mixed .sbc-vedha-line { stroke: #A88A2A; }
#sbc-svg .sbc-vedha-badge text { fill: #fff; font-weight: 750; }
#sbc-svg .sbc-vedha-pada-stub {
  fill: none;
  stroke: #c62828;
  stroke-width: 1.5;
  stroke-linecap: round;
  pointer-events: none;
}
#sbc-svg .sbc-vedha-pada-hit { pointer-events: none; }
#sbc-svg .sbc-vedha-pada-hit rect {
  fill: none;
  stroke: #c62828;
  stroke-width: 2;
}
#sbc-svg .sbc-vedha-pada-hit text {
  fill: #c62828;
  font-weight: 700;
  pointer-events: none;
}
#sbc-svg .sbc-vedha-line-benefic { stroke: #2E7D62; }
#sbc-svg .sbc-vedha-line-malefic { stroke: #c62828; }

/* Vedhas table — Janma panchanga token match */
.sbc-vedha-janma {
  color: #c62828;
  font-weight: 700;
}
[data-theme="dark"] .sbc-vedha-janma {
  color: #ff6b6b;
}
#sbc-svg .sbc-vowel-dev { fill: var(--text2); font-family: "Noto Sans Devanagari", sans-serif; }

.sbc-transit-pill {
  display: inline-flex;
  margin: 6px 0 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  color: var(--text2);
  background: color-mix(in srgb, var(--accent2) 18%, var(--bg2));
  border: 1px solid color-mix(in srgb, var(--accent2) 35%, transparent);
}
.sbc-nak-card {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--border2);
  border-radius: var(--r2);
  background: var(--bg2);
  box-shadow: var(--shadow-lg);
  font-size: 11px;
  width: min(420px, calc(100vw - 32px));
  max-width: 420px;
  max-height: calc(var(--vvh) - max(32px, var(--sat) + var(--sab)));
  overflow-y: auto;
  z-index: 1200;
}
.sbc-nak-card-close {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border2);
  border-radius: 50%;
  background: var(--bg4);
  color: var(--text2);
  font-size: 13px;
  cursor: pointer;
  transition: all var(--tr);
}
.sbc-nak-card-close:hover { border-color: var(--accent); color: var(--accent); background: var(--accent3); }
.sbc-nak-card-title { font-weight: 700; margin: 0 32px 6px 0; color: var(--accent); font-size: 13px; }
.sbc-nak-card-row { display: flex; gap: 8px; margin: 4px 0; }
.sbc-nak-card-row span:first-child { min-width: 110px; color: var(--text3); }

#tab-chakras { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
#tab-chakras .sbc-card-body { padding-bottom: 12px; }

.scribble-dual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 768px) {
  .scribble-dual { grid-template-columns: 1fr; }
}
.scribble-half-hdr {
  font-size: 12px;
  font-weight: 700;
  color: var(--accent2);
  margin-bottom: 6px;
}
.sbc-janma-vedha-hits {
  margin-top: 14px;
  width: 100%;
}
.sbc-janma-special-row {
  margin-top: 14px;
}
.sbc-janma-special-row .sbc-janma-vedha-hits {
  margin-top: 0;
}
.sbc-special-nak-group-hdr {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--accent2);
  background: color-mix(in srgb, var(--accent2) 16%, var(--bg2));
  padding: 6px 10px;
  border-left: 3px solid var(--accent2);
}
.sbc-janma-hits-table td.sbc-janma-hit-label {
  font-weight: 650;
  white-space: nowrap;
}
.sbc-janma-hits-table td {
  font-size: 11px;
}
.scribble-table { font-size: 10px; margin: 0; }
.scribble-table th { white-space: nowrap; }
.scribble-table-shell {
  border: 1px solid var(--border2);
  border-radius: 12px;
  overflow: hidden;
  background: var(--bg2);
  box-shadow: var(--shadow-sm, 0 1px 2px rgba(0,0,0,0.06));
}
.scribble-table-rounded thead th:first-child { border-top-left-radius: 11px; }
.scribble-table-rounded thead th:last-child { border-top-right-radius: 11px; }
.scribble-table-rounded tbody tr:last-child td:first-child { border-bottom-left-radius: 11px; }
.scribble-table-rounded tbody tr:last-child td:last-child { border-bottom-right-radius: 11px; }
.scribble-sensitive-note {
  font-size: 10px;
  color: var(--text3);
  margin: 0 0 8px;
  line-height: 1.4;
}

/* Latta 3-row nak strip (Transit half) */
.latta-strip {
  position: relative;
  margin-top: 10px;
  padding: 8px 6px;
}
.latta-strip-arrows {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 3;
  overflow: visible;
}
.latta-strip-arrow-line {
  stroke: var(--accent);
  stroke-width: 1.5;
  stroke-dasharray: 4 3;
}
.latta-strip-arrow-head {
  fill: var(--accent);
}
.latta-strip-cell-from {
  box-shadow: inset 0 0 0 2px var(--accent);
}
.latta-strip-cell-latta-target {
  box-shadow: inset 0 0 0 2px var(--accent2);
  background: color-mix(in srgb, var(--accent2) 18%, var(--bg3));
}
.latta-strip-pill[data-latta-nak] {
  cursor: help;
}
.latta-strip-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 3px;
  margin-bottom: 3px;
}
.latta-strip-row:last-child { margin-bottom: 0; }
.latta-strip-cell {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  padding: 4px 2px 12px;
  border: 1px solid var(--border2);
  border-radius: 6px;
  background: var(--bg3);
  line-height: 1.25;
}
.latta-strip-cell-janma {
  border-color: var(--accent2);
  background: color-mix(in srgb, var(--accent2) 12%, var(--bg3));
}
.latta-strip-num {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.15;
}
.latta-strip-nak {
  display: block;
  font-size: 9px;
  color: var(--text2);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0 1px;
}
.latta-strip-latta {
  display: block;
  font-size: 9px;
  font-weight: 700;
  color: var(--accent);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.latta-strip-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2px;
  margin-top: 2px;
}
.latta-strip-pill {
  font-size: 8px;
  font-weight: 700;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 4px;
  border: 1px solid transparent;
  color: #fff;
}
.latta-strip-pill-sun { background: #d97706; border-color: #b45309; }
.latta-strip-pill-moon { background: #64748b; border-color: #475569; }
.latta-strip-pill-mars { background: #dc2626; border-color: #b91c1c; }
.latta-strip-pill-mercury { background: #16a34a; border-color: #15803d; }
.latta-strip-pill-jupiter { background: #eab308; border-color: #ca8a04; color: #1a1400; }
.latta-strip-pill-venus { background: #ec4899; border-color: #db2777; }
.latta-strip-pill-saturn { background: #1e3a5f; border-color: #172554; }
.latta-strip-pill-rahu { background: #7c3aed; border-color: #6d28d9; }
.latta-strip-pill-ketu { background: #78716c; border-color: #57534e; }
.latta-strip-dasha {
  font-size: 7px;
  font-weight: 800;
  line-height: 1;
  padding: 2px 3px;
  border-radius: 3px;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}
.latta-strip-dasha-md {
  background: color-mix(in srgb, var(--accent) 22%, var(--bg2));
  color: var(--accent);
  border-color: var(--accent);
}
.latta-strip-dasha-ad {
  background: color-mix(in srgb, var(--accent2) 22%, var(--bg2));
  color: var(--accent2);
  border-color: var(--accent2);
}
.latta-strip-dasha-pd {
  background: color-mix(in srgb, #0ea5e9 22%, var(--bg2));
  color: #0284c7;
  border-color: #0ea5e9;
}
.latta-strip-dasha-sd {
  background: color-mix(in srgb, #a855f7 22%, var(--bg2));
  color: #7e22ce;
  border-color: #a855f7;
}
.latta-strip-dasha-pr {
  background: color-mix(in srgb, #64748b 22%, var(--bg2));
  color: #475569;
  border-color: #64748b;
}
/* Latta table Graha cell — tint matches dasha pill (highest level wins: MD>AD>PD>SD>PR) */
.scribble-table td.latta-graha-md {
  background: color-mix(in srgb, var(--accent) 12%, var(--bg2)) !important;
  font-weight: 700;
}
.scribble-table td.latta-graha-ad {
  background: color-mix(in srgb, var(--accent2) 12%, var(--bg2)) !important;
  font-weight: 700;
}
.scribble-table td.latta-graha-pd {
  background: color-mix(in srgb, #0ea5e9 12%, var(--bg2)) !important;
  font-weight: 700;
}
.scribble-table td.latta-graha-sd {
  background: color-mix(in srgb, #a855f7 12%, var(--bg2)) !important;
  font-weight: 700;
}
.scribble-table td.latta-graha-pr {
  background: color-mix(in srgb, #64748b 12%, var(--bg2)) !important;
  font-weight: 700;
}
.latta-strip-seq {
  position: absolute;
  right: 3px;
  bottom: 1px;
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 600;
  color: var(--text3);
  line-height: 1;
  pointer-events: none;
}

/* Sapta Nadi pills — Planetary Positions table */
.nadi-pill { font-size: 9px; padding: 2px 8px; border: 1px solid transparent; }
.nadi-pill-prachand { background: #8B0000; color: #fff; border-color: #6b0000; }
.nadi-pill-pawan    { background: #6b7280; color: #fff; border-color: #4b5563; }
.nadi-pill-dehan    { background: #c62828; color: #fff; border-color: #8e0000; }
.nadi-pill-sobhya   { background: #d4a800; color: #1a1400; border-color: #a88400; }
.nadi-pill-neer     { background: #1d4ed8; color: #fff; border-color: #1e3a8a; }
.nadi-pill-jal      { background: #00008b; color: #fff; border-color: #000066; }
.nadi-pill-amrit    { background: #fff8dc; color: #5c4a20; border-color: #c9b87a; }
.nadi-pill-default  { background: var(--bg3); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .nadi-pill-amrit { background: #3d3520; color: #f5e6c8; border-color: #6b5c3a; }

[data-theme="dark"] #sbc-svg .sbc-hdr-txt      { fill: #b0a898; }
[data-theme="dark"] #sbc-svg .sbc-num-txt      { fill: #8a8070; }
[data-theme="dark"] #sbc-svg .sbc-corner-txt   { fill: #b0a898; }
[data-theme="dark"] #sbc-svg .sbc-nak-txt      { fill: #d8d0c0; }
[data-theme="dark"] #sbc-svg .sbc-nak-janma-seq { fill: #9aa8bc; }
[data-theme="dark"] #sbc-svg .sbc-nak-janma-seq-1 { fill: #7eb0ff; }
[data-theme="dark"] #sbc-svg .sbc-nak-janma { stroke: #7eb0ff; }
[data-theme="dark"] #sbc-svg .sbc-nak-tara-abbr { opacity: 0.95; }
[data-theme="dark"] #sbc-svg .sbc-sign-hdr-txt { fill: #d8d0c0; }
[data-theme="dark"] #sbc-svg .sbc-side-sign-txt{ fill: #d8d0c0; }
[data-theme="dark"] #sbc-svg .sbc-vowel-txt    { fill: #808080; }
[data-theme="dark"] #sbc-svg .sbc-sign-txt     { fill: #d8d0c0; }
[data-theme="dark"] #sbc-svg .sbc-vara-day     { fill: #d8d0c0; }
[data-theme="dark"] #sbc-svg .sbc-vara-ti      { fill: #b8b0a0; }
[data-theme="dark"] #sbc-svg text.sbc-vara-ti[data-hl-kind="tithi"] { fill: #FFD966 !important; }
[data-theme="dark"] #sbc-svg .sbc-vara-yo      { fill: #a09888; }

.bnn-prog-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
/* BNN fusion — progression outer ring colors + Ma/Me/Ve filter */
:root{--bnn-prog-major:#3b82f6;--bnn-prog-minor:#d97706}
[data-theme="dark"]{--bnn-prog-major:#60a5fa;--bnn-prog-minor:#d97706}
[data-theme="paper"]{--bnn-prog-major:#1d4ed8;--bnn-prog-minor:#b45309}
.bnn-fusion-prog-filters{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-left:auto;
}
.bnn-fusion-prog-lbl{
  font-size:10px;font-weight:600;color:var(--text3);white-space:nowrap;
  letter-spacing:0.04em;
}
.bnn-fusion-prog-cb{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:600;color:var(--text2);cursor:pointer;user-select:none;
  font-family:var(--font-mono);
}
.bnn-fusion-prog-cb input[type="checkbox"]{margin:0;cursor:pointer}
/* BCP tab — target date + chakra table */
.bcp-fusion-date-lbl{
  font-size:10px;font-weight:600;color:var(--text2);margin-left:12px;white-space:nowrap;
}
.bcp-fusion-date-input{
  font-size:11px;padding:2px 6px;background:var(--bg3);color:var(--text1);
  border:1px solid var(--border2);border-radius:4px;font-family:var(--font-mono);
}
.bcp-chakra-meta{
  font-size:12px;color:var(--text2);margin-bottom:10px;padding:8px 10px;
  background:var(--bg3);border-radius:4px;border:1px solid var(--border2);
}
.bcp-chakra-jump-btn{font-size:10px;padding:0 8px;height:24px;flex-shrink:0}
.bcp-chakra-scroll{
  display:flex;flex-direction:row;flex-wrap:nowrap;gap:14px;
  overflow-x:auto;overflow-y:hidden;padding:4px 2px 12px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  width:100%;
}
.bcp-chakra-block{
  flex:0 0 auto;min-width:540px;width:max-content;
  background:var(--bg2);border:1px solid var(--border2);border-radius:8px;
  scroll-snap-align:center;
}
.bcp-chakra-block-active{
  border-color:var(--tab-indicator);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--tab-indicator) 35%, transparent);
}
.bcp-chakra-block-hdr{
  font-size:11px;font-weight:700;color:var(--accent);
  padding:10px 12px;background:var(--bg4);
  border-bottom:1px solid var(--border2);white-space:nowrap;
}
.bcp-chakra-table{font-size:11px;width:100%;table-layout:auto;border-collapse:separate;border-spacing:0}
.bcp-chakra-table th{font-size:10px;white-space:nowrap;padding:6px 10px}
.bcp-chakra-table td{padding:5px 10px;vertical-align:top}
.bcp-chakra-table th:first-child,
.bcp-chakra-table td:first-child{
  position:sticky;left:0;z-index:3;
  background:var(--bg2);
  box-shadow:2px 0 5px -2px color-mix(in srgb, var(--text) 20%, transparent);
}
.bcp-chakra-table thead th:first-child{z-index:5;background:var(--bg3)}
.bcp-chakra-table tr:hover td:first-child{background:var(--bg4)}
.bcp-chakra-house-th{
  background:color-mix(in srgb, var(--accent) 8%, var(--bg3));
  color:var(--accent2);min-width:96px;
}
.bcp-chakra-house-cell{
  font-family:var(--font-mono);font-size:10px;line-height:1.45;
  white-space:normal;min-width:96px;
}
.bcp-chakra-cs-cell{color:var(--text2)}
.bcp-chakra-active td{
  background:color-mix(in srgb, var(--tab-indicator) 14%, var(--bg2));
}
.bcp-chakra-active td:first-child{
  border-left:3px solid var(--tab-indicator);
  background:color-mix(in srgb, var(--tab-indicator) 18%, var(--bg2));
  z-index:4;
}
.bcp-chakra-active:hover td:first-child{
  background:color-mix(in srgb, var(--tab-indicator) 22%, var(--bg4));
}
.bcp-chakra-dt{
  font-family:var(--font-mono);font-size:10px;white-space:nowrap;
  min-width:82px;
}
.bcp-chakra-table th.bcp-chakra-dt-th{min-width:82px}
.bcp-activation-section{
  margin:12px 0 14px;padding:10px 12px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);
}
.bcp-activation-hdr{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:8px}
.bcp-activation-summary{font-size:12px;color:var(--text2);margin-bottom:10px;line-height:1.45}
.bcp-activation-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.bcp-activation-row{
  display:grid;grid-template-columns:28px 1fr 1fr;gap:8px 12px;font-size:11px;
  padding:6px 8px;background:var(--bg2);border-radius:var(--r);border:1px solid var(--border);
}
.bcp-activation-row-lbl{font-weight:700;color:var(--accent);font-family:var(--font-mono)}
.bcp-activation-row-pl,.bcp-activation-row-h{font-family:var(--font-mono);color:var(--text2);line-height:1.35}
.bcp-activation-rules{
  font-size:11px;color:var(--text3);line-height:1.45;padding-top:10px;border-top:1px solid var(--border2);
}
.bcp-activation-rules dt{font-weight:700;color:var(--text2);display:inline}
.bcp-activation-rules dd{margin:0 0 4px 0;display:inline}
.bcp-activation-rules dl{margin:0}
/* BNN tab — Life Events card */
#bnn-life-events-section,
#bcp-life-events-section{
  width:100%;max-width:100%;align-self:stretch;box-sizing:border-box;
}
#bnn-life-events-body,
#bcp-life-events-body{width:100%;box-sizing:border-box;overflow-x:auto}
.bnn-le-list{
  display:flex;
  flex-wrap:nowrap;
  gap:10px;
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  padding-bottom:6px;
  scroll-snap-type:x proximity;
}
.bnn-le-card{
  flex:0 0 auto;
  width:220px;
  min-width:200px;
  border:1px solid var(--border2);border-radius:var(--r2);
  padding:10px 12px;background:var(--bg2);
  display:flex;flex-direction:column;gap:6px;
  scroll-snap-align:start;
  box-sizing:border-box;
}
.bnn-le-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.bnn-le-name{
  font-size:13px;font-weight:600;color:var(--text);
  line-height:1.3;min-width:0;overflow-wrap:anywhere;
}
.bnn-le-load-btn{font-size:10px;padding:0 10px;height:24px;flex-shrink:0;margin-top:1px}
.bnn-le-meta{
  display:flex;flex-direction:column;gap:2px;
  font-size:11px;color:var(--text2);line-height:1.4;
}
.bnn-le-lbl{
  font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text3);font-weight:600;
}
.bnn-le-val{color:var(--text2);word-break:break-word}
.bnn-le-val strong{color:var(--text);font-weight:600}
.bnn-le-desc{font-size:11px;color:var(--text3);line-height:1.5;flex:1}
.bnn-le-empty{font-size:12px;color:var(--text3);padding:8px 0;text-align:center}
.bnn-le-empty-btn{margin-top:10px}

/* ── BNN Activated Planets ─────────────────────────────────────────── */
.bnn-act-scroll{overflow-x:auto;margin-top:4px;padding-bottom:4px}
.bnn-act-grid{
  display:grid;
  grid-template-columns:repeat(14,minmax(228px,1fr));
  gap:12px;
  min-width:min-content;
}
.bnn-act-col{
  border:1px solid var(--border2);
  border-radius:6px;
  background:var(--bg2);
  min-width:228px;
}
.bnn-act-col-hdr{
  padding:8px 10px;
  border-bottom:1px solid var(--border2);
  background:var(--bg3);
}
.bnn-act-col-title{font-size:12px;font-weight:600;color:var(--text)}
.bnn-act-col-sub{font-size:10px;color:var(--text3);margin-top:2px;font-family:var(--font-mono)}
.bnn-act-col-body{padding:8px 10px}
.bnn-act-row{
  display:flex;align-items:baseline;gap:8px;
  padding:3px 0;font-size:11px;line-height:1.45;
}
.bnn-act-lbl{
  flex:0 0 112px;color:var(--text3);font-size:10px;
  text-transform:none;font-weight:500;flex-shrink:0;
}
.bnn-act-val{
  flex:1;color:var(--accent);font-weight:600;
  min-width:0;word-break:break-word;line-height:1.5;
}
.bnn-act-common{color:var(--bnn-prog-minor);font-weight:700}
.bnn-act-empty{font-size:12px;color:var(--text3);padding:4px 0}
/* BNN tab — Aspects card */
#bnn-aspects-section .bnn-aspects-scroll{overflow-x:auto;margin-top:4px;padding-bottom:4px}
.bnn-aspects-controls{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:8px;
  font-size:11px;color:var(--text2)
}
.bnn-aspects-cb{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none
}
.bnn-aspects-cb input[type="checkbox"]{margin:0;cursor:pointer}
:root{--bnn-aspects-virt:#a78bfa}
[data-theme="dark"]{--bnn-aspects-virt:#c4b5fd}
[data-theme="light"]{--bnn-aspects-virt:#6d28d9}
[data-theme="paper"]{--bnn-aspects-virt:#5b21b6}
.bnn-aspects-virt{color:var(--bnn-aspects-virt);font-weight:600}
.bnn-aspects-subhdr{
  margin-top:14px;margin-bottom:4px;font-size:11px;font-weight:700;color:var(--text2);
  text-transform:uppercase;letter-spacing:.04em
}
.bnn-aspects-transit-meta{font-size:11px;color:var(--text3);font-family:var(--font-mono);margin-bottom:4px}
.bnn-aspects-transit-empty{font-size:12px;color:var(--text3);padding:6px 0 2px}
.bnn-aspects-table{font-size:11px;white-space:nowrap;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}
.bnn-aspects-table th,.bnn-aspects-table td{border:1px solid var(--border2);padding:4px 7px;vertical-align:middle;text-align:center}
.bnn-aspects-table thead th{background:var(--bg3);color:var(--text);font-weight:600;font-size:11px}
.bnn-aspects-table thead th.bnn-aspects-str-h{text-align:left}
.bnn-aspects-table td.bnn-aspects-pl{font-weight:700;text-align:left;font-family:var(--font-mono);white-space:nowrap}
.bnn-aspects-table td.bnn-aspects-pl span{font-size:11px!important;line-height:1.2;vertical-align:middle}
.bnn-aspects-table td.bnn-aspects-str{text-align:left;font-family:var(--font-mono);font-size:10px}
.bnn-aspects-table tr.bnn-aspects-exc td{
  background:color-mix(in srgb, var(--accent) 12%, var(--bg2));
}
.bnn-aspects-table tr.bnn-aspects-exc td:first-child,
.bnn-aspects-table tr.bnn-aspects-exc td.bnn-aspects-pl{
  background:color-mix(in srgb, var(--accent) 16%, var(--bg2));
  z-index:4;
}
.bnn-aspects-table tr.bnn-aspects-exc td.bnn-aspects-pl{color:var(--blue,#3b82f6);font-weight:700}
[data-theme="dark"] .bnn-aspects-table tr.bnn-aspects-exc td{
  background:color-mix(in srgb, #60a5fa 14%, var(--bg2));
}
[data-theme="dark"] .bnn-aspects-table tr.bnn-aspects-exc td:first-child,
[data-theme="dark"] .bnn-aspects-table tr.bnn-aspects-exc td.bnn-aspects-pl{
  background:color-mix(in srgb, #60a5fa 18%, var(--bg2));
  color:var(--blue,#60a5fa);
}
[data-theme="paper"] .bnn-aspects-table tr.bnn-aspects-exc td{
  background:color-mix(in srgb, #1d4ed8 10%, var(--bg2));
}
[data-theme="paper"] .bnn-aspects-table tr.bnn-aspects-exc td:first-child,
[data-theme="paper"] .bnn-aspects-table tr.bnn-aspects-exc td.bnn-aspects-pl{
  background:color-mix(in srgb, #1d4ed8 14%, var(--bg2));
  color:#1d4ed8;
}
.bnn-aspects-table tr:hover td:first-child{background:var(--bg4)}
.bnn-aspects-table tr.bnn-aspects-exc:hover td:first-child,
.bnn-aspects-table tr.bnn-aspects-exc:hover td.bnn-aspects-pl{
  background:color-mix(in srgb, var(--accent) 20%, var(--bg4));
}
.bnn-prog-lbl{font-size:10px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.bnn-prog-input{font-size:12px;padding:4px 8px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg2);color:var(--text)}
.bnn-prog-meta{font-size:11px;color:var(--text3);font-family:var(--font-mono)}
.bnn-prog-meta + .bnn-prog-meta{margin-top:4px}
.bnn-prog-dt-h{font-size:10px;white-space:nowrap}
.bnn-prog-dt{font-family:var(--font-mono);font-size:11px;color:var(--text2);line-height:1.4}
.bnn-prog-dt-main{display:block;white-space:nowrap}
.bnn-prog-age{display:block;font-size:10px;color:var(--text3);font-weight:500;white-space:nowrap;margin-top:2px}
.bnn-prog-rounds{
  display:flex;flex-wrap:nowrap;align-items:stretch;gap:10px;
  margin:12px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding-bottom:6px;scroll-snap-type:x proximity;
}
.bnn-prog-round-block{
  flex:0 0 auto;width:max-content;min-width:220px;
  border:1px solid var(--border2);border-radius:var(--r);background:var(--bg2);
  scroll-snap-align:start;
}
.bnn-prog-round-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:7px 9px;border-bottom:1px solid var(--border2);color:var(--accent)}
.bnn-prog-round-block table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px;table-layout:auto}
.bnn-prog-round-block th,.bnn-prog-round-block td{
  padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:top;white-space:nowrap;
}
.bnn-prog-round-block th{font-size:9px;color:var(--text3);font-weight:600;text-transform:uppercase}
.bnn-prog-round-block tr.bnn-prog-round-active td{
  background:color-mix(in srgb, var(--accent) 16%, var(--bg2));
}
.bnn-prog-round-block tr.bnn-prog-round-active td:first-child{color:var(--accent);font-weight:700}
.bnn-prog-round-r{font-family:var(--font-mono);white-space:nowrap;font-size:11px}
.bnn-prog-round-sign{font-size:9px;color:var(--text3);display:block}
#bnn-prog-table{font-size:12px}
#bnn-prog-table thead th{background:var(--bg3)}
#bnn-prog-table thead tr.bnn-prog-hdr-grp th{border-top:1px solid var(--border2)}
#bnn-prog-table thead tr.bnn-prog-hdr-grp th.bnn-prog-grp-h{
  text-align:center;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--accent);
  border-bottom:1px solid var(--border2);padding:6px 8px
}
#bnn-prog-table thead tr.bnn-prog-hdr-sub th{
  font-size:10px;color:var(--text3);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em
}
/* Multi-row header: sub-row first cell is Flag→Major, not Graha — must not stick */
#bnn-prog-table thead tr.bnn-prog-hdr-sub th:first-child{
  position:static;left:auto;z-index:auto;
  box-shadow:none;background:var(--bg3);
}
#bnn-prog-table thead tr.bnn-prog-hdr-sub th.bnn-prog-sep:first-child{
  border-left:1px solid var(--border2);
}
#bnn-prog-table .bnn-prog-sep{border-left:1px solid var(--border2)}
#bnn-prog-table td.bnn-prog-flag-cell{font-size:11px;line-height:1.35;white-space:nowrap}
#bnn-prog-table td.bnn-prog-deg{
  font-family:var(--font-mono);font-size:12px;white-space:nowrap;
}
.bnn-prog-flag-nat{color:var(--accent);font-weight:700;font-family:var(--font-mono)}
.bnn-prog-flag-exc{color:var(--flag-ex,#1c521c);font-weight:600;font-size:11px}
.bnn-prog-legend{margin-top:12px;padding-top:10px;border-top:1px solid var(--border2)}
.bnn-prog-legend-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:6px}
.bnn-prog-legend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.bnn-prog-legend-list li{font-size:11px;color:var(--text2);line-height:1.4}
#bnn-prog-table thead th.bnn-prog-notes-h{border-left:1px solid var(--border2)}
#bnn-prog-table td.bnn-prog-round-cell{font-family:var(--font-mono);font-weight:700;color:var(--accent);font-size:12px;white-space:nowrap}
.bnn-prog-nak{line-height:1.35}
.bnn-prog-nak-name{display:block;color:var(--text2);font-size:12px}
.bnn-prog-nak-pada{display:block;font-size:10px;color:var(--text3);font-family:var(--font-mono)}
#bnn-prog-table td.bnn-prog-dt{font-size:11px}
.bnn-prog-rules{margin-top:14px;padding-top:12px;border-top:1px solid var(--border2)}
.bnn-prog-rules-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:8px}
.bnn-prog-rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.bnn-prog-rules-list li{font-size:11px;line-height:1.4;color:var(--text2);display:flex;gap:8px;align-items:flex-start}
.bnn-prog-rules-list li.is-applicable{color:var(--text)}
.bnn-prog-rule-tick{flex:0 0 14px;font-weight:700;font-family:var(--font-mono);font-size:11px;line-height:1.4}
.bnn-prog-rules-list li.is-applicable .bnn-prog-rule-tick{color:var(--accent)}
.bnn-prog-rules-list li:not(.is-applicable) .bnn-prog-rule-tick{color:var(--text3)}
.bnn-prog-rule-grahas{flex:0 0 auto;font-size:10px;color:var(--accent);font-weight:600;white-space:nowrap}
.bnn-prog-rule-desc{flex:1}
.bnn-prog-rules-special{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border2)}
.bnn-prog-rules-special-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:6px}
.bnn-prog-rules-special-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.bnn-prog-rules-special-list li{font-size:11px;line-height:1.45;color:var(--text2);display:flex;gap:8px;align-items:flex-start}
.bnn-prog-rules-travel{flex:1}

/* ── Pricing page ─────────────────────────────────────────── */
.pricing-page-body{
  min-height:100dvh;
  background:var(--bg);
  color:var(--text);
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  overflow-y:auto;
}
.pricing-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(12px + var(--sat,0px)) max(16px,var(--sar,16px)) 12px max(16px,var(--sal,16px));
  border-bottom:1px solid var(--border);
  background:var(--bg2);
  position:sticky;top:0;z-index:20;
}
.pricing-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.pricing-brand-mark{font-size:20px;line-height:1}
.pricing-brand-text{font-family:var(--font-display,'Cinzel',serif);font-size:15px;font-weight:600;letter-spacing:.04em}
.pricing-topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pricing-topbar-link,.pricing-topbar-btn{
  font-size:13px;text-decoration:none;border-radius:6px;padding:8px 12px;white-space:nowrap;
}
.pricing-topbar-user{
  font-size:12px;color:var(--text2);max-width:280px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
@media (max-width:520px){
  .pricing-topbar-user{display:none !important}
}
.pricing-topbar-link:hover{color:var(--accent)}
.pricing-topbar-btn{
  background:linear-gradient(135deg,#e8c96a,#c8a84b);color:#1a1408;font-weight:600;
}
.pricing-main{
  flex:1 0 auto;width:min(1160px,100%);margin:0 auto;
  padding:20px max(16px,var(--sar,16px)) 32px max(16px,var(--sal,16px));
}
.pricing-hero{text-align:center;margin-bottom:28px}
.pricing-kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.pricing-hero h1{
  font-family:var(--font-display,'Cormorant Garamond',serif);
  font-size:clamp(1.6rem,4vw,2.2rem);font-weight:600;line-height:1.2;margin:0 0 10px;
}
.pricing-lead{color:var(--text2);font-size:15px;line-height:1.5;max-width:42rem;margin:0 auto}
.pricing-trial-wrap{margin-top:14px;display:flex;justify-content:center}
.pricing-trial-wrap[hidden]{display:none !important}
.pricing-trial-pill{
  display:inline-flex;align-items:center;justify-content:center;
  max-width:min(100%,28rem);padding:8px 16px;border-radius:999px;
  border:1px solid #b91c1c;
  background:#dc2626;
  color:#fde047;font-size:13px;font-weight:600;line-height:1.3;
  text-decoration:none;text-align:center;cursor:pointer;
  font-family:inherit;appearance:none;-webkit-appearance:none;
  transition:background .15s ease,border-color .15s ease,transform .15s ease,filter .15s ease;
}
.pricing-trial-pill:hover,
.pricing-trial-pill:focus-visible{
  background:#b91c1c;
  border-color:#991b1b;
  color:#fef08a;
  outline:none;
}
.pricing-trial-pill:active{transform:scale(0.98)}
.pricing-trial-note{margin-top:12px;font-size:13px;color:var(--accent);font-weight:500}
.pricing-grid{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;margin-bottom:28px;
}
.pricing-loading{color:var(--text3);text-align:center;padding:24px 0}
.pricing-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:10px;
  padding:12px 11px;display:flex;flex-direction:column;gap:6px;min-height:100%;min-width:0;
}
.pricing-card-featured{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.pricing-card-tag{
  display:inline-block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);font-weight:600;
}
.pricing-card h3{margin:2px 0 0;font-size:1rem;font-family:var(--font-display,'Cormorant Garamond',serif);line-height:1.2}
.pricing-card-price{font-size:1.35rem;font-weight:700;color:var(--text);line-height:1.1}
.pricing-card-period{font-size:.75rem;font-weight:500;color:var(--text3)}
.pricing-card-blurb{flex:1;color:var(--text2);font-size:11px;line-height:1.4;margin:0}
.pricing-card-btn{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:auto;padding:7px 10px;border-radius:7px;text-decoration:none;font-size:11px;font-weight:600;
  background:var(--bg3);border:1px solid var(--border2);color:var(--text);
  text-align:center;line-height:1.25;
}
.pricing-card-featured .pricing-card-btn{
  background:linear-gradient(135deg,#e8c96a,#c8a84b);border-color:transparent;color:#1a1408;
}
@media (max-width:900px){
  .pricing-grid{
    display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    padding-bottom:6px;scrollbar-width:thin;
  }
  .pricing-card{flex:0 0 min(168px,46vw);min-height:0}
}
.pricing-compare h2{
  font-family:var(--font-display,'Cormorant Garamond',serif);
  font-size:1.35rem;margin:0 0 12px;
}
.pricing-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:10px}
.pricing-table{width:100%;border-collapse:collapse;font-size:12px;min-width:640px}
.pricing-table th,.pricing-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left}
.pricing-table th{background:var(--bg2);color:var(--text2);font-weight:600;white-space:nowrap}
.pricing-table tr:last-child td{border-bottom:none}
.pricing-compare-note-wrap{
  margin-top:14px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.pricing-compare-note{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:var(--text2);
  white-space:nowrap;
}
.pricing-cta{
  margin-top:32px;text-align:center;padding:24px 16px;border-radius:12px;
  background:var(--bg2);border:1px solid var(--border);
}
.pricing-cta p{margin:0 0 14px;color:var(--text2);font-size:14px}
.pricing-cta-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.pricing-cta-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 16px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:600;
  border:1px solid var(--border2);color:var(--text);background:var(--bg3);
  font-family:inherit;cursor:pointer;
}
.pricing-card-btn-current{
  opacity:0.85;pointer-events:none;cursor:default;
}
.pricing-cta-btn-primary{
  background:linear-gradient(135deg,#e8c96a,#c8a84b);border-color:transparent;color:#1a1408;
}

/* ── Pricing features (text / bullets by tier) ───────────── */
.pricing-features{
  margin:32px 0 8px;
  padding-top:8px;
}
.pricing-features-head{text-align:center;margin-bottom:16px}
.pricing-features-head h2{
  font-family:var(--font-display,'Cormorant Garamond',serif);
  font-size:clamp(1.35rem,3.2vw,1.75rem);font-weight:600;line-height:1.2;margin:0 0 8px;
}
.pricing-features-lead{
  color:var(--text2);font-size:14px;line-height:1.5;max-width:42rem;margin:0 auto;
}
.pricing-features-toc{
  display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;align-items:center;
  margin:0 0 24px;font-size:13px;color:var(--text3);
}
.pricing-features-toc a{
  color:var(--accent);text-decoration:none;font-weight:600;
}
.pricing-features-toc a:hover{text-decoration:underline}
.pricing-features-tier{
  margin:0 0 28px;padding:0 0 24px;
  border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  scroll-margin-top:calc(64px + var(--sat,0px));
}
.pricing-features-tier:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.pricing-features-tier h3{
  font-family:var(--font-display,'Cormorant Garamond',serif);
  font-size:1.25rem;font-weight:600;margin:0 0 8px;line-height:1.3;
}
.pricing-features-code{
  display:inline-block;margin-left:8px;
  font-family:inherit;font-size:0.72em;font-weight:500;
  color:var(--text3);vertical-align:baseline;
}
.pricing-features-tier > p{
  margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--text2);
}
.pricing-features-tier > p a{color:var(--accent);font-weight:600;text-decoration:none}
.pricing-features-tier > p a:hover{text-decoration:underline}
.pricing-features-tier h4{
  margin:16px 0 6px;font-size:13px;font-weight:600;color:var(--text);
  letter-spacing:.02em;
}
.pricing-features-tier ul{
  margin:0;padding:0 0 0 1.15rem;
  font-size:13px;line-height:1.55;color:var(--text2);
}
.pricing-features-tier li{margin:0 0 6px}
.pricing-features-tier li strong{color:var(--text);font-weight:600}
@media (max-width:640px){
  .pricing-features-tier{scroll-margin-top:calc(56px + var(--sat,0px))}
}

.topbar-pricing-link,.topbar-company-link{text-decoration:none;display:inline-flex;align-items:center}
.topbar-more-pricing,.topbar-more-company{text-decoration:none}
@media (max-width:768px){
  .topbar-pricing-link,.topbar-company-link{display:none !important}
}

/* ── Site footer ─────────────────────────────────────────── */
.site-footer{
  flex-shrink:0;
  min-height:var(--site-footer-h);
  padding:14px max(16px,var(--sar,16px)) calc(10px + var(--sab,0px)) max(16px,var(--sal,16px));
  border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);
  background:linear-gradient(
    to bottom,
    color-mix(in srgb, var(--bg2) 28%, var(--bg)) 0%,
    var(--bg) 100%
  );
  color:var(--text3);
  font-size:11px;
}
.site-footer-inner{
  max-width:1100px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.site-footer-brand{color:var(--text2);line-height:1.4}
.site-footer-brand a{color:var(--text2);text-decoration:none}
.site-footer-brand a:hover{color:var(--accent)}
.site-footer-nav{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.site-footer-nav a{
  color:var(--text2);text-decoration:none;
}
.site-footer-nav a:hover{color:var(--accent)}
body.pricing-page-body .site-footer{
  margin-top:auto;
  position:relative;
  z-index:1;
}
@media (max-width:640px){
  .site-footer-inner{justify-content:center;text-align:center}
}
