/*
 * Based Adventures Applicant Portal
 * Every rule is scoped under .ba-portal so the theme is untouched.
 * Fonts are bundled locally (SIL OFL); no external requests.
 */

@font-face {
	font-family: "BA Playfair Display";
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url("../fonts/playfair-display-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "BA Playfair Display";
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url("../fonts/playfair-display-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "BA Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "BA Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Full-bleed sections must not cause sideways scrolling on portal pages. */
body.ba-portal-page { overflow-x: clip; }

.ba-portal {
	--ba-dark: #1a1c18;
	--ba-dark-line: #2a2d27;
	--ba-hero-text: #e9e1d3;
	--ba-cream: #f6f1e7;
	--ba-sand: #ebe2d3;
	--ba-line: #d8cfbf;
	--ba-orange: #c8612b;
	--ba-orange-dark: #a94f20;
	--ba-orange-light: #d9874f;
	--ba-green: #5b6b4a;
	--ba-ink: #1d1f1b;
	--ba-muted: #6b665c;
	--ba-lock: #6f685d;
	--ba-serif: "BA Playfair Display", "Playfair Display", Georgia, "Times New Roman", serif;
	--ba-sans: "BA Inter", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	background: var(--ba-sand);
	color: var(--ba-ink);
	font-family: var(--ba-sans);
	font-size: 15px;
	line-height: 1.5;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	padding-bottom: 40px;
}
.ba-portal *,
.ba-portal *::before,
.ba-portal *::after { box-sizing: border-box; }

/*
 * Full-bleed layout (default): break out of the theme's content column.
 * !important is needed because block themes force auto margins and a max
 * width on content children. Use layout="boxed" on a shortcode to opt out.
 */
.ba-portal.ba-portal--full {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: none !important;
	width: auto !important;
}
.ba-portal.ba-portal--boxed { max-width: 100%; }

.ba-portal a { color: var(--ba-orange); text-decoration: none; }
.ba-portal a:hover,
.ba-portal a:focus { color: var(--ba-orange-dark); text-decoration: underline; }
.ba-portal p { margin: 0 0 12px; }

/* Hero ------------------------------------------------------------------ */
.ba-portal .ba-hero {
	background: var(--ba-dark);
	color: var(--ba-hero-text);
	text-align: center;
	padding: 50px 20px 44px;
	border-top: 1px solid var(--ba-dark-line);
}
.ba-portal .ba-hero .ba-hero__title {
	font-family: var(--ba-serif);
	font-size: 46px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--ba-hero-text);
	margin: 0;
	padding: 0;
	border: 0;
}
.ba-portal .ba-hero .ba-hero__subtitle {
	font-family: var(--ba-serif);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--ba-orange-light);
	margin: 8px 0 0;
}

/* Layout ---------------------------------------------------------------- */
.ba-portal .ba-wrap { max-width: 1100px; margin: 0 auto; padding: 30px 40px 10px; }
.ba-portal .ba-wrap--medium { max-width: 820px; }
.ba-portal .ba-wrap--narrow { max-width: 600px; }
.ba-portal .ba-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 28px; align-items: start; }

.ba-portal .ba-card {
	background: var(--ba-cream);
	padding: 22px 26px;
	margin-bottom: 24px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.ba-portal .ba-card--center { text-align: center; }
.ba-portal .ba-card .ba-card__title,
.ba-portal h3.ba-card__title {
	font-family: var(--ba-serif);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ba-ink);
	text-transform: none;
	letter-spacing: 0;
	margin: 0 0 12px;
	padding: 0 0 8px;
	border: 0;
	border-bottom: 2px solid var(--ba-orange);
}

.ba-portal .ba-small { font-size: 13px; color: var(--ba-muted); line-height: 1.6; }
.ba-portal .ba-muted { color: var(--ba-lock); }
.ba-portal .ba-eyebrow { font-size: 13px; color: var(--ba-muted); text-transform: uppercase; letter-spacing: .3px; }
.ba-portal .ba-trip-name { font-family: var(--ba-serif); font-size: 24px; font-weight: 700; line-height: 1.3; color: var(--ba-ink) !important; } /* theme sets .ba-trip-name to cream !important */

