/* Blue Reef — LRP Endorsement Report staff tool (Chunk 3)
 * The results dropdown is portaled to <body> by the JS and positioned as a fixed
 * overlay, so it floats above page content (footer/content never move) and no
 * ancestor overflow/transform can clip it. It is therefore styled by #id here,
 * with literal colors (it lives outside .brlrp-tool, so the CSS vars below don't
 * cascade to it).
 */
.brlrp-tool {
	--br-navy: #061835;
	--br-gold: #B8A063;
	--br-tint: #E6E9F0;
	--br-gray-text: #6B7280;
	--br-gray-rule: #C9CDD6;
	max-width: 760px;
	margin: 0 auto 48px;
	padding-bottom: 8px;
	font-family: Arial, Helvetica, sans-serif;
	color: var(--br-navy);
}

/* Vertical breathing room around the report tool. The theme's page-title header
   (which used to provide top spacing) is now suppressed, so match the site's
   interior section rhythm using the theme's own spacing token. Scoped to the
   report wrapper's id so the hub's .brlrp-tool cards are unaffected. */
#brlrp-tool {
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--xx-large);
}

.brlrp-tool .brlrp-title {
	color: var(--br-navy);
	font-family: "Times New Roman", Times, serif;
	font-weight: 700;
	margin: 0 0 4px;
}

.brlrp-tool .brlrp-instr {
	color: var(--br-gray-text);
	margin: 0 0 16px;
}

.brlrp-locked p {
	background: var(--br-tint);
	border-left: 4px solid var(--br-gold);
	padding: 14px 16px;
	border-radius: 4px;
}

/* ---- search input ---- */
.brlrp-tool .brlrp-search {
	position: relative;
}

.brlrp-tool .brlrp-input {
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 10px 12px;
	font-size: 16px;
	border: 1px solid var(--br-gray-rule);
	border-radius: 4px;
	color: var(--br-navy);
	background: #fff;
}

.brlrp-tool .brlrp-input:focus {
	outline: none;
	border-color: var(--br-navy);
	box-shadow: 0 0 0 2px rgba(6, 24, 53, 0.15);
}

/* ---- results dropdown: fixed overlay, portaled to <body> ---- */
#brlrp-suggestions {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	position: fixed !important;        /* JS sets left/top/width inline */
	z-index: 99999 !important;         /* above site header/footer */
	box-sizing: border-box !important;
	/* guard against themes that put lists into multiple columns */
	-webkit-columns: auto !important;
	columns: auto !important;
	column-count: 1 !important;
	max-height: 240px !important;      /* ~6 rows */
	overflow-y: auto !important;       /* scroll the rest */
	-webkit-overflow-scrolling: touch;
	background: #fff !important;
	border: 1px solid #C9CDD6;
	border-radius: 4px;
	box-shadow: 0 8px 22px rgba(6, 24, 53, 0.22);
	font-family: Arial, Helvetica, sans-serif;
}

#brlrp-suggestions[hidden] {
	display: none !important;
}

#brlrp-suggestions .brlrp-suggestion {
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	float: none !important;
	position: static !important;
	margin: 0 !important;
	padding: 9px 12px !important;
	list-style: none !important;
	background: #fff !important;
	color: #061835 !important;
	font-size: 15px !important;
	line-height: 1.4 !important;
	text-indent: 0 !important;
	white-space: normal;
	cursor: pointer;
	border: 0;
	border-bottom: 1px solid #eef0f4;
}

#brlrp-suggestions .brlrp-suggestion::before,
#brlrp-suggestions .brlrp-suggestion::marker {
	content: none !important;
}

#brlrp-suggestions .brlrp-suggestion:last-child {
	border-bottom: none;
}

#brlrp-suggestions .brlrp-suggestion:hover {
	background: #E6E9F0 !important;
}

/* ---- selection + buttons ---- */
.brlrp-tool .brlrp-selected {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 16px 0;
	padding: 12px 14px;
	background: var(--br-tint);
	border-radius: 4px;
}

.brlrp-tool .brlrp-selected-label {
	flex: 1 1 auto;
	min-width: 0;
}

.brlrp-tool .brlrp-btn {
	display: inline-block;
	width: auto !important;
	margin: 0;
	background: #fff;
	color: var(--br-navy);
	border: 1px solid var(--br-navy);
	border-radius: 4px;
	padding: 9px 18px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
}

.brlrp-tool .brlrp-btn:hover {
	background: var(--br-tint);
}

.brlrp-tool .brlrp-btn-primary {
	background: var(--br-navy);
	color: #fff;
}

.brlrp-tool .brlrp-btn-primary:hover {
	background: #0a2350;
}

.brlrp-tool .brlrp-btn:disabled {
	opacity: 0.5;
	cursor: default;
}

.brlrp-tool .brlrp-status {
	margin: 10px 0;
	font-size: 14px;
	color: var(--br-gray-text);
}

.brlrp-tool .brlrp-status-error {
	color: #b00020;
}

.brlrp-tool .brlrp-actions {
	margin: 16px 0;
}

/* ---- preview document (resembles the PDF) ---- */
.brlrp-tool .brlrp-preview {
	margin-top: 16px;
}

.brlrp-doc {
	border: 1px solid var(--br-gray-rule);
	border-radius: 4px;
	padding: 22px 24px;
	background: #fff;
}

.brlrp-doc-head {
	border-bottom: 2px solid var(--br-navy);
	padding-bottom: 12px;
	margin-bottom: 12px;
}

.brlrp-doc-title {
	font-family: "Times New Roman", Times, serif;
	font-weight: 700;
	font-size: 24px;
	color: var(--br-navy);
	line-height: 1.1;
}

.brlrp-doc-cust {
	font-family: "Times New Roman", Times, serif;
	font-style: italic;
	font-size: 15px;
	color: var(--br-navy);
	margin-top: 2px;
}

.brlrp-doc-meta {
	font-size: 11px;
	color: var(--br-navy);
	margin-top: 4px;
}

.brlrp-doc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	margin: 0;
}

.brlrp-doc-table th {
	color: var(--br-navy);
	font-weight: 700;
	text-align: center;
	padding: 6px 10px;
	border-bottom: 1px solid var(--br-gray-rule);
	vertical-align: bottom;
}

.brlrp-doc-table th.l {
	text-align: left;
}

.brlrp-doc-table th.r {
	text-align: right;
}

/* Type column: never wrap "Feeder - Str" / "Feeder - Hfr" — the auto-layout table
   gives it the width it needs, pulled from the roomier columns. */
.brlrp-doc-table th.ty,
.brlrp-doc-table td.ty {
	white-space: nowrap;
}

.brlrp-doc-band td {
	background: var(--br-navy);
	color: #fff;
	font-family: "Times New Roman", Times, serif;
	font-weight: 700;
	font-size: 15px;
	padding: 6px 10px;
}
/* Month name stays bold; the per-type summary after it reads as lighter detail. */
.brlrp-doc-bandsum { font-weight: 400; }

.brlrp-doc-row td {
	background: var(--br-tint);
	color: var(--br-navy);
	text-align: center;
	padding: 6px 10px;
}

.brlrp-doc-row td.l {
	text-align: left;
}

.brlrp-doc-row td.r {
	text-align: right;
}

.brlrp-doc-total td {
	background: var(--br-navy);
	color: #fff;
	font-weight: 700;
	padding: 8px 10px;
	text-align: center;
}

.brlrp-doc-total td:first-child {
	text-align: left;
}

.brlrp-doc-note {
	margin-top: 12px;
	font-size: 12px;
	color: #b00020;
}

.brlrp-empty p {
	color: var(--br-gray-text);
}

/* ---- Employee Portal hub (website style: Montserrat + Domine, royal blue) ----
 * Follows the bluereef-website-style skill (on-site interior-page pattern), NOT
 * the print branding. No body logo, no disclosure, flat icon-topped cards.
 */
