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

:root {
    --xnrPrimary: #1f5233;
    --xnrSecondary: #3d7a4e;
    --xnrAccent: #e0a80d;
    --xnrInk: #1b2420;
    --xnrMuted: #55635c;
    --xnrLine: #dbe6dd;
    --xnrSurface: #eef4ef;
    --xnrPanel: #ffffff;
    --xnrNight: #14231a;
    --xnrUi: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif;
    --xnrDisplay: "Times New Roman", Times, serif;
    --xnrR1: 6px;
    --xnrR2: 14px;
    --xnrR3: 24px;
    --xnrSh1: 0 4px 14px rgba(20, 35, 26, .06);
    --xnrSh2: 0 12px 32px rgba(20, 35, 26, .13);
    --xnrSh3: 0 24px 58px rgba(20, 35, 26, .20);
}

html { scroll-behavior: smooth; }

body {
    font-family: var(--xnrDisplay);
    background:
        radial-gradient(ellipse at 50% 0%, rgba(224, 168, 13, .13), transparent 42%),
        linear-gradient(180deg, #f8fbf8 0%, #e6efe8 62%, #eef4ef 100%);
    color: var(--xnrInk);
    line-height: 1.75;
    font-size: 16px;
}

a {
    color: var(--xnrPrimary);
    text-decoration: underline;
    transition: color .2s ease;
}
a:hover { color: #8a5f02; }

/* ---------- top bar ---------- */
.xnrBar {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 15px 20px;
    background: rgba(248, 251, 248, .93);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--xnrLine);
    box-shadow: var(--xnrSh1);
}
.xnrBarInner {
    max-width: 1080px;
    margin: 0 auto;
    text-align: center;
}
.xnrBarLogo {
    font-family: var(--xnrUi);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .09em;
    color: var(--xnrPrimary);
    text-decoration: none;
    border-bottom: 3px solid var(--xnrAccent);
    padding-bottom: 3px;
}

/* ---------- plain page heading (no badge) ---------- */
.xnrTop {
    max-width: 880px;
    margin: 0 auto;
    padding: 56px 20px 28px;
}
.xnrTopTitle {
    font-size: clamp(26px, 4vw, 42px);
    line-height: 1.18;
    font-weight: 700;
    color: var(--xnrPrimary);
    margin-bottom: 12px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--xnrPrimary);
}
.xnrTopSub {
    color: var(--xnrMuted);
    font-size: 17px;
    line-height: 1.7;
}

.xnrShell {
    max-width: 880px;
    margin: 0 auto;
    padding: 0 20px 76px;
}

/* ---------- summary table that opens every page ---------- */
.xnrFactsCap {
    font-family: var(--xnrUi);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--xnrSecondary);
    margin: 26px 0 10px;
}
.xnrScroller { width: 100%; overflow: auto; }
.xnrFacts {
    width: 100%;
    border-collapse: collapse;
    background: var(--xnrPanel);
    border: 1px solid var(--xnrPrimary);
    font-size: 15px;
    margin-bottom: 34px;
    min-width: 460px;
}
.xnrFacts caption {
    caption-side: top;
    text-align: left;
    padding: 12px 16px;
    background: var(--xnrPrimary);
    color: #ffffff;
    font-family: var(--xnrUi);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .04em;
}
.xnrFacts th {
    width: 42%;
    text-align: left;
    vertical-align: top;
    padding: 12px 16px;
    border-bottom: 1px solid var(--xnrLine);
    border-right: 1px solid var(--xnrLine);
    background: var(--xnrSurface);
    font-family: var(--xnrUi);
    font-size: 14px;
    font-weight: 700;
    color: var(--xnrInk);
}
.xnrFacts td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--xnrLine);
    color: var(--xnrMuted);
    vertical-align: top;
}
.xnrFacts tr:last-child th,
.xnrFacts tr:last-child td { border-bottom: none; }

/* ---------- prose panel ---------- */
.xnrDoc {
    background: var(--xnrPanel);
    border: 1px solid var(--xnrLine);
    border-radius: var(--xnrR1);
    box-shadow: var(--xnrSh1);
    padding: 40px 44px 38px;
}
@media (max-width: 740px) {
    .xnrDoc { padding: 26px 20px; }
    .xnrTop { padding-top: 42px; }
    .xnrFacts { min-width: 380px; }
}

