/**
 * Investor Portal v2 — frontend, "Quiet Wealth".
 *
 * Understated private-banking luxury: porcelain surfaces, ink navy type,
 * one restrained gold accent. Serif display (Playfair) for headings,
 * Inter for the interface. Tokens come from tokens.css.
 */

.inp2-login,
.inp2-portal {
	font-family: var(--inp2-font-ui);
	-webkit-font-smoothing: antialiased;
	color: var(--inp2-ink-body);
	font-size: 15px;
	line-height: 1.6;
}

/* ------------------------------------------------------------------ *
 * Brand block.
 * ------------------------------------------------------------------ */

.inp2-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.inp2-brand--header {
	flex-direction: row;
	align-items: center;
	gap: 12px;
}

.inp2-brand__logo {
	max-height: 44px;
	max-width: 200px;
	width: auto;
	height: auto;
}

.inp2-brand--header .inp2-brand__logo {
	max-height: 30px;
}

.inp2-brand__wordmark {
	font-family: var(--inp2-font-display);
	font-weight: 600;
	font-size: 26px;
	letter-spacing: 0.02em;
	color: var(--inp2-ink);
}

.inp2-brand--header .inp2-brand__wordmark {
	font-size: 19px;
}

.inp2-brand__rule {
	display: block;
	width: 44px;
	height: 1px;
	background: var(--inp2-gold);
}

.inp2-brand--header .inp2-brand__rule {
	display: none;
}

/* ------------------------------------------------------------------ *
 * Login.
 * ------------------------------------------------------------------ */

.inp2-login {
	display: flex;
	justify-content: center;
	padding: 64px 20px;
	background:
		radial-gradient(1200px 500px at 50% -10%, #ffffff 0%, transparent 70%),
		var(--inp2-porcelain);
}

.inp2-login__card {
	width: 100%;
	max-width: 430px;
	background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline);
	border-radius: var(--inp2-radius-lg);
	padding: 44px 40px 28px;
	box-shadow: var(--inp2-shadow-card);
	text-align: center;
	animation: inp2-rise 0.45s var(--inp2-ease) both;
}

@keyframes inp2-rise {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.inp2-login__card { animation: none; }
}

.inp2-login__eyebrow {
	margin: 22px 0 6px;
}

.inp2-login__title {
	margin: 0 0 10px;
	font-family: var(--inp2-font-display);
	font-weight: 600;
	font-size: 30px;
	line-height: 1.2;
	color: var(--inp2-ink);
}

.inp2-login__hint {
	margin: 0 0 26px;
	font-size: 14px;
	line-height: 1.65;
	color: var(--inp2-ink-soft);
}

.inp2-login__hint strong {
	color: var(--inp2-ink-body);
	font-weight: 600;
}

.inp2-login__form {
	display: flex;
	flex-direction: column;
	gap: 10px;
	text-align: start;
}

.inp2-login__label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--inp2-tracking-caps);
	text-transform: uppercase;
	color: var(--inp2-ink-soft);
}

.inp2-login__input {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 16px;
	font-family: var(--inp2-font-ui);
	font-size: 16px;
	color: var(--inp2-ink);
	background: var(--inp2-surface-raised);
	border: 1px solid var(--inp2-hairline);
	border-radius: var(--inp2-radius);
	transition: border-color var(--inp2-duration) var(--inp2-ease), box-shadow var(--inp2-duration) var(--inp2-ease);
}

.inp2-login__input::placeholder {
	color: #b9b4a8;
}

.inp2-login__input:focus {
	outline: none;
	border-color: var(--inp2-gold);
	box-shadow: 0 0 0 3px rgba(169, 138, 80, 0.14);
}

.inp2-login__input--code {
	font-family: var(--inp2-font-mono);
	font-size: 26px;
	letter-spacing: 14px;
	text-align: center;
	padding-inline-start: 26px; /* optically re-center against letter-spacing */
}

.inp2-login__button {
	margin-top: 10px;
	padding: 13px 18px;
	font-family: var(--inp2-font-ui);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #ffffff;
	background: var(--inp2-ink);
	border: 1px solid var(--inp2-ink);
	border-radius: var(--inp2-radius);
	cursor: pointer;
	transition: background var(--inp2-duration) var(--inp2-ease), transform var(--inp2-duration) var(--inp2-ease);
}

.inp2-login__button:hover {
	background: #1c2e46;
}

.inp2-login__button:active {
	transform: translateY(1px);
}

.inp2-login__resend {
	margin: 18px 0 0;
}

.inp2-login__link {
	background: none;
	border: 0;
	padding: 0;
	font-family: var(--inp2-font-ui);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--inp2-gold);
	cursor: pointer;
	border-bottom: 1px solid transparent;
	transition: border-color var(--inp2-duration) var(--inp2-ease);
}

.inp2-login__link:hover {
	border-bottom-color: var(--inp2-gold);
}

.inp2-login__link:disabled {
	color: var(--inp2-ink-soft);
	cursor: default;
	border-bottom-color: transparent;
}

.inp2-login__switch {
	margin: 8px 0 0;
	font-size: 13px;
}

.inp2-login__switch a {
	color: var(--inp2-ink-soft);
	text-decoration: none;
	border-bottom: 1px solid var(--inp2-hairline);
	transition: color var(--inp2-duration) var(--inp2-ease), border-color var(--inp2-duration) var(--inp2-ease);
}

.inp2-login__switch a:hover {
	color: var(--inp2-ink);
	border-bottom-color: var(--inp2-ink-soft);
}