.brlrp-portal {
	font-family: "Montserrat", system-ui, sans-serif;
	color: #061835;
	background: #fff;
	margin: 0 0 48px;
}

.brlrp-portal a {
	color: #426abe;
	text-decoration: none;
}

.brlrp-portal a:hover {
	color: #061835;
}

/* Let the portal wrapper fill the full content area. The theme caps
   `.entry-content > *` to content width; freeing our wrapper lets the hero break
   out full-bleed like a native alignfull block (the intro/tool grid keep their
   own max-widths, so only the hero background widens). */
.entry-content > .brlrp-portal,
.block-area > .brlrp-portal {
	max-width: none !important;
}

/* text-only interior hero: solid navy band, short, white Domine title.
   Full-bleed via the theme's EXACT .alignfull technique (bluereef-2025 main.css):
   expand by the viewport-padding gutter on each side and cap at 100vw. Scrollbar-
   safe because the theme's .site-inner has overflow:hidden. */
.brlrp-hero {
	background: #061835;
	width: calc(100% + var(--wp--custom--spacing--viewport-padding) * 2);
	max-width: 100vw;
	margin-left: calc(-1 * var(--wp--custom--spacing--viewport-padding));
	margin-right: calc(-1 * var(--wp--custom--spacing--viewport-padding));
	padding: 52px 24px;
	text-align: center;
}

.brlrp-hero h1 {
	font-family: "Domine", Georgia, serif;
	font-weight: 500;
	font-size: 56px;
	line-height: 1.28;
	color: #ffffff;
	margin: 0;
}

/* ============================================================
   Portal header — the navy bar shown on EVERY portal page (hub +
   interior). Replaces the marketing site header once logged in.
   Logo left · "Employee Portal" + greeting centered · Back right.
   ============================================================ */
/* Hide the theme's light-blue marketing header on logged-in portal pages. */
.brlrp-portal-in .site-header { display: none !important; }

.brlrp-phead {
	background: #061835;
	/* full-bleed via the theme's EXACT alignfull technique (same as .brlrp-hero) */
	width: calc(100% + var(--wp--custom--spacing--viewport-padding) * 2);
	max-width: 100vw;
	margin-left: calc(-1 * var(--wp--custom--spacing--viewport-padding));
	margin-right: calc(-1 * var(--wp--custom--spacing--viewport-padding));
}
.brlrp-phead__inner {
	max-width: 1328px;
	margin: 0 auto;
	padding: 30px 24px; /* taller header to fit the larger badge cleanly */
	display: grid;
	grid-template-columns: 1fr auto 1fr; /* logo | centered title | back — title stays centered regardless of back */
	align-items: center;
	gap: 16px;
}
.brlrp-phead__logo { grid-column: 1; justify-self: start; display: inline-flex; align-items: center; }
/* Force the badge size over the THEME'S global `img { height:auto; max-width:100% }`
   (assets/css/main.css) — that global neutralizes plain image sizing, so height/width
   are set !important here. Badge source is 1050x1050, so it stays crisp when scaled up. */
.brlrp-phead__logo img {
	height: 112px !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
	display: block;
}
.brlrp-phead__center { grid-column: 2; text-align: center; }
.brlrp-phead__title {
	font-family: "Domine", Georgia, serif; font-weight: 500;
	font-size: clamp(26px, 3.4vw, 38px); line-height: 1.2; color: #ffffff; margin: 0;
}
.brlrp-phead__greeting {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 500;
	font-size: clamp(13px, 1.6vw, 16px); color: #bee5f4; margin: 5px 0 0; line-height: 1.3;
}
/* Log out link sits next to the greeting. Sky-blue like the greeting, brightening to white
   on hover; color !important beats the portal's global `.brlrp-portal a { color:#426abe }`. */