/* Status card ----------------------------------------------------------- */
.ba-portal .ba-status-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ba-portal .ba-pill {
	display: inline-block;
	flex: none;
	background: var(--ba-green);
	color: #fff;
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1px;
	line-height: 1.4;
	text-transform: uppercase;
	white-space: nowrap;
}
.ba-portal .ba-pill--submitted { background: #7a746a; }
.ba-portal .ba-pill--call_scheduled { background: var(--ba-orange); }
.ba-portal .ba-pill--accepted,
.ba-portal .ba-pill--deposit_received { background: #2f6b3a; }
.ba-portal .ba-pill--ready_to_go { background: var(--ba-dark); }
.ba-portal .ba-pill--waitlisted { background: #9a7b2f; }
.ba-portal .ba-pill--not_a_fit { background: var(--ba-lock); }

.ba-portal .ba-stages { display: flex; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.ba-portal .ba-stages li {
	flex: 1 1 0;
	margin: 0;
	padding: 7px 4px;
	text-align: center;
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: .5px;
	background: var(--ba-line);
	color: var(--ba-ink);
	list-style: none;
}
.ba-portal .ba-stages li::before,
.ba-portal .ba-stages li::marker { content: none; }
.ba-portal .ba-stages li.is-on { background: var(--ba-orange); color: #fff; }
.ba-portal .ba-stages--muted li { opacity: .55; }

.ba-portal .ba-bar { height: 14px; background: var(--ba-line); margin: 14px 0 6px; overflow: hidden; }
.ba-portal .ba-bar span { display: block; height: 100%; background: var(--ba-orange); }
.ba-portal .ba-status-line { margin: 6px 0 0; }

/* Account panel --------------------------------------------------------- */
.ba-portal .ba-dl { margin: 0; font-size: 13px; line-height: 1.6; }
.ba-portal .ba-dl dt { font-weight: 700; color: var(--ba-muted); margin: 0; }
.ba-portal .ba-dl dd { margin: 0 0 20px; color: var(--ba-muted); word-break: break-word; }
.ba-portal .ba-account__links { margin-top: 4px; }

/* Checklist ------------------------------------------------------------- */
.ba-portal .ba-items { list-style: none; margin: 0; padding: 0; }
.ba-portal .ba-item {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin: 0;
	padding: 11px 0;
	border-bottom: 1px solid var(--ba-line);
	font-size: 15px;
	list-style: none;
}
.ba-portal .ba-item::before,
.ba-portal .ba-item::marker { content: none; }
.ba-portal .ba-item:last-child { border-bottom: 0; }
.ba-portal .ba-item__sub { display: block; font-size: 12px; color: var(--ba-muted); margin-top: 2px; line-height: 1.5; }
.ba-portal .ba-item__state { text-align: right; white-space: nowrap; }
.ba-portal .ba-done { color: var(--ba-green); font-weight: 600; }
.ba-portal .ba-todo { color: var(--ba-orange); font-weight: 600; }
.ba-portal .ba-lock { color: var(--ba-lock); }
.ba-portal .ba-checklist__for { margin-top: -4px; }

/* Buttons --------------------------------------------------------------- */
.ba-portal .ba-btn,
.ba-portal button.ba-btn,
.ba-portal a.ba-btn {
	display: inline-block;
	background: var(--ba-orange);
	color: #fff;
	padding: 10px 20px;
	font-family: var(--ba-sans);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1px;
	line-height: 1.4;
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: pointer;
}
.ba-portal .ba-btn:hover,
.ba-portal .ba-btn:focus { background: var(--ba-orange-dark); color: #fff; text-decoration: none; }
.ba-portal .ba-btn:focus-visible { outline: 2px solid var(--ba-dark); outline-offset: 2px; }
.ba-portal .ba-btn--ghost,
.ba-portal a.ba-btn--ghost { background: transparent; color: var(--ba-orange); box-shadow: inset 0 0 0 2px var(--ba-orange); }
.ba-portal .ba-btn--ghost:hover,
.ba-portal a.ba-btn--ghost:hover { background: var(--ba-orange); color: #fff; }
.ba-portal .ba-actions { margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.ba-portal .ba-card--center .ba-actions { justify-content: center; }
.ba-portal .ba-link { font-size: 13px; }

/* Forms ----------------------------------------------------------------- */
.ba-portal .ba-form { margin: 0; }
.ba-portal .ba-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.ba-portal .ba-field { margin: 0 0 16px; padding: 0; border: 0; }
.ba-portal .ba-field label,
.ba-portal .ba-field legend {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--ba-ink);
	margin: 0 0 5px;
	padding: 0;
}
.ba-portal .ba-req { color: var(--ba-orange); }
.ba-portal .ba-help { display: block; font-size: 12px; color: var(--ba-muted); margin: 0 0 5px; }
.ba-portal .ba-field input + .ba-help { margin: 5px 0 0; }
.ba-portal .ba-field input[type="text"],
.ba-portal .ba-field input[type="email"],
.ba-portal .ba-field input[type="tel"],
.ba-portal .ba-field input[type="date"],
.ba-portal .ba-field input[type="password"],
.ba-portal .ba-field select,
.ba-portal .ba-field textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 10px 12px;
	font-family: var(--ba-sans);
	font-size: 15px;
	line-height: 1.4;
	color: var(--ba-ink);
	background: #fffdf8;
	border: 1px solid var(--ba-line);
	border-radius: 0;
	box-shadow: none;
	height: auto;
}
.ba-portal .ba-field textarea { resize: vertical; min-height: 90px; }
.ba-portal .ba-field input[readonly] { background: var(--ba-sand); color: var(--ba-muted); }
.ba-portal .ba-field input:focus,
.ba-portal .ba-field select:focus,
.ba-portal .ba-field textarea:focus { outline: 0; border-color: var(--ba-orange); box-shadow: 0 0 0 2px rgba(200, 97, 43, .2); }
.ba-portal .ba-radios label,
.ba-portal .ba-check label { display: inline-flex; align-items: flex-start; gap: 8px; font-weight: 400; font-size: 15px; margin: 0 22px 6px 0; }
.ba-portal .ba-ack label { display: flex; font-size: 14px; }
.ba-portal input[type="radio"],
.ba-portal input[type="checkbox"] { accent-color: var(--ba-orange); width: 16px; height: 16px; margin: 3px 0 0; flex: none; }
.ba-portal .ba-switch { margin: 18px 0 0; }
.ba-portal .ba-altcha { margin: 0 0 12px; }

/* Honeypot: off-screen, not display:none (some bots skip hidden fields). */
.ba-portal .ba-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Notices --------------------------------------------------------------- */
.ba-portal .ba-notice { padding: 12px 16px; margin: 0 0 18px; font-size: 14px; border-left: 4px solid var(--ba-green); background: var(--ba-cream); }
.ba-portal .ba-notice--success { border-left-color: var(--ba-green); }
.ba-portal .ba-notice--error { border-left-color: #b3261e; background: #fbeeea; color: #7a1d17; }
.ba-portal .ba-notice ul { margin: 0; padding-left: 18px; }
.ba-portal .ba-notice li { margin: 2px 0; }

/* Responsive ------------------------------------------------------------ */
@media (max-width: 820px) {
	.ba-portal .ba-grid { grid-template-columns: 1fr; gap: 0; }
	.ba-portal .ba-wrap { padding: 22px 16px 6px; }
	.ba-portal .ba-hero .ba-hero__title { font-size: 34px; }
	.ba-portal .ba-hero .ba-hero__subtitle { font-size: 24px; }
}
@media (max-width: 600px) {
	.ba-portal .ba-row { grid-template-columns: 1fr; }
	.ba-portal .ba-status-head { flex-direction: column-reverse; align-items: flex-start; gap: 8px; }
	.ba-portal .ba-stages { flex-wrap: wrap; }
	.ba-portal .ba-stages li { flex: 1 1 30%; }
	.ba-portal .ba-card { padding: 18px; }
	.ba-portal .ba-item { flex-wrap: wrap; gap: 4px 12px; }
}

/* Pre-trip forms (1.1.0) ------------------------------------------------ */
.ba-portal .ba-wrap--form { max-width: 820px; }
.ba-portal .ba-form-back { margin: 0 0 14px; }
.ba-portal .ba-form__intro { font-size: 15px; line-height: 1.6; margin: 0 0 6px; }
.ba-portal .ba-form__meta { font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: var(--ba-muted); margin: 0 0 18px; }
.ba-portal .ba-doc { background: #fffdf8; border: 1px solid var(--ba-line); padding: 6px 20px 10px; margin: 0 0 10px; font-size: 14px; line-height: 1.6; }
.ba-portal .ba-doc--scroll { max-height: 440px; overflow-y: auto; }
.ba-portal .ba-doc h3 { font-family: var(--ba-sans); font-size: 12px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--ba-green); margin: 16px 0 6px; padding: 0; border: 0; }
.ba-portal .ba-doc p { margin: 0 0 10px; }
.ba-portal .ba-doc ul { margin: 0 0 8px; padding-left: 20px; }
.ba-portal .ba-doc li { margin: 0 0 4px; }
.ba-portal .ba-doc blockquote { margin: 0 0 8px; padding: 6px 14px; border-left: 3px solid var(--ba-orange); background: var(--ba-cream); font-style: normal; font-size: 14px; }
.ba-portal .ba-form-section { margin: 22px 0 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--ba-line); min-width: 0; }
.ba-portal .ba-form-section > legend.ba-form-section__title { float: left; width: 100%; font-family: var(--ba-serif); font-size: 19px; font-weight: 700; color: var(--ba-ink); margin: 0 0 10px; padding: 0; }
.ba-portal .ba-form-section > legend + * { clear: both; }
.ba-portal .ba-form-section__intro { margin: 0 0 10px; }
.ba-portal .ba-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; clear: both; }
.ba-portal .ba-form-grid > * { grid-column: 1 / -1; min-width: 0; }
.ba-portal .ba-form-grid > .ba-field--half { grid-column: auto; }
.ba-portal .ba-radios label { margin-bottom: 8px; }
.ba-portal .ba-label { display: block; font-size: 13px; font-weight: 600; margin: 0 0 5px; }
.ba-portal .ba-yesno { margin: 0 0 16px; border-top: 1px solid var(--ba-line); }
.ba-portal .ba-yesno__head,
.ba-portal .ba-yesno__row { display: grid; grid-template-columns: 1fr 64px 64px; align-items: center; }
.ba-portal .ba-yesno__head { font-size: 11px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--ba-muted); padding: 6px 0; }
.ba-portal .ba-yesno__head span { text-align: center; }
.ba-portal .ba-yesno__row { margin: 0; padding: 7px 0; border: 0; border-bottom: 1px solid var(--ba-line); min-width: 0; }
.ba-portal .ba-yesno__row legend { float: left; font-weight: 400; font-size: 14px; margin: 0; padding: 0 10px 0 0; }
.ba-portal .ba-yesno__row label { display: flex; justify-content: center; align-items: center; gap: 6px; margin: 0; font-size: 13px; font-weight: 400; cursor: pointer; }
.ba-portal .ba-yesno__row label span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ba-portal .ba-yesno__row input { width: 20px; height: 20px; margin: 0; }
.ba-portal .ba-sign { background: var(--ba-sand); padding: 16px 20px 6px; margin-top: 26px; border-top: 0; }
.ba-portal .ba-sign > legend.ba-form-section__title { padding-top: 2px; }
.ba-portal .ba-sign__statement { font-size: 14px; line-height: 1.6; margin: 0 0 14px; padding: 0 0 0 12px; border-left: 3px solid var(--ba-orange); }
.ba-portal .ba-check label { display: flex; margin-right: 0; font-size: 14px; }
.ba-portal .ba-field input.ba-signature { font-family: var(--ba-serif); font-style: italic; font-size: 22px; padding: 8px 12px; }
.ba-portal .ba-sign__date { font-size: 15px; padding: 11px 0 4px; }
.ba-portal .ba-item__edit { font-size: 12px; margin-left: 6px; color: var(--ba-muted); }
@media (max-width: 600px) {
	.ba-portal .ba-form-grid { grid-template-columns: 1fr; }
	.ba-portal .ba-form-grid > .ba-field--half { grid-column: 1 / -1; }
	.ba-portal .ba-doc { padding: 4px 14px 8px; }
	.ba-portal .ba-yesno__head,
	.ba-portal .ba-yesno__row { grid-template-columns: 1fr 52px 52px; }
	.ba-portal .ba-sign { padding: 14px 14px 4px; }
}

/* Review dashboard + travel documents (1.2.0) --------------------------- */
.ba-portal .ba-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.ba-portal a.ba-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: var(--ba-cream); color: var(--ba-ink); font-size: 12px; letter-spacing: .4px; text-transform: uppercase; text-decoration: none; border: 1px solid var(--ba-line); }
.ba-portal a.ba-chip strong { font-size: 14px; color: var(--ba-orange); }
.ba-portal a.ba-chip.is-on { background: var(--ba-dark); color: #fff; border-color: var(--ba-dark); }
.ba-portal a.ba-chip.is-on strong { color: var(--ba-orange-light); }
.ba-portal .ba-filters { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 0 16px; align-items: end; padding-bottom: 6px; }
.ba-portal .ba-filters__go { padding-bottom: 16px; white-space: nowrap; }
.ba-portal .ba-apps { padding: 6px 0; overflow-x: auto; }
.ba-portal .ba-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; }
.ba-portal .ba-table th { text-align: left; font-size: 11px; letter-spacing: .6px; text-transform: uppercase; color: var(--ba-muted); font-weight: 700; padding: 10px 14px; border-bottom: 2px solid var(--ba-orange); background: transparent; }
.ba-portal .ba-table td { padding: 12px 14px; border-bottom: 1px solid var(--ba-line); vertical-align: top; background: transparent; }
.ba-portal .ba-table tr:last-child td { border-bottom: 0; }
.ba-portal .ba-apps__name { font-weight: 700; color: var(--ba-ink); text-decoration: none; font-size: 15px; }
.ba-portal .ba-review__foot { margin-top: 10px; }
.ba-portal .ba-stages--pipeline li { font-size: 10px; }
.ba-portal .ba-steps { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--ba-line); }
.ba-portal .ba-steps .ba-actions { margin-top: 4px; }
.ba-portal .ba-steps__note { margin: 10px 0 0; }
.ba-portal .ba-payform { margin: 0 0 12px; }
.ba-portal .ba-btn--danger,
.ba-portal button.ba-btn--danger { color: #9b2c1f; box-shadow: inset 0 0 0 2px #9b2c1f; background: transparent; }
.ba-portal .ba-btn--danger:hover { background: #9b2c1f; color: #fff; }
.ba-portal .ba-btn[disabled] { opacity: .45; cursor: not-allowed; }
.ba-portal .ba-dl--answers dd { color: var(--ba-ink); margin-bottom: 14px; }
.ba-portal .ba-dl--answers dd p { margin: 0 0 6px; }
.ba-portal .ba-log-list { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.ba-portal .ba-log-list li { padding: 7px 0; border-bottom: 1px solid var(--ba-line); list-style: none; }
.ba-portal .ba-log-list li::before { content: none; }
.ba-portal .ba-log-list__when { color: var(--ba-muted); white-space: nowrap; margin-right: 6px; }
.ba-portal .ba-files { list-style: none; margin: 0 0 16px; padding: 0; }
.ba-portal .ba-file { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ba-line); list-style: none; }
.ba-portal .ba-file::before, .ba-portal .ba-files li::before { content: none; }
.ba-portal .ba-file__main { min-width: 0; word-break: break-word; }
.ba-portal .ba-file form { margin: 0; }
.ba-portal .ba-files--compact { margin: 4px 0; }
.ba-portal .ba-files--compact li { padding: 2px 0; list-style: none; }
.ba-portal .ba-linkbtn { background: none; border: 0; padding: 0; color: #9b2c1f; font-size: 13px; cursor: pointer; text-decoration: underline; }
.ba-portal .ba-files__title { font-family: var(--ba-serif); font-size: 19px; margin: 22px 0 8px; padding: 14px 0 0; border-top: 1px solid var(--ba-line); }
.ba-portal .ba-field input[type="file"] { display: block; width: 100%; font-size: 14px; padding: 8px 0; }
.ba-portal .ba-privacy label { font-size: 14px; }
.ba-portal .ba-item__sub a { color: var(--ba-orange-dark); }
@media (max-width: 820px) {
	.ba-portal .ba-filters { grid-template-columns: 1fr 1fr; }
	.ba-portal .ba-filters__q { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.ba-portal .ba-filters { grid-template-columns: 1fr; }
	.ba-portal .ba-apps { padding: 0; background: transparent; }
	.ba-portal .ba-table thead { display: none; }
	.ba-portal .ba-table, .ba-portal .ba-table tbody, .ba-portal .ba-table tr, .ba-portal .ba-table td { display: block; width: 100%; }
	.ba-portal .ba-table tr { background: var(--ba-cream); margin: 0 0 12px; padding: 12px 16px; }
	.ba-portal .ba-table td { border: 0; padding: 3px 0; display: flex; justify-content: space-between; gap: 12px; }
	.ba-portal .ba-table td::before { content: attr(data-label); font-size: 11px; letter-spacing: .5px; text-transform: uppercase; color: var(--ba-muted); flex: none; }
	.ba-portal .ba-table td:first-child { display: block; padding-bottom: 6px; }
	.ba-portal .ba-table td:first-child::before { content: none; }
	.ba-portal .ba-steps .ba-actions .ba-btn { flex: 1 1 100%; text-align: center; }
	.ba-portal .ba-stages--pipeline li { flex: 1 1 45%; }
}
.ba-portal button.ba-btn--ghost { background: transparent; color: var(--ba-orange); box-shadow: inset 0 0 0 2px var(--ba-orange); }
.ba-portal button.ba-btn--ghost:hover { background: var(--ba-orange); color: #fff; }
.ba-portal button.ba-btn--danger { color: #9b2c1f; box-shadow: inset 0 0 0 2px #9b2c1f; }
.ba-portal button.ba-btn--danger:hover { background: #9b2c1f; color: #fff; }

/* Travel itinerary (1.2.1) ------------------------------------------------ */
.ba-portal .ba-field input[type="time"] { display: block; width: 100%; padding: 10px 12px; font-family: var(--ba-sans); font-size: 15px; color: var(--ba-ink); background: #fffdf8; border: 1px solid var(--ba-line); border-radius: 0; }
.ba-portal .ba-notice--warn { border-left-color: var(--ba-orange); background: #fbf1e6; color: var(--ba-ink); font-weight: 600; line-height: 1.55; }
.ba-portal .ba-form--itinerary.is-driving .ba-flight { display: none; }
.ba-portal .ba-uploads__title { font-family: var(--ba-serif); font-size: 21px; margin: 0 0 6px; padding: 0 0 8px; border-bottom: 2px solid var(--ba-orange); }
.ba-portal .ba-itin__legs { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 8px 0 10px; }
.ba-portal .ba-itin__leg { background: #fffdf8; border: 1px solid var(--ba-line); padding: 12px 14px; }
.ba-portal .ba-itin__when { font-family: var(--ba-serif); font-size: 19px; font-weight: 700; margin: 2px 0; }
.ba-portal .ba-itin__flight { font-size: 14px; font-weight: 600; margin: 0 0 6px; }
.ba-portal .ba-itin__mode { margin: -4px 0 4px; }
@media (max-width: 600px) { .ba-portal .ba-itin__legs { grid-template-columns: 1fr; } }

/* 1.2.2: checklist first, status CTA ------------------------------------- */
.ba-portal .ba-grid--checklist-first { grid-template-columns: 1.5fr 1fr; }
.ba-portal .ba-status-cta { margin: 14px 0 0; }
.ba-portal .ba-item__label { color: var(--ba-ink); }
.ba-portal a.ba-item__link { display: inline-block; padding: 6px 12px; background: var(--ba-orange); color: #fff; text-decoration: none; }
.ba-portal a.ba-item__link:hover, .ba-portal a.ba-item__link:focus { background: var(--ba-orange-dark); color: #fff; }
.ba-portal .ba-item__edit { color: var(--ba-orange-dark); text-decoration: underline; }
html { scroll-behavior: smooth; }
#ba-checklist { scroll-margin-top: 190px; }
@media (max-width: 820px) { .ba-portal .ba-grid--checklist-first { grid-template-columns: 1fr; } }

/* v1.3.0 Admin tabs, Trip Calendar, Payments ---------------------------- */
.ba-portal .ba-tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--ba-line); margin: 0 0 20px; flex-wrap: wrap; }
.ba-portal .ba-tab { padding: 10px 16px; font-weight: 600; color: var(--ba-ink); border-bottom: 3px solid transparent; margin-bottom: -2px; }
.ba-portal .ba-tab.is-on { border-color: #B5562F; color: #B5562F; }
.ba-portal .ba-tab:hover { text-decoration: none; color: #B5562F; }
.ba-portal .ba-planner .ba-card { margin-bottom: 18px; }
.ba-portal .ba-sw { display: inline-block; width: 10px; height: 10px; border-radius: 3px; vertical-align: middle; margin-right: 6px; }
.ba-portal .ba-sw--canoe, .ba-portal .ba-ev--canoe { background: #2f6f7a; }
.ba-portal .ba-sw--cold, .ba-portal .ba-ev--cold { background: #4a5f8f; }
.ba-portal .ba-sw--other, .ba-portal .ba-ev--other { background: #5b6b4a; }
.ba-portal .ba-sw--guard, .ba-portal .ba-ev--guard { background: #b3261e; }
.ba-portal .is-faded { opacity: .45; }
.ba-portal .ba-ev.is-faded { opacity: 1; background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.55) 0 4px, transparent 4px 8px); color: var(--ba-ink); }
.ba-portal .ba-cal-legend { display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; margin: 0 0 12px; color: var(--ba-muted); }
.ba-portal .ba-cal-warn { border-left: 4px solid #b3261e; background: #fbecea; }
.ba-portal .ba-cal-warn ul { margin: 6px 0 0 18px; }
.ba-portal .ba-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 6px; padding: 10px; }
.ba-portal .ba-strip__m { background: var(--ba-cream); border: 1px solid var(--ba-line); border-radius: 6px; padding: 8px 6px; cursor: pointer; text-align: left; font: inherit; color: var(--ba-ink); min-height: 54px; }
.ba-portal .ba-strip__m.is-on { border-color: #B5562F; box-shadow: inset 0 0 0 1px #B5562F; }
.ba-portal .ba-strip__lbl { display: block; font-size: 12px; font-weight: 700; margin-bottom: 4px; }
.ba-portal .ba-strip__dots .ba-sw { margin: 0 3px 3px 0; }
.ba-portal .ba-sw.is-clash { outline: 2px solid #b3261e; outline-offset: 1px; }
.ba-portal .ba-cal__nav { display: flex; justify-content: space-between; margin-bottom: 6px; }
.ba-portal .ba-cal__title { font-family: var(--ba-serif); text-align: center; margin: -38px 0 12px; font-size: 24px; }
.ba-portal .ba-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--ba-line); border-left: 1px solid var(--ba-line); }
.ba-portal .ba-cal__dow { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--ba-muted); padding: 6px; border-right: 1px solid var(--ba-line); border-bottom: 1px solid var(--ba-line); background: var(--ba-sand); }
.ba-portal .ba-cal__day { min-height: 92px; padding: 4px; border-right: 1px solid var(--ba-line); border-bottom: 1px solid var(--ba-line); background: var(--ba-cream); overflow: hidden; }
.ba-portal .ba-cal__day.is-empty { background: transparent; }
.ba-portal .ba-cal__day.is-today { box-shadow: inset 0 0 0 2px #B5562F; }
.ba-portal .ba-cal__num { display: block; font-size: 12px; color: var(--ba-muted); margin-bottom: 2px; }
.ba-portal .ba-ev { display: block; font-size: 11px; line-height: 1.3; color: #fff; border-radius: 3px; padding: 2px 4px; margin: 0 -4px 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ba-portal a.ba-ev:hover { color: #fff; text-decoration: none; filter: brightness(1.1); }
.ba-portal .ba-ev.is-clash { box-shadow: inset 0 -2px 0 #b3261e; }
.ba-portal .ba-guard-text { width: 100%; font-family: ui-monospace, Menlo, monospace; font-size: 13px; }
.ba-portal .ba-pay-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 6px; }
.ba-portal .ba-stat span { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ba-muted); }
.ba-portal .ba-stat strong { font-family: var(--ba-serif); font-size: 28px; color: #B5562F; }
.ba-portal .ba-stat em { display: block; font-size: 11px; color: var(--ba-muted); font-style: normal; }
.ba-portal .ba-pay__in { width: 92px; padding: 5px 6px; border: 1px solid var(--ba-line); border-radius: 4px; background: #fff; font: inherit; font-size: 13px; }
.ba-portal .ba-pay__date { width: 132px; }
.ba-portal .ba-pay__act { white-space: nowrap; }
.ba-portal .ba-btn--sm { padding: 5px 10px; font-size: 12px; }
.ba-portal .ba-flag { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.ba-portal .ba-flag--paid { background: #e3ead9; color: #3f5a2a; }
.ba-portal .ba-flag--overdue, .ba-portal .ba-flag--over { background: #f6d9d5; color: #8e1f17; }
.ba-portal .ba-flag--soon { background: #f7e6cf; color: #8a4b12; }
.ba-portal .ba-pay__row--overdue td:first-child { box-shadow: inset 3px 0 0 #b3261e; }
@media (max-width: 720px) { .ba-portal .ba-cal__day { min-height: 56px; } .ba-portal .ba-ev { font-size: 0; height: 6px; padding: 0; } .ba-portal .ba-cal__title { margin-top: 0; } }
.ba-portal .ba-pay { overflow-x: auto; }
.ba-portal .ba-pay .ba-table th, .ba-portal .ba-pay .ba-table td { padding-left: 6px; padding-right: 6px; }
.ba-portal .ba-pay .ba-pay__in { width: 72px; }
.ba-portal .ba-pay .ba-pay__date { width: 128px; }
@media (min-width: 1100px) { .ba-portal .ba-planner { max-width: 1180px; } }
.ba-portal .ba-pay__act { white-space: normal; min-width: 96px; }
.ba-portal .ba-pay__act .ba-btn { display: block; width: 100%; margin: 0 0 4px; text-align: center; }

/* v1.3.1 Year view ------------------------------------------------------ */
.ba-portal .ba-viewtoggle { display: flex; gap: 6px; margin: 0 0 12px; }
.ba-portal .ba-year { position: relative; }
.ba-portal .ba-year__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.ba-portal .ba-year__title { font-family: var(--ba-serif); font-size: 26px; margin: 0; }
.ba-portal .ba-year__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ba-portal .ba-year__grid { display: grid; grid-template-columns: 40px repeat(31, minmax(16px, 1fr)); gap: 2px; min-width: 560px; }
.ba-portal .ba-yc { display: block; aspect-ratio: 1 / 1; background: #f3eee3; border-radius: 2px; position: relative; text-decoration: none; }
.ba-portal .ba-yc.is-wkend { background: #e6dfcf; }
.ba-portal .ba-yc--head, .ba-portal .ba-yc--corner, .ba-portal .ba-yc--month { background: transparent; aspect-ratio: auto; font: 600 10px/1.6 system-ui, sans-serif; color: var(--ba-muted); text-align: center; }
.ba-portal .ba-yc--month { text-align: left; align-self: center; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.ba-portal .ba-yc--none { background: repeating-linear-gradient(45deg, transparent 0 3px, #d9d2c2 3px 4px); }
.ba-portal .ba-yc.ba-yc--canoe { background: #2f6f7a; }
.ba-portal .ba-yc.ba-yc--cold { background: #4a5f8f; }
.ba-portal .ba-yc.ba-yc--other { background: #5b6b4a; }
.ba-portal .ba-yc.is-faded { opacity: .45; }
.ba-portal .ba-yc.ba-yc--guard { background: #b3261e; }
.ba-portal .ba-yc.is-clash { opacity: 1; background-image: linear-gradient(135deg, transparent 50%, #b3261e 50%); box-shadow: inset 0 0 0 2px #b3261e; }
.ba-portal .ba-yc.is-today { outline: 2px solid #1d1f1b; outline-offset: 1px; z-index: 1; }
.ba-portal a.ba-yc:hover, .ba-portal .ba-yc[data-tip]:focus { outline: 2px solid #c8612b; outline-offset: 1px; z-index: 2; }
.ba-portal .ba-sw--wkend { background: #e6dfcf; }
.ba-portal .ba-sw--today { background: transparent; outline: 2px solid #1d1f1b; }
.ba-portal .ba-yc--clash-sw { background: linear-gradient(135deg, #2f6f7a 50%, #b3261e 50%); }
.ba-portal .ba-year__tip { position: absolute; z-index: 5; max-width: 240px; background: #1b1f1a; color: #f6f1e7; font: 12px/1.4 system-ui, sans-serif; padding: 6px 9px; border-radius: 4px; pointer-events: none; box-shadow: 0 4px 12px rgba(0,0,0,.25); }
