/* desk.css — the reading desk.
   A full-page surface that sits over the app during a consultation. Two columns
   on a desktop, one on a phone, and it prints as a clean sheet. */

.dk-screen { position:fixed; inset:0; z-index:200; overflow-y:auto;
  background:var(--paper); display:none; }
.dk-screen.open { display:block; }
body.dk-on { overflow:hidden; }

.dk-wrap { max-width:1120px; margin:0 auto; padding:24px 20px 60px; }

.dk-top { display:flex; align-items:flex-start; gap:16px; margin-bottom:6px;
  border-bottom:1px solid var(--line); padding-bottom:12px; }
.dk-top h2 { margin:0; font-family:var(--head); font-size:24px; color:var(--accent); }
.dk-birth { color:var(--muted); font-size:12.5px; margin-top:3px; font-family:var(--mono); }
.dk-actions { margin-left:auto; display:flex; gap:8px; flex:0 0 auto; }

.dk-lagna { margin:12px 0 4px; font-size:14.5px; color:var(--ink); }
.dk-lagna b { color:var(--gold); }
.dk-lead { color:var(--muted); font-size:13.5px; line-height:1.6; margin:2px 0 14px;
  max-width:70ch; }

.dk-cols { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:26px;
  align-items:start; }
.dk-left, .dk-right { min-width:0; }
.dk-chart { max-width:420px; }
.dk-chart svg { width:100%; height:auto; }

.dk-sec { margin:0 0 20px; }
.dk-sec h3 { font-family:var(--head); font-size:13px; text-transform:uppercase;
  letter-spacing:.07em; color:var(--gold); margin:0 0 8px; font-weight:700; }
.dk-h4 { font-size:11.5px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); margin:12px 0 4px; font-weight:700; }

.dk-chain { font-family:var(--mono); font-size:15px; color:var(--accent);
  margin-bottom:8px; word-break:break-word; }

.dk-row { display:flex; gap:10px; align-items:baseline; padding:4px 0;
  border-bottom:1px dotted var(--line-soft); font-size:13px; }
.dk-row:last-child { border-bottom:0; }
.dk-k { font-family:var(--mono); font-size:11.5px; color:var(--accent-2);
  flex:0 0 8.5em; font-variant-numeric:tabular-nums; }
.dk-v { flex:1 1 auto; min-width:0; }
.dk-t { color:var(--muted); font-size:11.5px; flex:0 0 auto; }

.dk-yoga { padding:7px 0; border-bottom:1px dotted var(--line-soft); }
.dk-yoga:last-child { border-bottom:0; }
.dk-yh { display:flex; gap:8px; align-items:center; flex-wrap:wrap; font-size:13.5px; }
.dk-tag { font-size:10px; text-transform:uppercase; letter-spacing:.05em;
  padding:2px 7px; border-radius:99px; border:1px solid var(--line);
  color:var(--muted); }
