:root {
	--ink: #0f172a;
	--navy: #1a3a75;
	--navy-deep: #102448;
	--navy-soft: #2a4f96;
	--paper: #ffffff;
	--surface: #e7eef8;
	--line: #cfd9e8;
	--muted: #516074;
	--coral: #e23c4a;
	--blue: #2f6fed;
	--blue-soft: #5b8ef5;
	--teal: #0f9d9a;
	--gold: #c98512;
	--danger: #b42318;
	--ok: #067a46;
	--shadow: 0 1px 2px rgb(18 37 77 / 0.06);
	--font: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
	--icon: "Material Symbols Rounded";
	--text-xs: 0.6875rem;
	--text-sm: 0.75rem;
	--text-md: 0.8125rem;
	--text-base: 0.875rem;
	--text-lg: 0.9375rem;
	--text-xl: 1.0625rem;
	--text-2xl: 1.25rem;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	/* Compact enterprise controls (~34px desktop; ~40px touch) */
	--control-h: 2.125rem;
	--control-h-touch: 2.5rem;
	--control-px: 0.65rem;
	--control-py: 0.28rem;
	--control-fs: var(--text-md);
	--label-fs: var(--text-xs);
	--radius: 0.5rem;
	--radius-sm: 0.35rem;
	--page-max: 70rem;
	--page-gutter: 1.5rem;
	--page-gutter-sm: 1.1rem;
	--mgr-bar: 2.75rem;
	--mgr-sidebar: 13.75rem;
	--mgr-navy: #0e1c3d;
	--mgr-navy-mid: #152a56;
	--mgr-navy-glow: #1e3f7a;
	--mgr-stage:
		radial-gradient(920px 520px at 8% -8%, rgb(90 140 220 / 0.34), transparent 58%),
		radial-gradient(780px 460px at 100% 0%, rgb(47 111 237 / 0.16), transparent 52%),
		radial-gradient(640px 420px at 70% 110%, rgb(14 28 61 / 0.08), transparent 55%),
		linear-gradient(165deg, #c8d7ec 0%, #dce6f4 34%, #e8eef7 68%, #f3f6fb 100%);
	--mgr-sidebar-bg: linear-gradient(180deg, #152a56 0%, var(--mgr-navy) 48%, #0a152e 100%);
	--mgr-logo-bg: #143062;
	/*
	 * Mobile bottom navigation — fixed viewport tray (bottom: 0 always).
	 * The glass pill floats inside via padding; safe-area is padding only.
	 * Never set a calculated `bottom` (that caused iOS post-nav jumps).
	 */
	--dock-h: 3.25rem;
	--dock-float: 0.5rem; /* ~8px air above the home-indicator / screen edge */
	--dock-inset: var(--dock-float);
	--dock-side: max(0.75rem, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
	--dock-radius: 1.5rem;
	--dock-pad-x: 0.28rem;
	--dock-pad-y: 0.18rem;
	--dock-ico: 1.375rem;
	--dock-label: 0.625rem;
	--dock-item-radius: 0.85rem;
	--dock-safe-bottom: env(safe-area-inset-bottom, 0px);
	/* Tray bottom padding = float + one safe-area (no duplication elsewhere). */
	--dock-gap-bottom: calc(var(--dock-float) + var(--dock-safe-bottom));
	/* Overlay clearance: top float + pill + bottom padding. */
	--dock-clearance: calc(var(--dock-float) + var(--dock-h) + var(--dock-gap-bottom));
	--glass-bg: rgb(255 255 255 / 0.78);
	--glass-border: rgb(255 255 255 / 0.62);
	--glass-shadow: 0 10px 32px rgb(14 28 61 / 0.14), 0 1px 0 rgb(255 255 255 / 0.7) inset;
	--glass-blur: saturate(180%) blur(22px);
	--content-pad-bottom: calc(var(--dock-clearance) + 0.35rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
.ms {
	font-family: var(--icon);
	font-weight: 500;
	font-style: normal;
	font-size: 1.15rem;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	font-feature-settings: "liga";
	-webkit-font-feature-settings: "liga";
	font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;
	vertical-align: middle;
	user-select: none;
	flex: 0 0 auto;
}
.ms.is-fill { font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24; }
.ms-sm { font-size: 1rem; }
.ms-lg { font-size: 1.35rem; }
.ms-xl { font-size: 1.75rem; }
body {
	margin: 0;
	font-family: var(--font);
	font-size: var(--text-base);
	line-height: 1.45;
	color: var(--ink);
	background: var(--surface);
	-webkit-font-smoothing: antialiased;
}
a { color: var(--blue); }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.auth-body {
	min-height: 100vh;
	min-height: 100dvh;
	background:
		radial-gradient(ellipse at 12% 0%, rgb(47 111 237 / 0.14), transparent 42%),
		radial-gradient(ellipse at 100% 0%, rgb(226 60 74 / 0.1), transparent 38%),
		#fff;
}
body.is-auth.auth-body {
	background:
		radial-gradient(ellipse 110% 55% at 50% 0%, rgb(47 111 237 / 0.18), transparent 62%),
		#070f22;
	color: #f4f7fd;
}
.wrap { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.auth-shell {
	width: min(26rem, calc(100% - 2rem));
	margin: 0 auto;
	padding: 2.25rem 0 2.5rem;
	display: grid;
	gap: 1.15rem;
	align-content: start;
}
.auth-shell:has(.hall-picker) { width: min(640px, calc(100% - 2rem)); }
.auth-shell:has(.hall-picker) > .auth-foot { display: none; }
.auth-shell:has(.join-guest),
.auth-shell:has(.join-screen) { width: min(980px, calc(100% - 2rem)); }
.auth-main { margin: 0; min-width: 0; }
.auth-card {
	padding: 1.25rem 1.3rem 1.2rem;
	border-radius: 0.85rem;
	box-shadow: 0 10px 28px rgb(18 37 77 / 0.06);
}
.auth-card .eyebrow { margin-bottom: 0.15rem; }
.auth-card h1 { margin: 0 0 0.85rem; font-size: 1.35rem; }
.auth-card .lede { display: none; }
.auth-form { display: grid; gap: 0.15rem; }
.auth-form label { margin-top: 0.55rem; }
.auth-form label:first-of-type { margin-top: 0; }
.auth-remember { margin-top: 0.75rem !important; font-size: var(--text-sm); }
.auth-submit {
	width: 100%;
	margin-top: 0.85rem;
	min-height: 2.35rem;
	height: 2.35rem;
}
.auth-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	margin: 0.95rem 0 0;
	padding-top: 0.85rem;
	border-top: 1px solid var(--line);
}
.auth-links a {
	font-size: var(--text-sm);
	font-weight: 700;
	text-decoration: none;
	color: var(--navy);
}
.auth-links a:hover { text-decoration: underline; }
.auth-foot {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.85rem;
	margin: 0;
	justify-content: center;
}
.auth-foot a {
	color: var(--muted);
	font-size: var(--text-xs);
	font-weight: 650;
	text-decoration: none;
}
.auth-foot a:hover { color: var(--navy); text-decoration: underline; }
.brand {
	display: flex; align-items: center; gap: 0.65rem;
	text-decoration: none; color: var(--navy-deep); font-weight: 800; font-size: 1.2rem;
}
.brand img { width: 40px; height: 40px; object-fit: contain; }
.card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: none;
	padding: 0.55rem 0.65rem;
}
h1, h2, h3 { font-weight: 800; letter-spacing: -0.025em; color: var(--navy-deep); }
h1 { font-size: clamp(1.05rem, 1.2vw, 1.2rem); margin: 0.1rem 0 0.2rem; line-height: 1.2; }
h2 { font-size: var(--text-lg); margin: 0 0 var(--space-2); line-height: 1.25; }
h3 { font-size: var(--text-base); margin: 0 0 var(--space-2); line-height: 1.3; }
.lede { color: var(--muted); line-height: 1.35; margin: 0 0 var(--space-2); font-size: var(--text-sm); }
.eyebrow { color: var(--coral); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

[hidden] { display: none !important; }
label { display: block; font-weight: 700; font-size: var(--label-fs); margin: 0.35rem 0 0.15rem; }
.optional { color: var(--muted); font-weight: 600; }
.help { display: block; color: var(--muted); font-size: var(--text-sm); font-weight: 500; margin-top: 0.12rem; line-height: 1.35; }
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"],
input[type="date"], input[type="datetime-local"], input[type="time"], input[type="search"], select, textarea {
	width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm);
	min-height: var(--control-h); height: var(--control-h); padding: var(--control-py) var(--control-px);
	font: inherit; font-size: var(--control-fs); line-height: 1.25;
	background: #fff; color: var(--ink);
}
/* Kill Safari/WebKit’s built-in searchfield magnifying glass so placeholders stay readable. */
input[type="search"] {
	appearance: none;
	-webkit-appearance: none;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
	display: none;
	appearance: none;
	-webkit-appearance: none;
}
textarea { min-height: 3.5rem; height: auto; resize: vertical; padding-top: 0.45rem; padding-bottom: 0.45rem; }
select {
	padding-right: 1.65rem;
}
input[type="file"] {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
}
.grid-2, .grid-3 { display: grid; gap: var(--space-3); }
@media (min-width: 700px) {
	.grid-2 { grid-template-columns: 1fr 1fr; }
	.grid-3 { grid-template-columns: 2fr 1fr 1fr; }
}
.org-social-grid { display: grid; gap: var(--space-3); }
@media (min-width: 900px) {
	.org-social-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.actions { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-top: var(--space-3); }
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.28rem;
	border: 0; border-radius: var(--radius-sm); min-height: var(--control-h); height: var(--control-h);
	padding: 0 var(--control-px); font: inherit; font-size: var(--text-sm); font-weight: 700;
	cursor: pointer; text-decoration: none; line-height: 1.2;
}
.btn-primary { background: var(--navy); color: #fff; }
.btn-primary:hover { background: var(--navy-soft); }
.btn-secondary { background: #fff; color: var(--navy); border: 1px solid var(--line); }
.btn-ghost { background: transparent; color: var(--navy); }
.btn-danger { background: #fff; color: var(--danger); border: 1px solid #f3c0bb; }
.btn-danger:hover { background: #fee4e2; }
.btn[disabled] { opacity: 0.55; cursor: not-allowed; }
.btn-sm { min-height: 1.75rem; height: 1.75rem; padding: 0 0.55rem; font-size: var(--text-xs); }
.btn:active { transform: translateY(1px); }

.alert { border-radius: var(--radius); padding: 0.55rem 0.75rem; margin: 0 0 var(--space-2); font-size: var(--text-sm); }
.alert-error { background: #fee4e2; color: var(--danger); }
.alert-ok { background: #d1fadf; color: var(--ok); }
.alert-warn { background: #fff4d6; color: var(--navy-deep); }

.steps {
	display: flex; gap: 0.55rem; margin: 1.2rem 0 1.6rem; padding: 0; list-style: none;
}
.step {
	flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.45rem;
	text-align: center; font-size: 0.8rem; font-weight: 800; color: var(--muted);
	background: var(--surface); border: 1px solid var(--line); border-radius: 999px;
	padding: 0.45rem 0.6rem;
}
.step-num {
	display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border-radius: 999px;
	background: #fff; color: var(--muted); font-size: 0.72rem;
}
.step.active { color: var(--navy); background: #e8effc; border-color: rgb(47 111 237 / 0.25); }
.step.active .step-num { background: var(--navy); color: #fff; }
.step.done { color: var(--teal); background: #e7f8f2; border-color: rgb(15 157 154 / 0.25); }
.step.done .step-num { background: var(--teal); color: #fff; }
.pane { display: none; }
.pane.active { display: block; }

.card-create { padding: 1.7rem 1.45rem 1.6rem; }
.form-block {
	border: 1px solid var(--line); border-radius: var(--radius); padding: 0.55rem 0.65rem 0.65rem;
	margin: 0 0 0.55rem; background: #fff;
}
.form-block-head { margin-bottom: 0.3rem; }
.form-kicker {
	margin: 0 0 0.08rem; color: var(--coral); font-size: var(--text-xs); font-weight: 800;
	letter-spacing: 0.08em; text-transform: uppercase;
}
.form-block-head h2 {
	margin: 0 0 0.1rem; font-size: var(--text-base); letter-spacing: -0.025em; line-height: 1.25;
}
.form-block-head p { margin: 0; color: var(--muted); font-size: var(--text-sm); line-height: 1.3; }

.identity-row { display: grid; gap: 1rem; }
@media (min-width: 700px) {
	.identity-row { grid-template-columns: 220px 1fr; align-items: start; }
}
.identity-fields label:first-child { margin-top: 0; }

.upload {
	position: relative;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.65rem;
	margin: 0; min-height: 220px; padding: 1.1rem 0.9rem; text-align: center; cursor: pointer;
	border: 1.5px dashed rgb(29 59 120 / 0.28); border-radius: 1.1rem; background: #fff;
	color: var(--navy-deep);
}
.upload:hover, .upload.is-drag { border-color: var(--blue); background: #f3f7ff; }
.upload.has-file { border-style: solid; border-color: rgb(15 157 154 / 0.4); }
.upload-mark {
	position: relative; width: 88px; height: 88px; border-radius: 1.2rem;
	display: grid; place-items: center; background: var(--surface); overflow: hidden;
	box-shadow: inset 0 0 0 1px var(--line);
}
.upload-plus { font-size: 2rem; font-weight: 700; color: var(--navy); line-height: 1; }
.upload-mark img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #fff; }
.upload-copy { display: grid; gap: 0.15rem; }
.upload-copy strong { font-size: 0.92rem; }
.upload-copy span { color: var(--muted); font-size: 0.75rem; font-weight: 600; }
.upload-btn {
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 0.5rem; padding: 0.45rem 0.9rem; font-size: 0.8rem; font-weight: 800;
	background: var(--navy); color: #fff;
}

.address-card {
	border-radius: 1.15rem; padding: 0.85rem; background: var(--navy-deep); color: #fff;
	box-shadow: 0 16px 36px rgb(18 37 77 / 0.18);
}
.address-browser { display: flex; gap: 0.35rem; padding: 0.15rem 0.35rem 0.7rem; }
.address-dot { width: 8px; height: 8px; border-radius: 99px; background: rgb(255 255 255 / 0.28); }
.address-bar {
	display: flex; align-items: center; gap: 0.45rem;
	background: #fff; color: var(--navy-deep); border-radius: 999px;
	padding: 0.35rem 0.55rem 0.35rem 0.85rem;
	border: 2px solid transparent;
}
.address-card[data-state="ok"] .address-bar { border-color: #3dcc8a; }
.address-card[data-state="taken"] .address-bar, .address-card[data-state="invalid"] .address-bar { border-color: #f3a0a6; }
.address-lock { display: grid; place-items: center; color: var(--navy); flex: 0 0 auto; }
.address-bar input {
	flex: 1 1 auto; min-width: 0; width: auto; border: 0; border-radius: 0; padding: 0.55rem 0.15rem;
	font-weight: 800; letter-spacing: -0.02em;
}
.address-bar input::placeholder { color: #94a3b8; font-weight: 600; }
.address-bar input:focus { outline: none; }
.address-prefix {
	flex: 0 0 auto; background: var(--surface); color: var(--navy); font-weight: 800;
	font-size: 0.85rem; border-radius: 999px; padding: 0.45rem 0.7rem; white-space: nowrap;
}
.address-live {
	margin: 0.75rem 0 0.2rem; text-align: center; font-size: 1.05rem; font-weight: 800;
	letter-spacing: -0.03em; word-break: break-all;
}
.address-status {
	margin: 0.15rem 0 0; text-align: center; color: rgb(255 255 255 / 0.78);
	font-size: 0.85rem; font-weight: 600; min-height: 1.3em;
}
.address-card[data-state="ok"] .address-status { color: #8ef0c0; }
.address-card[data-state="taken"] .address-status, .address-card[data-state="invalid"] .address-status { color: #ffc9ce; }
.address-suggestions { margin-top: 0.85rem; }
.address-suggestions p {
	margin: 0 0 0.4rem; text-align: center; font-size: 0.72rem; font-weight: 800;
	letter-spacing: 0.08em; text-transform: uppercase; color: rgb(255 255 255 / 0.6);
}
.chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; }
.chip {
	border: 0; border-radius: 0.45rem; padding: 0.4rem 0.75rem; cursor: pointer; font: inherit;
	font-size: 0.8rem; font-weight: 800; background: rgb(255 255 255 / 0.12); color: #fff;
}
.chip:hover { background: rgb(255 255 255 / 0.22); }

.review-url {
	border-radius: 1rem; padding: 1rem 1.1rem; margin-bottom: 1rem; text-align: center;
	background: var(--navy-deep); color: #fff;
}
.review-url-label {
	display: block; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em;
	text-transform: uppercase; color: rgb(255 255 255 / 0.6); margin-bottom: 0.25rem;
}
.review-url p { margin: 0; font-size: 1.25rem; font-weight: 800; letter-spacing: -0.03em; word-break: break-all; }
.review-kv { gap: 0.7rem; }
.review-kv > div { background: var(--surface); border-radius: 0.85rem; padding: 0.7rem 0.85rem; }
.terms-row { display: flex; gap: 0.65rem; align-items: flex-start; margin-top: 1rem; font-weight: 600; }
.signin-foot { margin-top: 1.1rem; }
.pw-box { position: relative; }
.pw-box button {
	position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%);
	border: 0; background: transparent; color: var(--navy); font: inherit; font-weight: 700; cursor: pointer;
}
.checks { list-style: none; padding: 0; margin: 0.6rem 0 0; }
.checks li { color: var(--muted); font-size: 0.82rem; margin: 0.2rem 0; }
.checks li.ok { color: var(--ok); }
.match { font-size: 0.85rem; font-weight: 700; margin-top: 0.4rem; }
.logo-preview { width: 72px; height: 72px; object-fit: contain; margin-top: 0.5rem; }

.app-body { background: var(--surface); }
body.app-body {
	background:
		radial-gradient(900px 480px at 0% 0%, rgb(90 140 220 / 0.2), transparent 55%),
		linear-gradient(180deg, #d5e1f1 0%, var(--surface) 42%, #eef2f8 100%);
}
.app-shell {
	display: grid; min-height: 100vh; align-items: start;
}
@media (min-width: 960px) {
	.app-shell { grid-template-columns: 252px minmax(0, 1fr); }
}
.sidebar {
	position: sticky; top: 0; height: 100vh; height: 100dvh;
	background: var(--mgr-sidebar-bg, #0e1c3d); color: #e8eef8;
	padding: 1rem 0.75rem 0.85rem;
	display: flex; flex-direction: column; gap: 0.75rem;
	overflow: hidden;
}
.sidebar-brand {
	display: flex; align-items: center; gap: 0.7rem;
	text-decoration: none; color: #fff; padding: 0.1rem 0.35rem;
	flex: 0 0 auto;
}
.sidebar-mark {
	width: 38px; height: 38px; border-radius: 10px; background: #fff;
	display: grid; place-items: center; flex: 0 0 auto; overflow: hidden;
	box-shadow: 0 1px 2px rgb(0 0 0 / 0.12);
}
.sidebar-mark img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sidebar-wordmark { display: grid; gap: 0.12rem; min-width: 0; line-height: 1; }
.sidebar-wordmark strong {
	font-size: 1.05rem; font-weight: 800; letter-spacing: -0.03em; line-height: 1;
}
.sidebar-wordmark em {
	font-style: normal; font-size: 0.68rem; font-weight: 700;
	letter-spacing: 0.12em; text-transform: uppercase; color: rgb(255 255 255 / 0.55);
}
.sidebar-org {
	display: flex; align-items: center; gap: 0.6rem;
	padding: 0.5rem 0.55rem; border-radius: 0.8rem;
	background: rgb(255 255 255 / 0.06); color: #fff; text-decoration: none;
	flex: 0 0 auto;
}
.sidebar-org-copy { min-width: 0; }
.sidebar-org-copy strong {
	display: block; font-size: 0.82rem; line-height: 1.25;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sidebar-org-copy em {
	font-style: normal; color: rgb(255 255 255 / 0.55);
	font-size: 0.7rem; font-weight: 700; text-transform: capitalize;
}
.sidebar-nav, .sidebar-account {
	display: flex; flex-direction: column; gap: 2px;
}
.sidebar-nav { flex: 1 1 auto; min-height: 0; overflow: auto; padding-right: 0.1rem; }
.nav-label {
	margin: 0.85rem 0 0.2rem;
	padding: 0 0.7rem;
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.38);
}
.nav-label:first-of-type { margin-top: 0.55rem; }
.sidebar-account {
	flex: 0 0 auto;
	padding-top: 0.65rem;
	border-top: 1px solid rgb(255 255 255 / 0.1);
}
.sidebar nav a {
	display: flex; align-items: center; gap: 0.5rem;
	padding: 0.38rem 0.55rem; border-radius: var(--radius-sm);
	color: rgb(255 255 255 / 0.78); text-decoration: none;
	font-size: var(--text-sm); font-weight: 600; line-height: 1.2;
}
.sidebar nav a .nav-ico { flex: 0 0 auto; opacity: 0.85; }
.sidebar nav a:hover {
	background: rgb(255 255 255 / 0.07); color: #fff;
}
.sidebar nav a.is-active {
	background: #fff; color: var(--navy-deep);
	box-shadow: none;
}
.sidebar nav a.is-active .nav-ico { opacity: 1; }
.main { padding: 0.85rem 1rem 2.5rem; min-width: 0; }
.main-flow { min-width: 0; }
.main.has-aside { display: grid; gap: 0.85rem; align-items: start; }
.main.has-aside > .app-head { margin-bottom: 0; }
.app-aside {
	background: #f4f6fb; border: 1px solid var(--line); border-radius: var(--radius);
	padding: 0.75rem 0.8rem 0.9rem; min-width: 0;
}
@media (min-width: 1080px) {
	.main.has-aside {
		grid-template-columns: minmax(0, 1fr) 320px;
		grid-template-rows: auto 1fr;
		column-gap: 0;
		row-gap: 0;
		padding: 0;
		min-height: 100vh; min-height: 100dvh;
		align-items: stretch;
	}
	.main.has-aside > .app-head {
		grid-column: 1;
		padding: 1.1rem 1.25rem 1.1rem 1.25rem;
	}
	.main.has-aside > .main-flow {
		grid-column: 1; padding: 0 1.25rem 3rem 1.25rem;
	}
	.main.has-aside > .app-aside {
		grid-column: 2; grid-row: 1 / -1;
		border: 0; border-left: 1px solid var(--line); border-radius: 0;
		padding: 1.15rem 1.05rem 2rem;
		position: sticky; top: 0;
		height: 100vh; height: 100dvh;
		overflow: auto;
	}
}
@media (max-width: 1079px) {
	.main.has-aside > .app-head { order: 0; }
	.main.has-aside > .main-flow { order: 1; }
	.main.has-aside > .app-aside { order: 2; }
	.main.has-aside > .app-aside.is-priority { order: 1; }
	.main.has-aside:has(> .app-aside.is-priority) > .main-flow { order: 2; }
}
.app-head {
	display: flex; align-items: flex-start; gap: 0.55rem;
	margin: 0 0 0.75rem; min-height: 2.15rem; flex-wrap: wrap;
}
.app-back {
	flex: 0 0 auto; width: 2.15rem; height: 2.15rem; margin-top: 0.05rem;
	display: grid; place-items: center; border-radius: var(--radius-sm);
	background: #fff; border: 1px solid var(--line); color: var(--navy-deep);
	text-decoration: none; box-shadow: 0 1px 2px rgb(18 37 77 / 0.04);
}
.app-back:hover { border-color: rgb(29 59 120 / 0.35); background: #f7f9fc; }
.app-head-copy { flex: 1 1 12rem; min-width: 0; }
.app-head-copy h1 {
	margin: 0; font-size: clamp(1.05rem, 1.3vw, 1.2rem); letter-spacing: -0.03em; line-height: 1.2;
}
.app-head-copy .lede { margin: 0.15rem 0 0; max-width: 40rem; font-size: var(--text-sm); }
.app-head-end {
	display: flex; align-items: center; justify-content: flex-end;
	gap: 0.55rem; flex: 0 0 auto; flex-wrap: wrap;
}
.app-head-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; justify-content: flex-end; }
.app-user summary {
	width: 2.5rem; height: 2.5rem; padding: 0; border-radius: 0.85rem;
	border: 1px solid var(--line); background: #fff;
	display: grid; place-items: center; overflow: hidden;
}
.app-user summary .avatar { width: 100%; height: 100%; border-radius: 0; }
.app-user-name {
	margin: 0; padding: 0.55rem 0.75rem 0.35rem;
	font-weight: 800; color: var(--navy-deep); font-size: 0.92rem;
}
.topbar {
	display: flex; justify-content: space-between; gap: 1rem;
	align-items: center; flex-wrap: wrap; margin-bottom: 1.1rem;
}
.nav-toggle {
	border: 1px solid var(--line); background: #fff; border-radius: 0.5rem;
	padding: 0.45rem 0.9rem; font: inherit; font-weight: 800; color: var(--navy); cursor: pointer;
}
@media (min-width: 960px) { .nav-toggle { display: none; } }
@media (max-width: 959px) {
	.sidebar,
	.mgr-sidebar,
	.nav-toggle,
	.nav-backdrop {
		display: none !important;
	}
}
.profile-form { display: grid; gap: 1.1rem; width: 100%; }
@media (min-width: 1100px) {
	.profile-form { grid-template-columns: 1fr 1fr; align-items: start; }
	.profile-form .profile-span { grid-column: 1 / -1; }
}
.profile-form .form-block { margin: 0; }
.profile-form .identity-row { align-items: stretch; }
@media (min-width: 700px) {
	.profile-form .identity-row { grid-template-columns: 240px minmax(0, 1fr); }
}
.event-composer {
	width: 100%; background: #fff; border: 1px solid rgb(18 37 77 / 0.08);
	border-radius: 1rem; box-shadow: var(--shadow); overflow: hidden;
}
.event-title {
	width: 100%; border: 0 !important; border-bottom: 1px solid var(--line) !important;
	border-radius: 0 !important; font-size: 1.55rem; font-weight: 800; letter-spacing: -0.03em;
	padding: 1.15rem 1.35rem !important;
}
.event-title:focus { outline: none; box-shadow: none; }
.event-row {
	display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 0.35rem;
	padding: 0.45rem 1.1rem; align-items: start;
}
.event-row-ico { color: #64748b; margin-top: 0.7rem; font-size: 1.2rem; width: auto; height: auto; }
.event-row input[type="text"],
.event-row textarea,
.event-row input[type="number"] {
	border: 0; border-radius: 0.5rem; background: transparent; padding: 0.65rem 0.4rem;
}
.event-row input[type="text"]:focus,
.event-row textarea:focus,
.event-row input[type="number"]:focus { outline: none; background: var(--surface); }
.event-row textarea { min-height: 5.2rem; }
.event-when { padding-top: 0.15rem; width: 100%; }
.event-when-line {
	display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; min-height: 2.6rem;
}
.event-date, .event-time {
	border: 0; background: #eef2f7; border-radius: 0.5rem; padding: 0.55rem 0.7rem;
	font: inherit; font-weight: 700; color: var(--navy-deep); width: auto; cursor: pointer;
}
.event-date:hover, .event-time:hover { background: #e2e8f0; }
.event-date { min-width: 11.6rem; }
.event-time { min-width: 7.4rem; }
.event-times { display: flex; align-items: center; gap: 0.4rem; }
.event-dash { color: var(--muted); font-weight: 700; }
.event-allday {
	display: inline-flex; align-items: center; gap: 0.45rem;
	margin: 0 0 0 auto; font-weight: 700; font-size: 0.88rem;
	color: var(--navy-deep); cursor: pointer;
}
.event-signup-toggle { margin-left: 0; padding-top: 0.55rem; }
.event-through { font-weight: 700; color: var(--muted); font-size: 0.88rem; }
.event-signup-fields { display: grid; gap: 0.4rem; margin-top: 0.4rem; max-width: 32rem; }
.event-composer-foot {
	display: flex; justify-content: flex-end; gap: 0.5rem; flex-shrink: 0;
	padding: 0.75rem 1.15rem; border-top: 1px solid var(--line); background: #f7f9fc;
}
@media (max-width: 700px) {
	.event-allday { margin-left: 0; }
	.event-date { min-width: 0; flex: 1 1 100%; }
}
.handle-label {
	display: block; font-weight: 700; font-size: 0.92rem; margin: 0.9rem 0 0.35rem;
}
.handle-chip {
	margin: 0; display: inline-flex; align-items: center;
	padding: 0.55rem 0.85rem; border-radius: 999px;
	background: var(--surface); color: var(--navy-deep);
	font-weight: 800; letter-spacing: -0.02em; word-break: break-all;
}
.avatar, .org-mark {
	width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
	background: #dce8ff; color: var(--navy); font-weight: 800; overflow: hidden; flex: 0 0 auto;
}
.org-mark.sm, .avatar.sm { width: 36px; height: 36px; border-radius: 11px; font-size: 0.75rem; }
.org-mark img, .avatar img { width: 100%; height: 100%; object-fit: cover; }
.page-head {
	display: flex; justify-content: space-between; gap: 0.75rem; align-items: flex-start;
	flex-wrap: wrap; margin-bottom: 0.7rem;
}
body.app-body .page-head h1 {
	text-shadow: 0 1px 0 rgb(255 255 255 / 0.45);
}
body.app-body .main {
	background: transparent;
}
.page-head h1 { margin-top: 0.05rem; }
.hall-grid { display: grid; gap: 0.75rem; }
@media (min-width: 900px) {
	.hall-grid { grid-template-columns: 1fr 1fr; }
}
.hall-picker .hall-grid { grid-template-columns: 1fr; }
.hall-card-top { display: flex; gap: 0.85rem; align-items: center; min-width: 0; }
.hall-grid .card {
	padding: 1rem 1.05rem 1.05rem; box-shadow: none; border: 1px solid var(--line);
	border-radius: 12px;
}
.hall-grid .card:hover { border-color: rgb(29 59 120 / 0.28); background: #fafbfd; }
.hall-card .actions { margin-top: 0.85rem; }
a.hall-card {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.85rem; align-items: center;
	text-decoration: none; color: inherit;
}
a.hall-card .hall-card-top { grid-column: 1; }
.hall-card-go {
	font-size: 0.82rem; font-weight: 800; color: var(--blue); padding-right: 0.15rem;
}
a.hall-card.is-last { border-color: rgb(29 59 120 / 0.35); box-shadow: 0 0 0 1px rgb(29 59 120 / 0.12); }
.hall-picker-foot {
	display: flex; flex-wrap: wrap; gap: 0.75rem 1.15rem;
	margin-top: 1.4rem; font-size: 0.9rem; font-weight: 600;
}
.hall-picker-foot a { text-decoration: none; }
.app-body.is-chooser .app-dock { display: none; }
.member-list {
	display: flex; flex-direction: column; gap: 0;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
}
.form-block .member-list { border: 0; }
.fh-table-head, .member-row {
	/* Shared tracks + padding so headers sit on the same axes as row text. */
	display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 0.5rem; align-items: center; justify-items: stretch;
	padding: 0.45rem 0.75rem; min-height: 2.2rem;
	box-sizing: border-box;
}
.fh-table-head {
	min-height: 2.2rem;
	background: #f6f8fc; border-bottom: 1px solid var(--line);
	font-size: 0.65rem; font-weight: 800; letter-spacing: 0.07em;
	text-transform: uppercase; color: var(--muted);
}
.fh-table-head > * {
	min-height: 0;
	line-height: 1.2;
}
.fh-table-head .fh-id {
	align-items: center;
}
.fh-table-head .fh-head-mark {
	visibility: hidden;
	pointer-events: none;
	background: transparent;
}
.fh-table-head .fh-head-label {
	display: block;
	line-height: 1.2;
}
.member-row {
	border: 0; border-bottom: 1px solid #eef1f6; border-radius: 0;
	background: #fff; box-shadow: none;
}
.member-list .card.member-row { box-shadow: none; border-radius: 0; border: 0; border-bottom: 1px solid #eef1f6; }
.member-row:last-child { border-bottom: 0; }
a.member-row { text-decoration: none; color: inherit; }
.member-row:hover, .member-list .card.member-row:hover {
	background: #f7f9fc; box-shadow: none; border-color: #eef1f6;
}
.fh-id { display: flex; gap: 0.55rem; align-items: center; min-width: 0; justify-self: start; width: 100%; }
.fh-mark, .member-row .avatar, .member-row .inv-thumb, .member-row .org-mark {
	width: 28px; height: 28px; border-radius: 6px; flex: 0 0 auto;
	display: grid; place-items: center; overflow: hidden;
	background: #e8edf5; color: var(--navy); font-size: 0.65rem; font-weight: 800;
}
.fh-mark img, .member-row .avatar img, .member-row .inv-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fh-id-copy, .member-copy { min-width: 0; }
.member-row-dense .fh-id-copy {
	display: flex;
	flex-wrap: nowrap;
	align-items: baseline;
	gap: 0.35rem;
	min-width: 0;
	overflow: hidden;
}
.member-row-dense .fh-id-copy strong {
	flex: 0 1 auto;
	max-width: 70%;
}
.member-row-dense .fh-inline-meta {
	flex: 0 1 auto;
	margin: 0 !important;
	color: var(--muted);
	font-size: 0.78rem;
	font-weight: 650;
	font-style: normal;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.member-row-dense .fh-inline-meta::before {
	content: "·";
	margin-right: 0.35rem;
	color: #c5cedd;
}
.member-row-dense .m-row-meta.fh-desktop-only {
	display: none;
}
.fh-mid-line {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.fh-mid-phone {
	font-size: 0.76rem;
	color: #6b7c96;
}
.fh-id-copy strong, .member-copy h2, .hall-card h2 {
	display: block; margin: 0; font-size: 0.875rem; font-weight: 800; letter-spacing: -0.02em;
	color: var(--navy-deep); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.member-list.is-compact .fh-table-head,
.member-list.is-compact .member-row {
	padding: 0.28rem 0.55rem; min-height: 2rem; gap: 0.4rem;
}
.member-list.is-compact .fh-mark,
.member-list.is-compact .member-row .avatar,
.member-list.is-compact .member-row .inv-thumb,
.member-list.is-compact .member-row .org-mark {
	width: 24px; height: 24px;
}
.fh-id-copy em, .member-copy p {
	display: block; margin: 0.12rem 0 0; color: var(--muted);
	font-size: 0.8rem; font-weight: 600; font-style: normal;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fh-mid,
.fh-end,
.member-meta {
	display: flex;
	align-items: center;
	justify-content: center;
	justify-self: stretch;
	width: 100%;
	gap: 0.45rem;
	margin: 0;
	min-width: 0;
	text-align: center;
}
.fh-mid {
	flex-direction: column;
	color: var(--muted); font-size: 0.84rem; font-weight: 600;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fh-table-head .fh-mid {
	flex-direction: row;
}
.fh-end,
.member-meta {
	flex-wrap: wrap;
}
.fh-sub {
	display: block; margin-top: 0.12rem; color: var(--muted);
	font-size: 0.75rem; font-weight: 600;
}
.member-list.is-4 .fh-table-head,
.member-list.is-4 .member-row {
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.9fr) minmax(0, 1.1fr) minmax(0, 1fr);
}
.member-list.is-5 .fh-table-head,
.member-list.is-5 .member-row {
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.9fr) minmax(0, 0.7fr) minmax(0, 1fr) minmax(0, 0.9fr);
}
.member-row .fh-id { text-decoration: none; color: inherit; }
.fh-actions { gap: 0.35rem; }
.fh-actions .btn { margin: 0; }
.fh-overflow { position: relative; }
.fh-overflow-menu {
	position: absolute; right: 0; top: calc(100% + 0.3rem); z-index: 8;
	min-width: 13rem; padding: 0.35rem;
	background: #fff; border: 1px solid var(--line); border-radius: 0.8rem;
	box-shadow: var(--shadow);
}
.fh-overflow-menu a,
.fh-overflow-menu button {
	display: flex; width: 100%; align-items: center; gap: 0.45rem;
	margin: 0; padding: 0.45rem 0.55rem; border: 0; border-radius: 0.55rem;
	background: transparent; color: var(--navy-deep); font: inherit; font-weight: 700;
	text-align: left; text-decoration: none; cursor: pointer;
}
.fh-overflow-menu a:hover,
.fh-overflow-menu button:hover { background: #eef3fb; }
.fh-overflow-menu .is-danger { color: var(--danger, #b42318); }
.fh-overflow-menu form { margin: 0; }
.scr-table-mark { background: #12254d; color: #fff; }
.member-row form { margin: 0; }
.list-kicker {
	margin: 0; font-size: 0.68rem; font-weight: 800;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.list-kicker-incident { color: #9f1239; }
.list-kicker-event { color: #1d3b78; }
.list-kicker-update { color: #0f766e; }
@media (max-width: 760px) {
	.fh-table-head { display: none; }
	.fh-table-head, .member-row,
	.member-list.is-4 .fh-table-head, .member-list.is-4 .member-row,
	.member-list.is-5 .fh-table-head, .member-list.is-5 .member-row {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.fh-mid { display: none; }
}
.status {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-size: 0.78rem; font-weight: 800; color: var(--muted); white-space: nowrap;
}
.status i {
	width: 0.5rem; height: 0.5rem; border-radius: 99px; background: #94a3b8; flex: 0 0 auto;
}
.status-live { color: var(--ok); }
.status-live i { background: #12b76a; box-shadow: 0 0 0 4px rgb(18 183 106 / 0.18); }
.status-draft { color: var(--muted); }
.status-warn { color: var(--gold); }
.status-warn i { background: #c98512; box-shadow: 0 0 0 4px rgb(201 133 18 / 0.18); }
.pill {
	display: inline-flex; align-items: center; border-radius: 999px; padding: 0.22rem 0.65rem;
	font-size: 0.72rem; font-weight: 800; background: #e8edf5; color: var(--navy-deep);
}
.pill-warn { background: #fff4d6; color: var(--gold); }
.pill-ok { background: #d1fadf; color: var(--ok); }
.pill-muted { background: #e8edf5; color: var(--muted); }
.stat-row { display: grid; gap: 0.5rem; margin-bottom: 0.75rem; }
@media (min-width: 800px) { .stat-row { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .stat-row:has(.stat:nth-child(4)) { grid-template-columns: repeat(4, 1fr); } }
.stat span { display: inline-flex; align-items: center; gap: 0.28rem; color: var(--muted); font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; }
.stat span .ms { font-size: 0.95rem; text-transform: none; letter-spacing: normal; }
.stat strong { display: block; font-size: 1.35rem; margin: 0.1rem 0 0.3rem; color: var(--navy-deep); }
.stat a { font-weight: 800; text-decoration: none; font-size: var(--text-sm); }

/* Compact department overview — fit one desktop viewport */
.dash-board { display: grid; gap: 0.5rem; }
.dash-metrics {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.35rem;
}
@media (min-width: 900px) {
	.dash-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.dash-metric {
	display: grid;
	gap: 0.02rem;
	padding: 0.35rem 0.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}
.dash-metric:hover,
.dash-metric:focus-visible {
	border-color: rgb(29 59 120 / 0.28);
	background: #f8fafd;
}
.dash-metric span {
	color: var(--muted);
	font-size: 0.65rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.dash-metric strong {
	font-size: 1.05rem;
	line-height: 1.1;
	color: var(--navy-deep);
	font-weight: 800;
	letter-spacing: -0.03em;
}
.dash-metric-site strong {
	font-size: 0.78rem;
	letter-spacing: -0.01em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dash-columns {
	display: grid;
	gap: 0.5rem;
}
@media (min-width: 900px) {
	.dash-columns { grid-template-columns: 1.15fr 1fr; }
}
.dash-panel {
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	padding: 0.45rem 0.55rem 0.5rem;
	min-width: 0;
}
.dash-panel-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.4rem;
	margin-bottom: 0.2rem;
}
.dash-panel-head h2 {
	margin: 0;
	font-size: var(--text-sm);
}
.dash-panel-head a {
	font-size: var(--text-xs);
	font-weight: 750;
	text-decoration: none;
	white-space: nowrap;
}
.dash-empty {
	margin: 0.1rem 0 0.25rem;
	color: var(--muted);
	font-size: var(--text-sm);
}
.dash-attention,
.dash-agenda {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
}
.dash-attention li,
.dash-agenda li {
	border-top: 1px solid #eef1f6;
}
.dash-attention li:first-child,
.dash-agenda li:first-child { border-top: 0; }
.dash-attention a,
.dash-agenda a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.35rem;
	align-items: center;
	padding: 0.22rem 0.05rem;
	text-decoration: none;
	color: inherit;
	min-height: 1.85rem;
}
.dash-agenda a { grid-template-columns: auto minmax(0, 1fr); }
.dash-attention a:hover,
.dash-agenda a:hover { background: #f7f9fc; }
.dash-attention strong {
	font-size: 0.95rem;
	color: var(--navy-deep);
	min-width: 1.4rem;
}
.dash-attention span,
.dash-agenda span:last-child {
	display: grid;
	gap: 0.02rem;
	min-width: 0;
}
.dash-attention em,
.dash-agenda strong {
	font-style: normal;
	font-size: var(--text-sm);
	font-weight: 750;
	color: var(--navy-deep);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dash-attention small,
.dash-agenda em {
	font-style: normal;
	font-size: var(--text-xs);
	color: var(--muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.dash-attention-go {
	color: #9aa6b8;
	font-size: 0.95rem;
}
.dash-goto {
	display: none;
	flex-wrap: wrap;
	gap: 0.28rem;
}
@media (max-width: 959px) {
	.dash-goto { display: flex; }
	.dash-board { gap: 0.65rem; }
	.dash-metrics { gap: 0.45rem; }
	.dash-metric {
		padding: 0.55rem 0.65rem;
		border-radius: 0.85rem;
		background: var(--glass-bg);
		-webkit-backdrop-filter: saturate(160%) blur(14px);
		backdrop-filter: saturate(160%) blur(14px);
		box-shadow: 0 1px 0 rgb(255 255 255 / 0.5) inset;
	}
	.dash-panel {
		padding: 0.65rem 0.7rem 0.7rem;
		border-radius: 0.95rem;
		background: var(--glass-bg);
		-webkit-backdrop-filter: saturate(160%) blur(14px);
		backdrop-filter: saturate(160%) blur(14px);
		box-shadow: 0 1px 0 rgb(255 255 255 / 0.5) inset;
	}
	.dash-goto a {
		min-height: 2.15rem;
		padding: 0.35rem 0.7rem;
		border-radius: 0.85rem;
		background: var(--glass-bg);
		-webkit-backdrop-filter: saturate(160%) blur(12px);
		backdrop-filter: saturate(160%) blur(12px);
	}
}
.dash-goto a {
	display: inline-flex;
	align-items: center;
	gap: 0.22rem;
	min-height: 1.85rem;
	padding: 0.15rem 0.5rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: #fff;
	color: var(--navy-deep);
	text-decoration: none;
	font-size: var(--text-xs);
	font-weight: 750;
}
.dash-goto a:hover,
.dash-goto a:focus-visible {
	border-color: rgb(29 59 120 / 0.28);
	background: #f4f7fd;
}
.dash-goto .ms { font-size: 0.95rem; color: var(--navy); }

/* —— Home overview (desktop + shared base) ——
   Mobile polish lives in mobile-ui.css @media (max-width: 959px).
   Desktop gets a card-based two-column board; phone keeps the compact list rhythm. */
.home {
	display: grid;
	gap: 0.85rem;
}
.home-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.55rem;
}
.home-stat {
	display: grid;
	gap: 0.12rem;
	min-width: 0;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	text-decoration: none;
	color: inherit;
}
.home-stat:hover,
.home-stat:focus-visible {
	border-color: rgb(29 59 120 / 0.28);
	background: #f8fafd;
}
.home-stat span {
	color: var(--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.home-stat strong {
	font-size: 1.45rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--navy-deep);
}
.home-site {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 0.95rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	text-decoration: none;
	color: inherit;
}
.home-site:hover,
.home-site:focus-visible {
	border-color: rgb(29 59 120 / 0.28);
	background: #f8fafd;
}
.home-site span {
	color: var(--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.home-site strong {
	font-size: 0.92rem;
	font-weight: 750;
	color: var(--navy);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 70%;
}
.home-section {
	display: grid;
	gap: 0.45rem;
	min-width: 0;
}
.home-section-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
}
.home-section-head h2 {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
}
.home-section-head a {
	font-size: var(--text-xs);
	font-weight: 750;
	color: var(--navy);
	text-decoration: none;
	white-space: nowrap;
}
.home-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	overflow: hidden;
}
.home-list > li + li,
.home-list > a + a {
	border-top: 1px solid #eef1f6;
}
.home-list > a,
.home-list > li > a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 0.9rem;
	min-height: 3.25rem;
	text-decoration: none;
	color: inherit;
}
.home-list > a:hover,
.home-list > li > a:hover {
	background: #f8fafd;
}
.home-list .m-row-copy {
	display: grid;
	gap: 0.1rem;
	min-width: 0;
}
.home-list .m-row-copy strong {
	font-size: 0.92rem;
	font-weight: 750;
	color: var(--navy-deep);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.home-list .m-row-copy em {
	font-style: normal;
	font-size: 0.8rem;
	font-weight: 650;
	color: var(--muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.home-list .home-metric {
	min-width: 2.4rem;
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--navy-deep);
	text-align: right;
}
.home-list .event-dot {
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	flex: 0 0 auto;
}
.home-list .m-row-go {
	color: #9aa6b8;
	font-size: 1.1rem;
}
.home-empty {
	margin: 0;
	padding: 0.95rem 1rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	color: var(--muted);
	font-size: var(--text-sm);
}
.home-empty a {
	font-weight: 750;
	color: var(--navy);
	text-decoration: none;
}
.home-actions {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
	gap: 0.55rem;
}
.home-actions a {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 0.35rem;
	min-height: 4.5rem;
	padding: 0.75rem 0.5rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	text-decoration: none;
	color: var(--navy-deep);
	font-size: 0.8rem;
	font-weight: 750;
	text-align: center;
}
.home-actions a:hover,
.home-actions a:focus-visible {
	border-color: rgb(29 59 120 / 0.28);
	background: #f8fafd;
}
.home-actions .ms {
	font-size: 1.45rem;
	color: var(--navy);
}

/* —— Customizable overview board —— */
.ov-shell { display: grid; gap: 0.75rem; }
.ov-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 0.95rem;
	border: 1px solid rgb(29 59 120 / 0.18);
	border-radius: var(--radius);
	background: linear-gradient(180deg, #f7f9fc, #eef3fa);
}
.ov-toolbar-copy {
	display: grid;
	gap: 0.15rem;
	min-width: 0;
}
.ov-toolbar-copy strong {
	font-size: 0.92rem;
	color: var(--navy-deep);
}
.ov-toolbar-copy span {
	color: var(--muted);
	font-size: var(--text-sm);
}
.ov-board {
	position: relative;
	width: 100%;
	min-height: calc(var(--ov-row, 64px) * 8);
}
.ov-tile {
	position: absolute;
	left: calc(var(--ov-x) * 100% / var(--ov-cols));
	top: calc(var(--ov-y) * var(--ov-row));
	width: calc(var(--ov-w) * 100% / var(--ov-cols) - 0.55rem);
	height: calc(var(--ov-h) * var(--ov-row) - 0.55rem);
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	overflow: hidden;
	box-sizing: border-box;
}
.ov-tile.is-dragging {
	z-index: 5;
	box-shadow: 0 10px 28px rgb(15 23 42 / 0.14);
	border-color: rgb(29 59 120 / 0.35);
}
.ov-shell.is-editing .ov-tile {
	cursor: default;
}
.ov-tile-chrome {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.45rem;
	border-bottom: 1px solid #e8edf5;
	background: #f7f9fc;
	user-select: none;
}
.ov-tile-chrome strong {
	flex: 1;
	min-width: 0;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.ov-tile-drag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 0.35rem;
	color: var(--navy);
	cursor: grab;
	touch-action: none;
}
.ov-tile-drag:active { cursor: grabbing; }
.ov-tile-remove {
	border: 0;
	background: transparent;
	color: var(--muted);
	font-size: 1.1rem;
	line-height: 1;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 0.35rem;
	cursor: pointer;
}
.ov-tile-remove:hover { background: #fee2e2; color: #991b1b; }
.ov-tile-body {
	min-height: 0;
	overflow: auto;
	display: grid;
	align-content: start;
}
.ov-tile-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.65rem 0.85rem 0.25rem;
}
.ov-tile-head h2 {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
}
.ov-tile-head a {
	font-size: var(--text-xs);
	font-weight: 750;
	color: var(--navy);
	text-decoration: none;
}
.ov-stat,
.ov-site,
.ov-ops {
	display: grid;
	gap: 0.15rem;
	min-height: 100%;
	padding: 0.75rem 0.9rem;
	text-decoration: none;
	color: inherit;
	align-content: center;
}
.ov-stat:hover,
.ov-site:hover,
.ov-ops:hover {
	background: #f8fafd;
}
.ov-stat span,
.ov-site span,
.ov-ops span {
	color: var(--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.ov-stat strong,
.ov-ops strong {
	font-size: 1.45rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--navy-deep);
}
.ov-site {
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	justify-content: space-between;
}
.ov-site strong {
	font-size: 0.92rem;
	font-weight: 750;
	color: var(--navy);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: right;
}
.ov-ops em {
	color: var(--muted);
	font-style: normal;
	font-size: var(--text-sm);
}
.ov-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ov-list > li + li { border-top: 1px solid #eef1f6; }
.ov-list a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.65rem;
	align-items: center;
	padding: 0.7rem 0.85rem;
	text-decoration: none;
	color: inherit;
}
.ov-list a:hover { background: #f8fafd; }
.ov-metric {
	min-width: 2.2rem;
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--navy-deep);
	text-align: center;
}
.ov-empty {
	margin: 0;
	padding: 0.85rem;
	color: var(--muted);
	font-size: var(--text-sm);
}
.ov-empty a {
	font-weight: 750;
	color: var(--navy);
	text-decoration: none;
}
.ov-actions {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
	gap: 0.45rem;
	padding: 0.55rem 0.7rem 0.75rem;
}
.ov-actions a {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 0.3rem;
	min-height: 3.8rem;
	padding: 0.55rem 0.35rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	text-decoration: none;
	color: var(--navy-deep);
	font-size: 0.75rem;
	font-weight: 750;
	text-align: center;
}
.ov-actions a:hover { border-color: rgb(29 59 120 / 0.28); background: #f8fafd; }
.ov-actions .ms { font-size: 1.3rem; color: var(--navy); }
.ov-resize {
	position: absolute;
	right: 0.15rem;
	bottom: 0.15rem;
	width: 0.9rem;
	height: 0.9rem;
	border-right: 2px solid rgb(29 59 120 / 0.45);
	border-bottom: 2px solid rgb(29 59 120 / 0.45);
	cursor: nwse-resize;
	touch-action: none;
}
.ov-picker {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: min(28rem, calc(100vw - 2rem));
}
.ov-picker::backdrop { background: rgb(15 23 42 / 0.45); }
.ov-picker-card {
	display: grid;
	gap: 0.75rem;
	padding: 1rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: calc(var(--radius) + 2px);
	background: #fff;
	box-shadow: 0 18px 40px rgb(15 23 42 / 0.18);
}
.ov-picker-card header h2 {
	margin: 0 0 0.2rem;
	font-size: 1.05rem;
}
.ov-picker-card header p {
	margin: 0;
	color: var(--muted);
	font-size: var(--text-sm);
}
.ov-picker-list {
	display: grid;
	gap: 0.45rem;
	max-height: min(50vh, 22rem);
	overflow: auto;
}
.ov-picker-item {
	display: grid;
	gap: 0.15rem;
	text-align: left;
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	cursor: pointer;
}
.ov-picker-item:hover { border-color: rgb(29 59 120 / 0.3); background: #f8fafd; }
.ov-picker-item strong { color: var(--navy-deep); }
.ov-picker-item span { color: var(--muted); font-size: var(--text-sm); }
.ov-picker-card footer { display: flex; justify-content: flex-end; }

@media (max-width: 959px) {
	.ov-board {
		height: auto !important;
		display: grid;
		gap: 0.75rem;
	}
	.ov-tile {
		position: relative !important;
		left: auto !important;
		top: auto !important;
		width: auto !important;
		height: auto !important;
		min-height: 0;
	}
	.ov-tile-chrome,
	.ov-resize { display: none !important; }
}

@media (min-width: 960px) {
	.home {
		gap: 1rem;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		align-items: start;
	}
	.home-stats {
		grid-column: 1 / -1;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.65rem;
	}
	.home-stat {
		padding: 0.85rem 1rem;
		min-height: 4.4rem;
	}
	.home-stat strong { font-size: 1.65rem; }
	.home-site {
		grid-column: 1 / -1;
		padding: 0.85rem 1.1rem;
	}
	.home-section {
		padding: 0.85rem 0.95rem 0.95rem;
		border: 1px solid var(--line);
		border-radius: var(--radius);
		background: #fff;
		gap: 0.55rem;
	}
	.home-list {
		border: 0;
		border-radius: 0;
		background: transparent;
	}
	.home-list > a,
	.home-list > li > a {
		padding-left: 0;
		padding-right: 0;
		border-radius: 0.5rem;
	}
	.home-list > li + li,
	.home-list > a + a { border-top-color: #eef1f6; }
	.home-empty {
		border: 0;
		padding: 0.35rem 0;
		background: transparent;
	}
	.home-actions {
		grid-column: 1 / -1;
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

.empty-card { text-align: center; padding: 1.25rem 1rem; }
.empty-card h2 { margin-bottom: 0.35rem; }
.empty-card p { max-width: 34rem; margin: 0 auto 1rem; }
.empty-card .actions { justify-content: center; }
.invite-link { margin-top: 0.45rem; font-weight: 700; word-break: break-all; }
.check-row, .terms-row {
	display: flex; gap: 0.5rem; align-items: flex-start; font-weight: 700; margin-top: 0.55rem;
	cursor: pointer; font-size: var(--text-sm);
}
.check-row { align-items: center; }
.ap-page .check-row:has(em) { align-items: flex-start; }
.ap-page .check-row span { min-width: 0; }
.ap-page .check-row em {
	display: block; font-style: normal; font-weight: 650;
	color: var(--muted); font-size: 0.88rem; line-height: 1.35;
}
#inv-item .inv-stock-block { display: none; gap: 0.35rem; margin-top: 0.65rem; }
#inv-item:has([name="is_multiple"]:checked) .inv-stock-block { display: grid; }
input[type="checkbox"] {
	appearance: none; -webkit-appearance: none; position: static; width: 1.2rem; height: 1.2rem;
	margin: 0.1rem 0 0; flex: 0 0 auto; display: inline-grid; place-content: center;
	border: 2px solid #b7c3d6; border-radius: 0.35rem; background: #fff; cursor: pointer;
	clip: auto; overflow: visible;
}
input[type="checkbox"]::after {
	content: ""; width: 0.42rem; height: 0.22rem; border: solid #fff;
	border-width: 0 0 2.5px 2.5px; transform: rotate(-45deg) scale(0); margin-bottom: 0.12rem;
}
input[type="checkbox"]:checked { background: var(--navy); border-color: var(--navy); }
input[type="checkbox"]:checked::after { transform: rotate(-45deg) scale(1); }
input[type="checkbox"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.switch {
	display: flex; gap: 0.9rem; align-items: flex-start; cursor: pointer;
	padding: 0.95rem 1rem; border: 1px solid var(--line); border-radius: 1rem;
	background: #fff; margin: 0;
}
.switch:hover { border-color: rgb(47 111 237 / 0.4); }
.switch.is-on, .switch:has(input:checked) { border-color: rgb(29 59 120 / 0.35); background: #f4f7fd; }
.switch input[type="checkbox"] {
	width: 2.55rem; height: 1.5rem; border-radius: 999px; border: 0; background: #c5d0e0;
	display: block; position: relative; margin: 0.1rem 0 0; padding: 0; place-content: unset;
}
.switch input[type="checkbox"]::after {
	content: ""; position: absolute; top: 0.18rem; left: 0.18rem;
	width: 1.14rem; height: 1.14rem; border: 0; border-radius: 99px; margin: 0;
	background: #fff; transform: none; box-shadow: 0 1px 3px rgb(18 37 77 / 0.25);
}
.switch input[type="checkbox"]:checked { background: var(--navy); }
.switch input[type="checkbox"]:checked::after { left: 1.22rem; transform: none; }
.switch-copy { display: grid; gap: 0.15rem; }
.switch-copy strong { font-size: 0.95rem; color: var(--navy-deep); }
.switch-copy span { color: var(--muted); font-size: 0.82rem; font-weight: 600; line-height: 1.35; }
.form-stack { padding: 1.35rem; }
.event-sections { display: grid; gap: 1rem; }
.when-grid { display: grid; gap: 0.8rem; }
@media (min-width: 700px) {
	.when-grid.times { grid-template-columns: 1fr 1fr; }
}
.cal-board {
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	box-shadow: none; overflow: hidden; margin: 0 0 0.75rem;
}
.cal-toolbar {
	display: flex; justify-content: space-between; align-items: center; gap: 0.65rem;
	padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--line); background: #fbfcfe;
}
.cal-toolbar-lead { display: flex; align-items: center; gap: 0.55rem; min-width: 0; }
.cal-toolbar h2 { margin: 0; font-size: 1.05rem; letter-spacing: -0.03em; }
.cal-toolbar-nav { display: flex; gap: 0.3rem; }
.cal-nav {
	width: 1.85rem; height: 1.85rem; display: grid; place-items: center;
	border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--navy-deep);
	background: #fff; text-decoration: none;
}
.cal-nav:hover { border-color: var(--navy); background: #f4f7fd; }
.cal-weekdays, .cal-weeks {
	display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
}
.cal-dow {
	text-align: center; font-size: 0.7rem; font-weight: 800; color: var(--muted);
	letter-spacing: 0.08em; text-transform: uppercase; padding: 0.55rem 0.2rem;
	background: #f7f9fc; border-bottom: 1px solid var(--line);
}
.cal-cell {
	min-height: 5.4rem; background: #fff; border-right: 1px solid #e8edf5;
	border-bottom: 1px solid #e8edf5; padding: 0.3rem 0.3rem 0.4rem;
	display: flex; flex-direction: column; gap: 0.15rem;
}
.cal-cell:nth-child(7n) { border-right: 0; }
.cal-cell.is-out { background: #f8fafc; }
.cal-cell.is-out .cal-daynum span { color: #94a3b8; }
.cal-cell.is-today { background: #f5f8ff; }
.cal-cell.muted { background: transparent; border-color: transparent; }
.cal-cell.today { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue); }
.cal-daynum {
	display: flex; justify-content: space-between; align-items: center;
	font-weight: 800; color: var(--navy-deep); min-height: 1.5rem;
}
.cal-cell.is-today .cal-daynum span {
	display: grid; place-items: center; width: 1.55rem; height: 1.55rem;
	padding: 0; border-radius: 999px; background: var(--navy); color: #fff; font-size: 0.82rem;
}
.cal-add {
	color: var(--navy); background: #eef3fb; border: 0; font: inherit; font-size: 1rem;
	line-height: 1; cursor: pointer; width: 1.4rem; height: 1.4rem; border-radius: 0.4rem;
	opacity: 0; transition: opacity 0.12s ease;
}
.cal-cell:hover .cal-add, .cal-add:focus-visible { opacity: 1; }
.cal-event {
	display: grid; width: 100%; font: inherit; font-size: 0.72rem; font-weight: 800;
	text-align: left; text-decoration: none; border: 0; cursor: pointer;
	border-radius: 0.32rem; padding: 0.18rem 0.4rem 0.2rem 0.42rem;
	border-left: 3px solid currentColor; line-height: 1.2;
	white-space: nowrap; overflow: hidden;
}
.cal-event em {
	display: block; font-style: normal; font-weight: 700; font-size: 0.64rem;
	letter-spacing: 0.01em; opacity: 0.78;
}
.cal-event span { display: block; overflow: hidden; text-overflow: ellipsis; }
.cal-event.is-public { box-shadow: inset 0 0 0 1px rgb(15 23 42 / 0.05); }
.cal-event.color-navy { background: #dbe4f5; color: #1d3b78; }
.cal-event.color-coral { background: #fde8ea; color: #9f1239; }
.cal-event.color-gold { background: #fff4d6; color: #854d0e; }
.cal-event.color-teal { background: #d9f5f1; color: #0f766e; }
.cal-event.color-blue { background: #dbeafe; color: #1d4ed8; }
.cal-event.color-grape { background: #ede9fe; color: #5b21b6; }
.cal-event.color-forest { background: #dcfce7; color: #166534; }
.cal-event.color-slate { background: #e8edf3; color: #334155; }
.cal-agenda {
	background: #fff; border: 1px solid rgb(18 37 77 / 0.08); border-radius: 1.1rem;
	box-shadow: var(--shadow); padding: 1.05rem 1.15rem 0.85rem;
}
.cal-agenda-head {
	display: flex; justify-content: space-between; align-items: baseline; gap: 0.8rem;
	margin: 0 0 0.55rem;
}
.cal-agenda-head h2 { margin: 0; font-size: 1.08rem; }
.cal-agenda-head p { margin: 0; color: var(--muted); font-weight: 700; font-size: 0.84rem; }
.cal-agenda-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.35rem; }
.cal-agenda-item {
	display: grid; grid-template-columns: 4.4rem minmax(0, 1fr); gap: 0.9rem; align-items: center;
	width: 100%; padding: 0.55rem 0.55rem 0.55rem 0.4rem; border: 0; border-radius: 0.85rem;
	background: none; font: inherit; text-align: left; cursor: pointer; color: inherit;
}
.cal-agenda-item:hover { background: #f5f8ff; }
.cal-agenda-date {
	display: grid; place-items: center; text-align: center; border-radius: 0.8rem;
	padding: 0.4rem 0.2rem; min-height: 3.6rem; border-left: 3px solid currentColor;
}
.cal-agenda-date em {
	display: block; font-style: normal; font-size: 0.66rem; font-weight: 800;
	letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.78;
}
.cal-agenda-date strong { display: block; font-size: 1.28rem; line-height: 1; margin-top: 0.08rem; }
.cal-agenda-copy { min-width: 0; display: grid; gap: 0.12rem; }
.cal-agenda-time { margin: 0; color: var(--muted); font-size: 0.8rem; font-weight: 700; }
.cal-agenda-copy strong { color: var(--navy-deep); font-size: 0.98rem; }
.cal-agenda-copy p { margin: 0; color: var(--muted); font-size: 0.84rem; }
.cal-agenda-date.color-navy { background: #dbe4f5; color: #1d3b78; }
.cal-agenda-date.color-coral { background: #fde8ea; color: #9f1239; }
.cal-agenda-date.color-gold { background: #fff4d6; color: #854d0e; }
.cal-agenda-date.color-teal { background: #d9f5f1; color: #0f766e; }
.cal-agenda-date.color-blue { background: #dbeafe; color: #1d4ed8; }
.cal-agenda-date.color-grape { background: #ede9fe; color: #5b21b6; }
.cal-agenda-date.color-forest { background: #dcfce7; color: #166534; }
.cal-agenda-date.color-slate { background: #e8edf3; color: #334155; }
.event-row .event-switch { margin: 0.15rem 0; padding: 0.45rem 0.55rem; }
.event-view-flags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 0.55rem; }
.event-flag {
	display: inline-flex; align-items: center; border-radius: 999px;
	padding: 0.18rem 0.55rem; font-size: 0.72rem; font-weight: 800;
	background: #eef2f7; color: var(--navy-deep);
}
.event-flag.is-public { background: #dbeafe; color: #1d4ed8; }
.event-dot {
	width: 0.7rem; height: 0.7rem; border-radius: 99px; flex: 0 0 auto; margin-top: 0.35rem;
}
.event-dot.color-navy { background: #1d3b78; }
.event-dot.color-coral { background: #e23c4a; }
.event-dot.color-gold { background: #c98512; }
.event-dot.color-teal { background: #0f9d9a; }
.event-dot.color-blue { background: #2f6fed; }
.event-dot.color-grape { background: #6d28d9; }
.event-dot.color-forest { background: #067a46; }
.event-dot.color-slate { background: #5b6578; }
.event-list, .signup-list, .plain-list { list-style: none; padding: 0; margin: 0; }
.event-list li + li { border-top: 1px solid var(--line); }
.event-list li a, .event-list-btn {
	display: flex; justify-content: flex-start; gap: 0.75rem; align-items: flex-start;
	padding: 0.7rem 0.5rem; text-decoration: none; color: inherit;
}
.event-list-btn {
	width: 100%; background: none; border: 0; border-radius: 0.65rem;
	text-align: left; font: inherit; cursor: pointer;
}
.event-list-btn:hover { background: #f4f7fd; }
.signup-list { margin-top: 0.95rem; }
.signup-list li {
	display: flex; justify-content: space-between; gap: 0.75rem; align-items: center;
	padding: 0.75rem 0; border-bottom: 1px solid var(--line);
}
.signup-list li:last-child { border-bottom: 0; }
.modal-root {
	position: fixed; inset: 0; z-index: 80; display: none !important; place-items: center; padding: 1rem;
}
.modal-root.is-open { display: grid !important; }
.modal-root[hidden] { display: none !important; }
.modal-backdrop { position: absolute; inset: 0; background: rgb(15 31 71 / 0.46); }
.modal-card {
	position: relative; z-index: 1; width: min(960px, calc(100vw - 2rem)); max-height: min(92vh, 920px);
	display: flex; flex-direction: column; overflow: hidden;
	background: #fff; border-radius: 1.1rem; box-shadow: 0 24px 60px rgb(18 37 77 / 0.22);
	padding: 1.5rem 1.7rem 1.6rem; transform: translateZ(0);
}
.modal-card[hidden] { display: none !important; }
.modal-scroll {
	flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain;
	scrollbar-width: thin; scrollbar-color: #b7c2d1 transparent;
}
.modal-scroll::-webkit-scrollbar { width: 10px; }
.modal-scroll::-webkit-scrollbar-track {
	background: transparent; margin: 0.65rem 0;
}
.modal-scroll::-webkit-scrollbar-thumb {
	background: #c5ceda; border-radius: 99px;
	border: 3px solid transparent; background-clip: padding-box;
}
.modal-scroll::-webkit-scrollbar-thumb:hover {
	background: #9aa8ba; border: 3px solid transparent; background-clip: padding-box;
}
.modal-composer { width: min(960px, calc(100vw - 2rem)); padding: 0; overflow: hidden; }
.modal-confirm { width: min(440px, calc(100vw - 2rem)); }
.modal-picker { width: min(1040px, calc(100vw - 2rem)); padding: 0; }
.modal-picker-head {
	padding: 1.35rem 1.6rem 0.4rem; padding-right: 3.4rem;
}
.modal-picker-head h2 { margin: 0 0 0.25rem; }
.modal-picker-head .help { margin: 0; }
.modal-picker-body { padding: 1rem 1.5rem 1.6rem; }
.wb-picker-name {
	display: grid; gap: 0.4rem; max-width: 28rem; margin: 0 0 1rem;
	font-weight: 700; color: var(--navy-deep);
}
.wb-picker-name input {
	width: 100%; margin: 0; border: 1px solid var(--line); border-radius: 0.7rem;
	padding: 0.7rem 0.85rem; font: inherit; font-weight: 600; background: #f7f9fc;
}
.wb-picker-name input:focus {
	outline: none; border-color: var(--navy); background: #fff;
	box-shadow: 0 0 0 3px rgb(29 59 120 / 0.12);
}
.wb-picker-grid {
	display: grid; gap: 0.75rem;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.wb-picker-grid .wb-insert-card, .wb-picker-grid .wb-template {
	min-height: 7.2rem; padding: 1rem 1.05rem; border-radius: 12px;
	align-content: start;
}
.wb-picker-grid .wb-insert-card { grid-template-columns: 22px 1fr; gap: 0.2rem 0.7rem; }
.wb-picker-grid .wb-insert-card svg { width: 22px; height: 22px; }
.wb-picker-grid .wb-template strong, .wb-picker-grid .wb-insert-card strong { font-size: 0.98rem; }
.modal-composer .event-composer {
	border: 0; box-shadow: none; display: flex; flex-direction: column;
	flex: 1 1 auto; min-height: 0; overflow: hidden;
}
.modal-composer .event-title { padding-right: 3rem !important; }
.modal-composer .eyebrow { padding: 1.2rem 1.4rem 0.15rem; margin: 0; }
.modal-composer .alert { margin: 0.8rem 1.2rem 0; }
.modal-x {
	position: absolute; top: 0.7rem; right: 0.8rem; width: 2.1rem; height: 2.1rem;
	border: 0; background: #f3f6fb; border-radius: 999px; font-size: 1.3rem; line-height: 1;
	color: var(--navy); cursor: pointer; z-index: 2;
}
.modal-actions { display: flex; gap: 0.55rem; flex-wrap: wrap; margin-top: 1rem; }
.event-view-card { padding: 0; }
.event-view-card .modal-scroll { padding-bottom: 1.35rem; }
.event-view-bar { height: 8px; margin: 0; flex-shrink: 0; border-radius: 1.2rem 1.2rem 0 0; background: var(--navy); }
.event-view-head, .event-view-body, .event-view-tools { padding-left: 1.4rem; padding-right: 1.4rem; }
.event-view-head { padding-top: 1.15rem; padding-right: 3.2rem; }
.event-view-head h2 { margin: 0 0 0.3rem; }
.event-view-head .lede { margin: 0; }
.event-view-body { margin-top: 0.85rem; display: grid; gap: 0.7rem; }
.event-view-tools { margin-top: 1rem; }
.event-view-signup {
	margin: 1.15rem 1.4rem 0; padding: 1.05rem 1.1rem 1.15rem;
	border: 1px solid var(--line); border-radius: 1rem; background: #f7f9fc;
}
.event-view-signup h3 { margin: 0 0 0.35rem; }
.event-view-signup > p { margin: 0.15rem 0 0; }
#event-view-signup-form { display: grid; gap: 0.55rem; margin: 1rem 0 0; }
#event-view-signup-form label { margin: 0; }
#event-view-signup-form .actions { margin: 0.2rem 0 0; }
#event-view-mysignup { margin: 0.85rem 0 0.35rem; }
#event-view-cancel-mine { margin: 0 0 0.2rem; }
#event-view-nosignup { padding: 0 1.4rem; margin: 0.9rem 0 0; }
.event-color-label { margin: 0.55rem 0 0.4rem; font-weight: 700; font-size: 0.88rem; color: var(--navy-deep); }
.event-colors { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.event-color { cursor: pointer; margin: 0; }
.event-color input { position: absolute; opacity: 0; pointer-events: none; }
.event-color span {
	display: block; width: 1.35rem; height: 1.35rem; border-radius: 99px;
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px transparent;
}
.event-color:hover span, .event-color:has(input:checked) span {
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--navy);
}
body.modal-open { overflow: hidden; }
.event-list strong { display: block; color: var(--navy-deep); }
.event-list-btn > span:not(.event-dot),
.event-list li a > span:not(.event-dot) { display: grid; gap: 0.15rem; min-width: 0; }
.event-list em,
.event-list-btn > span:not(.event-dot) span,
.event-list li a > span:not(.event-dot) span {
	display: block; color: var(--muted); font-size: 0.85rem; font-style: normal;
}
.guest-signup {
	display: grid; gap: 1rem; margin: 1.2rem 0 0; padding: 1.1rem 1.1rem 1.15rem;
	border: 1px solid var(--line); border-radius: 0.95rem; background: #fff;
}
.guest-signup-title { margin: 0; font-weight: 800; color: var(--navy-deep); }
.guest-signup > .help { margin: -0.45rem 0 0; }
.guest-signup label { margin: 0; display: grid; gap: 0.45rem; font-weight: 700; }
.guest-signup input { width: 100%; margin: 0; }
.guest-signup-row { display: grid; gap: 1rem; }
@media (min-width: 560px) {
	.guest-signup-row { grid-template-columns: 1fr 1fr; align-items: start; }
}
.guest-signup .btn { margin-top: 0.15rem; justify-self: start; }
.vcard-upload { min-height: auto; flex-direction: row; padding: 0.85rem 1rem; margin-bottom: 1rem; }
@media (max-width: 700px) {
	.cal-cell { min-height: 5.1rem; }
	.cal-event em { display: none; }
	.cal-toolbar { flex-wrap: wrap; }
	.member-meta { width: 100%; justify-content: flex-start; }
	.member-copy h2, .hall-card h2, .fh-id-copy strong { white-space: normal; }
}
.overview { display: grid; gap: 1rem; }
@media (min-width: 800px) { .overview { grid-template-columns: 2fr 1fr; } }
.kv { display: grid; gap: 0.35rem; }
.kv span { color: var(--muted); font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.menu { position: relative; }
.menu details { position: relative; }
.menu summary {
	list-style: none; cursor: pointer; font-weight: 700;
	display: flex; align-items: center; gap: 0.5rem;
}
.menu summary::-webkit-details-marker { display: none; }
.menu .panel {
	position: absolute; right: 0; top: 120%; background: #fff; border: 1px solid var(--line);
	border-radius: 0.9rem; min-width: 240px; box-shadow: var(--shadow); padding: 0.4rem; z-index: 5;
}
.menu .panel a, .menu .panel button {
	display: block; width: 100%; text-align: left; background: none; border: 0; padding: 0.65rem 0.75rem;
	border-radius: 0.6rem; font: inherit; font-weight: 700; color: var(--navy-deep); text-decoration: none; cursor: pointer;
}
.pending { font-size: 0.82rem; color: var(--gold); font-weight: 700; }
.site-host { font-size: 1.2rem; font-weight: 800; color: var(--navy-deep); letter-spacing: -0.03em; word-break: break-all; }
.setup-steps { margin: 0.8rem 0 1rem; padding-left: 1.2rem; color: var(--navy-deep); }
.setup-steps li { margin: 0.45rem 0; line-height: 1.45; }
.setup-steps code { font-size: 0.82rem; }
.site-hero {
	min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem;
	background: linear-gradient(180deg, var(--navy), var(--navy-deep)); color: #fff; text-align: center;
}
.public-body { margin: 0; background: #fff; color: var(--ink); }
.theme-accent-navy { --theme-accent: #1d3b78; --theme-deep: #12254d; }
.theme-accent-coral { --theme-accent: #e23c4a; --theme-deep: #8f1e28; }
.theme-accent-forest { --theme-accent: #0f7a56; --theme-deep: #0b3d2e; }
.theme-accent-slate { --theme-accent: #334155; --theme-deep: #0f172a; }
.theme-font-jakarta { font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif; }
.theme-font-newsreader { font-family: Newsreader, Georgia, "Times New Roman", serif; }
.theme-font-newsreader .public-nav { font-family: "Plus Jakarta Sans", ui-sans-serif, sans-serif; }
.theme-font-source { font-family: "Source Sans 3", "Source Sans Pro", ui-sans-serif, sans-serif; }
.theme-font-atkinson { font-family: "Atkinson Hyperlegible", ui-sans-serif, sans-serif; }
.theme-size-sm { font-size: 15px; }
.theme-size-sm .public-hero h1 { font-size: clamp(1.55rem, 4vw, 2.5rem); }
.theme-size-lg { font-size: 18px; }
.theme-size-lg .public-hero h1 { font-size: clamp(2.3rem, 6vw, 3.8rem); }
.theme-nav-side .public-shell {
	display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100vh; align-items: start;
}
.theme-nav-side .public-nav {
	position: sticky; top: 0; height: 100vh; height: 100dvh; border-bottom: 0;
	border-right: 1px solid var(--line); overflow: auto;
}
.theme-nav-side .public-nav-inner {
	width: auto; margin: 0; padding: 1.2rem 1rem 2rem; flex-direction: column; align-items: stretch;
}
.theme-nav-side .public-nav nav { flex-direction: column; align-items: stretch; gap: 0.35rem; }
.theme-nav-side .public-login { margin: 0.6rem 0 0; text-align: center; }
.theme-header-banner .public-nav { background: var(--theme-deep, var(--navy-deep)); border-bottom: 0; }
.theme-header-banner .public-brand strong,
.theme-header-banner .public-nav a { color: #fff; }
.theme-header-banner .public-brand span { color: rgb(255 255 255 / 0.62); }
.theme-header-banner .public-login {
	background: rgb(255 255 255 / 0.1); color: #fff; border-color: rgb(255 255 255 / 0.22);
}
.theme-header-minimal .public-nav { background: transparent; border-bottom: 0; }
.theme-header-minimal .public-nav-inner { padding-top: 1.35rem; }
.theme-header-centered .public-nav-inner { flex-direction: column; text-align: center; }
.theme-header-centered .public-brand { flex-direction: column; }
.theme-header-centered .public-nav nav { justify-content: center; }
.theme-nav-side.theme-header-centered .public-nav-inner { text-align: left; }
.theme-nav-side.theme-header-centered .public-brand { flex-direction: row; }
.public-nav { border-bottom: 1px solid var(--line); background: rgba(255,255,255,.92); position: sticky; top: 0; z-index: 40; }
.public-nav-inner {
	width: min(1040px, calc(100% - 2rem)); margin: 0 auto;
	display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 0.85rem 0;
}
.public-brand { display: flex; gap: 0.7rem; align-items: center; text-decoration: none; color: inherit; }
.public-brand img { width: 44px; height: 44px; object-fit: contain; }
.public-brand strong { display: block; color: var(--navy-deep); }
.public-brand span { color: var(--muted); font-size: 0.8rem; font-weight: 700; }
.public-nav nav { display: flex; gap: 1rem; font-weight: 700; align-items: center; }
.public-nav a { color: var(--navy); text-decoration: none; }
.public-login {
	margin-left: 0.15rem; border: 1px solid var(--line); border-radius: 999px;
	padding: 0.38rem 0.85rem; font-size: 0.88rem; background: #fff; white-space: nowrap;
}
.public-login:hover { border-color: var(--navy); background: #f4f7fd; }
.public-hero {
	background: linear-gradient(180deg, var(--theme-accent, var(--navy)), var(--theme-deep, var(--navy-deep)));
	color: #fff; padding: 4.5rem 1rem 4rem; text-align: center;
}
.public-hero h1 { color: #fff; font-size: clamp(2rem, 5vw, 3.4rem); margin: 0.35rem 0; }
.public-lede { color: rgb(255 255 255 / 0.8); font-size: 1.15rem; }
.public-panel, .public-grid { width: min(1040px, calc(100% - 2rem)); margin: 2rem auto; }
.public-panel h2, .public-card h2 { margin: 0.2rem 0 0.5rem; }
.public-grid { display: grid; gap: 1rem; }
@media (min-width: 800px) { .public-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .public-contact-grid { grid-template-columns: 1.2fr 1fr 1fr; } }
.public-social {
	margin: 1.2rem 0 0;
	padding: 1rem 0 0;
	border-top: 1px solid #e2e8f0;
}
.public-social-label {
	margin: 0 0 0.55rem;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}
.public-social nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 0.7rem;
}
.public-social a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 2.55rem;
	padding: 0.45rem 0.95rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: #fff;
	color: var(--navy);
	font-weight: 750;
	text-decoration: none;
}
.public-social-empty {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 2.55rem;
	padding: 0.45rem 0.95rem;
	border: 1px dashed var(--line);
	border-radius: 999px;
	color: var(--muted);
	font-weight: 750;
}
.public-card { border: 1px solid var(--line); border-radius: 1.1rem; padding: 1.2rem; background: var(--surface); }
.public-map-hero { position: relative; background: #d7deea; }
.public-map {
	height: min(62vh, 560px); width: 100%; background: #d7deea;
}
.public-map.leaflet-container { font-family: var(--font); }
.leaflet-container img { max-width: none; }
.public-map-empty {
	display: grid; place-items: center; color: var(--muted); font-weight: 700; padding: 2rem;
}
.public-map-copy {
	position: absolute; z-index: 500; left: max(1rem, calc((100% - 1040px) / 2));
	bottom: 1.15rem; background: rgb(255 255 255 / 0.94);
	border-radius: 1.05rem; padding: 1rem 1.15rem; max-width: min(420px, calc(100% - 2rem));
	box-shadow: var(--shadow);
}
.public-map-copy .eyebrow { margin: 0; }
.public-map-copy h1 { margin: 0.15rem 0 0.35rem; font-size: clamp(1.4rem, 3vw, 1.9rem); }
.public-map-copy p { margin: 0; color: var(--muted); font-weight: 600; }
.fh-pin-wrap { background: none !important; border: 0 !important; }
.fh-pin {
	display: block; width: 22px; height: 22px; background: var(--coral);
	border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	box-shadow: 0 8px 16px rgb(18 37 77 / 0.32);
}
.wb-map { margin: 0; }
.wb-map .public-map { height: 280px; border-radius: 0; }
.public-foot {
	margin-top: 3rem; padding: 1.4rem 1rem; text-align: center; background: var(--navy-deep); color: rgb(255 255 255 / 0.7);
}
.public-foot a { color: #fff; }
.public-nav a.is-current { color: var(--coral); }
.public-nav-inner { flex-wrap: wrap; }
.public-nav nav { flex-wrap: wrap; }
.public-photo {
	width: min(1040px, calc(100% - 2rem)); margin: 1.5rem auto;
}
.public-photo img {
	width: 100%; border-radius: 1.1rem; display: block; max-height: 520px; object-fit: cover;
}
.public-photo figcaption { color: var(--muted); font-size: 0.9rem; margin-top: 0.55rem; }
.public-quote {
	width: min(760px, calc(100% - 2rem)); margin: 2.5rem auto;
	padding: 0 0 0 1.4rem; border-left: 4px solid var(--coral);
}
.public-quote p { font-size: 1.35rem; font-weight: 700; color: var(--navy-deep); margin: 0; }
.public-quote footer { margin-top: 0.6rem; color: var(--muted); font-weight: 700; }
.public-roster { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 700px) { .public-roster { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.public-roster li {
	display: grid;
	grid-template-columns: 1fr;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--line); border-radius: 1rem; background: #fff;
}
.public-roster img, .public-roster-ph {
	width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; background: #e8edf5;
}
.public-roster-ph {
	display: grid; place-items: center; font-weight: 800; color: var(--navy); font-size: 1.3rem;
}
.public-roster li > div { padding: 0.7rem 0.8rem 0.85rem; }
.public-roster strong { display: block; color: var(--navy-deep); }
.public-roster em, .public-roster span { display: block; color: var(--muted); font-size: 0.85rem; font-style: normal; }
.public-avatar {
	width: 48px; height: 48px; border-radius: 999px; overflow: hidden; flex: 0 0 auto;
	background: var(--navy); color: #fff; display: grid; place-items: center; font-weight: 800;
}
.public-avatar img { width: 100%; height: 100%; object-fit: cover; }
.public-apparatus { display: grid; gap: 1rem; margin-top: 1rem; }
@media (min-width: 800px) { .public-apparatus { grid-template-columns: 1fr 1fr; } }
.public-posts { width: min(1040px, calc(100% - 2.5rem)); }
.public-feed {
	display: grid; gap: 1rem; margin: 1.25rem 0 0;
	width: 100%;
}
.public-feed-card {
	display: grid; gap: 0; align-content: start; overflow: hidden;
	border: 1px solid var(--line); border-radius: 1.15rem;
	background: #fff; text-decoration: none; color: inherit;
	box-shadow: 0 10px 28px rgb(18 37 77 / 0.05);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.public-feed-card:hover { border-color: var(--navy); box-shadow: 0 16px 36px rgb(18 37 77 / 0.08); }
.public-feed-card img {
	width: 100%; height: 220px; object-fit: cover; display: block; background: var(--surface);
}
.public-feed-copy { display: grid; gap: 0.45rem; padding: 1.2rem 1.3rem 1.3rem; }
.public-feed-card h3 { margin: 0; font-size: 1.28rem; letter-spacing: -0.03em; }
.public-feed-card p { margin: 0; color: var(--muted); line-height: 1.55; }
.public-feed-meta { display: flex; gap: 0.65rem; align-items: center; margin: 0; flex-wrap: wrap; }
.public-feed-meta time, .public-feed-loc { color: var(--muted); font-size: 0.84rem; font-weight: 700; }
.public-feed-more { margin: 1.15rem 0 0; font-weight: 800; }
.public-kind {
	display: inline-flex; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em;
	text-transform: uppercase; border-radius: 999px; padding: 0.2rem 0.58rem;
}
.public-kind-incident { background: #fde8ea; color: #9f1239; }
.public-kind-event { background: #dbe4f5; color: #1d3b78; }
.public-kind-update { background: #d9f5f1; color: #0f766e; }
.public-article {
	width: min(1040px, calc(100% - 2.5rem));
	margin: 2.8rem auto 4rem;
}
.public-article-head { margin: 0 0 1.4rem; }
.public-article-kicker { display: flex; gap: 0.75rem; align-items: center; margin: 0 0 0.75rem; flex-wrap: wrap; }
.public-article-kicker time { color: var(--muted); font-weight: 700; font-size: 0.92rem; }
.public-article h1 { margin: 0 0 0.45rem; font-size: clamp(2rem, 4.4vw, 2.85rem); line-height: 1.15; }
.public-article-loc { margin: 0; color: var(--muted); font-weight: 700; }
.public-article-photo { margin: 0 0 1.6rem; }
.public-article-photo img { width: 100%; border-radius: 1.15rem; display: block; max-height: 520px; object-fit: cover; }
.public-article-body { font-size: 1.12rem; line-height: 1.75; }
.public-article-body p { margin: 0 0 1.05rem; }
.public-article-back { margin: 2.2rem 0 0; font-weight: 800; }

.is-builder .main { padding: 0; background: #e7ebf3; min-height: 100dvh; display: flex; flex-direction: column; }
.is-builder .wb-topbar { margin: 0; padding: 0.5rem 0.9rem; border-bottom: 1px solid var(--line); background: #fff; }
@media (min-width: 960px) { .is-builder .wb-topbar { display: none; } }
.wb-app { flex: 1; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.wb-boot { display: grid; place-items: center; min-height: 50vh; color: var(--muted); font-weight: 700; }
.wb-toolbar {
	display: flex; justify-content: space-between; gap: 1rem; align-items: center; flex-wrap: wrap;
	padding: 0.7rem 1rem; background: #fff; border-bottom: 1px solid var(--line);
}
.wb-toolbar-copy { display: flex; gap: 0.55rem; align-items: center; min-width: 0; flex-wrap: wrap; }
.wb-toolbar-copy strong { color: var(--navy-deep); }
.wb-toolbar-copy em { font-style: normal; color: var(--muted); font-size: 0.8rem; font-weight: 700; }
.wb-toolbar-actions { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.wb-pill {
	font-size: 0.68rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase;
	border-radius: 999px; padding: 0.18rem 0.5rem; background: #e8edf5; color: var(--muted);
}
.wb-pill.is-live { background: #d1fadf; color: var(--ok); }
.wb-devices { display: flex; background: #f3f6fb; border-radius: 999px; padding: 0.15rem; }
.wb-devices button {
	border: 0; background: transparent; font: inherit; font-size: 0.78rem; font-weight: 800;
	color: var(--muted); border-radius: 999px; padding: 0.32rem 0.7rem; cursor: pointer;
}
.wb-devices button.is-on { background: #fff; color: var(--navy-deep); box-shadow: 0 1px 3px rgb(18 37 77 / 0.12); }
.wb-work { display: grid; min-height: 0; }
@media (min-width: 1100px) {
	.wb-work { grid-template-columns: 220px minmax(0, 1fr) 300px; }
}
.wb-rail {
	background: #f7f8fb; border-right: 1px solid var(--line); padding: 0.85rem 0.75rem 1.5rem;
	overflow: auto;
}
.wb-rail-tabs { display: flex; gap: 0.25rem; background: #e8edf5; padding: 0.2rem; border-radius: 999px; margin-bottom: 0.9rem; }
.wb-rail-tabs button {
	flex: 1; border: 0; background: transparent; font: inherit; font-size: 0.8rem; font-weight: 800;
	color: var(--muted); border-radius: 999px; padding: 0.4rem 0.5rem; cursor: pointer;
}
.wb-rail-tabs button.is-on { background: #fff; color: var(--navy-deep); }
.wb-rail-label {
	margin: 0 0.45rem 0.35rem; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em;
	text-transform: uppercase; color: var(--muted);
}
.wb-rail ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.wb-rail li { display: flex; align-items: center; gap: 0.1rem; }
.wb-rail li > button[data-open-page] {
	flex: 1; min-width: 0; display: flex; justify-content: space-between; gap: 0.4rem; align-items: center;
	padding: 0.55rem 0.65rem; border: 0; background: transparent; font: inherit; font-weight: 700;
	color: var(--navy-deep); border-radius: 0.65rem; cursor: pointer; text-align: left;
}
.wb-rail li > button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-rail li > button em { font-style: normal; font-size: 0.62rem; color: var(--muted); font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.wb-rail li > button em.is-live { color: var(--ok); }
.wb-rail li.is-active > button[data-open-page] { background: #fff; box-shadow: inset 3px 0 0 var(--navy); }
.wb-page-tools { display: none; }
.wb-rail li:hover .wb-page-tools { display: flex; }
.wb-page-tools button, .wb-block-tools button {
	width: 26px; height: 26px; border: 0; background: transparent; color: var(--muted);
	border-radius: 0.4rem; cursor: pointer; display: grid; place-items: center; padding: 0;
}
.wb-page-tools button:hover, .wb-block-tools button:hover { background: #fff; color: var(--navy); }
.wb-block-tools button.danger:hover { color: var(--danger); background: #fee4e2; }
.wb-add-page {
	width: 100%; margin-top: 0.45rem; display: flex; gap: 0.45rem; align-items: center;
	border: 1px dashed var(--line); background: #fff; border-radius: 0.7rem; padding: 0.55rem 0.7rem;
	font: inherit; font-weight: 800; color: var(--navy); cursor: pointer;
}
.wb-add-page:hover { border-color: var(--navy); }
.wb-stage { padding: 1.1rem 1.1rem 2.5rem; overflow: auto; }
.wb-browser {
	margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 1rem;
	overflow: hidden; box-shadow: 0 18px 40px rgb(18 37 77 / 0.08); max-width: 1100px;
	transition: max-width 0.2s ease;
}
.wb-browser[data-device="tablet"] { max-width: 768px; }
.wb-browser[data-device="phone"] { max-width: 390px; }
.wb-urlbar {
	display: flex; align-items: center; gap: 0.7rem; padding: 0.55rem 0.85rem;
	background: #f4f6fa; border-bottom: 1px solid var(--line); color: var(--muted);
	font-size: 0.78rem; font-weight: 700;
}
.wb-dots { width: 42px; height: 10px; border-radius: 99px; background:
	radial-gradient(circle at 5px 5px, #ff5f57 4px, transparent 5px),
	radial-gradient(circle at 21px 5px, #febc2e 4px, transparent 5px),
	radial-gradient(circle at 37px 5px, #28c840 4px, transparent 5px);
}
.wb-preview { min-height: 520px; background: #fff; overflow: visible; }
.wb-preview .public-nav { position: relative; }
.wb-preview.theme-nav-side .public-shell { min-height: 640px; }
.wb-preview.theme-nav-side .public-nav { height: auto; min-height: 100%; position: relative; }
.wb-block { position: relative; overflow: visible; }
.wb-block::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 2;
	box-shadow: inset 3px 0 0 transparent;
}
.wb-block:hover::after { box-shadow: inset 3px 0 0 rgb(29 59 120 / 0.28); }
.wb-block.is-selected::after { box-shadow: inset 3px 0 0 var(--navy); }
.wb-block-chrome {
	position: absolute; top: 8px; right: 8px; left: auto; z-index: 6;
	display: none; align-items: center; gap: 0.15rem;
	max-width: calc(100% - 16px);
	background: #fff; color: var(--navy-deep);
	border: 1px solid var(--line); border-radius: 6px;
	padding: 0.2rem 0.22rem 0.2rem 0.55rem;
	box-shadow: 0 1px 4px rgb(18 37 77 / 0.12);
	font-size: 0.72rem; font-weight: 700; letter-spacing: 0; text-transform: none;
	white-space: nowrap;
}
.wb-block-chrome span:first-child { display: inline-flex; gap: 0.35rem; align-items: center; padding-right: 0.2rem; }
.wb-block:hover .wb-block-chrome, .wb-block.is-selected .wb-block-chrome { display: flex; }
.wb-block-tools button { color: var(--muted); }
.wb-block-tools button:hover { background: var(--surface); color: var(--navy); }
.wb-block [contenteditable] { outline: none; min-height: 1.2em; cursor: text; }
.wb-block [contenteditable]:hover { background: rgb(255 255 255 / 0.06); }
.wb-block .public-panel [contenteditable]:hover,
.wb-block .public-quote [contenteditable]:hover { background: rgb(29 59 120 / 0.04); border-radius: 0.2rem; }
.wb-block [contenteditable]:focus {
	background: rgb(47 111 237 / 0.06); border-radius: 0.2rem;
	box-shadow: none; outline: none;
}
.wb-block [contenteditable][data-placeholder]:empty::before { content: attr(data-placeholder); opacity: 0.4; }
.wb-body { white-space: pre-wrap; line-height: 1.65; min-height: 3.5rem; }
.wb-empty-page { padding: 4rem 1.5rem; text-align: center; color: var(--muted); }
.wb-empty-page .btn { margin-top: 1rem; }
.wb-drop {
	display: grid; place-items: center; min-height: 180px; margin: 1rem auto; width: min(1040px, calc(100% - 2rem));
	border: 1px dashed var(--line); border-radius: 1rem; color: var(--muted); font-weight: 800; cursor: pointer;
}
.wb-inspector {
	background: #f4f6fb; border-left: 1px solid var(--line); overflow: auto; padding: 1rem 0.9rem 2rem;
}
.wb-pane {
	margin-bottom: 0.9rem; background: #fff; border: 1px solid var(--line);
	border-radius: 1rem; padding: 0.95rem 1rem 1.1rem;
}
.wb-pane h2 { margin: 0 0 0.2rem; font-size: 0.96rem; }
.wb-pane label {
	display: grid; gap: 0.4rem; margin: 0.75rem 0 0; font-weight: 700; font-size: 0.8rem;
	color: var(--navy-deep);
}
.wb-pane .help { margin: 0.3rem 0 0; }
.wb-inspector input:not([type="checkbox"]):not([type="file"]):not([type="radio"]),
.wb-inspector select,
.wb-inspector textarea {
	width: 100%; margin: 0; border: 1px solid var(--line); border-radius: 0.7rem;
	padding: 0.62rem 0.75rem; font: inherit; font-size: 0.9rem; font-weight: 600;
	background: #f7f9fc; color: var(--ink);
}
.wb-inspector textarea { min-height: 5.5rem; resize: vertical; line-height: 1.45; }
.wb-inspector textarea[rows="2"] { min-height: 3.4rem; }
.wb-inspector input:focus, .wb-inspector select:focus, .wb-inspector textarea:focus {
	outline: none; border-color: var(--navy); background: #fff;
	box-shadow: 0 0 0 3px rgb(29 59 120 / 0.12);
}
.wb-inspector input:disabled {
	background: #eef1f6; color: var(--muted); cursor: not-allowed;
}
.wb-label { margin: 0.9rem 0 0.4rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.wb-check { display: flex !important; flex-direction: row; align-items: center; gap: 0.5rem; font-weight: 700; }
.wb-pane .btn-danger { margin-top: 0.95rem; width: 100%; }
.wb-pane .btn-ghost { margin-top: 0.65rem; }
.wb-choices { display: grid; gap: 0.45rem; }
.wb-choices-row { grid-template-columns: 1fr 1fr 1fr; }
.wb-choice {
	text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 0.8rem;
	padding: 0.7rem 0.75rem; cursor: pointer; font: inherit; display: grid; gap: 0.15rem;
}
.wb-choice strong { color: var(--navy-deep); font-size: 0.88rem; }
.wb-choice span { color: var(--muted); font-size: 0.78rem; line-height: 1.35; }
.wb-choice.is-on, .wb-choice:hover { border-color: var(--navy); box-shadow: 0 0 0 3px rgb(29 59 120 / 0.1); }
.wb-swatches { display: flex; gap: 0.45rem; }
.wb-swatch {
	width: 1.7rem; height: 1.7rem; border-radius: 99px; border: 2px solid #fff;
	box-shadow: 0 0 0 1px var(--line); cursor: pointer;
}
.wb-swatch.is-on { box-shadow: 0 0 0 2px var(--navy); }
.wb-swatch.accent-navy { background: #1d3b78; }
.wb-swatch.accent-coral { background: #e23c4a; }
.wb-swatch.accent-forest { background: #0f7a56; }
.wb-swatch.accent-slate { background: #334155; }
.wb-insert { display: grid; gap: 0.4rem; }
.wb-insert-card {
	display: grid; grid-template-columns: 20px 1fr; gap: 0.15rem 0.55rem; text-align: left;
	border: 1px solid var(--line); background: #fff; border-radius: 0.8rem; padding: 0.7rem 0.75rem;
	cursor: pointer; font: inherit;
}
.wb-insert-card svg { grid-row: span 2; color: var(--navy); margin-top: 0.15rem; }
.wb-insert-card strong { color: var(--navy-deep); font-size: 0.88rem; }
.wb-insert-card span { color: var(--muted); font-size: 0.76rem; }
.wb-insert-card:hover { border-color: var(--navy); }
.wb-template-list { display: grid; gap: 0.45rem; margin: 0.7rem 0; }
.wb-template {
	text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 0.85rem;
	padding: 0.8rem 0.85rem; cursor: pointer; font: inherit; display: grid; gap: 0.2rem;
}
.wb-template:hover { border-color: var(--navy); }
.wb-mini { display: grid; gap: 0.35rem; padding: 0.65rem; border: 1px solid var(--line); border-radius: 0.75rem; margin-top: 0.55rem; background: #f8fafc; }
.wb-file-btn { margin-top: 0.7rem; }
/* btn-sm sizing lives with the base .btn rules — do not inflate here */
@media (max-width: 1099px) {
	.wb-inspector { border-left: 0; border-top: 1px solid var(--line); }
}
.post-composer { margin: 0; }
.post-bar {
	display: flex; justify-content: space-between; align-items: center; gap: 0.85rem; flex-wrap: wrap;
	padding: 0.7rem 0.9rem 0.7rem 1rem; margin: 0 0 1.1rem;
	background: #fff; border: 1px solid var(--line); border-radius: 1rem;
	position: sticky; top: 0.65rem; z-index: 8;
	box-shadow: 0 10px 28px rgb(18 37 77 / 0.06);
}
.post-bar-copy { display: flex; align-items: center; gap: 0.7rem; min-width: 0; flex-wrap: wrap; }
.post-bar-back {
	font-size: 0.8rem; font-weight: 800; color: var(--navy); text-decoration: none;
}
.post-bar-copy strong {
	color: var(--navy-deep); font-size: 0.98rem; letter-spacing: -0.02em;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 22rem;
}
.post-bar-actions { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.post-layout { display: grid; gap: 1.1rem; }
@media (min-width: 1100px) {
	.post-layout { grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr); align-items: start; }
}
.post-write, .post-side { display: grid; gap: 1rem; }
.post-side .btn-danger { width: 100%; }
.post-write .form-block-head + label,
.post-side .form-block-head + label { margin-top: 0.15rem; }
.post-write textarea[name="body"] { min-height: 16rem; }
.post-kinds { display: grid; gap: 0.65rem; }
@media (min-width: 720px) { .post-kinds { grid-template-columns: 1fr 1fr 1fr; } }
@media (min-width: 720px) {
	[data-fund-form] .post-kinds { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1100px) {
	[data-fund-form] .post-kinds { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.post-kind {
	margin: 0; cursor: pointer; display: grid; gap: 0.28rem;
	padding: 0.95rem 0.95rem 1rem; border: 1px solid var(--line); border-radius: 0.95rem;
	background: #fff;
}
.post-kind input { position: absolute; opacity: 0; pointer-events: none; }
.post-kind strong { color: var(--navy-deep); font-size: 0.95rem; }
.post-kind span { color: var(--muted); font-size: 0.8rem; font-weight: 600; line-height: 1.4; }
.post-kind:hover { border-color: rgb(29 59 120 / 0.35); }
.post-kind:has(input:checked) {
	border-color: var(--navy); background: #f4f7fd;
	box-shadow: 0 0 0 3px rgb(29 59 120 / 0.12);
}
.post-kind-incident:has(input:checked) { box-shadow: 0 0 0 3px rgb(159 18 57 / 0.12); border-color: #9f1239; }
.post-kind-event:has(input:checked) { box-shadow: 0 0 0 3px rgb(29 59 120 / 0.12); }
.post-kind-update:has(input:checked) { box-shadow: 0 0 0 3px rgb(15 118 110 / 0.12); border-color: #0f766e; }
.post-title { font-size: 1.15rem; font-weight: 800; letter-spacing: -0.02em; }
.post-photo { min-height: 168px; margin-top: 1rem; overflow: hidden; }
.post-photo img {
	width: 100%; max-height: 260px; object-fit: cover; border-radius: 0.85rem; display: block;
}
.post-photo.has-file { padding: 0.55rem; border-style: solid; }
.post-photo.has-file .upload-copy {
	position: absolute; left: 50%; bottom: 0.85rem; transform: translateX(-50%);
	background: rgb(15 23 42 / 0.78); color: #fff; border-radius: 999px;
	padding: 0.4rem 0.85rem; gap: 0.1rem;
}
.post-photo.has-file .upload-copy span { color: rgb(255 255 255 / 0.78); }
.post-thumb-incident { background: #fde8ea; color: #9f1239; }
.post-thumb-event { background: #dbe4f5; color: #1d3b78; }
.post-thumb-update { background: #d9f5f1; color: #0f766e; }
.page-head-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.inv-tabs {
	display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 0.1rem;
	margin: -0.1rem 0 0.75rem; padding: 0; background: transparent;
	border: 0; border-bottom: 1px solid var(--line); border-radius: 0; width: 100%;
}
.inv-tabs a {
	display: inline-flex; align-items: center; padding: 0.45rem 0.75rem 0.5rem;
	border-radius: 0; border-bottom: 2px solid transparent; margin-bottom: -1px;
	text-decoration: none; font-weight: 800; font-size: 0.84rem; color: var(--muted);
}
.inv-tabs a:hover { color: var(--navy-deep); background: transparent; }
.inv-tabs a.is-active { background: transparent; color: var(--navy); border-bottom-color: var(--navy); }
.list-board { display: grid; gap: 0.5rem; }
.list-tools {
	display: grid; gap: 0.4rem;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	padding: 0.4rem;
	box-shadow: none;
}
.list-tools-row {
	display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: stretch;
}
.list-search {
	flex: 1 1 16rem; min-width: 0; margin: 0; position: relative;
	display: block;
}
.list-search-ico {
	position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%);
	color: #64748b; pointer-events: none; z-index: 1;
	font-size: 1rem;
}
.list-search input {
	width: 100%; margin: 0; height: var(--control-h);
	padding: 0.3rem 0.7rem 0.3rem 2.1rem;
	border: 1px solid var(--line); border-radius: var(--radius-sm);
	background: #f4f7fd; color: var(--ink); font: inherit; font-size: var(--text-md);
	appearance: none; -webkit-appearance: none;
	box-sizing: border-box;
}
.list-search input:focus {
	outline: 2px solid rgb(47 111 237 / 0.28); outline-offset: 1px;
	background: #fff; border-color: rgb(29 59 120 / 0.35);
}
.list-filters { display: flex; flex-wrap: wrap; gap: 0.45rem; flex: 1 1 16rem; }
.list-filter { margin: 0; min-width: 0; flex: 1 1 8.4rem; display: block; }
.list-filter select {
	margin: 0; width: 100%; height: var(--control-h);
	padding: 0.3rem 1.7rem 0.3rem 0.65rem;
	border: 1px solid var(--line); border-radius: var(--radius-sm);
	color: var(--ink); font: inherit; font-weight: 700; font-size: var(--text-sm);
	appearance: none; -webkit-appearance: none; box-sizing: border-box;
	background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position: calc(100% - 1.05rem) calc(50% - 0.16rem), calc(100% - 0.72rem) calc(50% - 0.16rem);
	background-size: 0.34rem 0.34rem, 0.34rem 0.34rem;
	background-repeat: no-repeat;
	background-color: #fff;
}
.list-tools-count { margin: 0; font-size: 0.8rem; font-weight: 650; color: var(--muted); }
.list-empty { margin: 0.1rem 0 0; }
.inv-row .inv-thumb {
	width: 3.1rem; height: 3.1rem; border-radius: 0.85rem; overflow: hidden; flex: 0 0 auto;
	background: #e8edf5; color: var(--navy); font-weight: 800; display: grid; place-items: center;
}
.inv-thumb img { width: 100%; height: 100%; object-fit: cover; }
.inv-layout { display: grid; gap: 1.1rem; }
@media (min-width: 980px) {
	.inv-layout { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
}
.inv-side { display: grid; gap: 1rem; }
.inv-qr { display: grid; place-items: center; background: #fff; border: 1px solid var(--line); border-radius: 1rem; padding: 0.9rem; }
.inv-qr svg { width: 220px; height: 220px; }
.inv-qr-url { word-break: break-all; }
.inv-form-assign { display: grid; gap: 0.55rem; }
.inv-form-assign .check-row { padding: 0.7rem 0.85rem; border: 1px solid var(--line); border-radius: 0.9rem; background: #fff; margin: 0; }
.inv-form-assign strong { display: block; }
.inv-form-assign em { font-style: normal; color: var(--muted); font-size: 0.82rem; font-weight: 650; }
.inv-history { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.inv-history li { display: flex; gap: 0.7rem; align-items: flex-start; }
.inv-history div { display: grid; gap: 0.15rem; }
.inv-history span { color: var(--muted); font-size: 0.82rem; }
.inv-fields { display: grid; gap: 0.7rem; margin-bottom: 0.85rem; }
.inv-field-row {
	display: grid; gap: 0.65rem; padding: 0.85rem; border: 1px solid var(--line); border-radius: 1rem; background: #f8fafc;
}
@media (min-width: 800px) {
	.inv-field-row { grid-template-columns: minmax(0, 1.4fr) 180px auto auto; align-items: end; }
}
.inv-field-row span { display: block; font-size: 0.75rem; font-weight: 800; color: var(--muted); margin-bottom: 0.25rem; }
.inv-field-row input, .inv-field-row select { margin: 0; }
.inv-req { margin: 0; padding-bottom: 0.35rem; }
.inv-delete { margin-top: 1rem; }
.inv-scan { display: grid; gap: 0.9rem; justify-items: start; }
.inv-reader {
	position: relative;
	width: min(100%, 420px);
	overflow: hidden;
	border-radius: 1rem;
	background: #0b1220;
	min-height: 240px;
	height: 16rem;
}
.inv-reader video,
.inv-reader canvas {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	background: #0b1220;
}
.inv-reader > div { width: 100% !important; height: 100% !important; }
.inv-manual { width: min(100%, 420px); }
.inv-manual-row { display: flex; gap: 0.5rem; }
.inv-manual-row input { flex: 1; }
.scan-layout { display: grid; gap: 1.1rem; }
.scan-side { display: grid; gap: 1rem; align-content: start; }
.scan-layout > .alert { margin-bottom: 0; }
.app-scan {
	display: grid; gap: 0.85rem; justify-items: stretch; width: 100%; margin: 0;
}
.app-scan > .help { margin: 0; }
.app-scan > .actions { margin: 0; }
.app-scan .inv-manual { width: 100%; margin: 0; }
.app-scan .inv-manual label { margin-top: 0; }
@media (min-width: 1100px) {
	.scan-layout {
		grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
		align-items: start;
	}
	.scan-layout > .alert,
	.scan-layout > .app-scan-live { grid-column: 1 / -1; }
}
@media (min-width: 960px) {
	.app-scan .form-block-head { margin-bottom: 0.15rem; }
	.app-scan-stage {
		position: relative; width: 100%; overflow: hidden;
		border-radius: 1.05rem; background: #0b1733;
		box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.08);
	}
	.app-scan-stage::before {
		content: ""; position: absolute; inset: 1rem; z-index: 1; pointer-events: none;
		border-radius: 0.35rem;
		background:
			linear-gradient(#fff, #fff) top left / 1.35rem 2px no-repeat,
			linear-gradient(#fff, #fff) top left / 2px 1.35rem no-repeat,
			linear-gradient(#fff, #fff) top right / 1.35rem 2px no-repeat,
			linear-gradient(#fff, #fff) top right / 2px 1.35rem no-repeat,
			linear-gradient(#fff, #fff) bottom left / 1.35rem 2px no-repeat,
			linear-gradient(#fff, #fff) bottom left / 2px 1.35rem no-repeat,
			linear-gradient(#fff, #fff) bottom right / 1.35rem 2px no-repeat,
			linear-gradient(#fff, #fff) bottom right / 2px 1.35rem no-repeat;
		opacity: 0.55;
	}
	.app-scan .inv-reader {
		width: 100%; min-height: 22rem; max-height: 32rem; aspect-ratio: 4 / 3;
		border-radius: 0; background: transparent;
	}
	.app-scan .inv-reader video,
	.app-scan .inv-reader canvas {
		width: 100% !important; height: 100% !important; object-fit: cover; display: block;
	}
	.app-scan .inv-reader > div { width: 100% !important; }
	.app-scan #qr-shaded-region { border-width: 0 !important; }
	.app-scan .inv-manual {
		padding-top: 0.85rem; border-top: 1px solid var(--line);
	}
}
.app-scan-live { display: grid; gap: 0.55rem; margin: 0; }
.app-scan-live-card {
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.85rem; align-items: center; padding: 0.95rem 1.05rem;
	background: linear-gradient(135deg, #12254d, #1d3b78); color: #fff;
	border-radius: 1.05rem; text-decoration: none;
	box-shadow: 0 10px 24px rgb(18 37 77 / 0.18);
}
.app-scan-live-card:hover { filter: brightness(1.06); }
.app-scan-live-mark {
	width: 0.7rem; height: 0.7rem; border-radius: 50%;
	background: #6ce9a6; box-shadow: 0 0 0 6px rgb(108 233 166 / 0.16);
}
.app-scan-live-copy { display: grid; gap: 0.18rem; min-width: 0; }
.app-scan-live-card strong { font-size: 0.98rem; letter-spacing: -0.02em; }
.app-scan-live-card span { color: rgb(255 255 255 / 0.72); font-size: 0.82rem; font-weight: 650; line-height: 1.35; }
.app-scan-live-card em {
	font-style: normal; font-size: 0.78rem; font-weight: 800;
	letter-spacing: 0.04em; text-transform: uppercase;
	color: #12254d; background: #fff; border-radius: 999px;
	padding: 0.38rem 0.7rem;
}
.inv-pick { display: grid; gap: 0.7rem; margin-top: 0.8rem; }
.inv-pick-card { text-decoration: none; color: inherit; display: grid; gap: 0.2rem; }
.inv-pick-card:hover { border-color: var(--navy); }
.inv-pick-card span { color: var(--muted); font-size: 0.86rem; }
.inv-check .inv-line {
	border: 1px solid var(--line); border-radius: 1rem; padding: 0.9rem 1rem; margin: 0 0 0.7rem; background: #fff;
}
.inv-line legend { font-weight: 800; padding: 0 0.35rem; }
.inv-line legend em { font-style: normal; color: var(--muted); font-weight: 650; font-size: 0.78rem; margin-left: 0.35rem; }
.inv-choice { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.inv-choice label { margin: 0; cursor: pointer; }
.inv-choice input { position: absolute; opacity: 0; pointer-events: none; }
.inv-choice span {
	display: inline-flex; min-width: 4.4rem; justify-content: center; border-radius: 999px; padding: 0.48rem 0.9rem;
	font-weight: 800; border: 1px solid var(--line); background: #fff; color: var(--navy-deep);
}
.inv-choice label:hover span { border-color: var(--navy); }
.inv-choice-pass:has(input:checked) span { background: #d1fadf; border-color: var(--ok); color: var(--ok); }
.inv-choice-fail:has(input:checked) span { background: #fee4e2; border-color: var(--danger); color: var(--danger); }
.inv-choice-na:has(input:checked) span { background: #e8edf5; border-color: var(--muted); color: var(--muted); }
.form-grid-2 { display: grid; gap: 0.85rem; }
@media (min-width: 700px) { .form-grid-2 { grid-template-columns: 1fr 1fr; } }
.print-body { background: #fff; margin: 0; font-family: var(--font); color: var(--ink); }
.print-sticker { max-width: 28rem; margin: 2rem auto; text-align: center; padding: 1.5rem; }
.print-brand { letter-spacing: 0.16em; text-transform: uppercase; font-weight: 800; color: var(--navy); font-size: 0.72rem; }
.print-sticker h1 { margin: 0.2rem 0 0.35rem; font-size: 1.8rem; color: var(--navy-deep); }
.print-meta { color: var(--muted); margin: 0 0 1rem; }
.print-qr { display: grid; place-items: center; }
.print-barcode {
	display: grid; place-items: center; overflow: hidden; padding: 0.4rem 0;
}
.print-barcode svg { width: min(100%, 420px); height: auto; }
.print-barcode-value {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: 0.14em; font-weight: 800; margin: 0.55rem 0 0;
	color: var(--navy-deep);
}
.print-hint { font-weight: 800; margin: 0.8rem 0 0.2rem; }
.print-url { font-size: 0.78rem; color: var(--muted); word-break: break-all; }
.print-actions { display: flex; justify-content: center; gap: 0.5rem; margin-top: 1.2rem; }
@media print {
	.print-actions, .nav-toggle, .sidebar, .topbar, .app-aside { display: none !important; }
	.print-sticker { margin: 0; max-width: none; }
	.print-body { background: #fff; }
}
.wb-preview .public-hero [contenteditable] { color: #fff; }
.wb-preview .public-hero [contenteditable][data-placeholder]:empty::before { color: rgb(255 255 255 / 0.48); }
.theme-header-banner .public-nav a.is-current { color: #f5b942; }
@media (min-width: 900px) {
	.stat-row.an-stats { grid-template-columns: repeat(4, 1fr); }
}
.an-chart-card { margin-bottom: 1rem; }
.an-chart {
	display: flex; align-items: flex-end; gap: 0.35rem; height: 180px; margin-top: 1rem;
}
.an-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 0.3rem; min-width: 0; }
.an-val { font-size: 0.68rem; font-weight: 800; color: var(--muted); }
.an-bar { width: 100%; max-width: 28px; background: var(--navy); border-radius: 0.35rem 0.35rem 0 0; min-height: 4px; }
.an-col em { font-style: normal; font-size: 0.62rem; color: var(--muted); font-weight: 700; white-space: nowrap; transform: rotate(-40deg); transform-origin: top left; height: 1.8rem; }
.an-grid { display: grid; gap: 1rem; }
@media (min-width: 900px) { .an-grid { grid-template-columns: 1.2fr 0.8fr; align-items: start; } }
.an-table { width: 100%; border-collapse: collapse; }
.an-table th { text-align: left; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); padding: 0.4rem 0; }
.an-table td { padding: 0.55rem 0.4rem 0.55rem 0; border-top: 1px solid var(--line); vertical-align: top; }
.an-table td strong { display: block; }
.an-table td span { color: var(--muted); font-size: 0.8rem; }
.an-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.an-list li { display: flex; justify-content: space-between; gap: 0.7rem; }
.an-list span { color: var(--muted); font-weight: 700; }
.an-devices { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.an-devices li { display: grid; grid-template-columns: 4.5rem 1fr 2.4rem; gap: 0.55rem; align-items: center; font-weight: 700; }
.an-devices em { font-style: normal; color: var(--muted); text-align: right; }
.an-meter { height: 0.55rem; background: #e8edf5; border-radius: 99px; overflow: hidden; }
.an-meter i { display: block; height: 100%; background: var(--navy); border-radius: 99px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ap-form { display: grid; gap: 0.85rem; width: 100%; }
@media (min-width: 1100px) {
	.ap-form { grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr); align-items: start; }
	.ap-form .ap-actions { grid-column: 1 / -1; }
}
.ap-form .form-block { margin: 0; }
.ap-form textarea { min-height: 4rem; }
.ap-count-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }
.ap-seats .check-row { margin-top: 0.65rem; }
.ap-board { margin-top: 0.75rem; }
.ap-cab {
	width: min(280px, 100%); margin: 0 auto; padding: 0.65rem 0.6rem;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	display: grid; gap: 0.55rem;
}
.ap-inspect label:first-of-type { margin-top: 0; }
.ap-page { width: min(72rem, 100%); margin: 0 auto; padding-bottom: 0.4rem; }
.ap-page input[type="text"],
.ap-page input[type="number"],
.ap-page input[type="search"],
.ap-page input[type="email"],
.ap-page input[type="tel"],
.ap-page input[type="password"],
.ap-page input[type="date"],
.ap-page input[type="datetime-local"],
.ap-page input[type="time"],
.ap-page select,
.ap-page textarea {
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	padding: var(--control-py) var(--control-px);
	min-height: var(--control-h);
	height: var(--control-h);
	font: inherit;
	font-size: var(--control-fs);
	line-height: 1.25;
	background: #fff;
	color: var(--ink);
	width: 100%;
	box-sizing: border-box;
	appearance: none;
	-webkit-appearance: none;
}
.ap-page textarea {
	min-height: 3.5rem;
	height: auto;
	padding-top: 0.45rem;
	padding-bottom: 0.45rem;
}
.ap-page input[type="number"],
.ap-page input[type="date"],
.ap-page input[type="time"] { appearance: auto; -webkit-appearance: auto; }
.ap-page select {
	background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position: calc(100% - 0.95rem) calc(50% - 0.16rem), calc(100% - 0.62rem) calc(50% - 0.16rem);
	background-size: 0.32rem 0.32rem, 0.32rem 0.32rem;
	background-repeat: no-repeat;
	padding-right: 1.65rem;
}
.ap-page .btn,
.ap-bar .btn {
	border-radius: var(--radius-sm);
}
.ap-form.is-tabbed { grid-template-columns: minmax(0, 1fr); max-width: none; }
.list-tools .list-search input,
.list-tools .list-filter select {
	width: 100%; max-width: 100%; min-width: 0;
	height: var(--control-h); min-height: var(--control-h);
	border: 1px solid transparent; border-radius: var(--radius-sm);
	box-sizing: border-box;
	appearance: none; -webkit-appearance: none;
	font: inherit; font-size: var(--control-fs); font-weight: 650;
	color: var(--ink);
}
.list-tools .list-search input {
	padding: var(--control-py) 0.7rem var(--control-py) 2.1rem;
	background: #eef2f8;
}
.list-tools .list-search input:focus {
	outline: 2px solid rgb(47 111 237 / 0.28); outline-offset: 1px;
	background: #fff;
}
.list-tools .list-filter select {
	padding: var(--control-py) 1.7rem var(--control-py) 0.65rem;
	background-color: #eef2f8;
	background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position: calc(100% - 0.95rem) calc(50% - 0.14rem), calc(100% - 0.62rem) calc(50% - 0.14rem);
	background-size: 0.32rem 0.32rem, 0.32rem 0.32rem;
	background-repeat: no-repeat;
}
[data-ap-panel] { display: grid; gap: 0.85rem; }
[data-ap-panel][hidden] { display: none !important; }
.ap-tabs {
	display: flex; justify-content: center; gap: 0.1rem;
	border-bottom: 1px solid var(--line); margin: 0 0 0.1rem;
}
.ap-tabs button {
	appearance: none; border: 0; background: transparent; font: inherit;
	font-weight: 800; font-size: var(--text-sm); color: var(--muted);
	padding: 0.45rem 0.85rem 0.5rem;
	border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer;
}
.ap-tabs button:hover { color: var(--navy-deep); }
.ap-tabs button.is-on { color: var(--navy); border-bottom-color: var(--navy); }

/* Account / member settings shell — Outlook / Apple Settings density */
.settings-shell {
	display: grid;
	grid-template-columns: minmax(14rem, 17.5rem) minmax(0, 1fr);
	gap: 0;
	align-items: start;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	overflow: hidden;
	min-height: 28rem;
}
.settings-nav {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.85rem 0.65rem;
	background: #f7f9fc;
	border-right: 1px solid var(--line);
	min-height: 100%;
}
.settings-nav-kicker {
	margin: 0 0.45rem 0.45rem;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}
.settings-nav-item {
	appearance: none;
	border: 0;
	background: transparent;
	display: grid;
	grid-template-columns: 1.65rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.55rem;
	width: 100%;
	min-height: 2.85rem;
	padding: 0.4rem 0.55rem;
	border-radius: 0.55rem;
	text-align: left;
	cursor: pointer;
	color: inherit;
	font: inherit;
	transition: background 0.12s ease;
}
.settings-nav-item:hover { background: #eef3fb; }
.settings-nav-item.is-on {
	background: #fff;
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--navy) 16%, var(--line));
}
.settings-nav-icon {
	width: 1.65rem;
	height: 1.65rem;
	border-radius: 0.45rem;
	display: grid;
	place-items: center;
	background: #e8eef8;
	color: var(--navy);
}
.settings-nav-icon .ms { font-size: 1.05rem; }
.settings-nav-item.is-on .settings-nav-icon {
	background: var(--navy);
	color: #fff;
}
.settings-nav-copy {
	min-width: 0;
	display: grid;
	gap: 0.05rem;
}
.settings-nav-copy strong {
	font-size: 0.88rem;
	font-weight: 750;
	color: var(--navy-deep);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.settings-nav-copy em {
	font-style: normal;
	font-size: 0.72rem;
	font-weight: 650;
	color: var(--muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.settings-nav-chevron { display: none; color: var(--muted); }
.settings-stage {
	min-width: 0;
	padding: 0.85rem 1rem 1.15rem;
	display: grid;
	gap: 0.65rem;
}
.settings-stage-head {
	display: none;
	align-items: center;
	gap: 0.65rem;
	padding-bottom: 0.35rem;
	border-bottom: 1px solid #eef1f6;
}
.settings-back {
	appearance: none;
	border: 0;
	background: transparent;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.2rem 0.35rem;
	margin: 0;
	border-radius: 0.45rem;
	color: var(--navy);
	font: inherit;
	font-size: 0.84rem;
	font-weight: 750;
	cursor: pointer;
}
.settings-back:hover { background: #eef3fb; }
.settings-stage-titles { min-width: 0; }
.settings-stage-kicker {
	margin: 0;
	font-size: 0.68rem;
	font-weight: 750;
	color: var(--muted);
}
.settings-stage-titles h2 {
	margin: 0.05rem 0 0;
	font-size: 1.05rem;
	color: var(--navy-deep);
}
.settings-rows {
	display: grid;
	gap: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	background: #fff;
	overflow: hidden;
	list-style: none;
	margin: 0;
	padding: 0;
}
.settings-row {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) auto;
	align-items: center;
	gap: 0.75rem;
	min-height: 2.85rem;
	padding: 0.55rem 0.75rem;
	border-bottom: 1px solid #eef1f6;
	margin: 0;
}
.settings-row:last-child { border-bottom: 0; }
.settings-row-copy {
	min-width: 0;
	display: grid;
	gap: 0.08rem;
}
.settings-row-copy strong {
	font-size: 0.88rem;
	font-weight: 750;
	color: var(--navy-deep);
}
.settings-row-copy em {
	font-style: normal;
	font-size: 0.74rem;
	font-weight: 650;
	color: var(--muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.settings-row-value {
	justify-self: end;
	text-align: right;
	font-size: 0.84rem;
	font-weight: 650;
	color: var(--ink, #12203a);
	max-width: 16rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.settings-row-actions {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.4rem;
	flex-wrap: wrap;
}
.settings-row-field {
	grid-template-columns: minmax(0, 1fr) minmax(8rem, 14rem);
}
.settings-row-field input[type="text"],
.settings-row-field input[type="email"],
.settings-row-actions input[type="text"] {
	width: 100%;
	min-height: 2.15rem;
	margin: 0;
}
.settings-row-switch {
	cursor: pointer;
}
.settings-row-switch input[type="checkbox"] {
	width: 1.15rem;
	height: 1.15rem;
	justify-self: end;
}
/* Account settings form rhythm */
.settings-page .mem-form.settings-form,
.settings-page .settings-form {
	display: grid;
	gap: 1rem;
}
.settings-page .form-block-head {
	margin-bottom: 0.85rem;
}
.settings-page .form-block-head h2 {
	margin-bottom: 0.25rem;
}
.settings-page .form-block-head p {
	margin-top: 0.15rem;
	line-height: 1.4;
}
.settings-page .mem-identity {
	margin: 0 0 1rem;
}
.settings-page .mem-name-grid {
	gap: 0.7rem 0.65rem;
}
.settings-page .mem-identity + .settings-rows,
.settings-page .form-block-head + .settings-rows,
.settings-page .form-block-head + .mem-identity {
	margin-top: 0;
}
.settings-page .settings-rows {
	margin-top: 0.15rem;
}
.settings-page .settings-row {
	min-height: 3rem;
	padding: 0.7rem 0.85rem;
	gap: 0.85rem;
}
.settings-page .settings-row-copy {
	gap: 0.2rem;
}
.settings-page .ap-bar {
	margin-top: 0.35rem;
}

/* Desktop website: traditional horizontal tabs (not the PWA category list). */
@media (min-width: 901px) {
	.settings-page .settings-shell {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 0.85rem;
		border: 0;
		border-radius: 0;
		background: transparent;
		overflow: visible;
		min-height: 0;
	}
	.settings-page .settings-nav,
	.settings-page .settings-stage-head {
		display: none !important;
	}
	.settings-page .settings-stage {
		display: grid;
		gap: 1rem;
		padding: 0;
		background: transparent;
	}
	.settings-page .ap-tabs.account-tabs {
		display: flex;
		justify-content: flex-start;
		margin: 0 0 0.35rem;
	}
	.settings-page .form-block {
		padding: 1rem 1.05rem 1.1rem;
	}
	.settings-page .form-block + .form-block {
		margin-top: 0.85rem;
	}
}

/* PWA / phone: category list → drill-in panels. */
@media (max-width: 900px) {
	.settings-page .ap-tabs.account-tabs {
		display: none !important;
	}
	.settings-page .form-block,
	html.is-pwa .settings-page .form-block,
	html.is-pwa .settings-page.mem-card .form-block {
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
	}
	.settings-page .form-block + .form-block {
		margin-top: 1.15rem;
		padding-top: 1rem;
		border-top: 1px solid #eef1f6;
	}
	.settings-shell {
		grid-template-columns: 1fr;
		min-height: 0;
		border: 0;
		background: transparent;
		overflow: visible;
	}
	.settings-nav {
		padding: 0;
		background: #fff;
		border: 1px solid var(--line);
		border-radius: var(--radius);
		border-right: 1px solid var(--line);
	}
	.settings-nav-kicker { margin: 0.7rem 0.85rem 0.35rem; }
	.settings-nav-item {
		border-radius: 0;
		min-height: 3.1rem;
		padding: 0.55rem 0.85rem;
		border-bottom: 1px solid #eef1f6;
	}
	.settings-nav-item:last-child { border-bottom: 0; }
	.settings-nav-item.is-on {
		box-shadow: none;
		background: #f7f9fc;
	}
	.settings-nav-chevron { display: grid; place-items: center; }
	.settings-stage {
		display: none;
		padding: 0;
		background: transparent;
	}
	.settings-shell.is-open .settings-nav { display: none; }
	.settings-shell.is-open .settings-stage {
		display: grid;
		gap: 0.75rem;
	}
	.settings-stage-head { display: flex; }
	.settings-row {
		grid-template-columns: minmax(0, 1fr) auto;
		min-height: 3rem;
	}
	.settings-row-field {
		grid-template-columns: 1fr;
		gap: 0.35rem;
	}
	.settings-row-value { max-width: 10rem; }
}
@media (prefers-reduced-motion: reduce) {
	.settings-nav-item,
	.cm-row { transition: none; }
}
.ap-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 28;
	display: flex; align-items: center; gap: 0.45rem;
	margin: 0; min-height: 3.35rem;
	padding: 0.45rem 1rem calc(0.45rem + env(safe-area-inset-bottom));
	background: rgb(255 255 255 / 0.96); backdrop-filter: blur(16px);
	border: 0; border-top: 1px solid var(--line); border-radius: 0;
	box-shadow: 0 -8px 22px rgb(18 37 77 / 0.07);
}
.ap-bar form { margin: 0; display: flex; }
.ap-assign-list { border-radius: var(--radius-sm); }
.ap-bar-back { margin-right: auto; }
.ap-bar-danger { display: flex; margin: 0; }
.ap-bar .btn {
	appearance: none; -webkit-appearance: none;
	box-sizing: border-box;
	min-height: var(--control-h); height: var(--control-h);
	padding: 0 0.9rem;
	white-space: nowrap; border-radius: var(--radius-sm);
}
.ap-bar a.btn {
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--navy-deep); text-decoration: none;
}
.ap-bar .btn-secondary,
.ap-bar .ap-bar-back {
	background: #fff; border: 1px solid var(--line); color: var(--navy-deep);
}
.ap-bar .btn-primary { min-width: 8.6rem; }
.ap-bar-short { display: none; }
	@media (min-width: 960px) {
	.ap-bar { left: var(--mgr-sidebar); padding-left: 1.35rem; padding-right: 1.35rem; }
}
body:has(.ap-bar) .main { padding-bottom: 4.75rem; }
body:has(.ap-bar) .main.has-aside > .main-flow { padding-bottom: 4.75rem; }
.ap-fleet {
	display: grid; gap: 0.5rem;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.ap-fleet-card {
	display: grid; grid-template-columns: 4.5rem minmax(0, 1fr);
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	overflow: hidden; text-decoration: none; color: inherit; min-height: 5.4rem;
}
.ap-fleet-card:hover { border-color: rgb(29 59 120 / 0.3); background: #fafbfd; }
.ap-fleet-photo {
	background: #e8edf5; display: grid; place-items: center;
	color: var(--navy); font-weight: 800; font-size: 1rem;
	align-self: stretch;
	min-width: 4.5rem;
	min-height: 5.4rem;
}
.ap-fleet-photo img {
	width: 100%; height: 100%; max-width: none; object-fit: cover; display: block;
}
.ap-fleet-copy {
	padding: 0.55rem 0.65rem; display: grid; align-content: start; gap: 0.12rem; min-width: 0;
}
.ap-fleet-copy strong { color: var(--navy-deep); font-size: 0.9rem; letter-spacing: -0.02em; }
.ap-fleet-copy span, .ap-fleet-copy p, .ap-fleet-copy em {
	margin: 0; color: var(--muted); font-size: 0.75rem; font-weight: 650; font-style: normal;
}
.ap-fleet-meta { display: flex; flex-wrap: wrap; gap: 0.45rem 0.8rem; align-items: center; margin-top: 0.35rem; }
/* Apparatus fleet: full photo + label/status only */
body.is-apparatus-page .ap-fleet {
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 0.85rem;
}
body.is-apparatus-page .ap-fleet-card {
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto minmax(0, auto);
	min-height: 0;
	align-items: stretch;
}
body.is-apparatus-page .ap-fleet-photo {
	width: 100%;
	min-width: 0;
	max-width: none;
	aspect-ratio: 16 / 10;
	min-height: 10rem;
	height: auto;
	max-height: none;
	background: #eef2f8;
	overflow: hidden;
}
body.is-apparatus-page .ap-fleet-photo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	background: #eef2f8;
}
body.is-apparatus-page .ap-fleet-photo > span {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 10rem;
}
body.is-apparatus-page .ap-fleet-copy {
	padding: 0.7rem 0.8rem 0.8rem;
	gap: 0.45rem;
	align-content: start;
}
body.is-apparatus-page .ap-fleet-copy strong {
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.25;
	white-space: normal;
}
body.is-apparatus-page .ap-fleet-meta {
	margin-top: 0;
	gap: 0.35rem 0.55rem;
}
body.is-apparatus-page .ap-fleet-meta em {
	font-style: normal;
	font-size: 0.72rem;
	font-weight: 750;
	padding: 0.16rem 0.45rem;
	border-radius: 999px;
	background: #eef3fb;
	color: var(--navy);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.ap-layout .form-block-head { margin-bottom: 0.65rem; }
.ap-layout .form-block-head h2 { font-size: 1.05rem; }
.ap-layout .ap-board { margin-top: 0; }
.ap-toolbar {
	display: grid;
	grid-template-columns: minmax(10rem, 1.15fr) minmax(10rem, 1fr) minmax(10rem, 1fr) auto auto;
	align-items: end;
	justify-content: center;
	gap: 0.85rem 1.1rem;
	width: 100%;
	box-sizing: border-box;
	padding: 0.95rem 1.2rem 1.05rem;
	margin: 0 0 1rem;
	background: #f4f7fb;
	border: 1px solid var(--line);
	border-radius: 0.45rem;
}
.ap-toolfield {
	display: grid;
	justify-items: center;
	margin: 0;
	width: 100%;
	font-size: 0.72rem;
	font-weight: 800;
	color: var(--muted);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
}
.ap-toolfield select, .ap-toolfield input {
	margin-top: 0.3rem;
	width: 100%;
	text-align: center;
}
.ap-toolfield select { min-width: 0; }
.ap-range { gap: 0.2rem; }
.ap-range-label {
	display: flex; justify-content: center; align-items: baseline; gap: 0.4rem; width: 100%;
}
.ap-range-label em {
	font-style: normal; color: var(--navy); font-size: 1.08rem; font-weight: 800; min-width: 1.05rem;
}
.ap-range input[type="range"] {
	-webkit-appearance: none; appearance: none;
	width: 100%; height: 2.4rem; margin: 0; padding: 0;
	background: transparent; border: 0; min-height: 0; cursor: grab;
}
.ap-range input[type="range"]:active { cursor: grabbing; }
.ap-range input[type="range"]:disabled { cursor: not-allowed; opacity: 0.55; }
.ap-range input[type="range"]:focus { outline: none; }
.ap-range input[type="range"]::-webkit-slider-runnable-track {
	height: 0.42rem; border-radius: 0.2rem;
	background: linear-gradient(to right, var(--navy) var(--fill, 0%), #cfd7e6 var(--fill, 0%));
}
.ap-range input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none; appearance: none;
	width: 1.2rem; height: 1.2rem; margin-top: -0.39rem;
	background: var(--navy); border: 2px solid #fff; border-radius: 0.28rem;
	box-shadow: 0 1px 5px rgb(18 37 77 / 0.28); cursor: grab;
}
.ap-range input[type="range"]:active::-webkit-slider-thumb { cursor: grabbing; }
.ap-range input[type="range"]:focus-visible::-webkit-slider-thumb {
	outline: 2px solid var(--blue); outline-offset: 2px;
}
.ap-range input[type="range"]::-moz-range-track {
	height: 0.42rem; border: 0; border-radius: 0.2rem; background: #cfd7e6;
}
.ap-range input[type="range"]::-moz-range-progress {
	height: 0.42rem; border-radius: 0.2rem; background: var(--navy);
}
.ap-range input[type="range"]::-moz-range-thumb {
	width: 1.2rem; height: 1.2rem; border: 2px solid #fff; border-radius: 0.28rem;
	background: var(--navy); box-shadow: 0 1px 5px rgb(18 37 77 / 0.28); cursor: grab;
}
.check-row.ap-layout-publish {
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0 0 0.95rem;
	padding: 0.9rem 1rem;
	border: 1px solid #cfe7db;
	border-radius: 0.9rem;
	background: #f3faf6;
}
.ap-layout-publish span {
	display: grid;
	gap: 0.2rem;
	min-width: 0;
}
.ap-layout-publish strong {
	font-size: 0.95rem;
	color: var(--navy-deep);
}
.ap-layout-publish em {
	font-style: normal;
	font-size: 0.82rem;
	font-weight: 650;
	color: var(--muted);
	line-height: 1.45;
}
.ap-tiller {
	margin: 0;
	justify-self: center;
	align-self: end;
	min-height: var(--control-h);
	font-size: var(--text-sm);
}
.ap-toolbar .btn {
	align-self: end;
	min-height: var(--control-h);
	height: var(--control-h);
	padding: 0 0.9rem;
	white-space: nowrap;
}
@media (max-width: 720px) {
	.ap-toolbar { grid-template-columns: 1fr 1fr; }
	.ap-toolfield:first-child,
	.ap-toolbar .btn { grid-column: 1 / -1; }
}
.ap-stage {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(16.5rem, 0.9fr);
	gap: 0.85rem;
	align-items: start;
	text-align: left;
	background: transparent;
	border: 0;
	padding: 0;
}
.ap-rig-nav {
	grid-column: 1 / -1;
	display: flex;
	gap: 0.45rem;
	overflow-x: auto;
	padding: 0.05rem 0 0.1rem;
	scrollbar-width: none;
}
.ap-rig-nav::-webkit-scrollbar { display: none; }
.ap-rig-nav button {
	flex: none;
	appearance: none;
	border: 1px solid var(--line);
	background: #fff;
	color: #334155;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 800;
	padding: 0.48rem 0.85rem;
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
}
.ap-rig-nav button:hover { border-color: var(--navy); color: var(--navy-deep); }
.ap-rig-nav button.is-on {
	background: var(--navy);
	border-color: var(--navy);
	color: #fff;
}
.ap-map { text-align: left; min-width: 0; }
.ap-dir {
	margin: 0 0 0.35rem;
	text-align: center;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #93a4c2;
}
.ap-rig {
	width: 100%;
	margin: 0;
	background: linear-gradient(180deg, #1a2744 0%, #122033 100%);
	border: 0;
	border-radius: 1.15rem;
	padding: 0.85rem 0.75rem 0.9rem;
	display: grid;
	gap: 0.45rem;
	color: #e8eef8;
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.08), 0 16px 36px rgb(15 23 42 / 0.18);
}
.ap-rig-cab {
	display: grid;
	gap: 0.4rem;
	text-align: left;
	border: 1px solid rgb(255 255 255 / 0.12);
	background: rgb(255 255 255 / 0.06);
	border-radius: 1rem 1rem 0.45rem 0.45rem;
	padding: 0.45rem 0.45rem 0.55rem;
	cursor: default;
}
.ap-rig-cab.is-hot, .ap-rig-side.is-hot, .ap-rig-tiller.is-hot {
	border-color: rgb(255 255 255 / 0.45);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.18);
}
.ap-rig-cab-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.5rem;
	width: 100%;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	padding: 0.15rem 0.25rem;
	cursor: pointer;
	text-align: left;
	border-radius: 0.45rem;
}
.ap-rig-cab-head:hover { background: rgb(255 255 255 / 0.08); }
.ap-rig-cab-head strong { font-size: 0.9rem; }
.ap-rig-cab-head span { font-size: 0.7rem; font-weight: 700; color: #93a4c2; }
.ap-rig-cab .ap-cab { width: auto; margin: 0; padding: 0; border: 0; background: transparent; border-radius: 0; }
.ap-row em, .ap-rig-side em {
	display: block;
	margin: 0 0 0.28rem;
	text-align: left;
	font-style: normal;
	font-size: 0.58rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #93a4c2;
}
.ap-pockets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(4.6rem, 1fr));
	gap: 0.32rem;
}
.ap-seat {
	width: auto;
	height: auto;
	min-height: 2.7rem;
	border: 1px solid rgb(255 255 255 / 0.14);
	background: #fff;
	border-radius: 0.55rem;
	padding: 0.55rem 0.6rem;
	cursor: pointer;
	font: inherit;
	display: grid;
	place-items: center;
	text-align: center;
	color: #122033;
	touch-action: manipulation;
}
.ap-seat span { font-size: 0.78rem; font-weight: 800; line-height: 1.15; }
.ap-seat:hover, .ap-pocket:hover { border-color: #fff; }
.ap-seat.is-on, .ap-pocket.is-on, .ap-rig-cab-head.is-on {
	background: var(--navy);
	color: #fff;
	border-color: #fff;
	box-shadow: 0 0 0 2px rgb(255 255 255 / 0.35);
}
.ap-pocket.is-on span, .ap-rig-cab-head.is-on span { color: rgb(255 255 255 / 0.78); }
.ap-rig-body {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem;
}
.ap-rig-stack { display: grid; gap: 0.32rem; }
.ap-rig-side {
	background: rgb(255 255 255 / 0.05);
	border: 1px solid rgb(255 255 255 / 0.1);
	border-radius: 0.7rem;
	padding: 0.45rem;
}
.ap-rig-side.is-wide { grid-column: 1 / -1; }
.ap-rig-side.is-wide .ap-rig-stack {
	display: flex; flex-wrap: wrap; gap: 0.32rem;
}
.ap-rig-side.is-wide .ap-pocket { flex: 1 1 5.5rem; }
.ap-rig-side .help { margin: 0; color: #93a4c2; font-size: 0.78rem; }
.ap-rig-tiller {
	border: 1px dashed rgb(255 255 255 / 0.2);
	border-radius: 0.7rem;
	padding: 0.45rem;
}
.ap-pocket {
	display: grid; gap: 0.08rem; text-align: left;
	border: 1px solid rgb(255 255 255 / 0.14); background: #fff; border-radius: 0.55rem;
	padding: 0.55rem 0.6rem; font: inherit; cursor: pointer; color: #122033;
	min-width: 5rem;
	touch-action: manipulation;
}
.ap-pocket strong { font-size: 0.8rem; }
.ap-pocket span { font-size: 0.68rem; color: #5b6578; font-weight: 700; }
.ap-add-pocket {
	margin-top: 0.3rem; width: 100%; border: 1px dashed rgb(255 255 255 / 0.28);
	background: transparent; color: #c5d4ea; font: inherit; font-size: 0.72rem;
	font-weight: 800; border-radius: 0.55rem; padding: 0.45rem 0.5rem; cursor: pointer;
}
.ap-add-pocket:hover { border-color: #fff; background: rgb(255 255 255 / 0.08); color: #fff; }
.ap-inspect {
	margin: 0; padding: 1rem 1.05rem 1.1rem; background: #f4f7fb;
	border: 1px solid #e2e8f0; border-radius: 1rem;
	width: auto; text-align: left; min-width: 0;
	position: sticky; top: 0.75rem;
	max-height: min(34rem, calc(100vh - 9rem)); overflow: auto;
	display: grid; gap: 0.45rem; align-content: start; min-height: 10rem;
}
.ap-inspect .form-kicker {
	margin: 0;
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	color: var(--navy);
}
.ap-inspect h3 {
	margin: 0;
	font-size: 1.2rem;
	color: var(--navy-deep);
	letter-spacing: -0.03em;
}
.ap-inspect label { margin-top: 0; }
.ap-inspect .help { margin: 0; }
.ap-inspect-stats {
	list-style: none;
	margin: 0.2rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.45rem;
}
.ap-inspect-stats li {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 0.7rem;
	padding: 0.55rem 0.45rem;
	text-align: center;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--muted);
}
.ap-inspect-stats strong { display: block; font-size: 1.15rem; color: var(--navy-deep); }
.ap-inspect-top {
	display: grid; grid-template-columns: minmax(0, 1fr);
	gap: 0.55rem; align-items: end; margin-bottom: 0.15rem;
}
.ap-inspect-name { margin: 0; }
.ap-inspect-name input { margin-top: 0.25rem; }
.ap-assign {
	display: grid; grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.45rem; align-items: stretch;
}
.ap-assign input[type="search"] { margin: 0; }
.ap-assign .btn { height: 2.75rem; padding: 0 0.95rem; }
.ap-assign-list {
	grid-column: 1 / -1; list-style: none; margin: 0; padding: 0; display: grid; gap: 0;
	max-height: 8.5rem; overflow: auto; border: 1px solid var(--line);
	border-radius: 0.45rem; background: #f7f9fc;
}
.ap-assign-list li { margin: 0; }
.ap-assign-list button {
	width: 100%; text-align: left; border: 0; background: transparent;
	padding: 0.45rem 0.6rem; font: inherit; cursor: pointer; display: grid; gap: 0.05rem;
}
.ap-assign-list button:hover { background: #fff; }
.ap-assign-list strong { font-size: 0.86rem; color: var(--navy-deep); }
.ap-assign-list span { font-size: 0.72rem; color: var(--muted); font-weight: 650; }
.ap-tool-heading {
	margin: 0.35rem 0 0; font-size: 0.68rem; font-weight: 800;
	letter-spacing: 0.1em; text-transform: uppercase; color: var(--navy);
}
.ap-tool-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.ap-tool-list .help { margin: 0; padding: 0.35rem 0; }
.ap-tool {
	border: 0; border-bottom: 1px solid #e8edf5; border-radius: 0;
	padding: 0.32rem 0; background: transparent;
	display: grid; grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.35rem; align-items: center;
}
.ap-tool:last-child { border-bottom: 0; }
.ap-tool-name {
	display: grid; gap: 0.02rem; min-width: 0;
	text-decoration: none; color: var(--navy-deep);
	font-weight: 800; font-size: 0.86rem; line-height: 1.2;
}
.ap-tool-name strong { font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-tool-name em { font-style: normal; font-weight: 650; font-size: 0.7rem; color: var(--muted); }
a.ap-tool-name:hover { color: var(--navy); }
.ap-page .ap-tool-name.is-plain,
.ap-tool-name.is-plain {
	width: 100%; border: 0; background: transparent; box-shadow: none;
	padding: 0; min-height: 0; height: auto; border-radius: 0;
	font: inherit; font-weight: 800; font-size: 0.86rem;
	color: var(--navy-deep);
	appearance: none; -webkit-appearance: none;
}
.ap-tool-end { display: flex; align-items: center; gap: 0.1rem; }
.ap-tool-count { font-size: 0.78rem; font-weight: 800; color: var(--muted); }
.ap-tool-step {
	display: inline-flex; align-items: center; gap: 0.05rem;
	font-size: 0.78rem; font-weight: 800; color: var(--navy-deep);
}
.ap-tool-step button {
	width: 1.3rem; height: 1.3rem; border: 0; background: transparent;
	padding: 0; cursor: pointer; color: var(--muted); font: inherit;
	border-radius: 0.25rem; line-height: 1;
}
.ap-tool-step button:hover:not(:disabled) { background: #e8edf5; color: var(--navy); }
.ap-tool-step button:disabled { opacity: 0.35; cursor: default; }
.ap-tool-public { margin: 0; font-size: 0.8rem; }
.ap-tool-link {
	grid-column: 1 / -1; font-size: 0.72rem; color: var(--muted); font-weight: 700;
	text-decoration: none;
}
a.ap-tool-link { color: var(--navy); }
.ap-icon-btn {
	border: 0; background: transparent; color: var(--muted); font: inherit;
	font-size: 1.15rem; line-height: 1; width: 1.6rem; height: 1.6rem; cursor: pointer;
	border-radius: 0.35rem;
}
.ap-icon-btn:hover { background: #fee4e2; color: var(--danger); }
.ap-remove {
	margin-top: 0.55rem; border: 0; background: none; padding: 0;
	font: inherit; font-size: 0.8rem; font-weight: 800; color: var(--danger); cursor: pointer;
}
@media (max-width: 860px) {
	.ap-stage { grid-template-columns: 1fr; }
	.ap-inspect { position: static; max-height: none; }
}
.public-apparatus .public-card img {
	width: 100%; height: 160px; object-fit: cover; border-radius: 0.7rem; margin: 0 0 0.7rem; display: block;
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; }
}
.stat strong .fund-limit {
	font-style: normal; font-size: 1rem; font-weight: 700; color: var(--muted); letter-spacing: 0;
}
.fund-desk { display: grid; gap: 1.1rem; }
@media (min-width: 1100px) {
	.fund-desk { grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr); align-items: start; }
}
.fund-desk-main, .fund-desk-side { display: grid; gap: 1rem; }
.fund-sale .actions { margin-top: 1rem; }
.fund-roster { margin-top: 1.1rem; border-top: 1px solid var(--line); padding-top: 0.85rem; }
.fund-roster summary {
	cursor: pointer; font-weight: 800; color: var(--navy); list-style: none;
}
.fund-roster summary::-webkit-details-marker { display: none; }
.fund-roster-list {
	display: grid; gap: 0.35rem; margin: 0.75rem 0 0; max-height: 16rem; overflow: auto;
	padding-right: 0.25rem;
}
.fund-roster .check-row { margin: 0; padding: 0.45rem 0.55rem; border-radius: 0.7rem; }
.fund-roster .check-row:hover { background: var(--surface); }
.fund-roster em { font-style: normal; color: var(--muted); font-weight: 600; }
.fund-batches { margin-top: 0.85rem; }
.fund-stage {
	display: grid; gap: 1.4rem; align-items: center;
	margin: 0 0 1.15rem; padding: 1.4rem 1.35rem 1.45rem;
	background: #0f1f42; color: #fff; border-radius: 12px;
	border: 1px solid #0f1f42;
}
@media (min-width: 900px) {
	.fund-stage { grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 2rem; padding: 1.7rem 1.8rem; }
}
.fund-stage-wheel { display: grid; justify-items: center; gap: 0.95rem; }
.fund-wheel-wrap {
	position: relative; width: min(320px, 100%); aspect-ratio: 1;
}
.fund-pointer {
	position: absolute; top: -6px; left: 50%; z-index: 3;
	width: 0; height: 0; transform: translateX(-50%);
	border-left: 11px solid transparent; border-right: 11px solid transparent;
	border-top: 20px solid #e23c4a;
	filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.25));
}
.fund-wheel {
	width: 100%; height: 100%; border-radius: 50%; overflow: hidden;
	box-shadow: 0 0 0 8px #fff, 0 18px 40px rgb(0 0 0 / 0.28);
	will-change: transform;
}
.fund-wheel svg { display: block; width: 100%; height: 100%; }
.fund-hub {
	position: absolute; left: 50%; top: 50%; z-index: 2;
	width: 70px; height: 70px; margin: -35px 0 0 -35px;
	border-radius: 50%; background: #0f1f42; color: #fff;
	display: grid; place-items: center;
	font-size: 0.68rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
	box-shadow: 0 0 0 6px #fff;
}
.fund-spin { min-width: 10rem; }
.fund-stage .help, .fund-stage .form-kicker, .fund-stage h2, .fund-stage p { color: #d7deea; }
.fund-stage h2 { margin: 0.2rem 0 0.35rem; color: #fff; font-size: 1.55rem; letter-spacing: -0.03em; }
.fund-stage .form-kicker { color: #f0a8ae; }
.fund-stage .btn-secondary { background: #fff; color: var(--navy-deep); }
.fund-winners { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.65rem; }
.fund-winners li {
	display: grid; gap: 0.12rem; padding: 0.85rem 0.95rem;
	background: rgb(255 255 255 / 0.08); border: 1px solid rgb(255 255 255 / 0.14); border-radius: 10px;
}
.fund-winners .fund-place {
	font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #f0a8ae;
}
.fund-winners strong { color: #fff; }
.fund-winners em { font-style: normal; color: #c5cedb; font-weight: 700; font-size: 0.86rem; }
.fund-desk-side .btn-danger { width: 100%; margin-top: 0.75rem; }
.public-fund-grid { display: grid; gap: 1rem; margin-top: 1.25rem; }
@media (min-width: 800px) { .public-fund-grid { grid-template-columns: 1fr 1fr; } }
.public-fund-card {
	display: grid; gap: 0; overflow: hidden; text-decoration: none; color: inherit;
	background: #fff; border: 1px solid var(--line); border-radius: 12px;
	box-shadow: 0 10px 28px rgb(18 37 77 / 0.05);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.public-fund-card:hover { border-color: var(--navy); box-shadow: 0 16px 36px rgb(18 37 77 / 0.08); }
.public-fund-card img { width: 100%; height: 180px; object-fit: cover; display: block; background: var(--surface); }
.public-fund-copy { display: grid; gap: 0.45rem; padding: 1.1rem 1.2rem 1.2rem; }
.public-fund-card h3 { margin: 0; font-size: 1.2rem; letter-spacing: -0.03em; color: var(--navy-deep); }
.public-fund-prize { margin: 0; font-weight: 700; color: var(--navy); }
.public-fund-meter {
	height: 6px; border-radius: 99px; background: #e8edf5; overflow: hidden; margin-top: 0.2rem;
}
.public-fund-meter i { display: block; height: 100%; background: var(--coral); border-radius: 99px; }
.public-fund-facts .public-fund-meter { margin-top: 0.55rem; }
.public-pay {
	width: min(1040px, calc(100% - 2.5rem)); margin: 1.6rem auto 0;
	padding: 1.3rem 1.35rem 1.4rem; border: 1px solid var(--line); border-radius: 12px; background: #fff;
}
.public-pay h2 { margin: 0 0 0.25rem; }
.public-pay-form { display: grid; gap: 0.75rem; margin-top: 1rem; max-width: 32rem; }
.public-pay-form label { display: grid; gap: 0.35rem; font-weight: 700; }
.public-pay-row { display: grid; gap: 0.75rem; }
@media (min-width: 640px) { .public-pay-row { grid-template-columns: 1.4fr 0.8fr; } }
.public-pay-card {
	min-height: 90px; padding: 0.75rem; border: 1px solid var(--line); border-radius: 10px; background: #f7f9fc;
}
.public-pay-total { margin: 0; font-weight: 800; color: var(--navy-deep); font-size: 1.15rem; }
.public-fund-facts {
	display: grid; gap: 0.75rem; margin: 0 0 1.6rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 800px) {
	.public-fund-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.public-fund-facts div {
	border: 1px solid var(--line); border-radius: 1rem; padding: 0.9rem 1rem; background: var(--surface);
}
.public-fund-facts span {
	display: block; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--muted);
}
.public-fund-facts strong { display: block; margin-top: 0.2rem; color: var(--navy-deep); font-size: 1.15rem; }
.public-fund-winners { margin: 1.8rem 0 0; }
.public-fund-winners h2 { margin: 0 0 0.7rem; }
.public-fund-winners ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.public-fund-winners li {
	display: flex; flex-wrap: wrap; gap: 0.45rem 0.85rem; align-items: baseline;
	padding: 0.85rem 1rem; border: 1px solid var(--line); border-radius: 0.95rem; background: #fff;
}
.public-fund-winners li span { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--coral); }
.public-fund-winners em { font-style: normal; color: var(--muted); font-weight: 700; }
.fund-print { max-width: 48rem; text-align: left; }
.fund-print h2 { font-size: 1.1rem; margin: 1.2rem 0 0.5rem; }
.fund-print-table { width: 100%; border-collapse: collapse; margin-top: 1rem; font-size: 0.92rem; }
.fund-print-table th, .fund-print-table td {
	text-align: left; padding: 0.45rem 0.4rem; border-bottom: 1px solid var(--line);
}
.fund-print-table th { font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.fund-print-table tr.is-void td { color: var(--muted); text-decoration: line-through; }

.pay-grid { display: grid; gap: 1rem; }
.pay-provider {
	display: grid; gap: 1.1rem;
	border: 1px solid var(--line); border-radius: 1.1rem;
	padding: 1.2rem 1.25rem 1.25rem; background: #fff;
}
@media (min-width: 840px) {
	.pay-provider { grid-template-columns: 1fr minmax(14rem, auto); align-items: start; }
}
.pay-provider-brand {
	display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem 0.7rem;
	margin: 0 0 0.45rem; color: var(--navy-deep);
}
.pay-provider-brand strong { font-size: 1.15rem; }
.pay-provider-mark {
	display: grid; place-items: center; width: 2rem; height: 2rem;
	border-radius: 0.55rem; background: var(--navy); color: #fff;
	font-size: 0.85rem; font-weight: 800;
}
.pay-provider-copy p { margin: 0; color: var(--muted); line-height: 1.5; }
.pay-provider-meta { margin-top: 0.55rem !important; font-size: 0.9rem; font-weight: 600; color: var(--navy-deep) !important; }
.pay-provider-error { color: var(--danger) !important; }
.pay-provider-actions { display: grid; gap: 0.55rem; justify-items: start; }
.pay-status {
	display: inline-flex; align-items: center;
	font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
	border-radius: 999px; padding: 0.28rem 0.65rem;
}
.pay-status-on { background: #d1fadf; color: var(--ok); }
.pay-status-off { background: #eef1f6; color: var(--muted); }
.pay-status-err { background: #fee4e2; color: var(--danger); }
.pay-elig {
	list-style: none; margin: 0.7rem 0 0; padding: 0;
	display: grid; gap: 0.35rem;
}
.pay-elig li {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-size: 0.86rem; font-weight: 700;
}
.pay-elig li::before {
	content: ""; width: 0.55rem; height: 0.55rem; border-radius: 50%;
	background: var(--muted);
}
.pay-elig li.is-on { color: var(--ok); }
.pay-elig li.is-on::before { background: var(--ok); }
.pay-elig li.is-off { color: var(--muted); }
.pay-elig li.is-off::before { background: #c5cad3; }
.post-kind-sale:has(input:checked) { box-shadow: 0 0 0 3px rgb(15 157 154 / 0.16); border-color: #0f9d9a; }
.post-thumb-sale { background: #d9f5f1; color: #0f766e; }

.pay-layout { display: grid; gap: 1.1rem; }
@media (min-width: 1100px) {
	.pay-layout { grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr); align-items: start; }
}
.pay-account-row { display: grid; gap: 1.1rem; }
@media (min-width: 840px) {
	.pay-account-row { grid-template-columns: minmax(0, 1fr) minmax(14rem, auto); align-items: start; }
}
.pay-side { display: grid; gap: 1rem; align-content: start; }
.pay-steps {
	list-style: none; margin: 0; padding: 0; display: grid; gap: 0.95rem;
	counter-reset: paystep;
}
.pay-steps li {
	position: relative; padding-left: 2.35rem; display: grid; gap: 0.18rem;
}
.pay-steps li::before {
	counter-increment: paystep; content: counter(paystep);
	position: absolute; left: 0; top: 0.05rem;
	width: 1.55rem; height: 1.55rem; border-radius: 999px;
	display: grid; place-items: center;
	background: #e8edf5; color: var(--navy); font-size: 0.72rem; font-weight: 800;
}
.pay-steps strong { color: var(--navy-deep); font-size: 0.95rem; }
.pay-steps span { color: var(--muted); font-size: 0.85rem; font-weight: 600; line-height: 1.4; }
.pay-switch-stack { margin-top: 0.7rem; }
.form-block .switch { margin-top: 0.75rem; }
.post-side .form-block-head + .switch { margin-top: 0.75rem; }
.switch.is-locked { opacity: 0.78; cursor: default; background: #f6f8fc; }
.switch.is-locked:hover { border-color: var(--line); }

.store-form .upload { min-height: 188px; }
.store-form .upload-mark img { object-fit: cover; }
.store-form .identity-fields textarea { min-height: 6.2rem; }
.store-options { display: grid; gap: 0.5rem; margin-top: 0.95rem; }
.store-options-label { margin: 0; font-weight: 700; font-size: 0.92rem; }
.store-orders { margin-top: 1.5rem; }
.store-live { margin: 0 0 0.85rem; }
.store-form .post-side .actions .btn-danger { width: 100%; }

.hp { position: absolute; left: -9999px; height: 0; width: 0; opacity: 0; }
.profile-body { margin: 0; background: #f6f8fc; color: var(--ink); --hall-brand: var(--navy); }
.profile-preview-bar {
	background: #111827; color: #fff; text-align: center; font-size: 0.82rem; font-weight: 700;
	padding: 0.45rem 1rem;
}
.profile-top { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; }
.profile-top-inner {
	max-width: 72rem; margin: 0 auto; padding: 0.7rem 1.1rem;
	display: flex; flex-wrap: wrap; gap: 0.7rem 1.1rem; align-items: center; justify-content: space-between;
}
.profile-mark { display: flex; align-items: center; gap: 0.65rem; color: var(--navy-deep); text-decoration: none; font-weight: 800; }
.profile-mark img { width: 2.2rem; height: 2.2rem; object-fit: cover; border-radius: 0.55rem; }
.profile-tabs { display: flex; flex-wrap: wrap; gap: 0.2rem; align-items: center; }
.profile-tabs a {
	text-decoration: none; color: var(--muted); font-weight: 700; font-size: 0.92rem;
	padding: 0.45rem 0.7rem; border-radius: 999px;
}
.profile-tabs a.is-on, .profile-tabs a:hover { color: var(--navy-deep); background: #eef3fb; }
.profile-login { background: var(--hall-brand) !important; color: #fff !important; }
.profile-main { max-width: 72rem; margin: 0 auto; padding: 1.4rem 1.1rem 3rem; }
.profile-hero { position: relative; border-radius: 1.4rem; overflow: hidden; background: linear-gradient(160deg, var(--hall-brand), #0f172a); min-height: 16rem; margin-bottom: 1.5rem; }
.profile-cover { width: 100%; height: 16rem; object-fit: cover; display: block; }
.profile-hero-card {
	position: relative; margin: -4.2rem 1.1rem 1.2rem; background: #fff; border-radius: 1.2rem;
	padding: 1.2rem 1.3rem 1.4rem; box-shadow: var(--shadow);
}
.profile-hero.has-cover .profile-hero-card { margin-top: -4.2rem; }
.profile-logo { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 1rem; margin-bottom: 0.7rem; border: 3px solid #fff; }
.profile-kicker { margin: 0 0 0.35rem; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--hall-brand); }
.profile-kicker a { color: inherit; }
.profile-hero-card h1, .profile-page-head h1, .profile-article h1 { margin: 0 0 0.35rem; font-size: clamp(1.7rem, 4vw, 2.6rem); letter-spacing: -0.04em; color: var(--navy-deep); }
.profile-place, .profile-lede, .profile-meta { color: var(--muted); margin: 0.2rem 0; }
.profile-lede { font-size: 1.05rem; line-height: 1.5; }
.profile-section, .profile-page-head, .profile-article { background: #fff; border: 1px solid var(--line); border-radius: 1.2rem; padding: 1.2rem 1.3rem 1.4rem; margin: 0 0 1rem; }
.profile-section h2, .profile-section h3 { margin: 0 0 0.7rem; color: var(--navy-deep); }
.profile-section-head { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.profile-section-head a, .profile-more { font-weight: 800; font-size: 0.9rem; }
.profile-mission { font-size: 1.1rem; line-height: 1.5; color: var(--navy-deep); }
.profile-prose { line-height: 1.65; color: #334155; }
.profile-feed, .profile-grid, .profile-people, .profile-gallery-grid { display: grid; gap: 0.85rem; }
@media (min-width: 720px) {
	.profile-feed, .profile-people { grid-template-columns: 1fr 1fr; }
	.profile-grid, .profile-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.profile-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
}
.profile-card, .profile-tile, .profile-unit, .profile-person, .directory-card {
	display: grid; gap: 0.45rem; text-decoration: none; color: inherit;
	border: 1px solid var(--line); border-radius: 1.05rem; padding: 0.9rem; background: #fff;
}
.profile-card img, .profile-tile img, .profile-unit img, .profile-feature img, .profile-gallery img { width: 100%; border-radius: 0.8rem; object-fit: cover; }
.profile-card img { max-height: 10rem; }
.profile-unit img, .profile-feature img { max-height: 18rem; }
.profile-card strong, .profile-tile strong, .profile-unit strong, .profile-person strong { color: var(--navy-deep); }
.profile-events { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.profile-events li { display: grid; gap: 0.15rem; padding: 0.8rem 0; border-bottom: 1px solid var(--line); }
.profile-events em { color: var(--muted); font-style: normal; }
.profile-empty { background: #fff; border: 1px dashed var(--line); border-radius: 1.2rem; padding: 2rem; text-align: center; color: var(--muted); }
.profile-filters { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1rem; }
.profile-filters a {
	text-decoration: none; color: var(--muted); font-weight: 700; font-size: 0.85rem;
	padding: 0.35rem 0.7rem; border-radius: 999px; border: 1px solid var(--line); background: #fff;
}
.profile-filters a.is-on { background: var(--hall-brand); color: #fff; border-color: var(--hall-brand); }
.profile-person { grid-template-columns: 4.2rem minmax(0, 1fr); align-items: start; }
.profile-person img, .profile-initials {
	width: 4.2rem; height: 4.2rem; border-radius: 999px; object-fit: cover;
}
.profile-initials { display: grid; place-items: center; background: #eef3fb; color: var(--navy); font-weight: 800; }
.profile-unit-ph { height: 8rem; display: grid; place-items: center; background: #eef3fb; border-radius: 0.8rem; font-weight: 800; color: var(--navy); }
.profile-gallery { display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); margin-top: 1rem; }
.profile-recruit { background: linear-gradient(180deg, #fff, #eef3fb); }
.profile-buy, .profile-contact-form, .directory-form { display: grid; gap: 0.45rem; }
.profile-buy input, .profile-contact-form input, .profile-contact-form textarea,
.directory-form input, .directory-form select { width: 100%; }
.profile-foot { border-top: 1px solid var(--line); background: #fff; }
.profile-foot-inner {
	max-width: 72rem; margin: 0 auto; padding: 1rem 1.1rem; display: flex; flex-wrap: wrap; gap: 0.7rem 1.2rem;
	justify-content: space-between; color: var(--muted); font-size: 0.88rem;
}
.directory-head { margin-bottom: 1rem; }
.directory-grid { display: grid; gap: 0.7rem; }
@media (min-width: 720px) { .directory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.directory-near { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: end; margin-top: 0.8rem; }
.directory-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.7rem; }
.directory-card { grid-template-columns: 3.4rem minmax(0, 1fr); align-items: center; }
.directory-card img { width: 3.4rem; height: 3.4rem; border-radius: 0.8rem; object-fit: cover; }
.directory-card em { color: var(--muted); font-style: normal; font-size: 0.88rem; }
.inv-place {
	border: 1px solid var(--line); border-radius: 0.45rem; background: #f8fafc;
	padding: 0.85rem 0.95rem; display: grid; gap: 0.55rem;
}
.inv-place p { margin: 0; display: grid; gap: 0.12rem; }
.inv-place strong { color: var(--navy-deep); }
.inv-place span, .inv-place a { font-size: 0.86rem; font-weight: 650; color: var(--muted); }
.inv-place a { color: var(--navy); font-weight: 800; text-decoration: none; }
.inv-place a:hover { text-decoration: underline; }
.inv-codes {
	display: grid; gap: 0.85rem;
	grid-template-columns: 1fr;
}
@media (min-width: 800px) {
	.inv-codes { grid-template-columns: 1fr 1fr; }
}
.inv-code-card {
	border: 1px solid var(--line); border-radius: 0.45rem; background: #fff;
	padding: 0.95rem; display: grid; gap: 0.7rem; justify-items: center; text-align: center;
}
.inv-code-card .form-kicker { margin: 0; }
.inv-code-card .inv-qr, .inv-code-card .inv-barcode {
	background: #fff; border: 0; padding: 0; width: 100%;
}
.inv-code-card .inv-qr svg { width: min(200px, 100%); height: auto; }
.inv-barcode { display: grid; place-items: center; overflow: hidden; width: 100%; }
.inv-barcode svg { width: min(100%, 280px); height: auto; }
.inv-barcode-value {
	margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: 0.12em; font-weight: 800; color: var(--navy-deep);
}
.inv-questions { display: grid; gap: 0.85rem; margin: 0.6rem 0 0.2rem; }
.inv-q-card {
	border: 1px solid var(--line); border-radius: 0.45rem; background: #fff;
	padding: 1rem; display: grid; gap: 0.85rem;
	box-shadow: 0 1px 0 rgb(18 37 77 / 0.04);
}
.inv-q-top {
	display: grid; gap: 0.75rem;
}
@media (min-width: 760px) {
	.inv-q-top { grid-template-columns: minmax(0, 1fr) 13.5rem; align-items: end; }
}
.inv-q-title span, .inv-q-type span {
	display: block; font-size: 0.75rem; font-weight: 800; color: var(--muted); margin-bottom: 0.3rem;
}
.inv-q-preview {
	border-top: 1px solid var(--line); padding-top: 0.85rem;
}
.inv-q-choice { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.inv-q-choice span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 4.4rem; padding: 0.45rem 0.75rem; border: 1px solid var(--line);
	border-radius: 0.45rem; font-weight: 800; font-size: 0.82rem; color: var(--muted); background: #f8fafc;
}
.inv-q-line {
	border: 0; border-bottom: 1px dashed var(--line); color: var(--muted);
	font-size: 0.9rem; font-weight: 650; padding: 0.35rem 0 0.5rem;
}
.inv-q-line.is-long { min-height: 3.2rem; }
.inv-q-foot {
	display: flex; justify-content: space-between; align-items: center; gap: 0.6rem;
	border-top: 1px solid var(--line); padding-top: 0.7rem;
}
.inv-q-add { display: grid; gap: 0.55rem; margin-top: 0.4rem; }
.inv-form-stage {
	display: grid; gap: 0.9rem; align-items: start;
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 980px) {
	.inv-form-stage { grid-template-columns: minmax(0, 1fr) 16.5rem; }
}
.inv-form-stage input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
.inv-form-stage select,
.inv-form-stage textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	border: 1px solid var(--line);
	border-radius: 0.45rem;
	padding: 0.72rem 0.85rem;
	min-height: 2.75rem;
	font: inherit;
	background: #fff;
	color: var(--ink);
}
.inv-form-stage select {
	appearance: none;
	-webkit-appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position: calc(100% - 1.05rem) calc(50% - 0.18rem), calc(100% - 0.7rem) calc(50% - 0.18rem);
	background-size: 0.35rem 0.35rem, 0.35rem 0.35rem;
	background-repeat: no-repeat;
	padding-right: 1.8rem;
}
.inv-form-stage input[type="number"],
.inv-form-stage input[type="date"],
.inv-form-stage input[type="time"] { appearance: auto; -webkit-appearance: auto; }
.inv-form-stage textarea { min-height: 5.5rem; resize: vertical; }
.inv-form-stage .inv-d-fake { background: #f7f9fc; color: var(--muted); }
.inv-form-canvas {
	display: grid; gap: 0.85rem; width: 100%; min-width: 0;
	background: #eef2f8; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 1rem 1rem 1.2rem;
}
.inv-d-title, .inv-d-card {
	background: #fff; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 1.05rem 1.1rem 1.1rem; display: grid; gap: 0.9rem;
}
.inv-d-title { border-top: 4px solid var(--navy); }
.inv-d-field { display: grid; gap: 0.35rem; min-width: 0; }
.inv-d-title label,
.inv-d-field label,
.inv-d-top label { margin: 0; }
.inv-d-active-block { display: grid; gap: 0.35rem; }
.inv-d-active { margin: 0; }
.inv-d-active span { font-weight: 800; color: var(--navy-deep); }
.inv-d-title .help { margin: 0; }
.inv-d-toolbar { display: flex; justify-content: flex-end; gap: 0.3rem; }
.inv-d-toolbar .btn { min-height: 2.2rem; padding: 0.35rem 0.75rem; font-size: 0.82rem; }
.inv-designer { display: grid; gap: 0.85rem; }
.inv-d-card.is-on, .inv-d-card:focus-within {
	border-color: var(--navy);
	box-shadow: inset 3px 0 0 var(--navy);
}
.inv-d-head {
	display: grid; grid-template-columns: 1.4rem minmax(0, 1fr); gap: 0.45rem;
	align-items: center; width: 100%; margin: 0; padding: 0; border: 0;
	background: transparent; text-align: left; cursor: pointer; font: inherit; color: inherit;
}
.inv-d-chevron {
	width: 0.5rem; height: 0.5rem; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
	transform: rotate(45deg); justify-self: center; margin-bottom: 0.25rem;
}
.inv-d-summary { min-width: 0; display: grid; gap: 0.05rem; }
.inv-d-summary strong {
	display: block; font-weight: 800; color: var(--navy-deep);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.inv-d-summary span { color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.inv-d-card.is-collapsed { padding: 0.7rem 1rem; gap: 0; }
.inv-d-card.is-collapsed .inv-d-chevron { transform: rotate(-45deg); margin-bottom: 0; }
.inv-d-card.is-collapsed .inv-d-main { display: none !important; }
.inv-d-main { display: grid; gap: 0.9rem; min-width: 0; }
.inv-d-top { display: grid; gap: 0.85rem; }
@media (min-width: 760px) {
	.inv-d-top { grid-template-columns: minmax(0, 1fr) 13.5rem; align-items: start; }
}
.inv-d-opts { display: grid; gap: 0.45rem; }
.inv-d-opt {
	display: grid; grid-template-columns: 1.15rem minmax(0, 1fr) auto;
	gap: 0.5rem; align-items: center;
}
.inv-d-opt input[type="radio"],
.inv-d-opt input[type="checkbox"],
.fh-radio-row input[type="radio"],
.fh-radio-row input[type="checkbox"] {
	width: 1.1rem; height: 1.1rem; margin: 0; flex: 0 0 auto; accent-color: var(--navy);
	appearance: auto; -webkit-appearance: auto;
}
.inv-d-scale-row { display: grid; gap: 0.65rem; }
.inv-d-scale-row .inv-d-field { max-width: 8.5rem; }
.inv-d-logic {
	border-top: 1px solid var(--line); padding-top: 0.85rem;
	display: grid; gap: 0.75rem;
}
.inv-d-logic .help { margin: 0; }
.inv-d-head:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 0.3rem; }
.inv-d-logic .check-row,
.inv-d-foot .check-row { margin: 0; }
.inv-d-logic-stack { display: grid; gap: 0.65rem; }
.inv-d-logic-join { max-width: 16rem; }
.inv-d-logic-row { display: grid; gap: 0.75rem; }
.inv-d-logic-row .btn { align-self: end; }
@media (min-width: 800px) {
	.inv-d-logic-row { grid-template-columns: minmax(0, 1.4fr) minmax(11rem, 14rem) minmax(0, 1fr) auto; align-items: end; }
}
.inv-d-pref {
	display: grid; gap: 0.75rem;
	border-top: 1px solid var(--line); padding-top: 0.85rem;
}
.inv-d-pref .help { margin: 0; grid-column: 1 / -1; }
@media (min-width: 800px) {
	.inv-d-pref { grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr); align-items: start; }
}
.inv-d-foot {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 0.55rem; border-top: 1px solid var(--line); padding-top: 0.75rem;
}
.inv-d-tools { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.inv-palette {
	display: grid; gap: 0.5rem; align-content: start;
	background: #fff; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 0.85rem 0.8rem 0.95rem;
	position: sticky; top: 0.75rem;
}
.inv-palette p {
	margin: 0 0 0.15rem;
	font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--muted);
}
.inv-q-types { display: grid; gap: 0.35rem; }
.inv-palette button,
.inv-palette .btn {
	appearance: none; -webkit-appearance: none;
	display: inline-flex; align-items: center; justify-content: flex-start;
	width: 100%; min-height: 2.4rem; margin: 0;
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--line); border-radius: 0.45rem;
	background: #fff; color: var(--navy-deep);
	font: inherit; font-weight: 700; text-align: left; cursor: pointer;
}
.inv-palette button:hover,
.inv-palette .btn:hover {
	background: #f4f7fd; border-color: rgb(29 59 120 / 0.35); color: var(--navy);
}
.inv-palette-template { margin-top: 0.25rem; }
.inv-preview-shell { display: grid; gap: 0.85rem; }
.inv-preview {
	background: #eef2f8; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 1.1rem 1rem 1.4rem;
}
.fh-form-wrap { width: min(46rem, 100%); margin: 0 auto; }
.fh-form {
	background: #fff; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 1.15rem 1.1rem 1.3rem; display: grid; gap: 0.85rem;
}
.fh-form input[type="text"],
.fh-form input[type="number"],
.fh-form input[type="date"],
.fh-form input[type="time"],
.fh-form select,
.fh-form textarea {
	border: 1px solid var(--line); border-radius: 0.45rem; padding: 0.72rem 0.85rem;
	min-height: 2.75rem; font: inherit; background: #fff; color: var(--ink);
	width: 100%; box-sizing: border-box;
}
.fh-form-head h2 { margin: 0.15rem 0 0.25rem; }
.fh-form-head p { margin: 0; color: var(--muted); }
.fh-form-by {
	display: flex; flex-wrap: wrap; gap: 0.35rem 0.75rem; align-items: baseline;
	margin: 0.15rem 0 0.35rem; padding: 0.7rem 0.85rem;
	border: 1px solid var(--line); border-radius: 0.8rem; background: #f7f9fc;
	color: var(--muted); font-weight: 650;
}
.fh-form-by strong { color: var(--navy-deep); }
.fh-form-by span { color: var(--muted); font-size: 0.84rem; }
.fh-form.is-readonly .fh-seg-btn,
[data-inv-readonly] .fh-seg-btn,
.fh-form.is-readonly input,
.fh-form.is-readonly textarea,
.fh-form.is-readonly select { cursor: default; }
.fh-q { display: grid; gap: 0.6rem; padding: 0.9rem 0; border-top: 1px solid var(--line); }
.fh-q.is-off { display: none !important; }
.fh-q.is-heading { border-top: 0; padding-top: 0.2rem; }
.fh-q.is-heading h3 { margin: 0; color: var(--navy-deep); }
.fh-q.is-flagged {
	margin: 0.35rem 0; padding: 0.85rem 0.9rem;
	background: #fff6f4; border-radius: 0.85rem;
	box-shadow: inset 3px 0 0 var(--danger); border-top-color: transparent;
}
.fh-q-label { margin: 0; font-weight: 800; color: var(--navy-deep); }
.fh-q-label em { font-style: normal; color: var(--muted); font-weight: 650; font-size: 0.78rem; margin-left: 0.35rem; }
.fh-help { margin: 0; color: var(--muted); font-size: 0.88rem; font-weight: 650; }
.fh-flag { margin: 0; color: var(--danger); font-size: 0.82rem; font-weight: 800; }
.fh-radio, .fh-checks { display: grid; gap: 0.4rem; }
.fh-radio.fh-scale {
	grid-template-columns: repeat(auto-fit, minmax(2.6rem, 1fr));
	max-width: 28rem;
}
.fh-radio-row {
	display: grid; grid-template-columns: 1.15rem minmax(0, 1fr); gap: 0.6rem;
	align-items: center; margin: 0; cursor: pointer; font-weight: 650;
}
.fh-radio.fh-scale .fh-radio-row { justify-items: center; grid-template-columns: 1fr; text-align: center; }
.fh-seg {
	display: grid; gap: 0; overflow: hidden;
	border: 1px solid var(--line); border-radius: 0.45rem;
	background: #fff; width: 100%;
}
.fh-seg.is-status { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 22.5rem; }
.fh-seg.is-status.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 14.5rem; }
.fh-seg.is-scale {
	grid-template-columns: repeat(auto-fit, minmax(2.6rem, 1fr));
	max-width: 28rem;
}
.fh-seg.is-list {
	display: grid; gap: 0.45rem; border: 0; overflow: visible; background: transparent;
}
.fh-seg-btn {
	appearance: none; -webkit-appearance: none;
	margin: 0; border: 0; border-right: 1px solid var(--line);
	border-radius: 0; background: #fff; color: var(--navy-deep);
	font: inherit; font-weight: 800; font-size: 0.88rem;
	min-height: 2.75rem; padding: 0.55rem 0.85rem;
	cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
}
.fh-seg-btn:last-child { border-right: 0; }
.fh-seg-btn:hover { background: #f4f7fd; }
.fh-seg-btn:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; z-index: 1; }
.fh-seg-btn.is-on { background: var(--navy); color: #fff; }
.fh-seg-btn.is-on:hover { background: var(--navy-soft); color: #fff; }
.fh-seg-btn.is-pass.is-on, .fh-seg-btn.is-pass.is-on:hover { background: #d1fadf; color: var(--ok); }
.fh-seg-btn.is-fail.is-on, .fh-seg-btn.is-fail.is-on:hover { background: #fee4e2; color: var(--danger); }
.fh-seg-btn.is-na.is-on, .fh-seg-btn.is-na.is-on:hover { background: #e8edf5; color: var(--muted); }
.fh-seg.is-list .fh-seg-btn {
	border: 1px solid var(--line); border-radius: 0.45rem; justify-content: flex-start;
	width: 100%; font-weight: 700;
}
.fh-seg.is-list .fh-seg-btn.is-on { background: #eef2fb; color: var(--navy-deep); border-color: var(--navy); box-shadow: inset 3px 0 0 var(--navy); }
.fh-sign {
	border: 1px dashed var(--line); border-radius: 0.45rem; background: #fbfcfe;
	overflow: hidden;
}
.fh-sign canvas { display: block; width: 100%; height: 160px; touch-action: none; cursor: crosshair; background: #fff; }
.fh-sign-bar { display: flex; justify-content: flex-end; padding: 0.35rem 0.45rem; background: #f8fafc; border-top: 1px solid var(--line); }
.fh-sign.is-preview { min-height: 5.5rem; display: grid; place-items: center; color: var(--muted); font-weight: 700; }
.fh-sign.is-locked { background: #fff; padding: 0.45rem; }
.fh-sign.is-locked img, .chk-sign {
	display: block; width: 100%; max-height: 10rem; height: auto;
	object-fit: contain; background: #fff;
}
.chk-sign {
	border: 1px solid var(--line); border-radius: 0.55rem; padding: 0.35rem;
	background: #fff;
}
.found-body {
	margin: 0; min-height: 100vh; background: #dfe6f2;
	font-family: var(--font); color: var(--ink); -webkit-font-smoothing: antialiased;
}
.found-app {
	width: min(28.5rem, 100%); margin: 0 auto; min-height: 100vh;
	display: flex; flex-direction: column; background: #fff;
	box-shadow: 0 0 0 1px rgb(18 37 77 / 0.06);
}
.found-hero {
	background: var(--found-brand, var(--navy)); color: #fff;
	padding: max(1.25rem, env(safe-area-inset-top)) 1.15rem 1.35rem;
	display: grid; gap: 0.35rem; justify-items: center; text-align: center;
}
.found-hero-item { justify-items: start; text-align: left; }
.found-hero img {
	width: 4.4rem; height: 4.4rem; object-fit: contain; background: #fff;
	border-radius: 0.85rem; margin-bottom: 0.35rem;
}
.found-kicker {
	margin: 0; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.12em;
	text-transform: uppercase; color: rgb(255 255 255 / 0.72);
}
.found-hero h1 { margin: 0; color: #fff; font-size: 1.45rem; line-height: 1.2; }
.found-hero p { margin: 0; color: rgb(255 255 255 / 0.82); font-weight: 650; }
.found-main { padding: 1.05rem 1.1rem 1.3rem; display: grid; gap: 0.9rem; flex: 1; }
.found-lede { margin: 0; color: var(--muted); font-weight: 650; line-height: 1.45; }
.found-map {
	height: 13.5rem; border-radius: 0.7rem; overflow: hidden;
	border: 1px solid var(--line); background: #d7deea;
}
.found-card {
	border: 1px solid var(--line); border-radius: 0.7rem; background: #fff;
	overflow: hidden; display: grid;
}
.found-row {
	display: grid; grid-template-columns: 2.1rem minmax(0, 1fr); gap: 0.7rem;
	align-items: center; padding: 0.9rem 1rem; text-decoration: none; color: inherit;
	border-top: 1px solid var(--line); min-height: 3.5rem;
}
.found-row:first-child { border-top: 0; }
.found-row.is-static { grid-template-columns: minmax(0, 1fr); }
.found-row strong { display: block; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.found-row em { font-style: normal; font-weight: 700; color: var(--navy-deep); }
.found-ico { color: var(--navy); font-weight: 800; text-align: center; }
a.found-row:active { background: #f4f7fd; }
.found-photo {
	width: 100%; height: 11rem; object-fit: cover; border-radius: 0.7rem;
	border: 1px solid var(--line); background: #eef2f8;
}
.found-actions { padding: 1rem; gap: 0.65rem; }
.found-actions label { margin: 0.25rem 0 0; }
.found-label { margin: 0; font-weight: 800; color: var(--navy-deep); font-size: 0.88rem; }
.found-actions .fh-seg.is-status { max-width: none; }
.found-actions textarea {
	width: 100%; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 0.75rem 0.85rem; font: inherit; min-height: 5.5rem;
}
.found-save { width: 100%; border-radius: 0.45rem; min-height: 2.9rem; }
.found-links { display: grid; gap: 0.45rem; }
.found-links .btn { width: 100%; border-radius: 0.45rem; min-height: 2.75rem; }
.found-foot {
	margin-top: auto; padding: 0.95rem 1.1rem max(1.1rem, env(safe-area-inset-bottom));
	text-align: center; border-top: 1px solid var(--line); background: #f7f9fc;
	display: grid; gap: 0.35rem; justify-items: center;
}
.found-foot a {
	display: inline-flex; align-items: center; gap: 0.45rem;
	color: var(--muted); text-decoration: none; font-weight: 800; font-size: 0.82rem;
}
.found-foot span { color: var(--muted); font-size: 0.78rem; }
.found-foot img { width: 22px; height: 22px; }
.found-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 0.85rem;
	overflow: hidden;
}
.found-tabs a {
	display: grid;
	place-items: center;
	min-height: 2.75rem;
	padding: 0.55rem 0.7rem;
	text-decoration: none;
	font-size: 0.88rem;
	font-weight: 800;
	color: var(--muted);
	background: #f7f9fc;
}
.found-tabs a + a { border-left: 1px solid var(--line); }
.found-tabs a.is-on {
	color: var(--navy);
	background: #fff;
}
.found-panel { display: grid; gap: 0.9rem; }
.found-pwa-cue {
	display: grid;
	gap: 0.55rem;
	padding: 0.85rem 0.95rem;
	border: 1px solid #d7e3f7;
	border-radius: 0.85rem;
	background: #f3f7fd;
}
.found-pwa-cue p {
	margin: 0;
	color: var(--navy-deep);
	font-weight: 650;
	line-height: 1.4;
}
.found-pwa-cue .btn { justify-self: start; }
.found-org-line {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}
.found-org-mark {
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 0.45rem;
	object-fit: cover;
	background: #fff;
}
.found-log {
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}
.found-ico.ms {
	font-family: var(--icon);
	font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;
	font-size: 1.15rem;
	line-height: 1;
}
.log-form { display: grid; gap: 0.65rem; }
.log-form input[type=number] {
	width: 100%; border: 1px solid var(--line); border-radius: 0.45rem;
	padding: 0.75rem 0.85rem; font: inherit;
}
.log-form textarea { width: 100%; }
.log-kinds { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.log-kind { position: relative; margin: 0; cursor: pointer; }
.log-kind input {
	position: absolute; opacity: 0; width: 1px; height: 1px;
	clip: rect(0 0 0 0);
}
.log-kind span {
	display: block; border: 1px solid var(--line); background: #fff;
	border-radius: 0.45rem; padding: 0.45rem 0.85rem;
	font-size: 0.82rem; font-weight: 800; color: #334155;
}
.log-kind:hover span { border-color: var(--navy); color: var(--navy-deep); }
.log-kind:has(input:checked) span,
.log-kind:has(input:focus-visible) span {
	background: var(--navy); border-color: var(--navy); color: #fff;
}
.log-when-note, .log-when-issue, .log-when-extra,
.log-when-mileage, .log-when-fuel, .log-when-status { display: none; }
.log-form:has([name="log_kind"][value="note"]:checked) .log-when-note,
.log-form:has([name="log_kind"][value="issue"]:checked) .log-when-issue,
.log-form:has([name="log_kind"][value="fuel"]:checked) .log-when-extra,
.log-form:has([name="log_kind"][value="mileage"]:checked) .log-when-extra,
.log-form:has([name="log_kind"][value="status"]:checked) .log-when-extra { display: block; }
.log-form:has([name="log_kind"][value="fuel"]:checked) .log-when-fuel,
.log-form:has([name="log_kind"][value="mileage"]:checked) .log-when-mileage,
.log-form:has([name="log_kind"][value="status"]:checked) .log-when-status {
	display: grid; gap: 0.75rem;
}
.log-form .found-label { margin: 0; }
.log-fuel-group { display: grid; gap: 0.4rem; }
.log-fuel-levels { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.log-fuel-chip { position: relative; margin: 0; cursor: pointer; }
.log-fuel-chip input {
	position: absolute; opacity: 0; width: 1px; height: 1px;
	clip: rect(0 0 0 0);
}
.log-fuel-chip span {
	display: block; border: 1px solid var(--line); background: #fff;
	border-radius: 0.55rem; padding: 0.5rem 0.7rem;
	font-size: 0.8rem; font-weight: 800; color: #334155; line-height: 1.15;
}
.log-fuel-chip:hover span { border-color: var(--navy); color: var(--navy-deep); }
.log-fuel-chip:has(input:checked) span,
.log-fuel-chip:has(input:focus-visible) span {
	background: var(--navy); border-color: var(--navy); color: #fff;
}
.log-fuel-receipt input[type=file] {
	width: 100%; font: inherit; padding: 0.45rem 0;
}
.inv-log-receipt {
	display: inline-block; margin-top: 0.35rem;
	font-size: 0.82rem; font-weight: 800; color: var(--navy);
	text-decoration: none;
}
.inv-log-receipt:hover { text-decoration: underline; }
.inv-note-form { display: grid; gap: 0.45rem; margin: 0 0 1.1rem; }
.inv-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.inv-log-card {
	display: grid; gap: 0.15rem; padding: 0.85rem 0.95rem;
	border: 1px solid var(--line); border-radius: 0.45rem; background: #fff;
	text-decoration: none; color: inherit;
}
a.inv-log-card:hover { border-color: var(--navy); }
.inv-log-card.is-check {
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 0.55rem 0.75rem;
	background: linear-gradient(180deg, #fff, #f7f9fc);
}
.inv-log-card.is-check .inv-log-copy { display: grid; gap: 0.15rem; min-width: 0; }
.inv-log-card.is-check .inv-log-cta {
	align-self: center;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--navy);
	white-space: nowrap;
}
.inv-log-card strong { color: var(--navy-deep); }
.inv-log-title { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.inv-log-title .pill { font-size: 0.68rem; }
.inv-log-card span { color: var(--muted); font-size: 0.84rem; font-weight: 650; }
.inv-log-card p { margin: 0.25rem 0 0; font-weight: 650; }

/* —— Inventory check report (screen + print) —— */
.inv-check-report { display: grid; gap: 0.85rem; max-width: 52rem; }
.inv-check-toolbar {
	display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center;
}
.inv-check-share-status {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 750;
	color: var(--navy);
}
.inv-check-sheet {
	display: grid;
	gap: 1.1rem;
	padding: 1.15rem 1.2rem 1.35rem;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 1rem;
	box-shadow: 0 10px 28px rgb(14 28 61 / 0.06);
}
.inv-check-brand {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	align-items: flex-start;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--line);
}
.inv-check-brand-main {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	min-width: 0;
}
.inv-check-logo {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 0.7rem;
	object-fit: cover;
	border: 1px solid var(--line);
	background: #e8edf5;
	flex: 0 0 auto;
}
.inv-check-logo.is-fallback {
	display: grid;
	place-items: center;
	font-size: 0.78rem;
	font-weight: 800;
	color: var(--navy);
}
.inv-check-org {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 800;
	color: var(--navy-deep);
}
.inv-check-doc {
	margin: 0.1rem 0 0;
	font-size: 0.78rem;
	font-weight: 650;
	color: var(--muted);
}
.inv-check-brand-meta {
	display: grid;
	gap: 0.15rem;
	justify-items: end;
	text-align: right;
	font-size: 0.75rem;
	color: var(--muted);
	font-weight: 650;
}
.inv-check-brand-meta strong {
	color: var(--navy-deep);
	font-size: 0.82rem;
}
.inv-check-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.85rem;
	align-items: start;
}
.inv-check-hero-copy h1 {
	margin: 0.15rem 0 0.35rem;
	font-size: clamp(1.35rem, 3vw, 1.85rem);
	letter-spacing: -0.03em;
	color: var(--navy-deep);
}
.inv-check-hero-copy p { margin: 0; color: var(--muted); font-weight: 650; }
.inv-check-result {
	display: grid;
	gap: 0.2rem;
	justify-items: end;
	text-align: right;
	min-width: 8.5rem;
	padding: 0.7rem 0.85rem;
	border-radius: 0.85rem;
	border: 1px solid var(--line);
	background: #f7f9fc;
}
.inv-check-result.is-ok { background: #f0faf4; border-color: #b7ebc9; }
.inv-check-result.is-warn { background: #fff7f5; border-color: #f3c6c0; }
.inv-check-result strong { color: var(--navy-deep); font-size: 0.95rem; }
.inv-check-result em { font-style: normal; color: var(--muted); font-size: 0.75rem; font-weight: 650; }
.inv-check-meta {
	display: grid;
	gap: 0.65rem;
	grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
}
.inv-check-meta > div {
	display: grid;
	gap: 0.15rem;
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--line);
	border-radius: 0.75rem;
	background: #fafbfd;
}
.inv-check-meta span {
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.inv-check-meta strong {
	color: var(--navy-deep);
	font-size: 0.9rem;
	font-weight: 750;
	word-break: break-word;
}
.inv-check-meta a { color: inherit; }
.inv-check-flags {
	display: grid;
	gap: 0.55rem;
	padding: 0.9rem 1rem;
	border: 1px solid #f3c6c0;
	border-radius: 0.9rem;
	background: #fff7f5;
}
.inv-check-flags h2 {
	margin: 0;
	font-size: 0.95rem;
	color: #9b1c1c;
}
.inv-check-flags > p {
	margin: 0;
	color: #9b1c1c;
	font-size: 0.84rem;
	font-weight: 650;
}
.inv-check-flags ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}
.inv-check-flags li {
	display: grid;
	gap: 0.1rem;
	padding: 0.55rem 0.65rem;
	border-radius: 0.65rem;
	background: #fff;
	border: 1px solid #f5d0cb;
}
.inv-check-flags strong { color: var(--navy-deep); font-size: 0.88rem; }
.inv-check-flags span { color: #9b1c1c; font-weight: 700; font-size: 0.88rem; }
.inv-check-flags em { font-style: normal; color: var(--muted); font-size: 0.75rem; font-weight: 650; }
.inv-check-answers {
	display: grid;
	gap: 0.75rem;
}
.inv-check-answers-head h2 {
	margin: 0;
	font-size: 1.05rem;
	color: var(--navy-deep);
}
.inv-check-answers-head p {
	margin: 0.2rem 0 0;
	color: var(--muted);
	font-size: 0.84rem;
	font-weight: 650;
}
.inv-check-answer-list {
	display: grid;
	gap: 0;
	border: 1px solid var(--line);
	border-radius: 0.9rem;
	overflow: hidden;
	background: #fff;
}
.inv-check-answer-list h3 {
	margin: 0;
	padding: 0.7rem 0.9rem;
	background: #f3f6fb;
	border-top: 1px solid var(--line);
	color: var(--navy-deep);
	font-size: 0.82rem;
	letter-spacing: 0.02em;
}
.inv-check-answer-list h3:first-child { border-top: 0; }
.inv-check-answer {
	display: grid;
	gap: 0.15rem;
	padding: 0.75rem 0.9rem;
	border-top: 1px solid var(--line);
}
.inv-check-answer:first-child { border-top: 0; }
.inv-check-answer span {
	color: var(--muted);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.inv-check-answer strong {
	color: var(--navy-deep);
	font-size: 0.95rem;
	font-weight: 750;
	white-space: pre-wrap;
}
.inv-check-answer em {
	font-style: normal;
	color: #9b1c1c;
	font-size: 0.78rem;
	font-weight: 750;
}
.inv-check-answer.is-flagged {
	background: #fff7f5;
	box-shadow: inset 3px 0 0 var(--danger);
}
.inv-check-answer.is-notes {
	background: #f7f9fc;
}
.inv-check-empty {
	padding: 1.1rem;
	border: 1px dashed var(--line);
	border-radius: 0.9rem;
	background: #fafbfd;
}
.inv-check-empty h2 { margin: 0 0 0.25rem; font-size: 1rem; }
.inv-check-empty p { margin: 0; color: var(--muted); font-weight: 650; }
.inv-check-foot {
	display: grid;
	gap: 0.15rem;
	padding-top: 0.35rem;
	border-top: 1px solid var(--line);
	color: var(--muted);
	font-size: 0.72rem;
	font-weight: 650;
}
.inv-check-foot p { margin: 0; word-break: break-all; }
.print-only { display: none; }
.inv-checks-board { display: grid; gap: 0.55rem; }
.inv-checks-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.65rem 0.85rem;
	align-items: center;
	padding: 0.85rem 0.95rem;
	border: 1px solid var(--line);
	border-radius: 0.85rem;
	background: #fff;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
}
.inv-checks-card:hover {
	border-color: rgb(47 111 237 / 0.45);
	box-shadow: 0 8px 20px rgb(14 28 61 / 0.06);
}
.inv-checks-card strong {
	display: block;
	color: var(--navy-deep);
	font-size: 0.95rem;
}
.inv-checks-card em {
	display: block;
	margin-top: 0.15rem;
	font-style: normal;
	color: var(--muted);
	font-size: 0.8rem;
	font-weight: 650;
}
.inv-checks-card .inv-checks-when {
	margin-top: 0.35rem;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--navy-deep);
}
.inv-checks-end {
	display: grid;
	gap: 0.3rem;
	justify-items: end;
}
@media (max-width: 720px) {
	.inv-check-hero { grid-template-columns: 1fr; }
	.inv-check-result { justify-items: start; text-align: left; width: 100%; }
	.inv-check-brand { flex-direction: column; }
	.inv-check-brand-meta { justify-items: start; text-align: left; }
}
@media print {
	.inv-check-toolbar,
	.inv-check-report .no-print,
	.page-head,
	.page-actions,
	.app-dock,
	.mgr-bar,
	.mgr-sidebar,
	.nav-backdrop,
	.ap-bar { display: none !important; }
	.inv-check-report { max-width: none; }
	.inv-check-sheet {
		border: 0;
		border-radius: 0;
		box-shadow: none;
		padding: 0;
	}
	.inv-check-answer-list,
	.inv-check-meta > div,
	.inv-check-flags,
	.inv-check-result {
		break-inside: avoid;
	}
	.print-only { display: inline; }
	.inv-check-meta a.no-print { display: none; }
}
.fh-form-by .pill { margin-left: 0.15rem; }
.inv-item-stack { display: grid; gap: 1.1rem; padding-bottom: 0.4rem; }
body.is-inv-setup .app-head-copy .lede,
body.is-ap-setup .app-head-copy .lede,
body.is-st-setup .app-head-copy .lede { display: none; }
body.is-inv-setup .app-shell,
body.is-ap-setup .app-shell,
body.is-st-setup .app-shell { align-items: stretch; min-height: 100dvh; }
body.is-inv-setup .main,
body.is-ap-setup .main,
body.is-st-setup .main {
	display: flex; flex-direction: column; min-height: 0; padding: 0;
}
body.is-inv-setup .app-head,
body.is-ap-setup .app-head,
body.is-st-setup .app-head { margin-bottom: 0; flex: 0 0 auto; }
body.is-inv-setup .main-flow,
body.is-ap-setup .main-flow,
body.is-st-setup .main-flow {
	padding: 0; overflow: hidden;
	min-height: 0; flex: 1 1 auto;
	display: flex; flex-direction: column;
}
body.is-inv-setup .ap-page,
body.is-ap-setup .ap-page,
body.is-st-setup .ap-page { display: contents; }
.inv-setup {
	display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
	flex: 1 1 auto; min-height: 0;
	width: min(32rem, 100%); margin: 0 auto;
	background: var(--surface);
}
.inv-setup-top { min-width: 0; }
.inv-setup-head {
	display: flex; justify-content: space-between; align-items: center;
	gap: 0.75rem; padding: 0.45rem 1.1rem 0.2rem;
}
.inv-setup-head .form-kicker { margin: 0; }
.inv-setup-dots {
	display: flex; gap: 0.35rem; margin: 0; padding: 0; list-style: none;
}
.inv-setup-dots li {
	width: 0.45rem; height: 0.45rem; border-radius: 99px;
	background: #c9d3e3;
	transition: background-color 0.22s ease, transform 0.22s ease, width 0.22s ease;
}
.inv-setup-dots li.is-on {
	width: 1.05rem;
	background: var(--navy);
	transform: none;
}
.inv-setup-dots li.is-done { background: var(--navy-soft); }
.inv-setup-status { margin: 0 1.1rem 0.45rem; }
.inv-setup-deck {
	position: relative;
	min-height: min(58dvh, 28rem);
	height: 100%;
	overflow: hidden;
}
.inv-setup-page {
	position: absolute; inset: 0;
	display: grid; align-content: start; gap: 0.7rem;
	padding: 0.35rem 1.1rem 0.6rem;
	overflow: hidden;
	opacity: 0;
	transform: translateX(18%) scale(0.985);
	transition:
		transform 0.42s cubic-bezier(.22,.8,.24,1),
		opacity 0.28s ease;
	pointer-events: none;
	background: var(--surface);
	will-change: transform, opacity;
}
.inv-setup-page.is-on {
	opacity: 1;
	transform: translateX(0) scale(1);
	pointer-events: auto;
	overflow-y: auto;
	z-index: 1;
}
.inv-setup-page.is-left {
	opacity: 0;
	transform: translateX(-18%) scale(0.985);
}
.inv-setup-page.is-right {
	opacity: 0;
	transform: translateX(18%) scale(0.985);
}
.inv-setup-page .form-block-head { margin-bottom: 0.15rem; }
.inv-setup-page .form-block-head h2 { margin: 0.1rem 0 0.25rem; font-size: 1.45rem; }
.inv-setup-page label { margin-top: 0.35rem; }
.inv-setup-shot {
	position: relative; display: grid; place-items: center;
	min-height: min(48dvh, 22rem);
	margin: 0; padding: 0;
	border: 1.5px dashed var(--line); border-radius: 1.2rem;
	background: #111; overflow: hidden;
}
.inv-setup-shot:not(.is-live):not(.has-file) { background: #eef2f8; }
.inv-setup-shot.has-file, .inv-setup-shot.is-live { border-style: solid; }
.inv-setup-live,
.inv-setup-shot-mark,
.inv-setup-shot-mark img {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.inv-setup-shot-mark { display: grid; place-items: center; }
.inv-setup-shot.is-flash::after {
	content: ""; position: absolute; inset: 0; background: #fff;
	animation: inv-setup-flash 0.28s ease;
	pointer-events: none;
}
@keyframes inv-setup-flash {
	from { opacity: 0.92; }
	to { opacity: 0; }
}
.inv-setup-shot-empty {
	position: relative; z-index: 1;
	display: grid; gap: 0.28rem; justify-items: center; text-align: center;
	padding: 1.2rem; color: var(--navy-deep);
}
.inv-setup-shot-empty svg { opacity: 0.7; }
.inv-setup-shot-empty span { color: var(--muted); font-weight: 650; font-size: 0.88rem; max-width: 16rem; }
.inv-setup-photo { display: grid; gap: 0.55rem; min-width: 0; }
.inv-setup-shot-actions {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem;
}
.inv-setup-shot-actions .btn { width: 100%; min-height: 2.7rem; }
.inv-setup-shot-actions:has([data-setup-shutter]:not([hidden])) {
	grid-template-columns: 1.4fr 1fr;
}
.inv-setup-shot.is-compact { min-height: 10.5rem; }
.inv-setup-shot.is-compact .inv-setup-shot-mark,
.inv-setup-shot.is-compact .inv-setup-live { border-radius: 1rem; }
.identity-row .inv-setup-shot-actions { margin-top: 0.5rem; }
.st-tree {
	display: grid;
	gap: 0.85rem;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	align-items: start;
}
.st-toggle {
	margin: 0.45rem 0 0; padding: 0.2rem 0; border: 0; background: none;
	color: var(--navy); font-weight: 750; font-size: 0.82rem; cursor: pointer;
}
.st-node.is-closed .st-node-subs { display: none; }
.st-node-subs {
	margin: 0.5rem 0 0 0.35rem; padding-left: 0.85rem;
	border-left: 2px solid var(--line); display: grid; gap: 0.55rem;
}
.st-stock { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.st-stock li {
	display: flex; justify-content: space-between; align-items: center; gap: 0.75rem;
	padding: 0.75rem 0.9rem; border: 1px solid var(--line); border-radius: 0.9rem; background: #fff;
}
.st-stock strong { display: block; }
.st-stock em { color: var(--muted); font-style: normal; font-size: 0.82rem; font-weight: 650; }
.st-stock-add, .st-assign { display: grid; gap: 0.4rem; margin-top: 0.9rem; }
.st-assign-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.45rem; align-items: end; }
.st-modes { display: grid; gap: 0.55rem; }
.inv-setup-kinds {
	display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.15rem 0 0.2rem;
}
.inv-setup-kind { margin: 0; cursor: pointer; }
.inv-setup-kind input { position: absolute; opacity: 0; pointer-events: none; }
.inv-setup-kind span {
	display: inline-flex; padding: 0.42rem 0.75rem;
	border: 1px solid var(--line); border-radius: 0.45rem; background: #fff;
	font-size: 0.84rem; font-weight: 750; color: var(--navy);
}
.inv-setup-kind:has(input:checked) span {
	background: var(--navy); color: #fff; border-color: var(--navy);
}
.inv-setup-codes {
	display: grid; gap: 0.55rem; justify-items: center; text-align: center;
	padding: 0.7rem 0.6rem 0.85rem;
	background: #fff; border: 1px solid var(--line); border-radius: 1.1rem;
}
.inv-setup-qr { width: min(14.5rem, 100%); }
.inv-setup-qr svg, .inv-setup-barcode svg { width: 100%; height: auto; display: block; }
.inv-setup-barcode { width: min(18rem, 100%); }
.inv-setup-print { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.inv-setup-print .btn { width: 100%; }
.inv-setup-qty { display: grid; gap: 0.55rem; }
.inv-setup-qty-card {
	display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.75rem;
	align-items: start; margin: 0; padding: 0.9rem 1rem; cursor: pointer;
	border: 1px solid var(--line); border-radius: 1rem; background: #fff;
}
.inv-setup-qty-card:has(input:checked) {
	border-color: var(--navy); background: #f3f6fd;
	box-shadow: inset 0 0 0 1px var(--navy);
}
.inv-setup-qty-card input { margin-top: 0.2rem; }
.inv-setup-qty-card strong { display: block; color: var(--navy-deep); }
.inv-setup-qty-card em {
	display: block; margin-top: 0.15rem; font-style: normal;
	color: var(--muted); font-size: 0.82rem; font-weight: 650; line-height: 1.35;
}
.inv-setup-stepper { display: grid; gap: 0.4rem; }
.inv-setup-stepper-row {
	display: grid; grid-template-columns: 3rem minmax(0, 1fr) 3rem; gap: 0.45rem; align-items: center;
}
.inv-setup-stepper-row .btn { min-height: 2.75rem; padding: 0; font-size: 1.35rem; }
.inv-setup-stepper-row input { text-align: center; font-weight: 800; font-size: 1.2rem; }
.inv-setup-done {
	display: grid; gap: 0.55rem; justify-items: center; text-align: center;
	padding: 0.4rem 0.2rem 0.2rem;
}
.inv-setup-done-photo {
	width: 5.6rem; height: 5.6rem; border-radius: 1.1rem; overflow: hidden;
	background: #e8edf5; color: var(--navy); font-weight: 800;
	display: grid; place-items: center;
}
.inv-setup-done-photo img { width: 100%; height: 100%; object-fit: cover; }
.inv-setup-done h2 { margin: 0; }
.inv-setup-done-actions { display: grid; gap: 0.45rem; width: 100%; margin-top: 0.55rem; }
.inv-setup-done-actions .btn { width: 100%; }
.inv-setup-bar {
	display: grid; grid-template-columns: auto auto 1fr; gap: 0.45rem; align-items: center;
	padding: 0.65rem 1.1rem max(0.75rem, env(safe-area-inset-bottom));
	background: rgb(255 255 255 / 0.96); border-top: 1px solid var(--line);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}
.inv-setup-bar .btn {
	min-height: 2.7rem;
	transition: transform 0.16s ease, opacity 0.16s ease, background-color 0.16s ease;
}
.inv-setup-bar .btn:active { transform: scale(0.98); }
.inv-setup-bar .btn-primary { justify-self: end; }
.inv-setup-bar:has([data-setup-skip][hidden]) { grid-template-columns: auto 1fr; }
.inv-setup-bar:has([data-setup-next][hidden]) { grid-template-columns: 1fr; }
.inv-setup-bar:has([data-setup-next][hidden]) .btn { width: 100%; }
@media (min-width: 960px) {
	/* Desktop modality: wide card form, not the phone step wizard. */
	body.is-inv-setup .main,
	body.is-ap-setup .main,
	body.is-st-setup .main {
		min-height: 0;
		padding: 1rem 1.35rem 1.5rem;
	}
	body.is-inv-setup .main-flow,
	body.is-ap-setup .main-flow,
	body.is-st-setup .main-flow {
		padding: 0;
		overflow: auto;
		display: block;
	}
	.inv-setup,
	.inv-setup.is-desktop-setup {
		width: min(56rem, 100%);
		margin: 0 auto;
		border: 1px solid var(--line);
		border-radius: var(--radius);
		background: #fff;
		box-shadow: 0 10px 28px rgb(14 28 61 / 0.06);
		grid-template-rows: auto minmax(0, auto) auto;
	}
	.inv-setup.is-desktop-setup .inv-setup-dots { display: none; }
	.inv-setup.is-desktop-setup .inv-setup-head {
		padding: 1rem 1.25rem 0.35rem;
	}
	.inv-setup.is-desktop-setup .inv-setup-head .form-kicker {
		font-size: 0.78rem;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}
	.inv-setup.is-desktop-setup .inv-setup-status { margin: 0 1.25rem 0.65rem; }
	.inv-setup.is-desktop-setup .inv-setup-deck {
		position: relative;
		height: auto;
		min-height: 0;
		overflow: visible;
		display: grid;
		gap: 1rem;
		padding: 0.35rem 1.25rem 0.25rem;
	}
	.inv-setup.is-desktop-setup .inv-setup-page {
		position: static;
		inset: auto;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		overflow: visible;
		padding: 1rem 1.1rem 1.1rem;
		border: 1px solid var(--line);
		border-radius: 0.85rem;
		background: #f8fafd;
		transition: none;
		will-change: auto;
	}
	.inv-setup.is-desktop-setup .inv-setup-page.is-left,
	.inv-setup.is-desktop-setup .inv-setup-page.is-right {
		opacity: 1;
		transform: none;
	}
	.inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-page[data-setup-page="codes"],
	.inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-page[data-setup-page="done"],
	.inv-setup.is-desktop-setup.is-setup-complete .inv-setup-page:not([data-setup-page="done"]):not([data-setup-page="codes"]) {
		display: none;
	}
	.inv-setup.is-desktop-setup.is-setup-complete .inv-setup-page[data-setup-page="codes"],
	.inv-setup.is-desktop-setup.is-setup-complete .inv-setup-page[data-setup-page="done"] {
		display: grid;
	}
	/* Apparatus desktop: one continuous form page — no section cards. */
	body.is-ap-setup .inv-setup.is-desktop-setup {
		width: min(44rem, 100%);
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: transparent;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-top {
		padding: 0 0 0.35rem;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-head {
		padding: 0 0 0.25rem;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-status {
		margin: 0 0 0.75rem;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-deck {
		display: block;
		padding: 0;
		gap: 0;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-page {
		display: block;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-page + .inv-setup-page {
		margin-top: 1.15rem;
		padding-top: 1.15rem;
		border-top: 1px solid var(--line);
	}
	body.is-ap-setup .inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-page .form-block-head {
		display: none;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-shot {
		min-height: 14rem;
		max-width: 22rem;
		border-radius: var(--radius);
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-qty {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
		gap: 0.45rem;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-qty-card {
		padding: 0.55rem 0.7rem;
		border-radius: 0.55rem;
		box-shadow: none;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-bar {
		position: static;
		margin-top: 1.25rem;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		grid-template-columns: auto 1fr;
		max-width: 44rem;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup.is-setup-complete {
		width: min(44rem, 100%);
		border: 1px solid var(--line);
		border-radius: var(--radius);
		background: #fff;
		box-shadow: none;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup.is-setup-complete .inv-setup-deck {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas: "codes done";
		gap: 1rem;
		padding: 1rem 1.15rem 1.15rem;
	}
	body.is-ap-setup .inv-setup.is-desktop-setup.is-setup-complete .inv-setup-page {
		padding: 0;
		border: 0;
		background: transparent;
	}

	body.is-inv-setup .inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-deck,
	body.is-st-setup .inv-setup.is-desktop-setup:not(.is-setup-complete) .inv-setup-deck {
		grid-template-columns: minmax(16rem, 0.9fr) minmax(0, 1.1fr);
		grid-template-areas:
			"photo details"
			"stock stock";
	}
	.inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="photo"] { grid-area: photo; }
	.inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="details"] { grid-area: details; }
	.inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="status"],
	.inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="stock"] { grid-area: status; }
	body.is-inv-setup .inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="stock"] { grid-area: stock; }
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="photo"],
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="details"],
	body.is-ap-setup .inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="status"] {
		grid-area: auto;
	}
	.inv-setup.is-desktop-setup .inv-setup-page .form-block-head h2 { font-size: 1.15rem; }
	.inv-setup.is-desktop-setup .inv-setup-shot {
		min-height: 16rem;
		border-radius: 0.9rem;
	}
	.inv-setup.is-desktop-setup .inv-setup-bar {
		position: sticky;
		bottom: 0;
		padding: 0.85rem 1.25rem 1rem;
		border-radius: 0 0 var(--radius) var(--radius);
		grid-template-columns: auto 1fr;
	}
	.inv-setup.is-desktop-setup .inv-setup-bar [data-setup-skip] { display: none !important; }
	.inv-setup.is-desktop-setup.is-setup-complete .inv-setup-bar { display: none; }
	.inv-setup.is-desktop-setup.is-setup-complete .inv-setup-deck {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas: "codes done";
	}
	body.is-st-setup .inv-setup.is-desktop-setup.is-setup-complete .inv-setup-deck {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "done";
	}
	.inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="codes"] { grid-area: codes; }
	.inv-setup.is-desktop-setup .inv-setup-page[data-setup-page="done"] { grid-area: done; }
}
@media (max-width: 959px) {
	body.is-inv-setup .app-dock,
	body.is-ap-setup .app-dock,
	body.is-st-setup .app-dock { display: none !important; }
	body.is-inv-setup .main,
	body.is-ap-setup .main,
	body.is-st-setup .main { padding-bottom: 0; }
	body.is-inv-setup .app-head,
	body.is-ap-setup .app-head,
	body.is-st-setup .app-head { margin-bottom: 0; }
	.inv-setup { width: 100%; }
}
.chk-start { margin-bottom: 1.1rem; }
.chk-start .form-block-head { margin-bottom: 1rem; }
.chk-start > .form-kicker,
.chk-start form > .form-kicker { margin: 0 0 0.45rem; }
.chk-scope {
	display: grid; gap: 0.65rem; margin: 0;
}
@media (min-width: 700px) {
	.chk-scope { grid-template-columns: 1fr 1fr; }
}
.chk-choice {
	display: flex; gap: 0.75rem; align-items: flex-start;
	margin: 0; padding: 0.9rem 1rem; cursor: pointer;
	border: 1px solid var(--line); border-radius: 1rem; background: #fff;
}
.chk-choice:hover { border-color: rgb(47 111 237 / 0.4); }
.chk-choice:has(input:checked),
.chk-choice:has(input:focus-visible) {
	border-color: rgb(29 59 120 / 0.35); background: #f4f7fd;
}
.chk-choice span { min-width: 0; display: grid; gap: 0.12rem; }
.chk-choice strong { color: var(--navy-deep); font-size: 0.95rem; }
.chk-choice em {
	font-style: normal; color: var(--muted); font-size: 0.82rem;
	font-weight: 650; line-height: 1.35;
}
.chk-choice input[type="radio"] {
	appearance: none; -webkit-appearance: none;
	width: 1.2rem; height: 1.2rem; margin: 0.12rem 0 0; flex: 0 0 auto;
	display: grid; place-content: center;
	border: 2px solid #b7c3d6; border-radius: 99px; background: #fff; cursor: pointer;
}
.chk-choice input[type="radio"]::after {
	content: ""; width: 0.55rem; height: 0.55rem; border-radius: 99px;
	background: var(--navy); transform: scale(0);
}
.chk-choice input[type="radio"]:checked { border-color: var(--navy); }
.chk-choice input[type="radio"]:checked::after { transform: scale(1); }
.chk-choice input[type="radio"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.chk-start:not(:has([name=scope][value=unit]:checked)) .chk-unit-pick { display: none; }
.chk-unit-pick { margin: 0.9rem 0 0; max-width: 28rem; }
.chk-unit-pick label { margin-top: 0; }
.chk-start .switch { margin-top: 1.1rem; }
.chk-aside .chk-start {
	margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none;
}
.chk-aside .chk-start .form-block-head h2 { font-size: 1.22rem; }
.chk-aside .chk-start .form-block-head p { margin: 0; }
.chk-aside .chk-scope { grid-template-columns: 1fr; }
.chk-aside .chk-unit-pick { max-width: none; }
.chk-aside .chk-start .actions { margin-top: 1.1rem; }
.chk-aside .chk-start .actions .btn { width: 100%; }
@media (min-width: 1080px) {
	.main.has-aside:has(> .app-aside.chk-aside) {
		grid-template-columns: minmax(0, 1fr) 22rem;
	}
}
.chk-list { display: grid; gap: 0.75rem; }
.chk-list .ap-fleet-card,
.chk-list .chk-list-card {
	grid-template-columns: 4.4rem minmax(0, 1fr);
	align-items: center;
	gap: 0.85rem;
	min-height: 0;
}
.chk-ring {
	--p: 0;
	--ring: var(--navy);
	--track: #e8edf5;
	width: 4.4rem;
	height: 4.4rem;
	border-radius: 999px;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	background:
		radial-gradient(circle closest-side, #fff 72%, transparent 73% 100%),
		conic-gradient(var(--ring) calc(var(--p) * 1%), var(--track) 0);
	color: var(--navy-deep);
	font-variant-numeric: tabular-nums;
}
.chk-ring > span {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}
.chk-ring.is-partial { --ring: #c98512; }
.chk-ring.is-done { --ring: #12b76a; --p: 100; }
.chk-ring.is-empty { --ring: #c9d3e4; --p: 0; color: var(--muted); }
.chk-ring.is-hero {
	width: 7.25rem;
	height: 7.25rem;
}
.chk-ring.is-hero > span {
	font-size: 1.35rem;
}
.chk-pulse-head {
	display: flex;
	gap: 1rem;
	align-items: center;
	margin-bottom: 0.35rem;
}
.chk-pulse-head .form-block-head { margin: 0; }
.chk-show { display: grid; gap: 1rem; margin-bottom: 1rem; }
@media (min-width: 900px) { .chk-show { grid-template-columns: 1.05fr 0.95fr; align-items: start; } }
.chk-times {
	display: grid; gap: 0.65rem; margin-top: 1rem;
	grid-template-columns: 1fr 1fr;
}
@media (max-width: 520px) { .chk-times { grid-template-columns: 1fr; } }
.chk-times div {
	padding: 0.75rem 0.85rem; border: 1px solid var(--line); border-radius: 0.9rem; background: #fff;
	display: grid; gap: 0.12rem;
}
.chk-times span {
	font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.chk-times strong { font-size: 1.35rem; color: var(--navy-deep); font-variant-numeric: tabular-nums; }
.chk-times em { font-style: normal; color: var(--muted); font-size: 0.8rem; font-weight: 650; }
.chk-unit-id { display: flex; gap: 0.85rem; align-items: center; min-width: 0; }
.chk-unit-id .chk-ring { flex: 0 0 auto; }
.chk-unit-id img {
	width: 4.4rem; height: 4.4rem; object-fit: cover; border-radius: 0.8rem;
	border: 1px solid var(--line); background: #e8edf5; flex: 0 0 auto;
}
.mem-bar-save[disabled],
.mem-bar-save.is-disabled,
.mem-bar-save[aria-disabled="true"] {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}
.chk-map { margin-top: 0.95rem; }
.chk-map-hint { margin: 0.65rem 0 0; }
.chk-map .ap-pocket,
.chk-map .ap-rig-cab-head {
	-webkit-appearance: none;
	appearance: none;
}
.chk-map .ap-pocket.is-done { background: #d1fadf; border-color: #12b76a; }
.chk-map .ap-pocket.is-partial { background: #fef4d6; border-color: #c98512; }
.chk-map .ap-pocket.is-redo { background: #fee4e2; border-color: #e23c4a; }
.chk-map .ap-pocket.is-idle { opacity: 0.62; }
.chk-map .ap-pocket:hover {
	border-color: #fff;
	box-shadow: 0 8px 16px rgb(8 15 32 / 0.22);
}
.chk-map .ap-rig-cab .ap-pocket { width: 100%; min-width: 0; }
.chk-map .ap-rig-cab-head.is-done { background: rgb(18 183 106 / 0.28); }
.chk-map .ap-rig-cab-head.is-partial { background: rgb(201 133 18 / 0.28); }
.chk-map .ap-rig-cab-head.is-redo { background: rgb(226 60 74 / 0.28); }
.chk-map .ap-rig-cab-head.is-empty span,
.chk-map .ap-rig-cab-head.is-partial span,
.chk-map .ap-rig-cab-head.is-done span,
.chk-map .ap-rig-cab-head.is-redo span { color: rgb(255 255 255 / 0.82); }
.chk-drawer {
	position: fixed; inset: 0; z-index: 80;
}
.chk-drawer[hidden] { display: none !important; }
.chk-drawer-backdrop {
	position: absolute; inset: 0; background: rgb(15 31 71 / 0.46);
	opacity: 0; transition: opacity 0.22s ease;
}
.chk-drawer.is-open .chk-drawer-backdrop { opacity: 1; }
.chk-drawer-panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(28.5rem, 100vw);
	background: #fff;
	display: flex; flex-direction: column;
	box-shadow: -18px 0 40px rgb(18 37 77 / 0.2);
	transform: translateX(100%);
	transition: transform 0.22s ease;
}
.chk-drawer.is-open .chk-drawer-panel { transform: translateX(0); }
.chk-drawer-head {
	display: flex; gap: 0.65rem; align-items: start;
	padding: 1.05rem 1.1rem 0.9rem;
	border-bottom: 1px solid var(--line);
	position: relative;
}
.chk-drawer-head .modal-x { position: static; }
.chk-drawer-titles { min-width: 0; padding-right: 0.2rem; flex: 1 1 auto; }
.chk-drawer-titles h2 { margin: 0.1rem 0 0.15rem; }
.chk-drawer-titles .help { margin: 0; }
.chk-drawer-back {
	margin-top: 0.15rem; border: 0; background: #f3f6fb; color: var(--navy);
	font: inherit; font-size: 0.8rem; font-weight: 800; border-radius: 0.45rem;
	padding: 0.4rem 0.7rem; cursor: pointer; white-space: nowrap;
}
.chk-drawer-back:hover { background: #e8eef8; }
.chk-drawer-scroll {
	flex: 1 1 auto; min-height: 0; overflow: auto;
	padding: 0.35rem 0.85rem max(1.2rem, env(safe-area-inset-bottom));
}
.chk-rows { list-style: none; margin: 0; padding: 0; display: grid; }
.chk-row {
	width: 100%; display: flex; justify-content: space-between; gap: 0.75rem; align-items: center;
	padding: 0.85rem 0.35rem; border: 0; border-top: 1px solid var(--line);
	background: transparent; font: inherit; text-align: left; cursor: pointer;
}
.chk-rows li:first-child .chk-row { border-top: 0; }
.chk-row-copy { min-width: 0; display: grid; gap: 0.12rem; }
.chk-row-copy strong { color: var(--navy-deep); }
.chk-row-copy em { font-style: normal; color: var(--muted); font-size: 0.82rem; font-weight: 650; }
.chk-row.is-checked { box-shadow: inset 3px 0 0 #12b76a; }
.chk-row.is-rejected { box-shadow: inset 3px 0 0 #e23c4a; }
.chk-row.is-pending { box-shadow: inset 3px 0 0 #9aa8ba; }
.chk-row:hover { background: #f7f9fc; }
.chk-detail { display: grid; gap: 0.95rem; padding: 0.55rem 0.2rem 0.2rem; }
.chk-detail-hero p { margin: 0.2rem 0 0; color: var(--muted); font-weight: 650; }
.chk-answers, .chk-sendback, .chk-redo-note {
	border: 1px solid var(--line); border-radius: 1rem; padding: 0.95rem 1rem 1.05rem;
	display: grid; gap: 0.55rem; background: #f7f9fc;
}
.chk-answers { background: #fff; }
.chk-answers h3, .chk-sendback h3, .chk-redo-note span {
	margin: 0; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--muted); font-weight: 800;
}
.chk-answers h4 { margin: 0.45rem 0 0; color: var(--navy-deep); font-size: 0.92rem; }
.chk-answer { display: grid; gap: 0.12rem; padding: 0.45rem 0; border-top: 1px solid var(--line); }
.chk-answer:first-of-type { border-top: 0; }
.chk-answer span { color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.chk-answer strong { color: var(--navy-deep); font-weight: 750; white-space: pre-wrap; }
.chk-answer.is-flagged { padding: 0.55rem 0.7rem; margin: 0.2rem 0; background: #fff6f4; border-radius: 0.7rem; box-shadow: inset 3px 0 0 var(--danger); border-top-color: transparent; }
.chk-answer.is-flagged strong { color: var(--danger); }
.chk-answer.is-flagged em { font-style: normal; color: var(--danger); font-size: 0.78rem; font-weight: 800; }
.chk-redo-note { background: #fff4f3; border-color: #f5c2c0; }
.chk-redo-note span { color: #b42318; }
.chk-redo-note p { margin: 0; color: var(--navy-deep); font-weight: 700; }
.chk-sendback p { margin: 0; color: var(--muted); font-weight: 650; }
.chk-sendback label { margin: 0.2rem 0 0; }
.chk-sendback textarea { width: 100%; min-height: 5.5rem; }
.chk-sendback .btn { width: 100%; justify-content: center; margin-top: 0.25rem; }
.found-body.is-run-done {
	background: #12254d; color: #fff;
}
.found-body.is-run-done .found-app {
	width: 100%; max-width: none; min-height: 100vh;
	background: transparent; box-shadow: none;
	display: grid; place-items: center;
	padding: max(1.5rem, env(safe-area-inset-top)) 1.25rem max(1.5rem, env(safe-area-inset-bottom));
}
.found-body.is-run-done .found-foot { display: none; }
.chk-done {
	width: min(22rem, 100%);
	display: grid; gap: 0.7rem; justify-items: center; text-align: center;
}
.chk-done-mark {
	width: 4.6rem; height: 4.6rem; border-radius: 999px;
	display: grid; place-items: center;
	background: rgb(18 183 106 / 0.18); color: #6ce9a6;
	margin-bottom: 0.35rem;
}
.chk-done-mark.is-cancel { background: rgb(240 68 56 / 0.16); color: #fda29b; }
.chk-done-kicker {
	margin: 0; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.14em;
	text-transform: uppercase; color: rgb(255 255 255 / 0.62);
}
.chk-done h1 { margin: 0; color: #fff; font-size: 1.7rem; line-height: 1.15; }
.chk-done p { margin: 0; color: rgb(255 255 255 / 0.78); font-weight: 650; }
.chk-done-bar {
	width: 100%; height: 0.38rem; border-radius: 99px; overflow: hidden;
	background: rgb(255 255 255 / 0.12); margin: 0.45rem 0 0.2rem;
}
.chk-done-bar > i {
	display: block; height: 100%; width: 0; background: #6ce9a6;
	animation: chk-done-fill 2.8s linear forwards;
}
.chk-done.is-cancel .chk-done-bar > i { background: #fda29b; }
@keyframes chk-done-fill { from { width: 0; } to { width: 100%; } }
.chk-done-go {
	margin-top: 0.35rem; background: #fff; color: var(--navy-deep); border: 0;
	width: 100%; justify-content: center;
}
.chk-done-go:hover { background: #e8eef8; color: var(--navy-deep); }
.chk-link { word-break: break-all; font-weight: 700; color: var(--navy-deep); }
.chk-meter {
	height: 0.55rem; background: #e8edf5; border-radius: 99px; overflow: hidden; margin-top: 0.55rem;
}
.chk-meter > i { display: block; height: 100%; background: #12b76a; }
.chk-meter.is-partial > i { background: #c98512; }
.chk-meter.is-empty > i { width: 0; background: transparent; }
.chk-unit { display: grid; gap: 0.9rem; margin-bottom: 1rem; }
.chk-unit-head { display: flex; justify-content: space-between; gap: 0.8rem; align-items: flex-start; flex-wrap: wrap; }
.chk-unit-head h2 { margin: 0.1rem 0 0.15rem; }
.chk-unit-head p { margin: 0; color: var(--muted); font-weight: 650; }
.chk-comp { display: grid; gap: 0.45rem; padding-top: 0.35rem; }
.chk-comp-head { display: flex; justify-content: space-between; gap: 0.6rem; align-items: baseline; }
.chk-comp-head span { color: var(--muted); font-size: 0.84rem; font-weight: 700; }
.chk-items { list-style: none; margin: 0; padding: 0; display: grid; }
.chk-item {
	display: flex; justify-content: space-between; gap: 0.8rem; align-items: flex-start;
	padding: 0.7rem 0; border-top: 1px solid var(--line);
}
.chk-item:first-child { border-top: 0; }
.chk-item strong { display: block; color: var(--navy-deep); }
.chk-item span, .chk-item p { color: var(--muted); font-size: 0.84rem; font-weight: 650; margin: 0.15rem 0 0; }
.chk-item-side { display: grid; gap: 0.35rem; justify-items: end; }
.chk-reject { display: flex; gap: 0.35rem; flex-wrap: wrap; justify-content: flex-end; }
.chk-reject input[type="text"] {
	width: auto; min-width: 11rem; margin: 0; padding: 0.4rem 0.6rem;
	font-size: 0.82rem; border-radius: 0.6rem;
}
.chk-guest { padding: 1rem; display: grid; gap: 0.35rem; }
.chk-guest label { margin-top: 0.45rem; }
.chk-scan { width: 100%; }
.found-body.is-run .found-app { width: min(32rem, 100%); }
.print-body.is-report { background: #e8edf5; }
.chk-report-wrap {
	max-width: 8.5in; margin: 1.2rem auto 2rem; background: #fff;
	padding: 0.7in 0.65in 0.5in; box-shadow: 0 16px 40px rgb(18 37 77 / 0.12);
}
.chk-report-wrap > .print-actions { justify-content: flex-end; margin: 0 0 1rem; }
.chk-report { width: 100%; border-collapse: collapse; }
.chk-report > thead > tr > th,
.chk-report > tbody > tr > td,
.chk-report > tfoot > tr > td { padding: 0; border: 0; text-align: left; font-weight: 400; }
.chk-report-head {
	display: flex; justify-content: space-between; gap: 1rem; align-items: center;
	padding-bottom: 0.7rem; border-bottom: 2px solid var(--navy);
}
.chk-report-brand { display: flex; gap: 0.75rem; align-items: center; min-width: 0; }
.chk-report-brand img {
	width: 3.1rem; height: 3.1rem; object-fit: contain; border-radius: 0.45rem;
	border: 1px solid var(--line); background: #fff;
}
.chk-report-brand strong { display: block; color: var(--navy-deep); font-size: 1.05rem; line-height: 1.2; }
.chk-report-brand span {
	display: block; margin-top: 0.12rem; color: var(--muted);
	font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
}
.chk-report-head-meta { text-align: right; }
.chk-report-head-meta em { display: block; font-style: normal; color: var(--navy-deep); font-weight: 800; }
.chk-report-head-meta span { color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.chk-report-foot {
	display: flex; justify-content: space-between; align-items: center; gap: 0.8rem;
	padding-top: 0.55rem; border-top: 1px solid var(--line);
	font-size: 0.72rem; font-weight: 700; color: var(--muted);
}
.chk-report-foot a {
	display: inline-flex; align-items: center; gap: 0.4rem;
	color: var(--navy-deep); text-decoration: none; font-weight: 800;
}
.chk-report-foot img { width: 1.15rem; height: 1.15rem; object-fit: contain; }
.chk-report-intro { padding: 1.05rem 0 0.35rem; }
.chk-report-kicker {
	margin: 0 0 0.25rem; font-size: 0.72rem; font-weight: 800;
	letter-spacing: 0.1em; text-transform: uppercase; color: var(--navy);
}
.chk-report-intro h1 { margin: 0 0 0.3rem; color: var(--navy-deep); font-size: 1.55rem; }
.chk-report-intro p { margin: 0; color: var(--muted); font-weight: 650; }
.chk-report-stats {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem;
	margin: 0.95rem 0 1.15rem;
}
.chk-report-stats div {
	border: 1px solid var(--line); border-radius: 0.7rem; padding: 0.7rem 0.8rem;
	background: #f7f9fc;
}
.chk-report-stats span {
	display: block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--muted);
}
.chk-report-stats strong { display: block; margin: 0.12rem 0 0; color: var(--navy-deep); font-size: 1.25rem; }
.chk-report-stats em { font-style: normal; color: var(--muted); font-size: 0.78rem; font-weight: 650; }
.chk-report-block { margin: 0 0 1.25rem; }
.chk-report-block h2 {
	margin: 0 0 0.45rem; color: var(--navy-deep); font-size: 0.95rem;
	letter-spacing: 0.06em; text-transform: uppercase;
}
.chk-report-block h3 { margin: 0.85rem 0 0.35rem; color: var(--navy-deep); font-size: 0.92rem; }
.chk-report-lead { margin: 0 0 0.55rem; color: var(--muted); font-weight: 650; }
.chk-report-empty { margin: 0; color: var(--muted); font-weight: 650; }
.chk-report-sub { display: block; color: var(--muted); font-size: 0.78rem; font-weight: 650; }
.chk-report-block table { width: 100%; border-collapse: collapse; font-size: 0.84rem; }
.chk-report-block th, .chk-report-block td {
	text-align: left; padding: 0.42rem 0.35rem; border-bottom: 1px solid var(--line);
	vertical-align: top;
}
.chk-report-block th {
	color: var(--muted); font-size: 0.68rem; letter-spacing: 0.07em; text-transform: uppercase;
}
.chk-report-block td strong { color: var(--navy-deep); }
.chk-report-form { margin: 0.85rem 0 1.1rem; break-inside: avoid; }
.chk-report-form h3 { margin: 0 0 0.15rem; }
.chk-report-form > p { margin: 0 0 0.45rem; color: var(--muted); font-size: 0.8rem; font-weight: 650; }
.chk-report-form tr.is-heading td {
	background: #f4f7fb; font-weight: 800; color: var(--navy-deep); letter-spacing: 0.04em;
}
.chk-report-form tr.is-flagged td { background: #fee4e2; }
.chk-report-flag {
	display: inline-block; margin-left: 0.4rem; padding: 0.08rem 0.4rem;
	border-radius: 999px; background: var(--danger); color: #fff;
	font-size: 0.62rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
	vertical-align: middle;
}
.chk-report-expected { display: block; margin-top: 0.15rem; color: var(--danger); font-size: 0.78rem; font-weight: 800; }
.chk-report-sign {
	display: block; max-width: 12rem; max-height: 3.4rem; height: auto;
	object-fit: contain; background: #fff;
}
.chk-report-unit { break-inside: avoid; }
@media print {
	.print-body.is-report { background: #fff; }
	.chk-report-wrap {
		margin: 0; max-width: none; padding: 0; box-shadow: none;
	}
	.chk-report thead { display: table-header-group; }
	.chk-report tfoot { display: table-footer-group; }
	.chk-report-stats div, .chk-report-form tr.is-heading td, .chk-report-form tr.is-flagged td, .chk-report-flag {
		-webkit-print-color-adjust: exact; print-color-adjust: exact;
	}
	@page { margin: 0.5in 0.55in 0.65in; }
}

.mem-hero {
	display: grid;
	grid-template-columns: 4.25rem minmax(0, 1fr);
	gap: 0.85rem;
	align-items: center;
	margin: 0 0 0.85rem;
	padding: 0.85rem 0.95rem;
	background: linear-gradient(180deg, #fff, #f4f7fd);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}
.mem-hero-avatar {
	width: 4.25rem;
	height: 4.25rem;
	border-radius: 999px;
	overflow: hidden;
	display: grid;
	place-items: center;
	background: #e8eef8;
	color: var(--navy);
	font-size: 1.1rem;
	font-weight: 800;
	letter-spacing: 0.02em;
}
.mem-hero-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.mem-hero-copy {
	min-width: 0;
	display: grid;
	gap: 0.2rem;
}
.mem-hero-name {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--navy-deep);
	line-height: 1.2;
}
.mem-hero-sub {
	margin: 0;
	font-size: var(--text-sm);
	font-weight: 650;
	color: var(--muted);
	line-height: 1.35;
}
.mem-hero-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin-top: 0.2rem;
}
.mem-hero-tag {
	display: inline-flex;
	align-items: center;
	min-height: 1.3rem;
	padding: 0.1rem 0.45rem;
	border-radius: 0.4rem;
	background: #e8eef8;
	color: var(--navy);
	font-size: 0.625rem;
	font-weight: 750;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.mem-hero-tag.is-muted {
	background: #eef1f6;
	color: var(--muted);
}
.mem-hero-tag.is-warn {
	background: #fff4e5;
	color: #9a5b00;
}
.mem-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}
.mem-bar-end {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.4rem;
	margin-left: auto;
}
.mem-card {
	min-width: 0;
	max-width: 100%;
}
.mem-card .ap-form,
.mem-card .mem-form,
.mem-card [data-ap-panel],
.mem-card .form-block,
.mem-card .mem-perm-grid,
.mem-card .mem-perm-grid > * {
	min-width: 0;
	max-width: 100%;
}
.mem-card .form-block {
	overflow: visible;
	padding: 0.85rem 0.95rem 0.95rem;
}
.mem-form { display: grid; gap: 0.85rem; }
.mem-card [data-ap-panel] {
	gap: 0.95rem;
}
.form-grid {
	display: grid;
	gap: 0.55rem;
	grid-template-columns: 1fr;
}
@media (min-width: 760px) {
	.form-grid { grid-template-columns: 1fr 1fr; }
	.form-grid label.full { grid-column: 1 / -1; }
}
.form-grid label { display: grid; gap: 0.2rem; font-weight: 700; color: var(--navy-deep); }
.form-grid label input,
.form-grid label select,
.form-grid label textarea {
	font-weight: 600;
}
.mem-card input[type="text"],
.mem-card input[type="email"],
.mem-card input[type="tel"],
.mem-card input[type="password"],
.mem-card input[type="date"],
.mem-card input[type="datetime-local"],
.mem-card input[type="time"],
.mem-card input[type="number"],
.mem-card input[type="search"],
.mem-card select,
.mem-card textarea {
	width: 100%; max-width: 100%; min-width: 0;
	box-sizing: border-box;
	border: 1px solid var(--line); border-radius: var(--radius-sm);
	padding: var(--control-py) var(--control-px);
	min-height: var(--control-h); height: var(--control-h);
	font: inherit; font-size: var(--control-fs); line-height: 1.25; background: #fff;
}
.mem-card input[type="date"] {
	appearance: none; -webkit-appearance: none;
}
.mem-card textarea { min-height: 3.5rem; height: auto; padding-top: 0.45rem; padding-bottom: 0.45rem; }
[data-contact-editor] {
	display: grid;
	gap: 0.95rem;
	align-content: start;
}
[data-contact-editor] > .form-block-head {
	margin-bottom: 0;
}
[data-contact-editor] > .contact-add {
	margin-top: 0;
}
[data-contact-editor] > .empty-state {
	margin: 0;
	padding: 1rem 1.05rem;
}
.cm-list-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 0.35rem;
}
.cm-list {
	display: grid;
	gap: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	overflow: hidden;
}
.cm-list-head,
.cm-row {
	display: grid;
	grid-template-columns:
		1.15rem
		minmax(7.5rem, 0.9fr)
		7.5rem
		minmax(0, 1.4fr)
		auto;
	align-items: center;
	column-gap: 0.65rem;
	min-width: 0;
	padding: 0 0.65rem 0 0.4rem;
}
.cm-list-head {
	min-height: 1.85rem;
	background: #f6f8fc;
	border-bottom: 1px solid var(--line);
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--muted);
}
.cm-head-label { padding-left: 0.1rem; }
.cm-head-type { text-align: left; }
.cm-head-actions { text-align: right; }
.cm-row {
	min-height: 2.65rem;
	height: 2.65rem;
	border: 0;
	border-bottom: 1px solid #eef1f6;
	border-radius: 0;
	background: #fff;
	transition: background 0.12s ease;
}
.cm-row:last-child { border-bottom: 0; }
.cm-row:hover { background: #f7f9fc; }
.cm-row > form[hidden] { display: none !important; }
.cm-row-app { background: #f8fafd; }
.cm-row-app:hover { background: #f1f5fb; }
.cm-drag, .cm-drag-spacer {
	width: 1.15rem; height: 1.75rem; margin: 0; padding: 0;
	display: grid; place-items: center;
}
.cm-drag {
	appearance: none; border: 0; background: transparent; color: var(--muted);
	cursor: grab; touch-action: none; user-select: none;
}
.cm-drag:active { cursor: grabbing; }
.cm-drag .ms { font-size: 1.05rem; }
.cm-drag-spacer { visibility: hidden; }
.cm-label {
	appearance: none;
	border: 0;
	background: transparent;
	margin: 0;
	padding: 0;
	min-width: 0;
	width: 100%;
	text-align: left;
	font: inherit;
	font-size: 0.88rem;
	color: var(--navy);
	font-weight: 750;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;
	text-decoration: none;
	display: block;
}
a.cm-label:hover,
.cm-label:hover { color: var(--navy-deep, #0a1733); text-decoration: underline; }
.cm-type {
	min-width: 0;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cm-value {
	margin: 0;
	min-width: 0;
	font-size: 0.84rem;
	color: var(--ink, #12203a);
	font-weight: 650;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cm-actions {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.15rem;
	justify-self: end;
}
.cm-pill {
	font-size: 0.66rem;
	font-weight: 750;
	color: var(--muted);
	padding: 0.1rem 0.38rem;
	border-radius: 999px;
	background: #f1f4f9;
	white-space: nowrap;
}
.cm-pill.is-on { color: #127a45; background: #e8f7ef; }
.cm-pill.is-primary { color: var(--navy); background: #e8eef8; }
.cm-move { display: inline-flex; gap: 0; }
.cm-move-btn {
	appearance: none; border: 0; background: transparent; color: var(--muted);
	width: 1.25rem; height: 1.35rem; display: grid; place-items: center; cursor: pointer; padding: 0;
}
.cm-move-btn:hover { color: var(--navy); }
.cm-open {
	appearance: none; border: 0; background: transparent; color: var(--muted);
	width: 1.85rem; height: 1.85rem; border-radius: 999px;
	display: grid; place-items: center; cursor: pointer; padding: 0;
}
a.cm-open { text-decoration: none; color: inherit; }
.cm-open:hover { background: #eef3fb; color: var(--navy); }
.cm-open .ms { font-size: 1.2rem; }
.cm-row.is-dragging {
	opacity: 0.98; box-shadow: 0 10px 24px rgba(15, 31, 71, 0.16); z-index: 5;
}
.cm-drop-placeholder {
	border: 0;
	border-bottom: 1px dashed color-mix(in srgb, var(--navy) 35%, var(--line));
	background: #f5f8fd;
	min-height: 2.65rem;
	height: 2.65rem;
}
.cm-method-wrap {
	max-width: 40rem;
}
.cm-method-page {
	display: grid;
	gap: 1rem;
}
.cm-method-hero {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.85rem;
	align-items: start;
	padding: 0.15rem 0 0.25rem;
}
.cm-method-hero-icon {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 0.85rem;
	display: grid;
	place-items: center;
	background: #eef3fb;
	color: var(--navy);
}
.cm-method-hero-icon.is-app {
	background: color-mix(in srgb, var(--navy) 12%, #fff);
}
.cm-method-hero-icon .ms { font-size: 1.35rem; }
.cm-method-kicker {
	margin: 0;
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
}
.cm-method-meta,
.cm-method-value {
	margin: 0.2rem 0 0;
	font-size: 0.9rem;
	color: var(--ink, #17233f);
}
.cm-method-value { font-weight: 650; }
.cm-method-section {
	display: grid;
	gap: 0.65rem;
}
.cm-method-section-title {
	margin: 0.35rem 0 0;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--muted);
}
.cm-method-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	padding-top: 0.35rem;
}
.cm-method-form .settings-rows {
	border: 1px solid var(--line, #d7deea);
	border-radius: 0.85rem;
	overflow: hidden;
	background: #fff;
}
.cm-test-block {
	display: grid;
	gap: 0.55rem;
	margin: 0 0 0.85rem;
}
.cm-test-device {
	display: grid;
	gap: 0.25rem;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--muted);
}
.cm-test-device select {
	min-height: 2.25rem;
	font: inherit;
}
.member-list-directory .fh-table-head,
.member-list-directory .member-row-directory {
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.3fr) minmax(5.5rem, 0.55fr);
	align-items: center;
}
.member-list-directory .fh-table-head .fh-mid,
.member-list-directory .member-row-directory .fh-mid {
	justify-content: flex-start;
	align-items: center;
	text-align: left;
}
.member-list-directory .fh-table-head .fh-end,
.member-list-directory .member-row-directory .fh-end {
	justify-content: flex-end;
	align-items: center;
	text-align: right;
}
.member-list-directory .fh-table-head .fh-mid .fh-head-label,
.member-list-directory .member-row-directory .fh-mid-line {
	width: 100%;
	text-align: left;
}
.member-list-directory .fh-table-head .fh-end .fh-head-label {
	text-align: right;
}
.member-row-directory .fh-id-copy {
	display: grid;
	gap: 0.08rem;
	min-width: 0;
}
.member-row-directory .fh-mobile-email { display: none; }
.settings-metric {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--navy-deep);
	letter-spacing: -0.02em;
}
.status-danger { color: var(--danger, #b42318); }
.status-danger i { background: #f04438; box-shadow: 0 0 0 4px rgb(240 68 56 / 0.16); }
/* Desktop website contact manager — full columns + no PWA reorder chrome. */
@media (min-width: 901px) {
	.cm-list-head { display: grid !important; }
	.cm-desktop-hint { display: block !important; }
	.cm-reorder-toggle { display: none !important; }
	.cm-drag { display: grid !important; }
	.cm-drag-spacer { display: block !important; visibility: hidden; }
	.cm-type,
	.cm-value { display: block !important; }
	.cm-move { display: inline-flex !important; }
}
@media (max-width: 900px) {
	.cm-list-head,
	.cm-desktop-hint { display: none !important; }
	.cm-reorder-toggle { display: inline-flex !important; }
	.cm-list-toolbar { justify-content: flex-end; }
	.cm-row {
		grid-template-columns: minmax(0, 1fr) auto;
		height: 2.85rem;
		min-height: 2.85rem;
		padding: 0 0.35rem 0 0.85rem;
	}
	.cm-drag,
	.cm-drag-spacer,
	.cm-type,
	.cm-value,
	.cm-move { display: none !important; }
	.cm-editor.is-reordering .cm-row {
		grid-template-columns: 1.25rem minmax(0, 1fr) auto;
		padding-left: 0.35rem;
	}
	.cm-editor.is-reordering .cm-drag { display: grid !important; }
	.cm-label {
		max-width: none;
		font-size: 0.94rem;
	}
	.cm-actions { gap: 0; }
	.member-list-directory .fh-table-head { display: none; }
	.member-list-directory .member-row-directory {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.member-row-directory .fh-mid { display: none; }
	.member-row-directory .fh-mobile-email {
		display: block;
		margin: 0;
		font-style: normal;
		font-size: 0.75rem;
		font-weight: 650;
		color: var(--muted);
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}
.cm-modal {
	border: 0; padding: 0; margin: auto;
	max-width: min(32rem, calc(100vw - 1.25rem));
	width: 100%; background: transparent; color: inherit;
}
.cm-modal::backdrop { background: rgb(15 31 71 / 0.52); }
.cm-sheet {
	display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
	background: #fff; border: 1px solid var(--line); border-radius: 1rem;
	box-shadow: 0 22px 48px rgba(8, 16, 36, 0.26); overflow: hidden;
	max-height: min(90vh, 44rem);
}
.cm-sheet-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.75rem 0.85rem;
	align-items: start;
	padding: 1rem 1.1rem 0.95rem;
	border-bottom: 1px solid #e8eef6;
	background: #fff;
}
.cm-sheet-identity {
	display: grid;
	grid-template-columns: 2.65rem minmax(0, 1fr);
	gap: 0.75rem;
	min-width: 0;
	align-items: start;
}
.cm-sheet-icon {
	width: 2.65rem; height: 2.65rem; border-radius: 0.7rem;
	background: #eef3fb; color: var(--navy); display: grid; place-items: center;
	flex: 0 0 auto;
}
.cm-sheet-icon .ms { font-size: 1.25rem; }
.cm-sheet-icon.is-app { background: #0e1c3d; color: #fff; }
.cm-sheet-titles { min-width: 0; display: grid; gap: 0.2rem; }
.cm-sheet-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.65rem;
	min-width: 0;
}
.cm-sheet-title-main { min-width: 0; }
.cm-sheet-kicker {
	margin: 0; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.05em;
	text-transform: uppercase; color: var(--muted);
}
.cm-sheet-titles h3 {
	margin: 0.08rem 0 0;
	font-size: 1.12rem;
	line-height: 1.25;
	color: var(--navy-deep, var(--navy));
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cm-sheet-title-row .cm-pill {
	flex: 0 0 auto;
	margin-top: 0.15rem;
	align-self: center;
}
.cm-sheet-sub, .cm-sheet-value { margin: 0; }
.cm-sheet-sub { font-size: 0.8rem; color: var(--muted); font-weight: 650; }
.cm-sheet-value {
	margin-top: 0.05rem;
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--navy);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cm-sheet-close {
	appearance: none; border: 0; background: #e8eef8; color: var(--navy);
	width: 2rem; height: 2rem; border-radius: 999px; display: grid; place-items: center; cursor: pointer;
	justify-self: end;
}
.mem-service-rows {
	margin-top: 0.35rem;
}
.mem-service-rows .settings-row-field input[type="number"],
.mem-service-rows .settings-row-field input[type="date"] {
	max-width: 10rem;
	justify-self: end;
	text-align: right;
}
.cm-sheet-body {
	padding: 0.85rem 1.1rem 0.4rem; overflow: auto; display: grid; gap: 1rem;
}
.cm-section { display: grid; gap: 0.55rem; }
.cm-section-title {
	margin: 0; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em;
	text-transform: uppercase; color: var(--muted);
}
.cm-kv { display: grid; gap: 0.45rem; }
.cm-kv-row {
	display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 0.65rem;
	padding: 0.55rem 0.65rem; border: 1px solid #e8eef6; border-radius: 0.7rem; background: #fbfcfe;
}
.cm-kv-row span {
	font-size: 0.72rem; font-weight: 750; color: var(--muted); align-self: start; padding-top: 0.05rem;
}
.cm-kv-row strong {
	font-size: 0.9rem; font-weight: 700; color: var(--navy); overflow-wrap: anywhere; line-height: 1.35;
}
.cm-detail-switch {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.65rem;
	align-items: start;
	margin: 0;
	padding: 0.7rem 0.75rem;
	border: 1px solid #e8eef6;
	border-radius: 0.7rem;
	background: #fff;
}
.cm-detail-switch input {
	margin-top: 0.2rem;
	width: 1.05rem;
	height: 1.05rem;
}
.cm-detail-switch strong {
	display: block;
	color: var(--navy);
	font-size: 0.92rem;
}
.cm-detail-switch em {
	display: block;
	margin-top: 0.15rem;
	font-style: normal;
	font-weight: 600;
	font-size: 0.8rem;
	color: var(--muted);
	line-height: 1.35;
}
.cm-device-card, .cm-note {
	padding: 0.7rem 0.75rem; border: 1px solid #e8eef6; border-radius: 0.7rem; background: #fbfcfe;
}
.cm-device-card { display: grid; gap: 0.2rem; }
.cm-device-card strong { color: var(--navy); }
.cm-device-card span, .cm-note { color: var(--muted); font-size: 0.84rem; font-weight: 600; line-height: 1.4; }
.cm-note { margin: 0; }
.cm-inline-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.cm-device-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.cm-device-item {
	display: flex; justify-content: space-between; gap: 0.65rem; align-items: center;
	padding: 0.6rem 0.7rem; border: 1px solid #e8eef6; border-radius: 0.7rem; background: #fff;
}
.cm-device-item div { display: grid; gap: 0.1rem; min-width: 0; }
.cm-device-item strong { color: var(--navy); font-size: 0.9rem; }
.cm-device-item span { color: var(--muted); font-size: 0.76rem; font-weight: 650; }
.cm-sheet-foot {
	display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: space-between;
	padding: 0.85rem 1.1rem 1rem; border-top: 1px solid #e8eef6; background: #fff;
}
.cm-sheet-foot-main { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.cm-edit-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem;
}
.cm-edit-wide { grid-column: 1 / -1; }
.cm-edit-grid label { display: grid; gap: 0.22rem; margin: 0; }
.cm-edit-grid label > span {
	font-size: var(--label-fs); font-weight: 800; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--muted);
}
.cm-edit-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; margin-top: 0.55rem; }
.cm-danger { color: var(--danger, #b42318) !important; margin-left: auto; }
.cm-sheet.is-editing [data-panel-app] { display: none !important; }
.pk-list li {
	display: flex; justify-content: space-between; gap: 0.75rem; align-items: center;
	flex-wrap: wrap;
}
.pk-item-main { display: grid; gap: 0.1rem; min-width: 0; }
.pk-item-actions { display: flex; gap: 0.35rem; flex-wrap: wrap; }
.contact-list { display: grid; gap: 0.5rem; }
.contact-priority-hint { margin: 0.35rem 0 0; }
.contact-card {
	display: grid;
	grid-template-columns: 1.85rem minmax(0, 1fr);
	gap: 0.65rem;
	padding: 0.8rem 0.85rem;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: #fff;
	min-width: 0;
	position: relative;
}
.contact-card-slim {
	--contact-drag-col: 1.25rem;
	--contact-rank-col: 1.35rem;
	--contact-mark-col: 1.65rem;
	--contact-more-col: 2rem;
	grid-template-columns:
		var(--contact-drag-col)
		var(--contact-rank-col)
		var(--contact-mark-col)
		minmax(0, 1fr)
		var(--contact-more-col);
	align-items: center;
	column-gap: 0.45rem;
	row-gap: 0;
	padding: 0.55rem 0.55rem 0.55rem 0.4rem;
	min-height: 3.35rem;
}
.contact-card-slim > [hidden],
.contact-card-slim > form[hidden] {
	display: none !important;
}
.contact-drag,
.contact-drag-spacer {
	width: var(--contact-drag-col);
	height: 2rem;
	margin: 0;
	padding: 0;
	display: grid;
	place-items: center;
}
.contact-drag {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--muted);
	cursor: grab;
	touch-action: none;
	user-select: none;
}
.contact-drag:active { cursor: grabbing; }
.contact-drag .ms { font-size: 1.15rem; }
.contact-drag-spacer { visibility: hidden; }
.contact-rank {
	width: var(--contact-rank-col);
	height: var(--contact-rank-col);
	border-radius: 999px;
	background: #eef3fb;
	color: var(--navy);
	font-size: 0.72rem;
	font-weight: 800;
	display: grid;
	place-items: center;
	line-height: 1;
	justify-self: center;
}
.contact-rank-muted {
	background: #f3f4f6;
	color: var(--muted);
}
.contact-card-mark {
	display: grid;
	place-items: center;
	width: var(--contact-mark-col);
	height: var(--contact-mark-col);
	border-radius: var(--radius-sm);
	background: #eef3fb;
	color: var(--navy);
	margin: 0;
	justify-self: center;
}
.contact-card-mark .ms { font-size: 1rem; }
.contact-card-body {
	min-width: 0;
	display: grid;
	gap: 0.06rem;
	align-content: center;
}
.contact-card-top {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.45rem;
	align-items: baseline;
	min-width: 0;
}
.contact-card-type {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--muted);
	white-space: nowrap;
}
.contact-card-status {
	font-size: 0.7rem;
	font-weight: 750;
	color: var(--muted);
	white-space: nowrap;
}
.contact-card-status.is-on { color: var(--ok, #127a45); }
.contact-card-label {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 750;
	color: var(--navy);
	line-height: 1.2;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.contact-card-value {
	margin: 0;
	font-size: 0.82rem;
	font-weight: 650;
	color: var(--ink, #12203a);
	line-height: 1.25;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.contact-more {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--muted);
	width: var(--contact-more-col);
	height: 2rem;
	border-radius: 999px;
	padding: 0;
	display: grid;
	place-items: center;
	justify-self: end;
	cursor: pointer;
}
.contact-more .ms { font-size: 1.25rem; }
.contact-more:hover { background: #eef3fb; color: var(--navy); }
.contact-card-form { min-width: 0; }
.contact-card-grid {
	display: grid;
	gap: 0.55rem 0.55rem;
	grid-template-columns: minmax(6.5rem, 0.8fr) minmax(6.5rem, 1fr);
}
.contact-card-grid label {
	display: grid; gap: 0.22rem; margin: 0; min-width: 0;
}
.contact-card-grid label span,
.contact-add label span {
	font-size: var(--label-fs); font-weight: 800; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--muted); line-height: 1.2;
}
.contact-card-value-field { grid-column: 1 / -1; }
.contact-card-app {
	border-color: color-mix(in srgb, var(--navy) 22%, var(--line));
	background: linear-gradient(180deg, #f5f8fd 0%, #fff 70%);
}
.contact-card-app .contact-card-mark {
	background: #0e1c3d;
	color: #fff;
}
.contact-card-app-off { opacity: 0.92; }
.contact-card-actions {
	display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center;
	margin-top: 0.65rem;
}
.contact-card-actions .help { margin: 0; }
.contact-primary { margin: 0.45rem 0 0; }
.contact-card.is-dragging {
	opacity: 0.98;
	box-shadow: 0 12px 28px rgba(15, 31, 71, 0.18);
	border-color: color-mix(in srgb, var(--navy) 28%, var(--line));
}
.contact-drop-placeholder {
	border: 1px dashed color-mix(in srgb, var(--navy) 35%, var(--line));
	border-radius: var(--radius);
	background: #f5f8fd;
	min-height: 3.35rem;
}
.contact-detail-modal {
	border: 0;
	padding: 0;
	margin: auto;
	max-width: min(34rem, calc(100vw - 1.5rem));
	width: 100%;
	background: transparent;
	color: inherit;
}
.contact-detail-modal::backdrop {
	background: rgb(15 31 71 / 0.52);
}
.contact-detail-sheet {
	display: grid;
	grid-template-rows: auto auto auto auto;
	gap: 0;
	margin: 0;
	padding: 0;
	border-radius: 1rem;
	background: #fff;
	border: 1px solid var(--line);
	box-shadow: 0 22px 48px rgba(8, 16, 36, 0.26);
	overflow: hidden;
}
.contact-detail-head {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	align-items: flex-start;
	padding: 1rem 1.1rem 0.9rem;
	border-bottom: 1px solid #e8eef6;
	background: linear-gradient(180deg, #f7f9fc 0%, #fff 100%);
}
.contact-detail-titles { min-width: 0; }
.contact-detail-head .form-kicker { margin: 0 0 0.15rem; }
.contact-detail-head h3 {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.25;
	color: var(--navy-deep, var(--navy));
}
.contact-detail-close {
	appearance: none;
	border: 0;
	background: #e8eef8;
	color: var(--navy);
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	display: grid;
	place-items: center;
	cursor: pointer;
	flex: 0 0 auto;
}
.contact-detail-close .ms { font-size: 1.05rem; }
.contact-detail-summary,
.contact-detail-edit,
.contact-detail-app {
	padding: 0.95rem 1.1rem;
}
.contact-detail-summary[hidden],
.contact-detail-edit[hidden],
.contact-detail-app[hidden] {
	display: none !important;
}
.contact-detail-section-label {
	margin: 0 0 0.65rem;
	font-size: var(--label-fs);
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.contact-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem 0.75rem;
}
.contact-detail-cell {
	display: grid;
	gap: 0.18rem;
	min-width: 0;
	padding: 0.55rem 0.65rem;
	border: 1px solid #e8eef6;
	border-radius: 0.7rem;
	background: #fbfcfe;
}
.contact-detail-cell.is-wide { grid-column: 1 / -1; }
.contact-detail-cell[hidden] { display: none !important; }
.contact-detail-cell span {
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--muted);
	line-height: 1.2;
}
.contact-detail-cell strong {
	font-size: 0.92rem;
	font-weight: 750;
	color: var(--navy);
	line-height: 1.3;
	overflow-wrap: anywhere;
}
.contact-detail-cell strong.is-multiline {
	white-space: pre-line;
}
.contact-detail-edit {
	border-top: 1px solid #e8eef6;
	background: #fff;
}
.contact-detail-edit .contact-card-grid {
	grid-template-columns: 1fr 1fr;
	gap: 0.55rem;
}
.contact-detail-edit .contact-card-value-field,
.contact-detail-edit [data-contact-ext],
.contact-detail-edit .contact-card-notes-field,
.contact-detail-edit .contact-primary {
	grid-column: 1 / -1;
}
.contact-detail-edit .contact-card-actions {
	margin-top: 0.35rem;
	gap: 0.45rem;
}
.contact-detail-edit .contact-remove-btn {
	margin-left: auto;
	color: var(--danger, #b42318);
}
.contact-detail-app {
	border-top: 1px solid #e8eef6;
	background: #f8fafd;
	display: grid;
	gap: 0.55rem;
}
.contact-detail-switch {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.65rem;
	align-items: start;
	margin: 0;
	padding: 0.7rem 0.75rem;
	border: 1px solid #e8eef6;
	border-radius: 0.7rem;
	background: #fff;
}
.contact-detail-switch input {
	margin-top: 0.2rem;
	width: 1.05rem;
	height: 1.05rem;
}
.contact-detail-switch strong {
	display: block;
	color: var(--navy);
	font-size: 0.92rem;
}
.contact-detail-switch em {
	display: block;
	margin-top: 0.15rem;
	font-style: normal;
	font-weight: 600;
	font-size: 0.8rem;
	color: var(--muted);
	line-height: 1.35;
}
.contact-detail-status {
	margin: 0;
	min-height: 1.1rem;
}
.contact-detail-foot {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: space-between;
	padding: 0.85rem 1.1rem 1rem;
	border-top: 1px solid #e8eef6;
	background: #fff;
}
.contact-detail-foot-main {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	align-items: center;
	min-width: 0;
}
.contact-detail-modal.is-editing .contact-detail-app {
	display: none !important;
}
.contact-row,
.contact-add {
	display: grid; gap: 0.55rem;
	padding: 0.8rem 0.85rem;
	border: 1px solid var(--line); border-radius: var(--radius); background: #fff;
	min-width: 0;
}
.contact-row {
	grid-template-columns: minmax(6.5rem, 0.75fr) minmax(7rem, 1fr) minmax(8rem, 1.25fr) auto;
	align-items: end;
}
.contact-row label,
.contact-add label {
	display: grid; gap: 0.22rem; margin: 0; min-width: 0;
}
.contact-row label span,
.contact-add label span {
	font-size: var(--label-fs); font-weight: 800; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--muted); line-height: 1.2;
}
.contact-row-actions {
	display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center;
	padding-bottom: 0.1rem;
}
.contact-add { margin-top: 0.85rem; }
.contact-add-grid {
	display: grid; gap: 0.55rem;
	grid-template-columns: minmax(6.5rem, 0.75fr) minmax(7rem, 1fr) minmax(8rem, 1.25fr) minmax(4.5rem, 0.5fr);
}
.contact-add .actions { margin: 0.15rem 0 0; }
.mem-card .form-block-head { margin-bottom: 0.65rem; }
.mem-card .mem-label { margin: 0.15rem 0 0.55rem; }
.pwa-notify-gate {
	position: fixed; inset: 0; z-index: 80;
	display: grid; place-items: end center;
	padding: 1rem;
	padding-bottom: max(1rem, calc(var(--dock-h) + env(safe-area-inset-bottom) + 0.75rem));
	background: rgba(8, 16, 36, 0.42);
}
.pwa-notify-gate-card {
	width: min(22rem, 100%);
	display: grid; gap: 0.65rem;
	padding: 1rem 1.05rem;
	border-radius: var(--radius);
	background: #fff;
	box-shadow: 0 18px 40px rgba(8, 16, 36, 0.28);
}
.pwa-notify-gate-card strong {
	font-size: var(--text-lg);
	color: var(--navy);
}
.pwa-notify-gate-card p {
	margin: 0;
	color: var(--muted);
	font-size: var(--text-md);
	line-height: 1.45;
}
.pwa-toast {
	position: fixed;
	left: 0.85rem; right: 0.85rem;
	bottom: max(0.85rem, calc(var(--dock-h) + env(safe-area-inset-bottom) + 0.55rem));
	z-index: 95;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 0.65rem; padding: 0.75rem 0.9rem;
	background: #0e1c3d; color: #fff; border-radius: var(--radius);
	box-shadow: 0 14px 32px rgb(14 28 61 / 0.28);
	font-size: var(--text-md); font-weight: 650;
}
.pwa-toast-actions { display: flex; gap: 0.35rem; }
.pwa-toast .btn-ghost { color: #fff; }
.pwa-toast .btn-primary { background: #fff; color: #0e1c3d; }
/* Phone / installed-PWA density only — never reshape the desktop website. */
@media (max-width: 959px) {
	html.is-pwa .mgr-bar {
		padding-top: max(0.35rem, env(safe-area-inset-top));
		min-height: calc(var(--mgr-bar) + env(safe-area-inset-top));
	}
	html.is-pwa .page-head {
		margin-top: 0.35rem;
	}
	html.is-pwa .page-head h1 {
		font-size: 1.05rem;
	}
	html.is-pwa .main-flow {
		padding-top: 0.45rem;
	}
	html.is-pwa .mem-card:not(.settings-page) .form-block {
		padding: 0.9rem 0.95rem 1rem;
	}
	html.is-pwa .contact-card,
	html.is-pwa .contact-add {
		padding: 0.85rem 0.9rem;
	}
}
.mem-field .mem-label { margin-top: 0; }
.contact-readonly { display: grid; gap: 0.4rem; }
.contact-readonly li {
	display: grid; gap: 0.12rem;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--line); border-radius: 0.75rem; background: #fff;
}
.contact-readonly strong { font-size: 0.86rem; }
.contact-readonly span { color: var(--muted); font-size: 0.82rem; font-weight: 650; }
.share-card {
	display: grid; gap: 0.7rem;
	margin: 0 0 1rem;
	padding: 0.95rem;
	border: 1px solid var(--line); border-radius: 1rem; background: #fff;
}
.share-card-head {
	display: flex; justify-content: space-between; gap: 0.75rem; align-items: baseline;
}
.share-card-head em {
	font-style: normal; color: var(--muted); font-size: 0.78rem; font-weight: 750;
	white-space: nowrap;
}
.share-live { color: #1f7a3a !important; }
.mem-identity {
	display: grid; grid-template-columns: 4.4rem minmax(0, 1fr);
	gap: 0.7rem; align-items: start;
}
.mem-avatar.upload {
	width: 4.4rem; min-width: 4.4rem; max-width: 4.4rem;
	height: 4.4rem; min-height: 4.4rem; padding: 0; gap: 0;
	border-radius: 1rem; overflow: hidden;
	flex-direction: row;
}
.mem-avatar .upload-mark,
.mem-avatar .upload-mark img {
	width: 4.4rem; height: 4.4rem; min-width: 4.4rem; border-radius: 1rem;
}
.mem-avatar .upload-plus { font-size: 1.35rem; }
.mem-name-grid {
	display: grid; gap: 0.5rem 0.55rem; min-width: 0;
	grid-template-columns: minmax(0, 1fr) 3.1rem;
}
.mem-name-grid .mem-field:nth-child(3) { grid-column: 1; }
.mem-name-grid .mem-field:nth-child(5) { grid-column: 1 / -1; }
.mem-field { min-width: 0; max-width: 100%; }
.mem-field label { margin-top: 0; font-size: var(--label-fs); }
.mem-field-mi input, .mem-field-suffix input { text-align: center; padding-left: 0.2rem; padding-right: 0.2rem; }
.mem-contact-grid {
	display: grid; gap: 0.45rem; min-width: 0;
}
.mem-label {
	margin: 0.65rem 0 0.3rem; font-size: var(--label-fs); font-weight: 800;
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted);
}
.mem-perm-grid { display: grid; gap: 0.75rem; }
.mem-titles { margin-top: 0.25rem; min-width: 0; }
.mem-title-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; min-height: 1.6rem; }
.mem-chip {
	display: inline-flex; align-items: center; gap: 0.22rem;
	max-width: 100%;
	padding: 0.2rem 0.28rem 0.2rem 0.55rem;
	background: #eef3fb; color: var(--navy-deep); border-radius: 999px;
	font-size: var(--text-sm); font-weight: 800;
}
.mem-chip [data-title-label] {
	min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mem-chip button {
	appearance: none; border: 0; background: transparent; flex: 0 0 auto;
	width: 1.2rem; height: 1.2rem; border-radius: 99px;
	color: var(--muted); cursor: pointer; font-size: 0.9rem; line-height: 1;
}
.mem-chip button:hover { background: #fff; color: var(--danger); }
.mem-title-add { display: flex; gap: 0.35rem; margin-top: 0.4rem; min-width: 0; }
.mem-title-add input { flex: 1 1 auto; min-width: 0; }
.mem-title-add .btn { flex: 0 0 auto; padding: 0 0.7rem; }
.mem-title-suggest { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.4rem; }
.mem-title-suggest button {
	appearance: none; border: 1px dashed var(--line); background: #fff;
	border-radius: var(--radius-sm); padding: 0.2rem 0.55rem; font: inherit;
	font-size: var(--text-xs); font-weight: 750; color: var(--navy); cursor: pointer;
}
.mem-title-suggest button:hover { border-color: var(--navy); background: #f4f7fd; }
.mem-title-suggest button.is-on { display: none; }
.mem-ride {
	display: grid; gap: 0.35rem; margin: 0.25rem 0 0;
}
.mem-ride-card {
	position: relative;
	display: grid; grid-template-columns: 1.9rem minmax(0, 1fr); gap: 0.5rem;
	align-items: center; margin: 0; padding: 0.35rem 0.5rem;
	border: 1px solid var(--line); border-radius: var(--radius); background: #fff;
	cursor: pointer; min-width: 0;
	-webkit-user-select: none;
	user-select: none;
}
.mem-ride-card input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
}
.mem-ride-card:has(input:checked) { border-color: var(--navy); background: #f3f6fd; }
.mem-ride-card:has(input:checked) .mem-ride-mark {
	background: var(--navy);
	color: #fff;
	box-shadow: inset 0 0 0 0.12rem #fff;
}
.mem-ride-card:has(input:focus-visible) {
	outline: 2px solid var(--navy);
	outline-offset: 2px;
}
.mem-ride-mark {
	width: 1.9rem; height: 1.9rem; border-radius: var(--radius-sm);
	display: grid; place-items: center; overflow: hidden; flex: 0 0 auto;
	background: #e8edf5; color: var(--navy); font-weight: 800; font-size: 0.68rem;
}
.mem-ride-mark img { width: 100%; height: 100%; object-fit: cover; }
.mem-ride-card span:last-child { min-width: 0; }
.mem-ride-card strong { display: block; font-size: var(--text-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mem-ride-card em { display: block; font-style: normal; color: var(--muted); font-size: var(--text-xs); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mem-choice-grid { display: grid; gap: 0.4rem; }
.mem-choice {
	position: relative;
	display: grid; gap: 0.1rem; margin: 0; padding: 0.55rem 0.65rem;
	border: 1px solid var(--line); border-radius: var(--radius); background: #fff; cursor: pointer;
	min-width: 0;
}
.mem-choice input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.mem-choice:has(input:checked) { border-color: var(--navy); background: #f3f6fd; box-shadow: inset 0 0 0 1px var(--navy); }
.mem-choice strong { color: var(--navy-deep); font-size: var(--text-sm); }
.mem-choice span { color: var(--muted); font-size: var(--text-xs); font-weight: 600; line-height: 1.3; }
.mem-switch-list { display: grid; gap: 0.3rem; margin: 0.45rem 0 0.55rem; }
.mem-switch {
	display: grid; grid-template-columns: 1.1rem minmax(0, 1fr); gap: 0.5rem;
	align-items: center; margin: 0; padding: 0.4rem 0.55rem;
	border: 1px solid var(--line); border-radius: var(--radius); background: #fff;
	min-width: 0;
}
.mem-switch span { display: grid; gap: 0.05rem; min-width: 0; }
.mem-switch strong { font-size: var(--text-sm); }
.mem-switch em { font-style: normal; color: var(--muted); font-size: var(--text-xs); font-weight: 650; }
.mem-note {
	display: grid; gap: 0.1rem; padding: 0.55rem 0.65rem;
	background: #f4f7fd; border-radius: var(--radius); margin: 0 0 0.55rem;
	min-width: 0;
}
.mem-note span { color: var(--muted); font-size: var(--text-sm); font-weight: 650; word-break: break-word; }
.mem-account {
	display: grid; grid-template-columns: 2.1rem minmax(0, 1fr); gap: 0.55rem;
	align-items: center; padding: 0.55rem 0.7rem;
	border: 1px solid var(--line); border-radius: var(--radius);
	background: linear-gradient(180deg, #fff, #f4f7fd);
	margin: 0 0 0.15rem;
}
.mem-account-mark {
	width: 2.1rem; height: 2.1rem; border-radius: var(--radius-sm);
	display: grid; place-items: center; background: var(--navy); color: #fff;
	font-weight: 800; font-size: 0.68rem;
}
.mem-account.is-pending .mem-account-mark { background: #b45309; }
.mem-account strong { display: block; color: var(--navy-deep); font-size: var(--text-sm); }
.mem-account span { color: var(--muted); font-size: var(--text-xs); font-weight: 650; word-break: break-word; }
.mem-advanced {
	background: linear-gradient(180deg, #fffdf8, #f8f1e4);
	border-color: #e6d3a8;
}
.mem-advanced .form-kicker { color: #b45309; }
.mem-link-form { display: grid; gap: 0.35rem; }
.mem-link-row { display: flex; gap: 0.5rem; align-items: stretch; min-width: 0; }
.mem-link-row input { flex: 1 1 auto; min-width: 0; }
.mem-link-row .btn { flex: 0 0 auto; white-space: nowrap; }
.mem-settings .form-block + .form-block { margin-top: 0; }
@media (min-width: 720px) {
	.mem-name-grid { grid-template-columns: minmax(0, 1.4fr) 3.2rem minmax(0, 1.4fr) 5.2rem; }
	.mem-name-grid .mem-field:nth-child(3) { grid-column: auto; }
	.mem-name-grid .mem-field:nth-child(5) { grid-column: 1 / -1; }
	.contact-card-grid {
		grid-template-columns: minmax(6.5rem, 0.65fr) minmax(6.5rem, 0.85fr) minmax(9rem, 1.2fr) minmax(4.5rem, 0.45fr) minmax(7rem, 0.95fr);
	}
	.contact-card-value-field { grid-column: auto; }
	.mem-contact-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
	.contact-add-grid {
		grid-template-columns: minmax(6.5rem, 0.65fr) minmax(6.5rem, 0.85fr) minmax(9rem, 1.2fr) minmax(4.5rem, 0.45fr) minmax(7rem, 0.95fr);
	}
	.mem-perm-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
	.mem-ride { grid-template-columns: 1fr; }
	.mem-choice-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 959px) {
	.mem-card .ap-tabs {
		justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap;
		-webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	.mem-card .ap-tabs::-webkit-scrollbar { display: none; }
	.mem-card .ap-tabs button { flex: 0 0 auto; white-space: nowrap; padding: 0.4rem 0.7rem 0.45rem; font-size: var(--text-sm); }
	.mem-title-add { flex-wrap: wrap; }
	.mem-title-add .btn { width: 100%; }
	.mem-link-row { flex-direction: column; }
	.mem-card .form-block { padding: 0.85rem 0.85rem 0.95rem; }
	.mem-card .form-block-head { margin-bottom: 0.7rem; }
	.contact-list { gap: 0.5rem; }
	.contact-card-slim {
		padding: 0.5rem 0.5rem 0.5rem 0.35rem;
	}
	.contact-card-grid {
		gap: 0.5rem;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
	.contact-card-value-field { grid-column: 1 / -1; }
	.contact-card-actions { margin-top: 0.55rem; gap: 0.5rem; }
	.contact-detail-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.contact-add {
		margin-top: 0.9rem;
		padding: 0.8rem 0.8rem;
		gap: 0.55rem;
	}
	.contact-row,
	.contact-add-grid {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 0.5rem;
	}
	.contact-add-grid > label:nth-child(3),
	.contact-row > label:nth-child(3) { grid-column: 1 / -1; }
	.contact-primary {
		padding: 0.35rem 0.5rem;
		border-radius: var(--radius-sm);
	}
	.contact-row-actions { padding-bottom: 0; }
	/* Touch: keep usable hit area without inflating visual chrome */
	.mem-card input[type="text"],
	.mem-card input[type="email"],
	.mem-card input[type="tel"],
	.mem-card input[type="password"],
	.mem-card input[type="date"],
	.mem-card input[type="datetime-local"],
	.mem-card input[type="time"],
	.mem-card input[type="number"],
	.mem-card input[type="search"],
	.mem-card select,
	.ap-page input[type="text"],
	.ap-page input[type="email"],
	.ap-page input[type="tel"],
	.ap-page input[type="password"],
	.ap-page input[type="date"],
	.ap-page input[type="datetime-local"],
	.ap-page input[type="time"],
	.ap-page input[type="number"],
	.ap-page input[type="search"],
	.ap-page select {
		min-height: var(--control-h-touch);
		height: var(--control-h-touch);
		font-size: 1rem; /* avoid iOS input zoom */
		padding: 0.35rem 0.65rem;
	}
	.mem-card textarea,
	.ap-page textarea {
		min-height: 3.75rem;
		height: auto;
		font-size: 1rem;
	}
	.mem-card .btn,
	.ap-page .btn,
	.contact-card-actions .btn,
	.contact-add .btn {
		min-height: var(--control-h-touch);
		height: var(--control-h-touch);
	}
}
.cert-head {
	display: flex; justify-content: space-between; gap: 0.85rem;
	align-items: flex-end; flex-wrap: wrap;
}
.cert-head .btn { flex: 0 0 auto; }
.list-tools-export {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0.15rem 0 0.65rem;
}
.cert-fleet .ap-fleet-card {
	grid-template-columns: 1fr;
	min-height: 0; width: 100%;
	padding: 0; cursor: pointer; font: inherit; text-align: left;
}
.cert-fleet .ap-fleet-photo {
	height: 11.5rem; position: relative; overflow: hidden;
}
.cert-fleet .ap-fleet-photo img,
.cert-fleet .ap-fleet-photo embed,
.cert-preview img,
.cert-preview embed {
	width: 100%; height: 100%; object-fit: cover; border: 0; display: block; pointer-events: none;
}
.cert-file-badge {
	position: absolute; left: 0.55rem; bottom: 0.55rem;
	background: rgb(18 37 77 / 0.86); color: #fff;
	font-size: 0.68rem; font-weight: 800; letter-spacing: 0.06em;
	border-radius: 999px; padding: 0.2rem 0.5rem;
}
.cert-preview {
	position: relative; height: 10.5rem; border-radius: 0.9rem; overflow: hidden;
	background: #e8edf5; margin: 0.15rem 0 0.85rem;
	display: none; place-items: center;
	color: var(--navy); font-weight: 800;
}
.cert-preview.has-file { display: grid; }
.cert-drawer-form .upload { min-height: 7.5rem; }
.cert-drawer-actions {
	display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 0.4rem;
}
.cert-status { min-height: 1.2em; }
.chk-drawer-scroll.form-stack { padding: 0.85rem 1.05rem max(1.2rem, env(safe-area-inset-bottom)); }

.join-mint { margin-bottom: 1.25rem; }
.join-mint .form-grid-2 { margin-top: 0.15rem; }
.join-mint .form-grid-2 label { margin-top: 0; }
.join-mint .form-grid-2 + label { margin-top: 0.95rem; }
.join-mint .actions { margin-top: 1.05rem; }
.join-open { margin: 0 0 1.35rem; }
.join-open .form-block-head { margin-bottom: 0.75rem; }
@media (min-width: 761px) {
	.join-open-row { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; }
}
.join-enter .actions { margin-top: 0.95rem; }
.join-open-row .fh-id { color: inherit; text-decoration: none; min-width: 0; }
.join-open-row.is-active { background: #f4f7fd; box-shadow: inset 3px 0 0 var(--navy); }
.join-open-code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: 0.08em;
}
.join-panel { display: grid; gap: 0.7rem; align-content: start; }
.join-panel h2 { margin: 0; font-size: 1.2rem; }
.join-panel .help { margin: 0; }
.join-panel-code {
	margin: 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: clamp(1.35rem, 2vw, 1.7rem); font-weight: 800;
	letter-spacing: 0.14em; color: var(--navy-deep);
}
.join-panel-qr {
	display: grid; place-items: center;
	background: #fff; border: 1px solid var(--line); border-radius: 1rem;
	padding: 0.9rem; margin: 0.15rem 0;
}
.join-panel-qr svg { width: min(220px, 100%); height: auto; }
.join-panel-meta {
	display: grid; gap: 0.55rem; margin: 0.15rem 0 0;
}
.join-panel-meta div {
	background: #fff; border: 1px solid var(--line); border-radius: 0.85rem;
	padding: 0.65rem 0.8rem;
}
.join-panel-meta dt {
	margin: 0; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--muted);
}
.join-panel-meta dd {
	margin: 0.18rem 0 0; font-weight: 800; color: var(--navy-deep); font-size: 0.92rem;
}
.join-panel-actions { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.25rem; }
.join-panel-actions .btn { flex: 1 1 8rem; }
.join-panel.is-empty {
	min-height: 16rem; place-content: start;
	padding: 0.2rem 0.1rem;
}
.join-screen {
	display: grid;
	gap: 1rem;
	align-items: start;
	width: 100%;
}
.join-panel {
	border: 1px solid rgb(255 255 255 / 0.12);
	border-radius: 1.25rem;
	background: linear-gradient(165deg, rgb(255 255 255 / 0.12), rgb(255 255 255 / 0.05));
	box-shadow: 0 18px 40px rgb(0 0 0 / 0.22);
	backdrop-filter: blur(18px) saturate(140%);
	padding: 1.35rem 1.3rem 1.4rem;
}
.join-panel-side { counter-reset: join-step; }
.join-hero { margin: 0 0 1.1rem; }
.join-eyebrow,
.join-kicker {
	margin: 0 0 0.35rem;
	color: rgb(170 196 240 / 0.9);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.join-hero h1,
.join-panel h1 {
	margin: 0 0 0.45rem;
	color: #fff;
	font-size: clamp(1.55rem, 3.2vw, 2rem);
	line-height: 1.15;
	letter-spacing: -0.035em;
}
.join-lede,
.join-copy {
	margin: 0;
	color: rgb(226 234 248 / 0.78);
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 550;
	max-width: 34rem;
}
.join-entry-card {
	border: 1px solid rgb(255 255 255 / 0.1);
	border-radius: 1.05rem;
	padding: 1.05rem 1.05rem 1.15rem;
	background: rgb(8 18 40 / 0.35);
}
.join-entry-card h2,
.join-panel-side h2 {
	margin: 0 0 0.35rem;
	color: #fff;
	font-size: 1.2rem;
	letter-spacing: -0.02em;
}
.join-entry-card .join-copy { margin-bottom: 0.9rem; }
.join-steps {
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}
.join-steps li {
	position: relative;
	display: grid;
	gap: 0.15rem;
	padding: 0.8rem 0.85rem 0.8rem 2.55rem;
	border-radius: 0.9rem;
	border: 1px solid rgb(255 255 255 / 0.1);
	background: rgb(255 255 255 / 0.06);
	color: #fff;
	line-height: 1.4;
}
.join-steps li strong {
	font-size: 0.95rem;
	font-weight: 800;
}
.join-steps li span {
	color: rgb(214 225 244 / 0.72);
	font-size: 0.9rem;
	font-weight: 550;
}
.join-steps li::before {
	counter-increment: join-step;
	content: counter(join-step);
	position: absolute;
	left: 0.75rem;
	top: 0.85rem;
	width: 1.3rem;
	height: 1.3rem;
	border-radius: 99px;
	display: grid;
	place-items: center;
	background: #2f6fed;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 800;
}
.join-enter { display: grid; gap: 0.35rem; }
.join-enter label { margin-top: 0; }
.join-code-input {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
	font-size: 1.35rem !important; font-weight: 800 !important;
	letter-spacing: 0.16em; text-align: center; text-transform: uppercase;
	padding: 1rem 0.9rem !important;
}
.join-org-card {
	display: flex; gap: 0.8rem; align-items: center;
	padding: 0.85rem 0.95rem; border: 1px solid rgb(255 255 255 / 0.12); border-radius: 0.95rem;
	background: rgb(255 255 255 / 0.08); margin: 0.15rem 0 0.9rem;
}
.join-org-card strong { display: block; color: #fff; font-size: 1.02rem; }
.join-org-card .help { margin: 0.15rem 0 0; color: rgb(214 225 244 / 0.72); }
.join-otp-label { color: #fff !important; }
.join-otp-hint { color: rgb(214 225 244 / 0.68) !important; }
.join-otp-well {
	background: rgb(255 255 255 / 0.08) !important;
	border-color: rgb(120 160 230 / 0.55) !important;
	box-shadow: 0 10px 28px rgb(0 0 0 / 0.2) !important;
}
.join-otp-boxes span {
	background: rgb(255 255 255 / 0.08) !important;
	border-color: rgb(255 255 255 / 0.12) !important;
	color: #fff !important;
}
.join-otp-boxes span.is-filled {
	background: rgb(255 255 255 / 0.14) !important;
	border-color: rgb(150 185 240 / 0.45) !important;
}
.join-otp-dash { color: rgb(214 225 244 / 0.55) !important; }
.join-account-actions { margin-top: 1.15rem; }
.join-enter-alt {
	margin-top: 1.15rem;
	padding-top: 1rem;
	border-top: 1px solid rgb(255 255 255 / 0.12);
}
.join-foot {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.65rem;
	margin: 1.1rem 0 0;
	color: rgb(214 225 244 / 0.55);
	font-size: 0.88rem;
	font-weight: 650;
}
.join-foot a {
	color: rgb(190 210 245 / 0.92);
	text-decoration: none;
	font-weight: 750;
}
.join-foot a:hover { text-decoration: underline; color: #fff; }
.join-panel-meta {
	display: grid;
	gap: 0.55rem;
	margin: 1rem 0 0;
}
.join-panel-meta div {
	padding: 0.7rem 0.8rem;
	border-radius: 0.8rem;
	border: 1px solid rgb(255 255 255 / 0.1);
	background: rgb(255 255 255 / 0.05);
}
.join-panel-meta dt {
	margin: 0;
	color: rgb(170 196 240 / 0.85);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.join-panel-meta dd {
	margin: 0.2rem 0 0;
	color: #fff;
	font-size: 0.98rem;
	font-weight: 750;
}
.join-panel .btn-ghost {
	color: rgb(220 230 248 / 0.9);
}
.join-panel .btn-secondary {
	background: rgb(255 255 255 / 0.1);
	border-color: rgb(255 255 255 / 0.18);
	color: #fff;
}
.join-panel .btn-secondary:hover {
	background: rgb(255 255 255 / 0.16);
}
body.is-auth .auth-main:has(.join-screen) {
	width: min(56rem, 100%);
}
@media (min-width: 880px) {
	.auth-shell:has(.join-guest),
	.auth-shell:has(.join-screen) { width: min(980px, calc(100% - 2rem)); }
	.join-screen.join-guest {
		grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.85fr);
		gap: 1.1rem;
	}
}

.join-drawer-panel { width: min(26.5rem, 100vw); background: var(--surface); }
.join-drawer-scroll {
	padding: 1rem 1.05rem max(1.4rem, env(safe-area-inset-bottom));
	display: block;
}
.join-drawer .chk-drawer-titles .help { max-width: 22rem; line-height: 1.45; }
.join-drawer .join-side { gap: 0.9rem; }
.join-ready, .join-mint-card, .join-open-list,
.join-drawer .join-entry-card {
	border: 1px solid var(--line); border-radius: 1.1rem;
	padding: 1rem 1rem 1.1rem; background: linear-gradient(180deg, #fff, #f7f9fd);
}
.join-ready { background: #f4f7fd; }
.join-ready-code {
	margin: 0.15rem 0 0.55rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 800;
	letter-spacing: 0.16em; color: var(--navy-deep);
}
.join-mint-card h3, .join-drawer .join-entry-card h2 { margin: 0 0 0.35rem; font-size: 1.12rem; }
.join-mint-card .help, .join-drawer .join-entry-card .help { margin: 0 0 0.85rem; }
.join-mint-card .form-grid-2 { margin-top: 0.15rem; }
.join-mint-card .form-grid-2 label { margin-top: 0; }
.join-mint-card .form-grid-2 + label { margin-top: 0.9rem; }
.join-mint-card .actions, .join-entry-card .actions { margin-top: 1rem; }
.join-open-list ul { list-style: none; margin: 0.55rem 0 0; padding: 0; display: grid; gap: 0.45rem; }
.join-open-list li {
	display: flex; gap: 0.55rem; align-items: center; justify-content: space-between;
	background: #fff; border: 1px solid var(--line); border-radius: 0.9rem;
	padding: 0.55rem 0.65rem 0.55rem 0.8rem;
}
.join-open-list li.is-active { box-shadow: inset 3px 0 0 var(--navy); background: #f4f7fd; }
.join-open-list a { min-width: 0; text-decoration: none; color: inherit; }
.join-open-list strong {
	display: block; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: 0.08em; color: var(--navy-deep);
}
.join-open-list em { color: var(--muted); font-style: normal; font-size: 0.8rem; }

.join-otp { display: grid; gap: 0.45rem; margin: 0.35rem 0 0.2rem; }
.join-otp-label { margin: 0; font-weight: 800; color: var(--navy-deep); }
.join-otp-well {
	position: relative; display: grid; place-items: stretch;
	background: #fff; border: 2px solid var(--navy);
	border-radius: 1.15rem; padding: 0.7rem 0.65rem;
	box-shadow: 0 10px 28px rgb(18 37 77 / 0.1);
}
.join-otp-well:focus-within {
	border-color: var(--blue, #2f6fed);
	box-shadow: 0 0 0 4px rgb(47 111 237 / 0.16);
}
.join-otp-input {
	position: absolute; inset: 0; width: 100%; height: 100%;
	opacity: 0; border: 0 !important; padding: 0 !important; margin: 0;
	font-size: 1.4rem; letter-spacing: 0.2em; text-transform: uppercase;
	caret-color: transparent;
}
.join-otp-boxes {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto repeat(4, minmax(0, 1fr));
	gap: 0.35rem; pointer-events: none;
}
.join-otp-boxes span {
	display: grid; place-items: center; min-height: 3.15rem;
	border-radius: 0.7rem; background: #f3f6fb; border: 1px solid var(--line);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 1.35rem; font-weight: 800; color: var(--navy-deep);
	letter-spacing: 0;
}
.join-otp-boxes span.is-filled { background: #fff; border-color: rgb(29 59 120 / 0.28); }
.join-otp-boxes span.is-caret {
	border-color: var(--navy); box-shadow: inset 0 -3px 0 var(--navy);
}
.join-otp-dash {
	display: grid; place-items: center; font-style: normal; font-weight: 800;
	color: var(--muted); padding: 0 0.05rem;
}
.join-otp-hint { margin: 0; color: var(--muted); font-size: 0.84rem; line-height: 1.4; }
.join-side {
	display: grid;
	gap: 0.9rem;
	align-content: start;
}
.join-side-head h2 {
	margin: 0.1rem 0 0.35rem;
	font-size: 1.28rem;
	letter-spacing: -0.03em;
}
.join-side-head p:last-child {
	margin: 0;
	color: var(--muted);
	font-size: 0.88rem;
	line-height: 1.45;
}
.join-side .alert { margin: 0; }
.join-issue.form-block { margin: 0; }
.join-fields { display: grid; gap: 0.75rem; }
.join-fields-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.join-fields label {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	min-width: 0;
	font-weight: 700;
	font-size: 0.88rem;
}
.join-issue .join-fields + label { margin-top: 0.85rem; }
.join-issue input[type="text"],
.join-issue select {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--line);
	border-radius: 0.85rem;
	padding: 0.8rem 0.9rem;
	font: inherit;
	font-size: 0.98rem;
	font-weight: 500;
	line-height: 1.3;
	background: #fff;
	color: var(--ink);
	min-height: 2.9rem;
}
.join-issue select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.35rem;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--muted) 50%),
		linear-gradient(135deg, var(--muted) 50%, transparent 50%);
	background-position: calc(100% - 1.05rem) calc(50% - 0.14rem), calc(100% - 0.72rem) calc(50% - 0.14rem);
	background-size: 0.34rem 0.34rem, 0.34rem 0.34rem;
	background-repeat: no-repeat;
}
.join-issue input[type="text"]:focus,
.join-issue select:focus {
	outline: 2px solid var(--blue);
	outline-offset: 3px;
}
.join-issue .actions { margin-top: 0.95rem; }
.join-issue .actions .btn { width: 100%; }
.join-how {
	list-style: none;
	margin: 0.15rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.4rem;
	width: 100%;
	text-align: left;
}
.join-how li {
	position: relative;
	padding: 0.48rem 0.7rem 0.48rem 2.15rem;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 0.75rem;
	color: var(--navy-deep);
	font-size: 0.84rem;
	font-weight: 650;
	line-height: 1.35;
}
.join-how li::before {
	counter-increment: join-how;
	content: counter(join-how);
	position: absolute;
	left: 0.55rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 99px;
	display: grid;
	place-items: center;
	background: var(--navy);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 800;
}
.join-share.is-empty { counter-reset: join-how; }
.join-share {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 1.15rem;
	padding: 1rem 0.95rem 1.05rem;
	display: grid;
	justify-items: center;
	gap: 0.7rem;
	text-align: center;
	box-shadow: 0 10px 28px rgb(18 37 77 / 0.06);
}
.join-share-qr {
	display: grid;
	place-items: center;
	width: fit-content;
	max-width: 100%;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 1rem;
	padding: 0.75rem;
}
.join-share-qr svg { width: min(210px, 100%); height: auto; display: block; }
.join-share-kicker {
	margin: 0.15rem 0 0;
	color: var(--coral);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.join-share-code {
	margin: 0;
	width: 100%;
	background: var(--navy-deep);
	color: #fff;
	border-radius: 0.85rem;
	padding: 0.72rem 0.55rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: clamp(1.15rem, 2.4vw, 1.4rem);
	font-weight: 800;
	letter-spacing: 0.16em;
	line-height: 1;
	white-space: nowrap;
	user-select: all;
}
.join-share-caption {
	margin: 0;
	max-width: 22rem;
	color: var(--muted);
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.4;
}
.join-share-facts {
	width: 100%;
	margin: 0.15rem 0 0;
	display: grid;
	text-align: left;
	border-top: 1px solid var(--line);
}
.join-share-facts div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem;
	padding: 0.55rem 0.1rem;
	border-bottom: 1px solid var(--line);
}
.join-share-facts div:last-child { border-bottom: 0; }
.join-share-facts dt {
	margin: 0;
	flex: 0 0 auto;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}
.join-share-facts dd {
	margin: 0;
	font-weight: 800;
	color: var(--navy-deep);
	font-size: 0.88rem;
	text-align: right;
	overflow-wrap: anywhere;
}
.join-share-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.45rem;
	width: 100%;
}
.join-share-actions .btn { width: 100%; padding: 0.7rem 0.65rem; font-size: 0.86rem; }
.join-share.is-empty {
	padding: 1rem 0.95rem 1.05rem;
	background: linear-gradient(180deg, #fff, #f8fafd);
	box-shadow: none;
	justify-items: stretch;
	text-align: left;
}
.join-share.is-empty .join-share-kicker { text-align: left; }
.join-share.is-empty h3 {
	margin: 0;
	font-size: 1.05rem;
	text-align: left;
}
.join-side .join-open-list { padding: 0.95rem 0.9rem 1rem; }
.join-side .join-open-list h3 {
	margin: 0.05rem 0 0;
	font-size: 1.02rem;
	letter-spacing: -0.03em;
}
.join-side .join-open-list li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	column-gap: 0.55rem;
	row-gap: 0.15rem;
}
.join-side .join-open-list a {
	display: grid;
	gap: 0.12rem;
	grid-column: 1 / -1;
	grid-row: 1;
	min-width: 0;
}
.join-side .join-open-list strong { padding-right: 7.2rem; }
.join-side .join-open-list em {
	display: block;
	white-space: normal;
	overflow-wrap: break-word;
	max-width: none;
	line-height: 1.35;
}
.join-side .join-open-list form {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	align-self: start;
	position: relative;
	z-index: 1;
	margin: 0;
}
.join-side .join-open-list .btn { white-space: nowrap; }
@media (max-width: 420px) {
	.join-fields-2 { grid-template-columns: 1fr; }
}
@media (min-width: 1080px) {
	.main.has-aside:has(> .app-aside .join-side) {
		grid-template-columns: minmax(0, 1fr) 392px;
	}
}
.pwa-banner {
	position: fixed; z-index: 90; left: 0.85rem; right: 0.85rem;
	bottom: max(0.85rem, env(safe-area-inset-bottom));
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 0.8rem; padding: 0.9rem 1rem;
	background: #0e1c3d; color: #fff; border-radius: 1rem;
	box-shadow: 0 18px 40px rgb(14 28 61 / 0.28);
}
.pwa-banner-copy { display: grid; gap: 0.15rem; min-width: 0; flex: 1 1 14rem; }
.pwa-banner-copy strong { font-size: 0.95rem; }
.pwa-banner-copy span { color: rgb(255 255 255 / 0.72); font-size: 0.82rem; font-weight: 600; line-height: 1.4; }
.pwa-banner-actions { display: flex; gap: 0.4rem; flex: 0 0 auto; }
.pwa-banner .btn-ghost { color: #fff; }
.pwa-banner .btn-primary { background: #fff; color: #0e1c3d; }
.app-dock, .app-kicker { display: none; }
.app-menu { display: grid; gap: 0.3rem; margin: 0 0 0.7rem; }
.app-menu-label {
	margin: 0 0.1rem; font-size: var(--text-xs); font-weight: 800;
	letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
}
.app-menu-group {
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
}
.app-menu-group a, .app-menu-card {
	display: flex; justify-content: space-between; align-items: center; gap: 0.55rem;
	padding: 0.55rem 0.7rem; text-decoration: none; color: var(--navy-deep);
	border-bottom: 1px solid #eef1f6; font-weight: 750; font-size: var(--text-sm);
	min-height: 2.55rem;
}
.app-menu-group a:last-child { border-bottom: 0; }
.app-menu-group a:active { background: #eef3fb; }
.app-menu-group a em, .app-menu-copy em {
	font-style: normal; color: var(--muted); font-size: var(--text-sm); font-weight: 650;
}
.app-menu-group a { flex-wrap: nowrap; justify-content: flex-start; }
.app-menu-group a.is-current { background: #f4f7fd; }
.app-menu-group a.is-danger { color: var(--danger); }
.app-menu-ico { color: var(--navy); font-size: 1.15rem; }
.app-menu-group a.is-danger .app-menu-ico { color: var(--danger); }
.app-menu-copy { flex: 1 1 auto; }
.app-menu-card {
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	justify-content: flex-start; margin: 0 0 0.45rem;
}
.app-menu-copy { display: grid; gap: 0.08rem; min-width: 0; }
.app-menu-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--text-md); }
.app-menu-pins {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.4rem;
	margin: 0 0 0.65rem;
}
@media (min-width: 420px) {
	.app-menu-pins { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.app-menu-pin {
	display: grid; gap: 0.12rem; padding: 0.55rem 0.6rem;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	text-decoration: none; color: var(--navy-deep); font-weight: 750;
	min-height: 2.75rem; align-content: center;
}
.app-menu-pin:active { background: #eef3fb; }
.app-menu-pin .ms { color: var(--navy); font-size: 1.05rem; }
.app-menu-pin span { font-size: var(--text-xs); }

@media (max-width: 959px) {
	html { height: 100%; }
	html, body.app-body, body.auth-body {
		touch-action: pan-x pan-y;
		-webkit-text-size-adjust: 100%;
		text-size-adjust: 100%;
	}
	body.app-body {
		min-height: 100dvh;
		background: #e8edf5;
		-webkit-tap-highlight-color: transparent;
	}
	body.app-body .btn:active {
		transform: scale(0.97);
		opacity: 0.92;
	}
	body.app-body .app-menu-pin:active,
	body.app-body .dash-metric:active,
	body.app-body .dash-goto a:active {
		transform: scale(0.97);
	}
	.list-search input, .list-filter select {
		font-size: 1rem; /* avoid iOS input zoom */
		min-height: var(--control-h-touch);
		height: var(--control-h-touch);
	}
	.list-tools { padding: 0.4rem; border-radius: var(--radius); }
	.list-tools .list-search input,
	.list-tools .list-filter select {
		min-height: var(--control-h-touch);
		height: var(--control-h-touch);
		font-size: 1rem;
		border-radius: var(--radius-sm);
	}
	.list-tools-row { flex-direction: column; }
	.list-search, .list-filters { flex: 1 1 auto; width: 100%; }
	.list-filters { flex-wrap: wrap; overflow: visible; }
	.list-filter { flex: 1 1 8.2rem; min-width: 0; }
	.list-tools { margin: 0 0 0.15rem; }
	.app-shell {
		display: flex; flex-direction: column; min-height: 100dvh;
		grid-template-columns: none;
	}
	.app-user { display: none !important; }
	/*
	 * Native shell: full-height column; main scrolls; dock overlays as a
	 * viewport-fixed tray with bottom: 0 (stable across iOS full-page navigations).
	 */
	html:has(body.app-body.has-dock) {
		background: #e8edf5;
		height: 100%;
		overflow: hidden;
	}
	body.app-body.has-dock {
		display: flex;
		flex-direction: column;
		height: 100%;
		max-height: 100%;
		overflow: hidden;
		overscroll-behavior: none;
		background: #e8edf5;
		padding-bottom: 0;
	}
	body.app-body.has-dock .app-shell {
		flex: 1 1 auto;
		height: auto;
		max-height: none;
		min-height: 0 !important;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		transform: none;
		filter: none;
		perspective: none;
	}
	body.app-body.has-dock .mgr-stage {
		flex: 1 1 auto;
		min-height: 0;
		max-height: none;
		height: auto;
		overflow: hidden;
		display: flex;
		flex-direction: column;
	}
	body.app-body.has-dock .main {
		flex: 1 1 auto;
		min-height: 0;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		padding-bottom: var(--content-pad-bottom);
	}
	/*
	 * Dock tray: pinned to the viewport bottom edge (bottom: 0 — never calc).
	 * Safe-area + float live only in padding so the pill sits just above the
	 * home indicator without competing JS/CSS bottom offsets.
	 */
	.app-dock,
	body.app-body.has-dock > .app-dock,
	html.is-pwa body.app-body.has-dock > .app-dock {
		display: flex !important;
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		bottom: 0 !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		margin: 0 !important;
		padding: var(--dock-float) var(--dock-side) var(--dock-gap-bottom) !important;
		z-index: 60;
		box-sizing: border-box;
		align-items: stretch;
		justify-content: center;
		background: transparent;
		border: 0;
		border-radius: 0;
		overflow: visible;
		pointer-events: none;
		transform: none !important;
		filter: none !important;
		isolation: isolate;
	}
	.app-dock-pill {
		position: relative;
		z-index: 1;
		display: flex;
		align-items: stretch;
		width: 100%;
		max-width: 36rem;
		height: var(--dock-h);
		margin: 0;
		padding: var(--dock-pad-y) var(--dock-pad-x);
		border-radius: var(--dock-radius);
		box-sizing: border-box;
		pointer-events: none;
	}
	.app-dock-glass {
		position: absolute;
		inset: 0;
		border-radius: inherit;
		background: var(--glass-bg);
		border: 1px solid var(--glass-border);
		box-shadow: var(--glass-shadow);
		-webkit-backdrop-filter: var(--glass-blur);
		backdrop-filter: var(--glass-blur);
		pointer-events: none;
	}
	@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
		.app-dock-glass { background: rgb(255 255 255 / 0.96); }
	}
	.app-dock-list {
		position: relative;
		z-index: 1;
		display: flex;
		align-items: stretch;
		justify-content: space-between;
		gap: 0;
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 0;
		list-style: none;
		pointer-events: none;
	}
	.app-dock-slot {
		flex: 1 1 0;
		min-width: 0;
		display: flex;
	}
	.app-dock-item {
		flex: 1 1 auto;
		min-width: 0;
		min-height: 2.75rem;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 0.12rem;
		padding: 0.2rem 0.15rem;
		border-radius: var(--dock-item-radius);
		text-decoration: none;
		color: #64748b;
		pointer-events: auto;
		touch-action: manipulation;
		-webkit-tap-highlight-color: transparent;
		transition: color 0.14s ease, background-color 0.14s ease, transform 0.14s ease;
	}
	.app-dock-item:focus-visible {
		outline: 2px solid var(--blue);
		outline-offset: 1px;
	}
	.app-dock-item:active {
		transform: scale(0.96);
		color: var(--navy);
	}
	.app-dock-hit {
		display: grid;
		place-items: center;
		width: 2rem;
		height: 1.35rem;
		border-radius: 999px;
		transition: background-color 0.14s ease;
	}
	.app-dock-ico {
		display: block;
		font-family: var(--icon);
		font-size: var(--dock-ico);
		font-weight: 500;
		line-height: 1;
		width: var(--dock-ico);
		height: var(--dock-ico);
		font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;
	}
	.app-dock-ico.is-fill {
		font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
	}
	.app-dock-label {
		display: block;
		max-width: 100%;
		font-size: var(--dock-label);
		font-weight: 650;
		letter-spacing: 0.01em;
		line-height: 1.1;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.app-dock-item.is-active {
		color: var(--navy-deep);
	}
	.app-dock-item.is-active .app-dock-label {
		font-weight: 800;
	}
	.app-dock-item.is-active .app-dock-hit {
		background: rgb(29 59 120 / 0.1);
	}
	@media (prefers-reduced-motion: reduce) {
		.app-dock-item,
		.app-dock-hit { transition: none; }
		.app-dock-item:active { transform: none; }
	}
	.main {
		flex: 1 1 auto; width: 100%; padding: 0 0 var(--content-pad-bottom);
		min-height: 0;
	}
	.app-head {
		position: sticky; top: 0; z-index: 25; margin: 0;
		padding: max(0.55rem, env(safe-area-inset-top)) 0.95rem 0.7rem;
		background: rgb(232 237 245 / 0.96); backdrop-filter: blur(16px);
		border-bottom: 1px solid #dce3ee; flex-wrap: wrap; align-items: center;
		gap: 0.45rem 0.55rem;
	}
	.app-kicker { display: none !important; }
	.app-head-copy { flex: 1 1 0; min-width: 0; }
	.app-head-copy h1 {
		font-size: 1.05rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	}
	.app-head-copy .lede { display: none; }
	.app-head-end { flex: 0 0 auto; max-width: none; min-width: 0; }
	.app-head-end:not(:has(.app-head-actions)) { display: none; }
	.app-head-end:has(.app-head-actions) {
		flex: 1 1 100%; justify-content: flex-start;
	}
	.app-head-actions {
		flex-wrap: wrap; overflow: visible; justify-content: flex-start;
		width: 100%; gap: 0.4rem;
	}
	.page-head {
		flex-wrap: wrap; align-items: center;
		gap: 0.45rem 0.55rem;
	}
	.page-head h1 {
		font-size: 1.05rem; line-height: 1.2;
	}
	.page-actions {
		flex-wrap: wrap; justify-content: flex-start;
		width: 100%; gap: 0.4rem;
	}
	.page-actions .btn { padding: 0.4rem 0.7rem; font-size: 0.8rem; white-space: nowrap; }
	.app-head-actions .btn { padding: 0.4rem 0.7rem; font-size: 0.8rem; white-space: nowrap; }
	.app-back { width: 2.2rem; height: 2.2rem; margin: 0; }
	.main-flow { padding: 0.95rem 1rem 1.35rem; min-width: 0; overflow-x: hidden; }
	.main.has-aside { display: block; padding: 0; }
	.main.has-aside > .app-head { padding-left: 1rem; padding-right: 1rem; }
	.main.has-aside > .main-flow { padding: 0.95rem 1rem 1.35rem; }
	html.is-pwa .main-flow,
	html.is-pwa .main.has-aside > .main-flow {
		padding: 1rem 1.05rem 1.45rem;
	}
	.main.has-aside > .app-aside {
		margin: 0 0.95rem 1rem; height: auto; position: static;
		border-radius: 1rem; border: 1px solid var(--line);
	}
	.app-body .found-hero { display: none; }
	.app-body .found-main { padding: 0; gap: 0.85rem; }
	.app-body .found-links { display: flex; flex-wrap: wrap; gap: 0.45rem; }
	.app-body .chk-done {
		margin: 1.2rem auto; padding: 1.6rem 1.2rem 1.4rem;
		background: #0e1c3d; border-radius: 1.15rem; width: min(22rem, 100%);
	}
	.app-scan { justify-items: stretch; width: 100%; }
	.app-scan > .form-block-head,
	.scan-guide { display: none; }
	.app-scan.form-block {
		padding: 1.5rem; background: var(--paper);
	}
	.app-scan-stage {
		display: contents;
	}
	.app-scan .inv-reader, .app-scan .inv-manual, .chk-scan .inv-reader, .chk-scan .inv-manual {
		width: 100%;
	}
	.app-scan .inv-reader, .chk-scan .inv-reader {
		min-height: min(52dvh, 28rem);
		border-radius: 1.15rem;
	}
	.card, .empty-card, .form-block, .form-stack {
		border-radius: var(--radius); box-shadow: none;
	}
	.stat-row { grid-template-columns: 1fr 1fr; gap: 0.55rem; }
	.stat-row .stat strong.site-host { font-size: 0.82rem !important; }
	.overview { grid-template-columns: 1fr; }
	.hall-grid { grid-template-columns: 1fr; }
	.ap-fleet {
		grid-template-columns: 1fr; gap: 0;
		background: #fff; border: 1px solid var(--line); border-radius: 1rem; overflow: hidden;
	}
	.ap-fleet-card {
		grid-template-columns: 5.25rem minmax(0, 1fr);
		min-height: 5.25rem;
		align-items: stretch;
		border: 0; border-bottom: 1px solid #eef1f6; border-radius: 0;
	}
	.ap-fleet-card:last-child { border-bottom: 0; }
	.ap-fleet-photo {
		width: 5.25rem;
		min-width: 5.25rem;
		max-width: 5.25rem;
		height: 5.25rem;
		min-height: 5.25rem;
		max-height: 5.25rem;
		overflow: hidden;
		align-self: center;
	}
	.ap-fleet-photo img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
	.ap-fleet-copy {
		padding: 0.65rem 0.75rem;
		min-width: 0;
		overflow: hidden;
	}
	body.is-apparatus-page .ap-fleet {
		grid-template-columns: 1fr;
		gap: 0.75rem;
		background: transparent;
		border: 0;
		border-radius: 0;
		overflow: visible;
	}
	body.is-apparatus-page .ap-fleet-card {
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
		border: 1px solid var(--line);
		border-radius: var(--radius);
		background: #fff;
		overflow: hidden;
	}
	body.is-apparatus-page .ap-fleet-card:last-child { border-bottom: 1px solid var(--line); }
	body.is-apparatus-page .ap-fleet-photo {
		width: 100%;
		min-width: 0;
		max-width: none;
		height: auto;
		min-height: 9rem;
		max-height: none;
		aspect-ratio: 16 / 10;
		align-self: stretch;
	}
	body.is-apparatus-page .ap-fleet-photo img {
		object-fit: contain;
		object-position: center;
	}
	body.is-apparatus-page .ap-fleet-copy {
		padding: 0.7rem 0.8rem 0.85rem;
		overflow: visible;
	}
	.cal-board {
		margin: 0; border-radius: 0.75rem; border: 1px solid var(--line); box-shadow: none;
	}
	.main-flow:has(.cal-board) { padding-top: 0; }
	.cal-agenda { margin: 0.65rem 0 0; }
	.cal-cell { min-height: 5.2rem; }
	.cal-event em { display: none; }
	.member-list { border-radius: 1rem; }
	.inv-tabs { margin: 0 0 0.85rem; overflow-x: auto; flex-wrap: nowrap; }
	.inv-tabs a { padding: 0.55rem 0.8rem 0.65rem; font-size: 0.84rem; }
	.chk-start { padding: 1rem; }
	.pwa-banner { bottom: calc(var(--dock-clearance) + 0.85rem); }
	.ap-bar {
		left: 0; right: 0;
		bottom: calc(var(--dock-clearance) + 0.45rem);
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: stretch; gap: 0.45rem;
		min-height: 0;
		padding: 0.55rem 0.75rem 0.6rem;
		background: var(--glass-bg);
		-webkit-backdrop-filter: var(--glass-blur);
		backdrop-filter: var(--glass-blur);
		border-top: 1px solid var(--glass-border);
		box-shadow: 0 -8px 22px rgb(18 37 77 / 0.08);
	}
	.ap-bar-back { grid-column: 1; grid-row: 1; margin: 0; width: 100%; }
	.ap-bar-danger { grid-column: 2; grid-row: 1; width: 100%; }
	.ap-bar-save { grid-column: 1 / -1; grid-row: 2; }
	.ap-bar:not(:has(.ap-bar-danger)) .ap-bar-save { grid-column: 2; grid-row: 1; }
	.ap-bar form { width: 100%; min-width: 0; }
	.ap-bar .btn,
	.ap-bar a.btn {
		width: 100%; min-width: 0; min-height: var(--control-h-touch); height: var(--control-h-touch);
		padding: 0 0.65rem; font-size: var(--text-sm);
		display: inline-flex; align-items: center; justify-content: center;
	}
	.ap-bar .btn-primary { min-width: 0; }
	.ap-bar-long { display: none; }
	.ap-bar-short { display: inline; }
	body:has(.ap-bar) .main { padding-bottom: var(--content-pad-bottom); }
	body:has(.ap-bar) .main-flow,
	body:has(.ap-bar) .main.has-aside > .main-flow {
		padding-bottom: calc(var(--content-pad-bottom) + 3.6rem);
	}
}
html.is-pwa, html.is-pwa body,
body.app-body, body.found-body, body.auth-body {
	touch-action: pan-x pan-y;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	overscroll-behavior: none;
}
html.is-pwa .app-user { display: none !important; }
html.is-pwa .app-kicker { display: none !important; }
html.is-pwa .pwa-banner { display: none !important; }
/* Immersive auth shell — browser, mobile, and PWA */
body.is-auth .auth-shell {
	width: 100%;
	max-width: none;
	min-height: 100dvh;
	margin: 0;
	padding:
		max(2.5rem, calc(1.2rem + env(safe-area-inset-top)))
		1.5rem
		max(2rem, calc(1.25rem + env(safe-area-inset-bottom)));
	gap: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: safe center;
}
body.is-auth .auth-shell:has(.auth-signup) {
	justify-content: flex-start;
}
body.is-auth .brand {
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.85rem;
	margin: 0 0 1.75rem;
	font-size: 1.7rem;
	letter-spacing: -0.045em;
	color: #fff;
}
body.is-auth .brand img {
	width: 5rem;
	height: 5rem;
	padding: 0.45rem;
	border-radius: 1.1rem;
	background: var(--mgr-logo-bg, #143062);
	border: 1px solid rgb(255 255 255 / 0.14);
	box-shadow: 0 14px 28px rgb(0 0 0 / 0.4), inset 0 1px 0 rgb(255 255 255 / 0.12);
	object-fit: contain;
}
body.is-auth.is-auth-join .auth-foot a {
	color: rgb(190 210 245 / 0.72);
}
body.is-auth.is-auth-join .auth-foot a:hover {
	color: #fff;
}
body.is-auth .auth-main {
	width: min(22rem, 100%);
	padding: 0;
}
body.is-auth .auth-main:has(.auth-signup) {
	width: min(24rem, 100%);
}
body.is-auth .auth-card,
body.is-auth .card {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	border-radius: 0;
}
body.is-auth .auth-login .eyebrow,
body.is-auth .auth-login h1 {
	display: none;
}
body.is-auth .auth-panel .eyebrow {
	color: rgb(255 255 255 / 0.5);
	margin-bottom: 0.35rem;
	text-align: center;
}
body.is-auth .auth-panel h1 {
	color: #fff;
	font-size: 1.55rem;
	text-align: center;
	margin: 0 0 0.45rem;
}
body.is-auth .auth-lede {
	color: rgb(255 255 255 / 0.62);
	text-align: center;
	font-size: 0.95rem;
	line-height: 1.4;
	margin: 0 0 1.25rem;
}
body.is-auth .auth-form {
	gap: 0.7rem;
}
body.is-auth .auth-form label:not(.check-row) {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
body.is-auth .auth-form input[type="email"],
body.is-auth .auth-form input[type="password"],
body.is-auth .auth-form input[type="text"] {
	min-height: 3.15rem;
	height: 3.15rem;
	border: 0;
	border-radius: 999px;
	padding: 0 1.25rem;
	background: rgb(255 255 255 / 0.09);
	color: #fff;
	font-size: 1.02rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.06);
	width: 100%;
	box-sizing: border-box;
}
body.is-auth .auth-form input::placeholder {
	color: rgb(255 255 255 / 0.42);
	font-weight: 550;
}
body.is-auth .auth-form input:focus {
	outline: none;
	background: rgb(255 255 255 / 0.13);
	box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / 0.45);
}
body.is-auth .pw-box button {
	right: 1.05rem;
	color: rgb(255 255 255 / 0.7);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
body.is-auth .auth-remember,
body.is-auth .terms-row {
	margin: 0.45rem 0.45rem 0 !important;
	color: rgb(255 255 255 / 0.68);
	font-weight: 600;
	font-size: 0.9rem;
}
body.is-auth .auth-remember input,
body.is-auth .terms-row input {
	accent-color: #fff;
}
body.is-auth .terms-row a {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
body.is-auth .auth-submit {
	width: 100%;
	margin-top: 1.15rem;
	min-height: 3.2rem;
	height: 3.2rem;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: #070f22;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	box-shadow: 0 10px 28px rgb(0 0 0 / 0.28);
}
body.is-auth .auth-submit:hover {
	background: #f5f7fb;
	transform: translateY(-1px);
}
body.is-auth .auth-submit:active {
	transform: translateY(0);
}
body.is-auth .auth-passkey {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-top: 0.7rem;
	min-height: 3.2rem;
	height: 3.2rem;
	padding: 0 1.25rem;
	border: 0;
	border-radius: 999px;
	background: rgb(255 255 255 / 0.09);
	color: #fff;
	font: inherit;
	font-size: 1.02rem;
	font-weight: 750;
	letter-spacing: -0.01em;
	line-height: 1.2;
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.1);
	cursor: pointer;
}
body.is-auth .auth-passkey:hover {
	background: rgb(255 255 255 / 0.14);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.18);
}
body.is-auth .auth-passkey:active {
	transform: translateY(1px);
}
body.is-auth .auth-divider {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 0.75rem;
	margin: 0.95rem 0 0.15rem;
	color: rgb(255 255 255 / 0.38);
	font-size: 0.78rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
body.is-auth .auth-divider::before,
body.is-auth .auth-divider::after {
	content: "";
	height: 1px;
	background: rgb(255 255 255 / 0.14);
}
/* Forgot / create account match login chrome */
body.is-auth .auth-panel .eyebrow,
body.is-auth .auth-panel .auth-lede {
	display: none;
}
body.is-auth .auth-panel h1 {
	display: none;
}
body.is-auth .auth-signup h1,
body.is-auth .auth-titled h1 {
	display: block;
	color: #fff;
	font-size: 1.45rem;
	text-align: center;
	margin: 0 0 1.15rem;
}
body.is-auth .auth-titled .auth-lede {
	display: block;
}
body.is-auth .checks {
	margin: 0.15rem 0.35rem 0.2rem;
	padding: 0;
	list-style: none;
}
body.is-auth .checks li {
	font-size: 0.78rem;
	margin: 0.12rem 0;
}
body.is-auth .auth-links {
	display: grid;
	justify-items: center;
	gap: 1rem;
	margin: 1.55rem 0 0;
	padding: 0;
	border: 0;
}
body.is-auth .auth-links a {
	color: rgb(255 255 255 / 0.82);
	font-size: 0.95rem;
	font-weight: 650;
	letter-spacing: -0.01em;
}
body.is-auth .auth-links a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
body.is-auth .auth-foot {
	margin: 1.65rem 0 0;
	padding: 0;
	gap: 1.35rem;
	border: 0;
	background: transparent;
}
body.is-auth .auth-foot a {
	color: rgb(255 255 255 / 0.4);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}
body.is-auth .auth-foot a:hover {
	color: rgb(255 255 255 / 0.65);
	text-decoration: none;
}
body.is-auth .alert {
	border-radius: 1rem;
	margin-bottom: 0.9rem;
}
body.is-auth .checks li {
	color: rgb(255 255 255 / 0.45);
}
body.is-auth .checks li.ok {
	color: #8dffb0;
}
body.is-auth .match {
	color: rgb(255 255 255 / 0.7);
}
body.is-auth .help,
body.is-auth .signin-foot {
	color: rgb(255 255 255 / 0.55);
}
body.is-auth .signin-foot a {
	color: #fff;
}

/* Post-login passkey offer sheet */
.pk-offer {
	position: fixed;
	inset: 0;
	z-index: 80;
	display: grid;
	align-items: end;
	justify-items: center;
}
.pk-offer[hidden] { display: none !important; }
.pk-offer-backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgb(7 15 34 / 0.48);
	cursor: pointer;
}
.pk-offer-sheet {
	position: relative;
	z-index: 1;
	width: min(26rem, 100%);
	padding: 0.65rem 1.25rem calc(1.35rem + env(safe-area-inset-bottom));
	border-radius: 1.35rem 1.35rem 0 0;
	background: #0b1428;
	color: #f4f7fd;
	box-shadow: 0 -18px 48px rgb(0 0 0 / 0.35);
	display: grid;
	gap: 0.55rem;
	justify-items: stretch;
	animation: pk-offer-up 0.28s ease;
}
@keyframes pk-offer-up {
	from { transform: translateY(110%); }
	to { transform: translateY(0); }
}
.pk-offer-handle {
	width: 2.4rem;
	height: 0.28rem;
	border-radius: 999px;
	background: rgb(255 255 255 / 0.28);
	justify-self: center;
	margin: 0.15rem 0 0.35rem;
}
.pk-offer-kicker {
	margin: 0;
	color: rgb(255 255 255 / 0.5);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
}
.pk-offer-sheet h2 {
	margin: 0;
	color: #fff;
	font-size: 1.35rem;
	text-align: center;
	letter-spacing: -0.03em;
}
.pk-offer-copy {
	margin: 0 0 0.35rem;
	color: rgb(255 255 255 / 0.68);
	font-size: 0.92rem;
	line-height: 1.4;
	text-align: center;
}
.pk-offer-primary,
.pk-offer-secondary {
	width: 100%;
	min-height: 2.85rem;
	height: 2.85rem;
	border-radius: 999px;
	font-weight: 800;
}
.pk-offer-primary {
	background: #fff;
	color: #070f22;
	border: 0;
}
.pk-offer-secondary {
	background: rgb(255 255 255 / 0.08);
	color: #fff;
	border: 0;
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12);
}
.pk-offer-skip {
	border: 0;
	background: transparent;
	color: rgb(255 255 255 / 0.45);
	font: inherit;
	font-size: 0.82rem;
	font-weight: 650;
	cursor: pointer;
	padding: 0.45rem;
	justify-self: center;
}
.pk-offer-skip:hover { color: rgb(255 255 255 / 0.7); }
@media (min-width: 720px) {
	.pk-offer { align-items: center; }
	.pk-offer-sheet {
		border-radius: 1.25rem;
		padding: 1.15rem 1.35rem 1.25rem;
		margin: 1rem;
	}
	.pk-offer-handle { display: none; }
}

/* Mobile app density polish */
@media (max-width: 959px) {
	body.app-body .dash-board,
	body.app-body .main-flow > .card,
	body.app-body .ap-page {
		max-width: 100%;
	}
	body.app-body .dash-metrics {
		gap: 0.55rem;
	}
	body.app-body .dash-metric {
		border-radius: 1rem;
		min-height: 4.4rem;
	}
}
@media (max-width: 959px) {
	html.is-pwa .app-dock { display: flex; }
	html.is-pwa .app-shell { display: flex; flex-direction: column; min-height: 100dvh; grid-template-columns: none; }
	html.is-pwa body.app-body.has-dock .app-shell { min-height: 0 !important; }
	html.is-pwa .main,
	html.is-pwa body.app-body .main {
		flex: 1 1 auto;
		padding: 0 0 var(--content-pad-bottom);
		box-sizing: border-box;
	}
	html.is-pwa body.app-body .main-flow {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
	html.is-pwa .ap-bar {
		left: 0; right: 0;
		bottom: calc(var(--dock-clearance) + 0.45rem);
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: stretch; gap: 0.45rem;
		min-height: 0;
		padding: 0.55rem 0.75rem 0.6rem;
	}
	html.is-pwa .ap-bar-back { grid-column: 1; grid-row: 1; margin: 0; width: 100%; }
	html.is-pwa .ap-bar-danger { grid-column: 2; grid-row: 1; width: 100%; }
	html.is-pwa .ap-bar-save { grid-column: 1 / -1; grid-row: 2; }
	html.is-pwa .ap-bar:not(:has(.ap-bar-danger)) .ap-bar-save { grid-column: 2; grid-row: 1; }
	html.is-pwa .ap-bar .btn,
	html.is-pwa .ap-bar a.btn {
		width: 100%; min-width: 0; min-height: var(--control-h-touch); height: var(--control-h-touch);
		padding: 0 0.65rem; font-size: var(--text-sm);
		display: inline-flex; align-items: center; justify-content: center;
		appearance: none; -webkit-appearance: none;
		box-sizing: border-box;
	}
	html.is-pwa .ap-bar .btn-primary { min-width: 0; }
	html.is-pwa .ap-bar-long { display: none; }
	html.is-pwa .ap-bar-short { display: inline; }
	html.is-pwa .app-head-copy .lede,
	html.is-pwa .page-head .lede { display: none; }
}
@media (display-mode: standalone) {
	.pwa-banner { display: none !important; }
}
@media (max-width: 640px) {
	body.is-auth .auth-panel h1 { font-size: 1.35rem; }
	body.is-auth .auth-links a { min-height: 1.5rem; display: inline-flex; align-items: center; }
}
@media print {
	.pwa-banner, .app-dock, .ap-bar, .mgr-bar, .mgr-sidebar, .nav-backdrop { display: none !important; }
}

/* —— Manager shell —— */
body.app-body {
	background: #e8edf5;
}
body.app-body.nav-locked {
	overflow: hidden;
}
body.app-body .app-user,
body.app-body .app-kicker {
	display: none !important;
}
body.app-body .app-shell {
	display: grid;
	grid-template-columns: var(--mgr-sidebar) minmax(0, 1fr);
	align-items: stretch;
	min-height: 100dvh;
}
body.app-body .nav-backdrop {
	display: none;
}
body.app-body .mgr-stage {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 100dvh;
	background: var(--mgr-stage);
	background-attachment: local;
}
body.app-body .sidebar,
body.app-body .mgr-sidebar {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 0;
	height: 100dvh;
	width: auto;
	transform: none;
	background: var(--mgr-sidebar-bg);
	color: #e8eef8;
	padding: 0;
	overflow: hidden;
	z-index: 20;
	border-right: 1px solid rgb(255 255 255 / 0.06);
	box-shadow: inset -1px 0 0 rgb(0 0 0 / 0.12);
	--mgr-space: clamp(0.18rem, 0.7dvh, 0.55rem);
	--mgr-link-pad: clamp(0.14rem, 0.48dvh, 0.4rem);
	--mgr-type: clamp(0.78rem, 0.52rem + 0.55dvh, 0.88rem);
	--mgr-ico-size: clamp(0.95rem, 0.7rem + 0.55dvh, 1.15rem);
	--mgr-logo: 2.35rem;
	font-size: var(--mgr-type);
}
body.app-body .nav-toggle {
	display: none;
	place-items: center;
	width: 2.45rem;
	height: 2.45rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0.5rem;
	background: transparent;
	color: var(--navy-deep);
	cursor: pointer;
	flex: 0 0 auto;
}
body.app-body .nav-toggle .mgr-ico {
	width: auto;
	height: auto;
	font-size: 1.4rem;
}
body.app-body .nav-toggle:hover,
body.app-body .nav-toggle:focus-visible { background: #eef2f8; }

.mgr-bar {
	position: sticky;
	top: 0;
	z-index: 30;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	flex: 0 0 auto;
	min-height: var(--mgr-bar);
	padding: 0.3rem var(--page-gutter);
	background: linear-gradient(180deg, rgb(255 255 255 / 0.82), rgb(244 248 255 / 0.72));
	backdrop-filter: blur(18px) saturate(160%);
	border-bottom: 1px solid rgb(170 190 220 / 0.35);
	box-shadow: 0 1px 0 rgb(255 255 255 / 0.55) inset;
}
.mgr-wordmark {
	display: none;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	color: var(--navy-deep);
	font-weight: 800;
	font-size: 0.95rem;
	letter-spacing: -0.03em;
	white-space: nowrap;
}
.mgr-wordmark img { width: 1.7rem; height: 1.7rem; object-fit: contain; }
.mgr-crumbs { min-width: 0; flex: 1 1 auto; overflow: hidden; }
.mgr-crumbs ol {
	display: flex; align-items: center; gap: 0.35rem;
	margin: 0; padding: 0; list-style: none;
	color: var(--muted); font-size: 0.78rem; font-weight: 700;
}
.mgr-crumbs li { display: inline-flex; align-items: center; gap: 0.35rem; min-width: 0; }
.mgr-crumbs li + li::before { content: "/"; color: #b4bdcc; font-weight: 700; }
.mgr-crumbs a { color: var(--navy); text-decoration: none; white-space: nowrap; }
.mgr-crumbs a:hover { text-decoration: underline; }
.mgr-crumbs span {
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--navy-deep);
}
.mgr-context {
	display: none; margin: 0; font-size: 0.92rem; font-weight: 800;
	color: var(--navy-deep); letter-spacing: -0.03em;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.mgr-sidebar .mgr-brand {
	flex: 0 0 auto;
	padding: 0.65rem 0.55rem 0.55rem;
	border-bottom: 1px solid rgb(255 255 255 / 0.08);
	text-align: left;
}
.mgr-sidebar .mgr-brand a {
	display: flex; flex-direction: row; align-items: center; gap: 0.55rem;
	text-decoration: none; color: #fff;
}
.mgr-sidebar .mgr-brand img {
	width: var(--mgr-logo); height: var(--mgr-logo); object-fit: contain;
	padding: 0.22rem;
	background: var(--mgr-logo-bg);
	border: 1px solid rgb(255 255 255 / 0.14);
	border-radius: 0.55rem; flex: 0 0 auto;
	box-shadow: 0 4px 14px rgb(0 0 0 / 0.22), inset 0 1px 0 rgb(255 255 255 / 0.12);
}
.mgr-sidebar .mgr-brand strong {
	display: block; font-size: 0.92rem; letter-spacing: -0.03em; line-height: 1.15;
	font-weight: 800;
}
.mgr-org {
	flex: 0 0 auto;
	padding: var(--mgr-space) 0.75rem;
	border-bottom: 1px solid rgb(255 255 255 / 0.08);
}
.mgr-org-now {
	display: grid; grid-template-columns: var(--mgr-logo) minmax(0, 1fr);
	gap: 0.55rem; align-items: center;
}
.mgr-org-now img {
	width: var(--mgr-logo); height: var(--mgr-logo); object-fit: contain;
	background: #fff; border-radius: 0.45rem;
}
.mgr-org-now strong {
	display: block; font-size: 0.95em; line-height: 1.2;
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mgr-org-now em {
	display: block; font-style: normal; color: rgb(255 255 255 / 0.5);
	font-size: 0.78em; font-weight: 650;
}
.mgr-switch { margin: 0.35em 0 0; }
.mgr-switch summary {
	cursor: pointer; list-style: none; color: #9eb4e0;
	font-size: 0.82em; font-weight: 750;
}
.mgr-switch summary::-webkit-details-marker { display: none; }
.mgr-switch-list { display: grid; gap: 0.1rem; margin: 0.3em 0 0; }
.mgr-switch-list a {
	display: grid; text-decoration: none; color: #e8eef8;
	padding: 0.3em 0.45em; border-radius: 0.45rem;
	font-size: 0.9em; font-weight: 700;
}
.mgr-switch-list a:hover,
.mgr-switch-list a:focus-visible { background: rgb(255 255 255 / 0.08); }
.mgr-switch-list em {
	font-style: normal; color: rgb(255 255 255 / 0.45);
	font-size: 0.78em; font-weight: 600;
}
.mgr-nav {
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	padding: 0.85rem 0.65rem 0.5rem;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}
.mgr-group {
	margin: 0 0 0.45rem;
	border-radius: 0.65rem;
}
.mgr-group:last-child { margin-bottom: 0; }
.mgr-parent {
	display: flex; align-items: center; gap: 0.55rem;
	width: 100%;
	padding: 0.48rem 0.55rem;
	border-radius: 0.55rem;
	cursor: pointer;
	list-style: none;
	color: rgb(255 255 255 / 0.78);
	font-size: 0.92em; font-weight: 800; line-height: 1.2;
}
.mgr-parent::-webkit-details-marker { display: none; }
.mgr-parent:hover,
.mgr-parent:focus-visible { background: rgb(255 255 255 / 0.08); color: #fff; }
.mgr-parent.is-current { color: #fff; }
.mgr-caret {
	margin-left: auto;
	font-size: 1.05rem;
	opacity: 0.55;
	transition: transform 0.15s ease;
}
.mgr-group[open] > .mgr-parent .mgr-caret { transform: rotate(180deg); }
.mgr-children {
	display: grid;
	gap: 0.08rem;
	padding: 0.15rem 0 0.35rem 0.35rem;
}
.mgr-link {
	display: flex; align-items: center; gap: 0.45rem;
	padding: 0.28rem 0.5rem 0.28rem 1.15rem; border-radius: 0.4rem;
	text-decoration: none; color: rgb(255 255 255 / 0.72);
	font-size: 0.9em; font-weight: 650; line-height: 1.2;
}
.mgr-link:hover,
.mgr-link:focus-visible { background: rgb(255 255 255 / 0.08); color: #fff; }
.mgr-link.is-active {
	background: #fff; color: var(--navy-deep);
}
.mgr-link.is-danger { color: #f3a0a6; }
.mgr-ico {
	width: auto; height: auto; flex: 0 0 auto;
	font-size: var(--mgr-ico-size);
}
.mgr-collapse {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 0.55rem;
	width: calc(100% - 1rem);
	margin: 0.35rem 0.5rem 0.65rem;
	padding: 0.48rem 0.55rem;
	border: 1px solid rgb(255 255 255 / 0.1);
	border-radius: 0.55rem;
	background: rgb(255 255 255 / 0.04);
	color: rgb(255 255 255 / 0.78);
	cursor: pointer;
	font: inherit;
	font-weight: 750;
}
.mgr-collapse:hover,
.mgr-collapse:focus-visible {
	background: rgb(255 255 255 / 0.1);
	color: #fff;
}
.mgr-collapse-ico { font-size: 1.15rem; }
.mgr-collapse .mgr-collapse-ico.is-collapsed { display: none; }
body.app-body.mgr-nav-collapsed {
	--mgr-sidebar: 4.35rem;
}
body.app-body.mgr-nav-collapsed .mgr-sidebar {
	overflow: visible;
}
body.app-body.mgr-nav-collapsed .mgr-sidebar .mgr-brand {
	padding: 0.7rem 0.35rem 0.55rem;
	text-align: center;
}
body.app-body.mgr-nav-collapsed .mgr-sidebar .mgr-brand a {
	justify-content: center;
}
body.app-body.mgr-nav-collapsed .mgr-sidebar .mgr-brand strong,
body.app-body.mgr-nav-collapsed .mgr-label,
body.app-body.mgr-nav-collapsed .mgr-caret {
	display: none;
}
body.app-body.mgr-nav-collapsed .mgr-nav {
	padding: 0.65rem 0.35rem 0.4rem;
	overflow: visible;
}
body.app-body.mgr-nav-collapsed .mgr-group {
	position: relative;
	margin-bottom: 0.35rem;
}
body.app-body.mgr-nav-collapsed .mgr-parent {
	justify-content: center;
	padding: 0.62rem 0.35rem;
	gap: 0;
}
body.app-body.mgr-nav-collapsed .mgr-parent .mgr-ico {
	margin: 0 auto;
	font-size: 1.25rem;
}
body.app-body.mgr-nav-collapsed .mgr-children {
	display: none !important;
	position: absolute;
	left: calc(100% + 0.45rem);
	top: 0;
	min-width: 12.5rem;
	padding: 0.4rem;
	border: 1px solid rgb(255 255 255 / 0.12);
	border-radius: 0.75rem;
	background: linear-gradient(180deg, #1a3363, #112448);
	box-shadow: 0 14px 32px rgb(8 16 36 / 0.35);
	z-index: 40;
}
body.app-body.mgr-nav-collapsed .mgr-group[open] > .mgr-children {
	display: grid !important;
	gap: 0.12rem;
}
body.app-body.mgr-nav-collapsed .mgr-link {
	justify-content: flex-start;
	padding: 0.45rem 0.55rem;
	gap: 0.55rem;
}
body.app-body.mgr-nav-collapsed .mgr-link .mgr-label {
	display: inline;
}
body.app-body.mgr-nav-collapsed .mgr-collapse {
	justify-content: center;
	width: calc(100% - 0.7rem);
	margin: 0.25rem 0.35rem 0.55rem;
	padding: 0.55rem 0.25rem;
	gap: 0;
}
body.app-body.mgr-nav-collapsed .mgr-collapse .mgr-collapse-ico.is-expanded { display: none; }
body.app-body.mgr-nav-collapsed .mgr-collapse .mgr-collapse-ico.is-collapsed { display: inline; }
html.mgr-nav-collapsed-boot body.app-body { --mgr-sidebar: 4.35rem; }
@media (max-width: 959px) {
	.mgr-collapse { display: none; }
	body.app-body.mgr-nav-collapsed { --mgr-sidebar: 13.75rem; }
	body.app-body.mgr-nav-collapsed .mgr-sidebar .mgr-brand strong,
	body.app-body.mgr-nav-collapsed .mgr-label,
	body.app-body.mgr-nav-collapsed .mgr-caret { display: initial; }
	body.app-body.mgr-nav-collapsed .mgr-sidebar .mgr-brand strong { display: block; }
	body.app-body.mgr-nav-collapsed .mgr-label { display: inline; }
	body.app-body.mgr-nav-collapsed .mgr-caret { display: inline; }
	body.app-body.mgr-nav-collapsed .mgr-nav { overflow: auto; padding: 0.85rem 0.65rem 0.5rem; }
	body.app-body.mgr-nav-collapsed .mgr-parent { justify-content: flex-start; padding: 0.48rem 0.55rem; gap: 0.55rem; }
	body.app-body.mgr-nav-collapsed .mgr-children {
		display: grid;
		position: static;
		min-width: 0;
		padding: 0.15rem 0 0.35rem 0.35rem;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}
}
.mgr-account {
	flex: 0 0 auto;
	padding: var(--mgr-space) 0.55rem max(var(--mgr-space), env(safe-area-inset-bottom));
	border-top: 1px solid rgb(255 255 255 / 0.08);
}
.mgr-userchip {
	display: grid; grid-template-columns: 1.7rem minmax(0, 1fr);
	gap: 0.45rem; align-items: center;
	padding: 0.3em 0.5em;
	color: rgb(255 255 255 / 0.78);
}
.mgr-avatar {
	display: grid; place-items: center;
	width: 1.7rem; height: 1.7rem; border-radius: 0.4rem;
	background: #1d3b78; color: #fff;
	font-size: 0.75em; font-weight: 800;
}
.mgr-userchip strong, .mgr-userchip em {
	display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mgr-userchip strong { font-size: 0.9em; color: #fff; }
.mgr-userchip em { font-style: normal; font-size: 0.75em; font-weight: 600; color: rgb(255 255 255 / 0.48); }
@media (max-height: 820px) {
	.mgr-sidebar .mgr-brand em,
	.mgr-userchip em { display: none; }
}
@media (max-height: 700px) {
	.mgr-userchip { display: none; }
	.mgr-org-now em { display: none; }
}

body.app-body .main {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	max-width: var(--page-max);
	margin: 0 auto;
	padding: 0 var(--page-gutter) 1.5rem;
	box-sizing: border-box;
}
body.app-body .page-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.45rem 0.75rem;
	width: auto;
	margin: 0.55rem 0 0.35rem;
}
body.app-body .page-head-copy { min-width: 0; flex: 1 1 16rem; }
body.app-body .page-head h1 {
	margin: 0;
	font-size: 1.15rem;
	letter-spacing: -0.03em;
}
body.app-body .page-head .lede {
	margin: 0.15rem 0 0;
	max-width: 42rem;
	color: var(--muted);
	line-height: 1.35;
	font-size: var(--text-sm);
	font-weight: 550;
}
body.app-body .page-back {
	display: inline-block;
	margin: 0 0 0.35rem;
	color: var(--navy);
	font-size: 0.78rem;
	font-weight: 750;
	text-decoration: none;
}
body.app-body .page-back:hover { text-decoration: underline; }
body.app-body .page-actions,
.page-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	align-items: center;
	justify-content: flex-end;
}
body.app-body .main-flow {
	width: auto;
	margin: 0;
	padding: 0.35rem 0 1.5rem;
	min-width: 0;
	overflow: visible;
}
body.app-body .ap-page {
	width: 100%;
	max-width: 100%;
}
body.app-body .list-board,
body.app-body .ap-fleet,
body.app-body .st-tree { width: 100%; }
body.app-body .btn { border-radius: 0.5rem; }

.st-tree { width: 100%; }
.st-node > .ap-fleet-card { width: 100%; }

.empty-state {
	display: grid; gap: 0.4rem; justify-items: start;
	padding: 1.6rem 1.35rem;
	background: #fff; border: 1px dashed #c9d3e3; border-radius: var(--radius);
}
.empty-state strong { color: var(--navy-deep); font-size: 1.02rem; }
.empty-state p { margin: 0; color: var(--muted); max-width: 36rem; line-height: 1.5; }
.loading-state {
	display: inline-flex; align-items: center; gap: 0.55rem;
	color: var(--muted); font-weight: 700;
}
.loading-spinner {
	width: 1.05rem; height: 1.05rem;
	border: 2px solid #d5deec; border-top-color: var(--navy);
	border-radius: 99px; animation: mgr-spin 0.7s linear infinite;
}
@keyframes mgr-spin { to { transform: rotate(360deg); } }
.fh-table-wrap, .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.web-source-grid {
	display: grid; gap: 0.7rem;
	grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
	margin: 0 0 1.15rem;
}
.web-source {
	display: grid; gap: 0.25rem; padding: 0.95rem 1rem;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
	text-decoration: none; color: inherit;
}
.web-source:hover { border-color: #b7c5dc; }
.web-source span { color: var(--muted); font-size: 0.75rem; font-weight: 750; text-transform: uppercase; letter-spacing: 0.06em; }
.web-source strong { font-size: 1.35rem; color: var(--navy-deep); letter-spacing: -0.03em; }
.web-source em { font-style: normal; color: var(--navy); font-size: 0.8rem; font-weight: 750; }
.perm-table { width: 100%; border-collapse: collapse; }
.perm-table th, .perm-table td {
	text-align: left; padding: 0.7rem 0.75rem;
	border-bottom: 1px solid #eef1f6; font-size: 0.9rem;
}
.perm-table th { color: var(--muted); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; }
.perm-role {
	display: inline-flex; padding: 0.15rem 0.5rem;
	border-radius: 0.4rem; background: #eef3fb; color: var(--navy);
	font-size: 0.75rem; font-weight: 800;
}
.own-card { margin: 0 0 1.1rem; }
.own-form { display: grid; gap: 0.85rem; margin-top: 1rem; max-width: 32rem; }
.mem-static {
	margin: 0.15rem 0 0;
	color: var(--navy-deep);
	font-size: 0.95rem;
	font-weight: 750;
}
.service-list {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}
.service-list li {
	display: grid;
	gap: 0.1rem;
	padding: 0.7rem 0.85rem;
	background: #f4f7fd;
	border-radius: 0.7rem;
}
.service-list span { color: var(--muted); font-size: 0.86rem; font-weight: 650; }
.chk-done-mark .ms { font-size: 2.4rem; }
.wb-template-ico .ms,
.wb-icon .ms { font-size: 1.1rem; }

@media (min-width: 1080px) {
	body.app-body .main.has-aside {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 22rem;
		grid-template-rows: auto 1fr;
		column-gap: 0;
		row-gap: 0;
		padding: 0;
		width: auto;
		margin: 0;
		min-height: calc(100dvh - var(--mgr-bar));
		align-items: stretch;
	}
	body.app-body .main.has-aside > .page-head {
		grid-column: 1;
		width: auto;
		margin: 0;
		padding: 1.1rem 1.35rem 0.35rem;
	}
	body.app-body .main.has-aside > .main-flow {
		grid-column: 1;
		width: auto;
		margin: 0;
		padding: 0.5rem 1.35rem 3rem;
	}
	body.app-body .main.has-aside > .app-aside {
		grid-column: 2;
		grid-row: 1 / -1;
		position: sticky;
		top: 0;
		height: calc(100dvh - var(--mgr-bar));
		max-height: none;
		margin: 0;
		border: 0;
		border-left: 1px solid var(--line);
		border-radius: 0;
		background: #f4f6fb;
		overflow: auto;
	}
}

body.app-body.is-setup .mgr-crumbs,
body.app-body.is-builder .mgr-crumbs { display: none; }
body.app-body.is-setup .mgr-context,
body.app-body.is-builder .mgr-context { display: block; margin-right: auto; }
body.app-body.is-setup .mgr-stage,
body.app-body.is-builder .mgr-stage {
	height: 100dvh;
	max-height: 100dvh;
	overflow: hidden;
}
body.app-body.is-setup .main,
body.app-body.is-builder .main {
	display: flex; flex-direction: column; min-height: 0; padding: 0;
	flex: 1 1 auto;
}
body.app-body.is-setup .main-flow,
body.app-body.is-builder .main-flow {
	width: 100%; max-width: none; padding: 0; margin: 0;
	flex: 1 1 auto; min-height: 0;
	display: flex; flex-direction: column;
}
body.app-body.is-setup .main-flow { overflow: hidden; }
body.app-body.is-setup .inv-setup {
	flex: 1 1 auto;
	min-height: 0;
	height: 100%;
}

@media (max-width: 959px) {
	body.app-body .app-shell {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
	}
	body.app-body .nav-toggle,
	body.app-body .nav-backdrop,
	body.app-body .sidebar,
	body.app-body .mgr-sidebar,
	body.app-body .app-shell.nav-open .sidebar,
	body.app-body .app-shell.nav-open .mgr-sidebar {
		display: none !important;
	}
	body.app-body.has-dock .app-shell {
		transform: none;
		filter: none;
		perspective: none;
	}
	body.app-body .mgr-bar {
		display: flex;
		padding: max(0.35rem, env(safe-area-inset-top)) var(--page-gutter-sm) 0.4rem;
		background: var(--glass-bg);
		border-bottom: 1px solid rgb(220 227 238 / 0.65);
		-webkit-backdrop-filter: var(--glass-blur);
		backdrop-filter: var(--glass-blur);
		box-shadow: 0 1px 0 rgb(255 255 255 / 0.55) inset;
	}
	@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
		body.app-body .mgr-bar { background: rgb(255 255 255 / 0.96); }
	}
	body.app-body .page-head {
		margin: 0.35rem 0 0.55rem;
		align-items: center;
		gap: 0.45rem;
		flex-wrap: nowrap;
	}
	body.app-body .page-head h1 {
		font-size: 1.05rem;
		line-height: 1.2;
		letter-spacing: -0.03em;
	}
	body.app-body .page-head .lede {
		display: none;
	}
	body.app-body .page-back {
		margin-bottom: 0.15rem;
		font-size: 0.75rem;
	}
	body.app-body .page-actions {
		justify-content: flex-end;
		flex: 0 1 auto;
		max-width: 58%;
		width: auto;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		flex-wrap: nowrap;
	}
	body.app-body .page-actions::-webkit-scrollbar { display: none; }
	body.app-body .page-actions .btn {
		flex: 0 0 auto;
		padding: 0 0.65rem;
		font-size: 0.78rem;
		min-height: 2.15rem;
		height: 2.15rem;
		white-space: nowrap;
	}
	body.app-body .main {
		/* Horizontal gutters live on .main-flow only — avoid double padding. */
		padding: 0 0 var(--content-pad-bottom);
	}
	body.app-body .main-flow {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
		max-width: none;
		width: 100%;
		box-sizing: border-box;
	}
	body.app-body .main.has-aside {
		display: flex;
		flex-direction: column;
		width: auto;
		min-height: 0;
	}
	body.app-body .main.has-aside > .app-aside {
		position: static;
		height: auto;
		max-height: none;
		margin: 0 0 1.2rem;
		border-radius: 1rem;
		border: 1px solid var(--line);
		order: 1;
	}
	body.app-body .main.has-aside > .page-head { order: 0; }
	body.app-body .main.has-aside > .main-flow { order: 2; width: 100%; }
	body.app-body .main.has-aside > .app-aside.is-priority { order: 1; }
	body.app-body.is-setup .app-dock,
	body.app-body.is-builder .app-dock { display: none !important; }
	body.app-body.is-setup .main,
	body.app-body.is-builder .main { padding-bottom: 0; }
}
html.is-pwa .app-user { display: none !important; }
@media (min-width: 960px) {
	body.app-body .mgr-bar { display: flex; }
	body.app-body .main.has-aside {
		min-height: calc(100dvh - var(--mgr-bar));
	}
	body.app-body .main.has-aside > .app-aside {
		height: calc(100dvh - var(--mgr-bar));
		top: var(--mgr-bar);
	}
	html.is-pwa .sidebar,
	html.is-pwa body.app-body .sidebar {
		display: flex !important;
		position: sticky;
		transform: none;
		height: 100dvh;
	}
	html.is-pwa .nav-toggle,
	html.is-pwa .app-dock { display: none !important; }
}
@media (max-width: 959px) {
	html.is-pwa .nav-toggle,
	html.is-pwa .sidebar,
	html.is-pwa body.app-body .sidebar,
	html.is-pwa body.app-body .mgr-sidebar {
		display: none !important;
	}
	html.is-pwa .app-dock { display: flex !important; }
	html.is-pwa .main,
	html.is-pwa body.app-body .main {
		padding-left: var(--page-gutter-sm);
		padding-right: var(--page-gutter-sm);
		padding-bottom: var(--content-pad-bottom);
	}
	html.is-pwa .ap-bar {
		bottom: calc(var(--dock-clearance) + 0.45rem);
	}
}

.plan-picker { display: grid; gap: 1rem; }
.bill-toggle {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.35rem;
	padding: 0.3rem;
	border-radius: 999px;
	background: #eef2f8;
	max-width: 22rem;
}
.bill-toggle-opt { position: relative; }
.bill-toggle-opt input {
	position: absolute;
	opacity: 0;
	inset: 0;
	margin: 0;
}
.bill-toggle-opt span {
	display: block;
	text-align: center;
	padding: 0.55rem 0.8rem;
	border-radius: 999px;
	font-weight: 700;
	color: var(--navy);
}
.bill-toggle-opt input:checked + span { background: var(--navy); color: #fff; }
.bill-toggle-opt input:focus-visible + span { outline: 2px solid var(--navy); outline-offset: 2px; }
.plan-grid { display: grid; gap: 0.8rem; }
@media (min-width: 720px) { .plan-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .plan-grid { grid-template-columns: repeat(4, 1fr); } }
.plan-card {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	border: 1px solid var(--line, #d5deea);
	border-radius: 1rem;
	padding: 0.95rem;
	background: #fff;
	cursor: pointer;
	min-width: 0;
}
.plan-card input { position: absolute; opacity: 0; pointer-events: none; }
.plan-card.is-featured { border-color: var(--navy); }
.plan-card.is-selected { border-color: var(--navy); box-shadow: inset 0 0 0 2px var(--navy); }
.plan-card-top { display: flex; justify-content: space-between; gap: 0.6rem; align-items: baseline; }
.plan-card-top strong { font-size: 1.05rem; }
.plan-price { font-style: normal; font-weight: 800; color: var(--navy); }
.plan-card-desc { color: var(--muted); font-size: 0.92rem; }
.plan-features { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.28rem; font-size: 0.88rem; }
.code-apply { display: flex; gap: 0.5rem; align-items: center; }
.code-apply input { flex: 1; min-width: 0; }
.quote-box, .bill-summary {
	display: grid;
	gap: 0.65rem;
}
@media (min-width: 720px) {
	.quote-box, .bill-summary { grid-template-columns: 1fr 1fr; }
}
.quote-box {
	border: 1px solid var(--line, #d5deea);
	border-radius: 0.9rem;
	padding: 0.85rem 1rem;
	background: #f7f9fc;
}
.quote-box span, .bill-summary span { display: block; }
.quote-box strong { font-size: 1rem; }
@media (max-width: 640px) {
	.code-apply { flex-direction: column; align-items: stretch; }
	.plan-card-top { flex-direction: column; }
}

.mgr-bar-title {
	margin: 0;
	flex: 1 1 auto;
	font-weight: 800;
	color: var(--navy-deep);
	letter-spacing: -0.03em;
}
.mgr-search {
	position: relative;
	flex: 1 1 16rem;
	min-width: 0;
	max-width: 42rem;
}
.mgr-search-toggle,
.mgr-search-close {
	display: none;
}
.mgr-search-field {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 2.05rem;
	padding: 0 0.7rem;
	border: 1px solid rgb(170 190 220 / 0.45);
	border-radius: var(--radius-sm);
	background: rgb(255 255 255 / 0.72);
	box-shadow: 0 1px 0 rgb(255 255 255 / 0.65) inset;
}
.mgr-search-field:focus-within {
	background: #fff;
	border-color: rgb(29 59 120 / 0.45);
	box-shadow: 0 0 0 2px rgb(47 111 237 / 0.12);
}
.mgr-search-ico { color: var(--muted); font-size: 1.05rem; }
.mgr-search-field input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-weight: 600;
	color: var(--navy-deep);
	outline: none;
}
.mgr-search-panel {
	position: absolute;
	top: calc(100% + 0.4rem);
	left: 0;
	right: 0;
	max-height: min(28rem, 70vh);
	overflow: auto;
	padding: 0.45rem;
	border: 1px solid var(--line);
	border-radius: 0.9rem;
	background: #fff;
	box-shadow: 0 18px 40px rgb(18 37 77 / 0.14);
	z-index: 40;
}
.mgr-search-group { padding: 0.2rem 0 0.45rem; }
.mgr-search-group + .mgr-search-group { border-top: 1px solid #edf1f6; }
.mgr-search-group p {
	margin: 0.35rem 0.55rem 0.2rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}
.mgr-search-hit {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.5rem 0.55rem;
	border-radius: 0.55rem;
	text-decoration: none;
	color: var(--navy-deep);
}
.mgr-search-hit:hover,
.mgr-search-hit.is-active { background: #eef3fb; }
.mgr-search-hit .ms { color: var(--navy); }
.mgr-search-hit strong,
.mgr-search-hit em { display: block; }
.mgr-search-hit em { font-style: normal; color: var(--muted); font-size: 0.8rem; font-weight: 600; }
.mgr-search-empty,
.mgr-search-status {
	margin: 0;
	padding: 0.85rem 0.7rem;
	color: var(--muted);
	font-weight: 650;
}
.mgr-orgmenu { position: relative; flex: 0 0 auto; margin-left: auto; }
.mgr-orgchip {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	max-width: 18rem;
	min-height: 2.45rem;
	padding: 0.2rem 0.55rem 0.2rem 0.25rem;
	border: 1px solid rgb(170 190 220 / 0.45);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.78);
	box-shadow: 0 1px 0 rgb(255 255 255 / 0.7) inset;
	cursor: pointer;
	list-style: none;
}
.mgr-orgchip::-webkit-details-marker { display: none; }
.mgr-orgchip img,
.mgr-org-fallback {
	width: 1.85rem;
	height: 1.85rem;
	border-radius: 999px;
	object-fit: cover;
	background: #e8eef8;
	flex: 0 0 auto;
}
.mgr-org-fallback {
	display: grid;
	place-items: center;
	font-size: 0.68rem;
	font-weight: 800;
	color: var(--navy);
}
.mgr-org-fallback.sm { width: 1.55rem; height: 1.55rem; }
.mgr-orgchip-copy {
	min-width: 0;
	text-align: left;
}
.mgr-orgchip-copy strong,
.mgr-orgchip-copy em {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.mgr-orgchip-copy strong { font-size: 0.86rem; color: var(--navy-deep); line-height: 1.2; }
.mgr-orgchip-copy em { font-style: normal; font-size: 0.7rem; font-weight: 650; color: var(--muted); }
.mgr-org-caret { color: var(--muted); font-size: 1.15rem; }
.mgr-orgmenu-panel {
	position: absolute;
	right: 0;
	top: calc(100% + 0.45rem);
	width: min(17.5rem, calc(100vw - 1.5rem));
	overflow: visible;
	padding: 0.55rem 0.45rem 0.5rem;
	border: 1px solid var(--line);
	border-radius: 0.95rem;
	background: #fff;
	box-shadow: 0 18px 40px rgb(18 37 77 / 0.16);
	z-index: 50;
}
.mgr-menu-head {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: 0.55rem;
	align-items: center;
	padding: 0.15rem 0.45rem 0.55rem;
	margin-bottom: 0.2rem;
	border-bottom: 1px solid #edf1f6;
}
.mgr-menu-head img,
.mgr-menu-head .mgr-org-fallback {
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	object-fit: cover;
}
.mgr-menu-head strong,
.mgr-menu-head em {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.mgr-menu-head strong { color: var(--navy-deep); font-size: 0.9rem; line-height: 1.2; }
.mgr-menu-head em { font-style: normal; color: var(--muted); font-size: 0.74rem; font-weight: 650; }
.mgr-menu-links {
	display: grid;
	gap: 0.08rem;
}
.mgr-orgmenu-panel a {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.42rem 0.55rem;
	border-radius: 0.5rem;
	text-decoration: none;
	color: var(--navy-deep);
	font-weight: 700;
	font-size: 0.88rem;
}
.mgr-orgmenu-panel a:hover,
.mgr-orgmenu-panel a:focus-visible { background: #eef3fb; }
.mgr-orgmenu-panel a.is-danger { color: var(--danger); }
.mgr-menu-ico { color: var(--navy); font-size: 1.15rem; }
@media (max-width: 959px) {
	.mgr-orgchip-copy em { display: none; }
	.mgr-search { max-width: none; }
	.mgr-orgchip { max-width: 12.5rem; padding-right: 0.4rem; }
}
@media (max-width: 720px) {
	.mgr-orgchip-copy { display: none; }
	.mgr-orgchip { padding: 0.15rem; border-radius: 999px; }
	.mgr-search-field input { font-size: 0.92rem; }
}

/* —— QR label sheet selection —— */
.lbl-check {
	display: none;
	flex: 0 0 auto;
	width: 1.35rem;
	height: 1.35rem;
	place-items: center;
}
.lbl-check input {
	width: 1.1rem;
	height: 1.1rem;
	accent-color: var(--navy);
	cursor: pointer;
}
body.is-lbl-select .lbl-check { display: grid; }
body.is-lbl-select .member-list .fh-table-head > :first-child {
	padding-left: calc(1.35rem + 0.65rem);
}
body.is-lbl-select .member-row .fh-id,
body.is-lbl-select .ap-fleet-card {
	position: relative;
}
body.is-lbl-select .member-row .fh-id {
	display: flex;
	align-items: center;
	gap: 0.65rem;
}
body.is-lbl-select .ap-fleet-card .lbl-check {
	position: absolute;
	top: 0.7rem;
	left: 0.7rem;
	z-index: 2;
	width: 1.55rem;
	height: 1.55rem;
	border-radius: 0.45rem;
	background: rgb(255 255 255 / 0.92);
	box-shadow: 0 6px 16px rgb(15 31 71 / 0.12);
}
body.is-lbl-select .member-row.is-lbl-on,
body.is-lbl-select .ap-fleet-card.is-lbl-on {
	outline: 2px solid var(--navy);
	outline-offset: -2px;
	background: #f4f7fc;
}
body.is-lbl-select .ap-fleet-card.is-lbl-on {
	border-color: rgb(29 59 120 / 0.45);
}
body.has-lbl-dock .app-main,
body.has-lbl-dock .mgr-main {
	padding-bottom: 6.5rem;
}
.lbl-dock {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
	pointer-events: none;
}
.lbl-dock-inner {
	pointer-events: auto;
	max-width: 52rem;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-items: center;
	justify-content: space-between;
	padding: 0.85rem 1rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, #12254d 0%, #1d3b78 58%, #244a8f 100%);
	color: #fff;
	box-shadow: 0 18px 40px rgb(15 31 71 / 0.28);
}
.lbl-dock-copy {
	display: grid;
	gap: 0.12rem;
	min-width: 0;
}
.lbl-dock-copy strong {
	font-size: 1rem;
	letter-spacing: -0.02em;
}
.lbl-dock-copy span {
	font-size: 0.82rem;
	opacity: 0.78;
	font-weight: 600;
}
.lbl-dock-actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.lbl-dock-actions .btn-ghost {
	background: rgb(255 255 255 / 0.1);
	color: #fff;
	border-color: transparent;
}
.lbl-dock-actions .btn-ghost:hover { background: rgb(255 255 255 / 0.18); }
.lbl-dock-actions .btn-primary {
	background: #fff;
	color: #12254d;
}
.lbl-modal-card {
	width: min(720px, calc(100vw - 2rem));
	background:
		radial-gradient(circle at top right, rgb(245 185 66 / 0.18), transparent 42%),
		linear-gradient(180deg, #fff 0%, #f7f9fc 100%);
}
.lbl-modal-head .eyebrow {
	margin: 0 0 0.2rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 0.72rem;
	font-weight: 800;
	color: #c98512;
}
.lbl-modal-head h2 { margin: 0 0 0.35rem; color: var(--navy-deep); }
.lbl-modal-body { padding-top: 0.35rem; }
.lbl-size-grid {
	display: grid;
	gap: 0.75rem;
}
@media (min-width: 700px) {
	.lbl-size-grid { grid-template-columns: 1fr 1fr; }
}
.lbl-size-card {
	position: relative;
	display: grid;
	gap: 0.75rem;
	padding: 0.95rem;
	border: 1px solid #d7deea;
	border-radius: 1rem;
	background: #fff;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.lbl-size-card:hover {
	border-color: rgb(29 59 120 / 0.35);
	transform: translateY(-1px);
}
.lbl-size-card:has(input:checked) {
	border-color: var(--navy);
	box-shadow: 0 0 0 3px rgb(29 59 120 / 0.12), 0 14px 28px rgb(18 37 77 / 0.08);
}
.lbl-size-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.lbl-size-preview {
	display: grid;
	gap: 0.18rem;
	padding: 0.7rem;
	border-radius: 0.75rem;
	background: linear-gradient(160deg, #eef3fb, #e2e9f4);
	min-height: 5.5rem;
	align-content: center;
	justify-content: center;
}
.lbl-size-preview[data-preview="1x1"] {
	grid-template-columns: repeat(9, 0.42rem);
}
.lbl-size-preview[data-preview="2x2"] {
	grid-template-columns: repeat(3, 1.15rem);
}
.lbl-size-preview i {
	display: block;
	aspect-ratio: 1;
	border-radius: 0.18rem;
	background: #fff;
	box-shadow: inset 0 0 0 1px rgb(29 59 120 / 0.16);
}
.lbl-size-preview[data-preview="2x2"] i {
	border-radius: 0.28rem;
	box-shadow: inset 0 0 0 1px rgb(29 59 120 / 0.18), 0 1px 0 rgb(255 255 255 / 0.7);
}
.lbl-size-copy {
	display: grid;
	gap: 0.18rem;
}
.lbl-size-copy strong {
	color: var(--navy-deep);
	font-size: 1.02rem;
	letter-spacing: -0.02em;
}
.lbl-size-copy em {
	font-style: normal;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #c98512;
}
.lbl-size-copy span {
	color: #5b6578;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.35;
}
.lbl-modal-summary {
	display: grid;
	gap: 0.65rem;
	margin: 1.1rem 0 0.35rem;
	padding: 0.9rem 1rem;
	border-radius: 0.9rem;
	background: #12254d;
	color: #fff;
}
.lbl-modal-summary strong {
	display: block;
	font-size: 1.05rem;
	letter-spacing: -0.02em;
}
.lbl-modal-summary span {
	display: block;
	margin-top: 0.15rem;
	opacity: 0.75;
	font-weight: 650;
	font-size: 0.86rem;
}
.lbl-modal-names {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lbl-modal-names li {
	padding: 0.28rem 0.55rem;
	border-radius: 999px;
	background: rgb(255 255 255 / 0.12);
	font-size: 0.78rem;
	font-weight: 700;
}
.lbl-modal-names li.is-more { opacity: 0.7; }
.lbl-modal-actions { margin-top: 1rem; justify-content: flex-end; }
@media print {
	.lbl-dock, .lbl-check { display: none !important; }
}

/* Report builder */
.rpt-builder {
	display: grid;
	gap: 0.85rem;
	align-items: start;
}
@media (min-width: 1100px) {
	.rpt-builder {
		grid-template-columns: minmax(14rem, 16.5rem) minmax(0, 1fr) minmax(15rem, 18rem);
		min-height: 68vh;
	}
}
.rpt-panel { padding: 0.95rem 1rem 1.1rem; }
.rpt-panel .form-block-head { margin-bottom: 0.75rem; }
.rpt-panel .form-block-head h2 { margin: 0; font-size: 1.05rem; }
.rpt-search, .rpt-source-pick { display: grid; gap: 0.3rem; margin: 0 0 0.65rem; font-weight: 700; color: var(--navy-deep); font-size: 0.84rem; }
.rpt-search input, .rpt-source-pick select,
.rpt-config select, .rpt-config input[type="text"], .rpt-config input[type="date"],
.rpt-meta input {
	width: 100%; border: 1px solid var(--line); border-radius: 0.7rem; padding: 0.55rem 0.7rem;
	background: #fff; font: inherit;
}
.rpt-fields { display: grid; gap: 0.35rem; max-height: 52vh; overflow: auto; padding-right: 0.15rem; }
.rpt-field {
	display: flex; justify-content: space-between; gap: 0.5rem; align-items: center;
	width: 100%; text-align: left; border: 1px solid var(--line); background: #f7f9fd;
	border-radius: 0.75rem; padding: 0.55rem 0.7rem; cursor: grab; font: inherit; color: var(--navy-deep);
}
.rpt-field:hover { border-color: rgb(29 59 120 / 0.35); background: #eef3fb; }
.rpt-field span { font-weight: 750; font-size: 0.88rem; }
.rpt-field em { font-style: normal; color: var(--muted); font-size: 0.72rem; font-weight: 650; text-transform: uppercase; letter-spacing: 0.04em; }
.rpt-drop-block { margin: 0.85rem 0 1rem; }
.rpt-drop-head { display: flex; flex-wrap: wrap; gap: 0.45rem 0.8rem; align-items: baseline; margin-bottom: 0.45rem; }
.rpt-chips {
	min-height: 3.2rem; border: 1.5px dashed rgb(29 59 120 / 0.28); border-radius: 0.9rem;
	padding: 0.55rem; display: flex; flex-wrap: wrap; gap: 0.4rem; background: #f8fafc;
}
.rpt-chips.is-over { border-color: var(--navy); background: #eef3fb; }
.rpt-drop-empty { margin: 0.55rem; color: var(--muted); font-size: 0.88rem; }
.rpt-chip {
	display: inline-flex; align-items: center; gap: 0.35rem;
	background: #fff; border: 1px solid var(--line); border-radius: 999px;
	padding: 0.28rem 0.35rem 0.28rem 0.7rem; font-weight: 750; color: var(--navy-deep);
	cursor: grab;
}
.rpt-chip.is-dragging { opacity: 0.45; }
.rpt-chip-x {
	border: 0; background: #eef2f7; color: var(--muted); width: 1.35rem; height: 1.35rem;
	border-radius: 999px; cursor: pointer; font: inherit; line-height: 1;
}
.rpt-chip-x:hover { background: #fee4e2; color: var(--danger); }
.rpt-preview-head { display: flex; justify-content: space-between; gap: 0.75rem; align-items: baseline; margin-bottom: 0.55rem; }
.rpt-preview-head em { font-style: normal; color: var(--muted); font-size: 0.82rem; font-weight: 700; }
.rpt-preview { border: 1px solid var(--line); border-radius: 0.9rem; padding: 0.75rem; background: #fff; min-height: 14rem; }
.rpt-summary {
	display: grid; gap: 0.55rem; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
	margin-bottom: 0.85rem;
}
.rpt-chart-wrap { margin-bottom: 0.85rem; }
.rpt-chart { min-height: 10rem; }
.rpt-table-wrap { overflow-x: auto; }
.rpt-sec { border-top: 1px solid var(--line); padding: 0.55rem 0 0.15rem; }
.rpt-sec:first-of-type { border-top: 0; padding-top: 0; }
.rpt-sec > summary {
	cursor: pointer; font-weight: 800; color: var(--navy-deep); list-style: none;
	padding: 0.35rem 0;
}
.rpt-sec > summary::-webkit-details-marker { display: none; }
.rpt-sec-body { display: grid; gap: 0.55rem; padding: 0.25rem 0 0.55rem; }
.rpt-rule {
	display: grid; gap: 0.4rem; grid-template-columns: 1fr;
	padding: 0.55rem; border: 1px solid var(--line); border-radius: 0.8rem; background: #f8fafc;
}
.rpt-check { display: flex; align-items: center; gap: 0.45rem; font-weight: 700; color: var(--navy-deep); }
@media (max-width: 1099px) {
	.rpt-builder { grid-template-columns: 1fr; }
	.rpt-palette { order: 1; }
	.rpt-canvas { order: 2; }
	.rpt-config { order: 3; }
	.rpt-fields { max-height: 12rem; }
	.rpt-preview { min-height: 11rem; }
}
@media (max-width: 720px) {
	.rpt-panel { padding: 0.85rem 0.85rem 1rem; }
	.rpt-drop-head { flex-direction: column; gap: 0.15rem; }
	.rpt-chip { max-width: 100%; }
	.rpt-chip em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 10rem; }
	.rpt-chart { min-height: 8.5rem; }
	.rpt-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rpt-rule .btn { width: 100%; }
}

/* Final mobile shell — scrollable main + viewport-pinned dock tray. */
@media (max-width: 959px) {
	html:has(body.app-body.has-dock) {
		height: 100% !important;
		max-height: 100% !important;
		overflow: hidden;
		background: #e8edf5;
	}
	body.app-body.has-dock {
		display: flex !important;
		flex-direction: column !important;
		height: 100% !important;
		max-height: 100% !important;
		overflow: hidden !important;
		overscroll-behavior: none;
		background: #e8edf5 !important;
		padding-bottom: 0 !important;
	}
	body.app-body.has-dock .app-shell {
		display: flex !important;
		flex-direction: column !important;
		flex: 1 1 auto !important;
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: hidden !important;
		transform: none !important;
		filter: none !important;
		perspective: none !important;
	}
	body.app-body.has-dock .mgr-stage {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow: hidden !important;
		display: flex !important;
		flex-direction: column !important;
	}
	body.app-body.has-dock .mgr-bar {
		flex: 0 0 auto;
	}
	body.app-body.has-dock .main {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		padding-bottom: var(--content-pad-bottom) !important;
	}
	body.app-body.has-dock > .app-dock {
		display: flex !important;
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		bottom: 0 !important;
		width: 100% !important;
		height: auto !important;
		margin: 0 !important;
		padding: var(--dock-float) var(--dock-side) var(--dock-gap-bottom) !important;
		z-index: 60 !important;
		transform: none !important;
		filter: none !important;
	}
}
