/* Analysis Desk — dense worksheet styling. Uses desk theme tokens. */
.adk-body{display:flex;flex-direction:column;gap:14px}
.adk-charts{display:flex;gap:14px;flex-wrap:wrap}
.adk-chart-box{flex:1 1 280px;min-width:260px;background:var(--bg-2);
  border:1px solid var(--line);border-radius:8px;padding:8px}
.adk-chart-title{font-size:var(--fs-micro,11px);letter-spacing:.08em;
  text-transform:uppercase;color:var(--gold-dim,#a89055);margin-bottom:4px}
.adk-chart-svg{width:100%;height:auto;display:block}
.adk-chart-svg[hidden]{display:none}
.adk-cusps-link{float:right;font-size:11px;color:var(--gold,#c9a45a);
  text-decoration:none;letter-spacing:.04em}
.adk-cusps{margin-top:6px;overflow-x:auto}
.adk-cusps table{border-collapse:collapse;width:100%;font-size:12px}
.adk-cusps th,.adk-cusps td{border-bottom:1px solid var(--line);
  padding:2px 6px;text-align:left;white-space:nowrap}
.adk-matter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.adk-matter-bar label{font-size:var(--fs-micro,11px);letter-spacing:.08em;
  text-transform:uppercase;color:var(--gold-dim,#a89055)}
.adk-matter-bar select{background:var(--bg-2);color:inherit;
  border:1px solid var(--line);border-radius:6px;padding:6px 10px}
.adk-verdict{flex:1;min-width:220px}
.adk-hint{opacity:.65;font-style:italic}
.adk-grid{overflow-x:auto}
.adk-grid table{border-collapse:collapse;width:100%;min-width:640px}
.adk-grid th,.adk-grid td{border-bottom:1px solid var(--line);
  padding:6px 10px;text-align:left;white-space:nowrap;vertical-align:top}
.adk-grid th{font-size:var(--fs-micro,11px);letter-spacing:.08em;
  text-transform:uppercase;color:var(--gold-dim,#a89055)}
.adk-grid tr.adk-hl,.adk-planettable tr.adk-hl{background:var(--bg-2)}
.adk-grid tr{cursor:pointer}
.adk-h{display:inline-block;min-width:20px;text-align:center;
  border-radius:4px;padding:1px 4px;margin:0 1px}
.adk-h.pos{background:rgba(90,160,90,.25);color:#8fce8f}
.adk-h.neg{background:rgba(190,70,70,.22);color:#e09a9a}
.adk-h.both{background:rgba(200,160,60,.22);color:#dcc27a}
.adk-bala-strong{color:#8fce8f}
.adk-bala-weak{color:#e09a9a}
.adk-chip{display:inline-block;border-radius:10px;padding:2px 10px;
  font-size:12px;margin-right:6px;border:1px solid var(--line)}
.adk-chip.promised{border-color:#8fce8f;color:#8fce8f}
.adk-chip.denied{border-color:#e09a9a;color:#e09a9a}
.adk-chip.conditional{border-color:#dcc27a;color:#dcc27a}
.adk-bottom{display:flex;gap:14px;flex-wrap:wrap}
.adk-rp,.adk-timing{flex:1 1 300px;background:var(--bg-2);
  border:1px solid var(--line);border-radius:8px;padding:10px}
.adk-rp h3,.adk-timing h3{font-size:var(--fs-micro,11px);letter-spacing:.08em;
  text-transform:uppercase;color:var(--gold-dim,#a89055);margin:0 0 8px}
.adk-rp table{border-collapse:collapse;width:100%}
.adk-rp td{padding:3px 8px;border-bottom:1px solid var(--line)}
.adk-rp .adk-rp-note{opacity:.6;font-size:12px;margin-top:6px}
/* The row stacks: a head line (chain · dates · intensity) then the
   expectation prose. Indic scripts run 20-40% longer than English, so
   nothing here is fixed-width or truncated. */
.adk-tw-row{display:block;padding:6px 0;border-bottom:1px solid var(--line)}
.adk-tw-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
/* I5: the Parashara double-transit panel reuses the timing row's spacing
   and border but needs the OLD flex-with-gap layout .adk-tw-row used to
   have before it became block for the Timing panel's prose lines — its
   two sibling spans (label + date range) must not run together. */
.adk-para-dt-row{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;
  padding:6px 0;border-bottom:1px solid var(--line)}
.adk-tw-dots{margin-left:auto;letter-spacing:2px;font-size:11px}
.adk-tw-dots.promised{color:#8fce8f}
.adk-tw-dots.denied{color:#e09a9a}
.adk-tw-dots.conditional{color:#dcc27a}
.adk-tw-what{font-size:12px;opacity:.85;margin-top:3px;line-height:1.45}
.adk-tw-meta{font-size:12px;opacity:.6;margin-top:2px;line-height:1.45}
.adk-tw-legend{font-size:11px;opacity:.55;margin-top:8px;line-height:1.4}
.adk-tw-chain{font-weight:600}
.dl-mdot{display:inline-block;width:8px;height:8px;border-radius:50%;
  margin-left:6px;vertical-align:middle}
.dl-mdot.pos{background:#8fce8f}
.dl-mdot.neg{background:#e09a9a}
.dl-mdot.both{background:#dcc27a}
.adk-varga-sel{background:var(--bg-2);color:inherit;border:1px solid var(--line);
  border-radius:5px;padding:2px 6px;font-size:12px;max-width:180px}
.adk-chart-unavail{padding:24px 8px;text-align:center}

/* Full-screen worksheet mode (Task 2). Selectors verified against
   templates/desk_mode/master.html + _topbar.html: the pane wrappers are
   `.col.left` / `.col.right` (see _left_pane.html:1 / _right_pane.html:1)
   and the header is `.topbar` (_topbar.html:1) — as guessed. But hiding
   those divs alone is NOT enough: .shell's grid-template-columns
   (layout.css:115) is `var(--left-w) 1fr var(--right-w)` with --left-w/
   --right-w FIXED pixel tracks (tokens.css:27, 560px/242px) — an explicit
   grid track keeps its size even when the item placed in it is
   display:none, so #center's cell would stay squeezed into the middle
   1fr track with ~800px of dead space on either side. Reader mode already
   solves exactly this by collapsing tracks (layout.css:117,
   `body.reader .shell{grid-template-columns:var(--left-w) 1fr 0}`) — we
   follow the same pattern and collapse both side tracks to 0. */
.adk-fs-btn{margin-left:auto;background:var(--bg-2);color:inherit;
  border:1px solid var(--line);border-radius:6px;padding:4px 10px;
  cursor:pointer;font-size:15px}
body.adk-fullscreen .col.left,
body.adk-fullscreen .col.right,
body.adk-fullscreen .topbar,
/* Fixed bottom pane-switcher (layout.css:181, position:fixed;bottom:0;
   height:54px) — full screen means the whole screen; ⛶/Esc/deck-switch
   remain the only exits. */
body.adk-fullscreen .mobile-tabs{display:none !important}
body.adk-fullscreen .shell{grid-template-columns:0 1fr 0;
  /* .shell's base height:calc(100vh - 54px) (layout.css:115) is sized for
     the always-present topbar (52px + 1px border, layout.css:10); hiding
     the topbar above removes it from flow but leaves that 54px unclaimed
     at the bottom unless we reclaim it here. */
  height:100vh}
/* display:none removes .col.left/.col.right from the grid's box tree
   entirely, which also removes them from CSS Grid auto-placement — #center
   (the only remaining, unpositioned grid item) would otherwise collapse
   into track 1 (now 0-width) instead of track 2. Pin it to the middle
   line explicitly so it always lands in the (now full-width) center
   track. Verified via computed getBoundingClientRect(): without this rule
   #center measured 0px wide even though .shell's tracks were correctly
   "0px 1280px 0px". */
body.adk-fullscreen #center{max-width:none;width:100%;grid-column:2}
/* 98px clears the measured .center-head height (96.5px in a 720px-tall
   viewport, via getBoundingClientRect() — the prior 90px undersized the
   subtraction and let the grid's bottom edge run ~6.5px past the
   viewport). Small buffer kept since header height can shift slightly
   with font metrics/theme. */
/* ONE page scroll: the fs grid flows at natural height inside #center (a
   .col, already a scroll container with a styled scrollbar) — the charts
   scroll away with the content, no fixed-height columns, no nested column
   scrollbars. */
.adk-fs-grid{display:grid;grid-template-columns:minmax(380px,1.4fr) minmax(300px,1fr);
  gap:14px;align-items:start}
/* Charts sit HORIZONTALLY in a full-width top row (KPAstro-style), each at a
   natural square size — no stretching to a third of ultra-wide screens. */
.adk-fs-chartrow{grid-column:1 / -1;display:flex;flex-direction:row;gap:14px;
  justify-content:center}
/* flex:1 is load-bearing: without it this inner flex container shrinks to
   content-ish width and the boxes wrap into a vertical stack. nowrap +
   flex:1 1 0 boxes = all three charts ALWAYS share one row, shrinking
   evenly on narrower effective viewports instead of wrapping. */
.adk-fs-chartrow .adk-charts{flex:1;display:flex;flex-direction:row;
  flex-wrap:nowrap;gap:14px;justify-content:center}
.adk-fs-chartrow .adk-chart-box{flex:1 1 0;min-width:0;max-width:640px}
.adk-fs-grid .adk-col{min-width:0;display:flex;flex-direction:column;gap:14px;
  padding-bottom:24px}
/* The embedded dasha tree keeps its own capped scroll (a fully expanded tree
   is enormous); make that scrollbar clearly visible on the dark theme. */
.adk-dasha-embed::-webkit-scrollbar{width:8px}
.adk-dasha-embed::-webkit-scrollbar-thumb{background:var(--gold-dim,#a89055);border-radius:4px}
.adk-dasha-embed::-webkit-scrollbar-track{background:var(--bg-2,#1a1a2e)}
/* Boost the page scrollbar's visibility while in the fs worksheet. */
body.adk-fullscreen .col.center::-webkit-scrollbar{width:9px}
body.adk-fullscreen .col.center::-webkit-scrollbar-thumb{background:var(--gold-dim,#a89055);border-radius:4px}
.adk-housesig,.adk-planettable,.adk-twoclock,.adk-sav,.adk-bala,.adk-panchang,
.adk-dasha-embed{background:var(--bg-2);border:1px solid var(--line);
  border-radius:8px;padding:10px}
.adk-housesig h3,.adk-planettable h3,.adk-twoclock h3,.adk-sav h3,
.adk-bala h3,.adk-panchang h3,.adk-dasha-embed h3{font-size:var(--fs-micro,11px);
  letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dim,#a89055);
  margin:0 0 8px}
@media (max-width: 1100px){
  .adk-fs-grid{grid-template-columns:1fr}
  .adk-fs-chartrow .adk-charts{flex-wrap:wrap}
  .adk-fs-chartrow .adk-chart-box{min-width:280px}
}
.adk-housesig table,.adk-planettable table{border-collapse:collapse;width:100%;font-size:12.5px}
.adk-housesig th,.adk-housesig td,.adk-planettable th,.adk-planettable td{
  border-bottom:1px solid var(--line);padding:4px 8px;text-align:left;
  white-space:nowrap;vertical-align:top}
.adk-housesig td:last-child{white-space:normal}
.adk-sig{display:inline-block;border:1px solid var(--line);border-radius:4px;
  padding:0 5px;margin:1px}
.adk-sig sup{font-size:9px;color:var(--gold-dim,#a89055)}
.adk-tier-a{border-color:#8fce8f}
.adk-tier-b{border-color:#a8c8e8}
.adk-tier-c,.adk-tier-d{opacity:.65}
.adk-planettable{overflow-x:auto}
.adk-clock-row{padding:4px 0;border-bottom:1px solid var(--line);font-size:13px}
.adk-clock-row b{display:inline-block;min-width:86px;color:var(--gold-dim,#a89055)}
.adk-clock-row .adk-hint{display:block;font-size:11.5px}
.adk-sav-strip{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}
.adk-sav-cell{text-align:center;border:1px solid var(--line);border-radius:4px;padding:3px 0}
.adk-sav-cell.pos{border-color:#8fce8f}
.adk-sav-cell.neg{border-color:#e09a9a}
.adk-sav-h{font-size:10px;opacity:.6}
.adk-sav-v{font-size:13px;font-weight:600}
.adk-bala table{border-collapse:collapse;width:100%;font-size:12.5px}
.adk-bala th,.adk-bala td{border-bottom:1px solid var(--line);padding:3px 8px;text-align:left}
.adk-dasha-embed{max-height:420px;overflow-y:auto}
/* Panels embedded in the empty space under charts (fs: Running Periods
   under chart 1, Ruling Planets under chart 3). */
.adk-inbox{margin-top:10px;border-top:1px solid var(--line);padding-top:8px;
  border-left:none;border-right:none;border-bottom:none;border-radius:0;
  background:transparent}
.adk-timing-sel{display:block;width:100%;margin:0 0 8px;background:var(--bg-2);
  color:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 10px}
/* Period Browser (Horosoft/KPAstro style) */
.adk-pb-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.adk-pb-bar button{background:var(--bg-2);color:inherit;border:1px solid var(--line);
  border-radius:5px;padding:2px 8px;cursor:pointer;font-size:12px}
.adk-pb-bar button.on,.adk-pb-bar button:hover{border-color:var(--gold,#c9a45a);
  color:var(--gold,#c9a45a)}
.adk-pb-step{margin-left:auto;display:flex;align-items:center;gap:4px}
.adk-pb-cursor{font-size:12px;color:var(--gold-dim,#a89055);white-space:nowrap}
.adk-pb-crumb{font-size:12px;margin-bottom:6px}
.adk-pb-crumb a{color:var(--gold,#c9a45a);text-decoration:none}
.adk-pb-row{display:flex;gap:8px;align-items:baseline;padding:4px 6px;
  border-bottom:1px solid var(--line);font-size:13px}
.adk-pb-row.drillable{cursor:pointer}
.adk-pb-row.drillable:hover{background:rgba(200,160,60,.08)}
.adk-pb-row.on{background:rgba(200,160,60,.14)}
.adk-pb-row .adk-pb-lord{min-width:76px;font-weight:600}
.adk-pb-row .adk-pb-dates{margin-left:auto;font-size:12px;opacity:.85;white-space:nowrap}
.adk-pb-radio{color:var(--gold-dim,#a89055)}

/* Parampara lens switcher */
.adk-lens-tabs{display:flex;gap:6px;margin:10px 0 4px}
.adk-lens-tab{background:none;border:1px solid var(--line);border-radius:14px;
  padding:3px 14px;cursor:pointer;color:var(--gold-dim,#a89055);font-size:12px;
  letter-spacing:.04em}
.adk-lens-tab.on{color:var(--gold,#c9a45a);border-color:var(--gold,#c9a45a)}
.adk-para-chip{font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold-dim,#a89055);border:1px solid var(--line);border-radius:10px;
  padding:1px 8px;margin-left:8px;vertical-align:middle}
.adk-parashara{display:flex;flex-direction:column;gap:12px}
.adk-parashara[hidden]{display:none}
.adk-para-panel table{width:100%;border-collapse:collapse}
.adk-para-panel{overflow-x:auto}
.adk-para-support td{opacity:.75}
.adk-para-bala{display:flex;flex-wrap:wrap;gap:8px}
.adk-bala-cell{border:1px solid var(--line);border-radius:10px;padding:2px 10px;font-size:12px}
.adk-para-load{background:none;border:1px solid var(--line);border-radius:10px;
  padding:2px 10px;cursor:pointer;color:var(--gold-dim,#a89055);font-size:12px;margin-left:6px}
.adk-para-load:hover{color:var(--gold);border-color:var(--gold)}
