/* tokens.css — Palette, theme tokens, dark theme, settings control, Hindi mode
   Extracted from the single-file UI; loaded by index.html in order. */
  /* ====================================================================
     POTHI — a modern homage to a hand-bound Sanskrit manuscript.
     Saffron Earth — aged palm-leaf, warm sand + terracotta, teal accent.
     Light mode only. System fonts + inline SVG only. No external
     resources of any kind (offline .exe bundle).
     ==================================================================== */

  :root {
    /* — Saffron Earth palette — */
    --bg:        #f3e7d3;   /* warm sand */
    --surface:   #fcf4e6;   /* card */
    --surface-2: #efe1c9;   /* inset / zebra */
    --line:      #d8c3a0;   /* warm hairline */
    --line-soft: #d8c3a055;
    --ink:       #2e2114;   /* dark brown */
    --muted:     #6f5c40;
    --faint:     #927a55;
    --accent:    #c25e1d;   /* deep saffron — primary/emphasis */
    --accent-2:  #1f6f6b;   /* teal — secondary accent */
    --gold:      #b5852a;   /* brass — ornament + dignity */
    --good:      #3f7d44;
    --bad:       #aa3a2e;
    --chart-bg:  #fcf4e6;
    --field:     #fdf8ee;
    --accent-ink:#fcf4e6;

    /* — refined elevation + craft tokens — */
    --shadow:    0 1px 1px #5c3a1014, 0 6px 16px -10px #5c3a1038, 0 22px 48px -30px #5c3a1066;
    --shadow-sm: 0 1px 0 #ffffff70 inset, 0 2px 6px -4px #5c3a1040, 0 10px 24px -18px #5c3a1055;
    --shadow-lift:0 1px 0 #ffffff80 inset, 0 4px 10px -6px #5c3a1050, 0 18px 34px -22px #5c3a1066;
    --ring:      0 0 0 3px #c25e1d2e;
    --radius:    7px;
    --radius-lg: 12px;
    --radius-sm: 5px;
    /* warm parchment gradient wash for elevated surfaces */
    --paper:     linear-gradient(180deg, #fdf6ea 0%, #fcf4e6 46%, #f9eedb 100%);
    --paper-deep:linear-gradient(180deg, #fbf2e1 0%, #f6ebd4 100%);

    --head: "Iowan Old Style","Palatino Linotype",Palatino,Cambria,Georgia,serif;
    --sans: ui-sans-serif,"Segoe UI",system-ui,Roboto,Helvetica,sans-serif;
    --mono: "Cascadia Code",Consolas,ui-monospace,monospace;
    --deva: "Nirmala UI","Noto Sans Devanagari",var(--head);
  }

  /* — Dark (night) theme: override the palette tokens — */
  html[data-theme="dark"] {
    --bg:#17120c; --surface:#221b13; --surface-2:#2a2118; --line:#473a28; --line-soft:#473a2855;
    --ink:#ece1ce; --muted:#b39d7c; --faint:#8c7857; --accent:#e07a3a; --accent-2:#3aa39c;
    --gold:#cfa14a; --good:#5da866; --bad:#d4584a; --chart-bg:#221b13; --field:#1f1810;
    --accent-ink:#17120c;
    --paper:linear-gradient(180deg,#241c13 0%,#211a12 46%,#1d160f 100%);
    --paper-deep:linear-gradient(180deg,#241c13 0%,#1d160f 100%);
    --shadow:0 1px 1px #00000030, 0 6px 16px -10px #00000060, 0 22px 48px -30px #00000080;
  }
  /* settings control */
  .fb-modal { display:none; position:fixed; inset:0; z-index:210; background:rgba(20,15,8,.55); align-items:center; justify-content:center; }
  .fb-modal.open { display:flex; }
  .fb-box { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:22px 24px;
    max-width:520px; width:calc(100% - 32px); margin:16px; box-shadow:var(--shadow); max-height:86vh; overflow-y:auto; }
  .fb-box h3 { margin:0 0 4px; color:var(--gold); font-size:17px; }
  .fb-box .fb-lead { font-size:12.5px; color:var(--muted); margin:0 0 14px; line-height:1.55; }
  .fb-kinds { display:flex; gap:8px; margin:0 0 12px; flex-wrap:wrap; }
  .fb-kind { padding:6px 14px; border:1px solid var(--line); border-radius:8px; background:var(--panel);
    cursor:pointer; font-size:13px; font-family:var(--head); color:var(--ink); }
  .fb-kind.active { background:linear-gradient(135deg,var(--gold),var(--accent)); color:#fff; border-color:transparent; }
  .fb-box textarea { width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:8px;
    padding:10px 12px; font:14px/1.6 inherit; background:var(--panel); color:var(--ink); resize:vertical; }
  .fb-box input.fb-contact { width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:8px;
    padding:9px 12px; font:13px inherit; margin-top:10px; background:var(--panel); color:var(--ink); }
  .fb-actions { display:flex; gap:9px; justify-content:flex-end; align-items:center; margin-top:14px; }
  .fb-status { font-size:12.5px; color:var(--muted); margin-right:auto; }
  .fb-status.err { color:#b3482f; }
  .fb-status.ok { color:#3f7a44; }
  .dmy { display:inline-flex; align-items:center; gap:4px; }
  .dmy-sep { color:var(--muted); font-weight:600; }
  .dmy-in { font-family:var(--mono); font-variant-numeric:tabular-nums; text-align:center;
    border:1px solid var(--line); border-radius:7px; padding:9px 4px; background:var(--panel);
    color:var(--ink); font-size:14px; }
  .dmy-in:focus { outline:2px solid var(--accent-2); outline-offset:1px; }
  .dmy-in.dmy-d, .dmy-in.dmy-m { width:3.1em; }
  .dmy-in.dmy-y { width:4.6em; }
  .dmy-in.bad { border-color:#b3482f; background:color-mix(in srgb,#b3482f 8%, var(--panel)); }
  .date-hint { font-size:11px; color:var(--muted); letter-spacing:.03em; margin-top:3px; }
  .brand-contact { font-size:11.5px; color:var(--muted); letter-spacing:.02em; margin-top:2px; display:none; }
  .brand-contact.on { display:block; }
  #brandMark img.brand-logo { width:38px; height:38px; object-fit:contain; border-radius:6px; display:block; }
  .brand-poweredby { font-size:10.5px; color:var(--muted); letter-spacing:.04em; margin-top:3px; opacity:.85; }
  .settings-fab { position:fixed; top:14px; right:16px; z-index:50;
    display:inline-flex; align-items:center; gap:7px; padding:9px 15px 9px 13px;
    background:linear-gradient(135deg,var(--gold),var(--accent)); color:#fff;
    border:1px solid rgba(0,0,0,.12); border-radius:9px; cursor:pointer;
    font-family:var(--head); font-size:13.5px; font-weight:600; letter-spacing:.02em;
    box-shadow:0 3px 10px #5c3a1040; transition:transform .12s ease, box-shadow .12s ease, filter .12s ease; }
  .settings-fab .sf-gear { font-size:16px; line-height:1; display:inline-block; transition:transform .35s ease; }
  .settings-fab:hover { transform:translateY(-1px); box-shadow:0 6px 16px #5c3a1055; filter:brightness(1.06); }
  .settings-fab:hover .sf-gear { transform:rotate(60deg); }
  .settings-fab:active { transform:translateY(0); }
  .settings-fab:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
  @media (max-width:640px){ .settings-fab .sf-label{ display:none; } .settings-fab{ padding:9px 11px; } }
  .settings-panel { position:fixed; top:62px; right:16px; z-index:50; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:12px 14px; box-shadow:var(--shadow); display:none; min-width:210px; }
  .settings-panel.open { display:block; max-height:78vh; overflow-y:auto; }
  .consent-modal { display:none; position:fixed; inset:0; z-index:200; background:rgba(20,15,8,.55); align-items:center; justify-content:center; }
  .consent-box { background:var(--surface,#fff); border:1px solid var(--line); border-radius:14px; padding:22px 24px; max-width:440px; margin:16px; box-shadow:var(--shadow); }
  .consent-box h3 { margin:0 0 10px; color:var(--gold); }
  .consent-box p { font-size:13px; line-height:1.55; color:var(--ink); }
  .rep-secs { display:grid; grid-template-columns:1fr 1fr; gap:2px 10px; margin:4px 0; }
  .rep-secs label { font-size:12px; display:flex; gap:5px; align-items:center; }
  .settings-panel h4 { margin:0 0 8px; font-size:13px; color:var(--gold); }
  .settings-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:7px 0; font-size:13px; }
  .br-in { width:100%; margin:3px 0; padding:5px 8px; border:1px solid var(--line-soft,#d8c9a8); border-radius:6px; font-family:inherit; font-size:12px; background:var(--field,#fff); color:var(--ink); }
  .rpt-logo { max-height:84px; max-width:240px; object-fit:contain; margin:0 auto 10px; display:block; }
  .rpt-practitioner { text-align:center; }
  .rpt-by { font-size:11px; color:var(--muted); }
  /* Hindi (Devanagari) navigation mode — show the देवनागरी tab labels, hide English */
  .tab-deva { display:none; }
  html[data-lang="hi"] .mi-subs .en-lbl, html[data-lang="hi"] .it-subs .en-lbl { display:none; }
  html[data-lang="hi"] .it-subs .tab-deva { display:inline; }
  html[data-lang="hi"] .mi-subs .deva, html[data-lang="hi"] .it-subs .deva { margin-left:0; font-size:13px; color:var(--ink); opacity:1; }
