/*!
 * New Sarkari Results — portal styles.
 * Hand-authored port of the prototype's Tailwind design system (no CDN, no build step).
 * Tokens live on :root so the Customizer can repaint everything from PHP.
 */

/* ============================================================
   1. Tokens
   ============================================================ */
:root {
	--nsr-crimson: #b91c1c;
	--nsr-crimson-dark: #7f1d1d;
	--nsr-navy: #1e3a8a;
	--nsr-gold: #f59e0b;
	--nsr-green: #15803d;
	--nsr-magenta: #be185d;
	--nsr-amber-soft: #fcd34d;

	--nsr-crimson-ink: #b91c1c;
	--nsr-navy-ink: #1e3a8a;
	--nsr-green-ink: #15803d;
	--nsr-magenta-ink: #be185d;

	--nsr-bg: #f1f5f9;
	--nsr-surface: #ffffff;
	--nsr-surface-2: #f8fafc;
	--nsr-text: #0f172a;
	--nsr-muted: #475569;
	--nsr-line: #cbd5e1;
	--nsr-line-soft: #e2e8f0;
	--nsr-footer-bg: #0f172a;
	--nsr-chev-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
	--nsr-footer-text: #cbd5e1;

	--nsr-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .1);
	--nsr-shadow-lg: 0 10px 30px rgba(15, 23, 42, .12);
	--nsr-row-hover: rgba(30, 58, 138, .06);
	--nsr-head-2: rgba(255, 255, 255, .12);
	--nsr-header-h: 0px;
}

html.dark {
	--nsr-crimson: #dc2626;
	--nsr-navy: #1e3a8a;
	--nsr-crimson-ink: #f87171;
	--nsr-navy-ink: #93c5fd;
	--nsr-green-ink: #34d399;
	--nsr-magenta-ink: #f9a8d4;

	--nsr-bg: #020617;
	--nsr-surface: #0f172a;
	--nsr-surface-2: #131f36;
	--nsr-text: #e2e8f0;
	--nsr-muted: #94a3b8;
	--nsr-line: #334155;
	--nsr-line-soft: #1e293b;
	--nsr-footer-bg: #0b1220;
	--nsr-shadow: 0 1px 2px rgba(0, 0, 0, .5);
	--nsr-shadow-lg: 0 12px 32px rgba(0, 0, 0, .55);
	--nsr-row-hover: rgba(148, 163, 184, .08);
	--nsr-head-2: rgba(2, 6, 23, .35);
}

/* ============================================================
   2. Base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 70px;
	/* Height of the fixed mobile bar. body reserves exactly this much space
	   below the content, plus the iOS home indicator, so the bar can never
	   sit on top of the end of an article. */
	--nsr-mobilebar-h: 58px;
}

