/* தீபாவளி மலர் — Deepavali Malar design system
   Cream paper, maroon masthead, gold double rules. Bilingual serif. */

:root {
  --paper: #f7f2e2;
  --paper-deep: #f0e8cf;
  --ink: #1c1410;
  --maroon: #7b1113;
  --maroon-deep: #5a0c0e;
  --gold: #b8860b;
  --gold-soft: #d4af37;
  --green: #1a5c38;
  --red: #a93226;
  --grey: #6b6257;
  --line: #c9bfa4;
  --serif: "EB Garamond", Georgia, "Times New Roman", serif;
  --tamil: "Noto Serif Tamil", "Latha", serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background: var(--paper);
  background-image: radial-gradient(circle at 15% 20%, rgba(212,175,55,.06) 0, transparent 40%),
                    radial-gradient(circle at 85% 80%, rgba(123,17,19,.05) 0, transparent 45%);
  color: var(--ink);
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.65;
}

.wrap { max-width: 1060px; margin: 0 auto; padding: 0 20px; }

/* ---------- masthead ---------- */
.masthead {
  background: var(--maroon);
  color: #f7f2e2;
  border-bottom: 6px double var(--gold-soft);
  padding: 34px 0 26px;
  text-align: center;
}
.masthead .deepam { font-size: 40px; letter-spacing: 8px; }
.masthead h1 {
  font-family: var(--tamil), var(--serif);
  font-size: clamp(30px, 5vw, 52px);
  font-weight: 700;
  letter-spacing: 1px;
  margin: 6px 0 2px;
}
.masthead .sub {
  font-size: clamp(15px, 2.2vw, 20px);
  font-style: italic;
  opacity: .95;
}
.masthead .edition {
  margin-top: 10px; font-size: 14px; letter-spacing: 2px; text-transform: uppercase; opacity: .85;
}
.masthead a { color: #f7f2e2; text-decoration: none; }

/* ---------- nav ---------- */
nav {
  background: var(--paper-deep);
  border-bottom: 1px solid var(--line);
  text-align: center; padding: 10px 0;
}
nav a {
  color: var(--maroon); text-decoration: none; font-weight: 600;
  margin: 0 14px; font-size: 16px;
}
nav a:hover { text-decoration: underline; }nav a[aria-current="page"] {
  border-bottom: 3px solid var(--gold); padding-bottom: 2px;
  pointer-events: none;
}

/* ---------- headlines ---------- */
.rule { border: 0; border-top: 3px double var(--gold); margin: 0 auto; }
section { padding: 34px 0 10px; }
.kicker {
  color: var(--gold); font-size: 13px; letter-spacing: 3px; text-transform: uppercase;
  text-align: center; font-weight: 700;
}
h2 {
  font-size: clamp(24px, 3.6vw, 34px); text-align: center; margin: 4px 0 18px;
  font-weight: 700;
}
.ta { font-family: var(--tamil), var(--serif); }
.dek {
  text-align: center; font-style: italic; color: var(--grey);
  max-width: 760px; margin: -8px auto 20px; font-size: 19px;
}

/* ---------- story ---------- */
.prose { max-width: 820px; margin: 0 auto; font-size: 19px; }
.prose p { margin: 0 0 16px; }
.prose .dropcap::first-letter {
  font-size: 3.2em; float: left; line-height: .9; padding: 4px 10px 0 0;
  color: var(--maroon); font-weight: 700;
}
.quote {
  border-left: 4px solid var(--gold); margin: 22px 0; padding: 8px 18px;
  font-style: italic; color: var(--maroon-deep); font-size: 20px;
}

/* ---------- stat band ---------- */
.stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px; margin: 26px 0;
}
.stat {
  background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--gold);
  text-align: center; padding: 16px 8px;
  box-shadow: 0 2px 0 rgba(28,20,16,.06);
}
.stat .n { font-size: 30px; font-weight: 700; color: var(--maroon); display: block; }
.stat .l { font-size: 13.5px; color: var(--grey); line-height: 1.35; }