.xnrDoc h2 {
    font-family: var(--xnrUi);
    font-size: clamp(19px, 2.6vw, 24px);
    line-height: 1.28;
    font-weight: 700;
    color: var(--xnrPrimary);
    margin: 34px 0 12px;
    padding-top: 18px;
    border-top: 1px solid var(--xnrLine);
}
.xnrDoc h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.xnrDoc h3 {
    font-family: var(--xnrUi);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--xnrSecondary);
    margin: 20px 0 8px;
}
.xnrDoc p {
    color: var(--xnrMuted);
    margin-bottom: 14px;
}
.xnrDoc p:last-child { margin-bottom: 0; }
.xnrDoc ul,
.xnrDoc ol {
    padding-left: 22px;
    margin: 0 0 15px;
    color: var(--xnrMuted);
}
.xnrDoc li { margin-bottom: 7px; }
.xnrDoc li > ul,
.xnrDoc li > ol { margin: 7px 0 0; }
.xnrDoc strong { color: var(--xnrInk); }

/* ---------- opening paragraph that carries the date ---------- */
.xnrStampLine {
    font-family: var(--xnrUi);
    font-size: 14px;
    line-height: 1.7;
    color: var(--xnrInk);
    background: var(--xnrSurface);
    border-left: 4px solid var(--xnrAccent);
    padding: 14px 18px;
    margin-bottom: 22px;
}
.xnrStampLine strong { color: var(--xnrPrimary); }
.xnrStampLine + h2 { margin-top: 0; padding-top: 0; border-top: none; }

/* ---------- secondary tables inside prose ---------- */
.xnrTable {
    width: 100%;
    border-collapse: collapse;
    margin: 6px 0 22px;
    font-size: 15px;
    border: 1px solid var(--xnrLine);
    min-width: 420px;
}
.xnrTable th {
    background: var(--xnrSurface);
    color: var(--xnrPrimary);
    text-align: left;
    padding: 11px 14px;
    font-family: var(--xnrUi);
    font-size: 13px;
    letter-spacing: .04em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--xnrPrimary);
}
.xnrTable td {
    padding: 11px 14px;
    border-bottom: 1px solid var(--xnrLine);
    color: var(--xnrMuted);
    vertical-align: top;
}
.xnrTable tr:last-child td { border-bottom: none; }

/* ---------- inline callout ---------- */
.xnrNote {
    margin: 20px 0 22px;
    padding: 16px 20px;
    border: 1px dashed var(--xnrSecondary);
    border-radius: var(--xnrR1);
    background: rgba(61, 122, 78, .07);
}
.xnrNote p { margin: 0; color: var(--xnrInk); }
.xnrWarn {
    margin: 20px 0 22px;
    padding: 16px 20px;
    border: 1px solid rgba(224, 168, 13, .55);
    border-left: 5px solid var(--xnrAccent);
    border-radius: var(--xnrR1);
    background: rgba(224, 168, 13, .1);
}
.xnrWarn p { margin: 0; color: var(--xnrInk); }

/* ---------- definition rows ---------- */
.xnrDefs { margin: 4px 0 20px; }
.xnrDefsRow {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 18px;
    padding: 12px 0;
    border-bottom: 1px solid var(--xnrLine);
}
.xnrDefsRow:last-child { border-bottom: none; }
.xnrDefsKey {
    font-family: var(--xnrUi);
    font-size: 14px;
    font-weight: 700;
    color: var(--xnrInk);
}
.xnrDefsVal { font-size: 15px; color: var(--xnrMuted); }
@media (max-width: 620px) {
    .xnrDefsRow { grid-template-columns: 1fr; gap: 4px; }
}

/* ---------- footer ---------- */
.xnrFoot {
    margin-top: 42px;
    background: #dcecdf;
    color: #33473a;
    padding: 26px 20px 20px;
    font-family: var(--xnrUi);
    text-align: center;
    border-top: 1px solid #bcd6c2;
}
.xnrFootInner {
    max-width: 900px;
    margin: 0 auto;
}
.xnrFootLinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 24px;
    margin-bottom: 12px;
}
.xnrFootLinks a {
    color: #2b5b3b;
    font-size: 12px;
    text-decoration: underline;
}
.xnrFootLinks a:hover { color: #8a5f02; }
.xnrFootCopy {
    font-size: 12px;
    color: #4a6353;
}