.inp2-login__notice {
	margin: 0 0 18px;
	padding: 11px 16px;
	border-radius: var(--inp2-radius-sm);
	font-size: 13.5px;
	line-height: 1.55;
	text-align: start;
}

.inp2-login__notice--info {
	background: var(--inp2-info-wash);
	color: var(--inp2-ink-body);
	border: 1px solid #dfe3e9;
}

.inp2-login__notice--error {
	background: var(--inp2-negative-wash);
	color: var(--inp2-negative);
	border: 1px solid #ecd9d7;
}

.inp2-login__secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 30px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--inp2-hairline-soft);
	font-size: 12px;
	letter-spacing: 0.02em;
	color: var(--inp2-ink-soft);
}

.inp2-login__secure-icon svg {
	width: 13px;
	height: 13px;
	display: block;
	color: var(--inp2-gold);
}

/* ------------------------------------------------------------------ *
 * Portal — masthead + header.
 * ------------------------------------------------------------------ */

.inp2-portal {
	max-width: 820px;
	margin: 0 auto;
	padding: 28px 20px 72px;
}

.inp2-portal__masthead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--inp2-hairline);
	margin-bottom: 40px;
}

.inp2-portal__logout {
	padding: 8px 16px;
	font-family: var(--inp2-font-ui);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--inp2-ink-body);
	background: transparent;
	border: 1px solid var(--inp2-hairline);
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color var(--inp2-duration) var(--inp2-ease), color var(--inp2-duration) var(--inp2-ease);
}

.inp2-portal__logout:hover {
	border-color: var(--inp2-gold);
	color: var(--inp2-ink);
}

.inp2-portal__header {
	margin-bottom: 40px;
}

.inp2-portal__eyebrow {
	margin: 0 0 10px;
}

.inp2-portal__title {
	margin: 0 0 10px;
	font-family: var(--inp2-font-display);
	font-weight: 600;
	font-size: 38px;
	line-height: 1.15;
	color: var(--inp2-ink);
}

.inp2-portal__welcome {
	margin: 0 0 22px;
	font-size: 15px;
	color: var(--inp2-ink-soft);
}

/* ------------------------------------------------------------------ *
 * Portal — document sections.
 * ------------------------------------------------------------------ */

.inp2-portal__section {
	margin-bottom: 44px;
}

.inp2-portal__section-title {
	display: block;
	margin: 0 0 14px;
}

.inp2-doc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline);
	border-radius: var(--inp2-radius-lg);
	box-shadow: var(--inp2-shadow-card);
	overflow: hidden;
}

.inp2-doc {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 20px 24px;
	transition: background var(--inp2-duration) var(--inp2-ease);
}

.inp2-doc + .inp2-doc {
	border-top: 1px solid var(--inp2-hairline-soft);
}

.inp2-doc:hover {
	background: var(--inp2-surface-raised);
}

.inp2-doc__icon {
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--inp2-hairline);
	border-radius: 50%;
	color: var(--inp2-gold);
	background: var(--inp2-surface);
	transition: border-color var(--inp2-duration) var(--inp2-ease);
}

.inp2-doc:hover .inp2-doc__icon {
	border-color: var(--inp2-gold-soft);
}

.inp2-doc__icon svg {
	width: 21px;
	height: 21px;
	display: block;
}

.inp2-doc__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.inp2-doc__name {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--inp2-ink);
	overflow-wrap: anywhere;
}

.inp2-doc__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 12px;
	color: var(--inp2-ink-soft);
}

.inp2-doc__category,
.inp2-doc__type {
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: var(--inp2-tracking-caps);
	text-transform: uppercase;
	color: var(--inp2-gold);
}

.inp2-doc__type {
	color: var(--inp2-ink-soft);
}

.inp2-doc__dot {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--inp2-hairline);
}

.inp2-doc__desc {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--inp2-ink-soft);
}

.inp2-doc__actions {
	flex: 0 0 auto;
	display: flex;
	gap: 10px;
}

.inp2-doc__btn {
	padding: 9px 18px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 999px;
	text-decoration: none;
	white-space: nowrap;
	transition: background var(--inp2-duration) var(--inp2-ease), border-color var(--inp2-duration) var(--inp2-ease), color var(--inp2-duration) var(--inp2-ease);
}

.inp2-doc__btn--view {
	color: var(--inp2-ink-body);
	background: transparent;
	border: 1px solid var(--inp2-hairline);
}

.inp2-doc__btn--view:hover {
	border-color: var(--inp2-gold);
	color: var(--inp2-ink);
}

.inp2-doc__btn--download {
	color: #ffffff;
	background: var(--inp2-ink);
	border: 1px solid var(--inp2-ink);
}

.inp2-doc__btn--download:hover {
	background: #1c2e46;
}

/* ------------------------------------------------------------------ *
 * Portal — empty state.
 * ------------------------------------------------------------------ */

.inp2-portal__empty {
	padding: 72px 24px;
	text-align: center;
	color: var(--inp2-ink-soft);
	background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline);
	border-radius: var(--inp2-radius-lg);
}

.inp2-portal__empty p {
	margin: 0 0 6px;
	font-family: var(--inp2-font-display);
	font-size: 19px;
	color: var(--inp2-ink-body);
}

.inp2-portal__empty-sub {
	font-family: var(--inp2-font-ui) !important;
	font-size: 13.5px !important;
	color: var(--inp2-ink-soft) !important;
}

.inp2-portal__empty-icon svg {
	width: 34px;
	height: 34px;
	margin: 0 auto 18px;
	display: block;
	color: var(--inp2-gold);
}

/* ------------------------------------------------------------------ *
 * Mobile.
 * ------------------------------------------------------------------ */