.brlrp-phead__logout {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 600;
	color: #bee5f4 !important; text-decoration: none; white-space: nowrap;
	transition: color .2s ease;
}
.brlrp-phead__logout:hover { color: #ffffff !important; text-decoration: underline; }
/* Middot separator only when a greeting precedes the link. */
.brlrp-phead__greet-text + .brlrp-phead__logout::before {
	content: "\00b7"; margin: 0 8px; color: rgba( 255, 255, 255, 0.55 );
	font-weight: 400; text-decoration: none;
}

/* ============================================================
   Neutral account-status page — renders inside the SITE theme
   (normal Blue Reef header/footer); no portal chrome/branding.
   ============================================================ */
.brlrp-account {
	max-width: 720px; margin: 0 auto; padding: 24px 0 8px;
	font-family: "Montserrat", system-ui, sans-serif;
}
.brlrp-account__eyebrow {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 500;
	font-size: 16px; color: #061835; margin: 0 0 6px;
}
.brlrp-account__title {
	font-family: "Domine", Georgia, serif; font-weight: 500;
	font-size: clamp( 26px, 3vw, 32px ); color: #061835; margin: 0 0 12px; line-height: 1.25;
}
.brlrp-account__msg { font-size: 18px; line-height: 1.5; color: #061835; margin: 0 0 24px; }
.brlrp-account__actions { margin: 0; }
.brlrp-account__logout {
	display: inline-block; font-family: "Montserrat", system-ui, sans-serif; font-weight: 600;
	font-size: 16px; padding: 12px 24px; border-radius: 4px;
	background: #426abe; color: #ffffff !important; text-decoration: none;
	transition: background-color .2s ease;
}
.brlrp-account__logout:hover { background: #061835; color: #ffffff !important; }
.brlrp-phead__nav { grid-column: 3; justify-self: end; }
/* color set !important to beat `.brlrp-portal a { color:#426abe }` (the portal's global
   link color, which out-specifies this class) — otherwise the arrow + text stay royal. */
.brlrp-phead__back {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; font-size: 14px;
	color: #ffffff !important; text-decoration: none; white-space: nowrap;
	padding: 9px 16px; border: 1px solid #ffffff; border-radius: 4px;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.brlrp-phead__back:hover { background: #ffffff; color: #061835 !important; border-color: #ffffff; }

/* Page-context heading below the header (customer name, tool/report name). Clear
   breathing room between the navy header bar and the first page title. */
.brlrp-page-eyebrow {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; font-size: 13px;
	letter-spacing: .06em; text-transform: uppercase; color: #426abe; margin: 38px 0 2px;
}
.brlrp-page-title {
	font-family: "Domine", Georgia, serif; font-weight: 500; font-size: clamp( 24px, 3vw, 32px );
	color: #061835; margin: 0 0 16px; line-height: 1.2;
}
/* When the page title is the first thing under the header (no eyebrow, e.g. LRP vs. Short Call). */
#brlvc > .brlrp-page-title:first-child { margin-top: 38px; }

/* Report/tool page: a clean portal panel (matches the hub/dashboard panel look) sitting
   below the header with breathing room. The hub-card styles no longer leak here — they are
   scoped to .brlrp-portal--hub. */
.brlrp-portal--tool #brlrp-tool {
	font-family: "Montserrat", system-ui, sans-serif;
	color: #061835;
	max-width: 960px;
	margin: 38px auto 40px;
	padding: 28px 28px 22px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 10px;
}
.brlrp-portal--tool #brlrp-tool:hover { background: #fff; } /* never a card hover here */
.brlrp-portal--tool #brlrp-tool .brlrp-title {
	font-family: "Domine", Georgia, serif; font-weight: 500; font-size: clamp( 22px, 3vw, 28px );
	color: #061835; margin: 0 0 4px;
}
.brlrp-portal--tool #brlrp-tool .brlrp-instr { font-family: "Montserrat", system-ui, sans-serif; }

@media ( max-width: 700px ) {
	.brlrp-phead__inner { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 10px; padding: 14px 16px; }
	.brlrp-phead__logo, .brlrp-phead__center, .brlrp-phead__nav { grid-column: 1; justify-self: center; }
	.brlrp-phead__logo img { height: 76px !important; }
	.brlrp-phead__title { font-size: 24px; }
}

.brlrp-portal-intro {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 18px;
	line-height: 1.5;
	color: #000;
	text-align: center;
	max-width: 768px;
	margin: 32px auto 0;
	padding: 0 24px;
}

/* flat feature-block grid (matches the site's "Why Blue Reef" cards) */
.brlrp-tools {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px;
	max-width: 1328px;
	margin: 0 auto;
	padding: 40px 24px;
}

/* Scoped to .brlrp-portal so these flat-card styles apply ONLY to the hub's tool
   cards. The report-tool page's outer container also uses class "brlrp-tool"
   (<div class="brlrp-tool" id="brlrp-tool">); without this scope, the card hover
   below turned that whole container pale-sky on hover. */
.brlrp-portal--hub .brlrp-tool {
	display: block;
	background: #fff;          /* flat — no border, no shadow, no radius */
	padding: 32px 24px;
	text-decoration: none;
	color: #061835;
	transition: background-color 0.2s ease;
}

.brlrp-portal--hub .brlrp-tool:hover {
	background: #f5f5f5;       /* neutral grey hover — no blue-on-hover */
}

.brlrp-portal--hub .brlrp-tool__icon {
	width: 52px;
	height: 52px;
	display: block;
	margin-bottom: 16px;
}

.brlrp-portal--hub .brlrp-tool__title {
	font-family: "Domine", Georgia, serif;
	font-weight: 500;
	font-size: 20px;
	color: #061835;
	margin: 0 0 8px;
}

.brlrp-portal--hub .brlrp-tool__desc {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
	margin: 0;
}

/* Suppress the theme's duplicate page-title header on the portal page only. The
   `brlrp-hide-page-title` body class is added by BRLRP_Web::filter_body_class()
   only when the hub shortcode is present, so no other page is affected. Our navy
   hero is the title. (Theme renders the title as header.entry-header > h1.entry-title.) */
.brlrp-hide-page-title .entry-header {
	display: none !important;
}

/* ---- Branded on-page login: full-screen photo layout ----
   Wraps WordPress core's wp_login_form() output (ids #brlrp-loginform,
   #user_login, #user_pass, #wp-submit); native auth is unchanged. Full-bleed
   photo stage with the navy card floated to the right; scrim behind the card for
   legibility over the image. */
.brlrp-portal--login {
	padding: 0;
}

/* full-bleed photo stage — same alignfull break-out technique as the hero */
.brlrp-login-stage {
	position: relative;
	width: calc(100% + var(--wp--custom--spacing--viewport-padding) * 2);
	max-width: 100vw;
	margin-left: calc(-1 * var(--wp--custom--spacing--viewport-padding));
	margin-right: calc(-1 * var(--wp--custom--spacing--viewport-padding));
	min-height: clamp(560px, 82vh, 860px);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 48px clamp(24px, 6vw, 96px);
}

/* subtle even scrim for contrast over a busy photo */
.brlrp-login-stage::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(6, 24, 53, 0.18);
	pointer-events: none;
}

.brlrp-login {
	position: relative; /* above the scrim */
	z-index: 1;
	width: 100%;
	max-width: 480px;
	margin: 0;
	background: #ffffff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 44px 40px 40px;
	text-align: center;
	color: #061835;
	font-family: "Montserrat", system-ui, sans-serif;
	box-shadow: 0 20px 50px rgba(6, 24, 53, 0.30);
}

.brlrp-login__welcome {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: #061835;
	margin: 0 0 6px;
}

.brlrp-login__title {
	font-family: "Domine", Georgia, serif;
	font-weight: 500;
	font-size: 28px;
	color: #061835;
	margin: 0 0 4px;
}

.brlrp-login__sub {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 15px;
	color: #061835;
	margin: 0 0 24px;
}

@media (max-width: 640px) {
	.brlrp-login-stage {
		justify-content: center;
		min-height: clamp(480px, 88vh, 720px);
		padding: 32px 20px;
	}
	.brlrp-login-stage::before {
		background: rgba(6, 24, 53, 0.45);
	}
}

.brlrp-login__error {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 14px;
	color: #b00020;
	background: #fdecec;
	border: 1px solid #f5c2c2;
	border-radius: 4px;
	padding: 10px 12px;
	margin: 0 0 20px;
	text-align: left;
}

.brlrp-login__forgot {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 14px;
	text-align: center;
	margin: 16px 0 0;
}
.brlrp-login__forgot a {
	color: #426abe;
	text-decoration: none;
}
.brlrp-login__forgot a:hover {
	color: #061835;
	text-decoration: underline;
}

/* Set-your-password / forgot-password forms (branded portal auth) */
.brlrp-login__ok {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 14px;
	color: #1a7f37;
	background: #eaf7ee;
	border: 1px solid #b7e0c2;
	border-radius: 4px;
	padding: 10px 12px;
	margin: 0 0 20px;
	text-align: left;
}
.brlrp-pw-row { text-align: left; margin: 0 0 14px; }
.brlrp-pw-row label {
	display: block;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #061835;
	margin: 0 0 6px;
}
.brlrp-pw-field { display: flex; gap: 8px; align-items: stretch; }
.brlrp-pw-input {
	flex: 1 1 auto;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 15px;
	padding: 10px 12px;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	min-width: 0;
}
.brlrp-pw-toggle {
	flex: 0 0 auto;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 13px;
	background: #f1fbff;
	border: 1px solid #cfe0ff;
	border-radius: 4px;
	color: #426abe;
	cursor: pointer;
	padding: 0 12px;
}
.brlrp-pw-toggle:hover { background: #e3f2ff; }
.brlrp-pw-strength {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 13px;
	margin: 0 0 14px;
	text-align: left;
	color: #535353;
	min-height: 18px;
}
.brlrp-pw-strength.is-vweak, .brlrp-pw-strength.is-weak { color: #b00020; }
.brlrp-pw-strength.is-medium { color: #b8860b; }
.brlrp-pw-strength.is-strong, .brlrp-pw-strength.is-vstrong { color: #1a7f37; }
.brlrp-pw-submit {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 16px;
	font-weight: 600;
	background: #426abe;
	color: #fff;
	border: none;
	border-radius: 4px;
	padding: 12px 28px;
	cursor: pointer;
	width: 100%;
}
.brlrp-pw-submit:hover { background: #061835; }

#brlrp-loginform {
	text-align: left;
}

#brlrp-loginform p {
	margin: 0 0 16px;
}

#brlrp-loginform label {
	display: block;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #061835;
	margin-bottom: 6px;
}

#brlrp-loginform input[type="text"],
#brlrp-loginform input[type="password"] {
	width: 100%;
	box-sizing: border-box;
	padding: 11px 12px;
	font-size: 16px;
	font-family: "Montserrat", system-ui, sans-serif;
	color: #061835;
	background: #ffffff;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
}

#brlrp-loginform input[type="text"]:focus,
#brlrp-loginform input[type="password"]:focus {
	outline: none;
	border-color: #426abe;
	box-shadow: 0 0 0 2px rgba(66, 106, 190, 0.4);
}

#brlrp-loginform .login-remember label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
	font-size: 14px;
	color: #061835;
	margin: 0;
}

#brlrp-loginform .login-remember input {
	margin: 0;
}

#brlrp-loginform .login-submit {
	margin-bottom: 0;
}

#brlrp-loginform #wp-submit {
	width: 100%;
	cursor: pointer;
	font-family: "Montserrat", system-ui, sans-serif;
	font-weight: 600;
	font-size: 16px;
	padding: 13px 20px;
	border: none;
	border-radius: 4px;
	background: #426abe; /* royal blue */
	color: #ffffff;
	transition: background-color 0.2s ease;
}

#brlrp-loginform #wp-submit:hover {
	background: #061835;
}

