:root {
  color-scheme: only light;
  --bg:#eef1f4;
  --panel:#fff;
  --text:#111;
  --muted:#5e6873;
  --line:#cbd2d9;
  --accent:#6f3b00;
  --accent-soft:#f8efe4;
  --danger:#b42318;
  --ui-font-size:17px;
  --report-font-size:1rem;
  --legacy-print-font-size:9.2pt;
}
*{box-sizing:border-box}
html,body{color-scheme:only light}
body{margin:0;background:var(--bg);color:var(--text);font-size:var(--ui-font-size);line-height:1.45;font-family:"Nirmala UI","Iskoola Pota","Noto Sans Sinhala","Segoe UI",system-ui,sans-serif}
svg{forced-color-adjust:none}
button,input,select{font:inherit}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.4rem;background:#202a35;color:#fff}
.topbar h1{margin:0;font-size:1.65rem}.topbar p{margin:.25rem 0 0;opacity:.82;font-size:1rem}
.layout{--form-panel-width:370px;display:grid;grid-template-columns:minmax(300px,var(--form-panel-width)) 12px minmax(0,1fr);gap:.5rem;padding:1rem;max-width:1580px;margin:auto}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;box-shadow:0 3px 14px rgba(0,0,0,.04)}
.form-panel{align-self:start;position:sticky;top:1rem}h2{margin-top:0}
.layout-resizer{position:relative;align-self:stretch;min-width:12px;cursor:col-resize;touch-action:none;user-select:none;border-radius:999px;outline:none}
.layout-resizer::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background:#cbd3da;transition:background-color .15s ease,width .15s ease}
.layout-resizer-handle{position:sticky;top:45vh;display:block;width:8px;height:58px;margin:0 auto;border:1px solid #b9c4ce;border-radius:999px;background:#f7f9fa;box-shadow:0 1px 4px rgba(28,39,50,.12);transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.layout-resizer-handle::after{content:"⋮";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#65717c;font-size:20px;line-height:1}
.layout-resizer:hover::before,.layout.is-resizing .layout-resizer::before{width:2px;background:#71869a}
.layout-resizer:hover .layout-resizer-handle,.layout-resizer:focus-visible .layout-resizer-handle,.layout.is-resizing .layout-resizer-handle{background:#fff;border-color:#71869a;box-shadow:0 2px 7px rgba(28,39,50,.2)}
.layout-resizer:focus-visible{outline:3px solid rgba(32,42,53,.18);outline-offset:2px}
.layout.is-resizing,.layout.is-resizing *{cursor:col-resize!important}

label{display:block;margin:.8rem 0;font-weight:650;font-size:1rem}input,select{width:100%;margin-top:.35rem;padding:.68rem .75rem;border:1px solid #c7d0d9;border-radius:8px;background:#fff}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem}.two-col>label{min-width:0}.two-col input,.two-col select{min-width:0;max-width:100%}.birth-datetime-row{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}button{border:0;border-radius:8px;padding:.7rem 1rem;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.primary{width:100%;background:var(--accent);color:#fff;font-weight:700;margin-top:.8rem}.secondary{background:#fff;color:#202a35;font-weight:700}.advanced{margin-top:.8rem;border:1px solid var(--line);border-radius:8px;padding:.65rem}.advanced summary{cursor:pointer;font-weight:700}.error{color:var(--danger);min-height:1.2rem}.empty{min-height:300px;display:flex;flex-direction:column;justify-content:center;text-align:center}.muted{color:var(--muted)}.hidden{display:none}
.tabs{display:flex;gap:.42rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem;padding:.48rem;background:#f1f4f6;border:1px solid #d7dde2;border-radius:14px;box-shadow:0 1px 3px rgba(22,32,42,.06)}.tabs button{min-height:44px;padding:.58rem .9rem;border:1px solid transparent;border-radius:9px;background:transparent;color:#25313c;font-weight:700;line-height:1.25;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.tabs button:hover{background:#fff;border-color:#d3dae0;box-shadow:0 1px 3px rgba(22,32,42,.08);transform:translateY(-1px)}.tabs button:focus-visible{outline:3px solid rgba(32,42,53,.22);outline-offset:2px}.tabs button.active,.tabs button.active:hover{background:#202a35;border-color:#202a35;color:#fff;box-shadow:0 2px 6px rgba(22,32,42,.18);transform:none}.screen{display:none}.active-screen{display:block}

/* 1998-inspired continuous report */
.classic-sheet{background:#fff;border:1px solid #c8c8c8;padding:28px 34px;max-width:1100px;margin:0 auto;box-shadow:0 2px 10px rgba(0,0,0,.05);font-variant-numeric:tabular-nums}
.classic-title{text-align:center;margin-bottom:18px}.classic-title h1{font-size:1.22rem;margin:.35rem 0;font-weight:700}.classic-title h2{font-size:1.28rem;margin:.7rem 0 .15rem;letter-spacing:.03em}.legacy-file-name{font-family:Consolas,"Courier New",monospace;font-size:1rem}.legacy-subtitle{font-family:Consolas,"Courier New",monospace;font-size:.86rem;letter-spacing:.08em;color:#555;text-align:center;margin:.15rem 0 .55rem}.classic-section{border-top:1px dashed #333;padding-top:14px;margin-top:18px}.classic-heading{text-align:center;font-size:1.22rem;margin:0}.legacy-note{font-size:.96rem;color:#5b6268;margin:.55rem 0 0;text-align:center}
.table-wrap{overflow:auto}.classic-table{width:100%;border-collapse:collapse;font-size:1rem;min-width:760px}.classic-table th,.classic-table td{padding:.38rem .45rem;border-bottom:1px solid #ddd;text-align:left;white-space:nowrap}.classic-table thead th{border-top:1px solid #111;border-bottom:1px solid #111;background:#fff}.classic-table .num{font-family:Consolas,"Courier New",monospace}.pending-cell{color:#999}.compact-table{min-width:0}.compact-table th{width:54%;font-weight:600;background:#fff}.compact-table td{text-align:right;font-family:Consolas,"Courier New",monospace}
.chart-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.classic-chart-block h2{text-align:center;font-size:1.16rem;margin:0}
.legacy-chart-host{width:100%;max-width:460px;margin:8px auto 0;background:#fff!important;color-scheme:only light;forced-color-adjust:none}
.legacy-chart-svg{display:block!important;width:100%!important;height:auto!important;overflow:visible;background:#fff!important;color:#111!important;color-scheme:only light;forced-color-adjust:none;font-family:"Nirmala UI","Iskoola Pota","Noto Sans Sinhala","Segoe UI",sans-serif}
.legacy-chart-svg rect.chart-line,.legacy-chart-svg .chart-line{fill:none!important;stroke:#111!important;stroke-width:1.7;vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision}
.legacy-chart-svg text{fill:#111!important}
.legacy-chart-svg .chart-house-text{fill:#111!important;font-size:17px;font-weight:650}
.legacy-chart-svg .chart-house-no{fill:#555!important;font-family:Consolas,"Courier New",monospace;font-size:13px;font-weight:400}
.legacy-chart-svg .chart-planets{fill:#111!important;font-size:17px;font-weight:700}
.legacy-chart-svg .chart-center-sign{fill:#111!important;font-size:20px;font-weight:800}
.legacy-chart-svg .chart-center-title{fill:#111!important;font-size:15px;font-weight:700}
.legacy-chart-svg .chart-center-degree{fill:#111!important;font-family:Consolas,"Courier New",monospace;font-size:14px}
.legacy-chart-svg .chart-outer-legend{fill:#444!important;font-family:"Nirmala UI","Iskoola Pota",Consolas,"Courier New",monospace;font-size:13px}
.not-yet{border:1px dashed #999;padding:1rem;text-align:center;color:#666;background:#fafafa}.classic-facts{font-family:Consolas,"Noto Sans Sinhala","Iskoola Pota",monospace}.fact-line{display:grid;grid-template-columns:190px 1fr;gap:14px;padding:.28rem 0;border-bottom:1px dotted #bbb}.fact-line span{font-weight:700}.fact-line strong{font-weight:500}.panchanga-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #222;border-bottom:1px solid #222}.panchanga-grid>div{padding:.55rem;border-right:1px dotted #aaa}.panchanga-grid>div:nth-child(3n){border-right:0}.panchanga-grid span{display:block;font-size:.9rem;color:#5d646b}.panchanga-grid strong{display:block;margin-top:.15rem}.times-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px}.nakshatra-box{border:1px solid #444;padding:.5rem .75rem}.nakshatra-box>div{display:grid;grid-template-columns:110px 1fr;padding:.18rem 0}.nakshatra-box span{font-weight:700}.dasha-balance-line{text-align:center;font-size:1.14rem;padding-bottom:4px}.dasha-balance-line span{margin-left:.6rem}.classic-dasha-preview{font-family:Consolas,"Noto Sans Sinhala","Iskoola Pota",monospace;font-size:.94rem;line-height:1.5}.legacy-dasha-group{margin:.75rem 0;break-inside:avoid-page}.legacy-dasha-heading{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed #555;padding:.32rem 0}.legacy-dasha-heading span{white-space:nowrap}.legacy-dasha-line{display:grid;grid-template-columns:minmax(180px,.8fr) 1.6fr 1fr;gap:10px;padding:.24rem 0;border-bottom:1px dotted #ddd}.legacy-dasha-line .lords{font-weight:700}

/* Dasha drill-down */
.dasha-chain{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;margin-bottom:1rem}.dasha-card{border-left:5px solid var(--accent);background:var(--accent-soft);padding:.8rem;border-radius:8px}.dasha-card .lord{font-size:1.2rem;font-weight:800}.dasha-card small{display:block;color:#5c6570;margin-top:.25rem}.dasha-meta{background:#f7f8f9;border:1px solid var(--line);padding:.75rem;border-radius:8px;margin-bottom:1rem}details.dasha{border:1px solid var(--line);border-radius:8px;margin:.55rem 0;background:#fff}details.dasha>summary{cursor:pointer;padding:.7rem .8rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dasha-children{padding:0 .65rem .65rem 1rem}.period-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 1fr 1fr .7fr;gap:.5rem;padding:.55rem;border-top:1px solid #edf0f2;font-size:.98rem}.technical-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.65rem}.tech-item{border:1px solid var(--line);border-radius:8px;padding:.75rem}.warning{background:#fff6d9;border:1px solid #f3d16d;padding:.8rem;border-radius:8px}.footer{text-align:center;padding:1rem;color:var(--muted)}

@media(max-width:1050px){.times-layout{grid-template-columns:1fr}.classic-sheet{padding:22px}.legacy-dasha-line{grid-template-columns:1fr}.legacy-dasha-heading{display:block}}
@media(max-width:720px){.chart-pair{grid-template-columns:1fr}.legacy-chart-host{max-width:460px}}
@media(max-width:900px){.layout{grid-template-columns:1fr;gap:1rem}.layout-resizer{display:none}.form-panel{position:static}.topbar{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.two-col{grid-template-columns:1fr}.classic-sheet{padding:14px 10px}.panchanga-grid{grid-template-columns:1fr 1fr}.panchanga-grid>div:nth-child(3n){border-right:1px dotted #aaa}.panchanga-grid>div:nth-child(2n){border-right:0}.fact-line{grid-template-columns:1fr}.period-row{grid-template-columns:1fr}.legacy-chart-host{max-width:100%}}

@media print{
  body{background:#fff}.no-print,.footer{display:none!important}.layout{display:block;padding:0;max-width:none}.workspace{width:100%}#results{display:block!important}.screen{display:block!important}.classic-sheet{border:0;box-shadow:none;padding:0;max-width:none}#screen-technical{display:none!important}#screen-dasha{border:0;box-shadow:none;padding:0;margin-top:10mm}.classic-section{break-inside:auto}.chart-pair,.times-layout{break-inside:avoid}.legacy-chart-host{max-width:360px}.classic-table{font-size:9pt}.classic-dasha-preview{font-size:8.8pt}.legacy-dasha-group{break-inside:avoid}.dasha-chain,.dasha-meta{break-inside:avoid}.dasha>summary{font-size:10pt}@page{size:A4;margin:12mm}}

/* v0.2.3 — fixed-column dasha alignment + dedicated 1998 print report */
.legacy-dasha-heading{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  align-items:baseline;
  column-gap:18px;
  font-variant-numeric:tabular-nums;
}
.dasha-date-range{display:grid;grid-template-columns:205px 20px 205px;align-items:center;text-align:left;white-space:nowrap}
.dasha-date-range b,.legacy-dasha-line .arrow{text-align:center;font-weight:400}
.legacy-dasha-line{
  display:grid;
  grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 11ch 20px 11ch;
  gap:8px;
  align-items:baseline;
  font-size:.92rem;
  line-height:1.45;
  font-variant-numeric:tabular-nums;
}
.legacy-dasha-line .date,.legacy-dasha-line .age{white-space:nowrap;font-family:Consolas,"Courier New",monospace}
.legacy-dasha-line .age-label{text-align:right;color:#555}
.legacy-print-only{display:none}

@media(max-width:1200px){
  .legacy-dasha-line{grid-template-columns:minmax(185px,1fr) 190px 16px 190px 42px 11ch 16px 11ch;font-size:.86rem;gap:5px}
  .dasha-date-range{grid-template-columns:190px 16px 190px}
}
@media(max-width:900px){
  .legacy-dasha-heading{display:block}
  .dasha-date-range{display:flex;gap:6px;margin-top:4px}
  .legacy-dasha-line{grid-template-columns:1fr 18px 1fr;gap:4px 6px;padding:.45rem 0}
  .legacy-dasha-line .lords{grid-column:1/-1}
  .legacy-dasha-line .age-label{grid-column:1/-1;text-align:left;font-size:.72rem;color:#666}
}

@media print{
  html,body{background:#fff!important}
  body>*:not(.legacy-print-only){display:none!important}
  .legacy-print-only{display:block!important;margin:0;padding:0;color:#000;background:#fff}
  .legacy-print-pre{
    display:block;
    margin:0;
    white-space:pre;
    overflow:visible;
    font-family:"Courier New",Consolas,monospace;
    font-size:var(--legacy-print-font-size);
    line-height:1.28;
    color:#000;
    background:#fff;
    tab-size:8;
  }
  .legacy-print-chart-page{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6mm;
    margin:3mm 0 4mm;
    break-inside:avoid;
  }
  .legacy-print-chart-item{min-width:0}
  .legacy-print-chart-item .legacy-chart-svg{width:100%!important;max-height:78mm!important}
  @page{size:A4 portrait;margin:10mm 9mm}
}

/* v0.3.0 complete-calculation additions */
.ashtaka-wrap{overflow-x:auto}
.ashtaka-table{min-width:900px;text-align:center}
.ashtaka-table th,.ashtaka-table td{text-align:center;padding:.32rem .38rem}
.ashtaka-table th:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}
.ashtaka-total th,.ashtaka-total td{border-top:2px solid #111;border-bottom:2px solid #111;background:#fafafa}
@media print{
  .ashtaka-table{min-width:0;font-size:8.4pt}
  .ashtaka-table th,.ashtaka-table td{padding:1.5pt 2pt}
}

/* v0.3.1 — paged screen report + paged 1998 print layout */
.classic-report{
  background:transparent;
  border:0;
  padding:0;
  max-width:none;
  box-shadow:none;
}
.report-page{
  background:#fff;
  border:1px solid #c8c8c8;
  box-shadow:0 3px 14px rgba(0,0,0,.07);
  max-width:1100px;
  min-height:900px;
  margin:0 auto 28px;
  padding:30px 36px;
  font-variant-numeric:tabular-nums;
}
.report-page .classic-title{margin-bottom:14px}
.classic-facts-top{
  border-top:1px dashed #333;
  border-bottom:1px dashed #333;
  margin:14px 0 22px;
  padding:10px 0;
}
.classic-facts-top .fact-line:last-child{border-bottom:0}
.page-content-section{margin-top:0}
.report-page-charts .chart-pair{margin-top:22px}
.report-page-panchanga .panchanga-details{margin-top:26px;padding-top:18px;border-top:1px dashed #333}
.report-page-panchanga .dasha-balance-line{margin-top:22px;padding-top:16px;border-top:1px dashed #333}
.classic-dasha-pages{max-width:1100px;margin:0 auto}
.report-page-dasha{min-height:0}
.report-page-dasha .legacy-dasha-group{margin:18px 0 24px}
.report-page-dasha .legacy-dasha-group:last-child{margin-bottom:0}

@media(max-width:1050px){
  .report-page{min-height:0;padding:22px}
}
@media(max-width:720px){
  .report-page{margin-bottom:18px;padding:16px 12px}
}

@media print{
  .legacy-print-page{
    display:block;
    width:100%;
    min-height:0;
    margin:0;
    padding:0;
    break-after:page;
    page-break-after:always;
    break-inside:avoid-page;
    page-break-inside:avoid;
  }
  .legacy-print-page:last-child{
    break-after:auto;
    page-break-after:auto;
  }
  .legacy-print-summary{
    margin:3mm 0 4mm;
    padding:2.5mm 0;
    border-top:1px dashed #000;
    border-bottom:1px dashed #000;
    font-family:"Nirmala UI","Iskoola Pota","Noto Sans Sinhala","Segoe UI",sans-serif;
    font-size:10pt;
    line-height:1.35;
  }
  .legacy-print-summary>div{
    display:grid;
    grid-template-columns:43mm 1fr;
    gap:3mm;
    padding:.7mm 0;
  }
  .legacy-print-summary span{font-weight:700}
  .legacy-print-summary strong{font-weight:500}
  .legacy-print-chart-page-wrap{padding-top:1mm}
  .legacy-print-chart-page{
    margin:5mm 0 0;
    align-items:start;
  }
  .legacy-print-chart-item .legacy-chart-svg{
    width:100%!important;
    max-height:92mm!important;
  }
  .legacy-print-dasha-page .legacy-print-pre{
    line-height:1.32;
  }
  @page{size:A4 portrait;margin:10mm 9mm}
}

/* v0.3.2 — age-80 Dasha display, Maha Dasha section titles, A4 portrait print tuning */
.legacy-maha-title{
  margin:22px 0 10px;
  padding:9px 12px 8px;
  border-top:2px solid #222;
  border-bottom:2px solid #222;
  text-align:center;
  background:#f5f5f3;
}
.legacy-maha-title span{
  display:block;
  font-size:1.18rem;
  font-weight:800;
  letter-spacing:.02em;
}
.legacy-maha-title small{
  display:block;
  margin-top:3px;
  font-family:Consolas,"Courier New",monospace;
  font-size:.82rem;
  font-weight:500;
  color:#505860;
}
.legacy-maha-title.continued{
  border-top-width:1px;
  border-bottom-width:1px;
  background:#fafafa;
}
.legacy-maha-title.continued span{font-size:1.02rem}
.report-page-dasha .legacy-maha-title:first-of-type{margin-top:14px}
.dasha-maha{
  margin:14px 0;
  border:2px solid #8d7358;
  border-radius:8px;
  overflow:hidden;
}
.dasha-maha>summary{
  background:#f6efe6;
  font-size:1.04rem;
  padding:.75rem .85rem;
}

@media print{
  /* The printable content box is 194mm × 281mm after 8mm A4 margins. */
  @page{size:A4 portrait;margin:8mm 8mm}
  html,body{width:210mm;background:#fff!important}
  .legacy-print-only{width:194mm;margin:0 auto!important}
  .legacy-print-page{
    width:194mm;
    max-width:194mm;
    min-height:281mm;
    height:auto;
    margin:0;
    padding:0;
    overflow:visible;
    box-sizing:border-box;
  }
  /* On pages with spare vertical room, begin about two text lines lower. */
  .legacy-print-page-spacious{
    padding-top:2.55em;
  }
  .legacy-print-pre{
    max-width:194mm;
    font-size:var(--legacy-print-font-size);
    line-height:1.24;
    letter-spacing:0;
  }
  .legacy-print-summary{
    font-size:9.8pt;
    line-height:1.28;
    margin:2.5mm 0 3mm;
    padding:2mm 0;
  }
  .legacy-print-chart-page{
    gap:5mm;
    margin:4mm 0 0;
  }
  .legacy-print-chart-item .legacy-chart-svg{
    width:100%!important;
    max-height:88mm!important;
  }
  .legacy-print-dasha-page .legacy-print-pre{
    font-size:9.2pt;
    line-height:1.23;
  }
}

/* v0.3.3 — AM/PM before time + screen-style A4 print + dynamic Dasha packing */
@media print {
  @page { size: A4 portrait; margin: 8mm; }

  html, body {
    width: auto !important;
    min-width: 0 !important;
    background: #fff !important;
    color: #111 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Print the same visual report used on screen instead of the legacy PRE report. */
  body > .layout { display: block !important; padding: 0 !important; max-width: none !important; }
  .legacy-print-only { display: none !important; }
  .no-print, .footer, .form-panel, #emptyState, #screen-dasha, #screen-technical { display: none !important; }
  .workspace, #results, #screen-classic {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .classic-report { background: #fff !important; }

  /* The first five report sections remain dedicated A4 pages. */
  .report-page {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 7mm 5mm 5mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    background: #fff !important;
  }
  .report-page-nirayana,
  .report-page-shadvarga,
  .report-page-charts,
  .report-page-ashtaka,
  .report-page-panchanga {
    break-after: page !important;
    page-break-after: always !important;
  }

  /* Preserve the screen typography/table appearance but fit A4 efficiently. */
  .classic-title h1 { font-size: 15pt !important; margin: 0 0 2mm !important; }
  .classic-heading { font-size: 13pt !important; margin: 0 0 1.5mm !important; }
  .legacy-subtitle { font-size: 8.5pt !important; margin-bottom: 2.5mm !important; }
  .classic-facts-top { margin: 3mm 0 4mm !important; padding: 2mm 0 !important; }
  .fact-line { grid-template-columns: 39mm 1fr !important; gap: 3mm !important; padding: 1mm 0 !important; font-size: 9.6pt !important; }
  .classic-table { font-size: 9.3pt !important; line-height: 1.18 !important; }
  .classic-table th, .classic-table td { padding: 1.5mm 1.25mm !important; }
  .classic-planets { table-layout: auto !important; }
  .ashtaka-table { font-size: 8.7pt !important; }
  .ashtaka-table th, .ashtaka-table td { padding: 1.1mm 1mm !important; }
  .legacy-note { font-size: 8.5pt !important; margin: 2mm 0 0 !important; }
  .panchanga-grid > div { padding: 2mm !important; }
  .panchanga-grid span { font-size: 8.4pt !important; }
  .panchanga-grid strong { font-size: 9.5pt !important; }
  .times-layout { gap: 6mm !important; }
  .nakshatra-box { padding: 2mm 3mm !important; font-size: 9pt !important; }
  .nakshatra-box > div { grid-template-columns: 26mm 1fr !important; padding: .6mm 0 !important; }
  .dasha-balance-line { font-size: 10pt !important; margin-top: 3mm !important; padding-top: 3mm !important; }

  /* Both charts stay together on one A4 page and retain the screen SVG look. */
  .report-page-charts .chart-pair {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 5mm !important;
    align-items: start !important;
    margin-top: 4mm !important;
  }
  .classic-chart-block h2 { font-size: 12pt !important; margin-bottom: 1mm !important; }
  .classic-chart .legacy-chart-svg,
  .astro-chart .legacy-chart-svg {
    width: 100% !important;
    max-height: 93mm !important;
  }

  /*
     Screen keeps two Antardashas per visual page. For print, flatten those
     artificial wrappers and let the browser pack as many whole groups as fit.
  */
  .classic-dasha-pages {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    break-before: auto !important;
  }
  .classic-dasha-pages > .report-page-dasha {
    display: contents !important;
  }
  .classic-dasha-pages > .report-page-dasha:not(:first-child) > .classic-heading,
  .classic-dasha-pages > .report-page-dasha:not(:first-child) > .legacy-subtitle {
    display: none !important;
  }
  .classic-dasha-pages > .report-page-dasha:first-child > .classic-heading {
    display: block !important;
    margin: 5mm 5mm 1mm !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  .classic-dasha-pages > .report-page-dasha:first-child > .legacy-subtitle {
    display: block !important;
    margin: 0 5mm 3mm !important;
    break-after: avoid !important;
  }

  .legacy-maha-title {
    margin: 4mm 5mm 2.5mm !important;
    padding: 2mm 3mm !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    background: #f5f5f3 !important;
  }
  .legacy-maha-title span { font-size: 11pt !important; }
  .legacy-maha-title small { font-size: 8.2pt !important; }

  .legacy-dasha-group {
    margin: 0 5mm 3.2mm !important;
    padding: 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  .legacy-dasha-heading {
    padding: 1.5mm 0 !important;
    font-size: 9.2pt !important;
    gap: 2mm !important;
  }
  .dasha-date-range {
    grid-template-columns: 43mm 4mm 43mm !important;
    font-size: 8.5pt !important;
  }
  .legacy-dasha-line {
    grid-template-columns: minmax(34mm, 1fr) 39mm 3mm 39mm 10mm 14mm 3mm 14mm !important;
    gap: 1mm !important;
    padding: 1mm 0 !important;
    font-size: 8.4pt !important;
    line-height: 1.15 !important;
  }
  .legacy-dasha-line .date,
  .legacy-dasha-line .age { font-size: 8.1pt !important; }
  .legacy-dasha-line .age-label { font-size: 7.8pt !important; }

  /* Allow a natural page break only between complete Antardasha groups. */
  .legacy-dasha-group + .legacy-maha-title,
  .legacy-dasha-group + .legacy-dasha-group { break-before: auto !important; }
}

/* v0.3.4 — authoritative screen-matched A4 LANDSCAPE print layer
   This block intentionally comes last so old legacy-print rules cannot
   restyle the classic screen report during printing. */
@media print {
  @page { size: A4 landscape; margin: 8mm; }

  html, body {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: var(--text) !important;
    font-size: var(--ui-font-size) !important;
    line-height: 1.45 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Only the Classic screen report is printable. */
  body > header,
  body > footer,
  body > .legacy-print-only { display: none !important; }
  body > .layout {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .form-panel, .tabs, #emptyState, #screen-dasha, #screen-technical,
  .no-print, .footer { display: none !important; }
  .workspace, #results, #screen-classic, .classic-report {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  /* A landscape A4 printable area is close to the desktop report width,
     so preserve the screen page appearance instead of compressing it. */
  .report-page {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 30px 36px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }

  .report-page-nirayana,
  .report-page-shadvarga,
  .report-page-charts,
  .report-page-ashtaka,
  .report-page-panchanga,
  .report-page-dasha {
    break-after: page !important;
    page-break-after: always !important;
  }
  .classic-dasha-pages > .report-page-dasha:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  /* Restore desktop screen typography. */
  .classic-title { margin-bottom: 18px !important; }
  .classic-title h1 {
    font-size: 1.22rem !important;
    margin: .35rem 0 !important;
    font-weight: 700 !important;
  }
  .legacy-file-name { font-size: 1rem !important; }
  .classic-heading {
    font-size: 1.22rem !important;
    margin: 0 !important;
  }
  .legacy-subtitle {
    font-size: .86rem !important;
    margin: .15rem 0 .55rem !important;
    letter-spacing: .08em !important;
  }
  .legacy-note {
    font-size: .96rem !important;
    margin: .55rem 0 0 !important;
  }

  /* Birth summary exactly follows the desktop two-column label/value layout. */
  .classic-facts-top {
    margin: 14px 0 22px !important;
    padding: 10px 0 !important;
  }
  .fact-line {
    display: grid !important;
    grid-template-columns: 190px 1fr !important;
    gap: 14px !important;
    padding: .28rem 0 !important;
    font-size: inherit !important;
  }

  /* Print full tables, never scroll/crop them. */
  .table-wrap, .ashtaka-wrap {
    overflow: visible !important;
    width: 100% !important;
  }
  .classic-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
    font-size: 1rem !important;
    line-height: inherit !important;
  }
  .classic-table th, .classic-table td {
    padding: .38rem .45rem !important;
    white-space: nowrap !important;
  }
  .ashtaka-table {
    min-width: 0 !important;
    font-size: 1rem !important;
  }
  .ashtaka-table th, .ashtaka-table td {
    padding: .32rem .38rem !important;
  }
  .ashtaka-table th:first-child {
    position: static !important;
  }

  /* Keep the two horoscope charts exactly side-by-side as on desktop. */
  .report-page-charts .chart-pair,
  .chart-pair {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 22px !important;
    align-items: start !important;
    margin-top: 22px !important;
  }
  .classic-chart-block h2 {
    font-size: 1.16rem !important;
    margin: 0 !important;
  }
  .legacy-chart-host {
    width: 100% !important;
    max-width: 460px !important;
    margin: 8px auto 0 !important;
  }
  .legacy-chart-svg {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }

  /* Panchanga keeps the same 3-column and 2-column desktop layout. */
  .panchanga-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
  }
  .panchanga-grid > div { padding: .55rem !important; }
  .panchanga-grid span { font-size: .9rem !important; }
  .panchanga-grid strong { font-size: inherit !important; }
  .times-layout {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 30px !important;
  }
  .report-page-panchanga .panchanga-details {
    margin-top: 26px !important;
    padding-top: 18px !important;
  }
  .nakshatra-box {
    padding: .5rem .75rem !important;
    font-size: inherit !important;
  }
  .nakshatra-box > div {
    grid-template-columns: 110px 1fr !important;
    padding: .18rem 0 !important;
  }
  .dasha-balance-line {
    font-size: 1.14rem !important;
    margin-top: 22px !important;
    padding-top: 16px !important;
  }

  /* Dasha PDF pages use exactly the same two-Antardasha screen cards/page.
     Landscape width prevents the date/age columns from being reformatted. */
  .classic-dasha-pages {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .classic-dasha-pages > .report-page-dasha {
    display: block !important;
  }
  .classic-dasha-pages > .report-page-dasha > .classic-heading,
  .classic-dasha-pages > .report-page-dasha > .legacy-subtitle {
    display: block !important;
  }
  .report-page-dasha .legacy-dasha-group {
    margin: 18px 0 24px !important;
    padding: 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  .legacy-maha-title {
    margin: 22px 0 10px !important;
    padding: 9px 12px 8px !important;
    background: #f5f5f3 !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  .legacy-maha-title span { font-size: 1.18rem !important; }
  .legacy-maha-title small { font-size: .82rem !important; }
  .legacy-maha-title.continued span { font-size: 1.02rem !important; }

  .legacy-dasha-heading {
    display: grid !important;
    grid-template-columns: minmax(260px, 1fr) auto !important;
    column-gap: 18px !important;
    padding: .32rem 0 !important;
    font-size: inherit !important;
  }
  .dasha-date-range {
    display: grid !important;
    grid-template-columns: 205px 20px 205px !important;
    gap: 0 !important;
    margin: 0 !important;
    font-size: inherit !important;
  }
  .legacy-dasha-line {
    display: grid !important;
    grid-template-columns: minmax(205px,1fr) 205px 20px 205px 48px 68px 20px 68px !important;
    gap: 8px !important;
    padding: .24rem 0 !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
  }
  .legacy-dasha-line .date,
  .legacy-dasha-line .age,
  .legacy-dasha-line .age-label {
    font-size: inherit !important;
  }
}

/* v0.3.4 landscape page-fit: preserve the screen proportions as one scaled unit.
   68% is chosen so the tallest normal two-Antardasha screen page fits within
   the A4-landscape printable height without being split. */
@media print {
  .report-page {
    zoom: .68 !important;
    width: 147.0588235% !important;
  }
}

/* v0.3.4 landscape compact-fit overrides.
   Keep the desktop structure, but reduce only vertical whitespace enough that
   each screen report page remains one physical A4-landscape page. */
@media print {
  html, body { font-size: 15px !important; line-height: 1.28 !important; }
  .report-page {
    zoom: 1 !important;
    width: 100% !important;
    padding: 16px 26px !important;
  }
  .classic-title { margin-bottom: 9px !important; }
  .classic-title h1 { margin: .15rem 0 !important; }
  .classic-facts-top { margin: 7px 0 11px !important; padding: 5px 0 !important; }
  .fact-line { padding: .12rem 0 !important; }
  .legacy-subtitle { margin: .05rem 0 .32rem !important; }
  .classic-table { line-height: 1.18 !important; }
  .classic-table th, .classic-table td { padding: .18rem .38rem !important; }
  .ashtaka-table th, .ashtaka-table td { padding: .16rem .28rem !important; }
  .report-page-charts .chart-pair, .chart-pair { margin-top: 10px !important; }
  .legacy-chart-host { margin-top: 4px !important; max-width: 420px !important; }
  .panchanga-grid > div { padding: .30rem .48rem !important; }
  .report-page-panchanga .panchanga-details { margin-top: 12px !important; padding-top: 9px !important; }
  .times-layout { gap: 22px !important; }
  .nakshatra-box { padding: .30rem .60rem !important; }
  .nakshatra-box > div { padding: .08rem 0 !important; }
  .dasha-balance-line { font-size: 1.05rem !important; margin-top: 10px !important; padding-top: 8px !important; }

  .report-page-dasha .legacy-dasha-group { margin: 8px 0 10px !important; }
  .legacy-maha-title { margin: 9px 0 5px !important; padding: 5px 9px !important; }
  .legacy-maha-title span { font-size: 1.08rem !important; }
  .legacy-maha-title small { margin-top: 1px !important; font-size: .78rem !important; }
  .legacy-dasha-heading { padding: .14rem 0 !important; column-gap: 12px !important; font-size: .90rem !important; }
  .legacy-dasha-line {
    gap: 6px !important;
    padding: .04rem 0 !important;
    font-size: .84rem !important;
    line-height: 1.18 !important;
  }
}

/* v0.3.4 physical landscape width lock.
   Chromium lays print CSS out against the full sheet width even when @page has
   margins. Locking the report to the 281mm printable width prevents horizontal
   tiling (which previously moved the Age columns onto extra PDF pages). */
@media print {
  body > .layout,
  .workspace,
  #results,
  #screen-classic,
  .classic-report,
  .report-page,
  .classic-dasha-pages {
    width: 281mm !important;
    max-width: 281mm !important;
  }
  body > .layout,
  .workspace,
  #results,
  #screen-classic,
  .classic-report,
  .classic-dasha-pages { margin-left: auto !important; margin-right: auto !important; }
}

/* Print media can also satisfy the normal <=900px responsive query in Chromium.
   Undo its mobile-only grid spanning so Dasha rows stay one line in landscape. */
@media print {
  .legacy-dasha-line .lords {
    grid-column: auto !important;
  }
  .legacy-dasha-line .age-label {
    grid-column: auto !important;
    text-align: right !important;
    color: #555 !important;
  }
}

/* v0.3.4 dynamic landscape Dasha packing.
   Screen remains two Antardashas per visual page. Print removes those artificial
   wrappers and packs as many complete Antardasha blocks as the landscape sheet holds. */
@media print {
  .classic-dasha-pages > .report-page-dasha {
    display: contents !important;
    break-after: auto !important;
    page-break-after: auto !important;
  }
  .classic-dasha-pages > .report-page-dasha > .classic-heading,
  .classic-dasha-pages > .report-page-dasha > .legacy-subtitle {
    display: none !important;
  }
  .classic-dasha-pages > .report-page-dasha:first-child > .classic-heading {
    display: block !important;
    margin: 16px 26px 0 !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  .classic-dasha-pages > .report-page-dasha:first-child > .legacy-subtitle {
    display: block !important;
    margin: 0 26px 8px !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  /* These were only inserted to label the next *screen* page. In print the
     groups flow continuously; retain only the real Maha-Dasha-change titles. */
  .classic-dasha-pages .legacy-maha-title.continued {
    display: none !important;
  }
  .classic-dasha-pages .legacy-maha-title:not(.continued) {
    margin-left: 26px !important;
    margin-right: 26px !important;
  }
  .classic-dasha-pages .legacy-dasha-group {
    margin-left: 26px !important;
    margin-right: 26px !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
}

/* v0.3.5 — vertical page balance + clearer Maha-Dasha separation.
   Screen pages start a few text lines lower so pages with spare room are not
   visually top-heavy. A real Maha-Dasha change receives extra breathing room. */
.report-page {
  padding-top: 48px;
  padding-bottom: 34px;
}
.report-page-dasha {
  padding-top: 44px;
}

/* A genuine Maha-Dasha start should read as a new chapter, not another row.
   Continued labels keep the tighter spacing because they are only page context. */
.report-page-dasha .legacy-maha-title:not(.continued) {
  margin-top: 34px;
  margin-bottom: 14px;
}
.report-page-dasha .legacy-dasha-group + .legacy-maha-title:not(.continued) {
  margin-top: 52px;
}
.report-page-dasha .legacy-maha-title.continued {
  margin-top: 18px;
}

@media(max-width:1050px){
  .report-page{padding-top:38px;padding-bottom:28px}
  .report-page-dasha{padding-top:36px}
}
@media(max-width:720px){
  .report-page{padding-top:30px;padding-bottom:24px}
  .report-page-dasha{padding-top:30px}
  .report-page-dasha .legacy-maha-title:not(.continued){margin-top:28px}
  .report-page-dasha .legacy-dasha-group + .legacy-maha-title:not(.continued){margin-top:38px}
}

/* Landscape PDF: add a little more white space above each physical page while
   keeping the side margins at 8mm (so the 281mm desktop-width lock remains valid).
   The extra top margin uses space that was usually left blank at the bottom. */
@media print {
  @page { size: A4 landscape; margin: 12mm 8mm 8mm; }

  /* Dedicated report pages: preserve the screen look but begin slightly lower. */
  .report-page:not(.report-page-dasha) {
    padding-top: 24px !important;
    padding-bottom: 12px !important;
  }

  /* The first Dasha heading on the print stream also gets a calmer top start. */
  .classic-dasha-pages > .report-page-dasha:first-child > .classic-heading {
    margin-top: 24px !important;
  }

  /* More separation only where the Maha-Dasha lord actually changes. */
  .classic-dasha-pages .legacy-maha-title:not(.continued) {
    margin-top: 5mm !important;
    margin-bottom: 3mm !important;
  }
  .classic-dasha-pages .legacy-dasha-group + .legacy-maha-title:not(.continued) {
    margin-top: 8mm !important;
  }
}

/* v0.3.6 — modern report hierarchy + overview page.
   The report is no longer visually tied to the 1998 printout.  The first page
   acts as a concise horoscope overview: birth facts followed by both charts. */
.report-page-overview{
  min-height:900px;
}
.report-page-overview .classic-title{
  margin-bottom:18px;
}
.overview-facts{
  margin:16px auto 26px;
  padding:12px 16px;
  border:1px solid #ddd3c7;
  border-radius:10px;
  background:#fbfaf8;
  max-width:980px;
}
.overview-facts .fact-line{
  border-bottom:1px solid #e5dfd7;
  padding:.36rem .15rem;
}
.overview-facts .fact-line:last-child{
  border-bottom:0;
}
.overview-chart-pair{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid #e1e5e9;
  gap:34px;
}
.overview-chart-pair .classic-chart-block{
  min-width:0;
}
.overview-chart-pair .classic-chart-block h2{
  font-size:1.22rem;
  font-weight:800;
  color:#27323d;
  margin-bottom:10px;
}
.overview-chart-pair .legacy-chart-host{
  max-width:430px;
  margin-top:4px;
}

/* A little more visual hierarchy for the modern report, while staying light
   enough to reproduce cleanly in PDF. */
.classic-heading{
  color:#27323d;
  font-weight:800;
  letter-spacing:.01em;
}
.classic-table thead th{
  background:#f6f3ef;
  border-top:2px solid #8a6235;
  border-bottom:1px solid #b9b0a5;
}
.classic-table tbody tr:nth-child(even){
  background:#fbfcfd;
}
.classic-table tbody tr:hover{
  background:#f7f3ed;
}
.report-page:not(.report-page-overview) > .classic-heading{
  margin-bottom:2px;
}
.report-page:not(.report-page-overview) > .legacy-subtitle{
  margin-bottom:18px;
  color:#6a7178;
  letter-spacing:.06em;
}

/* The chart itself is intentionally quiet: no retrograde markers, no outer
   Uranus/Neptune/Pluto house legend, and house numbers only for empty houses. */
.legacy-chart-svg .chart-house-no{
  fill:#707880!important;
  font-size:13px;
  font-weight:500;
}
.legacy-chart-svg .chart-planets{
  font-size:18px;
  font-weight:750;
}

@media(max-width:720px){
  .overview-facts{padding:10px 12px;margin-bottom:20px}
  .overview-chart-pair{padding-top:18px;gap:22px}
  .report-page-overview{min-height:0}
}

@media print{
  /* First physical page is the same overview visible on screen. */
  .report-page-overview{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    break-after:page!important;
    page-break-after:always!important;
    break-inside:avoid-page!important;
    page-break-inside:avoid!important;
    padding-top:24px!important;
    padding-bottom:12px!important;
  }
  .report-page-overview .overview-facts{
    max-width:none!important;
    margin:12px 22px 18px!important;
    padding:8px 14px!important;
    background:#fbfaf8!important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .report-page-overview .overview-chart-pair{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:28px!important;
    margin-top:14px!important;
    padding-top:16px!important;
  }
  .report-page-overview .legacy-chart-host{
    max-width:390px!important;
    margin:2px auto 0!important;
  }
  .classic-table thead th,
  .classic-table tbody tr:nth-child(even){
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .classic-table tbody tr:hover{background:inherit!important}
}


/* v0.3.7 — supplementary Lagna Ashtakavarga + PDF authorship footer */
.lagna-ashtaka-detail{
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid #ddd6ce;
}
.lagna-ashtaka-title{
  font-weight:800;
  color:#27323d;
  margin:0 0 8px;
}
.lagna-ashtaka-title span{
  display:inline-block;
  margin-left:8px;
  padding:2px 8px;
  border:1px solid #d6c7b5;
  border-radius:999px;
  color:#7a5b36;
  background:#faf6f0;
  font-size:.78em;
  font-weight:700;
}
.lagna-ashtaka-table tbody th{background:#faf7f2}
.print-watermark{display:none}

@media print{
  .lagna-ashtaka-detail{
    margin-top:4mm!important;
    padding-top:3mm!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .lagna-ashtaka-title{margin-bottom:1.5mm!important}
  .lagna-ashtaka-detail .legacy-note{margin-top:1.5mm!important}

  /* A fixed footer is repeated by Chromium on each PDF page.  Keep it faint
     so it works as an authorship watermark rather than report content. */
  body > .print-watermark.print-watermark{
    display:block!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:-6mm!important;
    z-index:9999!important;
    text-align:center!important;
    font-size:8pt!important;
    line-height:1!important;
    letter-spacing:.04em!important;
    color:rgba(70,70,70,.48)!important;
    background:transparent!important;
    pointer-events:none!important;
  }
}


/* v0.3.9 — PDF is generated by the server with Chromium/Edge.
   Browser-native headers are disabled there; the repeated authorship footer is
   supplied by Chromium's PDF footer template, not by page content. */
@media print{
  .print-watermark{display:none!important}
}


/* v0.3.10 — Playwright PDF balance pass.
   Keep the screen-like landscape layout, but restore breathing room lost in
   the compact-fit rules. The server supplies the physical 16/8/12/8 mm page
   margins; this layer only controls content rhythm inside that printable area. */
@media print {
  /* Override the earlier compact-fit layer: readable rather than cramped. */
  html, body {
    font-size: 16px !important;
    line-height: 1.34 !important;
  }

  /* General report pages get a visible top inset inside the Playwright page
     margin. This prevents the first line from looking clipped at the top. */
  .report-page,
  .report-page-overview,
  .report-page:not(.report-page-dasha) {
    padding-top: 30px !important;
    padding-right: 30px !important;
    padding-bottom: 22px !important;
    padding-left: 30px !important;
  }

  .classic-title { margin-bottom: 14px !important; }
  .classic-title h1 { margin: .24rem 0 !important; }
  .overview-facts,
  .report-page-overview .overview-facts {
    margin-top: 12px !important;
    margin-bottom: 22px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
  .overview-chart-pair,
  .report-page-overview .overview-chart-pair {
    margin-top: 20px !important;
    padding-top: 20px !important;
  }

  /* Restore comfortable table density while still fitting landscape A4. */
  .classic-table {
    font-size: .95rem !important;
    line-height: 1.28 !important;
  }
  .classic-table th,
  .classic-table td {
    padding: .26rem .42rem !important;
  }
  .ashtaka-table th,
  .ashtaka-table td {
    padding: .22rem .34rem !important;
  }
  .panchanga-grid > div { padding: .42rem .55rem !important; }
  .nakshatra-box { padding: .42rem .70rem !important; }
  .nakshatra-box > div { padding: .12rem 0 !important; }

  /* Dasha is a continuous print stream. The outer screen-page wrappers are
     still flattened, but each complete Antardasha block has internal top
     padding. Unlike a collapsing margin, padding is retained when Chromium
     moves a block to the top of a new physical page. */
  .classic-dasha-pages > .report-page-dasha:first-child > .classic-heading {
    margin: 30px 30px 2px !important;
    font-size: 1.22rem !important;
  }
  .classic-dasha-pages > .report-page-dasha:first-child > .legacy-subtitle {
    margin: 0 30px 12px !important;
  }
  .classic-dasha-pages .legacy-dasha-group {
    margin-left: 30px !important;
    margin-right: 30px !important;
    margin-top: 6px !important;
    margin-bottom: 15px !important;
    padding-top: 2.2mm !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
  /* A real Maha title already provides its own top breathing room. */
  .classic-dasha-pages .legacy-maha-title + .legacy-dasha-group {
    padding-top: 0 !important;
  }

  .classic-dasha-pages .legacy-maha-title:not(.continued) {
    margin-left: 30px !important;
    margin-right: 30px !important;
    margin-top: 7mm !important;
    margin-bottom: 3.5mm !important;
    padding: 7px 11px !important;
  }
  .classic-dasha-pages .legacy-dasha-group + .legacy-maha-title:not(.continued) {
    margin-top: 10mm !important;
  }
  .legacy-maha-title span { font-size: 1.13rem !important; }
  .legacy-maha-title small { font-size: .80rem !important; margin-top: 2px !important; }

  .legacy-dasha-heading {
    padding: .22rem 0 !important;
    column-gap: 14px !important;
    font-size: .94rem !important;
    line-height: 1.28 !important;
  }
  .legacy-dasha-line {
    gap: 7px !important;
    padding: .12rem 0 !important;
    font-size: .90rem !important;
    line-height: 1.28 !important;
  }

  /* Leave a little white space before the footer rather than letting the last
     row visually collide with the authorship line. */
  .classic-report { padding-bottom: 3mm !important; }
}


/* v0.3.11 — complete final Antardasha + clearer Dasha heading dates */
.field-help{
  display:block;
  margin-top:5px;
  font-size:.78rem;
  line-height:1.35;
  color:#666;
}
.maha-date-range strong,
.dasha-date-range-strong strong,
.dasha-tree-range.strong{
  font-weight:800;
}
.legacy-maha-title .maha-date-range{
  letter-spacing:.015em;
}
.dasha-date-range-strong{
  font-variant-numeric:tabular-nums;
}
.dasha-tree-range.strong{
  font-variant-numeric:tabular-nums;
}
@media print{
  .legacy-maha-title .maha-date-range strong,
  .dasha-date-range-strong strong{
    font-weight:800!important;
  }
}


/* v0.3.12 — Antardasha heading dates use the exact same grid tracks as the
   Vidasha rows below. This keeps the start/end dates vertically aligned on
   both screen and the Playwright PDF. */
.legacy-dasha-heading{
  grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 11ch 20px 11ch;
  gap:8px;
  align-items:baseline;
}
.legacy-dasha-heading .dasha-heading-title{grid-column:1;}
.legacy-dasha-heading .dasha-date-range{
  display:contents;
}
.legacy-dasha-heading .heading-start-date{
  grid-column:2;
  white-space:nowrap;
  font-family:Consolas,"Courier New",monospace;
  text-align:left;
}
.legacy-dasha-heading .dasha-date-range b{
  grid-column:3;
  text-align:center;
}
.legacy-dasha-heading .heading-end-date{
  grid-column:4;
  white-space:nowrap;
  font-family:Consolas,"Courier New",monospace;
  text-align:left;
}

@media(max-width:1200px){
  .legacy-dasha-heading{
    grid-template-columns:minmax(185px,1fr) 190px 16px 190px 42px 11ch 16px 11ch;
    gap:5px;
  }
}
@media(max-width:900px){
  .legacy-dasha-heading{display:block;}
  .legacy-dasha-heading .dasha-date-range{
    display:flex;
    gap:6px;
    margin-top:4px;
  }
}

@media print{
  .legacy-dasha-heading{
    display:grid!important;
    grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 68px 20px 68px!important;
    gap:7px!important;
    align-items:baseline!important;
  }
  .legacy-dasha-heading .dasha-heading-title{grid-column:1!important;}
  .legacy-dasha-heading .dasha-date-range{display:contents!important;}
  .legacy-dasha-heading .heading-start-date{grid-column:2!important;}
  .legacy-dasha-heading .dasha-date-range b{grid-column:3!important;}
  .legacy-dasha-heading .heading-end-date{grid-column:4!important;}
}

/* v0.3.13 — relaxed Antardasha heading range.
   Keep the start date anchored to the same column as the Vidasha rows, but
   let the arrow/end date use natural width so Sinhala AM/PM text never
   collides. */
.legacy-dasha-heading{
  grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 11ch 20px 11ch;
  gap:8px;
  align-items:baseline;
}
.legacy-dasha-heading .dasha-heading-title{
  grid-column:1;
  padding-right:10px;
}
.legacy-dasha-heading .dasha-date-range{
  grid-column:2 / 5;
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  gap:16px;
  min-width:0;
  white-space:nowrap;
}
.legacy-dasha-heading .heading-start-date,
.legacy-dasha-heading .heading-end-date{
  grid-column:auto;
  width:auto;
  min-width:0;
  white-space:nowrap;
  font-family:Consolas,"Courier New",monospace;
  text-align:left;
}
.legacy-dasha-heading .dasha-date-range b{
  grid-column:auto;
  flex:0 0 auto;
  padding:0 2px;
  text-align:center;
}

@media(max-width:1200px){
  .legacy-dasha-heading{
    grid-template-columns:minmax(185px,1fr) 190px 16px 190px 42px 11ch 16px 11ch;
    gap:5px;
  }
  .legacy-dasha-heading .dasha-date-range{
    grid-column:2 / 5;
    gap:12px;
  }
}

@media(max-width:900px){
  .legacy-dasha-heading{display:block;}
  .legacy-dasha-heading .dasha-date-range{
    display:flex;
    gap:10px;
    margin-top:5px;
    white-space:normal;
    flex-wrap:wrap;
  }
}

@media print{
  .legacy-dasha-heading{
    display:grid!important;
    grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 68px 20px 68px!important;
    gap:7px!important;
    align-items:baseline!important;
  }
  .legacy-dasha-heading .dasha-heading-title{
    grid-column:1!important;
    padding-right:10px!important;
  }
  .legacy-dasha-heading .dasha-date-range{
    grid-column:2 / 5!important;
    display:flex!important;
    align-items:baseline!important;
    justify-content:flex-start!important;
    gap:16px!important;
    white-space:nowrap!important;
  }
  .legacy-dasha-heading .heading-start-date,
  .legacy-dasha-heading .heading-end-date,
  .legacy-dasha-heading .dasha-date-range b{
    grid-column:auto!important;
  }
}


/* v0.3.14 — Antardasha heading kept on one line whenever page width allows.
   The heading itself no longer tries to line up with the Vidasha row columns.
   That gives the title room to remain on one line, while the full date range
   sits as a right-aligned max-content block. On narrow screens we still stack
   the date range below for readability. */
.legacy-dasha-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  flex-wrap:nowrap;
}
.legacy-dasha-heading .dasha-heading-title{
  flex:0 1 auto;
  min-width:0;
  padding-right:0;
  white-space:nowrap;
}
.legacy-dasha-heading .dasha-date-range{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:max-content 28px max-content;
  column-gap:14px;
  align-items:baseline;
  justify-content:start;
  width:max-content;
  max-width:none;
  min-width:0;
  margin-left:auto;
  white-space:nowrap;
  overflow:visible;
}
.legacy-dasha-heading .heading-start-date,
.legacy-dasha-heading .heading-end-date{
  width:max-content;
  min-width:max-content;
  white-space:nowrap;
  font-family:Consolas,"Courier New","Noto Sans Sinhala","Iskoola Pota",monospace;
  text-align:left;
}
.legacy-dasha-heading .dasha-date-range b{
  display:block;
  width:28px;
  min-width:28px;
  text-align:center;
  padding:0;
}

@media(max-width:1200px){
  .legacy-dasha-heading{
    gap:10px;
  }
  .legacy-dasha-heading .dasha-date-range{
    grid-template-columns:max-content 26px max-content;
    column-gap:10px;
  }
  .legacy-dasha-heading .dasha-date-range b{width:26px;min-width:26px;}
}

@media(max-width:900px){
  .legacy-dasha-heading{display:block;}
  .legacy-dasha-heading .dasha-heading-title{white-space:normal;}
  .legacy-dasha-heading .dasha-date-range{
    display:grid;
    grid-template-columns:max-content 26px max-content;
    column-gap:10px;
    margin-top:5px;
    margin-left:0;
    width:max-content;
    max-width:100%;
    overflow-x:auto;
  }
}

@media print{
  .legacy-dasha-heading{
    display:grid!important;
    grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 68px 20px 68px!important;
    column-gap:7px!important;
    align-items:baseline!important;
  }
  .legacy-dasha-heading .dasha-heading-title{
    grid-column:1!important;
    padding-right:12px!important;
  }
  .legacy-dasha-heading .dasha-date-range{
    grid-column:2 / -1!important;
    display:grid!important;
    grid-template-columns:max-content 30px max-content!important;
    column-gap:14px!important;
    justify-content:start!important;
    align-items:baseline!important;
    width:max-content!important;
    max-width:none!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  .legacy-dasha-heading .heading-start-date,
  .legacy-dasha-heading .heading-end-date{
    width:max-content!important;
    min-width:max-content!important;
    white-space:nowrap!important;
  }
  .legacy-dasha-heading .dasha-date-range b{
    width:30px!important;
    min-width:30px!important;
    padding:0!important;
    text-align:center!important;
  }
}


/* v0.9.34 — ordered, polished top-level section navigation */
.tabs{align-items:center}
.tabs button{white-space:nowrap}
@media(max-width:700px){
  .tabs{gap:.34rem;padding:.4rem;border-radius:11px}
  .tabs button{min-height:40px;padding:.5rem .72rem;font-size:.92rem}
}
.extended-screen{max-width:1180px;margin:0 auto}
.extended-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.extended-heading h2{margin:0 0 .25rem}
.extended-heading p{margin:0}
.extended-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;margin:0 0 1rem}
.extended-card{border:1px solid var(--line);border-radius:10px;background:#f8fafb;padding:.78rem .85rem;min-height:76px}
.extended-card span{display:block;color:var(--muted);font-size:.9rem;margin-bottom:.2rem}
.extended-card strong{display:block;font-size:1.05rem}
.extended-table{min-width:900px}
.extended-note{margin-top:1rem;padding:.8rem 1rem;background:#f7f8f9;border-left:4px solid #9aa5af;border-radius:6px;color:#58636d}
.extended-subheading{margin:1.35rem 0 .6rem}
.extended-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.extended-box{border:1px solid var(--line);border-radius:10px;padding:1rem;background:#fff}
.extended-box h3{margin-top:0}
.detail-list>div{display:grid;grid-template-columns:minmax(150px,.8fr) 1.2fr;gap:1rem;padding:.42rem 0;border-bottom:1px dotted #d2d8de}
.detail-list>div:last-child{border-bottom:0}
.detail-list span{color:var(--muted)}
.detail-list strong{text-align:right}
@media(max-width:800px){.extended-two-col{grid-template-columns:1fr}.detail-list>div{grid-template-columns:1fr}.detail-list strong{text-align:left}}
@media print{#screen-planets,#screen-varga,#screen-ashtaka-detail,#screen-panchanga-detail{display:none!important}}

/* v0.4.1 — full Parashari Shodashavarga presentation */
.varga-info-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:10px;
  margin:12px 0 20px;
}
.varga-info-card{
  display:block;
  width:100%;
  border:1px solid #d8dee8;
  border-radius:10px;
  padding:10px 12px;
  background:#fbfcfe;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  appearance:none;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease;
}
.varga-info-card:hover{border-color:#b69067;background:#fffaf4;box-shadow:0 3px 10px rgba(111,59,0,.08);transform:translateY(-1px)}
.varga-info-card:focus-visible{outline:3px solid rgba(111,59,0,.24);outline-offset:2px}
.varga-info-card.selected,.varga-info-card[aria-pressed="true"]{
  border-color:var(--accent);
  background:var(--accent-soft);
  box-shadow:inset 0 0 0 1px var(--accent),0 3px 12px rgba(111,59,0,.10);
}
.varga-info-card.selected strong,.varga-info-card[aria-pressed="true"] strong{color:var(--accent)}
.varga-info-card>div{display:flex;flex-direction:column;gap:1px}
.varga-info-card strong{font-size:1rem}
.varga-info-card span{font-size:.78rem;color:#667085}
.varga-info-card p{margin:5px 0 0;font-size:.86rem;color:#344054;line-height:1.35}
.varga-matrix-wrap{overflow-x:auto;margin-bottom:22px}
.varga-matrix-table{min-width:1500px;white-space:nowrap}
.varga-matrix-table th small{display:block;font-size:.68rem;font-weight:500;color:#667085;margin-top:2px}
.varga-matrix-table td,.varga-matrix-table th{text-align:center}
.varga-matrix-table tbody th{text-align:left;position:sticky;left:0;background:#fff;z-index:1}
.varga-chart-toolbar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  margin:18px 0 8px;padding-top:16px;border-top:1px solid #e4e7ec;
}
.varga-chart-toolbar label{display:block;margin-bottom:5px}
.varga-chart-toolbar select{min-width:330px;max-width:100%;font-size:1rem;padding:8px 10px}
.varga-chart-layout{display:grid;grid-template-columns:minmax(330px,460px) minmax(360px,1fr);gap:24px;align-items:start}
.varga-chart-host{margin-top:0!important}
.varga-selected-table{max-width:520px}
.varga-shadvarga-details{margin-top:24px;border-top:1px solid #e4e7ec;padding-top:14px}
.varga-shadvarga-details summary{cursor:pointer;font-weight:700;margin-bottom:12px}
@media(max-width:850px){
  .varga-chart-layout{grid-template-columns:1fr}
  .varga-chart-toolbar{align-items:stretch;flex-direction:column}
  .varga-chart-toolbar select{min-width:0;width:100%}
}

/* v0.4.3 — Classical Gochara / transit analysis */
.gochara-heading{align-items:flex-end}
.gochara-toolbar{display:flex;gap:.65rem;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}
.gochara-toolbar label{margin:0;min-width:210px;font-size:.88rem;color:var(--muted)}
.gochara-toolbar input,.gochara-toolbar select{display:block;margin-top:.25rem;min-height:38px}
.gochara-toolbar button{min-height:38px;white-space:nowrap}
.gochara-today-btn{
  appearance:none;
  border:1px solid #315f91;
  border-radius:9px;
  background:#315f91;
  color:#fff;
  padding:.55rem .95rem;
  font:inherit;
  font-weight:700;
  line-height:1.2;
  box-shadow:0 1px 2px rgba(0,0,0,.12);
  cursor:pointer;
}
.gochara-today-btn:hover{background:#274f79;border-color:#274f79}
.gochara-today-btn:active{transform:translateY(1px);box-shadow:none}
.gochara-today-btn:focus-visible{outline:3px solid rgba(49,95,145,.25);outline-offset:2px}
.gochara-overview-grid{display:grid;grid-template-columns:minmax(340px,470px) 1fr;gap:1rem;margin:1rem 0 1.25rem;align-items:start}
.gochara-chart{max-width:460px;margin:0 auto}
.gochara-chart-note{font-size:.84rem;line-height:1.45;margin:.45rem 0 0}
.gochara-table{min-width:1320px}
.gochara-table td,.gochara-table th{vertical-align:middle}
.gochara-table small{font-size:.74rem;color:var(--muted);white-space:nowrap}
.gochara-table .retro-mark{display:block;color:#7a4b12;font-weight:600;margin-top:2px}
.gochara-status{display:inline-block;border-radius:999px;padding:.18rem .5rem;font-size:.82rem;font-weight:700;white-space:nowrap}
.gochara-good{background:#e8f5ec;color:#23613a;border:1px solid #b9dec5}
.gochara-bad{background:#f8eded;color:#8a3030;border:1px solid #e6c2c2}
.gochara-vedha{background:#fff4dc;color:#78500a;border:1px solid #ead29a}
.gochara-rule-details{margin-top:1rem;border-top:1px solid var(--line);padding-top:.8rem}
.gochara-rule-details summary{cursor:pointer;font-weight:700}
.compact-rules-table{min-width:760px;margin-top:.7rem}
.compact-rules-table td,.compact-rules-table th{text-align:left}
@media(max-width:900px){
  .gochara-heading{align-items:stretch;flex-direction:column}
  .gochara-toolbar{justify-content:flex-start}
  .gochara-overview-grid{grid-template-columns:1fr}
}
@media print{#screen-gochara{display:none!important}}

/* v0.4.3 — expandable Classical Gochara help */
.gochara-help{background:#fbfcfd;border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin-top:1.1rem}
.gochara-help summary{font-size:1rem;line-height:1.5}
.gochara-help-content{padding-top:.55rem}
.gochara-help-content p{margin:.55rem 0;max-width:1100px}
.gochara-help-content em{font-style:normal;font-weight:700}


/* v0.4.6 — keep native date/time controls inside the birth-information card. */
.form-panel{min-width:0}
.birth-datetime-row>label{min-width:0}
.birth-datetime-row input{width:100%;min-width:0;max-width:100%}

/* Planet labels are now laid out as individual tokens inside each house.
   Inline SVG font sizes are chosen by the layout engine; these rules provide
   consistent paint/weight without forcing a size that can overflow a house. */
.legacy-chart-svg .chart-planet-token{
  fill:#111!important;
  font-weight:750;
  pointer-events:none;
}
@media(max-width:560px){
  .birth-datetime-row{grid-template-columns:1fr}
}


/* v0.4.7 — selected Varga card is highlighted without changing card height. */

/* v0.5.0 — Android-ready historical birth input */
.birth-datetime-stack{display:grid;gap:14px}
.picker-trigger{
  width:100%;min-height:50px;padding:.7rem .85rem;border:1px solid #bdc8d4;border-radius:10px;
  background:#fff;color:#111;display:flex;align-items:center;justify-content:space-between;gap:12px;
  font:inherit;font-weight:750;text-align:left;cursor:pointer;box-sizing:border-box
}
.picker-trigger:hover,.picker-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px rgba(146,81,0,.12);outline:0}
.picker-icon{font-size:1.05rem;color:#4f5e6c}
.time-picker-fieldset{border:0;padding:0;margin:0;min-width:0}
.time-picker-fieldset>legend{font-weight:700;margin-bottom:.4rem}
.time-segment-picker{
  display:grid;grid-template-columns:minmax(54px,1fr) auto minmax(54px,1fr) auto minmax(54px,1fr) minmax(84px,1.25fr);
  align-items:end;gap:5px;width:100%;min-width:0
}
.time-segment-picker label{min-width:0;margin:0}
.time-segment-picker label>span{display:block;font-size:.7rem;color:#687481;margin:0 0 3px 2px;font-weight:600;white-space:nowrap}
.time-segment-picker input,.time-segment-picker select{width:100%;min-width:0;text-align:center;padding:.62rem .3rem;box-sizing:border-box;font-weight:700}
.time-segment-picker select{text-align-last:center}
.time-colon{font-size:1.25rem;font-weight:800;line-height:2.25rem;color:#59636d}
.ampm-label select{padding-left:.2rem;padding-right:.2rem}
.location-advanced{margin:.7rem 0;border:1px solid #d4dce4;border-radius:10px;background:#fbfcfd}
.location-advanced>summary{padding:.75rem .85rem;cursor:pointer;font-weight:700}
.location-advanced[open]>summary{border-bottom:1px solid #e1e6eb}
.location-advanced[open]{padding-bottom:.7rem}
.location-advanced[open]>:not(summary){margin-left:.75rem;margin-right:.75rem}
#citySearch{width:100%;box-sizing:border-box}
#locationSummary{display:block;margin-top:.35rem;line-height:1.35;color:#65717d}
.dst-choice{margin:.8rem 0;padding:.85rem;border:1px solid #e0aa42;border-radius:10px;background:#fff8e6}
.dst-choice p{margin:.35rem 0 .6rem}
.dst-choice-buttons{display:grid;gap:.3rem}
.dst-option{text-align:left!important;justify-content:flex-start!important}

/* v1.19.0 UI preview — responsive birth-date text field + compact calendar.
   The original ISO date and second-precision native time input are unchanged. */
.birth-date-field{position:relative;min-width:0;display:grid;gap:5px}
.birth-date-field>label{font-weight:700;margin:0 0 2px}
.birth-date-input-row{display:flex;align-items:stretch;min-width:0;min-height:48px;background:#fff;border:1px solid #bdc8d4;border-radius:10px;overflow:hidden}
.birth-date-input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(146,81,0,.12)}
.birth-date-input-row input{
  flex:1;min-width:0;width:100%;border:0!important;box-shadow:none!important;
  background:transparent;outline:0!important;margin:0;border-radius:0!important;padding:.65rem .8rem;font:inherit;font-weight:700;
}
.birth-date-input-row input::placeholder{font-weight:500;color:#74808a}
.birth-date-input-row:has(input[aria-invalid="true"]){border-color:#b43c36}
.birth-calendar-trigger{flex:0 0 48px;display:flex;align-items:center;justify-content:center;background:#f9fafb;border:0;border-left:1px solid #d9dfe6;border-radius:0;color:#465568;cursor:pointer}
.birth-calendar-trigger:hover{background:var(--accent-soft);color:var(--accent)}
.birth-calendar-trigger:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
.birth-date-field .field-help{margin-top:1px}
.birth-date-error{display:block;color:#a72b24;font-size:.82rem;line-height:1.3}
.birth-date-error:empty{display:none}
.birth-calendar-popover{
  position:absolute;left:0;top:calc(100% + 6px);z-index:1000;
  width:min(350px,calc(100vw - 32px));max-width:none;box-sizing:border-box;
  padding:12px;background:#fff;color:#17212b;border:1px solid #cbd4dd;
  border-radius:13px;box-shadow:0 16px 40px rgba(17,24,39,.22);
}
.birth-calendar-popover.hidden{display:none!important}
.birth-calendar-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.9rem}
.birth-calendar-close{border:0;background:#f2f4f6;color:#25303c;border-radius:8px;font-size:1.3rem;cursor:pointer;width:38px;height:38px}
/* One editable year combobox replaces the separate year text box + select. */
.birth-calendar-toolbar{display:grid;grid-template-columns:40px minmax(0,1fr) 100px 40px;align-items:center;gap:5px;margin:0 0 10px}
.birth-calendar-toolbar select,.birth-calendar-year-combo input{
  box-sizing:border-box;width:100%;min-width:0;min-height:42px;padding:7px 8px;margin:0;
  font:inherit;font-size:.89rem;font-weight:700;border:1px solid #becad6;border-radius:7px;background:#fff;color:#17212b;
}
.birth-calendar-year-combo{position:relative;min-width:0}
.birth-calendar-year-combo input{padding:6px 28px 6px 6px;text-align:center;font-variant-numeric:tabular-nums}
.birth-calendar-year-combo input:focus-visible{outline:2px solid #95601b;outline-offset:1px}
.birth-calendar-year-toggle{
  position:absolute;top:1px;right:1px;bottom:1px;width:27px;min-height:40px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  border:0;border-left:1px solid #d9e0e7;border-radius:0 6px 6px 0;background:#f6f8fa;color:#273647;
  font:inherit;font-size:1rem;
}
.birth-calendar-year-toggle:focus-visible{outline:2px solid #95601b;outline-offset:0}
.birth-calendar-year-options{
  position:absolute;z-index:25;top:calc(100% + 4px);right:0;left:0;
  box-sizing:border-box;max-height:192px;overflow-y:auto;overscroll-behavior:contain;
  background:#fff;border:1px solid #b9c7d4;border-radius:8px;
  box-shadow:0 8px 20px rgba(17,24,39,.2);
}
.birth-calendar-year-options.hidden{display:none!important}
.birth-calendar-year-option{display:block;width:100%;min-height:40px;padding:8px 6px;
  border:0;background:#fff;color:#17212b;font:inherit;font-weight:700;text-align:center;cursor:pointer}
.birth-calendar-year-option[aria-selected="true"]{background:#f7e6c5}
.birth-calendar-year-option.active,.birth-calendar-year-option:hover{background:#ead4ac}
.birth-calendar-year-empty{padding:10px 4px;text-align:center;color:#576471;font-size:.75rem}
.birth-calendar-nav{min-width:40px;min-height:40px;border:1px solid #cbd4dd;border-radius:8px;background:#f8fafb;color:#26384b;font-size:1.4rem;cursor:pointer}
.birth-calendar-nav:disabled{opacity:.35;cursor:default}
.birth-calendar-weekdays,.birth-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.birth-calendar-weekdays{margin-bottom:5px;font-size:.72rem;font-weight:700;color:#677481}
.birth-calendar-weekdays>span{padding:5px 0}
.birth-calendar-day,.birth-calendar-blank{min-width:0;min-height:40px}
.birth-calendar-day{border:1px solid #e1e6eb;border-radius:7px;background:#fff;color:#17212b;font:inherit;font-weight:700;cursor:pointer;padding:0}
.birth-calendar-day:hover{background:var(--accent-soft);border-color:var(--accent)}
.birth-calendar-day:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.birth-calendar-day.selected,.birth-calendar-day.selected:hover{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:560px){
  .form-panel{padding:16px 14px}
  .time-segment-picker{grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr) auto minmax(48px,1fr);gap:4px}
  .ampm-label{grid-column:1/-1}
  .ampm-label select{min-height:46px;text-align:center}
  /* The bottom drawer stays within the viewport without clipping narrow forms. */
  .birth-calendar-popover{position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));top:auto;
    width:auto;max-width:none;max-height:calc(100dvh - 16px);overflow-y:auto;padding:14px}
  .birth-calendar-day,.birth-calendar-blank{min-height:44px}
  /* In the phone bottom drawer, expand the list in flow rather than clipping it. */
  .birth-calendar-year-combo:has(.birth-calendar-year-options:not(.hidden)) {z-index:2}
  .birth-calendar-year-options{max-height:172px}
}

/* v0.5.1 — quicker dropdown-based birth-time selection */
.time-select-picker{
  display:grid;
  grid-template-columns:minmax(58px,1fr) auto minmax(58px,1fr) auto minmax(58px,1fr) minmax(82px,1.15fr);
  align-items:end;
  gap:6px;
  width:100%;
  min-width:0;
}
.time-select-picker label{min-width:0;margin:0}
.time-select-picker label>span{
  display:block;font-size:.7rem;color:#687481;margin:0 0 3px 2px;font-weight:600;white-space:nowrap
}
.time-select-picker select{
  width:100%;min-width:0;min-height:48px;padding:.55rem .25rem;box-sizing:border-box;
  font:inherit;font-weight:750;text-align:center;text-align-last:center;background:#fff
}
@media(max-width:520px){
  .time-select-picker{grid-template-columns:minmax(54px,1fr) auto minmax(54px,1fr) auto minmax(54px,1fr);gap:4px}
  .time-select-picker .ampm-label{grid-column:1/-1}
  .time-select-picker .ampm-label select{min-height:48px}
}

/* v0.5.2: one native time picker; step=1 requests seconds-capable UI. */
.single-time-field{min-width:0}
.single-time-field input[type="time"]{width:100%;max-width:100%;min-width:0;min-height:50px;font-size:1rem;font-weight:700;padding:.68rem .75rem}

/* v0.5.3 — keep overview facts + Lagna/Navamsa charts together on PDF page 1.
   Recent chart-label boundary improvements made the SVG content slightly taller at
   print scale. Compact only the first printed overview page; the on-screen report
   remains unchanged. */
@media print {
  .report-page-overview {
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    padding-top: 18px !important;
    padding-right: 28px !important;
    padding-bottom: 14px !important;
    padding-left: 28px !important;
  }

  .report-page-overview .classic-title {
    margin-bottom: 7px !important;
  }
  .report-page-overview .classic-title h1 {
    margin: .12rem 0 !important;
    font-size: 1.14rem !important;
  }
  .report-page-overview .legacy-file-name {
    font-size: .88rem !important;
    line-height: 1.15 !important;
  }

  .report-page-overview .overview-facts {
    margin: 7px 14px 10px !important;
    padding: 5px 11px !important;
  }
  .report-page-overview .overview-facts .fact-line {
    padding: .16rem 0 !important;
    line-height: 1.18 !important;
  }

  .report-page-overview .overview-chart-pair {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 24px !important;
    margin-top: 8px !important;
    padding-top: 9px !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
  .report-page-overview .overview-chart-pair .classic-chart-block {
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
  .report-page-overview .overview-chart-pair .classic-chart-block h2 {
    margin: 0 0 3px !important;
    font-size: 1.08rem !important;
    line-height: 1.12 !important;
  }
  .report-page-overview .overview-chart-pair .legacy-chart-host {
    width: 100% !important;
    max-width: 335px !important;
    margin: 2px auto 0 !important;
  }
  .report-page-overview .overview-chart-pair .legacy-chart-svg {
    display: block !important;
    width: 100% !important;
    height: auto !important;
  }
}

/* v0.5.5 — Dasha subtree controls + 22nd Drekkana tab */
.dasha-tree-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-top:.4rem;
}
.dasha-tree-heading h3{margin:.2rem 0 .35rem}
.dasha-tree-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
.action-button.secondary-action{
  appearance:none;
  border:1px solid #8f6a39;
  background:#fff8ee;
  color:#5d3a13;
  border-radius:8px;
  padding:.58rem .82rem;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.action-button.secondary-action:hover{background:#f7ead7}
.action-button.secondary-action:active{transform:translateY(1px)}

details.dasha>summary{user-select:none}
details.dasha[open]>summary{background:#faf7f2}

.drekkana-special-cards{margin-bottom:1rem}
.drekkana-special-layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.extended-subpanel{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:1rem;
}
.extended-subpanel h3{margin-top:0}
.detail-list>div{
  display:grid;
  grid-template-columns:minmax(180px,.8fr) 1.2fr;
  gap:1rem;
  padding:.48rem 0;
  border-bottom:1px dotted #d4d9de;
}
.detail-list>div:last-child{border-bottom:0}
.detail-list span{font-weight:700;color:var(--muted)}
.detail-list strong{overflow-wrap:anywhere}
.drekkana-help{margin-top:1rem}
.drekkana-help summary{cursor:pointer;font-weight:800;padding:.65rem .1rem}
.drekkana-help>div{border-top:1px solid var(--line);padding:.8rem 0 .1rem}

@media (max-width:900px){
  .dasha-tree-heading{display:block}
  .dasha-tree-actions{justify-content:flex-start;margin:.7rem 0 1rem}
  .drekkana-special-layout{grid-template-columns:1fr}
  .detail-list>div{grid-template-columns:1fr;gap:.2rem}
}
@media print{#screen-drekkana-special{display:none!important}}

/* v0.5.5 — extended Drekkana analysis */
.drekkana-table-panel{margin-top:1rem}
.drekkana-analysis-table{min-width:1080px}
.drekkana-analysis-table td,.drekkana-analysis-table th{vertical-align:top}
.drekkana-analysis-table small{color:var(--muted);font-weight:600}
.drekkana-analysis-table td:nth-child(3),
.drekkana-analysis-table td:nth-child(6),
.drekkana-analysis-table td:nth-child(7){white-space:nowrap}
@media (max-width:900px){
  .drekkana-analysis-table{min-width:980px}
  .drekkana-table-panel{padding:.8rem}
}


/* v0.5.7 — compact Shodashavarga presentation */
#screen-varga .varga-chart-layout{margin-bottom:10px}
#screen-varga .varga-matrix-heading{margin-top:1rem;margin-bottom:.45rem}

/* The selected Varga table is only three columns. Keep it compact and let
   text wrap naturally instead of inheriting the generic wide-table minimum. */
#screen-varga .varga-selected-table{
  width:100%;
  max-width:100%;
  min-width:0!important;
  table-layout:fixed;
  font-size:.86rem;
  line-height:1.16;
}
#screen-varga .varga-selected-table th,
#screen-varga .varga-selected-table td{
  padding:.22rem .30rem;
  white-space:normal;
  overflow-wrap:anywhere;
}
#screen-varga .varga-selected-table th:first-child,
#screen-varga .varga-selected-table td:first-child{width:42%}
#screen-varga .varga-selected-table th:nth-child(2),
#screen-varga .varga-selected-table td:nth-child(2){width:38%}
#screen-varga .varga-selected-table th:nth-child(3),
#screen-varga .varga-selected-table td:nth-child(3){width:20%;text-align:center}
#screen-varga #vargaChartRows.table-wrap{overflow:visible}

/* Desktop / wide tablet: fit the full 16-Varga matrix inside the panel.
   There are 17 columns including the planet-name column, so spacing is kept
   intentionally compact but still readable. */
#screen-varga .varga-matrix-wrap{
  width:100%;
  overflow-x:hidden;
  overflow-y:visible;
  margin-bottom:16px;
}
#screen-varga .varga-matrix-table{
  width:100%;
  min-width:0!important;
  table-layout:fixed;
  white-space:normal;
  font-size:clamp(.62rem,.66vw,.74rem);
  line-height:1.08;
}
#screen-varga .varga-matrix-table th,
#screen-varga .varga-matrix-table td{
  padding:.17rem .08rem;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
}
#screen-varga .varga-matrix-table th:first-child,
#screen-varga .varga-matrix-table tbody th{
  width:78px;
  min-width:78px;
  max-width:78px;
  text-align:left;
  position:static;
  background:inherit;
}
#screen-varga .varga-matrix-table th small{
  display:block;
  margin-top:1px;
  font-size:clamp(.46rem,.50vw,.57rem);
  line-height:1.03;
  font-weight:500;
  color:#667085;
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Phones and narrower tablets: readability wins over forced fitting. Restore
   horizontal scrolling and a sensible minimum width instead of shrinking text
   to an unusable size. */
@media(max-width:900px){
  #screen-varga .varga-matrix-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-inline:contain;
  }
  #screen-varga .varga-matrix-table{
    min-width:930px!important;
    font-size:.64rem;
  }
  #screen-varga .varga-matrix-table th,
  #screen-varga .varga-matrix-table td{padding:.16rem .10rem}
  #screen-varga .varga-matrix-table th:first-child,
  #screen-varga .varga-matrix-table tbody th{
    width:76px;min-width:76px;max-width:76px;
    position:sticky;left:0;z-index:1;background:#fff;
  }
  #screen-varga .varga-matrix-table th small{font-size:.48rem}
}

@media(max-width:600px){
  #screen-varga .varga-selected-table{font-size:.82rem}
  #screen-varga .varga-selected-table th,
  #screen-varga .varga-selected-table td{padding:.20rem .24rem}
}

/* v0.5.7 — focused Dasha navigation + floating top button */
.dasha-jump-link{cursor:pointer}
.legacy-dasha-heading.dasha-jump-link:hover,
.legacy-dasha-line.dasha-jump-link:hover{background:rgba(148,91,20,.075)}
.legacy-dasha-heading.dasha-jump-link:focus-visible,
.legacy-dasha-line.dasha-jump-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dasha-card.dasha-jump-link{
  width:100%;text-align:left;color:inherit;font:inherit;border:0;border-left:5px solid var(--accent);
  background:var(--accent-soft);padding:.8rem;border-radius:8px;appearance:none
}
.dasha-card.dasha-jump-link:hover{filter:brightness(.985);box-shadow:0 2px 7px rgba(0,0,0,.08)}
details.dasha.dasha-focus{border:2px solid var(--accent);box-shadow:0 0 0 4px rgba(148,91,20,.10)}
details.dasha.dasha-focus>summary{background:var(--accent-soft)}

.go-top-button{
  position:fixed;right:18px;bottom:18px;z-index:1200;
  border:1px solid #70400a;background:var(--accent);color:#fff;
  border-radius:999px;padding:.72rem 1rem;font-weight:800;font-size:.92rem;
  box-shadow:0 5px 18px rgba(0,0,0,.22);cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:.18s ease;
}
.go-top-button.visible{opacity:1;visibility:visible;transform:translateY(0)}
.go-top-button:hover{filter:brightness(1.08)}
.go-top-button:focus-visible{outline:3px solid rgba(148,91,20,.28);outline-offset:3px}
@media(max-width:560px){
  .go-top-button{right:12px;bottom:12px;padding:.7rem .82rem}
  .go-top-button span{display:none}
}
@media print{.go-top-button{display:none!important}}


/* v0.5.9 — current Sookshma highlight + alternating Dasha rows */
/* Subtle zebra shading makes long sibling period lists easier to scan. */
.dasha-children > details.dasha:nth-of-type(even) > summary{
  background:#faf8f4;
}
.dasha-children > details.dasha:nth-of-type(odd) > summary{
  background:#fff;
}
.dasha-children > details.dasha[open]:nth-of-type(even) > summary{
  background:#f7f2e9;
}
.dasha-children > .period-row:nth-child(odd){
  background:#fff;
}
.dasha-children > .period-row:nth-child(even){
  background:#f7f8fa;
}
.period-row.dasha-sookshma-current{
  background:#fff1c9 !important;
  border-left:5px solid var(--accent);
  box-shadow:inset 0 0 0 1px rgba(148,91,20,.20);
  font-weight:650;
}
.period-row.dasha-sookshma-current strong{
  color:#5e3300;
}
.current-dasha-badge{
  display:inline-block;
  margin-left:.55rem;
  padding:.10rem .42rem;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:.72rem;
  line-height:1.35;
  font-weight:800;
  vertical-align:middle;
  white-space:nowrap;
}
@media(max-width:560px){
  .current-dasha-badge{margin-left:.35rem;font-size:.68rem}
}

/* v0.6.0 — Erashtaka / Saturn transit analysis */
.erashtaka-screen .extended-heading{align-items:flex-start}
.erashtaka-current-panel{margin-top:14px}
.erashtaka-current-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.erashtaka-active-card,.erashtaka-none{border:1px solid #d7dde7;border-radius:12px;padding:12px 14px;background:#fff;display:grid;gap:4px}
.erashtaka-active-card.classical{border-left:4px solid #6b4b1f}
.erashtaka-active-card.regional{border-left:4px solid #607d8b}
.erashtaka-active-card>span{font-size:.8rem;color:#687386;text-transform:uppercase;letter-spacing:.04em}
.erashtaka-active-card>strong{font-size:1rem}
.erashtaka-active-card>small{line-height:1.45;color:#5b6471}
.erashtaka-none span{display:block;margin-top:4px}
.erashtaka-method-group{margin-top:20px}
.erashtaka-method-group>.table-title-row{margin-bottom:8px}
.erashtaka-period-group{border:1px solid #d9dee8;border-radius:12px;background:#fff;margin:10px 0;overflow:hidden}
.erashtaka-period-group>summary{cursor:pointer;font-weight:800;padding:12px 14px;background:#f7f8fa;list-style-position:inside}
.erashtaka-period-group[open]>summary{border-bottom:1px solid #d9dee8;background:#f1f3f6}
.erashtaka-period-group .table-wrap{margin:0}
.erashtaka-table{margin:0;border:0}
.erashtaka-table th,.erashtaka-table td{padding:8px 9px;vertical-align:middle}
.erashtaka-table tbody tr:nth-child(even){background:#fafbfc}
.erashtaka-current-row{background:#fff4cf !important;box-shadow:inset 4px 0 0 #a56600}
.erashtaka-current-badge{display:inline-block;border:1px solid #9a6500;background:#fff2c3;color:#704600;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:800;white-space:nowrap}
.erashtaka-date{white-space:nowrap}
.erashtaka-help{margin-top:20px}
.erashtaka-help>summary{font-weight:800;cursor:pointer}
.erashtaka-help>div{padding-top:10px;line-height:1.65}
.regional-method-group{border-top:1px dashed #c4cbd5;padding-top:16px}

@media (max-width: 900px){
  .erashtaka-table{min-width:880px}
  .erashtaka-current-list{grid-template-columns:1fr}
}

/* v0.6.1 — make the closest Erashtaka periods easy to scan. */
.erashtaka-recent-row{background:#f3f6fb !important;box-shadow:inset 4px 0 0 #66758a}
.erashtaka-next-row{background:#f4faf6 !important;box-shadow:inset 4px 0 0 #4f7b5a}
.erashtaka-focus-badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:.76rem;font-weight:800;white-space:nowrap}
.erashtaka-focus-badge.recent{border:1px solid #8996a8;background:#f5f7fa;color:#4d5969}
.erashtaka-focus-badge.next{border:1px solid #7d9c84;background:#f0f7f2;color:#35583d}
.erashtaka-intensity{display:inline-flex;align-items:center;justify-content:center;min-width:58px;border-radius:999px;padding:3px 8px;font-size:.76rem;font-weight:850;white-space:nowrap;border:1px solid transparent}
.erashtaka-intensity.mild{background:#eef7f0;border-color:#9bbca2;color:#315c3b}
.erashtaka-intensity.moderate{background:#fff7df;border-color:#d6b76d;color:#72520c}
.erashtaka-intensity.high{background:#fff0ee;border-color:#d4978f;color:#7b3028}
.erashtaka-active-card .erashtaka-intensity{vertical-align:middle;margin-left:4px}

/* v0.6.2 — compact Erashtaka tables without sacrificing date readability. */
.erashtaka-table{width:100%;table-layout:auto}
.erashtaka-table th,.erashtaka-table td{padding:6px 7px;line-height:1.25}
.erashtaka-table th{font-size:.78rem}
.erashtaka-table th small{font-size:.66rem;font-weight:650;color:#737c89}
.erashtaka-saturn-cell{min-width:112px}
.erashtaka-saturn-cell>small{display:block;margin-top:2px;font-size:.7rem;line-height:1.2;color:#687386}
.erashtaka-period-cell{min-width:190px;white-space:normal}
.erashtaka-period-point{display:inline-grid;gap:1px;vertical-align:middle}
.erashtaka-period-point>small{font-size:.64rem;color:#7a8390;font-weight:700}
.erashtaka-date-line,.erashtaka-time-line{display:block;white-space:nowrap}
.erashtaka-date-line{font-size:.76rem;font-weight:750;font-variant-numeric:tabular-nums}
.erashtaka-time-line{font-size:.69rem;color:#667080;font-variant-numeric:tabular-nums}
.erashtaka-period-arrow{display:inline-block;margin:0 5px;color:#8a929e}
.erashtaka-av{white-space:nowrap;font-variant-numeric:tabular-nums}
.erashtaka-av span{margin:0 3px;color:#98a0aa;font-weight:400}

@media (max-width: 900px){
  .erashtaka-table{min-width:0}
  .erashtaka-table th,.erashtaka-table td{padding:5px 5px}
  .erashtaka-period-cell{min-width:174px}
  .erashtaka-saturn-cell{min-width:98px}
  .erashtaka-current-badge,.erashtaka-focus-badge,.erashtaka-intensity{padding:2px 6px;font-size:.7rem;min-width:0}
}

@media (max-width: 620px){
  .erashtaka-period-group .table-wrap{overflow-x:visible}
  .erashtaka-table,.erashtaka-table tbody{display:block;width:100%}
  .erashtaka-table thead{display:none}
  .erashtaka-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px 10px;padding:8px 9px;border-bottom:1px solid #e3e7ed;background:#fff !important;box-shadow:none}
  .erashtaka-table tbody tr:last-child{border-bottom:0}
  .erashtaka-table td{display:block;padding:0;border:0;min-width:0;text-align:left}
  .erashtaka-table td::before{display:block;margin-bottom:2px;font-size:.61rem;line-height:1;text-transform:uppercase;letter-spacing:.035em;color:#8a929e;font-weight:800}
  .erashtaka-table td:nth-child(1)::before{content:"අදියර / භාවය"}
  .erashtaka-table td:nth-child(2)::before{content:"ශනි රාශිය / ගමන"}
  .erashtaka-table td:nth-child(3)::before{content:"කාලය"}
  .erashtaka-table td:nth-child(4)::before{content:"BAV / SAV"}
  .erashtaka-table td:nth-child(5)::before{content:"තීව්‍රතාව"}
  .erashtaka-table td:nth-child(6)::before{content:"තත්ත්වය"}
  .erashtaka-table td:nth-child(3){grid-column:1 / -1;padding:4px 0;border-top:1px dashed #e1e5eb;border-bottom:1px dashed #e1e5eb}
  .erashtaka-period-cell{display:flex !important;align-items:center;justify-content:flex-start;gap:7px;min-width:0}
  .erashtaka-period-arrow{margin:0 2px}
  .erashtaka-current-row{border-left:4px solid #a56600 !important;padding-left:7px !important}
  .erashtaka-recent-row{border-left:4px solid #66758a !important;padding-left:7px !important}
  .erashtaka-next-row{border-left:4px solid #4f7b5a !important;padding-left:7px !important}
}


/* v0.6.3 — click/tap an Erashtaka row for a plain-Sinhala explanation. */
.erashtaka-data-row{cursor:pointer;outline:none}
.erashtaka-data-row:hover{filter:brightness(.985)}
.erashtaka-data-row:focus-visible{outline:2px solid #6f7783;outline-offset:-2px}
.erashtaka-row-chevron{display:inline-block;margin-left:6px;color:#7b8491;font-size:.8rem;transition:transform .16s ease}
.erashtaka-row-open .erashtaka-row-chevron{transform:rotate(180deg)}
.erashtaka-detail-row[hidden]{display:none!important}
.erashtaka-detail-row>td{padding:0!important;border-top:0!important;background:#f8fafc!important}
.erashtaka-detail-card{padding:12px 14px 14px;border-top:1px dashed #d9dee7;border-bottom:1px solid #e3e7ed;line-height:1.55}
.erashtaka-detail-title{font-weight:850;margin-bottom:6px;color:#343c48}
.erashtaka-detail-card p{margin:6px 0}
.erashtaka-detail-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0}
.erashtaka-detail-metrics>div{border:1px solid #dce2ea;background:#fff;border-radius:9px;padding:8px 10px;display:grid;gap:2px}
.erashtaka-detail-metrics strong{font-size:.82rem}
.erashtaka-detail-metrics span{font-size:.76rem;color:#596574;line-height:1.45}
.erashtaka-detail-note{font-size:.75rem}

@media (max-width:620px){
  .erashtaka-table tbody tr.erashtaka-detail-row{display:block;padding:0;border:0;background:#f8fafc!important}
  .erashtaka-detail-row>td{display:block!important}
  .erashtaka-detail-row>td::before{display:none!important;content:none!important}
  .erashtaka-detail-card{padding:11px 10px 12px}
  .erashtaka-detail-metrics{grid-template-columns:1fr}
}


/* v0.6.4 — keep expanded Erashtaka explanations inside the table and visually attach them to the clicked row. */
.erashtaka-detail-row>td{
  white-space:normal!important;
  width:auto!important;
  max-width:0;
  overflow:hidden;
}
.erashtaka-detail-card{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  padding:10px 14px 12px 24px;
  position:relative;
}
.erashtaka-detail-card::before{
  content:"↳";
  position:absolute;
  left:9px;
  top:10px;
  color:#7b8491;
  font-weight:850;
}
.erashtaka-detail-title{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.erashtaka-detail-card p{white-space:normal;overflow-wrap:anywhere}
.erashtaka-detail-metrics>div{min-width:0}
.erashtaka-detail-metrics span{white-space:normal;overflow-wrap:anywhere}
.erashtaka-data-row.erashtaka-row-open>td{border-bottom-color:transparent}
.erashtaka-data-row.erashtaka-row-open + .erashtaka-detail-row>td{box-shadow:inset 4px 0 0 #7b8491}
.erashtaka-current-row.erashtaka-row-open + .erashtaka-detail-row>td{box-shadow:inset 4px 0 0 #a56600}
.erashtaka-recent-row.erashtaka-row-open + .erashtaka-detail-row>td{box-shadow:inset 4px 0 0 #66758a}
.erashtaka-next-row.erashtaka-row-open + .erashtaka-detail-row>td{box-shadow:inset 4px 0 0 #4f7b5a}

@media (max-width:620px){
  .erashtaka-detail-row>td{max-width:none}
  .erashtaka-detail-card{padding:10px 10px 11px 22px}
  .erashtaka-detail-card::before{left:7px;top:10px}
}

/* v0.6.5 — expandable BAV/SAV learning guide at the bottom of the Erashtaka page */
.erashtaka-av-guide {
  margin-top: 14px;
}
.erashtaka-av-guide > summary {
  font-weight: 750;
}
.erashtaka-av-guide-body {
  min-width: 0;
  overflow-wrap: anywhere;
}
.erashtaka-guide-intro {
  margin: 0 0 12px;
}
.erashtaka-guide-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.erashtaka-guide-card,
.erashtaka-guide-calc,
.erashtaka-guide-example,
.erashtaka-guide-related {
  min-width: 0;
  border: 1px solid var(--border, #d8dee6);
  border-radius: 10px;
  padding: 12px 14px;
  background: var(--panel, #fff);
}
.erashtaka-guide-card h4,
.erashtaka-guide-calc h4,
.erashtaka-guide-example h4,
.erashtaka-guide-related h4 {
  margin: 0 0 7px;
}
.erashtaka-guide-card p,
.erashtaka-guide-calc p,
.erashtaka-guide-example p {
  margin: 6px 0;
  line-height: 1.58;
}
.erashtaka-guide-calc {
  margin-top: 10px;
}
.erashtaka-guide-calc ol {
  margin: 7px 0 0;
  padding-left: 1.4rem;
}
.erashtaka-guide-calc li {
  margin: 5px 0;
  line-height: 1.55;
}
.erashtaka-formula {
  padding: 9px 11px;
  border-radius: 8px;
  background: var(--soft, #f5f7fa);
  font-family: inherit;
}
.erashtaka-guide-example {
  margin-top: 10px;
}
.erashtaka-guide-related {
  margin-top: 10px;
}
.erashtaka-guide-related dl {
  margin: 0;
}
.erashtaka-guide-related dl > div {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(0, 2fr);
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border, #e3e7ec);
}
.erashtaka-guide-related dl > div:last-child {
  border-bottom: 0;
}
.erashtaka-guide-related dt {
  font-weight: 700;
}
.erashtaka-guide-related dd {
  margin: 0;
}
.erashtaka-guide-note {
  margin: 11px 2px 0;
  line-height: 1.5;
}
@media (max-width: 760px) {
  .erashtaka-guide-grid {
    grid-template-columns: 1fr;
  }
  .erashtaka-guide-related dl > div {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}


/* v0.6.6 — deeper Ashtakavarga learning area on the existing Ashtakavarga screen. */
.ashtaka-learning{
  margin-top:22px;
  padding-top:18px;
  border-top:2px solid #d8dde5;
  scroll-margin-top:14px;
}
.ashtaka-learning-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}
.ashtaka-learning-heading h3{margin:0 0 4px;font-size:1.05rem}
.ashtaka-learning-heading p{margin:0;max-width:850px}
.ashtaka-concept{border:1px solid #dfe4eb;border-radius:10px;background:#fff;margin:8px 0;overflow:hidden}
.ashtaka-concept>summary{list-style:none;cursor:pointer;padding:11px 13px;font-weight:800;display:flex;align-items:center;gap:9px;background:#f8fafc}
.ashtaka-concept>summary::-webkit-details-marker{display:none}
.ashtaka-concept>summary::after{content:"⌄";margin-left:auto;color:#6a7482;transition:transform .15s ease}
.ashtaka-concept[open]>summary::after{transform:rotate(180deg)}
.ashtaka-step{width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;background:#e8edf4;color:#334155;font-size:.78rem;flex:0 0 auto}
.ashtaka-concept-body{padding:12px 14px 14px;line-height:1.6}
.ashtaka-concept-body p{margin:6px 0}
.ashtaka-concept-body ol{margin:8px 0 4px;padding-left:22px}
.ashtaka-concept-body li{margin:4px 0}
.ashtaka-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.ashtaka-mini-grid>div{border:1px solid #e1e6ed;border-radius:8px;padding:9px 10px;display:grid;gap:3px;min-width:0}
.ashtaka-mini-grid strong{font-size:.82rem}.ashtaka-mini-grid span{font-size:.77rem;color:#5b6675;overflow-wrap:anywhere}
.ashtaka-formula-box{margin:10px 0;padding:10px 12px;border:1px dashed #cbd3df;border-radius:8px;background:#f8fafc;font-weight:750;overflow-wrap:anywhere}
.ashtaka-flow{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:10px 0;padding:9px 10px;background:#f8fafc;border-radius:8px;border:1px solid #e1e6ed}
.ashtaka-flow span{padding:4px 7px;border-radius:6px;background:#fff;border:1px solid #dde3eb;font-size:.8rem}
.ashtaka-flow b{color:#667085}
.ashtaka-caution{font-size:.78rem;color:#596574;background:#f7f8fa;border-left:3px solid #aeb7c4;padding:7px 9px!important;margin-top:10px!important}
.erashtaka-ashtaka-pointer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px}
.erashtaka-ashtaka-pointer span{color:#5c6673;flex:1 1 420px}
.erashtaka-ashtaka-pointer button{white-space:nowrap}
@media(max-width:760px){
  .ashtaka-mini-grid{grid-template-columns:1fr}
  .ashtaka-concept>summary{padding:10px 11px}
  .ashtaka-concept-body{padding:10px 11px 12px}
  .erashtaka-ashtaka-pointer{align-items:stretch}
  .erashtaka-ashtaka-pointer button{width:100%}
}

/* v0.7.7 — selectable Print / Export composer for browser + desktop. */
.print-selection-root{display:none}
.print-options-dialog{
  width:min(760px,calc(100vw - 24px));
  max-height:min(88vh,900px);
  border:0;
  border-radius:16px;
  padding:0;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  background:#fff;
  color:#172033;
}
.print-options-dialog::backdrop{background:rgba(15,23,42,.46);backdrop-filter:blur(2px)}
.print-options-card{margin:0;display:flex;flex-direction:column;max-height:min(88vh,900px)}
.print-options-heading{display:flex;gap:14px;align-items:flex-start;padding:18px 20px 13px;border-bottom:1px solid #e1e6ed}
.print-options-heading>div{min-width:0;flex:1}
.print-options-heading h2{margin:0 0 5px;font-size:1.18rem}
.print-options-heading p{margin:0;color:#667085;font-size:.88rem;line-height:1.5}
.print-options-close{border:0;background:transparent;color:#667085;font-size:1.7rem;line-height:1;cursor:pointer;padding:0 4px}
.print-options-tools{display:flex;gap:8px;flex-wrap:wrap;padding:11px 20px;border-bottom:1px solid #edf0f4;background:#f8fafc}
.print-options-tools button{padding:.48rem .72rem;font-size:.82rem}
.print-options-list{overflow:auto;padding:8px 20px 12px}
.print-options-list>label{display:flex;gap:11px;align-items:flex-start;padding:10px 8px;border-bottom:1px solid #eef1f5;cursor:pointer;border-radius:8px}
.print-options-list>label:hover{background:#f8fafc}
.print-options-list input[type="checkbox"]{margin-top:3px;width:17px;height:17px;accent-color:#7b4a00;flex:0 0 auto}
.print-options-list label>span{display:grid;gap:2px;min-width:0}
.print-options-list label strong{font-size:.9rem;line-height:1.35}
.print-options-list label small{color:#6b7280;font-size:.76rem;line-height:1.35}
.print-options-divider{display:flex;align-items:center;gap:10px;margin:10px 0 4px;color:#667085;font-size:.75rem;font-weight:800;text-transform:none;letter-spacing:.02em}
.print-options-divider::before,.print-options-divider::after{content:"";height:1px;background:#dfe4eb;flex:1}
.print-selection-error{min-height:1.2em;margin:0;padding:0 20px 6px}
.print-options-actions{display:flex;justify-content:flex-end;gap:9px;padding:12px 20px 16px;border-top:1px solid #e1e6ed;background:#fff}
.print-options-actions button{min-width:150px}
@media(max-width:620px){
  .print-options-dialog{width:calc(100vw - 14px);max-height:94vh;border-radius:12px}
  .print-options-card{max-height:94vh}
  .print-options-heading,.print-options-list,.print-options-tools{padding-left:13px;padding-right:13px}
  .print-options-actions{padding:11px 13px;display:grid;grid-template-columns:1fr}
  .print-options-actions button{width:100%;min-width:0}
}

/* The selected print root is the only content sent to the physical printer.
   This final rule intentionally overrides all legacy print visibility rules. */
@media print{
  body.print-selection-active>*:not(#printSelectionRoot){display:none!important}
  body.print-selection-active #printSelectionRoot,
  #printSelectionRoot.print-selection-root{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#000!important}
  #printSelectionRoot .print-selection-item{display:block!important;visibility:visible!important;opacity:1!important}
  #printSelectionRoot .screen,
  #printSelectionRoot .panel,
  #printSelectionRoot .extended-screen{display:block!important;visibility:visible!important}
  #printSelectionRoot .print-selection-item+.print-selection-item{break-before:page;page-break-before:always}
  #printSelectionRoot .print-selection-dasha-report{break-before:page;page-break-before:always}
  #printSelectionRoot .print-selection-dasha-report>.report-page-dasha:first-child{break-before:auto!important;page-break-before:auto!important}
  #printSelectionRoot .print-selection-planets,
  #printSelectionRoot .print-selection-varga,
  #printSelectionRoot .print-selection-ashtaka-detail,
  #printSelectionRoot .print-selection-panchanga-detail,
  #printSelectionRoot .print-selection-gochara,
  #printSelectionRoot .print-selection-erashtaka,
  #printSelectionRoot .print-selection-drekkana-special,
  #printSelectionRoot .print-selection-technical{
    box-shadow:none!important;border:0!important;margin:0!important;width:100%!important;max-width:none!important;
  }
  #printSelectionRoot .table-wrap{overflow:visible!important;max-width:100%!important}
  #printSelectionRoot table{max-width:100%!important}
}

/* v0.8.0 — Dasha printing must mirror the on-screen paged report.
   The selectable print composer clones #classicDashaPreview. Older print layers
   flattened those visual pages and compacted their spacing. These final rules
   deliberately restore the screen Dasha hierarchy inside the composer only. */
@media print {
  #printSelectionRoot .print-selection-dasha-report {
    display: block !important;
    width: 100% !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    display: block !important;
    width: 100% !important;
    max-width: 1100px !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 44px 36px 34px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #c8c8c8 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    break-after: page !important;
    page-break-after: always !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  /* Every visual screen page keeps its own heading/subtitle. */
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .classic-heading,
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .legacy-subtitle {
    display: block !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .classic-heading {
    margin: 0 !important;
    font-size: 1.22rem !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .legacy-subtitle {
    margin: .15rem 0 .55rem !important;
    font-size: .86rem !important;
    letter-spacing: .08em !important;
  }

  /* Restore the same Maha-Dasha chapter labels seen on screen, including the
     continued label that older print CSS intentionally removed. */
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title,
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued {
    display: block !important;
    margin: 22px 0 10px !important;
    padding: 9px 12px 8px !important;
    border-top: 2px solid #222 !important;
    border-bottom: 2px solid #222 !important;
    text-align: center !important;
    background: #f5f5f3 !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) {
    margin-top: 34px !important;
    margin-bottom: 14px !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group + .legacy-maha-title:not(.continued) {
    margin-top: 52px !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued {
    margin-top: 18px !important;
    border-top-width: 1px !important;
    border-bottom-width: 1px !important;
    background: #fafafa !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title span {
    font-size: 1.18rem !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title small {
    margin-top: 3px !important;
    font-size: .82rem !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued span {
    font-size: 1.02rem !important;
  }

  /* Preserve the screen Antardasha cards instead of print-compacting them. */
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group {
    margin: 18px 0 24px !important;
    padding: 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group:last-child {
    margin-bottom: 0 !important;
  }

  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 16px !important;
    flex-wrap: nowrap !important;
    padding: .32rem 0 !important;
    font-size: inherit !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-heading-title {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    padding-right: 0 !important;
    white-space: nowrap !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range {
    flex: 0 0 auto !important;
    display: grid !important;
    grid-template-columns: max-content 28px max-content !important;
    column-gap: 14px !important;
    align-items: baseline !important;
    justify-content: start !important;
    width: max-content !important;
    max-width: none !important;
    margin: 0 0 0 auto !important;
    white-space: nowrap !important;
    overflow: visible !important;
    font-size: inherit !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range b {
    width: 28px !important;
    min-width: 28px !important;
    text-align: center !important;
  }

  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line {
    display: grid !important;
    grid-template-columns: minmax(205px,1fr) 205px 20px 205px 48px 68px 20px 68px !important;
    gap: 8px !important;
    align-items: baseline !important;
    padding: .24rem 0 !important;
    border-bottom: 1px dotted #ddd !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .lords {
    grid-column: auto !important;
    font-weight: 700 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .date,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age {
    white-space: nowrap !important;
    font-size: inherit !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age-label {
    grid-column: auto !important;
    text-align: right !important;
    color: #555 !important;
    font-size: inherit !important;
  }
}

/* v0.8.0 — keep complete Dasha blocks together and suppress native
   Chromium/WebView print header/footer margin bands.
   The report supplies its own inner page padding, so the physical @page can
   safely use zero margin. This prevents the automatic date/title/URL footer
   area from consuming vertical space and causing an Antardasha to spill. */
@media print {
  @page {
    size: A4 landscape;
    margin: 0 !important;
  }

  /* Give non-Dasha selected sections an internal printable inset now that the
     physical page margin is zero. Dasha pages already carry their own padding. */
  #printSelectionRoot > .print-selection-item:not(.print-selection-dasha-report) {
    box-sizing: border-box !important;
    padding: 12mm 10mm 10mm !important;
  }

  /* A screen Dasha page owns its own inner margin. Do not let the physical
     printer margin shrink it or create a browser header/footer band. */
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 100vh !important;
    padding: 12mm 10mm 10mm !important;
    margin: 0 !important;
    border: 0 !important;
  }

  /* Chromium can occasionally ignore break-inside on a grid descendant. Apply
     the no-split contract to both the Antardasha wrapper and every immediate
     row container so it either fits here or starts on the next sheet. */
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group {
    display: block !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
    orphans: 99 !important;
    widows: 99 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
}

/* v0.8.0 — final Dasha pagination correction.
   A logical Dasha screen page already contains the intended two Antardasha
   groups. Never give it a viewport-based minimum height in print: 100vh is
   unrelated to the printer's imageable A4 area and caused false spill pages. */
@media print {
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    break-after: page !important;
    page-break-after: always !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  /* Keep an Antardasha together when possible, but don't use artificial
     widows/orphans counts that can force an otherwise fitting block away. */
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group {
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    orphans: 2 !important;
    widows: 2 !important;
  }

  /* The selected report itself supplies the physical page padding. */
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    padding: 8mm 8mm 7mm !important;
  }
}

/* v0.8.3 — stable paper layout for selectable Dasha printing.
   Keep the two-Antardasha screen grouping, but make the paper version compact
   enough that both complete blocks fit on one A4-landscape sheet. */
@media print {
  @page { size: A4 landscape; margin: 0 !important; }

  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 5mm 7mm 4mm !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
    break-after: page !important;
    page-break-after: always !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .classic-heading {
    margin: 0 0 1mm !important;
    font-size: 13.5pt !important;
    line-height: 1.2 !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .legacy-subtitle {
    margin: 0 0 2.2mm !important;
    font-size: 7.8pt !important;
    line-height: 1.2 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title,
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued,
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) {
    margin: 2mm 0 1.5mm !important;
    padding: 1.5mm 2mm 1.3mm !important;
    border-top: 1.2px solid #222 !important;
    border-bottom: 1.2px solid #222 !important;
    background: #f7f7f6 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title span {
    font-size: 10.5pt !important;
    line-height: 1.15 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title small {
    margin-top: .5mm !important;
    font-size: 7.2pt !important;
    line-height: 1.1 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group:last-child {
    margin: 1.5mm 0 2mm !important;
    padding: 0 !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading {
    grid-template-columns: minmax(175px,1fr) 175px 16px 175px 40px 55px 16px 55px !important;
    column-gap: 5px !important;
    padding: 1mm 0 .8mm !important;
    font-size: 8.6pt !important;
    line-height: 1.2 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range {
    grid-template-columns: max-content 20px max-content !important;
    column-gap: 8px !important;
    font-size: 8.6pt !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range b {
    width: 20px !important;
    min-width: 20px !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line {
    grid-template-columns: minmax(175px,1fr) 175px 16px 175px 40px 55px 16px 55px !important;
    gap: 5px !important;
    padding: .55mm 0 !important;
    font-size: 8.15pt !important;
    line-height: 1.18 !important;
    border-bottom: 1px dotted #d4d4d4 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .date,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age-label {
    font-size: 8.15pt !important;
  }
}

/* v0.8.3 — readable Dasha paper typography.
   v0.8.2 proved that two complete Antardashas fit comfortably on A4 landscape,
   but compressed the type too far. Restore a clear visual hierarchy and more
   breathing room while keeping the no-split Antardasha grouping. */
@media print {
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    padding: 10mm 9mm 8mm !important;
  }

  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .classic-heading {
    margin: 0 0 3.5mm !important;
    font-size: 15pt !important;
    line-height: 1.25 !important;
  }

  /* This English screen-only locator is useful interactively but is not part
     of the printed report. */
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .legacy-subtitle {
    display: none !important;
  }

  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title,
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) {
    margin: 3.2mm 0 2.5mm !important;
    padding: 2.2mm 2.5mm 2mm !important;
    border-top: 1.4px solid #222 !important;
    border-bottom: 1.4px solid #222 !important;
    background: #f7f7f6 !important;
  }

  /* A new Maha-Dasha chapter is the strongest heading in the printed body. */
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) span {
    font-size: 13.2pt !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) small {
    margin-top: .8mm !important;
    font-size: 8.6pt !important;
    line-height: 1.2 !important;
  }

  /* Continued banners remain visible, but intentionally subordinate to a new
     Maha-Dasha chapter. This also prevents old higher-specificity rules from
     making CONTINUED larger than the real chapter heading. */
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued {
    margin: 2.5mm 0 2mm !important;
    padding: 1.8mm 2.5mm 1.6mm !important;
    border-top-width: 1px !important;
    border-bottom-width: 1px !important;
    background: #fafafa !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued span {
    font-size: 11.2pt !important;
    line-height: 1.2 !important;
    font-weight: 750 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued small {
    font-size: 8.2pt !important;
  }

  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group:last-child {
    margin: 2.6mm 0 4.2mm !important;
  }

  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading {
    grid-template-columns: minmax(190px,1fr) 190px 18px 190px 43px 60px 18px 60px !important;
    column-gap: 6px !important;
    padding: 1.5mm 0 1.2mm !important;
    font-size: 10.1pt !important;
    line-height: 1.28 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-heading-title {
    font-size: 10.3pt !important;
    font-weight: 800 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range {
    grid-template-columns: max-content 22px max-content !important;
    column-gap: 9px !important;
    font-size: 9.9pt !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range b {
    width: 22px !important;
    min-width: 22px !important;
  }

  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line {
    grid-template-columns: minmax(190px,1fr) 190px 18px 190px 43px 60px 18px 60px !important;
    gap: 6px !important;
    padding: .9mm 0 !important;
    font-size: 9.25pt !important;
    line-height: 1.26 !important;
    border-bottom: 1px dotted #ccc !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .lords {
    font-size: 9.45pt !important;
    font-weight: 750 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .date,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age-label {
    font-size: 9.05pt !important;
  }
}

/* v0.8.4 — Maha-Dasha driven print pagination + readable dates.
   Paper pagination must follow real Maha-Dasha chapters, not the screen's
   artificial two-Antardasha report-page wrappers. */
@media print {
  /* Flatten the screen-only Dasha page wrappers. They remain useful on screen,
     but must not force physical page breaks on paper. */
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha {
    display: contents !important;
    break-after: auto !important;
    page-break-after: auto !important;
  }

  /* The report heading belongs only at the start of the printed Dasha report.
     Repeated screen-page headings would otherwise appear in the middle of a
     Maha-Dasha after the wrappers are flattened. */
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .classic-heading,
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha > .legacy-subtitle {
    display: none !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha:first-child > .classic-heading {
    display: block !important;
    margin: 0 0 4mm !important;
    padding-top: 8mm !important;
    font-size: 15pt !important;
    line-height: 1.25 !important;
  }

  /* A true Maha-Dasha chapter is the physical-page boundary. The very first
     chapter starts normally; every later chapter starts on a fresh sheet. */
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) {
    break-before: page !important;
    page-break-before: always !important;
    margin: 0 0 3mm !important;
    padding: 2.4mm 2.8mm 2.2mm !important;
  }
  #printSelectionRoot .print-selection-dasha-report > .report-page-dasha:first-child .legacy-maha-title:not(.continued) {
    break-before: auto !important;
    page-break-before: auto !important;
  }

  /* Screen continuation banners are tied to screen paging, not paper paging.
     Hiding them prevents a fake 'continued' banner from appearing mid-page. */
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title.continued {
    display: none !important;
  }

  /* Keep a chapter heading with its first Antardasha block. */
  #printSelectionRoot .print-selection-dasha-report .legacy-maha-title:not(.continued) + .legacy-dasha-group {
    break-before: avoid-page !important;
    page-break-before: avoid !important;
  }

  /* Antardasha blocks remain intact where possible, while multiple blocks in
     the same Maha-Dasha flow naturally down the page. */
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-group {
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    margin: 2.4mm 0 4.5mm !important;
  }

  /* Stronger date/time typography: these values are the densest part of the
     report and need to be comfortably readable on an A4 landscape print. */
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-heading .dasha-date-range,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .date {
    font-size: 10.25pt !important;
    font-weight: 600 !important;
    line-height: 1.28 !important;
    letter-spacing: 0 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age,
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .age-label {
    font-size: 9.7pt !important;
    line-height: 1.28 !important;
  }
  #printSelectionRoot .print-selection-dasha-report .legacy-dasha-line .lords {
    font-size: 9.8pt !important;
  }

  /* Preserve useful white space at the sheet edges without top congestion. */
  #printSelectionRoot .print-selection-dasha-report {
    padding: 0 9mm 8mm !important;
    box-sizing: border-box !important;
  }
}

/* v0.8.12 — student/practitioner planet-analysis explorer */
.planet-study-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  margin: 26px 0 12px;
  padding-top: 18px;
  border-top: 1px solid #ddd7cb;
}
.planet-study-heading h3 { margin: 0 0 4px; font-size: 1.2rem; }
.planet-study-heading p { margin: 0; }
.planet-analysis-row { cursor: pointer; }
.planet-analysis-row:hover td { background: #faf7ef; }
.planet-analysis-warning {
  margin: 10px 0 12px; padding: 11px 13px; border: 1px solid #c55a42;
  border-radius: 8px; background: #fff6f2; color: #8b2f1f; line-height: 1.45;
}
.planet-analysis-warning.compat {
  border-color: #c4932f; background: #fffaf0; color: #745500;
}
.planet-click-hint { margin: 8px 0 10px; color: #5e6676; font-size: .93rem; }
.planet-analysis-row { cursor: pointer; }
.planet-analysis-row td:last-child { white-space: nowrap; }
.planet-analysis-row:focus { outline: 2px solid #8a5a00; outline-offset: -2px; }
.planet-detail-open {
  border: 1px solid #c9c1b2; background: #fff; color: #704800; border-radius: 999px;
  padding: 4px 9px; font: inherit; font-size: .86rem; font-weight: 700; cursor: pointer;
}
.planet-detail-open:hover { background: #f7f1e5; }
.planet-analysis-missing td { background: #fff6f2; }
.planet-analysis-missing td:nth-child(6) { color: #a33a27; font-weight: 700; }
.planet-analysis-not-applicable { color: #59606d; }
.planet-detail-na { font-size: .82rem; color: #747b88; }
.planet-analysis-empty { padding: 14px; border: 1px dashed #c55a42; border-radius: 8px; background: #fff8f5; }
.planet-analysis-empty p { margin: 6px 0 0; }

.study-badge,
.study-state {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 2px 7px;
  border: 1px solid #cfc8bb;
  border-radius: 999px;
  background: #faf9f6;
  font-size: .82rem;
  line-height: 1.35;
  white-space: nowrap;
}
.study-state { margin: 1px 2px 1px 0; background: #f4f4f2; }
.study-badge.dignity-exalted,
.study-badge.dignity-moolatrikona,
.study-badge.dignity-own,
.study-badge.vargottama { background: #eef7ee; border-color: #a8caa9; }
.study-badge.dignity-debilitated,
.study-badge.dignity-enemy { background: #fff0ee; border-color: #d6aaa4; }
.study-badge.dignity-friend { background: #f1f6ff; border-color: #aebed6; }
.study-badge.dignity-neutral,
.study-badge.dignity-school_dependent { background: #f4f2ee; border-color: #c9c2b6; }
.study-badge.role { background: #fff9e8; border-color: #d5c58f; }
.planet-study-list { display: grid; gap: 10px; }
.planet-study-card {
  border: 1px solid #d6d0c5;
  border-radius: 10px;
  overflow: clip;
  background: #fff;
}
.planet-study-card > summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 12px 14px;
  cursor: pointer;
  background: #faf8f3;
  list-style-position: inside;
}
.planet-study-card[open] > summary { border-bottom: 1px solid #ded8cc; background: #f6f2e8; }
.planet-study-name { min-width: 72px; font-size: 1.05rem; font-weight: 800; }
.planet-study-body { padding: 14px; }
.planet-study-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.study-box {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #e0dbd1;
  border-radius: 8px;
  background: #fcfbf8;
}
.study-box > span { display: block; color: #675f54; font-size: .79rem; margin-bottom: 3px; }
.study-box > strong { display: block; font-size: .98rem; overflow-wrap: anywhere; }
.study-box > small { display: block; margin-top: 4px; color: #6d665c; line-height: 1.4; overflow-wrap: anywhere; }
.study-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.planet-study-two-col {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 12px;
  margin-top: 12px;
}
.planet-study-two-col > div {
  min-width: 0;
  border: 1px solid #e0dbd1;
  border-radius: 8px;
  padding: 10px 12px;
}
.planet-study-two-col h4 { margin: 0 0 7px; }
.planet-study-two-col ul { margin: 0; padding-left: 21px; line-height: 1.5; }
.planet-study-two-col li + li { margin-top: 3px; }
.planet-why-box { background: #fbfaf6; }
.study-received { margin: 9px 0 0; }
.study-rule-note {
  margin: 10px 0 0;
  padding: 8px 10px;
  border-left: 3px solid #b6aa94;
  background: #f7f5f0;
  color: #5e574c;
  font-size: .88rem;
  line-height: 1.45;
}
.planet-methodology {
  margin-top: 14px;
  border: 1px solid #d7d0c3;
  border-radius: 9px;
  background: #faf9f6;
}
.planet-methodology > summary { cursor: pointer; padding: 11px 13px; font-weight: 750; }
.planet-methodology-body { padding: 0 13px 12px; }
.planet-methodology-body p { margin: 8px 0; line-height: 1.5; }

@media (max-width: 920px) {
  .planet-study-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planet-study-two-col { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .planet-study-grid { grid-template-columns: 1fr; }
  .planet-study-card > summary { align-items: flex-start; }
  .planet-study-name { min-width: 60px; }
  .study-badge, .study-state { white-space: normal; }
}

/* v0.8.16 — compact planet-analysis table + Dig Bala line */
.planet-detail-table {
  min-width: 760px;
  font-size: .92rem;
}
.planet-detail-table th,
.planet-detail-table td {
  padding: .26rem .34rem;
  vertical-align: middle;
}
.planet-detail-table th { line-height: 1.2; }
.planet-detail-table .planet-position-cell,
.planet-detail-table .planet-d1-cell,
.planet-detail-table .planet-state-cell {
  white-space: normal;
}
.planet-position-cell > span,
.planet-position-cell > small,
.planet-d1-cell > small,
.planet-state-cell > small {
  display: block;
}
.planet-position-cell > small,
.planet-state-cell > small,
.dig-bala-line {
  margin-top: 2px;
  color: #676d78;
  font-size: .77rem;
  line-height: 1.2;
}
.dig-bala-line {
  font-family: Consolas, "Courier New", monospace;
  font-weight: 600;
  white-space: nowrap;
}
.planet-detail-table .study-badge,
.planet-detail-table .study-state {
  padding: 1px 6px;
  font-size: .78rem;
}
.planet-detail-table .planet-detail-open {
  padding: 3px 7px;
  font-size: .8rem;
}
.planet-detail-table td:nth-child(1) { min-width: 64px; }
.planet-detail-table td:nth-child(2) { min-width: 94px; }
.planet-detail-table td:nth-child(4) { min-width: 92px; }
.planet-detail-table td:nth-child(5) { min-width: 132px; }
.planet-detail-table td:nth-child(7) { min-width: 118px; }

@media (max-width: 900px) {
  .planet-detail-table { min-width: 700px; font-size: .88rem; }
  .planet-detail-table th,
  .planet-detail-table td { padding: .23rem .28rem; }
}

/* v0.8.16 — Shadbala study / practitioner module */
.shadbala-screen .extended-heading { margin-bottom: 12px; }
.shadbala-unit-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 14px;
  margin: 10px 0 14px;
  padding: 13px 14px;
  border: 1px solid #d8d1c5;
  border-radius: 10px;
  background: #fbfaf7;
}
.shadbala-unit-panel h3 { margin: 0 0 5px; font-size: 1.05rem; }
.shadbala-unit-panel p { margin: 5px 0; line-height: 1.45; }
.shadbala-unit-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  align-content: center;
}
.shadbala-unit-card {
  padding: 8px 9px;
  border: 1px solid #ded8cc;
  border-radius: 8px;
  background: #fff;
  text-align: center;
}
.shadbala-unit-card strong { display: block; font: 700 .94rem/1.2 Consolas, "Courier New", monospace; }
.shadbala-unit-card span { display: block; margin-top: 2px; color: #6b6459; font-size: .78rem; }
.shadbala-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 0 0 10px;
  padding: 8px 10px;
  border-left: 3px solid #aa8b54;
  background: #faf8f2;
  color: #5f5a50;
  font-size: .83rem;
  line-height: 1.4;
}
.shadbala-table-wrap { margin-top: 6px; }
.shadbala-table {
  min-width: 900px;
  font-size: .86rem;
}
.shadbala-table th,
.shadbala-table td {
  padding: .3rem .34rem;
  vertical-align: middle;
  text-align: right;
}
.shadbala-table th:first-child,
.shadbala-table td:first-child,
.shadbala-table th:last-child,
.shadbala-table td:last-child { text-align: left; }
.shadbala-table thead small { display: block; color: #777064; font-weight: 500; font-size: .7rem; }
.shadbala-summary-row { cursor: pointer; }
.shadbala-summary-row:hover td,
.shadbala-summary-row:hover th { background: #faf6ec; }
.shadbala-summary-row:focus { outline: 2px solid #8a5a00; outline-offset: -2px; }
.shadbala-total-cell { min-width: 116px; }
.shadbala-total-cell > strong,
.shadbala-required { display: block; }
.shadbala-total-cell > strong small,
.shadbala-required small { display: block; font-size: .72rem; font-weight: 500; color: #6f685d; }
.shadbala-required { margin-top: 2px; color: #696256; font-size: .76rem; }
.shadbala-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 190px;
  padding: 2px 7px;
  border: 1px solid #cbc4b8;
  border-radius: 999px;
  font-size: .75rem;
  line-height: 1.25;
  white-space: normal;
}
.shadbala-status.meets { background: #eef7ee; border-color: #a8c9a9; color: #315d34; }
.shadbala-status.below { background: #fff5e8; border-color: #d5bb8e; color: #785315; }
.shadbala-status.incomplete { background: #fff0ee; border-color: #d5a8a1; color: #8a3326; }
.shadbala-summary-row td:last-child > small { display: block; margin-top: 3px; color: #6e675d; }
.negative { color: #9b3429 !important; }
.shadbala-reading-note {
  margin: 12px 0 2px;
  padding: 10px 12px;
  border: 1px solid #d8caa8;
  border-radius: 8px;
  background: #fffaf0;
  line-height: 1.45;
  font-size: .9rem;
}
.shadbala-detail-heading { margin-top: 18px; }
.shadbala-details { display: grid; gap: 10px; }
.shadbala-detail-card {
  border: 1px solid #d6d0c5;
  border-radius: 10px;
  overflow: clip;
  background: #fff;
}
.shadbala-detail-card > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 13px;
  padding: 11px 13px;
  cursor: pointer;
  background: #faf8f3;
}
.shadbala-detail-card[open] > summary { background: #f5f0e5; border-bottom: 1px solid #ddd6c9; }
.shadbala-detail-body { padding: 12px 13px 14px; }
.shadbala-component-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.shadbala-component-grid .study-box { padding: 9px 10px; }
.shadbala-component-grid .study-box strong { font-family: Consolas, "Courier New", monospace; }
.shadbala-two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.shadbala-two-col > div { min-width: 0; }
.shadbala-two-col h4 { margin: 0 0 7px; font-size: .95rem; }
.shadbala-two-col h4:not(:first-child) { margin-top: 13px; }
.shadbala-kala-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}
.shadbala-kala-list span {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  padding: 5px 7px;
  border: 1px solid #e0dbd1;
  border-radius: 6px;
  background: #fcfbf8;
  font-size: .78rem;
}
.shadbala-kala-list strong { font-family: Consolas, "Courier New", monospace; white-space: nowrap; }
.shadbala-mini-table { min-width: 0; width: 100%; font-size: .76rem; }
.shadbala-mini-table th,
.shadbala-mini-table td { padding: .22rem .28rem; }
.shadbala-result-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 16px;
  margin-top: 12px;
  padding: 8px 10px;
  border-top: 1px solid #d8d1c5;
  border-bottom: 1px solid #d8d1c5;
  background: #fbfaf7;
  font-family: Consolas, "Courier New", monospace;
  font-size: .86rem;
}
.shadbala-methodology { margin-top: 14px; }

@media (max-width: 980px) {
  .shadbala-unit-panel { grid-template-columns: 1fr; }
  .shadbala-unit-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .shadbala-component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shadbala-two-col { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .shadbala-unit-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shadbala-component-grid { grid-template-columns: 1fr; }
  .shadbala-kala-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shadbala-table { min-width: 820px; }
}

/* v0.8.17 — Lagna-first Ashtakavarga presentation with explicit rashi labels. */
.ashtaka-viewbar{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:.35rem 0 .2rem}
.ashtaka-viewbar>span{font-size:.76rem;font-weight:800;color:#697384;margin-right:.15rem}
.ashtaka-viewbar button{border:1px solid #c8d0da;background:#fff;color:#46505f;border-radius:999px;padding:.32rem .62rem;font-size:.72rem;font-weight:750;cursor:pointer}
.ashtaka-viewbar button.active{border-color:#7c531c;background:#fff6e6;color:#6f4300;box-shadow:inset 0 0 0 1px rgba(124,83,28,.08)}
.ashtaka-view-note{margin:.15rem 0 .45rem;font-size:.72rem;line-height:1.35;color:#6e7785}
.ashtaka-colhead{min-width:54px;white-space:normal!important;line-height:1.08!important}
.ashtaka-colhead span{display:block;font-size:.68rem;font-weight:800;color:#657080;white-space:nowrap}
.ashtaka-colhead small{display:block;margin-top:2px;font-size:.76rem;font-weight:850;color:#171a1f;white-space:nowrap}
@media(max-width:900px){.ashtaka-colhead{min-width:50px}.ashtaka-colhead small{font-size:.7rem}.ashtaka-colhead span{font-size:.61rem}}

/* v0.8.24 — General Analysis toolbar alignment + grouped quick range */
.general-analysis-screen { overflow: hidden; }
.general-transit-module { margin-top: 0.4rem; }
.general-transit-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:0.6rem; }
.general-transit-title-row h3 { margin:0 0 0.15rem; }
.general-transit-toolbar {
  display:grid;
  gap:0.55rem;
  padding:0.75rem;
  margin:0.6rem 0 0.7rem;
  border:1px solid var(--line, #d6d9df);
  border-radius:10px;
  background:#fafbfc;
}
.general-transit-toolbar-main {
  display:grid;
  grid-template-columns:minmax(150px,1.1fr) minmax(145px,1fr) minmax(145px,1fr) max-content;
  gap:0.65rem;
  align-items:start;
}
/* Global form labels carry .8rem margins. Reset them here and force every
   field into the exact same label-row + 46px control-row geometry. */
.general-transit-toolbar-main > label,
.general-transit-action-field {
  display:grid;
  grid-template-rows:1.55rem 46px;
  gap:0.30rem;
  margin:0 !important;
  align-content:start;
  min-width:0;
}
.general-transit-toolbar-main > label { font-weight:700; }
.general-transit-action-label {
  display:block;
  visibility:hidden;
  height:1.55rem;
  line-height:1.55rem;
  margin:0;
  font-weight:700;
}
.general-transit-toolbar select,
.general-transit-toolbar input {
  width:100%;
  height:46px;
  min-height:46px;
  margin:0 !important;
}
.general-transit-run-btn,
.general-transit-preset-btn {
  min-height:46px;
  height:46px;
  margin:0 !important;
  padding:0.42rem 0.68rem;
  width:auto !important;
  border-radius:8px !important;
  background:var(--accent) !important;
  color:#fff !important;
  font-weight:750 !important;
  white-space:nowrap;
  box-shadow:none;
}
.general-transit-run-btn {
  align-self:stretch;
  font-size:0.88rem;
}
/* Keep the Quick range label and preset visually as one compact control. */
.general-transit-quick-table {
  display:inline-table;
  width:max-content !important;
  max-width:100%;
  table-layout:auto;
  border-collapse:separate;
  border-spacing:0;
  margin:0;
  padding:0.22rem 0.28rem;
  border:1px solid #d8dde3;
  border-radius:8px;
  background:#fff;
  font-size:0.92rem;
}
.general-transit-quick-table th,
.general-transit-quick-table td {
  width:auto !important;
  padding:0.08rem 0.20rem;
  border:0;
  background:transparent;
  vertical-align:middle;
  text-align:left;
}
.general-transit-quick-table th {
  font-weight:750;
  white-space:nowrap;
  padding-right:0.35rem;
}
.general-transit-preset-btn { min-width:138px; }
.general-transit-preset-btn:hover,
.general-transit-run-btn:hover {
  filter:brightness(0.96);
}
.general-transit-error:empty { display:none; }
.general-transit-summary { margin:0.5rem 0; }
.general-event-legend {
  display:flex;
  flex-wrap:wrap;
  gap:0.45rem 1rem;
  margin:0.55rem 0 0.7rem;
  padding:0.5rem 0.65rem;
  border-top:1px solid #e2e3e6;
  border-bottom:1px solid #e2e3e6;
  font-size:0.85rem;
  color:#5b6472;
}
.general-transit-table-wrap { max-width:100%; overflow:auto; }
.general-transit-table { min-width:940px; table-layout:auto; }
.general-transit-table th,
.general-transit-table td { padding:0.42rem 0.48rem; vertical-align:top; }
.general-transit-table td small { display:block; margin-top:0.12rem; color:#687182; line-height:1.25; }
.general-transit-table .erashtaka-date-line,
.general-transit-table .erashtaka-time-line { display:block; white-space:nowrap; }
.general-event-badge {
  display:inline-block;
  padding:0.18rem 0.42rem;
  border:1px solid #d4c29e;
  border-radius:999px;
  background:#fffaf0;
  font-weight:700;
  line-height:1.25;
}
.general-event-badge.ingress {
  border-color:#8fbb98;
  background:#eaf7ed;
  color:#285f34;
}
.general-combust-badge {
  display:inline-block;
  padding:0.15rem 0.4rem;
  border:1px solid #cfd4db;
  border-radius:999px;
  background:#f7f8fa;
  font-weight:700;
}
.general-combust-badge.active { border-color:#d58f7b; background:#fff0eb; color:#9b2f14; }
.general-now-row { background:#eef8f0 !important; box-shadow:inset 4px 0 0 #5c8b67; }
.general-transit-help { margin-top:0.8rem; }

@media (max-width: 900px) {
  .general-transit-toolbar-main { grid-template-columns:1fr 1fr; }
  .general-transit-toolbar-main > label:first-child { grid-column:1 / -1; }
  .general-transit-run-btn { width:100%; }
  .general-transit-action-field { width:100%; }
}

@media (max-width: 620px) {
  .general-transit-toolbar-main { grid-template-columns:1fr; }
  .general-transit-toolbar-main > label:first-child { grid-column:auto; }
  .general-transit-run-btn { width:100%; }
  .general-transit-action-field { width:100%; }
  .general-transit-quick-table { width:max-content !important; max-width:100%; }
  .general-transit-quick-table th, .general-transit-quick-table td { display:table-cell; }
  .general-transit-preset-btn { width:auto !important; min-width:132px; }
  .general-event-legend { display:grid; }
}

/* v0.8.20 — General Analysis date/time readability */
.general-transit-table td.general-event-time {
  min-width: 122px;
  padding-top: 0.48rem;
  padding-bottom: 0.48rem;
}
.general-transit-table .general-event-time .erashtaka-date-line {
  font-size: 0.98rem;
  font-weight: 850;
  line-height: 1.28;
  color: #1f2937;
  letter-spacing: 0.01em;
}
.general-transit-table .general-event-time .erashtaka-time-line {
  margin-top: 0.16rem;
  font-size: 0.88rem;
  font-weight: 750;
  line-height: 1.25;
  color: #4b5563;
}
@media (max-width: 620px) {
  .general-transit-table td.general-event-time { min-width: 112px; }
  .general-transit-table .general-event-time .erashtaka-date-line { font-size: 0.94rem; }
  .general-transit-table .general-event-time .erashtaka-time-line { font-size: 0.84rem; }
}


/* v0.8.25 — BPHS reference explanation */
.shadbala-reference-help {
  margin: 10px 0 12px; border: 1px solid #d9cfbd; border-radius: 10px; background: #fffdf8;
}
.shadbala-reference-help > summary {
  cursor: pointer; padding: 10px 12px; font-weight: 700; color: #5f420d;
}
.shadbala-reference-help > div { padding: 0 12px 11px; border-top: 1px solid #ece4d7; }
.shadbala-reference-help p { margin: 8px 0 0; line-height: 1.5; }
.shadbala-status[title] { cursor: help; }

/* v0.8.28 — Ephemeris selected-location + readability polish */
.daily-ephemeris-module {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 2px solid #e1d6c3;
}
.daily-ephemeris-toolbar {
  margin: .75rem 0 .55rem;
  padding: .75rem;
  border: 1px solid #d8dee7;
  border-radius: 10px;
  background: #fbfcfe;
}
.daily-ephemeris-toolbar-main {
  display: grid;
  grid-template-columns: minmax(180px, 230px) minmax(180px, 230px) auto;
  align-items: end;
  gap: .7rem;
}
.daily-ephemeris-toolbar-main > label,
.daily-ephemeris-toolbar-main > .general-transit-action-field {
  margin: 0 !important;
  display: grid;
  grid-template-rows: 1.55rem 46px;
  gap: .3rem;
  align-content: start;
}
.daily-ephemeris-toolbar-main input { height: 46px; }
.daily-ephemeris-run-btn { height: 46px; white-space: nowrap; }
.daily-ephemeris-quick-table { margin-top: .55rem; }
.daily-ephemeris-days {
  display:grid;
  gap:.85rem;
  margin-top:.65rem;
}
.daily-day-card {
  border:1px solid #b9aa94;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.daily-day-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.72rem .85rem;
  background:#fbf7ef;
  border-bottom:1px solid #cdbda6;
}
.daily-day-title { display:flex; align-items:baseline; gap:.7rem; flex-wrap:wrap; }
.daily-day-title strong { font-size:1.34rem; line-height:1.12; color:#21190f; font-weight:900; }
.daily-day-title span { font-size:.92rem; font-weight:700; color:#687182; }
.daily-day-sun { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.daily-sun-item { display:flex; align-items:baseline; gap:.3rem; white-space:nowrap; }
.daily-sun-item span { font-size:.82rem; color:#5f6672; font-weight:800; }
.daily-sun-item strong { font-size:1.03rem; font-variant-numeric:tabular-nums; }
.daily-snapshot-label,
.daily-transition-heading {
  padding:.5rem .82rem .3rem;
  font-weight:800;
  color:#4a3a25;
}
.daily-snapshot-grid {
  display:grid;
  grid-template-columns:repeat(5, minmax(125px, 1fr));
  gap:0;
  margin:0 .75rem .45rem;
  border:1px solid #ebe4d9;
  border-radius:9px;
  overflow:hidden;
}
.daily-snapshot-grid > div { padding:.55rem .62rem; border-right:1px solid #ebe4d9; min-width:0; }
.daily-snapshot-grid > div:last-child { border-right:0; }
.daily-snapshot-grid > div > span { display:block; font-size:.82rem; color:#3f4650; font-weight:850; margin-bottom:.18rem; }
.daily-snapshot-value strong { display:block; line-height:1.28; }
.daily-snapshot-value small { display:block; margin-top:.12rem; color:#687182; line-height:1.2; }
.daily-transition-list { margin:0 .75rem .75rem; border-top:1px solid #ece6dc; }
.daily-transition-row {
  display:grid;
  grid-template-columns:92px 120px minmax(0, 1fr);
  gap:.55rem;
  align-items:center;
  padding:.38rem .15rem;
  border-bottom:1px dotted #d9d9d9;
}
.daily-transition-row:last-child { border-bottom:0; }
.daily-transition-time { font-variant-numeric:tabular-nums; font-weight:800; white-space:nowrap; }
.daily-transition-kind { font-weight:850; color:#343a43; }
.daily-transition-change { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; }
.daily-transition-arrow { color:#8a5a12; font-weight:900; }
.daily-transition-empty { margin:0 .8rem .8rem; }
.daily-planets-table td strong { display:block; }
.daily-planets-table td small {
  display:block;
  margin-top:.12rem;
  line-height:1.25;
  color:#667085;
}
.daily-planet-positions {
  margin-top: .8rem;
  border: 1px solid #ddd3c2;
  border-radius: 10px;
  background: #fffdf9;
}
.daily-planet-positions > summary {
  cursor: pointer;
  padding: .7rem .8rem;
  font-weight: 750;
}
.daily-planet-positions > p { margin: 0 .8rem .5rem; }
.daily-planet-positions .table-wrap { margin: 0 .7rem .7rem; }
.daily-planets-table { min-width: 1120px; }
.daily-planets-table td { min-width: 105px; white-space: nowrap; }
.daily-ephemeris-help { margin-top: .8rem; }
@media (max-width: 920px) {
  .daily-snapshot-grid { grid-template-columns:repeat(2, minmax(150px, 1fr)); }
  .daily-snapshot-grid > div { border-bottom:1px solid #ebe4d9; }
}
@media (max-width: 760px) {
  .daily-ephemeris-toolbar-main { grid-template-columns: 1fr 1fr; }
  .daily-day-header { align-items:flex-start; flex-direction:column; gap:.35rem; }
  .daily-transition-row { grid-template-columns:78px 105px minmax(0, 1fr); }
  .daily-ephemeris-toolbar-main .general-transit-action-field { grid-column: 1 / -1; }
  .daily-ephemeris-run-btn { width: 100%; }
}
@media (max-width: 520px) {
  .daily-ephemeris-toolbar-main { grid-template-columns: 1fr; }
  .daily-ephemeris-toolbar-main .general-transit-action-field { grid-column: auto; }
  .daily-snapshot-grid { grid-template-columns:1fr; }
  .daily-snapshot-grid > div { border-right:0; }
  .daily-transition-row { grid-template-columns:72px 1fr; }
  .daily-transition-change { grid-column:1 / -1; padding-left:72px; }
}

/* v0.8.29 — collapsible daily Ephemeris cards + persistent Today highlight */
.daily-day-card > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.daily-day-card > summary::-webkit-details-marker { display: none; }
.daily-day-card > .daily-day-header::after {
  content: "▾";
  flex: 0 0 auto;
  margin-left: .2rem;
  color: #6f604d;
  font-size: 1rem;
  font-weight: 900;
  transform: rotate(-90deg);
  transition: transform .14s ease;
}
.daily-day-card[open] > .daily-day-header::after { transform: rotate(0deg); }
.daily-day-card > .daily-day-header:hover { background: #f7f0e5; }
.daily-day-body { padding-bottom: .05rem; }
.daily-day-today {
  border: 2px solid #7a8f55;
  box-shadow: 0 0 0 2px rgba(122, 143, 85, .10);
  background: #fffef8;
}
.daily-day-today > .daily-day-header {
  background: #eef5df;
  border-bottom-color: #c9d6ad;
}
.daily-day-today[open] > .daily-day-header { background: #e7f1d2; }
.daily-day-today .daily-day-title strong { color: #304314; }
.daily-today-badge {
  display: inline-flex;
  align-items: center;
  padding: .16rem .5rem;
  border: 1px solid #7a8f55;
  border-radius: 999px;
  background: #f4f8ea;
  color: #3d541b !important;
  font-size: .76rem !important;
  font-weight: 900 !important;
  line-height: 1.15;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .daily-day-card > .daily-day-header::after { align-self: flex-start; margin-top: .2rem; }
}


/* v0.8.30 — Ephemeris auspicious-time search */
.auspicious-search-module{margin-top:28px;padding-top:22px;border-top:2px solid #d8c5a1}
.auspicious-search-toolbar{border:1px solid #d8dee7;border-radius:12px;background:#f8fafc;padding:12px;margin:12px 0}
.auspicious-search-toolbar-main{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(170px,.8fr) minmax(190px,.9fr);gap:10px;align-items:end}
.auspicious-search-toolbar-main>label{margin:0!important;display:grid;grid-template-rows:auto 46px;gap:6px;font-weight:700}
.auspicious-search-toolbar-main input,.auspicious-search-toolbar-main select,.auspicious-search-run-btn{height:46px;box-sizing:border-box}
.auspicious-search-run-btn{width:100%;margin:0!important;white-space:nowrap}
.auspicious-search-options{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:10px}
.auspicious-option-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 10px;border:1px solid #e0e5eb;border-radius:9px;background:#fff}
.auspicious-option-group>strong{margin-right:4px;color:#4f5967}
.auspicious-option-group label{margin:0!important;display:inline-flex;align-items:center;gap:5px;font-weight:600}
.auspicious-search-results{display:grid;gap:12px;margin-top:12px}
.auspicious-day-card{border:1px solid #b9aa94;border-radius:10px;background:#fff;overflow:hidden}
.auspicious-day-today{border:2px solid #a67313;box-shadow:0 0 0 2px rgba(166,115,19,.09)}
.auspicious-day-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#f8f5ee;border-bottom:1px solid #cdbda6}
.auspicious-day-head>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.auspicious-day-head>div:first-child>strong{font-size:1.18rem}
.auspicious-day-head>div:first-child>span:not(.daily-today-badge){color:#677181;font-weight:700}
.auspicious-sun{display:flex;gap:12px;white-space:nowrap;color:#5d6673;font-weight:700}
.auspicious-day-context{display:flex;flex-wrap:wrap;gap:10px 24px;padding:9px 12px;background:#fbfcfd;border-bottom:1px solid #e7ebef}
.auspicious-window-list{padding:4px 12px}
.auspicious-window-row{display:grid;grid-template-columns:minmax(180px,.48fr) minmax(210px,.72fr) minmax(260px,1fr);gap:14px;align-items:start;padding:10px 0;border-bottom:1px dotted #d6d9de}
.auspicious-window-row:last-child{border-bottom:0}
.auspicious-window-time{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.auspicious-window-time>strong{font-size:1.08rem}
.auspicious-window-time>small{color:#6b7280;font-weight:700}
.auspicious-window-basis{display:flex;gap:6px;flex-wrap:wrap}
.auspicious-basis-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e8f5e9;border:1px solid #a8d5ad;color:#285e2e;font-weight:700;font-size:.88rem}
.auspicious-avoid-list{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:9px 12px;background:#fff8f5;border-top:1px solid #f0ddd4}
.auspicious-avoid-title{font-weight:800;color:#8b4a35;margin-right:4px}
.auspicious-avoid-chip{display:inline-flex;gap:5px;padding:3px 7px;border-radius:999px;border:1px solid #e3c8bd;color:#754535;font-size:.82rem}
.auspicious-empty{padding:16px;border:1px dashed #cbd3dc;border-radius:9px;text-align:center}
@media(max-width:900px){.auspicious-search-toolbar-main{grid-template-columns:1fr 1fr}.auspicious-window-row{grid-template-columns:1fr}.auspicious-day-head{align-items:flex-start;flex-direction:column}.auspicious-sun{white-space:normal;flex-wrap:wrap}}
@media(max-width:560px){.auspicious-search-toolbar-main{grid-template-columns:1fr}.auspicious-search-options{display:grid}.auspicious-option-group{align-items:flex-start}.auspicious-sun{gap:8px}}

/* v0.8.31 — Daily Panchanga Rahu Kalam callout */
.daily-rahu-kalam {
  display:flex;
  align-items:baseline;
  gap:.42rem;
  padding:.34rem .58rem;
  border:1px solid #d92d20;
  border-radius:999px;
  background:#fff1ef;
  color:#9f1d14;
  white-space:nowrap;
  box-shadow:0 0 0 1px rgba(217,45,32,.04) inset;
}
.daily-rahu-kalam span {
  font-size:.84rem;
  font-weight:900;
  letter-spacing:.01em;
}
.daily-rahu-kalam strong {
  font-size:1.02rem;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.daily-day-today .daily-rahu-kalam {
  border-width:2px;
  background:#ffebe8;
}
@media (max-width:760px) {
  .daily-rahu-kalam { width:max-content; }
}

/* v0.8.32 — Ephemeris section navigation + always-visible study guides */
.ephemeris-section-nav {
  position: sticky;
  top: .35rem;
  z-index: 12;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem;
  margin: .2rem 0 .9rem;
  padding: .48rem .55rem;
  border: 1px solid #d9d2c7;
  border-radius: 10px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 3px 10px rgba(65, 48, 28, .07);
  backdrop-filter: blur(5px);
}
.ephemeris-section-nav-title {
  padding: .28rem .45rem;
  color: #6c6255;
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.ephemeris-section-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: .34rem .62rem;
  border: 1px solid #cfb98f;
  border-radius: 999px;
  background: #fffaf0;
  color: #5e4215;
  font-size: .84rem;
  font-weight: 800;
  line-height: 1.15;
  text-decoration: none;
}
.ephemeris-section-nav a:hover,
.ephemeris-section-nav a:focus-visible {
  background: #f5e8cf;
  border-color: #b68c4f;
  outline: none;
}
.ephemeris-section { scroll-margin-top: 78px; }

.ephemeris-quick-guide {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .32rem;
  margin: .75rem 0 .8rem;
  padding: .72rem .82rem;
  border: 1px solid #d9dee5;
  border-left: 4px solid #9b7a45;
  border-radius: 9px;
  background: #fbfcfd;
  color: #4f5865;
  font-size: .84rem;
  line-height: 1.45;
}
.ephemeris-quick-guide > strong {
  color: #3f3425;
  font-size: .9rem;
  font-weight: 900;
  margin-bottom: .08rem;
}
.ephemeris-quick-guide span { display: block; }
.ephemeris-quick-guide b { color: #303846; }
.ephemeris-panchanga-guide { border-left-color: #647c9a; background: #f8fbff; }
.ephemeris-auspicious-guide { border-left-color: #6f8d50; background: #f9fcf5; }

@media (max-width: 720px) {
  .ephemeris-section-nav {
    position: static;
    align-items: stretch;
  }
  .ephemeris-section-nav-title { width: 100%; }
  .ephemeris-section-nav a { flex: 1 1 190px; justify-content: center; text-align: center; }
  .ephemeris-section { scroll-margin-top: 12px; }
  .ephemeris-quick-guide { font-size: .82rem; }
}

/* v0.8.33 — floating Ephemeris navigation + explicit calculation/rule reference */
.ephemeris-section-nav a.active {
  border-color: #a97a36;
  background: #eedab7;
  color: #3f2b0e;
}

.ephemeris-rule-reference {
  margin: .68rem 0 .85rem;
  border: 1px solid #d9dfe6;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.ephemeris-rule-reference > summary {
  cursor: pointer;
  padding: .66rem .78rem;
  background: #f8fafc;
  color: #394454;
  font-weight: 900;
  user-select: none;
}
.ephemeris-rule-reference[open] > summary { border-bottom: 1px solid #e1e6eb; }
.ephemeris-rule-table-wrap { margin: 0; overflow-x: auto; }
.ephemeris-rule-table {
  width: 100%;
  min-width: 790px;
  margin: 0;
  font-size: .81rem;
  line-height: 1.35;
}
.ephemeris-rule-table th,
.ephemeris-rule-table td {
  padding: .46rem .52rem;
  vertical-align: top;
  white-space: normal;
}
.ephemeris-rule-table th { background: #fbfcfd; }
.rule-good,
.rule-bad,
.rule-caution,
.rule-neutral {
  display: inline-block;
  padding: .08rem .34rem;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}
.rule-good { color: #276238; background: #e7f5ea; border: 1px solid #b7dbbf; }
.rule-bad { color: #89392f; background: #fdeceb; border: 1px solid #ebc0bc; }
.rule-caution { color: #7b5814; background: #fff4d9; border: 1px solid #e9d29b; }
.rule-neutral { color: #43576e; background: #eef3f7; border: 1px solid #cdd9e3; }
.ephemeris-rule-note {
  margin: 0;
  padding: .62rem .78rem .72rem;
  border-top: 1px solid #e5e9ed;
  color: #596372;
  background: #fcfdfe;
  font-size: .8rem;
  line-height: 1.45;
}

@media (max-width: 620px) {
  .ephemeris-rule-table { min-width: 720px; font-size: .78rem; }
}

/* v0.8.34 — compact Auspicious Search quick range */
.auspicious-search-shortcuts{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:9px;
  padding:4px 5px 4px 8px;
  border:1px solid #e0e5eb;
  border-radius:9px;
  background:#fff;
  max-width:100%;
  flex-wrap:wrap;
}

.auspicious-shortcut-btn{
  min-height:32px;
  padding:5px 10px;
  border:1px solid #9b6a38;
  border-radius:7px;
  background:#f7efe5;
  color:#5d3519;
  font-weight:800;
  line-height:1.15;
  cursor:pointer;
  white-space:nowrap;
}
.auspicious-shortcut-btn:hover{background:#efe0cf}
.auspicious-shortcut-btn:focus-visible{outline:2px solid #8a5a2b;outline-offset:2px}
@media (max-width:640px){
  .auspicious-search-shortcuts{max-width:100%;}
  .auspicious-shortcut-btn{white-space:normal;text-align:center;}
}


/* v0.8.35 — Daily Panchanga toolbar alignment + compact action */
.daily-ephemeris-toolbar-main input {
  height:46px;
  min-height:46px;
  margin:0 !important;
}
.daily-ephemeris-run-btn {
  width:auto !important;
  min-width:0 !important;
  height:46px;
  min-height:46px;
  margin:0 !important;
  padding:0.32rem 0.62rem !important;
  white-space:nowrap;
  justify-self:start;
  align-self:start;
}


/* v0.8.37 — Ephemeris section tracking (menu styling is shared with the report below). */
.daily-day-card:not(.daily-day-today) {
  border: 1.5px solid #b7a68b;
  box-shadow: 0 1px 2px rgba(68, 52, 31, .05);
}
.daily-day-card:not(.daily-day-today) > .daily-day-header {
  border-bottom-color: #d4c5ad;
}


/* v0.8.38 — consistent Ephemeris day-card separation + simplified settings labels */
.daily-day-card:not(.daily-day-today), .auspicious-day-card:not(.auspicious-day-today) {
  box-shadow: 0 1px 0 rgba(77, 59, 37, .05);
}

/* v0.8.39 — local SQLite saved-records UI */
.topbar-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.autosave-status{margin:.55rem 0 0;font-size:.84rem;color:#2f6b3d;line-height:1.35;overflow-wrap:anywhere}
.autosave-status.save-warning{color:#a4422e}
.saved-records-dialog{border:0;padding:0;border-radius:16px;width:min(920px,calc(100vw - 24px));max-height:min(88vh,820px);box-shadow:0 24px 80px rgba(0,0,0,.28);background:#fff;color:#111}
.saved-records-dialog::backdrop{background:rgba(15,23,42,.48);backdrop-filter:blur(2px)}
.saved-records-card{display:flex;flex-direction:column;max-height:min(88vh,820px);background:#fff}
.saved-records-heading{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.1rem .85rem;border-bottom:1px solid #d8dee6}
.saved-records-heading h2{margin:0;font-size:1.25rem}
.saved-records-heading p{margin:.3rem 0 0;color:#657083;font-size:.88rem;line-height:1.4}
.saved-records-searchbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:.55rem;padding:.85rem 1.1rem;background:#f7f9fb;border-bottom:1px solid #e2e7ed}
.saved-records-searchbar label{margin:0 0 .72rem;font-weight:700;white-space:nowrap}
.saved-records-searchbar input{margin:0;height:44px}
.saved-records-searchbar button{height:44px;margin:0;padding-inline:1rem}
.saved-records-meta{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 1.1rem;font-size:.78rem;color:#667085;background:#fbfcfd;border-bottom:1px solid #edf0f3;overflow-wrap:anywhere}
.saved-records-results{overflow:auto;padding:.55rem 1.1rem;min-height:170px;max-height:52vh}
.saved-record-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(155px,.8fr) auto;gap:.8rem;align-items:center;padding:.72rem .3rem;border-bottom:1px solid #dde2e8}
.saved-record-row:last-child{border-bottom:0}
.saved-record-main{display:grid;gap:.16rem;min-width:0}
.saved-record-main strong{font-size:1rem;overflow-wrap:anywhere}
.saved-record-main span{font-weight:650;font-variant-numeric:tabular-nums}
.saved-record-main small,.saved-record-history small{color:#6b7280}
.saved-record-history{display:grid;gap:.12rem;font-size:.82rem;color:#4b5563}
.saved-record-buttons{display:flex;gap:.4rem;justify-content:flex-end;flex-wrap:wrap}
.saved-record-buttons button{margin:0;padding:.55rem .7rem;font-size:.8rem;white-space:nowrap}
.saved-records-empty{padding:2.2rem 1rem;text-align:center;color:#6b7280}
.saved-records-actions{display:flex;justify-content:flex-end;padding:.75rem 1.1rem;border-top:1px solid #e2e7ed;background:#fafbfc}
.saved-records-actions button{margin:0}
@media(max-width:760px){
  .topbar-actions{width:100%}.topbar-actions button{flex:1 1 auto}
  .saved-records-searchbar{grid-template-columns:1fr auto}.saved-records-searchbar label{grid-column:1/-1;margin:0}
  .saved-record-row{grid-template-columns:1fr}.saved-record-history{grid-template-columns:1fr auto}.saved-record-buttons{justify-content:flex-start}
  .saved-records-meta{flex-direction:column;gap:.25rem}
}

/* v0.8.40 — header alignment + Shadbala table readability */
.topbar {
  /* Match the left/right content edge used by .layout + panel padding. */
  padding-left: max(2rem, calc((100vw - 1580px) / 2 + 2rem));
  padding-right: max(2rem, calc((100vw - 1580px) / 2 + 2rem));
}

/* Make the six Shadbala component headings read as real column headings. */
.shadbala-table thead th {
  font-weight: 800;
  color: #2f261d;
  font-size: .9rem;
  line-height: 1.18;
}
.shadbala-table thead small {
  font-weight: 700;
  color: #62594c;
  font-size: .72rem;
}
.shadbala-component-grid .study-box > span:first-child {
  display: block;
  font-weight: 800;
  color: #3b2b1b;
  font-size: .88rem;
  line-height: 1.25;
  margin-bottom: 2px;
}

/* .compact-table globally gives th a 54% width; that is wrong for these
   multi-column Shadbala breakdown tables. Reset it and align each column. */
.shadbala-mini-table th,
.shadbala-mini-table td {
  width: auto;
  vertical-align: middle;
  white-space: nowrap;
}
.shadbala-sapta-table {
  table-layout: auto;
}
.shadbala-sapta-table th:nth-child(1),
.shadbala-sapta-table td:nth-child(1) {
  width: 14%;
  text-align: center;
}
.shadbala-sapta-table th:nth-child(2),
.shadbala-sapta-table td:nth-child(2),
.shadbala-sapta-table th:nth-child(3),
.shadbala-sapta-table td:nth-child(3),
.shadbala-sapta-table th:nth-child(4),
.shadbala-sapta-table td:nth-child(4) {
  text-align: left;
}
.shadbala-sapta-table th:nth-child(5),
.shadbala-sapta-table td:nth-child(5) {
  width: 18%;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.shadbala-drik-table {
  table-layout: auto;
}
.shadbala-drik-table th:nth-child(1),
.shadbala-drik-table td:nth-child(1) {
  text-align: left;
}
.shadbala-drik-table th:nth-child(2),
.shadbala-drik-table td:nth-child(2),
.shadbala-drik-table th:nth-child(4),
.shadbala-drik-table td:nth-child(4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.shadbala-drik-table th:nth-child(3),
.shadbala-drik-table td:nth-child(3) {
  width: 10%;
  text-align: center;
  font-weight: 800;
}

@media (max-width: 900px) {
  .topbar {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* Hora Times — traditional single-day Hora / Panchama / Sukshma browser */
.hora-times-panel{margin:18px 0 8px;padding:14px;border:1px solid #d7c7a9;border-radius:12px;background:#fcfaf6}
.hora-times-title-row{display:flex;gap:14px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.hora-times-title-row>div{min-width:0;flex:1 1 520px}
.hora-times-title-row h4{margin:0 0 4px;font-size:1.08rem}
.hora-times-title-row p{margin:0;line-height:1.5}
.hora-date-toolbar{display:grid;grid-template-columns:auto minmax(190px,260px) auto;gap:10px;align-items:end;justify-content:center;margin:14px 0 4px;padding:11px;border:1px solid #e3dccf;border-radius:10px;background:#fff}
.hora-date-picker{display:grid;gap:5px;font-weight:800;font-size:.86rem;color:#594f42}
.hora-date-picker input{min-height:42px}
.hora-nav-btn{min-height:42px;white-space:nowrap;margin:0!important}
.hora-times-results{display:grid;gap:14px;margin-top:12px}
.hora-day-context{display:flex;flex-wrap:wrap;gap:8px 22px;padding:9px 12px;background:#fbfcfd;border-bottom:1px solid #e7ebef;font-size:.91rem}
.hora-times-list{display:grid;gap:8px;padding:12px}
.hora-time-card{border:1px solid #dfe4ea;border-radius:10px;background:#fff;overflow:hidden}
.hora-time-night{background:#fdfcff;border-color:#ddd7eb}
.hora-time-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#fafbfd;cursor:pointer;list-style:none;user-select:none}
.hora-time-head::-webkit-details-marker,.panchama-main-row::-webkit-details-marker{display:none}
.hora-time-night .hora-time-head{background:#f7f5fb}
.hora-time-details[open]>.hora-time-head{border-bottom:1px solid #e5e7eb}
.hora-time-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hora-time-title>strong{font-size:1rem}
.hora-time-right{display:flex;align-items:center;gap:12px;justify-content:flex-end}
.hora-main-time{font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}
.hora-expand-label,.panchama-expand-label{display:inline-flex;align-items:center;gap:5px;color:#5d536f;font-size:.8rem;font-weight:800;white-space:nowrap}
.hora-expand-label::before,.panchama-expand-label::before{content:"▸";display:inline-block;transition:transform .12s ease}
.hora-time-details[open] .hora-expand-label::before,.panchama-details[open] .panchama-expand-label::before{transform:rotate(90deg)}
.hora-planet-name{font-weight:800}
.hora-planet-name small{font-weight:650;color:#6b7280;margin-left:3px}
.hora-main-planet{padding-left:2px}
.hora-phase-badge{display:inline-flex;padding:3px 8px;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;font-weight:800;font-size:.8rem}
.hora-time-night .hora-phase-badge{background:#f1eef9;border-color:#d3c8e8}
.hora-panchama-body{background:#fff}
.panchama-heading{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(190px,.8fr) 1.3fr;gap:10px;padding:7px 12px;background:#fffdf8;border-bottom:1px solid #eee7db;font-size:.78rem;font-weight:800;color:#6b6257}
.panchama-list{padding:0 12px 4px}
.panchama-row{border-bottom:1px dotted #d9dde2}
.panchama-row:last-child{border-bottom:0}
.panchama-main-row{display:grid;grid-template-columns:28px minmax(125px,.8fr) minmax(180px,.8fr) minmax(220px,1.3fr);gap:8px 10px;align-items:center;padding:8px 0;cursor:pointer;list-style:none;user-select:none}
.panchama-details[open]>.panchama-main-row{font-weight:750}
.hora-sub-index{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#f2f4f7;font-size:.78rem;font-weight:850;color:#596273}
.hora-sub-time{font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.sukshma-sub-list{display:grid;gap:2px;margin:0 0 7px 36px;padding:6px 8px;border-left:2px solid #d9d1e7;background:#faf8fd;border-radius:0 7px 7px 0}
.sukshma-sub-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(175px,1fr);gap:8px;padding:3px 0;font-size:.86rem}
@media(max-width:820px){
  .hora-date-toolbar{grid-template-columns:1fr 1fr}.hora-date-picker{grid-column:1 / -1;grid-row:1}.hora-nav-btn{width:100%}
  .hora-time-head{align-items:flex-start;flex-direction:column}.hora-time-right{width:100%;justify-content:space-between;flex-wrap:wrap}.hora-main-time{white-space:normal}
  .panchama-heading{display:none}.panchama-main-row{grid-template-columns:28px 1fr minmax(160px,1fr)}.panchama-expand-label{grid-column:2 / -1}
}
@media(max-width:560px){
  .hora-date-toolbar{grid-template-columns:1fr}.hora-date-picker,.hora-nav-btn{grid-column:1}.hora-date-picker{grid-row:auto}.hora-time-right{align-items:flex-start;flex-direction:column;gap:5px}
  .panchama-main-row{grid-template-columns:28px 1fr}.hora-sub-time,.panchama-expand-label{grid-column:2;white-space:normal}.sukshma-sub-list{margin-left:28px}
  .sukshma-sub-row{grid-template-columns:1fr}.hora-times-list{padding:8px}.hora-day-context{padding:8px}
}

/* Embedded traditional Hora → Panchama → Sukshma hierarchy inside auspicious windows */
.auspicious-window-hora-cell{min-width:0}
.auspicious-hora-cell-label{font-size:.75rem;font-weight:800;color:#6b7280;margin-bottom:4px;text-transform:none}
.auspicious-window-horas{display:grid;gap:5px}
.auspicious-hora-details,.auspicious-panchama-details{border:1px solid #ddd6c8;border-radius:7px;background:#fff}
.auspicious-hora-details>summary,.auspicious-panchama-details>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(90px,1fr) auto auto;gap:8px;align-items:center;padding:6px 8px}
.auspicious-hora-details>summary::-webkit-details-marker,.auspicious-panchama-details>summary::-webkit-details-marker{display:none}
.auspicious-hora-details>summary:before,.auspicious-panchama-details>summary:before{content:"▸";grid-column:1;position:absolute;opacity:0}
.auspicious-hora-planet{font-weight:800}.auspicious-hora-planet small,.auspicious-panchama-details small,.auspicious-sukshma-row small{color:#6b7280;font-weight:600}
.auspicious-hora-time{font-size:.86rem;font-weight:700;white-space:nowrap}.hora-drill-label{font-size:.72rem;color:#6b7280;white-space:nowrap}
.auspicious-panchama-list{display:grid;gap:4px;padding:5px 7px 7px;border-top:1px solid #ece7dc;background:#faf9f6}
.auspicious-panchama-details{background:#fff}
.auspicious-panchama-details>summary{grid-template-columns:minmax(90px,1fr) auto auto;font-size:.84rem;padding:5px 7px}
.auspicious-sukshma-list{padding:4px 8px 7px;border-top:1px dotted #ddd;display:grid;gap:3px}
.auspicious-sukshma-row{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:#4b5563}
@media(max-width:1100px){.auspicious-window-row{grid-template-columns:minmax(180px,.55fr) 1fr}.auspicious-window-hora-cell{grid-column:1/-1}}
@media(max-width:560px){.auspicious-hora-details>summary,.auspicious-panchama-details>summary{grid-template-columns:1fr auto}.hora-drill-label{grid-column:1/-1}.auspicious-sukshma-row{align-items:flex-start;flex-direction:column;gap:1px}}

/* v0.8.46 — compact zebra-styled embedded Hora/Panchama rows */
.auspicious-hora-cell-label{
  font-size:.88rem;
  font-weight:850;
  margin-bottom:5px;
}
.auspicious-window-horas{gap:4px}
.auspicious-hora-details{overflow:hidden}
.auspicious-hora-details:nth-child(odd)>summary{background:#fff}
.auspicious-hora-details:nth-child(even)>summary{background:#f5f2eb}
.auspicious-hora-details>summary{
  grid-template-columns:minmax(105px,max-content) max-content max-content;
  justify-content:start;
  column-gap:12px;
  padding:6px 8px;
}
.auspicious-hora-planet{
  font-size:.94rem;
  line-height:1.15;
  font-weight:800;
}
.auspicious-hora-planet small{
  font-size:.78rem;
  margin-left:3px;
}
.auspicious-hora-time{
  font-size:.86rem;
  min-width:0;
}
.auspicious-panchama-details:nth-child(odd)>summary{background:#fff}
.auspicious-panchama-details:nth-child(even)>summary{background:#f3f1ec}
@media(max-width:560px){
  .auspicious-hora-details>summary{
    grid-template-columns:minmax(96px,max-content) max-content;
    column-gap:9px;
  }
  .hora-drill-label{grid-column:1/-1}
}

/* v0.8.49 — stronger Hora header and brighter alternating Hora rows */
.auspicious-hora-cell-label{
  display:inline-block;
  padding:4px 10px;
  margin-bottom:6px;
  border:1px solid #d6b977;
  border-radius:6px;
  background:#f3dfad;
  color:#4f3812;
  font-size:.9rem;
  font-weight:850;
  line-height:1.2;
}
.auspicious-hora-details:nth-child(odd)>summary{
  background:#fff1c9;
}
.auspicious-hora-details:nth-child(even)>summary{
  background:#dff2ff;
}
.auspicious-hora-details:nth-child(odd){
  border-color:#e2c77d;
}
.auspicious-hora-details:nth-child(even){
  border-color:#9fcde8;
}
.auspicious-hora-details[open]>summary{
  box-shadow:inset 0 -1px 0 rgba(70,55,30,.12);
}

/* v0.8.49 — embedded Hora palette aligned with Chara Choghadiya + tighter Panchama timing */
.auspicious-hora-cell-label{
  background:#e8f5e9;
  border-color:#a8d5ad;
  color:#285e2e;
}
.auspicious-hora-details:nth-child(odd)>summary{
  background:#f2f8f1;
}
.auspicious-hora-details:nth-child(even)>summary{
  background:#fbf7ef;
}
.auspicious-hora-details:nth-child(odd){
  border-color:#b9d6bb;
}
.auspicious-hora-details:nth-child(even){
  border-color:#ded0b8;
}
.auspicious-panchama-details>summary{
  grid-template-columns:max-content max-content max-content;
  justify-content:start;
  column-gap:7px;
}
.auspicious-panchama-details:nth-child(odd)>summary{
  background:#fafcf8;
}
.auspicious-panchama-details:nth-child(even)>summary{
  background:#f5f2ec;
}
@media(max-width:560px){
  .auspicious-panchama-details>summary{
    grid-template-columns:max-content max-content;
    justify-content:start;
    column-gap:6px;
  }
  .auspicious-panchama-details .hora-drill-label{grid-column:1/-1}
}


/* v0.8.49 — very light yellow Hora rows + aligned Sukshma timing */
.auspicious-hora-details:nth-child(odd)>summary{
  background:#fffdf2;
}
.auspicious-hora-details:nth-child(even)>summary{
  background:#fff8df;
}
.auspicious-hora-details:nth-child(odd){
  border-color:#e8ddb5;
}
.auspicious-hora-details:nth-child(even){
  border-color:#e3d39a;
}
.auspicious-sukshma-row{
  display:grid;
  grid-template-columns:max-content max-content;
  justify-content:start;
  align-items:center;
  column-gap:7px;
}
.auspicious-sukshma-row>span:nth-child(2){
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
@media(max-width:560px){
  .auspicious-sukshma-row{
    grid-template-columns:max-content max-content;
    justify-content:start;
    column-gap:6px;
  }
}


/* v0.8.50 — Auspicious Search seven-day navigation */
.auspicious-search-shortcuts{
  flex-wrap:wrap;
  max-width:100%;
}
@media (max-width:640px){
  .auspicious-shortcut-btn{white-space:normal;}
}


/* v0.8.54 — align embedded Panchama/Sukshma times to the parent Hora time column */
.auspicious-hora-details>summary,
.auspicious-panchama-details>summary,
.auspicious-sukshma-row{
  grid-template-columns:105px max-content max-content;
  justify-content:start;
  column-gap:12px;
}
.auspicious-panchama-list{
  padding-left:0;
  padding-right:0;
}
.auspicious-panchama-details>summary{
  padding-left:8px;
  padding-right:8px;
}
.auspicious-sukshma-list{
  padding-left:0;
  padding-right:0;
}
.auspicious-sukshma-row{
  padding-left:8px;
  padding-right:8px;
}
.auspicious-panchama-details>summary>span:nth-child(1),
.auspicious-sukshma-row>span:nth-child(1){
  min-width:0;
}
.auspicious-panchama-details>summary>span:nth-child(2),
.auspicious-sukshma-row>span:nth-child(2){
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
@media(max-width:560px){
  .auspicious-hora-details>summary,
  .auspicious-panchama-details>summary,
  .auspicious-sukshma-row{
    grid-template-columns:96px max-content;
    column-gap:9px;
  }
  .auspicious-panchama-details .hora-drill-label{grid-column:1/-1}
}

/* v0.9.3 — independent desktop birth-form scrolling.
   Keep the input card usable while the long report on the right remains at its
   own scroll position. Mobile/tablet layouts continue to use normal page flow. */
@media (min-width:901px){
  .form-panel{
    max-height:calc(100vh - 2rem);
    max-height:calc(100dvh - 2rem);
    overflow-y:auto;
    overscroll-behavior-y:contain;
    scrollbar-gutter:stable;
  }
}
@media (max-width:900px){
  .form-panel{
    max-height:none;
    overflow:visible;
    scrollbar-gutter:auto;
  }
}

/* v0.9.3 — public web authentication + quota status. */
.auth-gate{position:fixed;inset:0;z-index:5000;background:rgba(20,28,36,.72);display:grid;place-items:center;padding:18px}
.auth-gate.hidden{display:none}.auth-card{width:min(480px,100%);background:#fff;border-radius:14px;border:1px solid #c8d1d8;padding:24px;box-shadow:0 18px 60px rgba(0,0,0,.28)}.auth-card h2{margin:0 0 6px}.auth-step{margin-top:16px}.auth-actions{display:flex;gap:10px;flex-wrap:wrap}.auth-actions .primary,.auth-actions .secondary{width:auto;margin-top:.8rem}.auth-code-sent{background:#eef6f1;border:1px solid #cce2d4;border-radius:8px;padding:9px 11px}.auth-note{font-size:.86rem;color:var(--muted);margin-bottom:0}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-wrap:wrap}.account-status{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.account-email{font-size:.88rem;opacity:.88}.quota-badge{display:inline-flex;align-items:center;padding:.38rem .65rem;border-radius:999px;background:#e8f4ed;color:#175d3e;font-size:.88rem;font-weight:800}.topbar .secondary.compact{padding:.45rem .65rem;font-size:.88rem}.quota-inline{margin:.75rem 0 .15rem;padding:.62rem .7rem;border-radius:8px;background:#edf7f1;border:1px solid #cce5d6;color:#165a3c;font-size:.9rem;font-weight:700}.quota-inline.quota-empty{background:#fff0f0;border-color:#edc8c8;color:#9d2929}
@media(max-width:900px){.topbar-actions{justify-content:flex-start}.account-status{width:100%}}
/* v0.9.5 Super User navigation */
.topbar-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.topbar-link.hidden{display:none}
.public-feature-hidden{display:none!important}

/* v0.9.8 saved-chart replay / educational replay */
.admin-replay-banner{margin:0 0 .8rem;padding:.72rem .85rem;border:1px solid #d9c47a;border-radius:10px;background:#fff9df;color:#6b5110;font-weight:750;line-height:1.4}
.admin-replay-banner.hidden{display:none}
.saved-record-buttons{flex-wrap:wrap}

/* v0.9.12 — inline Sukshma expansion beneath classic Vidasha rows */
.legacy-vidasha-toggle{cursor:pointer}
.legacy-vidasha-toggle:hover{background:rgba(148,91,20,.055)}
.legacy-vidasha-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.legacy-sukshma-list{
  --sukshma-label-width:112px;
  position:relative;
  margin:0 0 .18rem 0;
  padding:0;
}
.legacy-sukshma-list::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:var(--sukshma-label-width);
  width:0;
  border-left:2px solid #ddd5c7;
  pointer-events:none;
}
.legacy-sukshma-section-label{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:var(--sukshma-label-width);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  text-align:center;
  font-weight:700;
  line-height:1.25;
  color:#2d2924;
  box-sizing:border-box;
  pointer-events:none;
  background:var(--sukshma-accent-bg);
}
.legacy-sukshma-line{
  display:grid;
  grid-template-columns:minmax(205px,1fr) 205px 20px 205px 48px 11ch 20px 11ch;
  gap:8px;
  align-items:baseline;
  padding:.18rem 0;
  border-bottom:1px dotted #e4e0d8;
  font-size:.86rem;
  line-height:1.4;
  font-variant-numeric:tabular-nums;
}
/* v0.9.30 — one-step-deeper mint/green Sukshma palette.
   The expanded parent Vidasha row shares the section accent so its ownership
   of the open Sukshma block is immediately visible. */
.legacy-vidasha-block{
  --sukshma-accent-bg:#cfe8d6;
  --sukshma-row-a:#edf7f0;
  --sukshma-row-b:#e1f1e6;
}
.legacy-vidasha-toggle[aria-expanded="true"],
.legacy-vidasha-toggle[aria-expanded="true"]:hover{background:var(--sukshma-accent-bg)}
.legacy-sukshma-line:nth-child(even){background:var(--sukshma-row-b)}
.legacy-sukshma-line:nth-child(odd){background:var(--sukshma-row-a)}
.legacy-sukshma-line:last-child{border-bottom:0}
.legacy-sukshma-line .sukshma-lord{
  min-width:0;
  padding-left:calc(var(--sukshma-label-width) + 12px);
  font-weight:700;
}
.legacy-sukshma-line .sukshma-start,
.legacy-sukshma-line .sukshma-end,
.legacy-sukshma-line .age{white-space:nowrap;font-family:Consolas,"Courier New",monospace}
.legacy-sukshma-line .age-label{text-align:right;color:#555}
.legacy-sukshma-line .arrow{text-align:center;font-weight:400}
@media(max-width:1200px){
  .legacy-sukshma-list{--sukshma-label-width:104px}
  .legacy-sukshma-line{grid-template-columns:minmax(185px,1fr) 190px 16px 190px 42px 11ch 16px 11ch;font-size:.82rem;gap:5px}
  .legacy-sukshma-line .sukshma-lord{padding-left:calc(var(--sukshma-label-width) + 9px)}
}
@media(max-width:900px){
  .legacy-sukshma-list{--sukshma-label-width:0;margin-left:10px;padding-left:8px}
  .legacy-sukshma-list::after{display:none}
  .legacy-sukshma-section-label{position:static;width:auto;display:block;padding:.3rem 0 .15rem;text-align:left}
  .legacy-sukshma-line{grid-template-columns:1fr 18px 1fr;gap:4px 6px;padding:.38rem 0}
  .legacy-sukshma-line .sukshma-lord{grid-column:1/-1;padding-left:0}
  .legacy-sukshma-line .age-label{grid-column:1/-1;text-align:left;font-size:.72rem;color:#666}
}
@media print{
  .legacy-sukshma-list{display:none!important}
}

/* v0.9.26 — controlled classic Dasha timestamp alignment.
   Keep the parent Dasha grid unchanged; only split each displayed timestamp
   into fixed date / Sinhala AM-PM / HH:MM tracks. */
.classic-dasha-datetime{
  display:grid;
  grid-template-columns:10ch 3.6em 5ch;
  column-gap:.32em;
  align-items:baseline;
  justify-content:start;
  width:100%;
  min-width:0;
  white-space:nowrap;
  font-family:Consolas,"Courier New",monospace;
  font-variant-numeric:tabular-nums;
}
.classic-dasha-datetime .classic-dasha-date{
  text-align:left;
}
.classic-dasha-datetime .classic-dasha-ampm{
  text-align:right;
  font-family:"Noto Sans Sinhala","Iskoola Pota",sans-serif;
  white-space:nowrap;
}
.classic-dasha-datetime .classic-dasha-clock{
  text-align:left;
}

/* v0.9.26 — controlled classic Dasha age formatting/alignment only.
   Keep the accepted v0.9.26 hierarchy and timestamp layout unchanged. */
.legacy-dasha-line .age,
.legacy-sukshma-line .age{
  min-width:11ch;
  text-align:right;
  font-variant-numeric:tabular-nums;
}


/* v1.21.3 — shared floating navigation for Horoscope Report and Ephemeris.
   Keep both menus styled identically across screen sizes and print. */
.classic-report-section { scroll-margin-top: 12px; }
.classic-floating-nav, .ephemeris-floating-nav {
  position: fixed;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1080;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  width: 124px;
  padding: .48rem;
  border: 1px solid #b9c5d1;
  border-radius: 12px;
  background: rgba(248, 250, 252, .97);
  box-shadow: 0 7px 22px rgba(30, 42, 55, .16);
  backdrop-filter: blur(6px);
  transition: width .14s ease, padding .14s ease, background .14s ease, box-shadow .14s ease;
}
.classic-floating-toggle, .ephemeris-floating-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .32rem;
  min-height: 36px;
  padding: .38rem .5rem;
  border: 1px solid #6e8398;
  border-radius: 8px;
  background: #e8eef4;
  color: #243647;
  font: inherit;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}
.classic-floating-toggle:hover,
.classic-floating-toggle:focus-visible,
.ephemeris-floating-toggle:hover,
.ephemeris-floating-toggle:focus-visible {
  background: #dce6ef;
  border-color: #526b82;
  outline: none;
}
.classic-floating-toggle-icon, .ephemeris-floating-toggle-icon { font-size: 1rem; line-height: 1; }
.classic-floating-nav a, .ephemeris-floating-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: .36rem .42rem;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #334a60;
  background: #fff;
  font-size: .78rem;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
}
.classic-floating-nav a:hover,
.classic-floating-nav a:focus-visible,
.classic-floating-nav a.active,
.ephemeris-floating-nav a:hover,
.ephemeris-floating-nav a:focus-visible,
.ephemeris-floating-nav a.active {
  border-color: #7289a0;
  background: #e4ebf2;
  color: #1e3448;
  outline: none;
}
.classic-floating-nav .classic-top-link, .ephemeris-floating-nav .ephemeris-top-link {
  margin-top: .12rem;
  border-top-color: #c6d0da;
  background: #f2f5f8;
}
.classic-floating-nav.is-collapsed, .ephemeris-floating-nav.is-collapsed {
  width: auto;
  padding: 0;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.classic-floating-nav.is-collapsed > a,
.ephemeris-floating-nav.is-collapsed > a {
  display: none;
}
.classic-floating-nav.is-collapsed .classic-floating-toggle,
.ephemeris-floating-nav.is-collapsed .ephemeris-floating-toggle {
  min-width: 58px;
  border-radius: 999px;
  background: rgba(248, 250, 252, .97);
  box-shadow: 0 4px 14px rgba(30, 42, 55, .16);
}
@media (max-width: 620px) {
  .classic-floating-nav, .ephemeris-floating-nav {
    top: auto;
    right: 10px;
    bottom: 76px;
    transform: none;
    max-width: calc(100vw - 20px);
  }
  .classic-floating-nav:not(.is-collapsed), .ephemeris-floating-nav:not(.is-collapsed) { width: min(230px, calc(100vw - 20px)); }
}
@media print {
  .classic-floating-nav, .ephemeris-floating-nav { display: none !important; }
}

/* v0.9.38 — read-only public horoscope share viewer and share-link manager. */
.share-horoscope-dialog{width:min(780px,calc(100vw - 28px));max-height:min(86vh,860px);padding:0;border:1px solid #c7d0d8;border-radius:14px;background:#fff;box-shadow:0 24px 80px rgba(20,30,40,.28)}
.share-horoscope-dialog::backdrop{background:rgba(24,35,46,.48)}
.share-dialog-shell{padding:20px;display:grid;gap:14px}.share-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.share-dialog-heading h2{margin:0 0 4px}.share-privacy-note{padding:11px 13px;border:1px solid #ead7ad;border-radius:9px;background:#fff8e8;color:#604a1d;font-size:.9rem;line-height:1.45}.share-current-card{border:1px solid #d6dde3;border-radius:10px;padding:13px;background:#f9fbfc}.share-current-card h3{margin:0 0 5px}.share-current-card p{margin:0 0 10px}.share-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.share-actions .primary{width:auto;margin:0}.share-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.share-list{display:grid;gap:9px;max-height:320px;overflow:auto}.share-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(150px,.8fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid #dde3e8;border-radius:10px;background:#fff}.share-row-main,.share-row-meta{display:grid;gap:2px;min-width:0}.share-row-main span,.share-row-main small,.share-row-meta span,.share-row-meta small{overflow-wrap:anywhere}.share-row-main small,.share-row-meta{color:#66727e;font-size:.83rem}.share-empty{padding:20px;text-align:center;border:1px dashed #cbd4dc;border-radius:10px;color:#687580}.share-limit-note{font-size:.9rem;color:#8a4d14}.share-dialog-footer{display:flex;justify-content:flex-end;padding-top:3px}
.shared-horoscope-view{margin:0;background:#eef2f5;color:#17212b}.shared-view-header{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px max(18px,calc((100vw - 1120px)/2));background:#1f2b37;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12)}.shared-view-header>div{display:flex;align-items:baseline;gap:12px}.shared-view-header strong{font-size:1.1rem}.shared-view-header span,.shared-view-header small{opacity:.82}.shared-report-shell{width:min(1120px,calc(100vw - 28px));margin:18px auto 42px}.shared-report-shell #screen-classic{display:block}.shared-report-shell .report-page{box-shadow:0 2px 12px rgba(24,36,48,.08)}.shared-view-error{padding:16px;border:1px solid #e1b7b7;border-radius:10px;background:#fff0f0;color:#922;margin-bottom:14px}.shared-horoscope-view .dasha-jump-link{cursor:default}.shared-horoscope-view .dasha-jump-link:hover{background:inherit}.share-view-unavailable .shared-report-shell #screen-classic{display:none!important}
@media(max-width:760px){.share-row{grid-template-columns:1fr}.shared-view-header{align-items:flex-start;flex-direction:column;gap:4px}.shared-view-header>div{flex-wrap:wrap}.shared-report-shell{width:min(100% - 14px,1120px);margin-top:8px}.share-dialog-shell{padding:14px}}


/* v0.9.43 — Nakshatra information readability.
   Keep field labels bold, render values at normal weight, and add roughly
   four character spaces between the label and value columns. */
.nakshatra-box > div {
  column-gap: 4ch;
}
.nakshatra-box > div > span {
  font-weight: 700;
}
.nakshatra-box > div > strong {
  font-weight: 400;
}

@media print {
  .nakshatra-box > div {
    column-gap: 4ch !important;
  }
  .nakshatra-box > div > span {
    font-weight: 700 !important;
  }
  .nakshatra-box > div > strong {
    font-weight: 400 !important;
  }
}


/* v0.9.44 — administrator-configurable plain-text footer note. */
.configurable-footer-note{
  max-width:1100px;
  margin:0 auto .45rem;
  padding:.65rem 1rem;
  border-top:1px solid var(--line);
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.45;
  text-align:center;
}
.shared-site-footer{width:min(1120px,calc(100vw - 28px));margin:0 auto 24px;}
.configurable-print-footer{display:none;}
@media print{
  .configurable-print-footer{
    display:block!important;
    position:fixed!important;
    left:8mm!important;
    right:8mm!important;
    bottom:1.5mm!important;
    z-index:99999!important;
    padding-top:1.2mm!important;
    border-top:.2mm solid rgba(80,80,80,.22)!important;
    background:#fff!important;
    color:#666!important;
    font-size:7.5pt!important;
    line-height:1.25!important;
    text-align:center!important;
    white-space:pre-wrap!important;
    overflow-wrap:anywhere!important;
    pointer-events:none!important;
  }
}

.configurable-print-footer:empty{display:none!important}


/* v0.9.45 — traditional Sri Lankan Hora hierarchy and Visha Panchama marker */
.visha-panchama-badge{
  display:inline-flex;align-items:center;margin-left:7px;padding:2px 6px;border-radius:999px;
  border:1px solid #d9a1a1;background:#fff0f0;color:#8d2525;font-size:.7rem;font-weight:850;line-height:1.2;
}
.panchama-details.is-visha>.panchama-main-row{background:#fff8f8;}
.auspicious-panchama-details.is-visha>summary{background:#fff5f5!important;}
.sukshma-sub-list{display:grid;gap:2px;margin:0 0 7px 36px;padding:6px 8px;border-left:2px solid #d9d1e7;background:#faf8fd;border-radius:0 7px 7px 0;}
.sukshma-sub-row{display:grid;grid-template-columns:28px minmax(110px,.7fr) minmax(175px,1fr);gap:8px;padding:3px 0;font-size:.86rem;align-items:center;}
@media(max-width:560px){
  .sukshma-sub-list{margin-left:28px;}
  .sukshma-sub-row{grid-template-columns:28px 1fr;}
  .sukshma-sub-row .hora-sub-time{grid-column:2;}
}

/* v0.9.47 — top-level Sri Lankan Porondam / marriage-matching page. */
.porondam-screen{max-width:1180px;margin:0 auto}
.porondam-heading{margin-bottom:.75rem}
.porondam-intro-note{display:flex;flex-direction:column;gap:.22rem;padding:.8rem .9rem;margin-bottom:1rem;border:1px solid #d5dde4;border-radius:12px;background:#f7f9fb}
.porondam-intro-note strong{font-size:1rem}.porondam-intro-note span{font-weight:700}.porondam-intro-note small{color:var(--muted)}
.porondam-input-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
.porondam-person-card{border:1px solid #d8dfe5;border-radius:12px;padding:1rem;background:#fff}
.porondam-person-card h3{margin:.05rem 0 .8rem}
.porondam-person-card label{display:block;margin:.65rem 0 0;font-weight:700}
.porondam-person-card input,.porondam-person-card select{width:100%;margin-top:.3rem}
.porondam-current-summary{display:grid;gap:.28rem;padding:.75rem;border-radius:9px;background:#f4f7fa;border:1px solid #e1e7ec;min-height:84px}
.porondam-current-summary strong{font-size:1.04rem}.porondam-current-summary span{color:#4f5d6a}
.porondam-two-col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.porondam-actions{display:flex;align-items:center;gap:1rem;margin:1rem 0}.porondam-actions .primary{width:auto;margin:0}.porondam-actions .error{margin:0}
.porondam-summary-card{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1rem;border:1px solid #d8dfe5;border-radius:12px;background:#fff;margin-bottom:1rem}
.porondam-couple{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.porondam-profile{padding:.7rem .8rem;background:#f7f9fb;border-radius:9px}.porondam-profile strong{display:block}.porondam-profile small{display:block;color:var(--muted);margin-top:.18rem}
.porondam-counts{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.porondam-count{padding:.42rem .68rem;border-radius:999px;font-weight:800;white-space:nowrap}.porondam-count.good{background:#e6f5ea;color:#175c33}.porondam-count.medium{background:#fff5d7;color:#755807}.porondam-count.bad{background:#fde9e7;color:#982d24}
.porondam-table-wrap{overflow-x:auto;border:1px solid #d8dfe5;border-radius:12px;background:#fff}.porondam-table{width:100%;border-collapse:collapse}.porondam-table th,.porondam-table td{padding:.72rem .78rem;border-bottom:1px solid #e5eaee;vertical-align:top;text-align:left}.porondam-table th{background:#f5f7f9}.porondam-table tr:last-child td{border-bottom:0}.porondam-rule-title{font-weight:800}.porondam-status{display:inline-flex;padding:.26rem .55rem;border-radius:999px;font-weight:800;min-width:62px;justify-content:center}.porondam-status.good{background:#e6f5ea;color:#175c33}.porondam-status.medium{background:#fff5d7;color:#755807}.porondam-status.bad{background:#fde9e7;color:#982d24}.porondam-rule-detail{line-height:1.45}.porondam-disclaimer{margin-top:.8rem;padding:.75rem .85rem;border-left:4px solid #b8c3cc;background:#f7f9fb;color:#4c5965}.porondam-learning{margin-top:1rem}
@media(max-width:850px){.porondam-input-grid,.porondam-couple,.porondam-summary-card{grid-template-columns:1fr}.porondam-counts{justify-content:flex-start}.porondam-two-col{grid-template-columns:1fr}.porondam-actions{align-items:stretch;flex-direction:column}.porondam-actions .primary{width:100%}}

/* v0.9.48 — symmetric Porondam input cards with current/saved/manual sources. */
.porondam-source-tools{display:grid;gap:.55rem;margin:0 0 .75rem;padding:.7rem;border:1px solid #e1e7ec;border-radius:9px;background:#f7f9fb}
.porondam-source-tools label{margin:0!important}.porondam-source-tools .secondary.compact{justify-self:start}
.porondam-source-tools .field-help{margin:0;color:var(--muted)}

/* v0.9.49 — comprehensive, collapsed Porondam learning/reference guide. */
.porondam-guide{margin-top:1rem;border-color:#cbd6df;background:#fbfcfd}
.porondam-guide>summary{font-weight:850;font-size:1.02rem}
.porondam-guide-intro{margin:.8rem 0 1rem;padding:.85rem .95rem;border:1px solid #dde5eb;border-radius:10px;background:#fff;line-height:1.58}
.porondam-guide-intro p{margin:.38rem 0}
.porondam-guide-caution{padding:.65rem .75rem;border-left:4px solid #b18a3b;background:#fff9e9;border-radius:0 8px 8px 0}
.porondam-guide-list{display:grid;gap:.55rem}
.porondam-guide-rule{border:1px solid #d9e1e7;border-radius:10px;background:#fff;overflow:hidden}
.porondam-guide-rule>summary{padding:.72rem .85rem;font-weight:850;cursor:pointer;background:#f5f8fa;list-style-position:inside}
.porondam-guide-rule[open]>summary{border-bottom:1px solid #e2e8ed;background:#eef4f7}
.porondam-guide-body{padding:.75rem .9rem;line-height:1.6}
.porondam-guide-body p{margin:.38rem 0 .62rem}
.porondam-guide-body p:last-child{margin-bottom:.15rem}
.porondam-guide-body strong{font-weight:850}
.porondam-vedha-list{padding:.65rem .75rem;border-radius:8px;background:#f7f9fb}
@media(max-width:620px){
  .porondam-guide-intro,.porondam-guide-body{padding:.7rem .75rem}
  .porondam-guide-rule>summary{padding:.68rem .72rem}
}

/* v0.9.52 — structural Porondam alignment.
   Role selection is shared above both cards, leaving the two cards with identical
   row structure. Source-note space is reserved equally so manual fields line up. */
.porondam-role-setting{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;margin:0 0 .8rem;padding:.65rem .8rem;border:1px solid #d8dfe5;border-radius:10px;background:#f7f9fb}
.porondam-role-setting label{font-weight:800;margin:0}.porondam-role-setting select{margin-left:.45rem;min-width:150px}
.porondam-role-setting small{color:var(--muted);padding-bottom:.22rem}
.porondam-source-tools{grid-template-rows:auto minmax(2.5em,auto)}
.porondam-source-tools .field-help{min-height:2.5em;display:block}
.porondam-person-entry{padding-top:0}
@media(max-width:850px){.porondam-role-setting{align-items:stretch;flex-direction:column}.porondam-role-setting select{display:block;margin:.35rem 0 0;width:100%}.porondam-source-tools{grid-template-rows:auto auto}.porondam-source-tools .field-help{min-height:0}.porondam-person-entry{padding-top:0!important}}

/* v0.9.53 — complete Visi Porondam, Kuja/Bhauma and Dasha Sandhi results. */
.porondam-result-section{margin:1rem 0}
.porondam-result-section>h3{margin:.1rem 0 .55rem}
.porondam-special-card{padding:1rem;border:1px solid #d8dfe5;border-radius:12px;background:#fff}
.porondam-special-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}
.porondam-special-heading h3{margin:0}
.porondam-special-card>p{margin:.35rem 0 .75rem;line-height:1.55}
.porondam-special-card>small{display:block;margin-top:.7rem;color:var(--muted);line-height:1.45}
.porondam-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.porondam-analysis-person{display:grid;gap:.2rem;padding:.7rem .8rem;border-radius:9px;background:#f7f9fb;border:1px solid #e2e7eb}
.porondam-analysis-person small{color:var(--muted)}
.porondam-sandhi-list{margin:.6rem 0 0;padding-left:1.3rem;line-height:1.55}
@media(max-width:850px){.porondam-analysis-grid{grid-template-columns:1fr}.porondam-special-heading{align-items:flex-start;flex-direction:column}}


/* v0.9.58 — clearer Porondam result cards on screen. */
#porondamResults>.porondam-result-section:not(.porondam-special-card){border:1px solid #d8dfe5;border-radius:12px;background:#fff;overflow:hidden}
#porondamResults>.porondam-result-section:not(.porondam-special-card)>h3{margin:0;padding:.78rem .9rem;background:#f7f9fb;border-bottom:1px solid #e1e7ec}
#porondamResults>.porondam-result-section:not(.porondam-special-card) .porondam-table-wrap{border:0;border-radius:0}
#porondamResults>.porondam-result-section:not(.porondam-special-card) .porondam-table th{background:#fbfcfd}

/* v0.9.58 — dedicated four-page A4 Porondam compatibility report.
   The server/desktop PDF renderer uses screen media, so these are normal rules.
   Each explicit page owns its whitespace, footer and page number rather than
   relying on browser pagination heuristics. */
.porondam-actions #porondamPdfBtn{margin:0;white-space:nowrap}
.porondam-print-report{font-family:"Noto Sans Sinhala","Iskoola Pota",Arial,sans-serif;color:#111;background:#fff;line-height:1.4;margin:0;padding:0}
.porondam-print-page{box-sizing:border-box;width:100%;height:210mm;padding:14mm 15mm 12mm;display:flex;flex-direction:column;background:#fff;break-after:page;page-break-after:always;overflow:hidden}
.porondam-print-page:last-child{break-after:auto;page-break-after:auto}
.porondam-print-page-body{min-height:0}
.porondam-print-heading{text-align:center;border-bottom:2px solid #222;padding:0 0 8px;margin:0 0 12px}
.porondam-print-heading h1{margin:0;font-size:18pt;line-height:1.2}.porondam-print-heading p{margin:4px 0 0;color:#59636d;font-size:9.2pt}
.porondam-print-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:2px solid #283540;padding-bottom:7px;margin-bottom:12px}
.porondam-print-section-heading span{font-size:12.5pt;font-weight:850}.porondam-print-section-heading small{font-size:8.5pt;color:#65717c}
.porondam-print-people{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px}
.porondam-print-person{border:1px solid #cfd6dc;border-radius:9px;padding:10px 12px}
.porondam-print-person h3{margin:0 0 7px;border-bottom:1px solid #dde2e6;padding-bottom:5px;font-size:11.2pt}
.porondam-print-person dl{margin:0;display:grid;gap:3px}.porondam-print-person dl div{display:grid;grid-template-columns:142px 1fr;gap:10px;align-items:baseline}
.porondam-print-person dt{font-weight:800;font-size:9.4pt}.porondam-print-person dd{margin:0;font-weight:400;font-size:9.4pt}
.porondam-print-summary-block{border:1px solid #d8dfe5;border-radius:10px;padding:12px 14px;background:#fbfcfd}
.porondam-print-summary-block h2{margin:0 0 10px;font-size:12pt}
.porondam-print-counts{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.porondam-print-counts .porondam-count{font-size:10pt;padding:5px 10px}
.porondam-print-check-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.porondam-print-check-summary>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e0e5e9;border-radius:8px;background:#fff}
.porondam-print-check-summary strong{font-size:9.6pt}.porondam-print-summary-note{margin:12px 0 0;color:#5c6872;font-size:8.8pt;text-align:center}
.porondam-print-table-section h2{margin:0 0 10px;font-size:14pt;line-height:1.25}
.porondam-print-table-wrap{overflow:visible;border:1px solid #d8dfe5;border-radius:9px;background:#fff}
.porondam-print-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9.4pt;line-height:1.34}
.porondam-print-table th,.porondam-print-table td{padding:5px 6px;border-bottom:1px solid #e4e9ed;vertical-align:top;text-align:left}
.porondam-print-table th{background:#f3f6f8;font-weight:850}
.porondam-print-table tr:last-child td{border-bottom:0}
.porondam-print-table th:nth-child(1),.porondam-print-table td:nth-child(1){width:4%;text-align:center}
.porondam-print-table th:nth-child(2),.porondam-print-table td:nth-child(2){width:24%}
.porondam-print-table th:nth-child(3),.porondam-print-table td:nth-child(3){width:12%}
.porondam-print-table th:nth-child(4),.porondam-print-table td:nth-child(4){width:60%}
.porondam-print-table .porondam-status{font-size:8.6pt;min-width:54px;padding:3px 7px}
.porondam-print-table .porondam-rule-detail{line-height:1.35}
.porondam-print-special-stack{display:grid;gap:14px}
.porondam-print-special-card{border:1px solid #d8dfe5;border-radius:10px;background:#fff;padding:12px 14px}
.porondam-print-special-card .porondam-special-heading{margin:0 0 7px}
.porondam-print-special-card .porondam-special-heading h2{margin:0;font-size:13pt}
.porondam-print-special-card>p{margin:5px 0 10px;line-height:1.45;font-size:9.5pt}
.porondam-print-special-card>small{display:block;margin-top:9px;color:#5f6b75;line-height:1.42;font-size:8.5pt}
.porondam-print-special-card .porondam-analysis-grid{gap:10px}
.porondam-print-special-card .porondam-analysis-person{padding:9px 10px;font-size:9.2pt}
.porondam-print-special-card .porondam-sandhi-list{margin:7px 0 0;padding-left:1.35rem;line-height:1.45;font-size:9.3pt}
.porondam-print-disclaimer{margin-top:14px;padding:10px 12px;border-left:4px solid #b8c3cc;background:#f7f9fb;color:#4c5965;line-height:1.5;font-size:9pt}
.porondam-print-page-footer{margin-top:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding-top:6px;border-top:1px solid rgba(80,80,80,.24);color:#66727c;font-size:7.8pt;line-height:1.25}
.porondam-print-footer-note{white-space:pre-wrap;overflow-wrap:anywhere}.porondam-print-page-number{font-weight:800;white-space:nowrap}
@media print{.porondam-print-report{padding:0}.porondam-print-page{margin:0}}

/* v0.9.59 — Personalized Muhurta top-level page */
.muhurta-screen{display:none}
.muhurta-screen.active-screen{display:block}
.muhurta-heading{margin-bottom:14px}
.muhurta-natal-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px;padding:12px;border:1px solid #d8dee7;border-radius:12px;background:#fafbfc}
.muhurta-natal-card>div{display:grid;gap:3px;min-width:0}.muhurta-natal-card span{font-size:.78rem;color:#687384;font-weight:700}.muhurta-natal-card strong{font-size:.94rem;overflow-wrap:anywhere}
.muhurta-toolbar{border:1px solid #d8dee7;border-radius:12px;background:#f8fafc;padding:12px;margin-bottom:12px}
.muhurta-toolbar-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr .8fr;gap:10px;align-items:end}
.muhurta-toolbar-grid label,.muhurta-location-grid label{margin:0!important;display:grid;gap:6px;font-weight:700}
.muhurta-filter-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:10px;margin-top:10px}.muhurta-filter-group{margin:0;padding:9px 10px 10px;border:1px solid #d6dde6;border-radius:9px;background:#fff;display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;min-width:0}.muhurta-filter-group legend{padding:0 5px;font-size:.8rem;font-weight:800;color:#52606d}.muhurta-choice{display:inline-flex!important;align-items:center;gap:6px!important;margin:0!important;font-size:.82rem;font-weight:700!important;cursor:pointer}.muhurta-choice input{margin:0;width:auto;min-width:auto}.muhurta-location-grid{display:grid;grid-template-columns:1fr 1.35fr 1.2fr auto;gap:10px;align-items:end;margin-top:10px}
.muhurta-location-summary-field{display:grid;gap:5px;min-width:0}.muhurta-location-summary-field span{font-size:.82rem;font-weight:700}.muhurta-location-summary-field strong{min-height:46px;display:flex;align-items:center;padding:0 10px;border:1px solid #d6dde6;border-radius:8px;background:#fff;font-size:.84rem;overflow-wrap:anywhere}
.muhurta-run-btn{width:auto!important;margin:0!important;min-height:46px;white-space:nowrap}
.muhurta-results{display:grid;gap:12px;margin-top:12px}
.muhurta-result-card{border:1px solid #d8dee7;border-radius:13px;background:#fff;overflow:hidden;box-shadow:0 2px 8px rgba(26,39,52,.045)}
.muhurta-result-card.quality-excellent{border-left:5px solid #3b8c65}.muhurta-result-card.quality-good{border-left:5px solid #6aa37f}.muhurta-result-card.quality-medium{border-left:5px solid #c79b37}.muhurta-result-card.quality-weak{border-left:5px solid #bd6b61}
.muhurta-result-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:11px 13px;background:#f8fafc;border-bottom:1px solid #e3e7ec}
.muhurta-result-head>div:first-child{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.muhurta-result-head small{color:#687384}.muhurta-rank{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 7px;border-radius:999px;background:#e9eef4;font-weight:800}
.muhurta-score{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-items:end;min-width:105px}.muhurta-score>strong{font-size:1.55rem;line-height:1}.muhurta-score>span{font-size:.85rem;color:#6c7581}.muhurta-score>small{grid-column:1/-1;margin-top:3px;font-size:.76rem;font-weight:700}
.muhurta-general-support{padding:8px 12px 0;display:flex;gap:6px;flex-wrap:wrap}
.muhurta-factor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#e4e8ed;margin:10px 12px;border:1px solid #e4e8ed;border-radius:9px;overflow:hidden}
.muhurta-factor{background:#fff;padding:8px;display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;min-width:0}.muhurta-factor>span:first-child{font-size:.75rem;color:#687384;font-weight:800}.muhurta-factor>strong{grid-column:1/-1;font-size:.87rem;overflow-wrap:anywhere}
.muhurta-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:800}.muhurta-status.good{background:#e6f4eb;color:#206b45}.muhurta-status.medium{background:#fff3d7;color:#865f00}.muhurta-status.bad{background:#fde9e7;color:#9c4037}
.muhurta-result-details{margin:0 12px 12px;border:1px solid #e1e5ea;border-radius:9px;background:#fafbfc}.muhurta-result-details>summary{cursor:pointer;padding:8px 10px;font-weight:800}.muhurta-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 10px 10px}.muhurta-detail-grid>div{border-top:1px dotted #d3d8df;padding-top:8px}.muhurta-detail-grid h4{margin:0 0 5px}.muhurta-detail-grid p{margin:0;font-size:.86rem;line-height:1.45}.muhurta-detail-grid ul{margin:5px 0 0;padding-left:20px;font-size:.82rem}
.muhurta-hora-stack{display:grid;gap:4px;font-size:.84rem}.muhurta-hora-stack small{color:#6b7280}
.muhurta-hora-drill{margin:0 12px 10px;border:1px solid #d9e1e8;border-radius:10px;background:#fbfcfd;overflow:hidden}
/* v0.9.67 — stronger Hora/Panchama hierarchy and visible Panchama disclosure arrows. */
.muhurta-hora-drill>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:14px auto auto auto;justify-content:start;column-gap:10px;align-items:center;padding:9px 11px;font-weight:800;background:#f5f8fb}.muhurta-hora-drill>summary::-webkit-details-marker{display:none}.muhurta-hora-drill>summary:before{content:"▸";margin:0;align-self:center}.muhurta-hora-drill[open]>summary:before{content:"▾"}.muhurta-hora-summary-label{font-size:1rem;font-weight:800;color:#3f4b59;line-height:1.2}.muhurta-hora-summary-lord{font-size:.90rem;font-weight:800}.muhurta-hora-summary-lord small,.muhurta-panchama-drill small,.muhurta-sukshma-row small{color:#6b7280;font-size:.72rem;font-weight:600}.muhurta-hora-summary-time{font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;color:#3f4b59;line-height:1.2}
.muhurta-hora-drill-body{padding:7px 10px 10px}
.muhurta-panchama-heading{display:grid;grid-template-columns:34px 230px 155px;justify-content:start;gap:8px;padding:6px 8px;color:#4d5968;font-size:.86rem;font-weight:800;line-height:1.2}.muhurta-panchama-list{display:grid;gap:5px}.muhurta-panchama-drill{border:1px solid #e0e5ea;border-radius:8px;background:#fff;overflow:hidden}.muhurta-panchama-drill.is-visha{border-color:#e6c89f;background:#fffaf2}.muhurta-panchama-drill>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:34px 230px 155px 22px;justify-content:start;gap:8px;align-items:center;padding:7px 8px}.muhurta-panchama-drill>summary::-webkit-details-marker{display:none}.muhurta-panchama-drill>summary>span:nth-child(3){font-variant-numeric:tabular-nums;white-space:nowrap}.muhurta-panchama-drill>summary strong{font-size:.91rem}.muhurta-drill-index{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#eef2f6;font-size:.76rem;font-weight:800}.muhurta-panchama-arrow{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:#536172;font-size:.88rem;font-weight:900;line-height:1;transition:transform .15s ease;transform-origin:center}.muhurta-panchama-drill[open]>summary .muhurta-panchama-arrow{transform:rotate(90deg)}
.muhurta-sukshma-drill{display:grid;grid-template-columns:435px 145px;justify-content:start;background:#fafbfc}.muhurta-sukshma-rows{display:grid;gap:1px;padding:4px 0 8px 0;min-width:0}.muhurta-sukshma-section-label{display:flex;align-items:center;justify-content:center;border-left:1px solid #d7dde4;padding:6px 10px;color:#526274;font-size:.75rem;font-weight:800;text-align:center;line-height:1.25}.muhurta-sukshma-row{display:grid;grid-template-columns:34px 164px 58px 155px;justify-content:start;gap:8px;align-items:center;padding:5px 8px;border-bottom:1px dotted #dce1e6;font-size:.82rem}.muhurta-sukshma-row:last-child{border-bottom:0}.muhurta-sukshma-score{display:inline-flex;justify-content:center;min-width:50px;padding:2px 6px;border-radius:999px;font-size:.74rem;font-weight:800;font-variant-numeric:tabular-nums;background:#eef2f6;color:#485566}.muhurta-sukshma-score.good{background:#e7f4ec;color:#17603d}.muhurta-sukshma-score.medium{background:#fff3d7;color:#805800}.muhurta-sukshma-score.bad{background:#fde8e8;color:#9b2929}.muhurta-sukshma-time{font-variant-numeric:tabular-nums;white-space:nowrap}
.muhurta-learning{margin-top:18px}.muhurta-learning-grid{display:grid;gap:8px;margin-top:10px}.muhurta-learning-grid>details{border:1px solid #dce1e7;border-radius:9px;background:#fff}.muhurta-learning-grid>details>summary{padding:9px 11px;cursor:pointer;font-weight:800}.muhurta-learning-grid>details>div{padding:0 12px 11px;line-height:1.55}.muhurta-learning-grid p{margin:.45rem 0}
@media(max-width:1100px){.muhurta-toolbar-grid{grid-template-columns:1fr 1fr}.muhurta-location-grid{grid-template-columns:1fr 1fr}.muhurta-run-btn{width:100%!important}.muhurta-natal-card{grid-template-columns:1fr 1fr}.muhurta-factor-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.muhurta-toolbar-grid,.muhurta-filter-grid,.muhurta-location-grid,.muhurta-natal-card,.muhurta-factor-grid,.muhurta-detail-grid{grid-template-columns:1fr}.muhurta-result-head{align-items:flex-start}.muhurta-score{min-width:auto}.muhurta-result-head>div:first-child{display:grid;gap:3px}.muhurta-hora-drill>summary{grid-template-columns:14px auto auto minmax(0,1fr);justify-content:start;column-gap:7px}.muhurta-hora-summary-label,.muhurta-hora-summary-time{font-size:.90rem}.muhurta-hora-summary-time{grid-column:auto;white-space:nowrap}.muhurta-panchama-heading{display:none}.muhurta-panchama-drill>summary{grid-template-columns:34px minmax(0,1fr) 20px}.muhurta-panchama-drill>summary>span:nth-child(3){grid-column:2;grid-row:2;white-space:normal}.muhurta-panchama-arrow{grid-column:3;grid-row:1 / span 2;align-self:center}.muhurta-sukshma-drill{grid-template-columns:minmax(0,1fr) 104px}.muhurta-sukshma-section-label{padding:5px 6px;font-size:.69rem}.muhurta-sukshma-row{grid-template-columns:30px 1fr 54px;gap:6px;padding-left:7px;padding-right:7px}.muhurta-sukshma-time{grid-column:2 / 4;white-space:normal}.muhurta-sukshma-score{grid-column:3;grid-row:1}}

/* v0.9.63 — Personalized Muhurta Hora scoring reference table. */
.muhurta-rule-table-wrap{overflow-x:auto;margin:.55rem 0}.muhurta-rule-table{width:100%;border-collapse:collapse;font-size:.88rem}.muhurta-rule-table th,.muhurta-rule-table td{padding:.38rem .5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.muhurta-rule-table th{background:#f4f7f9;font-weight:800}.muhurta-rule-table td:first-child{font-weight:700;white-space:nowrap}

/* v0.9.68 — Classical Yoga & Dosha Analysis educational page. */
.yoga-dosha-screen.active-screen{display:flex;flex-direction:column;gap:16px}
.yoga-dosha-heading h2{margin-bottom:4px}
.yoga-dosha-principle-note{border:1px solid #d9e1ea;background:#f8fafc;border-radius:12px;padding:12px 14px;line-height:1.55}
.yoga-dosha-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.yoga-dosha-summary-card{display:flex;flex-direction:column;gap:4px;min-height:96px}
.yoga-dosha-summary-card>span{font-weight:700;color:#374151}
.yoga-dosha-summary-card>strong{font-size:1.35rem;line-height:1.2}
.yoga-dosha-summary-card>small{color:#6b7280;line-height:1.35}
.yoga-dosha-results{display:flex;flex-direction:column;gap:14px}
.yoga-dosha-group{border:1px solid #d9e1ea;border-radius:14px;background:#fff;overflow:hidden}
.yoga-dosha-group-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:#f6f8fb;border-bottom:1px solid #e2e8f0}
.yoga-dosha-group-heading h3{margin:0;font-size:1.04rem}
.yoga-dosha-group-heading small{display:block;margin-top:2px;color:#667085}
.yoga-dosha-group-count{min-width:48px;text-align:center;font-weight:800;border:1px solid #cbd5e1;border-radius:999px;padding:4px 9px;background:#fff}
.yoga-dosha-items{display:flex;flex-direction:column}
.yoga-dosha-item{border-bottom:1px solid #e7ebf0}
.yoga-dosha-item:last-child{border-bottom:0}
.yoga-dosha-item>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 14px;position:relative}
.yoga-dosha-item>summary::-webkit-details-marker{display:none}
.yoga-dosha-item>summary:before{content:"▸";font-size:.9rem;margin-right:7px;display:inline-block;position:absolute;left:4px;top:15px;transition:transform .15s ease}
.yoga-dosha-item[open]>summary:before{transform:rotate(90deg)}
.yoga-dosha-summary-title{display:flex;flex-direction:column;gap:2px;padding-left:8px}
.yoga-dosha-summary-title strong{font-size:.98rem}
.yoga-dosha-summary-title small{color:#667085}
.yoga-dosha-status{font-weight:800;border-radius:999px;padding:4px 9px;white-space:nowrap;font-size:.82rem;border:1px solid #d1d5db;background:#f8fafc}
.yoga-status-present{color:#166534;background:#f0fdf4;border-color:#bbf7d0}
.yoga-status-qualified{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}
.yoga-status-caution{color:#9a3412;background:#fff7ed;border-color:#fed7aa}
.yoga-status-absent{color:#475569;background:#f8fafc;border-color:#e2e8f0}
.yoga-status-neutral{color:#475569;background:#f8fafc;border-color:#e2e8f0}
.yoga-dosha-item-body{padding:2px 14px 14px 22px;display:flex;flex-direction:column;gap:10px;line-height:1.55}
.yoga-planet-chips{display:flex;gap:6px;flex-wrap:wrap}
.yoga-planet-chip{display:inline-flex;border:1px solid #d7dee8;background:#f8fafc;border-radius:999px;padding:3px 8px;font-size:.82rem;font-weight:700}
.yoga-rule-box{border-left:3px solid #94a3b8;background:#f8fafc;padding:8px 10px;border-radius:0 8px 8px 0}
.yoga-rule-box p{margin:4px 0 0}
.yoga-evidence>strong{display:block;margin-bottom:4px}
.yoga-evidence ul{margin:0;padding-left:22px}
.yoga-evidence li+li{margin-top:4px}
.yoga-dosha-note{margin:0;border-top:1px dashed #d7dee8;padding-top:8px;color:#475569}
.yoga-dosha-convention-note{margin:2px 0 0;color:#475569;font-size:.9rem;line-height:1.5}
.yoga-dosha-unavailable{border:1px solid #fecaca;background:#fff7f7;border-radius:12px;padding:14px}
.yoga-dosha-learning-grid{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.yoga-dosha-learning-grid>details{border:1px solid #dde3ea;border-radius:10px;background:#fff;overflow:hidden}
.yoga-dosha-learning-grid>details>summary{cursor:pointer;font-weight:800;padding:10px 12px;background:#f8fafc}
.yoga-dosha-learning-grid>details>div{padding:2px 12px 12px;line-height:1.58}
.yoga-dosha-learning-grid p{margin:9px 0}
.yoga-dosha-learning-grid ul,.yoga-dosha-learning-grid ol{margin:8px 0;padding-left:24px}
.yoga-rule-table-wrap{overflow-x:auto;margin:10px 0}
.yoga-rule-table{width:100%;border-collapse:collapse;font-size:.9rem}
.yoga-rule-table th,.yoga-rule-table td{border:1px solid #dbe2ea;padding:7px 8px;text-align:left;vertical-align:top}
.yoga-rule-table th{background:#f3f6f9;font-weight:800}
@media(max-width:900px){.yoga-dosha-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.yoga-dosha-summary{grid-template-columns:1fr}.yoga-dosha-item>summary{grid-template-columns:1fr}.yoga-dosha-status{justify-self:start;margin-left:8px}}

/* v0.9.69 — Bhava Chakra / Sripati house-cusp educational page. */
.bhava-screen.active-screen{display:flex;flex-direction:column;gap:16px}.bhava-heading h2{margin-bottom:4px}.bhava-principle-note{border:1px solid #d9e1ea;background:#f8fafc;border-radius:12px;padding:12px 14px;line-height:1.55}.bhava-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.bhava-summary-card{display:flex;flex-direction:column;gap:4px;min-height:96px}.bhava-summary-card>span{font-weight:700;color:#374151}.bhava-summary-card>strong{font-size:1.18rem;line-height:1.25}.bhava-summary-card>small{color:#6b7280;line-height:1.35}.bhava-house-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bhava-house-card{border:1px solid #dbe2e9;border-radius:12px;background:#fff;overflow:hidden}.bhava-house-card>header{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:#f7f9fb;border-bottom:1px solid #e5e9ee}.bhava-house-card>header>div{display:flex;flex-direction:column;gap:2px;min-width:0}.bhava-house-card>header small{color:#6b7280}.bhava-house-number{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:50%;background:#e8eef5;font-weight:900}.bhava-house-geometry{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e8edf2}.bhava-house-geometry>div{display:flex;flex-direction:column;gap:3px;background:#fff;padding:8px 10px}.bhava-house-geometry span{font-size:.75rem;color:#687384;font-weight:700}.bhava-house-geometry strong{font-size:.88rem}.bhava-house-planets{display:flex;gap:6px;flex-wrap:wrap;padding:9px 10px}.bhava-planet-chip{display:inline-flex;border:1px solid #d6dee7;background:#f8fafc;border-radius:999px;padding:3px 8px;font-size:.82rem;font-weight:700}.bhava-planet-chip.shifted{border-color:#f4c78a;background:#fff8ed}.bhava-planet-section{border:1px solid #dbe2e9;border-radius:12px;background:#fff;padding:12px}.bhava-planet-section h3{margin:0 0 4px}.bhava-planet-table{width:100%;border-collapse:collapse;font-size:.88rem}.bhava-planet-table th,.bhava-planet-table td{border-bottom:1px solid #e5e9ee;padding:7px 8px;text-align:left;vertical-align:middle}.bhava-planet-table th{background:#f7f9fb;font-weight:800}.bhava-planet-table td:first-child{white-space:nowrap}.bhava-planet-table td:first-child small{display:block;color:#6b7280}.bhava-shifted-row{background:#fffaf3}.bhava-shift-badge,.bhava-same-badge{display:inline-flex;border-radius:999px;padding:3px 7px;font-size:.76rem;font-weight:800;white-space:nowrap}.bhava-shift-badge{background:#fff0d9;color:#8a5700}.bhava-same-badge{background:#eef5f1;color:#35644b}.bhava-convention-note{margin:0;color:#475569;font-size:.9rem;line-height:1.5}.bhava-unavailable{grid-column:1/-1;border:1px solid #fecaca;background:#fff7f7;border-radius:12px;padding:14px}.bhava-learning-grid{display:flex;flex-direction:column;gap:8px;margin-top:12px}.bhava-learning-grid>details{border:1px solid #dde3ea;border-radius:10px;background:#fff;overflow:hidden}.bhava-learning-grid>details>summary{cursor:pointer;font-weight:800;padding:10px 12px;background:#f8fafc}.bhava-learning-grid>details>div{padding:2px 12px 12px;line-height:1.58}.bhava-learning-grid p{margin:9px 0}.bhava-learning-grid ol,.bhava-learning-grid ul{margin:8px 0;padding-left:24px}
@media(max-width:900px){.bhava-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bhava-house-grid{grid-template-columns:1fr}}
@media(max-width:560px){.bhava-summary{grid-template-columns:1fr}.bhava-house-geometry{grid-template-columns:1fr}.bhava-planet-table{min-width:760px}}

/* v0.9.71 — Natal Gulika / Mandi */
.gulika-mandi-screen.active-screen{display:flex;flex-direction:column;gap:16px}
.gulika-mandi-heading h2{margin-bottom:4px}
.gulika-mandi-principle-note{border:1px solid #d9e1ea;background:#f8fafc;border-radius:12px;padding:12px 14px;line-height:1.55}
.gulika-mandi-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.gulika-mandi-summary-card{display:flex;flex-direction:column;gap:4px;min-height:96px}
.gulika-mandi-summary-card>span{font-weight:700;color:#374151}
.gulika-mandi-summary-card>strong{font-size:1.16rem;line-height:1.25}
.gulika-mandi-summary-card>small{color:#6b7280;line-height:1.35}
.gulika-mandi-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gulika-mandi-point-card{border:1px solid #dbe2e9;border-radius:14px;background:#fff;overflow:hidden}
.gulika-mandi-point-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;background:#f7f9fb;border-bottom:1px solid #e4e9ee}
.gulika-mandi-point-card h3{margin:0}.gulika-mandi-point-card header small{display:block;color:#667085;margin-top:2px}
.gulika-mandi-method-badge{display:inline-flex;border:1px solid #cbd5e1;border-radius:999px;background:#fff;padding:4px 9px;font-size:.76rem;font-weight:900;white-space:nowrap}
.gulika-mandi-point-main{display:flex;flex-direction:column;gap:3px;padding:14px;border-bottom:1px solid #edf0f3}
.gulika-mandi-point-main strong{font-size:1.34rem}.gulika-mandi-point-main span{font-size:.84rem;color:#667085}
.gulika-mandi-facts{display:grid;grid-template-columns:1fr 1fr;margin:0}
.gulika-mandi-facts>div{padding:10px 12px;border-bottom:1px solid #edf0f3}
.gulika-mandi-facts>div:nth-child(odd){border-right:1px solid #edf0f3}
.gulika-mandi-facts dt{font-size:.76rem;font-weight:800;color:#667085;margin-bottom:3px}
.gulika-mandi-facts dd{margin:0;font-weight:700;line-height:1.4}
.gulika-mandi-method-note{margin:0;padding:11px 13px;background:#fbfcfd;color:#475569;line-height:1.5;font-size:.88rem}
.gulika-mandi-segment-section{border:1px solid #dbe2e9;border-radius:14px;background:#fff;padding:12px}
.gulika-mandi-segment-section h3{margin:0 0 4px}
.gulika-mandi-segment-table{width:100%;border-collapse:collapse;font-size:.87rem;margin-top:10px}
.gulika-mandi-segment-table th,.gulika-mandi-segment-table td{padding:7px 8px;border-bottom:1px solid #e7ebef;text-align:left;vertical-align:middle}
.gulika-mandi-segment-table th{background:#f7f9fb;font-weight:800}
.gulika-mandi-segment-table td:nth-child(1){font-weight:900;text-align:center;width:58px}
.gulika-mandi-segment-table td:nth-child(2) small{display:block;color:#667085}
.gulika-mandi-saturn-row{background:#fff7e9}
.gulika-mandi-saturn-badge{display:inline-flex;border-radius:999px;padding:3px 8px;background:#ffedca;color:#7a4a00;font-size:.76rem;font-weight:900;white-space:nowrap}
.gulika-mandi-comparison{border:1px solid #dbe2e9;border-radius:12px;background:#f8fafc;padding:12px 14px;display:flex;flex-direction:column;gap:5px;line-height:1.5}
.gulika-mandi-comparison>span{font-size:.92rem}.gulika-mandi-comparison>small{color:#667085}.gulika-mandi-comparison>p{margin:5px 0 0;color:#475569}
.gulika-mandi-unavailable{grid-column:1/-1;border:1px solid #fecaca;background:#fff7f7;border-radius:12px;padding:14px}
.gulika-mandi-learning-grid{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.gulika-mandi-learning-grid>details{border:1px solid #dde3ea;border-radius:10px;background:#fff;overflow:hidden}
.gulika-mandi-learning-grid>details>summary{cursor:pointer;font-weight:800;padding:10px 12px;background:#f8fafc}
.gulika-mandi-learning-grid>details>div{padding:2px 12px 12px;line-height:1.58}
.gulika-mandi-learning-grid p{margin:9px 0}.gulika-mandi-learning-grid ul,.gulika-mandi-learning-grid ol{margin:8px 0;padding-left:24px}
@media(max-width:900px){.gulika-mandi-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gulika-mandi-points{grid-template-columns:1fr}}
@media(max-width:560px){.gulika-mandi-summary{grid-template-columns:1fr}.gulika-mandi-facts{grid-template-columns:1fr}.gulika-mandi-facts>div:nth-child(odd){border-right:0}.gulika-mandi-segment-table{min-width:760px}}

/* v0.9.72 — Jaimini calculations. Keep display tied to .active-screen so a
   feature-specific flex layout can never bypass the global .screen contract. */
.jaimini-screen.active-screen{display:flex;flex-direction:column;gap:16px}
.jaimini-heading{margin-bottom:0}
.jaimini-principle-note,.jaimini-convention{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--soft-bg,#f7f7f7);line-height:1.55}
.jaimini-principle-note strong,.jaimini-convention strong{display:block;margin-bottom:4px}
.jaimini-section-block{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--panel,#fff)}
.jaimini-section-title h3{margin:0 0 4px}.jaimini-section-title p{margin:0}
.jaimini-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.jaimini-two-col h4{margin:0 0 8px}
.jaimini-table{width:100%;border-collapse:collapse;font-size:.92rem}.jaimini-table th,.jaimini-table td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top;text-align:left}.jaimini-table th{font-size:.8rem;text-transform:none;white-space:nowrap}.jaimini-table td small{display:block;color:var(--muted);margin-top:2px;line-height:1.25}
.jaimini-ak-row,.jaimini-key-pada-row{background:rgba(160,120,20,.08)}
.jaimini-exception{display:inline-block!important;margin-left:6px!important;padding:2px 6px;border-radius:999px;background:rgba(180,80,40,.12);color:inherit!important}
.jaimini-warning{padding:10px 12px;border-radius:10px;border:1px solid #b9832d;background:#fff8e7;line-height:1.45}.jaimini-warning.hidden{display:none}
.jaimini-highlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.jaimini-highlight-card{padding:14px;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:5px}.jaimini-highlight-card span,.jaimini-highlight-card small{color:var(--muted)}.jaimini-highlight-card strong{font-size:1.25rem}.jaimini-highlight-card.primary{box-shadow:inset 0 0 0 1px rgba(160,120,20,.25)}
.jaimini-drishti-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.jaimini-drishti-card{border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:9px}.jaimini-drishti-card header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.jaimini-drishti-card header small{color:var(--muted)}
.jaimini-chip-row{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.jaimini-chip-row b{font-size:.78rem;color:var(--muted);margin-right:3px}.jaimini-chip-row span{padding:3px 7px;border-radius:999px;background:rgba(80,80,80,.08);font-size:.82rem}.jaimini-chip-row.aspects span{background:rgba(60,110,160,.1)}
.jaimini-argala-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.jaimini-argala-card{border:1px solid var(--border);border-radius:12px;padding:13px}.jaimini-argala-card header strong{font-size:1.05rem}.jaimini-argala-card header small{display:block;color:var(--muted);margin-top:2px}.jaimini-argala-channels{display:flex;flex-direction:column;gap:9px;margin-top:10px}.jaimini-argala-channel{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;padding:9px;border-radius:10px;background:rgba(80,80,80,.045)}.jaimini-argala-channel>div>span{display:block;color:var(--muted);font-size:.75rem}.jaimini-argala-channel>div>strong{display:block;margin:2px 0 4px}.jaimini-argala-channel>small{grid-column:1/-1;color:var(--muted)}.jaimini-vs{font-weight:700}.jaimini-planet-chip{display:inline-block!important;padding:2px 6px;border-radius:999px;background:rgba(100,100,100,.09);font-size:.78rem;margin:2px 2px 0 0}
.jaimini-dasha-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;padding:10px 12px;border-radius:10px;background:rgba(80,80,80,.05)}.jaimini-dasha-meta small{width:100%;color:var(--muted)}.jaimini-active-dasha{background:rgba(80,140,70,.1)}
.jaimini-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.jaimini-learning-grid details{border:1px solid var(--border);border-radius:10px;padding:10px}.jaimini-learning-grid summary{cursor:pointer;font-weight:650}.jaimini-learning-grid p{line-height:1.55}
@media(max-width:980px){.jaimini-two-col,.jaimini-argala-grid,.jaimini-learning-grid{grid-template-columns:1fr}.jaimini-drishti-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.jaimini-highlight-grid,.jaimini-drishti-grid{grid-template-columns:1fr}.jaimini-section-block{padding:12px}.jaimini-argala-channel{grid-template-columns:1fr}.jaimini-vs{display:none}.jaimini-argala-channel>small{grid-column:auto}}

/* v0.9.74 — Pancha Pakshi: keep the screen hidden unless the global
   navigation contract applies .active-screen. Do not put display:flex on the
   bare .pancha-pakshi-screen selector. */
.pancha-pakshi-screen.active-screen{display:flex;flex-direction:column;gap:16px}
.pakshi-heading{margin-bottom:0}
.pakshi-principle-note,.pakshi-policy-note,.pakshi-safety-note{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--soft-bg,#f7f7f7);line-height:1.55}
.pakshi-principle-note strong,.pakshi-policy-note strong,.pakshi-safety-note strong{display:block;margin-bottom:4px}
.pakshi-summary{margin-bottom:0}
.pakshi-summary-card strong{font-size:1.06rem}
.pakshi-comparison-card{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--panel,#fff)}
.pakshi-comparison-card>div:not(.pakshi-comparison-arrow){display:flex;flex-direction:column;gap:4px}.pakshi-comparison-card span,.pakshi-comparison-card small{color:var(--muted)}.pakshi-comparison-card strong{font-size:1.12rem}.pakshi-comparison-card p{grid-column:1/-1;margin:0;padding-top:8px;border-top:1px solid var(--border);line-height:1.5}.pakshi-comparison-arrow{font-size:1.35rem;font-weight:700}
.pakshi-profile{display:flex;flex-direction:column;gap:14px;padding:17px;border:1px solid var(--border);border-radius:14px;background:var(--panel,#fff)}
.pakshi-profile-primary{box-shadow:inset 3px 0 0 rgba(160,120,20,.55)}
.pakshi-profile-lanka{box-shadow:inset 3px 0 0 rgba(50,105,145,.45)}
.pakshi-profile-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pakshi-profile-heading h3{margin:5px 0 4px}.pakshi-profile-heading p{margin:0}
.pakshi-source-badge{display:inline-block;padding:3px 8px;border:1px solid var(--border);border-radius:999px;font-size:.72rem;font-weight:750;letter-spacing:.04em;background:rgba(50,105,145,.08)}.pakshi-source-badge.primary{background:rgba(160,120,20,.11)}
.pakshi-profile-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pakshi-profile-card{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:11px;background:rgba(80,80,80,.025)}.pakshi-profile-card span,.pakshi-profile-card small{color:var(--muted)}.pakshi-profile-card strong{font-size:1rem;line-height:1.35}
.pakshi-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pakshi-table-block{min-width:0}.pakshi-table-block h4{margin:0 0 8px}
.pakshi-table{width:100%;border-collapse:collapse;font-size:.9rem}.pakshi-table th,.pakshi-table td{padding:8px 9px;border-bottom:1px solid var(--border);vertical-align:top;text-align:left}.pakshi-table th{font-size:.78rem;white-space:nowrap}.pakshi-active-row{background:rgba(80,140,70,.11)}
.pakshi-now-badge{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:999px;background:rgba(80,140,70,.18);font-size:.64rem;font-weight:750;vertical-align:middle}
.pakshi-policy-note p{margin:5px 0}.pakshi-policy-note small{color:var(--muted)}
.pakshi-source-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pakshi-safety-note{grid-column:1/-1}.pakshi-safety-note p{margin:4px 0}
.pakshi-source-card{padding:13px;border:1px solid var(--border);border-radius:12px}.pakshi-source-card header{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.pakshi-source-card header span{color:var(--muted);font-size:.75rem;text-transform:uppercase}.pakshi-source-card ul{margin:8px 0 0;padding-left:20px;line-height:1.5}.pakshi-source-card li+li{margin-top:4px}
.pakshi-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.pakshi-learning-grid details{border:1px solid var(--border);border-radius:10px;padding:10px}.pakshi-learning-grid summary{cursor:pointer;font-weight:650}.pakshi-learning-grid p{line-height:1.55}
@media(max-width:1050px){.pakshi-profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pakshi-grid-two,.pakshi-source-notes,.pakshi-learning-grid{grid-template-columns:1fr}}
@media(max-width:650px){.pakshi-profile-cards{grid-template-columns:1fr}.pakshi-comparison-card{grid-template-columns:1fr}.pakshi-comparison-arrow{display:none}.pakshi-comparison-card p{grid-column:auto}.pakshi-profile{padding:12px}.pakshi-table{font-size:.84rem}}

/* v0.9.75 — date-based Pancha Pakshi planning controls */
.pakshi-date-toolbar{display:grid;grid-template-columns:auto minmax(170px,230px) auto auto minmax(145px,190px);gap:10px;align-items:end;justify-content:center;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel,#fff)}
.pakshi-date-picker,.pakshi-half-picker{display:grid;gap:5px;font-weight:750;font-size:.86rem;color:var(--muted)}
.pakshi-date-picker input,.pakshi-half-picker select{min-height:42px}
.pakshi-planner-help{margin:-8px 2px 0;text-align:center}
.pakshi-table tbody tr[data-pakshi-yama-index]{cursor:pointer}
.pakshi-table tbody tr[data-pakshi-yama-index]:hover{background:rgba(80,140,70,.06)}
@media(max-width:900px){.pakshi-date-toolbar{grid-template-columns:1fr 1fr}.pakshi-date-picker,.pakshi-half-picker{grid-column:1/-1}.pakshi-date-picker{grid-row:1}.pakshi-half-picker{grid-row:2}.pakshi-nav-btn,.pakshi-today-btn{width:100%}}
@media(max-width:560px){.pakshi-date-toolbar{grid-template-columns:1fr}.pakshi-date-picker,.pakshi-half-picker,.pakshi-nav-btn,.pakshi-today-btn{grid-column:1}.pakshi-date-picker,.pakshi-half-picker{grid-row:auto}}

/* v0.9.76 — Sri Lankan Pancha Pakshi is the primary daily planning view. */
.pakshi-half-section{padding:13px 0 2px;border-top:1px solid var(--border)}
.pakshi-half-section>h4{margin:0 0 12px;font-size:1.03rem}
.pakshi-half-section h5{margin:0 0 8px;font-size:.9rem}
.pakshi-tradition-details{display:block}
.pakshi-tradition-details:not([open])>:not(summary){display:none}
.pakshi-details-summary{cursor:pointer;list-style:none;padding:0}
.pakshi-details-summary::-webkit-details-marker{display:none}
.pakshi-details-summary::after{content:"▾";margin-left:auto;font-size:1.1rem;color:var(--muted)}
.pakshi-tradition-details[open] .pakshi-details-summary::after{content:"▴"}
.pakshi-tradition-details[open] .pakshi-details-summary{margin-bottom:14px}
.pakshi-date-toolbar{grid-template-columns:auto minmax(170px,230px) auto auto}
.pakshi-date-picker{display:grid;gap:5px;font-weight:750;font-size:.86rem;color:var(--muted)}
.pakshi-date-picker input{min-height:42px}
@media(max-width:900px){.pakshi-date-toolbar{grid-template-columns:1fr 1fr}.pakshi-date-picker{grid-column:1/-1;grid-row:1}.pakshi-nav-btn,.pakshi-today-btn{width:100%}}
@media(max-width:560px){.pakshi-date-toolbar{grid-template-columns:1fr}.pakshi-date-picker,.pakshi-nav-btn,.pakshi-today-btn{grid-column:1}.pakshi-date-picker{grid-row:auto}}

/* v1.20.0 — independently selectable Pancha Pakshi calculation city and timezone. */
.pakshi-location-panel{border:1px solid var(--border);border-radius:12px;background:var(--panel,#fff);padding:14px;display:grid;gap:11px}
.pakshi-location-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pakshi-location-heading p{margin:5px 0 0;line-height:1.5}
.pakshi-location-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px}
.pakshi-location-fields label{display:grid;gap:5px;min-width:0;font-size:.86rem;font-weight:750}
.pakshi-location-fields input,.pakshi-location-fields select{width:100%;min-width:0;min-height:44px;box-sizing:border-box}
.pakshi-location-status{margin:0;padding:10px 12px;border-radius:9px;background:rgba(80,140,70,.07);line-height:1.5;font-weight:650;overflow-wrap:anywhere}
.pakshi-location-status.is-warning{background:rgba(190,145,45,.13)}
@media(max-width:650px){.pakshi-location-heading{align-items:stretch;flex-direction:column}.pakshi-location-fields{grid-template-columns:1fr}.pakshi-location-heading button{width:100%}}

/* v0.9.77 — Pancha Pakshi planning guidance and auspicious-time navigation. */
.pakshi-howto{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.8fr);gap:14px;padding:15px 16px;border:1px solid var(--border);border-radius:13px;background:rgba(80,140,70,.035)}
.pakshi-howto h4{margin:0 0 8px}.pakshi-howto ol{margin:0;padding-left:22px;line-height:1.55}.pakshi-howto li+li{margin-top:5px}.pakshi-howto p{margin:10px 0 0;line-height:1.5}
.pakshi-strength-legend{display:flex;flex-direction:column;gap:7px;justify-content:center}.pakshi-strength{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.7rem;font-weight:800;line-height:1.35;white-space:nowrap;border:1px solid transparent}
.pakshi-strength-best{background:rgba(44,130,76,.16);border-color:rgba(44,130,76,.28)}
.pakshi-strength-good{background:rgba(92,150,70,.13);border-color:rgba(92,150,70,.25)}
.pakshi-strength-medium{background:rgba(190,145,45,.13);border-color:rgba(190,145,45,.25)}
.pakshi-strength-weak{background:rgba(150,120,85,.11);border-color:rgba(150,120,85,.22)}
.pakshi-strength-poor{background:rgba(160,70,70,.12);border-color:rgba(160,70,70,.24)}
.pakshi-auspicious-quick{display:grid;grid-template-columns:auto 1fr 1fr;gap:12px;align-items:stretch;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:var(--panel,#fff)}
.pakshi-quick-title{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:180px}.pakshi-quick-title span{font-size:.8rem;color:var(--muted);line-height:1.4}.pakshi-quick-half{display:flex;flex-wrap:wrap;gap:7px;align-content:center}.pakshi-quick-half>strong{width:100%;font-size:.82rem;color:var(--muted)}
.pakshi-quick-time{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px;border-radius:10px;border:1px solid var(--border);cursor:pointer;text-align:left;color:inherit}.pakshi-quick-time span{font-weight:800}.pakshi-quick-time small{font-size:.72rem;color:var(--muted)}.pakshi-quick-time:hover{filter:brightness(.98);transform:translateY(-1px)}
.pakshi-table tbody tr[data-pakshi-sookshma-index]{cursor:pointer}.pakshi-table tbody tr[data-pakshi-sookshma-index]:hover{background:rgba(80,140,70,.06)}
@media(max-width:1000px){.pakshi-howto{grid-template-columns:1fr}.pakshi-strength-legend{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.pakshi-auspicious-quick{grid-template-columns:1fr}.pakshi-quick-title{min-width:0}}

/* v0.9.79: Pancha Pakshi selection clarity */
.pakshi-now-badge{cursor:default;user-select:none}
.pakshi-result-note{margin:-3px 0 8px;line-height:1.45}

/* v0.9.80: selectable Ati-Sookshma final-level rows. */
.pakshi-table tbody tr[data-pakshi-ati-index]{cursor:pointer}
.pakshi-table tbody tr[data-pakshi-ati-index]:hover{background:rgba(80,140,70,.06)}


/* v0.9.81+: show the complete Yama → Sookshma → Ati-Sookshma selection path. */
.pakshi-selection-path{margin:10px 0 12px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:rgba(80,140,70,.055)}
.pakshi-selection-path-title{margin-bottom:8px;font-size:.78rem;font-weight:800;color:var(--muted)}
.pakshi-selection-path-flow{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pakshi-selection-path-flow>span{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border:1px solid rgba(80,140,70,.22);border-radius:10px;background:var(--panel,#fff)}
.pakshi-selection-path-flow small{font-size:.69rem;color:var(--muted);font-weight:750}
.pakshi-selection-path-flow strong{font-size:1rem}
.pakshi-selection-path-flow>b{font-size:1.1rem;color:var(--muted)}
@media(max-width:560px){.pakshi-selection-path-flow{gap:6px}.pakshi-selection-path-flow>span{flex:1 1 100%}.pakshi-selection-path-flow>b{transform:rotate(90deg);margin:auto}}
.timezone-override-box{margin:.65rem 0 0;padding:.7rem .75rem;border:1px solid #dde4ea;border-radius:9px;background:#fff}
.timezone-override-toggle{display:flex;align-items:center;gap:.5rem;font-weight:700;margin:0}
.timezone-override-toggle input{width:auto;margin:0}
.timezone-override-fields{margin-top:.65rem}
.timezone-override-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin:.45rem 0}
.timezone-override-actions button{width:auto}
.timezone-active-status{display:block;margin-top:.45rem;font-weight:700}


/* v1.0.4 — continued-access request modal */
.access-request-dialog{
  width:min(680px,calc(100vw - 28px));
  max-height:min(86vh,760px);
  padding:0;
  border:0;
  border-radius:16px;
  background:#fff;
  color:var(--text);
  box-shadow:0 24px 80px rgba(0,0,0,.32);
  overflow:auto;
}
.access-request-dialog::backdrop{background:rgba(18,28,38,.58);backdrop-filter:blur(2px)}
.access-request-card{padding:20px 22px 22px}
.access-request-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.access-request-heading h3{margin:0 0 6px;font-size:1.12rem}.access-request-heading p{margin:0;line-height:1.5}
.access-request-form{display:grid;gap:10px;margin-top:10px}.access-request-form .two-col{gap:10px}
.access-request-form input[readonly]{background:rgba(100,100,100,.06);color:var(--muted)}
.access-request-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px}
.access-request-actions .primary,.access-request-actions .secondary{width:auto;margin-top:.4rem}
.access-request-dialog .status{margin:10px 0 0;line-height:1.45}
@media(max-width:620px){.access-request-card{padding:16px}.access-request-actions{flex-direction:column-reverse}.access-request-actions .primary,.access-request-actions .secondary{width:100%}}

/* v1.1.0 — Contact Us links and dialog */
.link-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--accent, #2257a7);
  text-decoration: underline;
  cursor: pointer;
  padding: .35rem .15rem;
  font: inherit;
}
.auth-contact-link { align-self: flex-start; margin-top: .2rem; }
.contact-us-card textarea { width: 100%; resize: vertical; }

/* v1.1.2 — reliable current-Dasha report jump + visible landing cue. */
.classic-current-dasha{scroll-margin-top:18px}
.classic-jump-target-flash{
  animation:classicJumpTargetFlash 1.35s ease-out 1;
}
@keyframes classicJumpTargetFlash{
  0%{outline:3px solid rgba(111,59,0,.58);outline-offset:5px;background:rgba(248,239,228,.72)}
  100%{outline-color:transparent;outline-offset:9px;background:transparent}
}
@media (prefers-reduced-motion:reduce){
  .classic-jump-target-flash{animation:none;outline:2px solid rgba(111,59,0,.45);outline-offset:4px}
}

/* v1.3.0 — Dynamic Predictions */
.prediction-screen{display:none}.prediction-screen.active-screen{display:block}
.prediction-heading-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}
.prediction-heading-row h2{margin:0 0 6px;font-size:1.55rem}.prediction-heading-row p{margin:0;max-width:920px}
.prediction-language-switch{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.prediction-language-switch button{border:1px solid #c9d2dc;background:#fff;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer}
.prediction-language-switch button.active{background:#1f2b37;color:#fff;border-color:#1f2b37}
.prediction-meta{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:14px 0 16px}
.prediction-meta>div{border:1px solid #d5dde5;background:#f8fafc;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.prediction-meta span{font-size:.78rem;color:#637183}.prediction-meta strong{font-size:.98rem}
.prediction-house-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.prediction-card{border:1px solid #d8e0e7;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 1px 3px rgba(20,35,50,.05)}
.prediction-card.trend-supportive{border-top:4px solid #2f7d5a}.prediction-card.trend-challenging{border-top:4px solid #a25d45}.prediction-card.trend-mixed{border-top:4px solid #7a8190}
.prediction-card-header{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 14px 8px}
.prediction-house-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eef2f6;font-weight:800;font-size:1rem}
.prediction-card-titles h3{margin:0 0 6px;font-size:1.08rem;line-height:1.35}.prediction-english{display:block;margin-top:4px;color:#475569;font-family:inherit;font-size:.92em}
.prediction-trend-badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:800}.prediction-trend-badge.supportive{background:#e9f6ef;color:#186243}.prediction-trend-badge.challenging{background:#f9ece7;color:#8b442e}.prediction-trend-badge.mixed{background:#eef0f3;color:#555e6c}
.prediction-index{min-width:62px;text-align:center;border-left:1px solid #e3e7eb;padding-left:12px}.prediction-index span{display:block;font-size:.68rem;color:#667384;text-transform:uppercase;letter-spacing:.04em}.prediction-index strong{font-size:1.35rem}
.prediction-summary{font-weight:650;line-height:1.6;margin:4px 14px 8px}.prediction-domain-description{color:#586678;line-height:1.55;margin:0 14px 10px;font-size:.91rem}
.prediction-counts{display:flex;gap:8px;padding:0 14px 12px;font-size:.76rem}.prediction-counts span{border-radius:999px;padding:3px 8px;background:#f1f4f7}.prediction-counts .supportive{color:#176242}.prediction-counts .challenging{color:#8a432f}.prediction-counts .neutral{color:#596475}
.prediction-reasons{border-top:1px solid #e4e9ee}.prediction-reasons summary{cursor:pointer;padding:10px 14px;font-weight:800;display:flex;justify-content:space-between;gap:12px}.prediction-reasons summary span{font-size:.75rem;min-width:24px;text-align:center;border:1px solid #d7dee5;border-radius:999px;padding:2px 6px}.prediction-reasons ul{list-style:none;margin:0;padding:0 12px 12px}
.prediction-factor{border:1px solid #e1e6eb;border-left-width:4px;border-radius:9px;padding:10px;margin-top:8px;background:#fbfcfd}.prediction-factor.supportive{border-left-color:#3c8d68}.prediction-factor.challenging{border-left-color:#b66c53}.prediction-factor.neutral{border-left-color:#858b95}.prediction-factor-head{display:flex;justify-content:space-between;gap:10px}.prediction-factor-score{font-variant-numeric:tabular-nums;font-weight:800}.prediction-factor-copy{margin-top:5px;line-height:1.5}.prediction-factor-reason{margin-top:5px;color:#536171;font-size:.82rem}.prediction-factor-source{margin-top:5px;color:#788493;font-size:.72rem;text-transform:none}
.prediction-disclaimer{margin:16px 0 0;border:1px solid #d7dfe7;background:#f7f9fb;border-radius:10px;padding:11px 13px;color:#5e6978;white-space:pre-line;line-height:1.5;font-size:.82rem}
.prediction-debug{margin-top:16px;border:1px dashed #aeb8c3;border-radius:10px;background:#fbfcfd}.prediction-debug>summary{padding:10px 12px;cursor:pointer;font-weight:800}.prediction-debug-house{padding:0 12px 12px}.prediction-debug-house h4{margin:10px 0 6px}.prediction-debug-table-wrap{overflow:auto}.prediction-debug-table{width:100%;border-collapse:collapse;font-size:.78rem}.prediction-debug-table th,.prediction-debug-table td{border:1px solid #dde3e8;padding:5px 7px;text-align:left}.prediction-debug-table code{font-size:.75rem}.prediction-empty{padding:24px;border:1px dashed #c7d0d8;border-radius:10px;text-align:center;color:#667384}
@media(max-width:980px){.prediction-house-grid{grid-template-columns:1fr}.prediction-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-heading-row{flex-direction:column}.prediction-language-switch{justify-content:flex-start}}
@media(max-width:560px){.prediction-meta{grid-template-columns:1fr}.prediction-card-header{grid-template-columns:auto 1fr}.prediction-index{grid-column:2;border-left:0;padding-left:0;text-align:left}.prediction-index span,.prediction-index strong{display:inline;margin-right:6px}}
@media print{#screen-predictions.active-screen .prediction-house-grid{grid-template-columns:1fr 1fr}.prediction-reasons{break-inside:avoid}.prediction-card{break-inside:avoid}}

/* v1.4.0 — deep natal prediction reading */
.prediction-general-natal{margin:14px 0 18px}.prediction-general-card{border:1px solid #cfd8e1;border-radius:15px;background:linear-gradient(180deg,#fff,#fafcfd);box-shadow:0 2px 7px rgba(22,36,50,.06);overflow:hidden}.prediction-general-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px 18px 14px;border-bottom:1px solid #e3e8ed}.prediction-general-header h3{font-size:1.35rem;margin:3px 0 6px}.prediction-general-header p{margin:0;line-height:1.55;color:#516070;max-width:900px}.prediction-eyebrow{text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:800;color:#667587}.prediction-confidence{min-width:160px;border-left:1px solid #e2e7eb;padding-left:16px;text-align:right;display:grid;gap:2px}.prediction-confidence span{font-size:.72rem;color:#6b7785}.prediction-confidence strong{font-size:1.05rem}.prediction-confidence small{font-size:.68rem;color:#7e8995}.prediction-signature-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px 18px;background:#f7f9fb;border-bottom:1px solid #e5e9ed}.prediction-signature-grid>div{border:1px solid #e0e6eb;border-radius:10px;background:#fff;padding:10px 11px}.prediction-signature-grid h4{font-size:.78rem;margin:0 0 7px;color:#3e4d5b}.prediction-chip-list{display:flex;gap:5px;flex-wrap:wrap}.prediction-chip-list>span{border-radius:999px;background:#eef3f6;padding:4px 7px;font-size:.72rem;line-height:1.25}.prediction-chip-list>span small{margin-left:4px;color:#6d7884}.prediction-chip-list>span .prediction-english{margin:2px 0 0}.prediction-chip-list.yoga>span{border-radius:7px}.prediction-general-copy{padding:16px 18px 18px;max-width:1120px}.prediction-general-copy p{margin:0 0 12px;line-height:1.72}.prediction-general-copy p:last-child{margin-bottom:0}.prediction-section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:18px 0 10px;border-bottom:1px solid #dde4ea;padding-bottom:8px}.prediction-section-heading h3{margin:0 0 3px;font-size:1.17rem}.prediction-section-heading p{margin:0}.prediction-house-grid{grid-template-columns:1fr}.prediction-card{break-inside:avoid}.prediction-card-header{padding:15px 16px 10px}.prediction-layer-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 16px 12px}.prediction-layer-scores>div{border:1px solid #e0e6eb;border-radius:9px;padding:8px 10px;background:#fafcfd;display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}.prediction-layer-scores span{font-size:.72rem;color:#667482;font-weight:700}.prediction-layer-scores strong{font-size:1rem}.prediction-layer-scores small{grid-column:1/-1;font-size:.69rem;color:#75818d}.prediction-layer-scores .supportive{border-left:4px solid #3c8d68}.prediction-layer-scores .challenging{border-left:4px solid #b66c53}.prediction-layer-scores .mixed{border-left:4px solid #858b95}.prediction-summary{margin:0 16px 10px;padding:10px 12px;border-radius:9px;background:#f3f6f8;font-weight:700;line-height:1.55}.prediction-narrative{margin:0 16px 12px;padding:12px 14px;border:1px solid #e0e6eb;border-radius:11px;background:#fff}.prediction-narrative.natal{border-left:4px solid #496d8a}.prediction-narrative.current{border-left:4px solid #8b6d45;background:#fffdfa}.prediction-narrative h4{margin:0 0 8px;font-size:.94rem}.prediction-narrative p{margin:0 0 9px;line-height:1.66;color:#2f3d49}.prediction-narrative p:last-child{margin-bottom:0}.prediction-narrative .prediction-english{margin-top:4px;margin-bottom:10px}.prediction-factor-score{display:flex;gap:5px;align-items:center}.prediction-factor-score em{font-style:normal;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:#798491;border:1px solid #d8dfe5;border-radius:999px;padding:1px 5px}.prediction-domain-description{display:none}
@media(max-width:1150px){.prediction-signature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-general-header{flex-direction:column}.prediction-confidence{border-left:0;border-top:1px solid #e2e7eb;padding:10px 0 0;text-align:left;width:100%}.prediction-layer-scores{grid-template-columns:1fr 1fr}.prediction-layer-scores>div:last-child{grid-column:1/-1}}
@media(max-width:600px){.prediction-signature-grid{grid-template-columns:1fr}.prediction-layer-scores{grid-template-columns:1fr}.prediction-layer-scores>div:last-child{grid-column:auto}.prediction-general-header,.prediction-signature-grid,.prediction-general-copy{padding-left:12px;padding-right:12px}.prediction-narrative,.prediction-summary{margin-left:10px;margin-right:10px}}
@media print{.prediction-general-card{box-shadow:none}.prediction-signature-grid{grid-template-columns:1fr 1fr}.prediction-general-card,.prediction-narrative{break-inside:avoid}.prediction-layer-scores{grid-template-columns:repeat(3,1fr)}}

/* v1.7 Life Topic Synthesis */
.prediction-topic-grid{display:grid;grid-template-columns:1fr;gap:14px;margin:0 0 22px}
.prediction-topic-card{border:1px solid #d7e0e8;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 1px 4px rgba(20,35,50,.05)}
.prediction-topic-card.trend-supportive{border-top:4px solid #2f7d5a}.prediction-topic-card.trend-challenging{border-top:4px solid #a25d45}.prediction-topic-card.trend-mixed{border-top:4px solid #7a8190}
.prediction-topic-card-header{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;padding:16px 18px 12px;border-bottom:1px solid #e4e9ed;background:linear-gradient(180deg,#fff,#fbfcfd)}
.prediction-topic-card-header h3{margin:3px 0 6px;font-size:1.16rem}.prediction-topic-card-header p{margin:0;color:#566575;line-height:1.55;max-width:950px}
.prediction-topic-card .prediction-layer-scores.topic{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:12px}
.prediction-topic-copy{padding:4px 18px 12px}.prediction-topic-copy p{margin:0 0 10px;line-height:1.72;color:#2e3c48}.prediction-topic-copy p:last-child{margin-bottom:0}
.prediction-topic-evidence{margin:0 18px 16px;border:1px solid #dfe5ea;border-radius:10px;background:#fafcfd}.prediction-topic-evidence>summary{cursor:pointer;padding:10px 12px;font-weight:800}.prediction-topic-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 12px 12px}.prediction-topic-evidence-grid>div{border-top:1px solid #e3e8ed;padding-top:10px}.prediction-topic-evidence-grid h4{margin:0 0 7px;font-size:.8rem;color:#536270}
.prediction-topic-chip{display:inline-flex!important;align-items:center;gap:4px}.prediction-topic-chip .prediction-english{display:inline;margin:0}
@media(max-width:800px){.prediction-topic-card-header{grid-template-columns:1fr}.prediction-topic-card-header .prediction-index{text-align:left;border-left:0;padding-left:0}.prediction-topic-card .prediction-layer-scores.topic{grid-template-columns:1fr}.prediction-topic-evidence-grid{grid-template-columns:1fr}}
@media print{.prediction-topic-card{break-inside:avoid;box-shadow:none}.prediction-topic-evidence{display:none}.prediction-topic-card .prediction-layer-scores.topic{grid-template-columns:repeat(2,1fr)}}

/* v1.8 Prediction Timing Intelligence */
.prediction-timing{margin:0 0 18px}
.prediction-timing-panel{border:1px solid #d5dee6;border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 2px 7px rgba(22,36,50,.05)}
.prediction-timing-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:17px 18px 14px;border-bottom:1px solid #e3e8ed;background:linear-gradient(180deg,#fff,#fafcfd)}
.prediction-timing-header h3{margin:3px 0 6px;font-size:1.22rem}.prediction-timing-header p{margin:0;line-height:1.55;color:#566575;max-width:900px}
.prediction-timing-window{min-width:170px;border-left:1px solid #e2e7eb;padding-left:16px;text-align:right;display:grid;gap:2px}.prediction-timing-window span{font-size:.72rem;color:#6b7785}.prediction-timing-window strong{font-size:1rem}.prediction-timing-window small{font-size:.69rem;color:#7e8995}
.prediction-dasha-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 18px 10px;background:#f8fafc}
.prediction-timing-card{border:1px solid #dde4ea;border-radius:11px;background:#fff;padding:12px 13px;display:grid;gap:8px}.prediction-timing-card.dasha{border-left:4px solid #526f89}
.prediction-timing-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.prediction-timing-card-head span{font-size:.76rem;color:#647383;font-weight:800}.prediction-timing-card-head strong{font-size:1.08rem}
.prediction-timing-period{font-variant-numeric:tabular-nums;color:#445260;font-size:.83rem;font-weight:700}
.prediction-timing-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.prediction-timing-metrics.compact{grid-template-columns:1fr 1fr}.prediction-timing-metrics>span{border:1px solid #e3e8ed;border-radius:8px;background:#fafcfd;padding:7px 8px;min-width:0}.prediction-timing-metrics small{display:block;color:#72808e;font-size:.65rem;margin-bottom:2px}.prediction-timing-metrics strong{font-size:.78rem;line-height:1.25;overflow-wrap:anywhere}
.prediction-timing-progress{height:5px;background:#edf1f4;border-radius:999px;overflow:hidden}.prediction-timing-progress span{display:block;height:100%;background:#5f7e99;border-radius:999px}
.prediction-dasha-relationship{margin:0 18px 10px;padding:9px 11px;border:1px solid #e1e6eb;border-radius:9px;background:#fff;line-height:1.5;font-size:.82rem;color:#4f5d6a}
.prediction-convergence-note{margin:0 18px 10px;padding:10px 12px;border:1px solid #e2d5b7;border-left:4px solid #a77a2d;border-radius:9px;background:#fffaf0;display:grid;gap:3px}.prediction-convergence-note strong{font-size:.84rem}.prediction-convergence-note span{font-size:.8rem;line-height:1.5;color:#5b513f}
.prediction-timing-subheading{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 18px 7px}.prediction-timing-subheading h4{margin:0;font-size:.95rem}.prediction-timing-subheading span{font-size:.74rem;color:#687686}
.prediction-era-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 14px}.prediction-era-card{border:1px solid #dfe5ea;border-radius:10px;padding:10px 11px;background:#fff}.prediction-era-card.current{border-left:4px solid #a56a00;background:#fffaf2}.prediction-era-card.upcoming{border-left:4px solid #4f7b5a;background:#fbfefc}.prediction-era-card header{display:flex;justify-content:space-between;gap:10px;align-items:center}.prediction-era-card header span{font-size:.66rem;color:#6c7987;text-transform:uppercase;letter-spacing:.03em}.prediction-era-card header strong{font-size:.9rem;text-align:right}.prediction-era-card p{margin:6px 0;line-height:1.45;font-size:.82rem}.prediction-era-start-note{display:block;margin-top:7px;color:#657381;line-height:1.4}
.prediction-timeline-details{margin:0 18px 13px;border:1px solid #dfe5ea;border-radius:10px;background:#fbfcfd}.prediction-timeline-details>summary{cursor:pointer;padding:9px 11px;font-weight:800}.prediction-timeline{display:grid;gap:8px;padding:0 11px 12px}.prediction-timeline-row{display:grid;grid-template-columns:minmax(150px,230px) 1fr;gap:10px;align-items:center}.prediction-timeline-label{min-width:0}.prediction-timeline-label strong{display:block;font-size:.75rem}.prediction-timeline-label small{display:block;color:#74808c;font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prediction-timeline-track{height:12px;background:#e9eef2;border-radius:999px;position:relative;overflow:hidden}.prediction-timeline-track span{position:absolute;top:0;bottom:0;border-radius:999px;background:#67839c}.prediction-timeline-row.era .prediction-timeline-track span{background:#9b7740}.prediction-timeline-row.current .prediction-timeline-track span{background:#a56600}.prediction-timeline-row.upcoming .prediction-timeline-track span{background:#557e60}.prediction-timeline-row.antar .prediction-timeline-track span{background:#7d6992}
.prediction-timing-note{margin:0;padding:10px 18px 14px;border-top:1px solid #e5e9ed;color:#687482;font-size:.75rem;line-height:1.45}
.prediction-empty.compact{padding:14px}
@media(max-width:900px){.prediction-timing-header{flex-direction:column}.prediction-timing-window{border-left:0;border-top:1px solid #e2e7eb;padding:9px 0 0;text-align:left;width:100%}.prediction-dasha-grid,.prediction-era-grid{grid-template-columns:1fr}.prediction-timing-metrics{grid-template-columns:1fr 1fr}.prediction-timeline-row{grid-template-columns:1fr}.prediction-timeline-label small{white-space:normal}}
@media(max-width:520px){.prediction-timing-metrics,.prediction-timing-metrics.compact{grid-template-columns:1fr}.prediction-timing-header,.prediction-dasha-grid,.prediction-era-grid,.prediction-timing-subheading,.prediction-timing-note{padding-left:11px;padding-right:11px}.prediction-dasha-relationship,.prediction-convergence-note,.prediction-timeline-details{margin-left:11px;margin-right:11px}}
@media print{.prediction-timing-panel{box-shadow:none;break-inside:avoid}.prediction-timeline-details{display:none}.prediction-era-grid{grid-template-columns:1fr 1fr}.prediction-dasha-grid{grid-template-columns:1fr 1fr}}


/* v1.9 topic-confirmation evidence, fluid for desktop/mobile and print */
.prediction-varga{margin:0 0 20px}.prediction-varga-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.prediction-varga-card{border:1px solid #d8e1e8;border-radius:12px;padding:13px 15px;background:#fff;min-width:0}
.prediction-varga-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid #e6ebf0;padding-bottom:8px}.prediction-varga-card header strong{font-size:.8rem;color:#44586b}.prediction-varga-card h4{margin:5px 0;font-size:1.02rem}.prediction-varga-card header>span{font-size:.72rem;border:1px solid #dfe6ed;padding:4px 7px;border-radius:8px;text-align:right}
.prediction-varga-card p{line-height:1.55;font-size:.82rem;color:#4e5d6b}.prediction-varga-card dl{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.prediction-varga-card dl>div{border:1px solid #e6eaf0;border-radius:8px;padding:7px}.prediction-varga-card dt{font-size:.7rem;color:#677786}.prediction-varga-card dd{font-size:.83rem;margin:3px 0 0;font-weight:700}
.prediction-varga-card details{border-top:1px solid #e6ebf0;padding-top:8px}.prediction-varga-card summary,.prediction-yoga-activation summary{cursor:pointer;font-size:.82rem;font-weight:800}.prediction-varga-card li{font-size:.81rem;line-height:1.5;margin-bottom:5px;overflow-wrap:anywhere}
.prediction-yoga-activation{margin:0 18px 12px;padding:10px 12px;border:1px solid #dfe5ea;border-radius:10px;background:#fbfcfe}.prediction-yoga-list{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.prediction-yoga-row{padding:9px 10px;border-radius:9px;border:1px solid #e0e6eb;background:#fff;min-width:0}.prediction-yoga-row.active{border-left:4px solid #447b69}.prediction-yoga-row strong{font-size:.81rem}.prediction-yoga-row small{display:block;margin-top:3px;color:#667684;font-size:.7rem}.prediction-yoga-row p{margin:5px 0 0;font-size:.77rem;line-height:1.5;color:#536171}
.prediction-topic-varga-bridge{margin:9px 18px 0;padding:10px 12px;border-radius:9px;border:1px solid #dae5ed;background:#f7fafc;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.78rem}.prediction-topic-varga-bridge span{color:#536679}
@media(max-width:830px){.prediction-varga-grid,.prediction-yoga-list{grid-template-columns:1fr}.prediction-topic-varga-bridge{display:grid}.prediction-varga-card header{flex-direction:column}.prediction-varga-card header>span{text-align:left}}
@media(max-width:480px){.prediction-varga-card dl{grid-template-columns:1fr}.prediction-yoga-activation{margin-left:11px;margin-right:11px}}
@media print{.prediction-varga-card{break-inside:avoid}.prediction-yoga-activation{break-inside:avoid}.prediction-varga-card details,.prediction-yoga-activation:not([open]) .prediction-yoga-list{display:none}}

/* v1.13 — nested Predictions / Ayurdaya educational reference panel */
.prediction-subtabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #dbe2e8;margin:10px 0 16px;padding-bottom:10px}
.prediction-subtabs button{padding:9px 13px;border:1px solid #bfcbd5;border-radius:10px;background:#f6f9fb;color:#233446;cursor:pointer;font-weight:700}
.prediction-subtabs button.active{background:#176548;color:white;border-color:#176548}
.prediction-ayurdaya{margin:14px 0 22px;min-width:0}
.prediction-ayurdaya-card{border:1px solid #d5dfe8;border-radius:13px;background:#fff;overflow:hidden;padding:18px;min-width:0}
.prediction-ayurdaya-card>header{border-bottom:1px solid #e3e9ef;margin:0 0 14px;padding-bottom:12px}
.prediction-ayurdaya-card h3{margin:4px 0 8px;font-size:1.24rem}.prediction-ayurdaya-card h4{margin:18px 0 7px;font-size:1rem}
.prediction-ayurdaya-card p{line-height:1.58;margin:8px 0;color:#4b5d70}
.prediction-ayurdaya-caution{border:1px solid #d7dfe7;background:#f8fafb;border-radius:9px;padding:12px;line-height:1.6}
.prediction-ayurdaya-factors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:8px 0}
.prediction-ayurdaya-factors li,.prediction-ayurdaya-extra{padding:10px;border:1px solid #e2e7eb;border-radius:9px;overflow-wrap:anywhere}
.prediction-ayurdaya-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.prediction-ayurdaya-method{border:1px solid #dbe3e9;border-radius:10px;padding:12px;min-width:0;background:#fbfcfd}
.prediction-ayurdaya-method h4{margin:0 0 4px}.prediction-ayurdaya-method details>summary{cursor:pointer;font-weight:700;margin:9px 0}
.prediction-ayurdaya-table-wrap{overflow-x:auto;max-width:100%}.prediction-ayurdaya-method table{border-collapse:collapse;font-size:.75rem;width:100%}
.prediction-ayurdaya-method th,.prediction-ayurdaya-method td{padding:6px 5px;border:1px solid #dbe3e9;text-align:left}
.prediction-ayurdaya-extra{margin-top:14px}.prediction-ayurdaya-extra ul{padding-left:18px;line-height:1.7}
.prediction-ayurdaya-summary{background:#f8fafb;border:1px solid #e0e6eb;border-radius:10px;padding:13px;margin-top:12px}
.prediction-ayurdaya-summary button{padding:8px 12px;border:1px solid #b9ced4;border-radius:8px;cursor:pointer}
@media(max-width:1050px){.prediction-ayurdaya-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.prediction-ayurdaya-grid,.prediction-ayurdaya-factors{grid-template-columns:1fr}.prediction-ayurdaya-card{padding:12px}.prediction-subtabs{flex-direction:column}.prediction-subtabs button{width:100%;text-align:left}}
@media print{.prediction-ayurdaya-card{break-inside:auto}.prediction-subtabs{display:none}.prediction-ayurdaya-grid{grid-template-columns:1fr 1fr}.prediction-ayurdaya-method{break-inside:avoid}}

/* v1.14 Ayurdaya correction worksheet: scroll within the panel on narrow
   screens; never squeeze five evidence columns into word fragments. */
.prediction-ayurdaya-extra .prediction-ayurdaya-table-wrap {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}
.prediction-ayurdaya-extra .prediction-ayurdaya-table-wrap table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  font-size: .83rem;
  table-layout: auto;
}
.prediction-ayurdaya-extra .prediction-ayurdaya-table-wrap th,
.prediction-ayurdaya-extra .prediction-ayurdaya-table-wrap td {
  padding: 8px 10px;
  border: 1px solid #dbe3e9;
  text-align: left;
  white-space: nowrap;
}
.prediction-ayurdaya-extra .prediction-ayurdaya-table-wrap th {
  background: #f2f6fa;
  font-weight: 700;
}


/* v1.17.0 — source-attributed Yoga / conjunction study */
.prediction-yoga-study{margin:14px 0 22px;min-width:0}
.yoga-study-panel{border:1px solid #d3e1e6;border-radius:14px;background:#fff;padding:clamp(12px,2.2vw,24px);min-width:0;overflow:hidden}
.yoga-study-panel h3{margin:0 0 12px;color:#193448}
.yoga-study-intro{padding:0 0 14px;border-bottom:1px solid #dce5ea}
.yoga-study-intro p,.yoga-study-section>p{line-height:1.7;color:#516272}
.yoga-study-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.yoga-study-stats>div{background:#f3f8f6;border:1px solid #d7e9df;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:3px}
.yoga-study-stats strong{font-size:1.4rem;color:#176548}.yoga-study-stats span{font-size:.8rem;color:#445966}
.yoga-study-section{margin:22px 0 0;min-width:0}
.yoga-study-item{border:1px solid #dbe4e9;border-radius:12px;padding:14px;margin:12px 0;background:#fdfefe;min-width:0;overflow-wrap:anywhere}
.yoga-study-item header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.yoga-study-item h4{margin:0;font-size:1.02rem;color:#1b3546}
.yoga-study-status{font-size:.76rem;color:#215d52;background:#e9f5f0;border:1px solid #c5ded3;border-radius:999px;padding:4px 9px;white-space:normal}
.yoga-study-status.not_confirmed,.yoga-study-status.basic_indicator{color:#754c21;background:#fff6e6;border-color:#ead5b5}
.yoga-study-status.partial{color:#745024;background:#fff4db}
.yoga-study-interpretation{line-height:1.7;font-size:.96rem;color:#1e343f}
.yoga-study-citation{font-size:.81rem;color:#52677a;overflow-wrap:anywhere}
.yoga-study-citation a{color:#086a52;text-decoration:underline}
.yoga-study-item details{border-top:1px solid #e4e9ed;margin-top:10px;padding-top:9px}
.yoga-study-item summary{cursor:pointer;color:#175741;font-weight:700;line-height:1.5}
.yoga-study-checks{list-style:none;padding:0;display:grid;gap:7px}
.yoga-study-check{display:flex;align-items:flex-start;gap:9px;padding:8px;border-radius:8px;background:#f5f8fa}
.yoga-study-check strong{display:block}.yoga-study-check small{display:block;color:#556773;margin-top:3px}
.yoga-study-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.yoga-study-scroll table{border-collapse:collapse;min-width:720px;width:100%;font-size:.83rem}
.yoga-study-scroll th,.yoga-study-scroll td{padding:8px;border:1px solid #d9e1e8;text-align:left;white-space:normal}
.yoga-study-scroll th{background:#edf3f7}
.yoga-study-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.yoga-study-pair{border:1px solid #e0e7eb;border-radius:9px;padding:10px;background:#f7fafb}
.yoga-study-pair p{margin:6px 0;line-height:1.55}
.yoga-study-method{margin-top:24px;border-top:1px solid #dce4e9;padding-top:16px;line-height:1.7;color:#526372}
@media(max-width:720px){.yoga-study-pairs{grid-template-columns:1fr}.yoga-study-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.yoga-study-stats>div{padding:8px}.yoga-study-stats span{font-size:.7rem}.yoga-study-item{padding:10px}}
@media print{.yoga-study-item{break-inside:avoid}.yoga-study-scroll{overflow:visible}}
.yoga-study-approved{border-left:3px solid #286e56;background:#f4f9f6;padding:12px 14px;margin:10px 0;border-radius:7px;overflow-wrap:anywhere}
.yoga-study-approved h5{margin:0 0 5px}.yoga-study-approved p{white-space:pre-wrap;margin:6px 0;line-height:1.6}

/* Coverage is a technical diagnostic, shown only when explanations are opened. */
.prediction-coverage-disclosure{margin:0 18px 16px;border:1px solid #e0e6eb;border-radius:9px;background:#fafcfd}
.prediction-coverage-disclosure>summary{cursor:pointer;padding:10px 12px;font-weight:750}
.prediction-coverage-detail{margin:0 12px 12px;padding:12px;border:1px solid #e1e7ed;border-radius:9px;background:#fff;color:#425363}
.prediction-coverage-detail h4{font-size:.84rem;margin:0 0 8px;color:#384b5d}
.prediction-coverage-detail p{margin:0 0 8px;line-height:1.55;font-size:.8rem}
.prediction-coverage-detail p:last-child{margin-bottom:0}
.prediction-coverage-detail .prediction-english{display:block;margin-top:4px}
.prediction-coverage-detail .prediction-coverage-template{padding-top:8px;border-top:1px solid #e5e9ed;font-size:.76rem;color:#606f7e}
.prediction-topic-evidence>.prediction-coverage-detail{margin:0 12px 12px}
.prediction-reasons>.prediction-coverage-detail{margin:0 12px 12px}
@media(max-width:600px){.prediction-coverage-disclosure{margin-left:12px;margin-right:12px}}
@media print{.prediction-coverage-disclosure,.prediction-reasons:not([open])>.prediction-coverage-detail{display:none}}

/* v1.19.0 Kala Sarpa chart-specific, bilingual, non-scoring reading */
.prediction-kala-sarpa{border:1px solid #dce3e9;border-radius:12px;background:#fbfcfe;padding:14px 16px;margin:18px 0;line-height:1.65}
.prediction-kala-sarpa h4{font-size:1.04rem;margin:0 0 9px;color:#283c4e}
.prediction-kala-sarpa .prediction-kala-intro{font-weight:600}
.prediction-kala-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.prediction-kala-columns>div{min-width:0;border:1px solid #dce3e9;border-radius:9px;padding:11px 13px;background:#fff}
.prediction-kala-support{border-left:3px solid #418269!important}
.prediction-kala-care{border-left:3px solid #b3804d!important}
.prediction-kala-columns h5{font-size:.9rem;margin:0 0 6px}
.prediction-kala-columns ul,.prediction-kala-sources ul{margin:0;padding-left:22px}
.prediction-kala-columns li{margin-bottom:7px}
.prediction-kala-caution{font-size:.86rem;color:#5f6c79}
.prediction-kala-sources{margin-top:8px;border-top:1px solid #dce3e9;padding-top:9px}
.prediction-kala-sources summary{cursor:pointer;font-weight:700}
.prediction-kala-sources p{margin-top:8px}
@media(max-width:680px){.prediction-kala-columns{grid-template-columns:1fr}.prediction-kala-sarpa{padding:12px}}

/* v1.20.0 RC — Pancha Pakshi advanced planning location matches the birth form. */
.pakshi-advanced-location{margin:0}
.pakshi-advanced-location[open]>p{margin-top:.75rem;margin-bottom:.6rem}
.pakshi-advanced-location[open]>label{display:grid;gap:5px;font-weight:650;margin-top:.65rem}
.pakshi-advanced-location .pakshi-location-fields{margin-top:.65rem;margin-bottom:.65rem}
.pakshi-advanced-location input[readonly]{background:#f5f7f9;color:var(--text,#243041)}
.pakshi-advanced-location .timezone-override-box{margin-top:.7rem}
.pakshi-advanced-location .timezone-override-toggle{display:flex;align-items:center}
.pakshi-advanced-location .timezone-override-fields label{display:grid;gap:5px}
.pakshi-advanced-location .field-help{display:block;margin-top:.4rem;overflow-wrap:anywhere}
@media(max-width:650px){.pakshi-advanced-location .timezone-override-actions button{width:100%}}

/* v1.21.0 — shared graha coordinate tooltip for every chart and report. */
.legacy-chart-svg .chart-planet-token{cursor:help;outline:none;pointer-events:auto!important}
.legacy-chart-svg .chart-planet-token text{pointer-events:none}
.legacy-chart-svg .chart-planet-hitbox{fill:transparent;pointer-events:all}
.legacy-chart-svg .chart-planet-token:focus-visible{stroke:#92520c;stroke-width:.65;paint-order:stroke}
.chart-planet-tooltip{position:fixed;z-index:10000;box-sizing:border-box;max-width:min(340px,calc(100vw - 16px));width:max-content;min-width:160px;padding:10px 12px;border:1px solid #b9c5d1;border-radius:9px;background:#fffdf8;color:#162232;box-shadow:0 6px 22px #0003;white-space:pre-line;overflow-wrap:anywhere;font:500 13px/1.5 "Nirmala UI","Iskoola Pota","Noto Sans Sinhala","Segoe UI",sans-serif;pointer-events:none}
.chart-planet-tooltip[hidden]{display:none!important}
@media print{.chart-planet-tooltip{display:none!important}}

/* v1.21.4 — mobile-only controls are inert and invisible on desktop/print. */
.mobile-birth-summary,.mobile-hide-birth,.mobile-screen-navigation{display:none}
.mobile-birth-heading h2{margin-top:0}