.dk-tag.full { border-color:var(--good, #3f7a44); color:var(--good, #3f7a44); }
.dk-tag.weak { border-color:var(--muted); color:var(--muted); }
.dk-note { font-size:12px; color:var(--muted); line-height:1.5; margin-top:3px; }
.dk-note.em { color:var(--ink); }
.dk-src { font-size:11px; color:var(--accent-2); font-family:var(--mono); margin-top:2px; }

.dk-tblwrap { overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
.dk-tbl { width:100%; font-size:12.5px; min-width:340px; }
.dk-client { border-top:2px solid var(--gold); padding-top:14px; }

@media (max-width: 860px) {
  .dk-cols { grid-template-columns:1fr; gap:14px; }
  /* Stacked, the chart would otherwise stretch to the full column width and
     push everything below it off the first screen — a square grows in both
     directions. Cap it and centre it. */
  .dk-chart { max-width:min(100%, 460px); margin:0 auto; }
  .dk-wrap { padding:16px 12px 48px; }
  .dk-top h2 { font-size:20px; }
  .dk-k { flex:0 0 7em; }
}

/* Printing the desk prints the consultation sheet, not the app behind it. */
@media print {
  body.dk-on > *:not(.dk-screen) { display:none !important; }
  .dk-screen { position:static; overflow:visible; background:#fff; }
  .dk-actions, .dk-client .fb-actions, .dk-client .cl-add { display:none !important; }
  .dk-cols { grid-template-columns:1fr 1fr; }
  .dk-sec { break-inside:avoid; }
  .dk-yoga { break-inside:avoid; }
}

/* ===== The client's copy, in their language ===== */
.rg-langs { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 6px; }
.rg-lang { display:flex; flex-direction:column; align-items:center; gap:1px;
  padding:9px 15px; min-width:5.5em; }
.rg-native { font-size:15px; line-height:1.3; }
.rg-en { font-size:10.5px; color:var(--muted); }
.rg-sheet .rg-facts td:first-child, .rg-sheet .rg-tab td:first-child { color:var(--muted); }
.rg-sheet .rg-tab { width:100%; }
.rg-sheet .rg-tab th { text-align:left; font-size:12px; color:var(--gold);
  border-bottom:1px solid var(--line); padding-bottom:4px; }
.rg-list { margin:4px 0 0 18px; padding:0; font-size:13.5px; line-height:1.7; }
.rg-note { margin-top:16px; padding-top:10px; border-top:1px dashed var(--line);
  font-size:11.5px; color:var(--muted); line-height:1.6; }
/* Indic scripts need more room between lines than Latin does. */
.rg-sheet[lang="ta"], .rg-sheet[lang="ml"], .rg-sheet[lang="te"],
.rg-sheet[lang="kn"], .rg-sheet[lang="bn"] { line-height:1.85; }
/* A square chart stretched to the page width pushes the tables off the first
   sheet — cap and centre it, as the reading desk does. */
.rg-sheet .rpt-chart { max-width:min(100%, 420px); margin:0 auto; }
.rg-sheet .rpt-chart svg { width:100%; height:auto; }

/* ===== The practice, as numbers ===== */
.db-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px; margin:6px 0 4px; }
.db-stat { background:var(--panel); border:1px solid var(--line); border-radius:9px;
  padding:11px 13px; min-width:0; }
.db-val { font-family:var(--head); font-size:21px; color:var(--accent);
  line-height:1.15; font-variant-numeric:tabular-nums; word-break:break-word; }
.db-lab { font-size:11px; text-transform:uppercase; letter-spacing:.05em;
  color:var(--gold); margin-top:3px; font-weight:700; }
.db-note { font-size:11.5px; color:var(--muted); margin-top:3px; line-height:1.45; }

/* ===== Present mode — the window a client sees on a shared screen ===== */
body.pv-mode > *:not(#presentScreen) { display:none !important; }
.pv-screen { position:fixed; inset:0; background:var(--paper); color:var(--ink);
  display:flex; flex-direction:column; padding:26px 30px; overflow-y:auto; }
.pv-wait { margin:auto; color:var(--muted); font-size:16px; }
.pv-head { display:flex; align-items:flex-start; gap:20px;
  border-bottom:1px solid var(--line); padding-bottom:14px; }
.pv-head h1 { margin:0; font-family:var(--head); font-size:30px; color:var(--accent); }
.pv-born { color:var(--muted); font-size:14px; margin-top:4px; font-family:var(--mono); }
.pv-lagna { margin-left:auto; text-align:right; font-family:var(--head);
  font-size:20px; color:var(--gold); line-height:1.4; }
.pv-lagna span { font-size:14px; color:var(--muted); font-family:var(--body); }
.pv-body { flex:1 1 auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:30px; align-items:start; padding:20px 0; }
.pv-chart { max-width:520px; margin:0 auto; }
.pv-chart svg { width:100%; height:auto; }
.pv-tab { width:100%; border-collapse:collapse; font-size:16px; }
.pv-tab th { text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--gold); padding:6px 10px; border-bottom:1px solid var(--line); }
.pv-tab td { padding:9px 10px; border-bottom:1px solid var(--line-soft); }
.pv-dasha { margin-top:20px; padding:14px 16px; border:1px solid var(--line);
  border-left:3px solid var(--gold); border-radius:9px; font-family:var(--mono);
  font-size:17px; color:var(--accent); }
.pv-dasha span { display:block; font-family:var(--body); font-size:11px;
  text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:4px; }
.pv-foot { border-top:1px solid var(--line); padding-top:12px; display:flex;
  align-items:center; justify-content:space-between; color:var(--muted); font-size:12.5px; }
@media (max-width: 900px) {
  .pv-body { grid-template-columns:1fr; }
  .pv-head h1 { font-size:23px; }
}