/* ---- Hub layout: greeting + two-column (left 2/3 list, right 1/3 cards) ---- */
.brlrp-hero__greeting {
	font-family: "Montserrat", system-ui, sans-serif;
	font-weight: 500;
	font-size: clamp(18px, 2.4vw, 22px);
	color: #bee5f4;
	margin: 10px 0 0;
	line-height: 1.3;
}

.brlrp-hub-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 32px;
	max-width: 1328px;
	margin: 0 auto;
	padding: 40px 24px;
	align-items: start;
}

@media (max-width: 900px) {
	.brlrp-hub-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

.brlrp-hub-main {
	min-width: 0;
}

.brlrp-hub-heading {
	font-family: "Domine", Georgia, serif;
	font-weight: 500;
	font-size: clamp(24px, 3vw, 32px);
	color: #061835;
	margin: 0 0 12px;
}

.brlrp-hub-note {
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #6b7280;
	margin: 0;
}

.brlrp-hub-side {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

/* give the stacked side cards visible edges (the flat grid cards had none) and
   force equal full-column width — the report-tool base rule (.brlrp-tool) leaks a
   `max-width:760px; margin:0 auto` here, whose auto margins would otherwise stop
   the flex items from stretching and size each card to its own content width. */
.brlrp-hub-side .brlrp-tool {
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	width: 100%;
	max-width: none;
	margin: 0;
	box-sizing: border-box;
}

/* Compact report cards: icon to the LEFT of the stacked title + description, so each
   card is short (we expect 5–7 stacked report cards). CSS-only via a 2-col grid — the
   icon spans both text rows in column 1; title and description stack in column 2. The
   featured Daily Report card is excluded and keeps its icon-on-top hero layout. On
   mobile the whole right column goes full width, so icon-left simply has more room —
   it does not need a separate breakpoint. */
.brlrp-hub-side .brlrp-tool:not(.brlrp-tool--featured) {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 16px;
	align-items: center;
	padding: 20px 24px;
}
.brlrp-hub-side .brlrp-tool:not(.brlrp-tool--featured) .brlrp-tool__icon {
	grid-column: 1;
	grid-row: 1 / span 2;
	align-self: center;
	margin-bottom: 0;      /* remove the icon-on-top spacing */
}
.brlrp-hub-side .brlrp-tool:not(.brlrp-tool--featured) .brlrp-tool__title {
	grid-column: 2;
	grid-row: 1;
	margin: 0 0 4px;
}
.brlrp-hub-side .brlrp-tool:not(.brlrp-tool--featured) .brlrp-tool__desc {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
}

/* featured (primary) tool card — Daily Report generator */
.brlrp-hub-side .brlrp-tool--featured {
	border: 1px solid #d6e2f5;
	border-top: 4px solid #426abe; /* royal accent marks it as the featured action */
	background: #f7faff;
}

.brlrp-hub-side .brlrp-tool--featured:hover {
	background: #f7faff; /* it's not a link; keep it steady */
}

.brlrp-featured-btn {
	display: inline-block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 14px;
	font-family: "Montserrat", system-ui, sans-serif;
	font-weight: 600;
	font-size: 16px;
	padding: 12px 20px;
	border: none;
	border-radius: 4px;
	background: #426abe;
	color: #ffffff;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.brlrp-featured-btn:hover {
	background: #061835;
}

.brlrp-featured-btn:disabled {
	background: #8a97b5;
	cursor: default;
}

.brlrp-daily-status {
	margin-top: 10px;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 13px;
	line-height: 1.4;
	color: #5a6470;
}

.brlrp-daily-status--ok {
	color: #1a7d3c;
}

.brlrp-daily-status--warn {
	color: #9a7a12;
}

.brlrp-daily-status--error {
	color: #c0392b;
}

/* ---- "LRP Policies Expiring This Week" table (left column) ---- */
.brlrp-policies {
	width: 100%;
	border-collapse: collapse;
	font-family: "Montserrat", system-ui, sans-serif;
	font-size: 15px;
	color: #061835;
}

.brlrp-policies th {
	text-align: left;
	font-weight: 600;
	color: #061835;
	border-bottom: 2px solid #061835;
	padding: 10px 12px;
	white-space: nowrap;
}

.brlrp-policies td {
	padding: 10px 12px;
	border-bottom: 1px solid #e0e0e0;
	color: #061835;
}

.brlrp-policies th.r,
.brlrp-policies td.r {
	text-align: right;
	white-space: nowrap;
}

.brlrp-policies tbody tr:hover td {
	background: #f5f5f5;
}

/* ============================================================
   Customer Dashboards (Level 1 list + Level 2 coverage view)
   ============================================================ */

/* Level 1 — customer list under the policies panel */
.brlrp-cust-heading { margin-top: 32px; }
.brlrp-cust-list { list-style: none; margin: 0; padding: 0; }
.brlrp-cust-list li { margin: 0 0 8px; }
.brlrp-cust-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 18px;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	background: #fff;
	text-decoration: none;
	color: #061835;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
.brlrp-cust-row:hover { background: #f5f5f5; border-color: #b3b3b3; }
.brlrp-cust-name {
	font-family: "Montserrat", system-ui, sans-serif;
	font-weight: 600;
	font-size: 16px;
	color: #061835;
}
.brlrp-cust-arrow { color: #426abe; font-size: 20px; font-weight: 700; line-height: 1; }

/* Level 2 — coverage dashboard (full-width, multi-panel) */
.brlrp-cust-dash { max-width: 1328px; margin: 0 auto; padding: 24px; }

/* Responsive panel grid: chart (dominant) + summary sidebar; positions full width. */
.brlrp-dash-grid {
	display: grid;
	grid-template-columns: minmax(0, 2.4fr) minmax(240px, 1fr);
	gap: 20px;
	align-items: stretch;
	margin-bottom: 20px;
}
.brlrp-panel {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 20px 22px;
	box-sizing: border-box;
}
.brlrp-dash-positions { margin-top: 24px; margin-bottom: 20px; }

/* Summary stat tiles */
.brlrp-dash-side { display: flex; flex-direction: column; gap: 14px; }
.brlrp-stat {
	border: 1px solid #e6e9f0;
	border-left: 4px solid #426abe;
	border-radius: 6px;
	padding: 14px 16px;
	background: #fafbfd;
}
.brlrp-stat--fo { border-left-color: #426abe; }
.brlrp-stat--lrp { border-left-color: #47938a; }
.brlrp-stat--inv { border-left-color: #B8A063; }
.brlrp-stat-label {
	display: block; font-family: "Montserrat", system-ui, sans-serif;
	font-size: 13px; font-weight: 600; color: #5a6470;
}
.brlrp-stat-num {
	display: block; font-family: "Domine", Georgia, serif; font-weight: 500;
	font-size: 30px; line-height: 1.1; color: #061835; margin: 4px 0 2px;
}
.brlrp-stat-unit { display: block; font-family: "Montserrat", system-ui, sans-serif; font-size: 12px; color: #5a6470; }
.brlrp-stat-foot { font-family: "Montserrat", system-ui, sans-serif; font-size: 12.5px; color: #5a6470; margin: 4px 0 0; }

/* Stack panels into one readable column on tablet/phone. */
@media ( max-width: 900px ) {
	.brlrp-dash-grid { grid-template-columns: 1fr; }
	.brlrp-cust-dash { padding: 16px; }
}
.brlrp-back {
	display: inline-block;
	margin-bottom: 18px;
	font-family: "Montserrat", system-ui, sans-serif;
	font-weight: 600;
	font-size: 14px;
	color: #426abe;
	text-decoration: none;
}
.brlrp-back:hover { color: #061835; }

.brlrp-cov-legend { display: flex; gap: 20px; margin: 0 0 14px; flex-wrap: wrap; }
.brlrp-cov-key {
	display: inline-flex; align-items: center; gap: 7px;
	font-family: "Montserrat", system-ui, sans-serif; font-size: 13px; color: #061835;
}
.brlrp-cov-swatch { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.brlrp-cov-swatch--fo { background: #426abe; }
.brlrp-cov-swatch--lrp { background: #47938a; }

.brlrp-cov-chart { display: flex; flex-direction: column; gap: 14px; margin-bottom: 22px; }
.brlrp-cov-row { display: grid; grid-template-columns: 84px 1fr; gap: 12px; align-items: center; }
.brlrp-cov-mlabel {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; font-size: 13px; color: #061835;
}
.brlrp-cov-bars { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.brlrp-cov-track {
	position: relative; display: flex; align-items: center; gap: 8px;
	background: #eef2f8; border-radius: 4px; min-height: 20px;
}
.brlrp-cov-bar { height: 20px; border-radius: 4px; min-width: 2px; }
.brlrp-cov-bar--fo { background: #426abe; }
.brlrp-cov-bar--lrp { background: #47938a; }
.brlrp-cov-val {
	font-family: "Montserrat", system-ui, sans-serif; font-size: 12.5px; font-weight: 600;
	color: #061835; white-space: nowrap;
}

.brlrp-cov-totals { width: 100%; border-collapse: collapse; margin-top: 8px; }
.brlrp-cov-totals td {
	font-family: "Montserrat", system-ui, sans-serif; font-size: 14px;
	padding: 8px 4px; border-top: 1px solid #e0e0e0; color: #061835;
}
.brlrp-cov-totals td.l { text-align: left; }
.brlrp-cov-totals td.r { text-align: right; font-weight: 600; }

.brlrp-cov-join {
	font-family: "Montserrat", system-ui, sans-serif; font-size: 12.5px; font-style: italic;
	color: #5a6470; margin: 10px 0 0;
}

/* ============================================================
   Coverage — vertical column chart (months x-axis, head y-axis)
   ============================================================ */
.brlrp-sec-h {
	font-family: "Domine", Georgia, serif; font-weight: 500; font-size: 20px;
	color: #061835; margin: 28px 0 10px;
}
.brlrp-vchart { margin: 0 0 16px; }
.brlrp-vplot {
	/* Fixed-width month slots side by side. Each slot holds the same fixed bar
	   positions, so bars always line up under their own month label. As many slots as
	   fit at min-width show without scrolling (~8-9 at 1280px); beyond that the plot
	   scrolls horizontally with labels staying attached to their slots. */
	display: flex; align-items: stretch; gap: 0;
	height: 300px; max-height: 78vh; padding: 12px 2px 0;
	overflow-x: auto; overflow-y: auto;
	border-bottom: 1px solid #e0e0e0; -webkit-overflow-scrolling: touch;
}
.brlrp-vslot {
	flex: 1 1 0; min-width: 92px; box-sizing: border-box;
	display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
	padding: 0 6px; position: relative; /* gap between months (12px) > gap between bars (5px) */
}
.brlrp-vslot:nth-child(even) { background: #f5f8fd; } /* alternating band per month */
.brlrp-vslot:focus { outline: 2px solid #426abe; outline-offset: -2px; }
.brlrp-vbars { display: flex; align-items: flex-end; justify-content: center; gap: 5px; height: 200px; }
.brlrp-vbarcell { width: 16px; height: 100%; display: flex; align-items: flex-end; } /* reserves the fixed position even when empty */
.brlrp-vbar { width: 100%; border-radius: 3px 3px 0 0; position: relative; }
.brlrp-vbar--fo { background: #426abe; }
.brlrp-vbar--lrp { background: #47938a; }
.brlrp-vval {
	/* Rotated to vertical so labels never overlap horizontally regardless of value width
	   or how many months are shown; sits just above its own bar. Full values are also in
	   the per-slot tooltip. */
	position: absolute; bottom: calc(100% + 2px); left: 50%;
	writing-mode: vertical-rl; transform: translateX(-50%) rotate(180deg);
	font-size: 10px; line-height: 1; white-space: nowrap; font-weight: 600;
	color: #061835; font-family: "Montserrat", system-ui, sans-serif;
}
.brlrp-vmlabel {
	margin-top: 8px; font-size: 12px; text-align: center; color: #061835;
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; line-height: 1.2;
}
.brlrp-vtip {
	display: none; position: absolute; top: 2px; left: 50%; transform: translateX(-50%);
	z-index: 6; width: max-content; max-width: 190px; white-space: normal;
	background: #061835; color: #fff; padding: 7px 10px; border-radius: 6px;
	font-size: 11.5px; line-height: 1.35; font-weight: 500; text-align: center;
	font-family: "Montserrat", system-ui, sans-serif; box-shadow: 0 4px 14px rgba( 6, 24, 53, 0.22 );
	pointer-events: none;
}
.brlrp-vslot:hover .brlrp-vtip,
.brlrp-vslot:focus .brlrp-vtip,
.brlrp-vslot:focus-within .brlrp-vtip { display: block; }

/* ============================================================
   Current Positions table
   ============================================================ */
.brlrp-pos-wrap { overflow-x: auto; margin: 0 0 6px; -webkit-overflow-scrolling: touch; }
.brlrp-pos { width: 100%; border-collapse: collapse; font-family: "Montserrat", system-ui, sans-serif; font-size: 13.5px; }
.brlrp-pos th {
	text-align: right; padding: 8px 10px; border-bottom: 2px solid #426abe;
	color: #061835; font-weight: 700; white-space: nowrap; background: #f1fbff;
}
.brlrp-pos th.l, .brlrp-pos td.l { text-align: left; }
.brlrp-pos td { text-align: right; padding: 7px 10px; border-bottom: 1px solid #eef0f4; color: #061835; white-space: nowrap; }
.brlrp-pos tbody tr:nth-child(even) { background: #fafbfd; }

/* ============================================================
   Customer Identity workspace (admin)
   ============================================================ */
.brlrp-idmap-wrap { max-width: 1040px; }
.brlrp-idmap-intro { font-family: "Montserrat", system-ui, sans-serif; font-size: 14px; line-height: 1.5; color: #061835; margin: 0 0 18px; }
.brlrp-idtable-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.brlrp-idtable { width: 100%; border-collapse: collapse; font-family: "Montserrat", system-ui, sans-serif; font-size: 14px; }
.brlrp-idtable th { text-align: left; padding: 10px; border-bottom: 2px solid #426abe; color: #061835; font-weight: 700; background: #f1fbff; white-space: nowrap; }
.brlrp-idtable td { padding: 9px 10px; border-bottom: 1px solid #e6e9f0; vertical-align: middle; }
.brlrp-idfo { font-weight: 600; }
.brlrp-idinput {
	width: 100%; max-width: 340px; box-sizing: border-box; padding: 7px 9px;
	border: 1px solid #c9cdd6; border-radius: 4px; font-family: "Montserrat", system-ui, sans-serif; font-size: 13.5px;
}
.brlrp-idactions { white-space: nowrap; }
.brlrp-idbtn {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; font-size: 13px;
	padding: 6px 12px; border-radius: 4px; border: 1px solid #426abe; background: #426abe; color: #fff; cursor: pointer;
}
.brlrp-idbtn--none { background: #fff; color: #426abe; }
.brlrp-idbtn:hover { opacity: 0.9; }
/* Backup & restore panel (Customer Identity workspace). */
.brlrp-idbackup { border: 1px solid #e6e9f0; border-radius: 8px; background: #fafbfd; padding: 14px 16px; margin: 8px 0 20px; }
.brlrp-idbackup__h { font-family: "Domine", Georgia, serif; font-weight: 500; font-size: 16px; color: #061835; margin: 0 0 6px; }
.brlrp-idbackup__note { font-family: "Montserrat", system-ui, sans-serif; font-size: 13px; line-height: 1.5; color: #5a6470; margin: 0 0 12px; }
.brlrp-idbackup__row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.brlrp-idbackup label.brlrp-idbtn { cursor: pointer; }
/* Export-staleness reminder banner. */
.brlrp-stale-notice {
	font-family: "Montserrat", system-ui, sans-serif; font-size: 14px; line-height: 1.5;
	color: #061835; background: #f1fbff; border: 1px solid #cfe6f5; border-left: 4px solid #426abe;
	border-radius: 6px; padding: 12px 16px; margin: 0 0 16px;
}
/* Automatic snapshots list. */
.brlrp-idsnaps { border: 1px solid #e6e9f0; border-radius: 8px; background: #fafbfd; padding: 14px 16px; margin: 0 0 20px; }
.brlrp-idsnaptable { width: 100%; border-collapse: collapse; font-family: "Montserrat", system-ui, sans-serif; font-size: 13.5px; }
.brlrp-idsnaptable th { text-align: right; padding: 8px 10px; border-bottom: 2px solid #426abe; color: #061835; font-weight: 700; white-space: nowrap; }
.brlrp-idsnaptable th.l, .brlrp-idsnaptable td.l { text-align: left; }
.brlrp-idsnaptable td { text-align: right; padding: 7px 10px; border-bottom: 1px solid #eef0f4; color: #061835; white-space: nowrap; }
.brlrp-idsnaptable tbody tr:nth-child(even) { background: #fff; }
.brlrp-idmsg { margin-left: 8px; font-size: 12.5px; color: #5a6470; }
.brlrp-idmsg--ok { color: #1a7d3c; }
.brlrp-idmsg--err { color: #c0392b; }
.brlrp-idbadge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.brlrp-idbadge--mapped { background: #dff3e6; color: #1a7d3c; }
.brlrp-idbadge--auto { background: #e7eefb; color: #2a4a86; }
.brlrp-idbadge--none { background: #eceff3; color: #5a6470; }
.brlrp-idbadge--unresolved { background: #fdeaea; color: #c0392b; }
.brlrp-idbadge--suggested { background: #fbf1e5; color: #a8611b; }
.brlrp-idrow--unresolved td { background: #fff8f8; }

/* Positions Summary chart — Futures vs Options (distinct from coverage chart colors) */
.brlrp-cov-swatch--fut { background: #061835; }
.brlrp-cov-swatch--opt { background: #47938a; }
.brlrp-vbar--fut { background: #061835; }
.brlrp-vbar--opt { background: #47938a; }

/* ============================================================
   Customer dashboard v3 — refreshed stamp, weights, sub-sections, collapsible
   ============================================================ */
.brlrp-refreshed { font-family: "Montserrat", system-ui, sans-serif; font-size: 13px; color: #5a6470; margin: 4px 0 14px; }
.brlrp-refreshed strong { color: #061835; }

.brlrp-weights { margin-bottom: 20px; }
.brlrp-weights-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; }
.brlrp-wlabel {
	display: flex; flex-direction: column; gap: 4px;
	font-family: "Montserrat", system-ui, sans-serif; font-size: 13px; font-weight: 600; color: #061835;
}
.brlrp-wlabel input {
	width: 120px; padding: 7px 9px; border: 1px solid #c9cdd6; border-radius: 4px;
	font-size: 14px; font-family: "Montserrat", system-ui, sans-serif; box-sizing: border-box;
}
.brlrp-wlabel select {
	min-width: 190px; padding: 7px 9px; border: 1px solid #c9cdd6; border-radius: 4px;
	font-size: 14px; font-family: "Montserrat", system-ui, sans-serif; box-sizing: border-box;
	background: #fff; color: #061835; height: 36px;
}
.brlrp-w-msg { font-size: 12.5px; color: #5a6470; }
.brlrp-w-msg--ok { color: #1a7d3c; }
.brlrp-w-msg--err { color: #c0392b; }
.brlrp-w-note { font-size: 12.5px; color: #5a6470; font-style: italic; }

.brlrp-sub-h {
	font-family: "Montserrat", system-ui, sans-serif; font-weight: 700; font-size: 15px;
	color: #061835; margin: 24px 0 8px;
}
.brlrp-sub-note { font-weight: 400; font-size: 13px; color: #5a6470; }

.brlrp-pos-total td { border-top: 2px solid #426abe; font-weight: 700; background: #f1fbff; }

/* Collapsible raw positions list */
.brlrp-pos-details { margin-top: 26px; border-top: 1px solid #e0e0e0; }
.brlrp-pos-summary {
	list-style: none; cursor: pointer; display: flex; align-items: center;
	justify-content: space-between; gap: 12px;
}
.brlrp-pos-summary::-webkit-details-marker { display: none; }
.brlrp-pos-summary .brlrp-sec-h { margin: 14px 0; }
.brlrp-chevron {
	width: 11px; height: 11px; border-right: 2px solid #426abe; border-bottom: 2px solid #426abe;
	transform: rotate(45deg); transition: transform 0.2s ease; flex: none; margin-right: 6px;
}
.brlrp-pos-details[open] .brlrp-chevron { transform: rotate(-135deg); }

/* Coverage chart — fats vs feeders vs LRP (three series) */
.brlrp-cov-swatch--fat { background: #426abe; }
.brlrp-cov-swatch--feed { background: #061835; }
.brlrp-vbar--fat { background: #426abe; }
.brlrp-vbar--feed { background: #061835; }
/* Inventory (head on feed) — context bar, brand gold to sit apart from coverage. */
.brlrp-cov-swatch--inv { background: #B8A063; }
.brlrp-vbar--inv { background: #B8A063; }
.brlrp-inv-note { font-family: "Montserrat", system-ui, sans-serif; font-size: 12.5px; font-style: italic; color: #5a6470; margin: 10px 0 0; }
.brlrp-inv-empty { font-style: normal; font-weight: 600; color: #061835; font-size: 14px; }

/* Per-month percent hedged, under each chart month label */
.brlrp-vpct { margin-top: 3px; font-family: "Montserrat", system-ui, sans-serif; font-size: 11.5px; font-weight: 700; text-align: center; color: #426abe; }
.brlrp-vpct--noinv { color: #9aa1ad; font-weight: 500; font-style: italic; font-size: 10.5px; }

/* Percent Hedged widget (directly under the coverage-by-month chart) */
.brlrp-pcth { margin: 18px 0 4px; }
.brlrp-pcth-title { font-family: "Domine", Georgia, serif; font-weight: 500; font-size: 16px; color: #061835; margin: 0 0 10px; }
.brlrp-pcth-row { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.brlrp-pcth-box {
	flex: 1 1 0; min-width: 120px; border: 1px solid #e6e9f0; border-radius: 6px;
	background: #fafbfd; padding: 12px 14px; text-align: center;
}
.brlrp-pcth-box--total { border-color: #426abe; background: #f1f5fc; }
.brlrp-pcth-cap { font-family: "Montserrat", system-ui, sans-serif; font-size: 12px; font-weight: 600; color: #5a6470; }
.brlrp-pcth-pct { font-family: "Domine", Georgia, serif; font-weight: 500; font-size: 30px; line-height: 1.1; color: #061835; margin: 4px 0 2px; }
.brlrp-pcth-head { font-family: "Montserrat", system-ui, sans-serif; font-size: 12.5px; color: #5a6470; }
.brlrp-pcth-over { font-family: "Montserrat", system-ui, sans-serif; font-size: 11.5px; font-style: italic; color: #b06a00; margin-top: 4px; }
.brlrp-pcth-op { display: flex; align-items: center; justify-content: center; font-family: "Domine", Georgia, serif; font-size: 22px; color: #5a6470; }
@media ( max-width: 560px ) {
	.brlrp-pcth-row { flex-direction: column; }
}
/* (Legacy per-bar width overrides removed — fixed-slot chart sizes bars via
   .brlrp-vbarcell/.brlrp-vbar above.) */

/* ============================================================
   Hub "Admin" area (portal admins only) — cards match the report cards
   ============================================================ */
.brlrp-admin { margin-top: 40px; padding-top: 20px; border-top: 1px solid #e0e0e0; }
.brlrp-admin .brlrp-hub-heading { margin-top: 0; }
.brlrp-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.brlrp-admin-grid .brlrp-tool {
	display: grid; grid-template-columns: auto 1fr; column-gap: 16px; align-items: center;
	border: 1px solid #e0e0e0; border-radius: 6px; padding: 20px 24px; background: #fff;
	text-decoration: none; color: #061835; box-sizing: border-box;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
.brlrp-admin-grid .brlrp-tool:hover { background: #f5f5f5; border-color: #b3b3b3; }
.brlrp-admin-grid .brlrp-tool__icon { grid-column: 1; grid-row: 1 / span 2; align-self: center; margin-bottom: 0; }
.brlrp-admin-grid .brlrp-tool__title { grid-column: 2; grid-row: 1; margin: 0 0 4px; }
.brlrp-admin-grid .brlrp-tool__desc { grid-column: 2; grid-row: 2; margin: 0; }

/* Right-column section headers (Tools / Reports) */
.brlrp-side-heading {
	font-family: "Domine", Georgia, serif; font-weight: 500; font-size: 20px; color: #061835;
	margin: 10px 0 2px; padding-bottom: 6px; border-bottom: 1px solid #e0e0e0;
}
.brlrp-side-empty {
	font-family: "Montserrat", system-ui, sans-serif; font-size: 13.5px; font-style: italic;
	color: #5a6470; margin: 0;
}

/* ================================================================
   LRP vs. Short Call tool  (scoped under #brlvc)
   Website style: Domine + Montserrat, royal #426abe / navy #061835.
   ================================================================ */
#brlvc {
	--navy:#061835; --royal:#426abe; --sky:#bee5f4; --sky-tint:#f1fbff;
	--gray2:#535353; --gray4:#e0e0e0; --gray5:#f5f5f5;
	--good:#1f7a5a; --good-bg:#e7f4ee; --warn:#a8611b; --warn-bg:#fbf1e5;
	--stop:#9d2f2f; --stop-bg:#f7e9e9;
	max-width:1100px; margin:0 auto 48px; padding:0 4px;
	font-family:"Montserrat",system-ui,sans-serif; color:var(--navy);
}
#brlvc *{box-sizing:border-box;}
#brlvc .brlvc-eyebrow{font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--royal);margin:34px 0 6px;}
#brlvc h2.brlvc-h2{font-family:"Domine",Georgia,serif;font-weight:500;font-size:26px;margin:0 0 16px;color:var(--navy);}

/* scenario inputs */
#brlvc .brlvc-scenario{background:var(--sky-tint);border:1px solid #dbe9f5;border-radius:8px;padding:20px 22px;margin-top:6px;}
#brlvc .brlvc-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;}
#brlvc .brlvc-field{display:flex;flex-direction:column;}
#brlvc .brlvc-field span{font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--gray2);margin-bottom:6px;}
#brlvc .brlvc-field select,#brlvc .brlvc-field input{background:#fff;border:1px solid #c4d3e6;border-radius:5px;padding:10px 11px;font-family:"Montserrat",system-ui,sans-serif;font-size:15px;color:var(--navy);width:100%;}
#brlvc .brlvc-runbar{margin-top:16px;}
#brlvc .brlvc-asof{font-size:13px;color:var(--gray2);}
#brlvc .brlvc-asof b{color:var(--navy);}

#brlvc .brlvc-status{margin:22px 0;font-size:15px;color:var(--gray2);}
#brlvc .brlvc-status--err{color:var(--stop);font-weight:600;}
#brlvc .brlvc-updating{margin:0 0 16px;padding:10px 14px;border-radius:6px;background:#eef4ff;border:1px solid #cfe0ff;color:#264a8a;font-size:14px;font-weight:600;}

/* comparison cards */
#brlvc .brlvc-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px;}
#brlvc .brlvc-card{border:1px solid var(--gray4);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;background:#fff;}
#brlvc .brlvc-head{padding:18px 22px;background:var(--navy);}
#brlvc .brlvc-kind{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#9fc0f0;}
#brlvc .brlvc-h3{font-family:"Domine",Georgia,serif;font-weight:500;font-size:21px;margin:4px 0 2px;color:#fff;}
#brlvc .brlvc-tag{font-size:13px;color:#d6e2f5;}
#brlvc .brlvc-body{padding:20px 22px;display:flex;flex-direction:column;gap:16px;flex:1;}
#brlvc .brlvc-metric{border-bottom:1px dashed var(--gray4);padding-bottom:14px;}
#brlvc .brlvc-metric:last-child{border-bottom:none;padding-bottom:0;}
#brlvc .brlvc-mlabel{font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--gray2);margin-bottom:5px;}
#brlvc .brlvc-mbig{font-size:25px;font-weight:700;font-family:"Domine",Georgia,serif;}
#brlvc .brlvc-unit{font-size:15px;font-weight:400;}
#brlvc .brlvc-perhead{font-family:"Montserrat",system-ui,sans-serif;font-size:14px;font-weight:600;color:#5a6470;white-space:nowrap;}
#brlvc .brlvc-msub{font-size:13px;color:var(--gray2);margin-top:3px;}
#brlvc .brlvc-pay{color:var(--stop);}
#brlvc .brlvc-recv{color:var(--good);}
#brlvc .brlvc-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:5px 11px;border-radius:20px;}
#brlvc .brlvc-pill.ok{background:var(--good-bg);color:var(--good);}
#brlvc .brlvc-pill.no{background:var(--stop-bg);color:var(--stop);}
#brlvc .brlvc-pill.cap{background:var(--warn-bg);color:var(--warn);}
#brlvc .brlvc-dot{width:8px;height:8px;border-radius:50%;background:currentColor;}

/* strike picker */
#brlvc .brlvc-strike-block{border-bottom:1px dashed var(--gray4);padding-bottom:14px;}
#brlvc .brlvc-strikes{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;}
#brlvc .brlvc-strike{border:1px solid #c4d3e6;border-radius:6px;padding:7px 9px;text-align:center;cursor:pointer;background:#fff;min-width:72px;font-family:"Montserrat",system-ui,sans-serif;line-height:1.2;transition:border-color .15s,background .15s,box-shadow .15s;}
#brlvc .brlvc-strike:hover{border-color:#9aa2ad;}
#brlvc .brlvc-strike.sel{border-color:var(--royal);background:var(--sky-tint);box-shadow:inset 0 0 0 1px var(--royal);}
#brlvc .brlvc-sk{display:block;font-weight:700;font-size:15px;color:var(--navy);}
#brlvc .brlvc-sp{display:block;font-size:12px;color:var(--gray2);margin-top:2px;}
#brlvc .brlvc-strike.sel .brlvc-sp{color:var(--royal);font-weight:600;}
#brlvc .brlvc-hint{font-size:12px;color:var(--gray2);margin-top:8px;}

/* charts */
#brlvc .brlvc-charts{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
#brlvc .brlvc-chart{border:1px solid var(--gray4);border-radius:10px;padding:16px 18px 10px;background:#fff;}
#brlvc .brlvc-chart h4{font-family:"Domine",Georgia,serif;font-weight:500;font-size:16px;margin:0 0 2px;color:var(--navy);}
#brlvc .brlvc-cap{font-size:12px;color:var(--gray2);margin:0 0 8px;}
#brlvc .brlvc-chart svg{width:100%;height:auto;display:block;}
#brlvc .brlvc-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--gray2);margin-top:6px;}
#brlvc .brlvc-legend span{display:inline-flex;align-items:center;gap:6px;}
#brlvc .brlvc-sw{width:16px;height:0;border-top:3px solid var(--royal);}
#brlvc .brlvc-sw.call{border-top:3px solid #47938a;}
#brlvc .brlvc-sw.base{border-top:2px dashed #9aa7bd;}
#brlvc .brlvc-sw.ref{border-top:2px dotted var(--stop);}
#brlvc .brlvc-sw.refc{border-top:2px dotted var(--warn);}
#brlvc .brlvc-chart--combined{max-width:640px;margin:0 auto;}

/* summary table */
#brlvc .brlvc-tw{overflow-x:auto;}
#brlvc table.brlvc-summary{width:100%;border-collapse:collapse;margin-top:8px;font-size:15px;}
#brlvc table.brlvc-summary th,#brlvc table.brlvc-summary td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--gray4);vertical-align:top;}
#brlvc table.brlvc-summary thead th{background:var(--navy);color:#fff;font-weight:600;font-size:13px;letter-spacing:.03em;}
#brlvc table.brlvc-summary tbody th{font-weight:600;color:var(--navy);background:var(--gray5);width:30%;}
#brlvc .mini-ok{color:var(--good);font-weight:600;}
#brlvc .mini-no{color:var(--stop);font-weight:600;}
#brlvc .mini-cap{color:var(--warn);font-weight:600;}

#brlvc .brlvc-note{margin-top:16px;padding:12px 15px;border-radius:6px;font-size:13.5px;}
#brlvc .brlvc-note--warn{background:var(--warn-bg);border:1px solid #e6cfa8;color:#7a4a12;}

/* disclosure */
#brlvc .brlvc-disclosure{margin-top:34px;padding-top:16px;border-top:2px solid var(--gray4);}
#brlvc .brlvc-disclosure h5{font-family:"Montserrat",system-ui,sans-serif;font-weight:700;font-size:13px;margin:0 0 6px;color:var(--navy);}
#brlvc .brlvc-disclosure p{font-size:9px;line-height:1.45;color:var(--gray2);margin:0;}

@media (max-width:760px){
	#brlvc .brlvc-cols,#brlvc .brlvc-charts{grid-template-columns:1fr;}
}

/* ============================================================
   LRP Policies widget (customer dashboard) — summary-first, drill-down by month.
   ============================================================ */
.brlrp-lrp { margin-top: 24px; }
.brlrp-lrp-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 6px; }
.brlrp-lrp-toggle { font-family: "Montserrat", system-ui, sans-serif; font-size: 13.5px; color: #5a6470; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.brlrp-lrp-toggle input { width: 16px; height: 16px; }

.brlrp-lrp-month { border: 1px solid #e0e0e0; border-radius: 8px; margin-top: 10px; background: #fff; overflow: hidden; }
.brlrp-lrp-sumrow { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; padding: 14px 16px; }
.brlrp-lrp-sumrow::-webkit-details-marker { display: none; }
.brlrp-lrp-sumrow::before { content: "\25B8"; color: #426abe; font-size: 12px; align-self: center; transition: transform .15s ease; }
.brlrp-lrp-month[open] > .brlrp-lrp-sumrow::before { transform: rotate( 90deg ); }
.brlrp-lrp-month[open] > .brlrp-lrp-sumrow { border-bottom: 1px solid #e0e0e0; background: #f5f5f5; }
.brlrp-lrp-month-name { font-family: "Domine", Georgia, serif; font-weight: 500; font-size: 17px; color: #061835; min-width: 118px; }
.brlrp-lrp-sum { font-family: "Montserrat", system-ui, sans-serif; font-size: 13.5px; color: #5a6470; }

/* toggle-driven visibility: active summary + rows by default; expired revealed on toggle */
.brlrp-lrp .brlrp-lrp-sum--all { display: none; }
.brlrp-lrp.show-expired .brlrp-lrp-sum--active { display: none; }
.brlrp-lrp.show-expired .brlrp-lrp-sum--all { display: inline; }
.brlrp-lrp-row--expired { display: none; }
.brlrp-lrp.show-expired .brlrp-lrp-row--expired { display: table-row; color: #9aa2ad; }
.brlrp-lrp.show-expired .brlrp-lrp-row--expired td { color: #9aa2ad; }
.brlrp-lrp-month[data-has-active="0"] { display: none; }
.brlrp-lrp.show-expired .brlrp-lrp-month[data-has-active="0"] { display: block; }
.brlrp-lrp-table { margin: 0; }

/* Inventory widget — mirrors the LRP widget's collapsible-month pattern (shares the
   .brlrp-lrp-sumrow / -month-name / -sum styling above). Toggle reveals recently-passed. */
.brlrp-inv { margin-top: 24px; }
.brlrp-inv-month { border: 1px solid #e0e0e0; border-radius: 8px; margin-top: 10px; background: #fff; overflow: hidden; }
.brlrp-inv-month[open] > .brlrp-lrp-sumrow::before { transform: rotate( 90deg ); }
.brlrp-inv-month[open] > .brlrp-lrp-sumrow { border-bottom: 1px solid #e0e0e0; background: #f5f5f5; }
.brlrp-inv .brlrp-inv-sum--all { display: none; }
.brlrp-inv.show-passed .brlrp-inv-sum--active { display: none; }
.brlrp-inv.show-passed .brlrp-inv-sum--all { display: inline; }
.brlrp-inv-row--passed { display: none; }
.brlrp-inv.show-passed .brlrp-inv-row--passed { display: table-row; }
.brlrp-inv.show-passed .brlrp-inv-row--passed td { color: #9aa2ad; }
.brlrp-inv-month[data-has-active="0"] { display: none; }
.brlrp-inv.show-passed .brlrp-inv-month[data-has-active="0"] { display: block; }
.brlrp-inv-table { margin: 0; }

/* ============================================================
   Mobile fix pass 1 (v0.26.13) — comfortable tap targets, no iOS
   auto-zoom on portal forms, and a scrollable report preview.
   Everything above 768px is untouched (rules live in the query
   or add an invisible wrapper). The coverage chart is NOT touched.
   ============================================================ */

/* Report preview: a wide endorsement table scrolls sideways inside its own box
   instead of squashing. No visible change on desktop (the table already fits, so
   nothing overflows) — the min-width that forces the scroll is mobile-only below. */
.brlrp-doc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

@media ( max-width: 768px ) {
	/* Customer dashboard — weights editor (Fats / Feeders / default-class / Save) */
	.brlrp-wlabel input,
	.brlrp-wlabel select { min-height: 44px; font-size: 16px; box-sizing: border-box; }
	.brlrp-wlabel select { height: auto; }

	/* Admin mapping rows + every pill button (Save / No LRP / No inventory /
	   weights Save / backup / restore all share .brlrp-idbtn) */
	.brlrp-idinput { min-height: 44px; font-size: 16px; box-sizing: border-box; }
	.brlrp-idbtn { min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }

	/* LRP Endorsement Report tool — Generate / Download PDF */
	.brlrp-tool .brlrp-btn { min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }

	/* Sign-in + set / reset / forgot password — fields & buttons */
	#brlrp-loginform input[type="text"],
	#brlrp-loginform input[type="password"],
	#brlrp-loginform #wp-submit { min-height: 44px; font-size: 16px; box-sizing: border-box; }
	.brlrp-pw-input { min-height: 44px; font-size: 16px; box-sizing: border-box; }
	.brlrp-pw-submit,
	.brlrp-pw-toggle { min-height: 44px; box-sizing: border-box; }

	/* Account page — Log out link */
	.brlrp-account__logout { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; box-sizing: border-box; }

	/* Dashboard show-expired / show-passed toggles — bigger box + tappable row */
	.brlrp-lrp-toggle { padding: 10px 2px; }
	.brlrp-lrp-toggle input { width: 22px; height: 22px; }

	/* Report preview keeps a readable table width and scrolls instead of squashing. */
	.brlrp-doc-table { min-width: 640px; }
}