/* ---------- claims ---------- */
.claims { max-width: 900px; margin: 0 auto; }
.claim {
  background: #fff; border: 1px solid var(--line); padding: 18px 20px 14px;
  margin-bottom: 16px; position: relative;
}
.claim::before {
  content: "✦"; position: absolute; top: -12px; left: 18px;
  color: var(--gold); background: var(--paper); font-size: 18px; padding: 0 4px;
}
.claim .cid {
  font-size: 12.5px; letter-spacing: 2px; color: var(--gold); font-weight: 700;
}
.claim p { font-size: 17.5px; margin: 4px 0 10px; }
.claim .meta { font-size: 14px; color: var(--grey); }
.claim .links { margin-top: 8px; font-size: 15px; }
.claim .links a { color: var(--green); font-weight: 600; text-decoration: none; margin-right: 16px; }
.claim .links a:hover { text-decoration: underline; }
.badge {
  display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 1px;
  padding: 2px 8px; border: 1px solid; margin-left: 8px; vertical-align: 2px;
}
.badge.l4 { color: var(--green); border-color: var(--green); }
.badge.l3 { color: var(--gold); border-color: var(--gold); }

/* ---------- tables ---------- */
.tblwrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); }
table { border-collapse: collapse; width: 100%; min-width: 1000px; font-size: 15.5px; }
th {
  background: var(--maroon); color: #f7f2e2; text-align: left; padding: 9px 12px;
  font-size: 14px; letter-spacing: .5px; white-space: nowrap; position: sticky; top: 0;
}
td { padding: 8px 12px; border-top: 1px solid #eee6d2; vertical-align: top; }
tr:hover td { background: #fbf7ea; }
.num { text-align: right; white-space: nowrap; }

/* ---------- ledger controls ---------- */
.controls {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 12px; align-items: center;
}
.controls select, .controls input[type="search"] {
  font-family: var(--serif); font-size: 16px; padding: 8px 10px;
  border: 1px solid var(--line); background: #fff; color: var(--ink);
}
.controls input[type="search"] { min-width: 260px; }
.controls .count { color: var(--grey); font-size: 15px; margin-left: auto; }

/* ---------- lamps / footer ---------- */
.lamps { text-align: center; font-size: 22px; letter-spacing: 10px; color: var(--gold); margin: 30px 0 6px; }
footer {
  border-top: 6px double var(--gold-soft); margin-top: 40px; padding: 26px 0 40px;
  text-align: center; color: var(--grey); font-size: 15.5px;
}
footer a { color: var(--maroon); }
footer .ta { font-size: 17px; }

.download-pill {
  display: inline-block; border: 1.5px solid var(--maroon); color: var(--maroon);
  padding: 6px 16px; text-decoration: none; font-weight: 600; font-size: 15.5px;
  margin: 4px 6px 4px 0;
}
.download-pill:hover { background: var(--maroon); color: #f7f2e2; }

.verdict { font-weight: 700; white-space: nowrap; font-size: 13.5px; letter-spacing: .5px; }
.v-HIJACKED { color: var(--red); }
.v-NEVER-IN-REGISTRY { color: var(--maroon); }
.v-NO-ISBN { color: var(--grey); }

.wave {
  display: inline-block; background: var(--paper-deep); border: 1px solid var(--line);
  padding: 2px 10px; margin: 2px 4px 2px 0; font-size: 15px;
}

@media print { nav, .controls { display: none; } }

/* facsimile plate strip — malar-style, tap for full size */
.plates { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:18px 0 6px; }
.plates a { display:block; text-decoration:none; color:var(--ink); }
.plates img { width:100%; height:230px; object-fit:cover; object-position:top; border:1px solid var(--line); background:#fff; display:block; }
.plates a:hover img { border-color:var(--deepam); }
.plates span { display:block; font-size:13.5px; color:var(--grey); margin-top:6px; line-height:1.35; }
.plates-note { text-align:center; font-size:14px; color:var(--grey); font-style:italic; }
@media (max-width:760px) { .plates { grid-template-columns:repeat(2,1fr); } .plates img { height:190px; } }

/* copy-isbn affordance in the ledger */
button.copy { font:inherit; font-size:13px; letter-spacing:.06em; text-transform:uppercase; background:none; border:1px solid var(--line); color:var(--deep); padding:1px 6px; margin-left:6px; cursor:pointer; }
button.copy:hover { border-color:var(--deepam); color:var(--sindoor); }
button.copy.done, a.vlink.done { color:var(--deepam); }
a.vlink.done { font-size:0; }
a.vlink.done::after { content:"registry · copied"; font-size:13px; }
td.verify { white-space: normal; line-height: 1.75; width: 190px; }
td.verify .vlink, td.verify button.copy { display:inline-block; font-size:12px; }
td.vcell { white-space:nowrap; font-size:13.5px; }
td.vcell .vlink { margin-left:8px; }

/* verify cell: keep the four sources on one tight line */
td.verify { white-space: normal; line-height: 1.75; width: 190px; }
td.verify a.vlink { margin-right:2px; }
td.verify a.vlink + a.vlink::before { content:"·"; color:var(--line); margin-right:4px; }

/* kicker directly followed by a dek (no h2 between) */
.kicker + .dek { margin-top: 8px; }

/* ---------- TLDR & pattern ---------- */
.tldr { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 980px; margin: 18px auto 0; }
.tldr > div { background: #fff; border: 1px solid var(--line); padding: 18px 22px; }
.tldr-lang { font-size: 12.5px; letter-spacing: 2px; text-transform: uppercase; color: var(--maroon); border-bottom: 3px double var(--gold); padding-bottom: 6px; margin-bottom: 12px; font-weight: 700; }
.tldr-ta { font-family: var(--tamil); font-size: 16.5px; line-height: 1.75; }
.tldr-ta li, .tldr-en li { margin: 0 0 10px 20px; }
.tldr-en { font-size: 16.5px; line-height: 1.6; }
@media (max-width: 800px) { .tldr { grid-template-columns: 1fr; } }.tldr-box { max-width: 980px; margin: 18px auto 0; background: #fff; border: 1px solid var(--line); }
.tldr-box summary { cursor: pointer; list-style: none; padding: 14px 20px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font-size: 15px; font-weight: 700; color: var(--maroon); }
.tldr-box summary::-webkit-details-marker { display: none; }
.tldr-box summary::before { content: "▸"; color: var(--gold); font-size: 18px; align-self: center; transition: transform .15s ease; }
.tldr-box[open] summary::before { transform: rotate(90deg); }
.tldr-box[open] summary { border-bottom: 3px double var(--gold); }
.tldr-box .tldr { margin: 0; padding: 18px 20px; background: none; border: 0; max-width: none; }
.tldr-box .tldr > div { background: none; border: 0; padding: 0; }
.tldr-box .s-lab { white-space: nowrap; }
.tldr-box .s-lab.when-open { display: none; }
.tldr-box[open] .s-lab.when-open { display: inline; }
.tldr-box[open] .s-lab.when-closed { display: none; }
.tldr-box .s-figs { font-weight: 400; color: var(--ink); font-size: 14px; }
@media (max-width: 800px) { .tldr-box .s-figs { flex-basis: 100%; } }
@media print { .tldr-box:not([open]) > *:not(summary) { display: block !important; } .tldr-box summary::before { content: "▾"; } }
table.actor { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); margin: 14px 0; font-size: 15px; }
table.actor th, table.actor td { border: 1px solid var(--line); padding: 9px 12px; text-align: left; vertical-align: top; }
table.actor th { background: var(--maroon); color: #f7f2e2; font-weight: 600; }
table.actor td:first-child { width: 22%; }
.muted { color: var(--grey); }