@media (max-width: 640px) {
	.inp2-login {
		padding: 28px 14px;
	}

	.inp2-login__card {
		padding: 34px 24px 22px;
	}

	.inp2-portal__title {
		font-size: 29px;
	}

	.inp2-doc {
		flex-wrap: wrap;
		padding: 18px 18px;
	}

	.inp2-doc__actions {
		width: 100%;
		margin-top: 12px;
		padding-inline-start: 64px; /* align under the text, past the icon */
	}

	.inp2-doc__btn {
		flex: 1 1 0;
		text-align: center;
	}
}

@media (max-width: 420px) {
	.inp2-doc__actions {
		padding-inline-start: 0;
	}
}

/* Investor poll (attached to a document) */
.inp2-poll{margin:12px 0 0;padding:14px 16px;background:var(--inp2-porcelain,#faf9f7);border:1px solid var(--inp2-line,#e8e4dc);border-radius:10px;}
.inp2-poll__q{margin:0 0 10px;font-weight:600;color:var(--inp2-ink,#101e30);font-size:14px;}
.inp2-poll__opts{display:flex;flex-wrap:wrap;gap:8px;}
.inp2-poll__opt{padding:8px 18px;border:1px solid var(--inp2-line,#d8d3c8);background:#fff;border-radius:8px;cursor:pointer;font-size:13px;color:var(--inp2-ink,#101e30);transition:all .12s;}
.inp2-poll__opt:hover{border-color:var(--inp2-gold,#a98a50);}
.inp2-poll__opt--chosen{background:var(--inp2-ink,#101e30);color:#fff;border-color:var(--inp2-ink,#101e30);}
.inp2-poll__done{margin:10px 0 0;font-size:12.5px;color:var(--inp2-ink-soft,#8a8578);}

/* ================================================================== *
 * Investor portal — elevated document browser ("Quiet Wealth", dialed up).
 * All scoped under .inp2-portal--app so it never touches the login views.
 * ================================================================== */

.inp2-portal--app {
	max-width: 1240px;
	padding: 24px 28px 80px;
}

body.inp2-noscroll { overflow: hidden; }

/* ---- Masthead ---- */
.inp2-mast {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 20px;
	background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline);
	border-radius: var(--inp2-radius-lg);
	box-shadow: var(--inp2-shadow-card);
	margin-bottom: 28px;
}
.inp2-mast__brand { display: flex; align-items: center; gap: 22px; }
.inp2-mast__context { display: flex; gap: 8px; padding-inline-start: 22px; border-inline-start: 1px solid var(--inp2-hairline); }
.inp2-mast__chip {
	display: inline-flex; align-items: center; gap: 6px;
	font-family: var(--inp2-font-ui); font-size: 12px; font-weight: 500;
	color: var(--inp2-ink-body); white-space: nowrap;
}
.inp2-mast__chip svg { width: 15px; height: 15px; color: var(--inp2-gold); }
.inp2-mast__account { display: flex; align-items: center; gap: 16px; }
.inp2-mast__who { display: flex; align-items: center; gap: 10px; }
.inp2-mast__avatar {
	width: 34px; height: 34px; border-radius: 50%;
	background: var(--inp2-ink); color: #fff;
	display: grid; place-items: center;
	font-family: var(--inp2-font-ui); font-weight: 600; font-size: 14px;
}
.inp2-mast__name { font-family: var(--inp2-font-ui); font-size: 13px; font-weight: 500; color: var(--inp2-ink); }
.inp2-mast__logout {
	padding: 8px 16px; font-family: var(--inp2-font-ui); font-size: 11.5px; font-weight: 600;
	letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--inp2-ink-soft); background: transparent;
	border: 1px solid var(--inp2-hairline); border-radius: 999px; cursor: pointer;
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-mast__logout:hover { color: var(--inp2-ink); border-color: var(--inp2-gold-soft); }

/* ---- Hero ---- */
.inp2-hero { margin: 8px 4px 30px; }
.inp2-hero__eyebrow { display: block; margin-bottom: 12px; }
.inp2-hero__title {
	font-family: var(--inp2-font-display); font-weight: 500;
	font-size: clamp(30px, 4vw, 46px); line-height: 1.05; letter-spacing: -0.01em;
	color: var(--inp2-ink); margin: 0 0 12px;
}
.inp2-hero__title em { font-style: italic; color: var(--inp2-gold); }
.inp2-hero__sub { font-family: var(--inp2-font-ui); font-size: 15px; color: var(--inp2-ink-body); margin: 0; }

/* ---- Recent carousel ---- */
.inp2-recent { margin-bottom: 30px; }
.inp2-recent__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 14px; }
.inp2-recent__title { font-family: var(--inp2-font-display); font-weight: 500; font-size: 21px; color: var(--inp2-ink); margin: 0; }
.inp2-recent__nav { display: flex; gap: 8px; }
.inp2-recent__arrow {
	width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
	background: var(--inp2-surface); border: 1px solid var(--inp2-hairline);
	color: var(--inp2-ink); font-size: 18px; line-height: 1;
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-recent__arrow:hover { border-color: var(--inp2-gold-soft); color: var(--inp2-gold); }
.inp2-recent__track {
	display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory;
	padding: 6px 2px 12px; scrollbar-width: thin;
}
.inp2-recent__track::-webkit-scrollbar { height: 6px; }
.inp2-recent__track::-webkit-scrollbar-thumb { background: var(--inp2-hairline); border-radius: 999px; }

.inp2-card {
	position: relative; flex: 0 0 300px; scroll-snap-align: start;
	display: flex; gap: 14px; text-align: start; cursor: pointer;
	padding: 18px; background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius-lg);
	box-shadow: var(--inp2-shadow-card);
	transition: transform var(--inp2-duration) var(--inp2-ease), box-shadow var(--inp2-duration) var(--inp2-ease), border-color var(--inp2-duration) var(--inp2-ease);
}
.inp2-card:hover { transform: translateY(-3px); box-shadow: var(--inp2-shadow-lift); border-color: var(--inp2-gold-soft); }
.inp2-card.is-unread { border-inline-start: 3px solid var(--inp2-gold); }
.inp2-card__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.inp2-card__name { font-family: var(--inp2-font-ui); font-weight: 600; font-size: 14px; color: var(--inp2-ink); }
.inp2-card__period { font-family: var(--inp2-font-display); font-size: 15px; color: var(--inp2-ink); }
.inp2-card__meta { font-family: var(--inp2-font-ui); font-size: 12px; color: var(--inp2-ink-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.inp2-card__meta--soft { color: var(--inp2-ink-soft); }
.inp2-card__new {
	position: absolute; top: 12px; inset-inline-end: 12px;
	font-family: var(--inp2-font-ui); font-size: 10px; font-weight: 700;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--inp2-gold);
}

/* ---- Type glyph tiles (bold, deep, sophisticated tones) ---- */
.inp2-card__glyph, .inp2-row__glyph, .inp2-vitem__glyph {
	flex: 0 0 auto; display: grid; place-items: center;
	width: 44px; height: 44px; border-radius: 10px;
	font-family: var(--inp2-font-ui); font-weight: 700; font-size: 12.5px; letter-spacing: 0.02em;
	color: #fff; background: var(--inp2-ink);
}
.inp2-row__glyph { width: 38px; height: 38px; border-radius: 9px; font-size: 11.5px; }
.inp2-vitem__glyph { width: 34px; height: 34px; border-radius: 8px; font-size: 11px; }
/* Deep, muted palette keyed by type code. */
[data-type="CA"]  { background: #1f5f5b; }  /* deep teal   */
[data-type="FS"]  { background: #234e73; }  /* deep blue   */
[data-type="PR"]  { background: #3a4a5c; }  /* slate       */
[data-type="LPA"] { background: #7a3b34; }  /* burgundy    */
[data-type="SB"]  { background: #8a5a2b; }  /* bronze      */
[data-type="SL"]  { background: #6a4a2a; }  /* umber       */
[data-type="BR"]  { background: #4a4636; }  /* olive-ink   */
[data-type="SD"]  { background: #55503c; }  /* khaki-ink   */
[data-type="NL"]  { background: #5a3a5c; }  /* plum        */
[data-type="IV"]  { background: #2f5540; }  /* forest      */
[data-type="CT"]  { background: #3b3a66; }  /* indigo      */
[data-type="CC"]  { background: #7a4a24; }  /* amber-ink   */
[data-type="CUC"] { background: #7a4a24; }
[data-type="K1"]  { background: #6b3a2e; }  /* rust        */
[data-type="PITR"]{ background: #6b3a2e; }
[data-type="PTR"] { background: #6b3a2e; }
[data-type="VD"]  { background: #2a5560; }  /* petrol      */

/* ---- Awaiting response (polls) ---- */
.inp2-action {
	margin-bottom: 30px; padding: 22px 24px;
	background: var(--inp2-gold-wash); border: 1px solid var(--inp2-gold-soft);
	border-radius: var(--inp2-radius-lg);
}
.inp2-action__title { display: block; margin-bottom: 14px; color: var(--inp2-gold); }
.inp2-action .inp2-poll + .inp2-poll { margin-top: 16px; border-top: 1px solid var(--inp2-gold-soft); padding-top: 16px; }
.inp2-poll__doc { font-family: var(--inp2-font-ui); font-size: 12px; font-weight: 600; color: var(--inp2-ink); margin: 0 0 4px; }

/* ---- Browser layout ---- */
.inp2-browser { display: grid; grid-template-columns: 264px 1fr; gap: 26px; align-items: start; }

/* ---- Filter rail ---- */
.inp2-rail {
	position: sticky; top: 20px;
	padding: 22px; background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius-lg);
	box-shadow: var(--inp2-shadow-card);
}
.inp2-rail__label { display: block; margin-bottom: 14px; }
.inp2-seg { display: flex; padding: 4px; background: var(--inp2-porcelain); border-radius: 999px; margin-bottom: 16px; }
.inp2-seg__btn {
	flex: 1; padding: 8px 4px; cursor: pointer; border: 0; background: transparent; border-radius: 999px;
	font-family: var(--inp2-font-ui); font-size: 12.5px; font-weight: 600; color: var(--inp2-ink-soft);
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-seg__btn.is-active { background: var(--inp2-ink); color: #fff; }

.inp2-switch { display: flex; align-items: center; gap: 10px; cursor: pointer; margin-bottom: 16px; }
.inp2-switch input { position: absolute; opacity: 0; pointer-events: none; }
.inp2-switch__track {
	position: relative; width: 38px; height: 22px; border-radius: 999px;
	background: var(--inp2-hairline); transition: background var(--inp2-duration) var(--inp2-ease); flex: 0 0 auto;
}
.inp2-switch__thumb {
	position: absolute; top: 3px; inset-inline-start: 3px; width: 16px; height: 16px; border-radius: 50%;
	background: #fff; box-shadow: 0 1px 3px rgba(16,30,48,.25); transition: transform var(--inp2-duration) var(--inp2-ease);
}
.inp2-switch input:checked + .inp2-switch__track { background: var(--inp2-gold); }
.inp2-switch input:checked + .inp2-switch__track .inp2-switch__thumb { transform: translateX(16px); }
.inp2-switch__text { font-family: var(--inp2-font-ui); font-size: 13px; color: var(--inp2-ink-body); }

.inp2-rail__search { position: relative; margin-bottom: 18px; }
.inp2-rail__search svg { position: absolute; inset-inline-start: 12px; top: 50%; transform: translateY(-50%); width: 15px; height: 15px; color: var(--inp2-ink-soft); }
.inp2-rail__search input {
	width: 100%; padding: 9px 12px 9px 34px; box-sizing: border-box;
	font-family: var(--inp2-font-ui); font-size: 13px; color: var(--inp2-ink);
	background: var(--inp2-porcelain); border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius);
}
.inp2-rail__search input:focus { outline: none; border-color: var(--inp2-gold-soft); background: #fff; }

.inp2-facet { padding-top: 16px; border-top: 1px solid var(--inp2-hairline-soft); margin-top: 4px; }
.inp2-facet__title { font-family: var(--inp2-font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--inp2-ink-soft); margin: 0 0 10px; }
.inp2-facet__opts { display: flex; flex-direction: column; gap: 9px; }
.inp2-check { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.inp2-check input { position: absolute; opacity: 0; pointer-events: none; }
.inp2-check__box {
	width: 17px; height: 17px; border-radius: 5px; flex: 0 0 auto;
	border: 1.5px solid var(--inp2-hairline); background: #fff; position: relative;
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-check input:checked + .inp2-check__box { background: var(--inp2-ink); border-color: var(--inp2-ink); }
.inp2-check input:checked + .inp2-check__box::after {
	content: ''; position: absolute; inset-inline-start: 5px; top: 2px; width: 4px; height: 8px;
	border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.inp2-check__text { font-family: var(--inp2-font-ui); font-size: 13px; color: var(--inp2-ink-body); }
.inp2-check:hover .inp2-check__text { color: var(--inp2-ink); }

.inp2-rail__clear {
	margin-top: 20px; width: 100%; padding: 9px; cursor: pointer;
	font-family: var(--inp2-font-ui); font-size: 12px; font-weight: 600; color: var(--inp2-ink-soft);
	background: transparent; border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius);
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-rail__clear:hover { color: var(--inp2-negative); border-color: var(--inp2-negative); }

/* ---- Content / accordion ---- */
.inp2-content__meta { font-family: var(--inp2-font-ui); font-size: 12.5px; color: var(--inp2-ink-soft); margin-bottom: 14px; }
.inp2-section { margin-bottom: 26px; }
.inp2-section__title {
	font-family: var(--inp2-font-display); font-weight: 500; font-size: 18px; color: var(--inp2-ink);
	margin: 0 0 12px; padding-bottom: 8px; position: relative;
}
.inp2-section__title::after { content: ''; position: absolute; inset-inline-start: 0; bottom: 0; width: 32px; height: 2px; background: var(--inp2-gold); }
.inp2-section__folders { display: flex; flex-direction: column; gap: 10px; }

.inp2-folder { background: var(--inp2-surface); border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius-lg); overflow: hidden; box-shadow: var(--inp2-shadow-card); }
.inp2-folder__head {
	width: 100%; display: flex; align-items: center; gap: 12px; cursor: pointer;
	padding: 16px 20px; background: transparent; border: 0; text-align: start;
	transition: background var(--inp2-duration) var(--inp2-ease);
}
.inp2-folder__head:hover { background: var(--inp2-porcelain); }
.inp2-folder__chev {
	flex: 0 0 auto; width: 9px; height: 9px; border-right: 1.5px solid var(--inp2-ink-soft); border-bottom: 1.5px solid var(--inp2-ink-soft);
	transform: rotate(-45deg); transition: transform var(--inp2-duration) var(--inp2-ease);
}
.inp2-folder.is-open .inp2-folder__chev { transform: rotate(45deg); }
.inp2-folder__name { font-family: var(--inp2-font-ui); font-weight: 600; font-size: 15px; color: var(--inp2-ink); flex: 1; }
.inp2-folder__count { font-family: var(--inp2-font-ui); font-size: 12px; color: var(--inp2-ink-soft); }
.inp2-folder__new {
	font-family: var(--inp2-font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: 0.04em;
	color: var(--inp2-gold); background: var(--inp2-gold-wash); padding: 3px 9px; border-radius: 999px;
}
.inp2-folder__list { display: none; border-top: 1px solid var(--inp2-hairline-soft); }
.inp2-folder.is-open .inp2-folder__list { display: block; }

.inp2-row {
	width: 100%; display: flex; align-items: center; gap: 14px; cursor: pointer;
	padding: 12px 20px; background: transparent; border: 0; border-top: 1px solid var(--inp2-hairline-soft); text-align: start;
	transition: background var(--inp2-duration) var(--inp2-ease);
}
.inp2-row:first-child { border-top: 0; }
.inp2-row:hover { background: var(--inp2-porcelain); }
.inp2-row__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.inp2-row__name { font-family: var(--inp2-font-ui); font-weight: 600; font-size: 14px; color: var(--inp2-ink); }
.inp2-row__meta { font-family: var(--inp2-font-ui); font-size: 12px; color: var(--inp2-ink-soft); }
.inp2-row__account { font-family: var(--inp2-font-ui); font-size: 12.5px; color: var(--inp2-ink-body); white-space: nowrap; }
.inp2-row__dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--inp2-gold); }
.inp2-row.is-unread .inp2-row__name { color: var(--inp2-ink); }

/* ---- Viewer modal ---- */
.inp2-viewer { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 32px; }
.inp2-viewer[hidden] { display: none; }
.inp2-viewer__scrim { position: absolute; inset: 0; background: rgba(16, 30, 48, 0.55); backdrop-filter: blur(3px); }
.inp2-viewer__panel {
	position: relative; width: min(1120px, 100%); height: min(860px, 92vh);
	display: flex; flex-direction: column; background: var(--inp2-surface);
	border-radius: var(--inp2-radius-lg); box-shadow: var(--inp2-shadow-lift); overflow: hidden;
}
.inp2-viewer__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 22px; border-bottom: 1px solid var(--inp2-hairline); }
.inp2-viewer__title { font-family: var(--inp2-font-display); font-weight: 500; font-size: 19px; color: var(--inp2-ink); margin: 0; }
.inp2-viewer__tools { display: flex; gap: 8px; }
.inp2-viewer__tool {
	width: 38px; height: 38px; display: grid; place-items: center; cursor: pointer;
	background: transparent; border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius); color: var(--inp2-ink-body);
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-viewer__tool:hover { color: var(--inp2-ink); border-color: var(--inp2-gold-soft); }
.inp2-viewer__tool svg { width: 18px; height: 18px; }
.inp2-viewer__body { display: flex; flex: 1; min-height: 0; }
.inp2-viewer__list { flex: 0 0 250px; overflow-y: auto; border-inline-end: 1px solid var(--inp2-hairline); padding: 12px; background: var(--inp2-porcelain); }
.inp2-viewer__list.is-solo { display: none; }
.inp2-vitem { width: 100%; display: flex; gap: 11px; align-items: center; cursor: pointer; padding: 11px; text-align: start; background: transparent; border: 1px solid transparent; border-radius: var(--inp2-radius); }
.inp2-vitem:hover { background: var(--inp2-surface); }
.inp2-vitem.is-active { background: var(--inp2-surface); border-color: var(--inp2-gold-soft); box-shadow: var(--inp2-shadow-card); }
.inp2-vitem__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.inp2-vitem__name { font-family: var(--inp2-font-ui); font-weight: 600; font-size: 13px; color: var(--inp2-ink); }
.inp2-vitem__meta { font-family: var(--inp2-font-ui); font-size: 11.5px; color: var(--inp2-ink-soft); }
.inp2-vitem.is-unread .inp2-vitem__name::after { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--inp2-gold); margin-inline-start: 6px; vertical-align: middle; }
.inp2-viewer__stage { flex: 1; min-width: 0; background: #55606f; }
.inp2-viewer__frame { width: 100%; height: 100%; border: 0; display: block; }
.inp2-viewer__placeholder { height: 100%; display: flex; flex-direction: column; gap: 18px; align-items: center; justify-content: center; color: #fff; text-align: center; padding: 24px; }
.inp2-viewer__placeholder p { font-family: var(--inp2-font-ui); font-size: 15px; margin: 0; }
.inp2-btn { display: inline-block; padding: 11px 22px; font-family: var(--inp2-font-ui); font-size: 13px; font-weight: 600; border-radius: var(--inp2-radius); text-decoration: none; cursor: pointer; }
.inp2-btn--gold { background: var(--inp2-gold); color: #fff; }

/* ---- Footer ---- */
.inp2-portal__foot { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--inp2-hairline); text-align: center; font-family: var(--inp2-font-ui); font-size: 12px; color: var(--inp2-ink-soft); }

/* ---- Responsive ---- */
@media (max-width: 900px) {
	.inp2-browser { grid-template-columns: 1fr; }
	.inp2-rail { position: static; }
	.inp2-mast { flex-wrap: wrap; }
	.inp2-mast__context { padding-inline-start: 0; border-inline-start: 0; }
	.inp2-viewer { padding: 0; }
	.inp2-viewer__panel { height: 100vh; width: 100%; border-radius: 0; }
	.inp2-viewer__list { flex-basis: 150px; }
	.inp2-viewer__body { flex-direction: column; }
}

/* ================================================================== *
 * Portal — "presence" pass: page background, hero stats, larger cards,
 * folder bulk-download, viewer prev/next.
 * ================================================================== */

/* Full-viewport warm background so the porcelain cards float. */
.inp2-bg {
	position: fixed; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(1100px 560px at 12% -10%, var(--inp2-gold-wash) 0%, rgba(246,241,231,0) 58%),
		radial-gradient(900px 500px at 100% 0%, #eef1f4 0%, rgba(238,241,244,0) 50%),
		linear-gradient(180deg, #fbfaf8 0%, #f2efe8 100%);
}

/* Hero stat figures — restrained gravitas. */
.inp2-stats {
	display: flex; flex-wrap: wrap; gap: 40px; margin: 26px 0 0; padding: 0;
}
.inp2-stat { display: flex; flex-direction: column-reverse; gap: 4px; }
.inp2-stat__value {
	font-family: var(--inp2-font-display); font-weight: 500; font-size: 40px; line-height: 1;
	color: var(--inp2-ink); margin: 0; letter-spacing: -0.01em;
}
.inp2-stat__value.is-accent { color: var(--inp2-gold); }
.inp2-stat__label { display: block; }
.inp2-stat + .inp2-stat { padding-inline-start: 40px; border-inline-start: 1px solid var(--inp2-hairline); }

/* Larger, bolder recent cards. */
.inp2-portal--app .inp2-card { flex-basis: 340px; padding: 22px; gap: 16px; }
.inp2-portal--app .inp2-card__glyph { width: 50px; height: 50px; font-size: 13.5px; }
.inp2-portal--app .inp2-card__name { font-size: 14.5px; }
.inp2-portal--app .inp2-card__period { font-size: 17px; }
.inp2-recent__title { font-size: 23px; }

/* Folder bulk-download control. */
.inp2-folder__dl {
	display: grid; place-items: center; width: 32px; height: 32px; margin-inline-start: 4px;
	border-radius: var(--inp2-radius); color: var(--inp2-ink-soft); cursor: pointer;
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-folder__dl svg { width: 17px; height: 17px; }
.inp2-folder__dl:hover { color: var(--inp2-gold); background: var(--inp2-gold-wash); }

/* Viewer prev/next. */
.inp2-viewer__nav { font-size: 20px; line-height: 1; font-weight: 400; color: var(--inp2-ink); }
.inp2-viewer__nav[disabled] { opacity: 0.3; cursor: default; }
.inp2-viewer__nav[hidden] { display: none; }

/* Neutralise host-theme button focus/active backgrounds bleeding into the
 * portal's own interactive rows (folders, doc rows, sidebar items). */
.inp2-portal--app .inp2-folder__head,
.inp2-portal--app .inp2-row,
.inp2-portal--app .inp2-vitem,
.inp2-portal--app .inp2-seg__btn,
.inp2-portal--app .inp2-recent__arrow,
.inp2-portal--app .inp2-viewer__tool,
.inp2-portal--app .inp2-rail__clear,
.inp2-portal--app .inp2-mast__logout { -webkit-appearance: none; appearance: none; box-shadow: none; }
.inp2-portal--app .inp2-folder__head:focus,
.inp2-portal--app .inp2-folder__head:focus-visible,
.inp2-portal--app .inp2-folder__head:active { background-color: var(--inp2-porcelain); outline: none; }
.inp2-portal--app .inp2-row:focus,
.inp2-portal--app .inp2-row:focus-visible,
.inp2-portal--app .inp2-row:active { background-color: var(--inp2-porcelain); outline: none; }
.inp2-portal--app .inp2-seg__btn:focus,
.inp2-portal--app .inp2-seg__btn:focus-visible { outline: none; }
.inp2-portal--app .inp2-seg__btn.is-active,
.inp2-portal--app .inp2-seg__btn.is-active:focus { background-color: var(--inp2-ink); color: #fff; }
.inp2-portal--app .inp2-vitem:focus,
.inp2-portal--app .inp2-vitem:active { background-color: var(--inp2-surface); outline: none; }
.inp2-portal--app .inp2-card:focus,
.inp2-portal--app .inp2-card:focus-visible { outline: none; box-shadow: var(--inp2-shadow-lift); }

/* Host-theme :hover backgrounds also bleed onto portal buttons — pin every
 * interactive surface's hover/focus/active background explicitly so the theme
 * accent never overrides it (keeps text legible). */
.inp2-portal--app .inp2-card,
.inp2-portal--app .inp2-card:hover,
.inp2-portal--app .inp2-card:focus,
.inp2-portal--app .inp2-card:active { background-color: var(--inp2-surface); }

.inp2-portal--app .inp2-recent__arrow,
.inp2-portal--app .inp2-recent__arrow:hover,
.inp2-portal--app .inp2-recent__arrow:focus { background-color: var(--inp2-surface); }

.inp2-portal--app .inp2-folder__head:hover { background-color: var(--inp2-porcelain); }
.inp2-portal--app .inp2-row:hover { background-color: var(--inp2-porcelain); }
.inp2-portal--app .inp2-vitem:hover { background-color: var(--inp2-surface); }

.inp2-portal--app .inp2-seg__btn:hover { background-color: transparent; color: var(--inp2-ink); }
.inp2-portal--app .inp2-seg__btn.is-active,
.inp2-portal--app .inp2-seg__btn.is-active:hover { background-color: var(--inp2-ink); color: #fff; }

.inp2-portal--app .inp2-viewer__tool,
.inp2-portal--app .inp2-viewer__tool:hover,
.inp2-portal--app .inp2-viewer__tool:focus { background-color: transparent; }
.inp2-portal--app .inp2-mast__logout:hover,
.inp2-portal--app .inp2-rail__clear:hover { background-color: transparent; }

.inp2-portal--app .inp2-folder__dl:hover { background-color: var(--inp2-gold-wash); color: var(--inp2-gold); }

/* ---- Full-canvas portal page (theme bypassed) ---- */
body.inp2-portal-page {
	margin: 0;
	background: #f2efe8;
	color: var(--inp2-ink-body);
	font-family: var(--inp2-font-ui);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.inp2-portal-page .inp2-login { min-height: 100vh; display: flex; align-items: center; justify-content: center; }

/* ================================================================== *
 * Account switcher · Download-all · Viewer full-screen · Mobile pass.
 * ================================================================== */

/* Account switcher (masthead dropdown). */
.inp2-switcher { position: relative; }
.inp2-switcher__btn {
	display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
	padding: 5px 10px; background: transparent; border: 1px solid var(--inp2-hairline); border-radius: 999px;
	font-family: var(--inp2-font-ui); font-size: 12px; font-weight: 500; color: var(--inp2-ink);
	transition: border-color var(--inp2-duration) var(--inp2-ease);
}
.inp2-portal--app .inp2-switcher__btn:hover { background-color: transparent; border-color: var(--inp2-gold-soft); }
.inp2-switcher__btn svg { width: 15px; height: 15px; color: var(--inp2-gold); }
.inp2-switcher__caret { width: 7px; height: 7px; border-right: 1.5px solid var(--inp2-ink-soft); border-bottom: 1.5px solid var(--inp2-ink-soft); transform: rotate(45deg) translateY(-1px); }
.inp2-switcher__menu {
	position: absolute; top: calc(100% + 8px); inset-inline-start: 0; z-index: 50; min-width: 240px;
	background: var(--inp2-surface); border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius-lg);
	box-shadow: var(--inp2-shadow-lift); padding: 6px;
}
.inp2-switcher__menu[hidden] { display: none; }
.inp2-switcher__opt {
	display: block; width: 100%; text-align: start; cursor: pointer; padding: 10px 12px;
	background: transparent; border: 0; border-radius: var(--inp2-radius);
	font-family: var(--inp2-font-ui); font-size: 13px; color: var(--inp2-ink-body);
}
.inp2-portal--app .inp2-switcher__opt:hover { background-color: var(--inp2-porcelain); }
.inp2-switcher__opt.is-active { color: var(--inp2-ink); font-weight: 600; }

/* Download-all button. */
.inp2-content__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.inp2-download-all {
	display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
	padding: 7px 14px; background: transparent; border: 1px solid var(--inp2-hairline); border-radius: 999px;
	font-family: var(--inp2-font-ui); font-size: 12px; font-weight: 600; color: var(--inp2-ink-body);
	transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-download-all svg { width: 15px; height: 15px; }
.inp2-portal--app .inp2-download-all:hover { background-color: var(--inp2-ink); border-color: var(--inp2-ink); color: #fff; }

/* Viewer full-screen. */
.inp2-viewer.is-full { padding: 0; }
.inp2-viewer.is-full .inp2-viewer__panel { width: 100vw; height: 100vh; max-width: none; border-radius: 0; }

/* ---- Mobile pass ---- */
@media (max-width: 700px) {
	.inp2-portal--app { padding: 16px 16px 64px; }
	.inp2-mast { padding: 12px 14px; gap: 12px; }
	.inp2-mast__brand { gap: 12px; }
	.inp2-mast__context { display: none; }          /* context chips fold away on small screens */
	.inp2-mast__name { display: none; }              /* avatar alone is enough */
	.inp2-hero__title { font-size: 30px; }
	.inp2-stats { gap: 20px; }
	.inp2-stat + .inp2-stat { padding-inline-start: 20px; }
	.inp2-stat__value { font-size: 30px; }
	.inp2-portal--app .inp2-card { flex-basis: 80vw; }
	.inp2-recent__title { font-size: 20px; }
	.inp2-content__meta { flex-wrap: wrap; }
	.inp2-folder__head { padding: 14px 14px; gap: 8px; flex-wrap: wrap; }
	.inp2-folder__count { flex-basis: 100%; order: 3; margin-inline-start: 21px; }
	.inp2-row { padding: 12px 14px; }
	.inp2-row__account { display: none; }            /* account shown in the row name area instead */
	.inp2-section__title { font-size: 17px; }
	.inp2-switcher__menu { position: fixed; inset-inline: 12px auto; min-width: min(280px, calc(100vw - 24px)); }
}

/* ================================================================== *
 * Data Room (LP frontend) — native <details> accordion, reuses portal look.
 * ================================================================== */
.inp2-dataroom__tree { display: flex; flex-direction: column; gap: 12px; max-width: 1000px; }
.inp2-dataroom details.inp2-folder { }
.inp2-dataroom summary.inp2-folder__head { list-style: none; }
.inp2-dataroom summary.inp2-folder__head::-webkit-details-marker { display: none; }
.inp2-dataroom details[open] .inp2-folder__chev { transform: rotate(45deg); }
.inp2-dataroom details .inp2-folder__list { display: block; }
.inp2-dataroom__row { cursor: default; }
.inp2-dataroom__actions { display: flex; gap: 8px; flex: 0 0 auto; }
.inp2-portal--app .inp2-dataroom__actions .inp2-doc__btn { margin: 0; }

/* ---- Data Room NDA gate ---- */
.inp2-nda {
	max-width: 860px; background: var(--inp2-surface);
	border: 1px solid var(--inp2-hairline); border-radius: var(--inp2-radius-lg);
	box-shadow: var(--inp2-shadow-card); padding: 28px 30px;
}
.inp2-nda__body {
	max-height: 48vh; overflow-y: auto; padding-inline-end: 10px;
	font-family: var(--inp2-font-ui); font-size: 14px; line-height: 1.75; color: var(--inp2-ink-body);
}
.inp2-nda__form { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--inp2-hairline); display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.inp2-nda__check { display: flex; align-items: center; gap: 9px; font-family: var(--inp2-font-ui); font-size: 13.5px; color: var(--inp2-ink); cursor: pointer; }
.inp2-btn--ink { background: var(--inp2-ink); color: #fff; border: 0; }
.inp2-portal--app .inp2-btn--ink:hover { background: #0a1420; color: #fff; }

/* Masthead nav link (Portal ⇄ Data Room). */
.inp2-mast__nav {
	font-family: var(--inp2-font-ui); font-size: 13px; font-weight: 500;
	color: var(--inp2-ink-body); text-decoration: none;
	padding: 6px 2px; margin-inline-end: 14px;
	border-bottom: 2px solid transparent; transition: all var(--inp2-duration) var(--inp2-ease);
}
.inp2-mast__nav:hover { color: var(--inp2-ink); border-bottom-color: var(--inp2-gold); }
.inp2-dataroom summary.inp2-folder__head .inp2-folder__dl { display: inline-grid; }