body {
	margin: 0;
	background: var(--nsr-bg);
	color: var(--nsr-text);
	font-family: var(--nsr-font, Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans Devanagari", Arial, sans-serif);
	font-size: var(--nsr-fs, 15px);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	padding-bottom: calc(var(--nsr-mobilebar-h) + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 781px) { body { padding-bottom: 0; } }

img { max-width: 100%; height: auto; }
a { color: inherit; }
ul, ol { margin: 0; padding: 0; }

h1, h2, h3, h4 { line-height: 1.25; margin: 0; font-weight: 900; letter-spacing: .01em; }

p { margin: 0 0 .7em; }

:focus-visible {
	outline: 3px solid var(--nsr-gold);
	outline-offset: 2px;
	border-radius: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
}

.skip-link {
	position: absolute;
	left: 8px; top: -60px;
	z-index: 100;
	background: var(--nsr-gold);
	color: #0f172a;
	font-weight: 800;
	font-size: 12px;
	padding: 8px 14px;
	border-radius: 6px;
	text-decoration: none;
	transition: top .15s ease;
}
.skip-link:focus { top: 8px; }

.nsr-svg { flex: none; vertical-align: -2px; }

.nsr-shell {
	max-width: var(--nsr-maxw, 1280px);
	margin: 0 auto;
	padding: 0 12px;
}
@media (min-width: 640px) { .nsr-shell { padding: 0 24px; } }

.nsr-main { padding: 14px 0 26px; }
.nsr-site { display: flex; flex-direction: column; min-height: 100vh; }
.nsr-main { flex: 1 0 auto; }

/* ============================================================
   3. Count pill
   ============================================================
   Section 3 used to hold the announcement strip above the masthead plus the Saved
   and dark-mode buttons that lived in it. The strip is gone (the homepage now opens
   on the brand and the nav, not on a banner about how fresh the site is), and both
   buttons came with it: the mobile bar under the footer already carries a Saved
   drawer and the light/dark switch, so the masthead does not need a second copy.
   Only the count pill those two shared is still used, by the mobile bar. */

.nsr-count {
	background: var(--nsr-gold); color: #0f172a;
	font-size: 10px; font-weight: 900;
	padding: 1px 6px; border-radius: 999px;
}

/* ============================================================
   4. Crimson masthead
   ============================================================ */
.nsr-masthead {
	background: linear-gradient(180deg, var(--nsr-crimson) 0%, var(--nsr-crimson-dark) 100%);
	color: #fff;
	border-bottom: 4px solid var(--nsr-gold);
	box-shadow: var(--nsr-shadow);
}
.nsr-masthead__inner { padding: 14px 12px 10px; text-align: center; }
@media (min-width: 640px) { .nsr-masthead__inner { padding: 18px 24px 12px; } }

.nsr-brand { display: inline-flex; align-items: center; gap: 12px; justify-content: center; }
.nsr-brand__mark,
.nsr-brand__logo .custom-logo {
	width: 44px; height: 44px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .14);
	border: 2px solid var(--nsr-amber-soft);
	color: var(--nsr-amber-soft);
	object-fit: cover;
}
.nsr-brand__logo .custom-logo { background: #fff; padding: 2px; }
@media (min-width: 640px) {
	.nsr-brand { flex-direction: column; gap: 4px; }
	.nsr-brand__mark, .nsr-brand__logo .custom-logo { width: 52px; height: 52px; }
}
.nsr-brand__text { display: block; }
.nsr-brand__name { margin: 0; font-size: clamp(23px, 5.2vw, 42px); font-weight: 900; text-transform: uppercase; letter-spacing: .035em; text-shadow: 0 2px 6px rgba(0, 0, 0, .25); }
.nsr-brand__name a { color: inherit; text-decoration: none; }
.nsr-brand__domain {
	display: block;
	font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 11px; font-weight: 800; letter-spacing: .18em;
	color: var(--nsr-amber-soft); text-transform: uppercase;
}
.nsr-masthead__tagline {
	margin: 6px auto 0; max-width: 640px;
	font-size: 11px; line-height: 1.5; color: #fecaca; font-weight: 600;
}
.nsr-chip,
.nsr-btn { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; cursor: pointer; }
.nsr-chip {
	font-size: 11px; font-weight: 800;
	padding: 5px 10px; border-radius: 999px;
	background: rgba(255, 255, 255, .14); color: #fff;
	border: 1px solid rgba(255, 255, 255, .28);
	transition: background .15s ease, transform .15s ease;
}
.nsr-chip:hover { background: rgba(255, 255, 255, .26); }
/*
 * The masthead has no channel buttons of its own any more. The prototype puts the
 * Telegram and WhatsApp links in one place - the homepage welcome strip - and two
 * copies in the chrome only meant one more thing competing with the headline.
 */

/* ============================================================
   5. Navy sticky nav
   ============================================================ */
.nsr-nav {
	background: var(--nsr-navy);
	border-top: 1px solid rgba(255, 255, 255, .14);
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
	position: sticky;
	top: 0;
	z-index: 40;
}
html.dark .nsr-nav { background: #17255c; }
.nsr-nav__inner { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/*
 * The switcher is a row of the nav rather than a floating panel: the menu bar
 * scrolls sideways on a phone, and an absolutely positioned dropdown anchored to a
 * scrolled row lands somewhere off screen. Opening pushes the nav one line taller,
 * which is exactly what the reader expects under a button they just tapped.
 */
.nsr-nav__drop {
	display: inline-flex; align-items: center; gap: 5px; flex: none;
	background: rgba(255, 255, 255, .1); color: #fff;
	border: 1px solid rgba(255, 255, 255, .26);
	font: inherit; font-size: 12px; font-weight: 900;
	padding: 6px 10px; border-radius: 8px; cursor: pointer;
	transition: background .15s ease;
}
.nsr-nav__drop:hover { background: rgba(255, 255, 255, .2); }
.nsr-nav__drop .nsr-svg:last-child { transition: transform .18s ease; }
.nsr-nav__drop[aria-expanded="true"] { background: var(--nsr-gold); color: #0f172a; border-color: var(--nsr-gold); }
.nsr-nav__drop[aria-expanded="true"] .nsr-svg:last-child { transform: rotate(180deg); }
.nsr-nav__panel { flex: 1 0 100%; padding: 2px 0 12px; }
.nsr-nav__panel[hidden] { display: none; }
.nsr-nav__panel-lead { margin: 0 0 8px; font-size: 11px; color: #c7d2fe; }
.nsr-nav__panel-grid {
	list-style: none; display: grid; gap: 6px;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.nsr-nav__panel-grid a {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	color: #e0e7ff; text-decoration: none;
	font-size: 12px; font-weight: 800;
	padding: 7px 9px; border-radius: 7px;
	background: rgba(255, 255, 255, .07);
	overflow-wrap: anywhere;
}
.nsr-nav__panel-grid a:hover { background: var(--nsr-gold); color: #0f172a; }
.nsr-nav__panel-grid a:hover em { color: #1f2937; }
.nsr-nav__panel-grid em { font-style: normal; font-size: 10.5px; font-weight: 900; color: #93c5fd; flex: none; }
.nsr-nav__panel-all { display: inline-flex; margin-top: 8px; font-size: 11px; font-weight: 900; color: var(--nsr-gold); }
.nsr-nav__panel-all:hover { color: #fff; }
.nsr-nav__list {
	display: flex; align-items: center; gap: 2px;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
	padding: 6px 0;
	flex: 1;
}
.nsr-nav__list::-webkit-scrollbar { display: none; }
.nsr-nav__list li { flex: none; }
.nsr-nav__list a {
	display: inline-flex; align-items: center; gap: 5px;
	color: #fff; text-decoration: none;
	font-size: 12px; font-weight: 800; letter-spacing: .01em;
	padding: 6px 11px; border-radius: 7px;
	white-space: nowrap;
	transition: background .15s ease;
}
.nsr-nav__list a:hover { background: #1d4ed8; }
.current-menu-item > a, .current-cat > a, .current_page_item > a {
	background: rgba(255, 255, 255, .16);
	box-shadow: inset 0 -2px 0 var(--nsr-gold);
}
@media (min-width: 900px) { .nsr-nav__list { justify-content: center; } }

/* ============================================================
   6. Live ticker
   ============================================================ */
.nsr-ticker {
	background: #fffbeb;
	border-bottom: 1px solid #fcd34d;
	overflow: hidden;
}
html.dark .nsr-ticker { background: #0b1220; border-bottom-color: #1e293b; }
.nsr-ticker__inner { display: flex; align-items: stretch; }
.nsr-ticker__label {
	display: inline-flex; align-items: center; gap: 6px;
	flex: none;
	background: var(--nsr-crimson); color: #fff;
	font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase;
	padding: 8px 11px;
	box-shadow: 2px 0 6px rgba(0, 0, 0, .12);
	z-index: 2;
}
.nsr-ticker__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--nsr-amber-soft); animation: nsr-ping 1.4s ease-in-out infinite; }
@keyframes nsr-ping { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.nsr-ticker__viewport { overflow: hidden; flex: 1 1 auto; min-width: 0; display: flex; align-items: center; height: 34px; }
/* The track and each repeated set must never shrink: a squeezed track would wrap the
   items onto several lines and break the -50% marquee loop. */
.nsr-ticker__track { display: flex; width: max-content; flex: 0 0 auto; animation: nsr-ticker var(--nsr-ticker-speed, 32s) linear infinite; }
.nsr-ticker:hover .nsr-ticker__track, .nsr-ticker:focus-within .nsr-ticker__track { animation-play-state: paused; }
@keyframes nsr-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.nsr-ticker__set { display: flex; align-items: center; gap: 26px; padding: 0 14px; list-style: none; flex: 0 0 auto; }
.nsr-ticker__set li { flex: 0 0 auto; }
.nsr-ticker__set a {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12px; font-weight: 700; color: #1e293b; text-decoration: none;
	white-space: nowrap;
}
html.dark .nsr-ticker__set a { color: #e2e8f0; }
.nsr-ticker__set a:hover { color: var(--nsr-crimson-ink); text-decoration: underline; }
.nsr-ticker__bullet { color: var(--nsr-crimson-ink); }

/* ============================================================
   7. Cards / boxes shared shell
   ============================================================ */
.nsr-welcome,
.nsr-searchcard,
.nsr-box,
.nsr-seoblock,
.nr-surface,
.nsr-post__head,
.nsr-block,
.nsr-noticebox,
.nsr-toc,
.nsr-page,
.nsr-card,
.nsr-widget,
.nsr-related,
.nsr-comments,
.nsr-none,
.nsr-404 {
	background: var(--nsr-surface);
	border-radius: var(--nsr-radius, 8px);
	box-shadow: var(--nsr-shadow);
}

.nsr-home { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
/*
 * A grid with no explicit column is an `auto` track, i.e. it is sized from the widest
 * thing inside it. That is how one pasted table or one unbreakable PDF link on the
 * homepage used to push every section - welcome strip, search card, trending grid -
 * wider than the phone screen at once: the sections all share the track, so they all
 * grew together and ran past the fixed nav and the bottom bar. minmax(0, 1fr) pins the
 * track to the container instead, and the overflow that remains stays inside whichever
 * box scrolls.
 */
.nsr-home > * { min-width: 0; }
@media (min-width: 782px) { .nsr-home { gap: 18px; } }

.nsr-welcome {
	/* The prototype's channel strip: white card, 2px navy rule, soft shadow, text and
	   buttons on one row at desktop (the buttons under the copy on a phone). */
	border: 2px solid var(--nsr-navy); border-radius: 8px;
	padding: 12px 14px;
	display: flex; flex-direction: column; gap: 10px; align-items: center; justify-content: space-between;
	text-align: center;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
	background: var(--nsr-surface);
}
html.dark .nsr-welcome { border-color: var(--nsr-line); }
@media (min-width: 1024px) { .nsr-welcome { flex-direction: row; text-align: left; } }
.nsr-welcome__title { font-size: 15px; color: var(--nsr-crimson-ink); font-weight: 900; }
@media (min-width: 640px) { .nsr-welcome__title { font-size: 17px; } }
.nsr-welcome__sub { margin: 3px 0 0; font-size: 12px; color: var(--nsr-muted); }
.nsr-welcome__cta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; min-width: 0; max-width: 100%; }
/*
 * Both pills on one line, on a phone too. They used to wrap - 179px and 196px do not fit in
 * the 338px the card leaves on a 390px screen - and a Telegram button sitting above a
 * WhatsApp button reads as two unrelated banners instead of one channel row. So below 1024px
 * the buttons share the row's width from a zero basis - the row still wraps, which is only how
 * the counter gets its own line under them - and and below 1024px the label swaps to the short form
 * the theme derives from the same text ("Join WhatsApp Channel" -> "WhatsApp"), which is what
 * keeps a 320px screen honest without cutting anything: the full label stays on the link for
 * screen readers, and an over-long custom label falls back to an ellipsis instead of a break.
 */
.nsr-btn__short { display: none; }
@media (max-width: 1023px) {
	.nsr-welcome__cta { width: 100%; }
	.nsr-welcome .nsr-btn { flex: 1 1 0; min-width: 0; justify-content: center; padding: 8px 10px; font-size: 11.5px; }
	.nsr-welcome .nsr-btn > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.nsr-welcome .nsr-btn__full { display: none; }
	.nsr-welcome .nsr-btn__short { display: inline; }
	.nsr-welcome__count { flex: 0 0 100%; }
}
.nsr-welcome__count { font-size: 11px; font-weight: 700; color: var(--nsr-muted); }
.nsr-welcome__count strong { color: var(--nsr-crimson-ink); font-size: 13px; }
/* Heading and intro emptied out: the strip is just the two channel buttons, so it
   reads as a channel bar instead of a half-filled quote box. */
.nsr-welcome--channels { padding: 10px 12px; }
.nsr-welcome--channels .nsr-welcome__text { display: none; }
.nsr-welcome--channels .nsr-welcome__cta { width: 100%; justify-content: center; }

.nsr-btn {
	/*
	 * px-3.5 py-2, rounded-lg, 12px extrabold, icon and label on one line with a 6px gap,
	 * and a real shadow - the prototype's buttons read as solid pills, and the icon has to
	 * sit on the text's middle line instead of its baseline, which needs flex on the link.
	 */
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	border: 0; border-radius: 8px;
	font: inherit; font-size: 12px; font-weight: 900; line-height: 1.25;
	padding: 8px 14px; text-decoration: none;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .16);
	transition: background-color .15s ease, color .15s ease, transform .05s ease;
}
.nsr-btn .nsr-svg { flex: 0 0 auto; }
/* The variants without an explicit fill hover still get feedback; the three that set a
   real hover colour must not also be filtered, or the fill moves twice as far as the
   prototype's. */
.nsr-btn:hover { filter: brightness(1.06); }
.nsr-btn--telegram:hover, .nsr-btn--whatsapp:hover, .nsr-btn--primary:hover { filter: none; }
.nsr-btn:active { transform: translateY(1px); box-shadow: 0 1px 1px rgba(15, 23, 42, .16); }
.nsr-btn--primary { background: var(--nsr-crimson); color: #fff; box-shadow: 0 2px 0 rgba(0, 0, 0, .12); }
.nsr-btn--primary:hover { background: var(--nsr-crimson-ink); color: #fff; }
.nsr-btn--navy { background: var(--nsr-navy); color: #fff; }
/* Both hover states are the prototype's own darker fills, not a brightness filter: on
   the green button a filter lifts the colour the wrong way and the dark label stops
   reading. */
.nsr-btn--telegram { background: #0088cc; color: #fff; }
.nsr-btn--telegram:hover { background: #0077b5; color: #fff; }
.nsr-btn--whatsapp { background: #25d366; color: #0f172a; }
.nsr-btn--whatsapp:hover { background: #1ebe57; color: #0f172a; }
.nsr-btn--slate { background: #334155; color: #fff; }
.nsr-btn--ghost { background: transparent; color: var(--nsr-muted); border: 1px solid var(--nsr-line); }
html.dark .nsr-btn--slate { background: #1e293b; }

/* ============================================================
   8. Search card
   ============================================================ */
.nsr-searchcard { border: 1px solid var(--nsr-line); padding: 13px; display: grid; gap: 11px; }
.nsr-searchform { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; position: relative; }
.nsr-searchform__ico { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--nsr-muted); pointer-events: none; }
.nsr-searchform__input {
	flex: 1 1 260px;
	font: inherit; font-size: 13px; font-weight: 600;
	padding: 10px 34px 10px 36px;
	border: 2px solid var(--nsr-line);
	border-radius: 8px;
	background: var(--nsr-surface-2);
	color: var(--nsr-text);
	min-width: 0;
}
.nsr-searchform__input::placeholder { font-weight: 500; color: var(--nsr-muted); }
.nsr-searchform__input:focus { outline: none; border-color: var(--nsr-crimson); background: var(--nsr-surface); }
.nsr-searchform__clear { position: absolute; right: 34px; top: 11px; background: none; border: 0; color: var(--nsr-muted); cursor: pointer; padding: 2px; }
/*
 * The masthead form wraps its box in .nsr-searchform__field (search "Search:" label,
 * input, clear button) while the standalone form does not. Without a positioning box
 * of its own, the absolutely placed icon and clear button anchored to the *form*, so
 * the magnifier sat on top of the label and the clear x landed over the sector select.
 * Inside the field both belong to the field: the icon flows, the x pins to its edge.
 */
.nsr-searchform__field { position: relative; display: flex; align-items: center; gap: 8px; flex: 1 1 260px; min-width: 0; }
.nsr-searchform__field .nsr-searchform__ico { position: static; transform: none; flex: none; }
.nsr-searchform__field .nsr-searchform__input { flex: 1 1 0; padding-left: 10px; }
.nsr-searchform__field .nsr-searchform__clear { right: 6px; top: 50%; transform: translateY(-50%); }
.nsr-searchform__clear:hover { color: var(--nsr-crimson-ink); }
.nsr-searchform__submit { flex: none; text-transform: uppercase; letter-spacing: .05em; }
@media (max-width: 479px) { .nsr-searchform__submit { width: 100%; justify-content: center; } }
.nsr-searchform--standalone { margin: 10px 0 4px; }

.nsr-chips { display: flex; align-items: center; gap: 6px; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
.nsr-chips::-webkit-scrollbar { display: none; }
.nsr-chips__label { font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--nsr-muted); flex: none; }
.nsr-chips .nsr-chip, .nsr-quickcats .nsr-chip {
	flex: none; font-size: 11px; font-weight: 800;
	padding: 5px 11px; border-radius: 999px;
	background: var(--nsr-surface-2); color: var(--nsr-muted);
	border: 1px solid var(--nsr-line);
	text-decoration: none;
}
.nsr-chips .nsr-chip:hover, .nsr-quickcats .nsr-chip:hover { background: var(--nsr-line-soft); color: var(--nsr-text); }
.nsr-chip.is-active { background: var(--nsr-navy); border-color: var(--nsr-navy); color: #fff; }
.nsr-chip em { font-style: normal; opacity: .7; font-size: 10px; margin-left: 3px; }
.nsr-chip--muted { opacity: .5; }

.nsr-live { border-top: 1px dashed var(--nsr-line); padding-top: 8px; }
.nsr-live__head { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; font-weight: 800; color: var(--nsr-muted); margin-bottom: 6px; }
.nsr-live__all { color: var(--nsr-navy-ink); text-decoration: none; }
.nsr-live__all:hover { text-decoration: underline; }
.nsr-live__list { list-style: none; display: grid; gap: 1px; max-height: 340px; overflow-y: auto; }

/* ============================================================
   9. Portal list rows
   ============================================================ */
.nsr-row { position: relative; display: block; padding: 7px 6px 7px 20px; }
.nsr-row__arrow { position: absolute; left: 2px; top: 10px; color: var(--nsr-crimson-ink); opacity: .85; }
.nsr-row__link {
	font-size: 12.5px; font-weight: 700; line-height: 1.45;
	color: var(--nsr-text); text-decoration: none;
	display: inline;
	background-image: linear-gradient(transparent, transparent);
}
.nsr-row:hover .nsr-row__link { color: var(--nsr-crimson-ink); text-decoration: underline; }
html.dark .nsr-row:hover .nsr-row__link { color: var(--nsr-amber-soft); }
.nsr-row__date { display: block; font-size: 10px; font-weight: 800; letter-spacing: .04em; color: var(--nsr-muted); text-transform: uppercase; margin-top: 2px; }
.nsr-row__summary { display: block; font-size: 11.5px; font-weight: 500; color: var(--nsr-muted); margin-top: 3px; }

.nsr-badge {
	display: inline-flex; align-items: center;
	vertical-align: middle; margin-left: 6px;
	font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase;
	padding: 2px 6px; border-radius: 4px;
	color: #fff; background: var(--nsr-crimson);
	line-height: 1.35;
}
.nsr-badge--new { background: var(--nsr-green); }
.nsr-badge--hot { background: var(--nsr-gold); color: #0f172a; }
.nsr-badge--out { background: var(--nsr-navy); }
.nsr-badge--urgent { background: var(--nsr-crimson); }
.is-blink { animation: nsr-blink 1.6s ease-in-out infinite; }
@keyframes nsr-blink { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .78; transform: scale(.96); } }

/* ============================================================
   10. Trending grid
   ============================================================ */
.nsr-trending__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; flex-wrap: wrap; }
.nsr-trending__title { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; color: var(--nsr-muted); }
.nsr-trending__title .nsr-svg { color: var(--nsr-crimson-ink); }
.nsr-trending__hint { font-size: 10px; font-weight: 700; color: var(--nsr-muted); }
.nsr-trendgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 640px) { .nsr-trendgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } }
.nsr-trendbox {
	position: relative;
	display: flex; flex-direction: column; gap: 3px;
	min-height: 74px; justify-content: center;
	padding: 9px 10px;
	border-radius: 8px;
	color: #fff; text-decoration: none;
	border: 1px solid rgba(255, 255, 255, .22);
	box-shadow: 0 2px 8px rgba(15, 23, 42, .16);
	transition: transform .12s ease, box-shadow .12s ease;
}
.nsr-trendbox:hover { transform: translateY(-2px); box-shadow: var(--nsr-shadow-lg); }
.nsr-trendbox--crimson { background: #dc2626; }
.nsr-trendbox--navy { background: #1d4ed8; }
.nsr-trendbox--green { background: #15803d; }
.nsr-trendbox--gold { background: #d97706; color: #172554; }
.nsr-trendbox--magenta { background: #be185d; }
.nsr-trendbox--slate { background: #334155; }
.nsr-trendbox__lines { display: flex; flex-direction: column; gap: 1px; }
.nsr-trendbox__l1 { font-size: 12px; font-weight: 900; line-height: 1.25; letter-spacing: .01em; }
.nsr-trendbox__l2 { font-size: 10.5px; font-weight: 700; opacity: .9; text-transform: uppercase; letter-spacing: .05em; }
.nsr-trendbox__badge { position: absolute; top: -7px; right: 7px; }
.nsr-trendbox__badge .nsr-badge { margin-left: 0; box-shadow: 0 1px 4px rgba(0, 0, 0, .3); }
.nsr-trendbox__urgent { display: flex; align-items: center; gap: 4px; font-size: 9.5px; font-weight: 900; opacity: .95; margin-top: 2px; }

/* ============================================================
   11. Portal columns
   ============================================================ */
.nsr-portalgaps { display: grid; gap: 16px; }
.nsr-cols { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .nsr-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.nsr-box { border: 2px solid var(--nsr-crimson); overflow: hidden; display: flex; flex-direction: column; }
html.dark .nsr-box { border-color: #ef4444; }
.nsr-box--secondary { border-color: var(--nsr-navy); }
html.dark .nsr-box--secondary { border-color: #3b5bbf; }
.nsr-box__head {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	background: var(--nsr-crimson); color: #fff;
	font-size: 15px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em;
	padding: 9px 12px;
	border-bottom: 2px solid var(--nsr-amber-soft);
}
.nsr-box__head .nsr-svg { color: var(--nsr-amber-soft); }
.nsr-box--secondary .nsr-box__head {
	background: var(--nsr-navy);
	border-bottom-color: rgba(255, 255, 255, .18);
	font-size: 13px; padding: 8px 12px;
}
.nsr-box--secondary .nsr-box__head .nsr-svg { display: none; }
.nsr-box__list { list-style: none; flex: 1; padding: 6px 8px; }
.nsr-box__list > .nsr-row { border-bottom: 1px dashed var(--nsr-line); }
.nsr-box__list > .nsr-row:last-child { border-bottom: 0; }
.nsr-box__foot {
	background: var(--nsr-surface-2);
	border-top: 1px solid var(--nsr-line);
	padding: 8px 14px; text-align: right;
}
html.dark .nsr-box__foot { background: #0b1220; }
.nsr-box__more { font-size: 11px; font-weight: 900; color: var(--nsr-navy-ink); text-decoration: none; }
.nsr-box__more:hover { text-decoration: underline; }
.nsr-box__empty { margin: 0; padding: 18px 14px; font-size: 12px; color: var(--nsr-muted); text-align: center; }
.nsr-box__empty a { color: var(--nsr-navy-ink); font-weight: 800; }

/* ============================================================
   12. SEO block
   ============================================================ */
.nsr-seoblock { border: 2px solid var(--nsr-crimson); padding: 16px; display: grid; gap: 10px; }
html.dark .nsr-seoblock { border-color: #ef4444; }
.nsr-seoblock__title {
	background: var(--nsr-crimson); color: #fff;
	display: block; width: fit-content; max-width: 100%;
	margin: 0 auto;
	font-size: 14px; text-transform: uppercase; letter-spacing: .05em; text-align: center;
	padding: 8px 18px; border-radius: 4px;
}
.nsr-seoblock__body { font-size: 13px; color: var(--nsr-muted); }

/* ============================================================
   13. Prose (article body)
   ============================================================ */
.nsr-prose { font-size: 14px; line-height: 1.75; color: var(--nsr-text); }
.nsr-prose > * + * { margin-top: .85em; }
.nsr-prose h2, .nsr-prose h3, .nsr-prose h4 { scroll-margin-top: 74px; }
.nsr-prose h2 {
	font-size: 17px; text-transform: uppercase; letter-spacing: .03em;
	color: var(--nsr-crimson-ink);
	border-bottom: 2px solid var(--nsr-line);
	padding-bottom: 6px; margin-top: 1.4em;
}
.nsr-prose h3 { font-size: 15px; color: var(--nsr-navy-ink); margin-top: 1.25em; }
.nsr-prose h4 { font-size: 13.5px; color: var(--nsr-green-ink); }
.nsr-prose ul, .nsr-prose ol { padding-left: 1.3em; }
.nsr-prose ul { list-style: disc; }
.nsr-prose ol { list-style: decimal; }
.nsr-prose li + li { margin-top: .3em; }
.nsr-prose a { color: var(--nsr-navy-ink); text-decoration: underline; text-underline-offset: 2px; font-weight: 700; }
.nsr-prose a:hover { color: var(--nsr-crimson-ink); }
.nsr-prose table { width: 100%; border-collapse: collapse; font-size: 13px; }
.nsr-prose th, .nsr-prose td { border: 1px solid var(--nsr-line); padding: 7px 9px; text-align: left; }
.nsr-prose th { background: var(--nsr-surface-2); font-weight: 900; }
.nsr-prose blockquote {
	margin: 0; padding: 10px 14px;
	border-left: 4px solid var(--nsr-gold);
	background: var(--nsr-surface-2);
	border-radius: 0 6px 6px 0;
	font-size: 13px;
}
.nsr-prose img { border-radius: 6px; max-width: 100%; height: auto; }
/*
 * One long token is enough to wreck a notice page: the official PDF link pasted from a
 * circular is a single unbreakable word, and a bare <table> pasted from Word is as
 * wide as its ten columns. Both used to widen the content column itself - the shell
 * then ran off the screen, the sticky nav and the bottom bar stayed at the viewport
 * width, and the article ended up painted over them (or off-screen behind nothing at
 * all). `anywhere` lets either break inside the box, and the tables get their own
 * scroller, so the column keeps its width no matter what an editor pastes.
 */
.nsr-prose,
.nsr-prose p,
.nsr-prose li,
.nsr-prose dd,
.nsr-prose h1,
.nsr-prose h2,
.nsr-prose h3,
.nsr-prose h4,
.nsr-prose figcaption,
.nsr-prose a,
.nsr-prose td,
.nsr-prose th {
	overflow-wrap: anywhere;
}
/*
 * Wide tables are the commonest cause of an article spilling onto the rest of the
 * page: a vacancy or fee table copied from a PDF has ten columns and does not fit a
 * 700px column, so it grew past its box and painted over the sticky sidebar (and the
 * sidebar, sitting above it, cut the rows in half). A bare table in the content and a
 * block-editor table become their own horizontal scroller instead; the theme's own
 * tables are untouched because they already live in .nsr-tablewrap.
 */
.nsr-prose > table,
.nsr-prose table:not(.nsr-table),
.nsr-prose figure.wp-block-table > table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
/*
 * An oEmbed video or a Google Docs viewer arrives with width="1280" hard-coded, which
 * stretched the whole document to 1280px on a 390px phone - every sticky part of the
 * theme then sat at the viewport width while the article carried on underneath it.
 * Embeds are capped to the column and keep their ratio.
 */
.nsr-prose iframe,
.nsr-prose embed,
.nsr-prose object,
.nsr-prose video,
.nsr-embed iframe, .nsr-embed embed { max-width: 100%; height: auto; }
.nsr-prose .wp-block-embed__wrapper > iframe { width: 100%; }
.nsr-prose figure.wp-block-table { margin: 0 0 18px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nsr-prose figure.wp-block-table > table { margin: 0; }
/*
 * "Wide" and "full" widths only exist in a theme that has a full-bleed area to grow
 * into. Here the content column is the widest thing there is, so both alignments are
 * pinned back to it rather than reaching over the sidebar with core's own margins.
 */
.nsr-prose .alignwide,
.nsr-prose .alignfull,
.alignwide > *,
.alignfull > * { width: auto; max-width: 100%; margin-left: 0; margin-right: 0; }
.nsr-prose figure > img, .nsr-prose figure > table { max-width: 100%; }
.nsr-prose code {
	font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
	font-size: .88em; background: var(--nsr-surface-2);
	padding: 1px 5px; border-radius: 4px; border: 1px solid var(--nsr-line-soft);
}
.nsr-prose .wp-block-image figcaption { font-size: 11.5px; color: var(--nsr-muted); text-align: center; }
.alignwide { max-width: min(100%, 1180px); }

/* ============================================================
   14. Single post shell
   ============================================================ */
.nsr-post { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); max-width: 1040px; margin: 0 auto; }
.nsr-post > * { min-width: 0; }
.nsr-post__head { border: 2px solid var(--nsr-line-soft); padding: 14px; display: grid; gap: 11px; }
html.dark .nsr-post__head { border-color: var(--nsr-line); }

.nsr-crumbs { font-size: 11px; color: var(--nsr-muted); }
.nsr-crumbs ol { display: flex; flex-wrap: wrap; gap: 5px; list-style: none; align-items: center; }
.nsr-crumbs li:not(:last-child)::after { content: "›"; margin-left: 5px; color: var(--nsr-line); font-weight: 900; }
.nsr-crumbs a { color: var(--nsr-navy-ink); text-decoration: none; font-weight: 700; }
.nsr-crumbs a:hover { text-decoration: underline; }
.nsr-crumbs li:last-child { color: var(--nsr-text); font-weight: 700; max-width: 60ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.nsr-post__flags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.nsr-post__flags-left, .nsr-post__flags-right { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.nsr-flag {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 10.5px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em;
	padding: 4px 8px; border-radius: 5px;
}
.nsr-flag--type { background: #fee2e2; color: var(--nsr-crimson-ink); }
.nsr-flag--fact { background: #dcfce7; color: #166534; text-transform: none; letter-spacing: 0; font-weight: 800; }
.nsr-flag--read { background: var(--nsr-surface-2); color: var(--nsr-navy-ink); border: 1px solid var(--nsr-line-soft); text-transform: none; letter-spacing: 0; }
html.dark .nsr-flag--type { background: rgba(220, 38, 38, .18); }
html.dark .nsr-flag--fact { background: rgba(21, 128, 61, .2); color: #86efac; }

.nsr-save {
	display: inline-flex; align-items: center; gap: 6px;
	font: inherit; font-size: 11px; font-weight: 800;
	background: var(--nsr-surface-2); color: var(--nsr-text);
	border: 1px solid var(--nsr-line); border-radius: 6px;
	padding: 5px 9px; cursor: pointer;
	transition: background .15s ease, border-color .15s ease;
}
.nsr-save .nsr-svg { color: var(--nsr-gold); }
.nsr-save:hover { background: #fef3c7; border-color: var(--nsr-gold); }
html.dark .nsr-save:hover { background: #1f2a44; }
.nsr-save.is-on { background: var(--nsr-gold); color: #172554; border-color: #fbbf24; }
.nsr-save.is-on .nsr-svg { color: #172554; }

.nsr-post__title {
	font-size: clamp(20px, 3.3vw, 31px);
	color: var(--nsr-navy-ink);
	line-height: 1.22;
	letter-spacing: -.01em;
	font-weight: 900;
}
html.dark .nsr-post__title { color: #bfdbfe; }

.nsr-post__byline {
	display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between;
	border-top: 1px solid var(--nsr-line-soft);
	border-bottom: 1px solid var(--nsr-line-soft);
	padding: 9px 0; font-size: 11.5px; color: var(--nsr-muted);
}
.nsr-post__byline-text { display: grid; gap: 1px; flex: 1 1 240px; }
.nsr-post__byline-top { font-weight: 700; color: var(--nsr-text); }
.nsr-post__byline-top a { color: var(--nsr-text); font-weight: 900; text-decoration: underline; text-decoration-color: var(--nsr-line); }
.nsr-post__byline-top em { font-style: normal; font-weight: 600; color: var(--nsr-muted); font-size: 11px; }
.nsr-post__stamp { color: var(--nsr-crimson-ink); font-weight: 900; font-size: 11px; }
.nsr-post__avatar {
	width: 38px; height: 38px; border-radius: 50%; overflow: hidden;
	background: linear-gradient(135deg, var(--nsr-crimson), var(--nsr-crimson-dark));
	color: #fff; font-weight: 900; font-size: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 2px solid var(--nsr-amber-soft); flex: none;
}
.nsr-post__avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }

.nsr-post__summary {
	background: rgba(245, 158, 11, .12);
	border-left: 4px solid var(--nsr-crimson);
	border-radius: 0 8px 8px 0;
	padding: 11px 13px;
	font-size: 13px; line-height: 1.65;
}
html.dark .nsr-post__summary { background: rgba(245, 158, 11, .09); }
.nsr-post__summary-label { display: block; color: var(--nsr-crimson-ink); text-transform: uppercase; font-size: 10.5px; letter-spacing: .08em; margin-bottom: 3px; }

.nsr-post__cta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nsr-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.nsr-pill {
	font-size: 10.5px; font-weight: 800; text-decoration: none;
	padding: 4px 9px; border-radius: 999px;
	background: var(--nsr-surface-2); border: 1px solid var(--nsr-line-soft); color: var(--nsr-muted);
}
.nsr-pill:hover { color: var(--nsr-navy-ink); border-color: var(--nsr-navy-ink); }

.nsr-status { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 800; padding: 5px 10px; border-radius: 6px; }
.nsr-status--open { background: #dcfce7; color: #166534; }
.nsr-status--urgent { background: #fef3c7; color: #92400e; }
.nsr-status--closed { background: #fee2e2; color: #991b1b; }
html.dark .nsr-status--open { background: rgba(21, 128, 61, .22); color: #86efac; }
html.dark .nsr-status--urgent { background: rgba(217, 119, 6, .22); color: #fcd34d; }
html.dark .nsr-status--closed { background: rgba(185, 28, 28, .24); color: #fca5a5; }

.nsr-share { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.nsr-share__label { font-size: 10.5px; font-weight: 900; text-transform: uppercase; color: var(--nsr-muted); letter-spacing: .06em; }
.nsr-share__link {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 10.5px; font-weight: 800;
	padding: 4px 9px; border-radius: 999px;
	text-decoration: none; cursor: pointer;
	background: rgba(37, 211, 102, .16); color: #166534;
	border: 1px solid transparent; font-family: inherit;
}
.nsr-share__link--telegram { background: rgba(0, 136, 204, .16); color: #075985; }
.nsr-share__link--x { background: rgba(15, 23, 42, .9); color: #fff; }
.nsr-share__link--copy { background: var(--nsr-surface-2); color: var(--nsr-muted); border-color: var(--nsr-line); }
.nsr-share__link:hover { filter: brightness(.95); }
html.dark .nsr-share__link { color: #86efac; }
html.dark .nsr-share__link--telegram { color: #7dd3fc; }
html.dark .nsr-share__link--x { background: #1e293b; color: #e2e8f0; }

/* ============================================================
   15. TOC
   ============================================================ */
/*
 * Contents box. It used to repeat every heading of the notice verbatim, which on a
 * long notification meant the reader saw a fifteen-line menu before any content. Now
 * the labels are summarised to one line, the columns fill whatever room there is, and
 * anything past the first handful waits behind "+N more" (still in the markup, so
 * search engines keep every jump link).
 */
.nsr-toc {
	border: 1px solid var(--nsr-line-soft);
	border-left: 3px solid var(--nsr-gold);
	background: var(--nsr-surface-2);
	border-radius: var(--nsr-radius, 8px);
	padding: 8px 11px 9px;
}
html.dark .nsr-toc { background: #0b1220; border-color: #1e3a8a; }
.nsr-toc__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.nsr-toc__title { display: flex; align-items: center; gap: 5px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--nsr-navy-ink); }
.nsr-toc__title .nsr-svg { color: var(--nsr-crimson-ink); }
.nsr-toc__count { font-style: normal; font-size: 10px; font-weight: 700; color: var(--nsr-muted); text-transform: none; letter-spacing: 0; }
.nsr-toc__tools { display: inline-flex; align-items: center; gap: 4px; }
.nsr-toc__more { background: none; border: 0; color: var(--nsr-crimson-ink); font: inherit; font-size: 11px; font-weight: 900; cursor: pointer; padding: 2px 6px; border-radius: 5px; background: rgba(185, 28, 28, .08); }
.nsr-toc__more:hover { text-decoration: underline; }
.nsr-toc__list { list-style: decimal inside; display: grid; gap: 0 14px; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); margin-top: 4px; }
.nsr-toc__list li { min-width: 0; }
.nsr-toc__list li.is-extra { display: none; }
.nsr-toc.is-expanded .nsr-toc__list li.is-extra { display: list-item; }
.nsr-toc__list a {
	display: block; font-size: 11.5px; line-height: 1.45; font-weight: 800;
	color: var(--nsr-navy-ink); text-decoration: none;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nsr-toc__list a:hover { color: var(--nsr-crimson-ink); text-decoration: underline; }

/* ============================================================
   16. Bordered sarkari notice box
   ============================================================ */
.nsr-noticebox {
	border: 2px solid var(--nsr-crimson);
	border-radius: var(--nsr-radius, 8px);
	overflow: hidden;
	background: var(--nsr-surface);
	box-shadow: var(--nsr-shadow);
}
html.dark .nsr-noticebox { border-color: #ef4444; background: #0f172a; }
.nsr-noticebox__banner {
	text-align: center; padding: 13px 14px;
	border-bottom: 2px solid var(--nsr-navy);
	background: var(--nsr-surface-2);
	display: grid; gap: 3px;
}
html.dark .nsr-noticebox__banner { background: #0b1220; border-bottom-color: var(--nsr-line); }
.nsr-noticebox__org { font-size: clamp(15px, 2.4vw, 21px); text-transform: uppercase; color: var(--nsr-crimson-ink); }
.nsr-noticebox__exam { font-size: clamp(13px, 1.9vw, 17px); color: var(--nsr-green-ink); font-weight: 800; }
.nsr-noticebox__advt { margin: 0; font-size: 11.5px; font-weight: 800; color: var(--nsr-navy-ink); display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; align-items: center; }
.nsr-noticebox__domain {
	font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
	font-size: 10px; font-weight: 800; letter-spacing: .14em;
	color: var(--nsr-magenta-ink); text-transform: uppercase;
}
.nsr-noticebox__row { padding: 13px 14px; border-bottom: 2px solid var(--nsr-navy); }
html.dark .nsr-noticebox__row { border-bottom-color: var(--nsr-line); }
.nsr-noticebox__row:last-child { border-bottom: 0; }
.nsr-noticebox__row--links { padding: 0; border-bottom: 0; }
.nsr-noticebox__linkhead {
	background: var(--nsr-crimson); color: #fff;
	text-align: center; text-transform: uppercase;
	font-size: 14px; font-weight: 900; letter-spacing: .04em;
	padding: 9px 12px;
	border-bottom: 2px solid var(--nsr-navy);
}

.nsr-split { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 782px) {
	.nsr-split { grid-template-columns: 1fr 1fr; }
	.nsr-split__half + .nsr-split__half { border-left: 1px solid var(--nsr-navy); padding-left: 14px; }
	html.dark .nsr-split__half + .nsr-split__half { border-left-color: var(--nsr-line); }
}
.nsr-split__title {
	text-align: center; font-size: 14.5px; font-weight: 900;
	color: var(--nsr-green-ink); text-decoration: underline; text-underline-offset: 4px;
	margin-bottom: 8px;
}

.nsr-pairs { list-style: none; display: grid; gap: 5px; font-size: 12.5px; font-weight: 600; }
.nsr-pairs li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; align-items: baseline; padding-left: 12px; position: relative; }
.nsr-pairs li::before { content: "•"; position: absolute; left: 0; color: var(--nsr-crimson-ink); font-weight: 900; }
.nsr-pairs__label { color: var(--nsr-text); }
.nsr-pairs__value { text-align: right; font-weight: 900; color: var(--nsr-crimson-ink); white-space: nowrap; }
.nsr-pairs__solo { display: block; padding-left: 12px; }
@media (max-width: 479px) {
	.nsr-pairs li { grid-template-columns: 1fr; }
	.nsr-pairs__value { text-align: left; white-space: normal; }
}

.nsr-age__title { text-align: center; font-size: 14.5px; color: var(--nsr-green-ink); margin-bottom: 9px; }
.nsr-age__cutoff { color: var(--nsr-crimson-ink); text-decoration: underline; text-underline-offset: 3px; }
.nsr-age__grid { display: grid; gap: 13px; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .nsr-age__grid { grid-template-columns: 5fr 7fr; align-items: center; } }

.nsr-calc {
	background: rgba(245, 158, 11, .12);
	border: 2px solid var(--nsr-gold);
	border-radius: 10px;
	padding: 11px 12px;
}
html.dark .nsr-calc { background: rgba(245, 158, 11, .07); border-color: rgba(245, 158, 11, .55); }
.nsr-calc__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.nsr-calc__title { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; color: var(--nsr-crimson-ink); }
.nsr-calc__cutoff { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10.5px; font-weight: 700; color: var(--nsr-muted); }
.nsr-calc__fields { display: grid; gap: 8px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nsr-calc__fields { grid-template-columns: 1fr 1fr auto; align-items: end; } }
.nsr-calc__field { display: grid; gap: 3px; font-size: 10.5px; font-weight: 800; color: var(--nsr-muted); }
.nsr-calc__field input, .nsr-calc__field select {
	font: inherit; font-size: 12px; font-weight: 700;
	padding: 7px 8px; border-radius: 7px;
	border: 1px solid var(--nsr-line);
	background: var(--nsr-surface); color: var(--nsr-text);
	width: 100%;
}
.nsr-calc__range { margin: 7px 0 0; font-size: 10.5px; color: var(--nsr-muted); }
.nsr-calc__result { margin: 8px 0 0; padding-top: 7px; border-top: 1px dashed var(--nsr-gold); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12px; }
.nsr-calc__verdict { font-size: 12px; font-weight: 900; padding: 4px 9px; border-radius: 6px; }
.nsr-calc__verdict--yes { background: #15803d; color: #fff; }
.nsr-calc__verdict--no { background: var(--nsr-crimson); color: #fff; }
.nsr-calc__detail { font-weight: 700; color: var(--nsr-muted); }

.nsr-vacancy-total { text-align: center; font-size: 14px; font-weight: 900; color: var(--nsr-magenta-ink); margin: 0 0 10px; }
.nsr-vacancy-total strong { color: var(--nsr-green-ink); text-decoration: underline; text-underline-offset: 3px; }
.nsr-tablehint { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; align-items: center; font-size: 12.5px; font-weight: 900; color: var(--nsr-navy-ink); margin: 0 0 9px; }
.nsr-tablehint__swipe { font-size: 10px; font-weight: 700; color: var(--nsr-muted); display: inline-flex; gap: 4px; align-items: center; }
@media (min-width: 782px) { .nsr-tablehint__swipe { display: none; } }

.nsr-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nsr-table { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: 460px; }
.nsr-table th, .nsr-table td { border: 1px solid var(--nsr-line); padding: 7px 9px; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
/*
 * The head is `position: sticky`, but a head only sticks to a scroll box, and this
 * wrapper only scrolled sideways - so the rule did nothing at all on a normal notice.
 * Give the wrapper a vertical limit *only* once it holds a long table: below nine rows
 * the cap never binds, and above it the column headings stay pinned inside the box
 * while the rows scroll under them. It never reaches out to the page, so it cannot
 * fight the sticky nav any more than the rest of the article can.
 */
@supports selector(:has(*)) {
	.nsr-tablewrap:has(.nsr-table tbody tr:nth-child(9)) {
		max-height: min(72vh, 620px);
		overflow: auto;
		overscroll-behavior: contain;
		scrollbar-gutter: stable;
	}
}
.nsr-table thead th {
	background: var(--nsr-surface-2);
	font-weight: 900; text-align: center; color: var(--nsr-text);
	text-transform: none; letter-spacing: 0;
	position: sticky; top: 0; z-index: 2;
}
.nsr-table td.is-center { text-align: center; font-weight: 800; }
.nsr-table tbody tr:nth-child(even) { background: rgba(148, 163, 184, .07); }
.nsr-table--kv { min-width: 0; }
.nsr-table--kv th { width: 42%; text-align: left; background: var(--nsr-surface-2); font-weight: 800; }
.nsr-table--kv td { font-weight: 800; color: var(--nsr-crimson-ink); }
.nsr-table--kv a { color: var(--nsr-navy-ink); }
.nsr-table--cat { min-width: 540px; }
.nsr-table--cat thead th { background: rgba(245, 158, 11, .22); }
.nsr-table--cat td:first-child { text-align: left; font-weight: 700; }
html.dark .nsr-table--cat thead th { background: rgba(245, 158, 11, .12); }

.nsr-links { list-style: none; min-width: 0; }
.nsr-links * { min-width: 0; }
.nsr-links a { overflow-wrap: anywhere; }
.nsr-links__row {
	display: grid; grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px; align-items: center;
	padding: 9px 13px;
	border-bottom: 1px solid var(--nsr-navy);
	font-size: 13px;
}
html.dark .nsr-links__row { border-bottom-color: var(--nsr-line); }
.nsr-links__row:hover { background: var(--nsr-row-hover); }
.nsr-links__label { font-weight: 800; color: var(--nsr-text); }
.nsr-links__url {
	font-weight: 900; text-transform: uppercase; font-size: 11px; letter-spacing: .05em;
	color: var(--nsr-crimson-ink); text-decoration: none;
	border: 1px solid currentColor; border-radius: 5px; padding: 3px 9px; white-space: nowrap;
}
.nsr-links__url:hover { background: var(--nsr-crimson); border-color: var(--nsr-crimson); color: #fff; }
html.dark .nsr-links__url:hover { color: #fff; }
.nsr-links__row--important { background: rgba(245, 158, 11, .14); border-bottom: 0; }
.nsr-links__note { font-size: 11px; font-weight: 700; color: var(--nsr-muted); text-align: right; }

/* ============================================================
   17. Article blocks
   ============================================================ */
.nsr-block { border: 2px solid var(--nsr-navy); padding: 14px; display: grid; gap: 11px; scroll-margin-top: 74px; }
html.dark .nsr-block { border-color: var(--nsr-line); }
.nsr-block--content { border: 0; padding: 0; background: none; box-shadow: none; }
.nsr-block--overview { border-color: var(--nsr-navy); padding: 0; overflow: hidden; }
.nsr-block--salary { border-color: var(--nsr-green); }
.nsr-block__head {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	min-width: 0; overflow-wrap: anywhere;
	background: var(--nsr-navy); color: #fff;
	font-size: 13.5px; text-transform: uppercase; letter-spacing: .05em;
	padding: 9px 13px;
}
.nsr-block__head .nsr-svg { color: var(--nsr-amber-soft); }
.nsr-block__head em {
	margin-left: auto; font-style: normal;
	font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
	font-size: 10px; color: var(--nsr-amber-soft); letter-spacing: .08em;
}
.nsr-block__title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; padding-bottom: 8px; border-bottom: 1px solid var(--nsr-line-soft); }
.nsr-block__title--crimson { color: var(--nsr-crimson-ink); }
.nsr-block__title--navy { color: var(--nsr-navy-ink); }
.nsr-block__title--green { color: var(--nsr-green-ink); }
.nsr-neg { margin-left: auto; font-style: normal; font-size: 10.5px; font-weight: 900; background: #fee2e2; color: var(--nsr-crimson-ink); padding: 3px 8px; border-radius: 4px; }
html.dark .nsr-neg { background: rgba(220, 38, 38, .18); }
.nsr-block__intro { margin: 0; font-size: 12.5px; color: var(--nsr-muted); }
.nsr-faq-note { margin-left: auto; font-style: normal; font-size: 10px; font-weight: 800; background: #dcfce7; color: #166534; padding: 3px 8px; border-radius: 4px; font-family: "JetBrains Mono", ui-monospace, monospace; }
html.dark .nsr-faq-note { background: rgba(21, 128, 61, .2); color: #86efac; }
.nsr-syllabus { border: 1px solid var(--nsr-line-soft); background: var(--nsr-surface-2); border-radius: 8px; padding: 10px 12px; font-size: 12.5px; }
.nsr-syllabus strong { display: block; text-transform: uppercase; font-size: 10.5px; letter-spacing: .07em; color: var(--nsr-navy-ink); margin-bottom: 4px; }
.nsr-syllabus p { margin: 0; }

.nsr-stages { list-style: none; display: grid; gap: 9px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nsr-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .nsr-stages { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nsr-stage { border: 1px solid var(--nsr-line); border-top: 3px solid var(--nsr-crimson); border-radius: 8px; padding: 10px 11px; display: grid; gap: 4px; background: var(--nsr-surface-2); }
.nsr-stage__no { font-size: 9.5px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: var(--nsr-crimson-ink); }
.nsr-stage__title { font-size: 13px; color: var(--nsr-text); }
.nsr-stage__desc { font-size: 11.5px; color: var(--nsr-muted); line-height: 1.55; }

.nsr-salary { display: grid; gap: 9px; grid-template-columns: 1fr; }
@media (min-width: 480px) { .nsr-salary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .nsr-salary { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nsr-salary__card { border: 1px solid var(--nsr-line); border-left: 4px solid var(--nsr-green); border-radius: 8px; padding: 9px 11px; display: grid; gap: 2px; }
.nsr-salary__label { font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--nsr-muted); }
.nsr-salary__value { font-size: 13px; font-weight: 900; color: var(--nsr-green-ink); }

.nsr-howto { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .nsr-howto { grid-template-columns: 7fr 5fr; } }
.nsr-howto h3 { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--nsr-navy-ink); margin-bottom: 7px; display: flex; align-items: center; gap: 6px; }
.nsr-howto__steps ol { padding-left: 1.2em; list-style: decimal; font-size: 12.5px; line-height: 1.65; }
.nsr-howto__steps li + li { margin-top: .5em; }
.nsr-howto__docs { background: rgba(245, 158, 11, .1); border: 2px solid var(--nsr-gold); border-radius: 10px; padding: 11px 12px; }
.nsr-howto__docs ul { list-style: none; display: grid; gap: 7px; font-size: 12px; }
.nsr-howto__tick { color: var(--nsr-green-ink); font-weight: 900; margin-right: 6px; }

.nsr-faqs { display: grid; gap: 7px; }
.nsr-faq { border: 1px solid var(--nsr-line); border-radius: 8px; background: var(--nsr-surface-2); overflow: hidden; }
.nsr-faq[open] { border-color: var(--nsr-crimson); background: var(--nsr-surface); }
.nsr-faq summary {
	display: flex; align-items: center; gap: 10px; justify-content: space-between;
	padding: 9px 12px; cursor: pointer; list-style: none;
	font-size: 12.5px; font-weight: 800;
}
.nsr-faq summary::-webkit-details-marker { display: none; }
.nsr-faq__ico { transition: transform .18s ease; color: var(--nsr-crimson-ink); flex: none; }
.nsr-faq[open] .nsr-faq__ico { transform: rotate(180deg); }
.nsr-faq__a { padding: 0 12px 11px; font-size: 12.5px; line-height: 1.65; color: var(--nsr-muted); border-top: 1px dashed var(--nsr-line); padding-top: 9px; }

/* ============================================================
   18. Author box
   ============================================================ */
.nsr-author {
	border: 2px solid var(--nsr-navy);
	border-radius: var(--nsr-radius, 8px);
	background: linear-gradient(90deg, var(--nsr-surface) 0%, rgba(245, 158, 11, .1) 100%);
	padding: 14px;
	display: flex; gap: 13px; align-items: flex-start;
}
html.dark .nsr-author { border-color: var(--nsr-line); background: linear-gradient(90deg, #0f172a, rgba(245, 158, 11, .07)); }
.nsr-author__side { flex: none; }
.nsr-author__avatar, .nsr-author__mono {
	width: 62px; height: 62px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--nsr-crimson), var(--nsr-crimson-dark));
	color: #fff; font-weight: 900; font-size: 19px;
	border: 2px solid var(--nsr-amber-soft);
	overflow: hidden;
}
.nsr-author__body { display: grid; gap: 5px; flex: 1; min-width: 0; }
.nsr-author__kicker { font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; color: var(--nsr-crimson-ink); }
.nsr-author__name { font-size: 16px; display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.nsr-author__verified { font-size: 9.5px; font-weight: 900; text-transform: uppercase; background: #dcfce7; color: #166534; padding: 2px 7px; border-radius: 4px; display: inline-flex; gap: 4px; align-items: center; }
html.dark .nsr-author__verified { background: rgba(21, 128, 61, .22); color: #86efac; }
.nsr-author__role { margin: 0; font-size: 11.5px; font-weight: 800; color: var(--nsr-navy-ink); }
.nsr-author__bio { margin: 0; font-size: 12.5px; color: var(--nsr-muted); }
.nsr-author__bio p { margin: 0 0 .5em; }
.nsr-author__meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 11px; margin: 0; }
.nsr-author__meta a { color: var(--nsr-crimson-ink); font-weight: 900; text-decoration: none; }
.nsr-author__meta a:hover { text-decoration: underline; }
.nsr-author__meta span { color: var(--nsr-muted); }

/* ============================================================
   19. Post footer / related / comments
   ============================================================ */
.nsr-post__foot { border: 1px solid var(--nsr-line-soft); border-radius: var(--nsr-radius, 8px); background: var(--nsr-surface); padding: 13px; display: grid; gap: 11px; }
.nsr-post__ends { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.nsr-post__top { text-decoration: none; }
.nsr-post__verify { margin: 0; font-size: 11.5px; color: var(--nsr-muted); display: flex; gap: 7px; align-items: flex-start; background: var(--nsr-surface-2); border-left: 3px solid var(--nsr-gold); padding: 8px 11px; border-radius: 0 6px 6px 0; }
.nsr-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.nsr-tags__label { font-size: 10.5px; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; color: var(--nsr-muted); }
.nsr-pn { display: grid; gap: 9px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nsr-pn { grid-template-columns: 1fr 1fr; } }
.nsr-pn__link { display: grid; gap: 2px; text-decoration: none; border: 1px solid var(--nsr-line); border-radius: 8px; padding: 9px 11px; background: var(--nsr-surface-2); }
.nsr-pn__link:hover { border-color: var(--nsr-navy); }
.nsr-pn__link span { font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; color: var(--nsr-muted); }
.nsr-pn__link strong { font-size: 12.5px; line-height: 1.4; color: var(--nsr-text); }
.nsr-pn__link--next { text-align: right; }

.nsr-related { border: 2px solid var(--nsr-gold); border-radius: var(--nsr-radius, 8px); background: var(--nsr-surface); padding: 13px; }
.nsr-related__title { display: flex; align-items: center; gap: 7px; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--nsr-gold); margin-bottom: 8px; }
.nsr-related__list { list-style: none; display: grid; }
.nsr-related__list > li { border-bottom: 1px dashed var(--nsr-line); }
.nsr-related__list > li:last-child { border-bottom: 0; }

.nsr-comments { border: 1px solid var(--nsr-line-soft); border-radius: var(--nsr-radius, 8px); background: var(--nsr-surface); padding: 14px; }
.nsr-comments__title { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--nsr-navy-ink); margin-bottom: 9px; }
.nsr-comments__list { list-style: none; display: grid; gap: 10px; }
.nsr-comments__list .comment-body { border: 1px solid var(--nsr-line-soft); border-radius: 8px; padding: 10px 12px; font-size: 12.5px; background: var(--nsr-surface-2); }
.nsr-comments__list .comment-meta { font-size: 11px; color: var(--nsr-muted); margin-bottom: 5px; }
.nsr-comments__list .comment-author a { font-weight: 900; text-decoration: none; color: var(--nsr-text); }
.nsr-comments__list .reply a { font-size: 11px; font-weight: 900; color: var(--nsr-crimson-ink); text-decoration: none; }
.nsr-comments__note { font-size: 11.5px; color: var(--nsr-muted); }
.nsr-comments__form label { display: block; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; color: var(--nsr-muted); margin-bottom: 3px; }
.nsr-comments__form input[type=text], .nsr-comments__form input[type=email], .nsr-comments__form input[type=url], .nsr-comments__form textarea {
	width: 100%; font: inherit; font-size: 13px;
	padding: 8px 10px; border-radius: 7px; border: 1px solid var(--nsr-line);
	background: var(--nsr-surface); color: var(--nsr-text);
}
.nsr-comments__form textarea { min-height: 110px; }
.nsr-comments__form p { margin-bottom: 10px; }
.nsr-comments__form .submit { background: var(--nsr-crimson); color: #fff; border: 0; border-radius: 8px; font-weight: 900; padding: 9px 16px; cursor: pointer; font-size: 12px; }
.nsr-comments__form .submit:hover { background: var(--nsr-crimson-dark); }

/* ============================================================
   20. Feed cards (blog / archive / search)
   ============================================================ */
.nsr-archive-head { display: grid; gap: 8px; margin-bottom: 14px; }
.nsr-archive-head__title { font-size: clamp(19px, 3vw, 27px); color: var(--nsr-navy-ink); }
.nsr-archive-head__muted { color: var(--nsr-muted); font-weight: 700; font-size: .68em; }
.nsr-archive-head__sub { font-size: 12.5px; color: var(--nsr-muted); margin: 0; }
.nsr-archive-head__stats { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 11px; font-weight: 800; color: var(--nsr-muted); }
.nsr-archive-head__jump { display: flex; flex-wrap: wrap; gap: 5px; }
.nsr-archive-head__jump a { padding: 4px 9px; border-radius: 999px; border: 1px solid var(--nsr-line); text-decoration: none; color: var(--nsr-muted); background: var(--nsr-surface); }
.nsr-archive-head__jump a:hover, .nsr-archive-head__jump a.is-current { background: var(--nsr-navy); border-color: var(--nsr-navy); color: #fff; }
.nsr-quickcats { display: flex; flex-wrap: wrap; gap: 6px; }

.nsr-layout { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) {
	.nsr-layout { grid-template-columns: minmax(0, 1fr) 300px; }
	.nsr-layout--single { grid-template-columns: minmax(0, 1fr) 320px; }
	.nsr-no-sidebar .nsr-layout,
	.nsr-no-sidebar .nsr-layout--single { grid-template-columns: minmax(0, 1fr); }
}
.nsr-layout__main { display: grid; gap: 12px; min-width: 0; grid-template-columns: minmax(0, 1fr); }
.nsr-layout__main > * { min-width: 0; max-width: 100%; }
/*
 * Every one-column content grid in the theme gets the same treatment. With no explicit
 * template a grid track is sized from its content, so a ten-column table pasted into a
 * notice box, an oEmbed carrying width="1280", or one long official link was enough to
 * widen the box, the section, the page - and the article then hung out over the fixed
 * nav and the bottom bar, which never grow with it. `:where()` keeps this at zero
 * specificity so the real two-column definitions below still win.
 */
:where(.nsr-searchcard, .nsr-portalgaps, .nsr-seoblock, .nsr-post__head, .nsr-block, .nsr-faqs, .nsr-howto__docs ul, .nsr-pairs, .nsr-live__list, .nsr-post__foot, .nsr-pn__link, .nsr-author__body, .nsr-stage, .nsr-salary__card, .nsr-related__list, .nsr-comments__list, .nsr-archive-head, .nsr-box, .nsr-widget, .nsr-noticebox__body, .nsr-notice__body, .nsr-calc__field) {
	grid-template-columns: minmax(0, 1fr);
}
:where(.nsr-searchcard, .nsr-portalgaps, .nsr-seoblock, .nsr-post__head, .nsr-block, .nsr-faqs, .nsr-post__foot, .nsr-related__list, .nsr-comments__list, .nsr-archive-head, .nsr-box, .nsr-widget, .nsr-noticebox__body, .nsr-notice__body) > * {
	min-width: 0;
}
.nsr-feed { list-style: none; display: grid; gap: 12px; }

.nsr-card { border: 1px solid var(--nsr-line-soft); padding: 13px; display: grid; gap: 10px; grid-template-columns: 1fr; position: relative; overflow: hidden; }
@media (min-width: 640px) { .nsr-card { grid-template-columns: minmax(0, 1fr) 148px; } }
.nsr-card:hover { border-color: var(--nsr-navy); }
.nsr-card__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 10.5px; font-weight: 800; color: var(--nsr-muted); }
.nsr-card__cat { text-transform: uppercase; letter-spacing: .06em; background: #fee2e2; color: var(--nsr-crimson-ink); padding: 3px 8px; border-radius: 5px; text-decoration: none; font-weight: 900; }
html.dark .nsr-card__cat { background: rgba(220, 38, 38, .18); }
.nsr-card__title { font-size: 15.5px; line-height: 1.35; }
.nsr-card__title a { text-decoration: none; color: var(--nsr-text); }
.nsr-card__title a:hover { color: var(--nsr-crimson-ink); }
.nsr-card__summary { margin: 0; font-size: 12.5px; color: var(--nsr-muted); }
.nsr-card__window { margin: 0; font-size: 11.5px; font-weight: 800; display: inline-flex; gap: 6px; align-items: center; }
.nsr-card__window--urgent { color: var(--nsr-gold); }
.nsr-card__window--closed { color: var(--nsr-crimson-ink); }
.nsr-card__window--open { color: var(--nsr-green-ink); }
.nsr-card__foot { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; justify-content: space-between; }
.nsr-card__more { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 900; color: var(--nsr-navy-ink); text-decoration: none; text-transform: uppercase; letter-spacing: .04em; }
.nsr-card__more:hover { color: var(--nsr-crimson-ink); text-decoration: underline; }
.nsr-card__thumb { display: none; }
@media (min-width: 640px) {
	.nsr-card__thumb { display: block; border-radius: 8px; overflow: hidden; aspect-ratio: 16 / 9; background: var(--nsr-surface-2); }
	.nsr-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
}

.nsr-pagination ul { list-style: none; display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; margin-top: 6px; }
.nsr-pagination a, .nsr-pagination span, .nsr-pagination .current {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 34px; height: 34px; padding: 0 9px;
	border: 1px solid var(--nsr-line); border-radius: 7px;
	font-size: 12px; font-weight: 800; text-decoration: none;
	background: var(--nsr-surface); color: var(--nsr-text);
}
.nsr-pagination a:hover { background: var(--nsr-navy); color: #fff; border-color: var(--nsr-navy); }
.nsr-pagination .current { background: var(--nsr-crimson); border-color: var(--nsr-crimson); color: #fff; }

/* ============================================================
   21. Sidebar / widgets / ads
   ============================================================ */
.nsr-sidebar { display: grid; gap: 13px; align-self: start; min-width: 0; }
.nsr-sidebar > * { min-width: 0; max-width: 100%; }
.nsr-sidebar .wp-block-search__inside-wrapper { min-width: 0; }
.nsr-sidebar .wp-block-search__input { min-width: 0; flex: 1 1 0; }
.nsr-sidebar .widget_search form { min-width: 0; }
.nsr-sidebar .wp-block-latest-posts__list, .nsr-sidebar .nsr-widget__list { overflow-wrap: anywhere; }
@media (min-width: 1024px) {
	.nsr-sidebar {
		position: sticky; top: 52px;
		max-height: calc(100vh - 68px); overflow: auto; overscroll-behavior: contain;
	}
}
.nsr-widget { border: 1px solid var(--nsr-line-soft); padding: 12px; }
.nsr-widget .widget-title, .nsr-widget > h2, .nsr-widget > h4 {
	display: flex; align-items: center; gap: 6px;
	font-size: 11px; text-transform: uppercase; letter-spacing: .08em;
	color: var(--nsr-crimson-ink);
	border-bottom: 2px solid var(--nsr-gold);
	padding-bottom: 6px; margin-bottom: 9px;
}
.nsr-widget--quick ul, .nsr-widget__links, .nsr-widget__rows { list-style: none; display: grid; }
.nsr-widget__links a, .nsr-widget__rows > .nsr-row { border-bottom: 1px dashed var(--nsr-line); }
.nsr-widget__links a {
	display: flex; align-items: center; gap: 6px;
	padding: 7px 2px; font-size: 12px; font-weight: 800; text-decoration: none; color: var(--nsr-text);
}
.nsr-widget__links a:hover { color: var(--nsr-crimson-ink); }
.nsr-widget__links a em { margin-left: auto; font-style: normal; font-size: 10px; color: var(--nsr-muted); }
.nsr-widget__links .nsr-svg { color: var(--nsr-crimson-ink); }
.nsr-widget ul ul { padding-left: 10px; }
.nsr-widget .children, .nsr-widget .sub-menu { list-style: none; }
.nsr-ad { text-align: center; overflow: hidden; }
.nsr-ad iframe, .nsr-ad ins, .nsr-ad img { max-width: 100%; }
.nsr-ad__label { margin: 0 0 4px; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; color: var(--nsr-muted); opacity: .8; }
.nsr-ad--ad-header { padding: 10px 0 0; }
.nsr-ad--ad-footer { padding: 14px 0 0; }

/* ============================================================
   22. Page template
   ============================================================ */
.nsr-page { display: grid; gap: 14px; }
.nsr-page__head { border: 2px solid var(--nsr-navy); border-radius: var(--nsr-radius, 8px); background: var(--nsr-surface); padding: 14px; display: grid; gap: 7px; }
html.dark .nsr-page__head { border-color: var(--nsr-line); }
.nsr-page__title { font-size: clamp(19px, 3vw, 27px); color: var(--nsr-navy-ink); }
.nsr-page__domain { margin: 0; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10.5px; letter-spacing: .14em; color: var(--nsr-crimson-ink); text-transform: uppercase; font-weight: 800; }
.nsr-page__lede { margin: 0; font-size: 12.5px; color: var(--nsr-muted); }
.nsr-page__stamp { margin: 0; font-size: 11px; color: var(--nsr-muted); display: inline-flex; gap: 6px; align-items: center; }
.nsr-page-links { display: flex; gap: 6px; align-items: center; font-size: 12px; }
.nsr-page-links a { padding: 4px 9px; border: 1px solid var(--nsr-line); border-radius: 6px; text-decoration: none; font-weight: 800; }

.nsr-sitemap { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nsr-sitemap { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .nsr-sitemap { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nsr-sitemap__block { border: 2px solid var(--nsr-crimson); border-radius: 8px; background: var(--nsr-surface); padding: 12px; }
.nsr-sitemap__block--xml { border-color: var(--nsr-green); }
.nsr-sitemap__block h2 { display: flex; align-items: center; gap: 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--nsr-crimson-ink); border-bottom: 1px solid var(--nsr-line); padding-bottom: 7px; margin-bottom: 8px; }
.nsr-sitemap__block h2 a { text-decoration: none; color: inherit; }
.nsr-sitemap__count { margin-left: auto; font-size: 10px; background: var(--nsr-surface-2); border: 1px solid var(--nsr-line); border-radius: 999px; padding: 1px 7px; color: var(--nsr-muted); }
.nsr-sitemap__block ul { list-style: none; display: grid; gap: 1px; max-height: 340px; overflow-y: auto; }
.nsr-sitemap__block li { display: flex; gap: 8px; align-items: baseline; font-size: 12px; border-bottom: 1px dashed var(--nsr-line-soft); }
.nsr-sitemap__block a { text-decoration: none; font-weight: 700; color: var(--nsr-text); flex: 1; }
.nsr-sitemap__block a:hover { color: var(--nsr-crimson-ink); text-decoration: underline; }
.nsr-sitemap__block time { font-size: 10px; color: var(--nsr-muted); white-space: nowrap; }

/* ============================================================
   23. Empty / 404
   ============================================================ */
.nsr-none, .nsr-404 { padding: 22px 16px; display: grid; gap: 12px; justify-items: center; text-align: center; border: 2px dashed var(--nsr-line); }
.nsr-none__title, .nsr-404__title { font-size: 17px; color: var(--nsr-navy-ink); }
.nsr-none__text, .nsr-404__text { margin: 0; font-size: 12.5px; color: var(--nsr-muted); max-width: 58ch; }
.nsr-404__code { margin: 0; font-size: 58px; font-weight: 900; color: var(--nsr-crimson-ink); line-height: 1; letter-spacing: .04em; }
.nsr-404 .nsr-searchform { width: min(100%, 520px); }
.nsr-404__cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: min(100%, 720px); }
@media (min-width: 640px) { .nsr-404__cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nsr-404__cat { display: flex; flex-direction: column; gap: 2px; align-items: center; padding: 11px; border-radius: 8px; border: 1px solid var(--nsr-line); text-decoration: none; background: var(--nsr-surface); font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; color: var(--nsr-crimson-ink); }
.nsr-404__cat em { font-style: normal; font-size: 10px; color: var(--nsr-muted); text-transform: none; letter-spacing: 0; }
.nsr-404__cat:hover { border-color: var(--nsr-crimson); background: rgba(185, 28, 28, .06); }
.nsr-404__sitemap a { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 900; color: var(--nsr-navy-ink); }

/* ============================================================
   24. Footer
   ============================================================ */
.nsr-footer { background: var(--nsr-footer-bg); color: var(--nsr-footer-text); border-top: 4px solid var(--nsr-crimson); margin-top: 34px; font-size: 12px; }
.nsr-footer__grid { display: grid; gap: 22px; grid-template-columns: 1fr; padding: 26px 12px 20px; }
@media (min-width: 640px) { .nsr-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Four equal columns, as in the prototype (`lg:grid-cols-4`). A wider brand column only made
   the three link columns narrower than their own labels, and each column starts on the same
   line no matter how tall the intro beside it is. */
@media (min-width: 1024px) { .nsr-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 30px; padding: 32px 24px 26px; } }
.nsr-footer a { color: var(--nsr-footer-text); }
.nsr-footer__brand { display: flex; align-items: center; gap: 9px; }
.nsr-footer__mark { width: 34px; height: 34px; border-radius: 50%; background: var(--nsr-crimson); border: 2px solid var(--nsr-amber-soft); color: var(--nsr-amber-soft); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.nsr-footer__name { display: block; color: #fff; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; font-size: 13px; }
.nsr-footer__domain { display: block; font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10px; color: var(--nsr-gold); letter-spacing: .1em; }
.nsr-footer__blurb { color: #94a3b8; line-height: 1.6; }
.nsr-footer__editor { color: #cbd5e1; font-size: 11px; }
.nsr-footer__editor strong { color: #fff; }
.nsr-footer__title { color: var(--nsr-gold); font-size: 11.5px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 12px; }
.nsr-footer__links { list-style: none; display: grid; gap: 6px; }
/* Sector names are short but not tiny, so the pair of sub-columns is only for the widths
   where the footer is stacked into one or two big columns. From 1024px the footer is four
   across and each column is ~290px: two lists inside that is what made names wrap to one
   word per line, so the sector column goes single-file there and keeps its own rhythm. */
.nsr-footer__links--2col { grid-template-columns: 1fr; }
@media (min-width: 480px) and (max-width: 1023px) { .nsr-footer__links--2col { grid-template-columns: 1fr 1fr; } }
.nsr-footer__links a { display: flex; align-items: center; gap: 6px; text-decoration: none; padding: 2px 0; color: #cbd5e1; }
.nsr-footer__links a > span { min-width: 0; }
/* The two browse columns are plain text as in the prototype; only the legal column carries a
   marker, and wp_nav_menu() has no markup room for the theme's icon there - so that one gets
   it from CSS. :has() keeps a hand-coded item's own SVG from being doubled, and a browser
   without :has() simply shows no marker: nothing shifts, nothing clips. */
.nsr-footer__col--legal .nsr-footer__links a:not(:has(.nsr-svg))::before {
	content: ""; flex: none; width: 12px; height: 12px; background: var(--nsr-gold);
	-webkit-mask: var(--nsr-chev-mask) center / contain no-repeat;
	mask: var(--nsr-chev-mask) center / contain no-repeat;
}
.nsr-footer__links a:hover { color: var(--nsr-amber-soft); }
.nsr-footer__links .nsr-svg { color: var(--nsr-gold); }
.nsr-footer__links em { margin-left: 7px; flex: none; font-style: normal; font-size: 10px; color: #64748b; }
.nsr-footer__hint { color: #64748b; font-size: 11px; }
.nsr-footer__widgets .widget { margin-top: 10px; color: #94a3b8; }
.nsr-footer__widgets .widget-title { color: var(--nsr-gold); font-size: 11px; text-transform: uppercase; }
.nsr-footer__widgets a { color: #cbd5e1; }

.nsr-disclaimer { background: rgba(245, 158, 11, .12); border-top: 1px solid rgba(245, 158, 11, .4); border-bottom: 1px solid rgba(245, 158, 11, .4); }
.nsr-disclaimer__inner { display: block; max-width: 1020px; margin: 0 auto; padding: 12px 12px; font-size: 11.5px; line-height: 1.65; color: #e2e8f0; text-align: center; }
.nsr-disclaimer strong { display: inline-flex; align-items: center; gap: 6px; vertical-align: -2px; color: var(--nsr-amber-soft); text-transform: uppercase; letter-spacing: .06em; font-size: 10.5px; }
.nsr-disclaimer span { display: inline; }
.nsr-disclaimer a { display: inline-block; margin-left: 8px; color: var(--nsr-gold); font-weight: 900; white-space: nowrap; }

.nsr-footer__bar { display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: center; align-items: center; padding: 12px 12px 22px; border-top: 1px solid rgba(148, 163, 184, .14); font-size: 11px; color: #94a3b8; text-align: center; }
.nsr-footer__bar p { margin: 0; }
.nsr-footer__feeds { display: flex; gap: 12px; }
.nsr-footer__feeds a { font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; font-size: 10.5px; text-decoration: none; color: #94a3b8; }
.nsr-footer__feeds a:hover { color: var(--nsr-gold); }

/* ============================================================
   24b. Video and live-coverage blocks
   ============================================================ */
.nsr-block--video { padding: 0; overflow: hidden; border-color: var(--nsr-navy); }
.nsr-block--video > .nsr-block__head { margin: 0; }
.nsr-video { position: relative; aspect-ratio: 16 / 9; background: #0b1220; overflow: hidden; }
.nsr-video img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .9; }
.nsr-video video,
.nsr-video__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.nsr-video__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 62px; height: 62px; border-radius: 999px; border: 2px solid #fff;
	background: var(--nsr-crimson); color: #fff; cursor: pointer;
	display: grid; place-items: center; font-size: 20px; padding-left: 4px;
}
.nsr-video__play:hover { background: var(--nsr-crimson-ink); }
.nsr-video__note {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 8px 12px;
	font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
	font-size: 10px; letter-spacing: .06em; color: #cbd5e1;
	background: linear-gradient(180deg, rgba(2,6,23,0), rgba(2,6,23,.85));
}
.nsr-video.is-playing .nsr-video__note { display: none; }

.nsr-live { list-style: none; display: grid; gap: 0; margin: 0; padding: 0 14px 12px; }
.nsr-live li {
	display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 10px;
	padding: 9px 0; border-bottom: 1px dashed var(--nsr-line-soft);
}
.nsr-live li:last-child { border-bottom: 0; }
.nsr-live__time {
	font-family: "JetBrains Mono", ui-monospace, Menlo, monospace;
	font-size: 10.5px; font-weight: 600; color: var(--nsr-crimson-ink);
	text-transform: uppercase; letter-spacing: .04em; padding-top: 2px;
}
.nsr-live__text { font-size: 13.5px; min-width: 0; overflow-wrap: anywhere; }
.nsr-live__dot {
	width: 8px; height: 8px; border-radius: 999px; background: var(--nsr-crimson);
	display: inline-block; margin-right: 7px; animation: nsr-pulse 1.6s ease-in-out infinite;
}
@keyframes nsr-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@media (max-width: 520px) {
	.nsr-live li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
@media (prefers-reduced-motion: reduce) {
	.nsr-live__dot { animation: none; }
}

/* ============================================================
   25. Mobile bar, drawer, toast
   ============================================================ */
.nsr-mobilebar {
	position: fixed; inset: auto 0 0 0; z-index: 45;
	/*
	 * Flex, not `repeat(4, 1fr)`: the bar holds four or five shortcuts depending on
	 * whether a channel is configured, and a fixed four-track grid sent the fifth onto
	 * a second row - doubling the bar's height while body kept reserving 58px, so the
	 * bottom of every notice hid behind it.
	 */
	display: flex;
	background: var(--nsr-surface);
	/* The crimson rule is drawn inside the box, so the bar's outer height is
	   exactly --nsr-mobilebar-h and body's reserved padding still matches. */
	border-top: 0; box-shadow: inset 0 2px 0 var(--nsr-crimson), 0 -4px 14px rgba(15, 23, 42, .12);
	font-size: 10px; font-weight: 900;
	padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (min-width: 781px) { .nsr-mobilebar { display: none; } }
.nsr-mobilebar__item {
	display: flex; flex: 1 1 0; min-width: 0;
	flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	height: var(--nsr-mobilebar-h, 58px); box-sizing: border-box; overflow: hidden;
	padding: 5px 3px; text-decoration: none; border: 0; border-right: 1px solid var(--nsr-line-soft); background: none; cursor: pointer;
	font: inherit; color: var(--nsr-navy-ink);
}
.nsr-mobilebar__item:last-child { border-right: 0; }
.nsr-mobilebar__item > span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.15; }
.nsr-mobilebar__item--home { color: var(--nsr-crimson-ink); }
.nsr-mobilebar__item--tg { background: #0088cc; color: #fff; }
.nsr-mobilebar__item .nsr-count { font-style: normal; }

.nsr-drawer { position: fixed; inset: 0; z-index: 60; background: rgba(2, 6, 23, .62); display: flex; align-items: center; justify-content: center; padding: 16px; backdrop-filter: blur(2px); }
.nsr-drawer[hidden] { display: none; }
.nsr-drawer__panel { width: min(460px, 100%); background: var(--nsr-surface); border: 2px solid var(--nsr-crimson); border-radius: 12px; overflow: hidden; box-shadow: var(--nsr-shadow-lg); display: grid; grid-template-rows: auto 1fr auto; max-height: 82vh; }
.nsr-drawer__head { background: var(--nsr-crimson); color: #fff; display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; }
.nsr-drawer__head h2 { display: flex; align-items: center; gap: 7px; font-size: 12.5px; text-transform: uppercase; letter-spacing: .06em; }
.nsr-drawer__close { background: none; border: 0; color: #fff; cursor: pointer; display: inline-flex; }
.nsr-drawer__body { padding: 12px; overflow-y: auto; display: grid; gap: 8px; font-size: 12px; }
.nsr-drawer__empty { color: var(--nsr-muted); text-align: center; padding: 18px 6px; }
.nsr-drawer__item { display: flex; gap: 9px; align-items: center; justify-content: space-between; border: 1px solid var(--nsr-line); border-radius: 8px; padding: 8px 10px; background: var(--nsr-surface-2); }
.nsr-drawer__item a { text-decoration: none; font-weight: 800; flex: 1; color: var(--nsr-text); }
.nsr-drawer__item a:hover { color: var(--nsr-crimson-ink); }
.nsr-drawer__item button { background: none; border: 0; color: var(--nsr-muted); cursor: pointer; display: inline-flex; padding: 3px; border-radius: 4px; }
.nsr-drawer__item button:hover { color: var(--nsr-crimson-ink); background: rgba(185, 28, 28, .1); }
.nsr-drawer__foot { display: flex; gap: 8px; justify-content: flex-end; padding: 10px 12px; border-top: 1px solid var(--nsr-line); background: var(--nsr-surface-2); }

.nsr-toast {
	position: fixed; right: 14px; bottom: 68px; z-index: 70;
	display: flex; align-items: center; gap: 8px;
	background: #0f172a; color: #fff;
	border-left: 4px solid var(--nsr-gold);
	padding: 10px 14px; border-radius: 10px;
	font-size: 12px; font-weight: 700;
	box-shadow: var(--nsr-shadow-lg);
	max-width: min(92vw, 380px);
	animation: nsr-toast-in .18s ease;
}
@media (min-width: 781px) { .nsr-toast { bottom: 22px; } }
.nsr-toast[hidden] { display: none; }
.nsr-toast__ico { color: #4ade80; display: inline-flex; }
@keyframes nsr-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ============================================================
   26. Print, motion, reduced data
   ============================================================ */
@media print {
	.nsr-nav, .nsr-ticker, .nsr-mobilebar, .nsr-share, .nsr-save,
	.nsr-ad, .nsr-related, .nsr-comments, .nsr-footer, .nsr-toc__more, .nsr-post__cta { display: none !important; }
	body { background: #fff; color: #000; padding: 0; }
	.nsr-noticebox, .nsr-block, .nsr-post__head { box-shadow: none; break-inside: avoid; }
	.nsr-row__link::after { content: " (" attr(href) ")"; font-size: 9px; color: #555; }
	a { text-decoration: none; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.nsr-ticker__track { animation: none; }
	.is-blink { animation: none; }
	.nsr-toast { animation: none; }
	* { transition-duration: .01ms !important; }
}

.nsr-no-js .nsr-ticker__track { animation: none; }
body:not(.nsr-js-on) .nsr-live { display: none; }

/* Widget areas rendered by plugins (search, recent posts, calendar). */
.nsr-widget ul li a, .widget ul li a { text-decoration: none; }
.widget_search .wp-block-search__inside-wrapper { display: flex; gap: 6px; }
.widget_search input[type=search] { flex: 1; min-width: 0; padding: 7px 9px; border-radius: 7px; border: 1px solid var(--nsr-line); background: var(--nsr-surface); color: var(--nsr-text); font: inherit; }
.widget_search button { background: var(--nsr-crimson); color: #fff; border: 0; border-radius: 7px; padding: 7px 12px; font-weight: 900; font-size: 12px; cursor: pointer; }
.widget table { width: 100%; font-size: 12px; border-collapse: collapse; }
.widget table td, .widget table th { border: 1px solid var(--nsr-line-soft); padding: 4px; text-align: center; }
